From tom@@@k@liber@ @ending from gm@il@com  Tue May 29 12:09:00 2018
From: tom@@@k@liber@ @ending from gm@il@com (Tomas Kalibera)
Date: Tue, 29 May 2018 12:09:00 +0200
Subject: [Rd] Buffering in R 3.5 connections causes incorrect data in
 readChar
In-Reply-To: <CAJvXDNbV+oH_SQPOBP=4S_NiuFZ=0E6ZyzTNKEALz5t7VxfTJA@mail.gmail.com>
References: <CAJvXDNbV+oH_SQPOBP=4S_NiuFZ=0E6ZyzTNKEALz5t7VxfTJA@mail.gmail.com>
Message-ID: <9d63bec8-b5c0-1099-7d47-0b2dd1aeb352@gmail.com>

On 05/26/2018 05:15 AM, Aaron Goodman wrote:
> I noticed an issue where readChar does not return the correct value after a
> call to readline. It appears that readChar is not aware of the buffering,
> so it reads from the end of the buffer, rather than the current position in
> the file. This is a significant change of behavior from R-3.4.4.
>
> Below is a test case that I used to home in on the problem.
Thanks for the report and analysis, you are right, readChar ignores the 
buffer (and it also ignores the pushback). But please note that this 
behavior is in line with the documentation, see ?readChar: readChar must 
only be used with binary connections, but the example uses it on a text 
connection. Buffering and pushback are only used on (readable) text 
connections. I will check whether we could report a runtime error.

Best
Tomas

> ---
>
> p<-"test2.txt"
> cat("abcdefg
> hijklmn
> opqrstu",file=p)
>
> cat("read char after readline (h)\n")
> con <- file(p,"r")
> invisible(readLines(con,1))
> print(readChar(con,1))
> close(con)
>
> cat("read char after readline and seek (h)\n")
> con <- file(p,"r")
> invisible(readLines(con,1))
> invisible(seek(con,seek(con)))
> print(readChar(con,1))
> close(con)
>
> cat("read lines after readline (hijklmn)\n")
> con <- file(p,"r")
> invisible(readLines(con,1) )
> print(readLines(con,1))
> close(con)
>
>
> cat("read line after char (bcdefg):\n")
> con <- file(p,"r")
> invisible(readChar(con,1) )
> print(readLines(con,1))
> close(con)
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Buffering in R 3.5 connections causes incorrect data in readChar
Tomas Kalibera