Dear all,
TStreamReader.ReadLine seems to fail under specific circumstances. I created a test to easily reproduce the problem.
The test makes use of a TStream that behaves in a weird, but formally correct way. I created it based on a real experience with the StdIn that I was able to reproduce thanks to pre-existing logging. I suggest you use the test on Windows otherwise I'm not sure you'll be able to reproduce the problem.
I believe the bug can be fixed by updating VPByte right after FillBuffer is called:
[...]
FillBuffer;
VPByte := @FBuffer[FBufferPosition]; //bugfix
VPosition := FBufferPosition;
[...]Tested with Lazarus 2.0.10 FPC 3.2.0 on Win64
Posted on lazarus forum at:
https://forum.lazarus.freepascal.org/index.php?topic=54033.msg400820#msg400820
Is it a bug or am I missing something?
Kind regards,
Andrea
