From 7d4815e2ae1ca5786d647ad88dac39b622d68a80 Mon Sep 17 00:00:00 2001 From: Ivan Sukin Date: Fri, 11 Nov 2016 22:27:06 +0300 Subject: [PATCH] ReadString and ReadLine from Files module now adjusts Rider --- src/system/Files.Mod | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/system/Files.Mod b/src/system/Files.Mod index a007f934..9c59b08d 100644 --- a/src/system/Files.Mod +++ b/src/system/Files.Mod @@ -634,17 +634,19 @@ Especially Length would become fairly complex. END ReadLReal; PROCEDURE ReadString* (VAR R: Rider; VAR x: ARRAY OF CHAR); - VAR i: INTEGER; ch: CHAR; - BEGIN i := 0; + VAR i: INTEGER; ch: CHAR; pos: LONGINT; + BEGIN i := 0; pos := Pos(R); REPEAT Read(R, ch); x[i] := ch; INC(i) UNTIL ch = 0X; x[i] := 0X; + IF ~R.eof THEN Set(R, R.buf.f, pos + i + 1); END; END ReadString; PROCEDURE ReadLine* (VAR R: Rider; VAR x: ARRAY OF CHAR); - VAR i: INTEGER; ch: CHAR; b : BOOLEAN; + VAR i: INTEGER; ch: CHAR; b : BOOLEAN; pos: LONGINT; BEGIN i := 0; b := FALSE; + pos := Pos(R); REPEAT Read(R, ch); IF ((ch = 0X) OR (ch = 0AX) OR (ch = 0DX)) THEN @@ -655,6 +657,7 @@ Especially Length would become fairly complex. END; UNTIL b; x[i] := 0X; + IF ~R.eof THEN Set(R, R.buf.f, pos + i + 1); END; END ReadLine; PROCEDURE ReadNum* (VAR R: Rider; VAR x: LONGINT);