Tomas, Thank you for the explanation. I see in the documentation: "These functions are intended to be used with binary-mode connections." So I see how using it on a text connection is undefined, and not a bug. An error or warning when attempting to use a it on a text connection would be helpful considering how the behavior has changed in R-3.5.
On Tue, May 29, 2018 at 3:09 AM, Tomas Kalibera <tomas.kalib...@gmail.com> wrote: > 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@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> > > > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel