From davidhughjones at gmail.com  Fri Jun  9 15:09:53 2006
From: davidhughjones at gmail.com (davidhughjones at gmail.com)
Date: Fri,  9 Jun 2006 15:09:53 +0200 (CEST)
Subject: [Rd] read.fwf only reads one "buffersize" of lines when reading
	multiline records (PR#8951)
Message-ID: <20060609130953.7C5974BE5A@slim.kubism.ku.dk>

Full_Name: David Hugh-Jones
Version: 2.3.0
OS: Windows
Submission from: (NULL) (155.245.34.194)


Here's a test case:

tf = tempfile()
cat(file=tf, rep("123", 100), sep="\n")
# this gives a data frame with 100 rows
read.fwf(tf, widths=c(1,2), buffersize=10)

# but this only gives 5 rows!
read.fwf(tf, widths=list(c(1,2), 3), buffersize=10)


I think the correct fix is to replace this line in read.fwf

if (length(raw) < thisblock) 

with

if (nread < thisblock) 


This bug is present in earlier versions, at least up to 2.1.0.

Cheers
David



[Rd] read.fwf only reads one "buffersize" of lines when reading multiline records (PR#8951)
davidhughjones at gmail.com