From aeadd58952fc6939c012e6547ca5ae92c9434d41 Mon Sep 17 00:00:00 2001 From: norayr Date: Wed, 24 Feb 2016 15:21:16 +0400 Subject: [PATCH] fixed Oberon.Mod; now Oberon.DumpLog works. Former-commit-id: 4e2da4f92e77fcce3db1291cbfafd2f430d7bac9 --- src/lib/v4_compat/Oberon.Mod | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/lib/v4_compat/Oberon.Mod b/src/lib/v4_compat/Oberon.Mod index 3a8038c0..1a0c8c69 100644 --- a/src/lib/v4_compat/Oberon.Mod +++ b/src/lib/v4_compat/Oberon.Mod @@ -52,7 +52,7 @@ MODULE Oberon; Texts.Append (Par^.text, W.buf); END PopulateParams; - +(* PROCEDURE DumpLog*; VAR R : Texts.Reader; ch : CHAR; @@ -64,6 +64,35 @@ MODULE Oberon; Out.Char(ch); UNTIL R.eot; END DumpLog; +*) + +PROCEDURE TextToString(VAR T : Texts.Text; VAR string : ARRAY OF CHAR); + VAR R : Texts.Reader; + ch : CHAR; + i : LONGINT; +BEGIN + COPY("", string); + Texts.OpenReader(R, T, 0); + i := 0; + WHILE Texts.Pos(R) < T.len DO + Texts.Read(R, ch); + string[i] := ch; + INC(i); + END; + (*string[i] := 0X;*) +END TextToString; + +PROCEDURE DumpLog*; +VAR s : POINTER TO ARRAY OF CHAR; +BEGIN + NEW(s, Log.len + 1); + COPY("", s^); + TextToString(Log, s^); + Out.String(s^); Out.Ln; + + NEW(Log); + Texts.Open(Log, ""); +END DumpLog; BEGIN NEW(Par); @@ -72,4 +101,6 @@ BEGIN OptionChar := '-'; Texts.Open(Par.text, ""); PopulateParams; + NEW(Log); + Texts.Open(Log, ""); END Oberon.