id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
4427,hGetBuf sometimes reads fewer bytes than required,rl,simonmar,"The attached program repeatedly calls `hGetBuf` and prints how much it wanted to read and how many bytes `hGetBuf` returned. It should be run on a sufficiently large file. On Cygwin, the last 4 lines of the output are:

{{{
4 4
608 523
4 4
300 300
}}}

Note that we requested 608 bytes but `hGetBuf` only returned 523 even though we weren't at the end of file (since subsequent reads succeeded).

I suspect the bug is in `GHC.IO.Handle.Text.bufReadEmpty`, namely here:

{{{
  loop :: FD -> Int -> Int -> IO Int
  loop fd off bytes | bytes <= 0 = return off
}}}

It should probably return `so_far + off`.",bug,closed,highest,7.0.1,libraries/base,7.1,fixed,,,Windows,x86,Incorrect result at runtime,,,,,
