From 7b2e749b0d977c9fef2852171764acf39126690a Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 13 Feb 1989 18:28:17 +0000 Subject: [PATCH] make runtime error messages emacs-compatible --- lang/m2/libm2/Traps.mod | 22 ++++++++++++++-------- lang/m2/libm2/catch.c | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lang/m2/libm2/Traps.mod b/lang/m2/libm2/Traps.mod index 35ea1ba5b..fb93b4b7e 100644 --- a/lang/m2/libm2/Traps.mod +++ b/lang/m2/libm2/Traps.mod @@ -28,7 +28,7 @@ IMPLEMENTATION MODULE Traps; (* Write message "str" on standard error, preceeded by filename and linenumber if possible *) - VAR p, q: POINTER TO CHAR; + VAR p: POINTER TO CHAR; l: CARDINAL; lino: INTEGER; buf, buf2: ARRAY [0..255] OF CHAR; @@ -36,11 +36,16 @@ IMPLEMENTATION MODULE Traps; BEGIN p := EM.FILN(); IF p # NIL THEN - q := p; + i := 1; + buf[0] := '"'; WHILE p^ # 0C DO + buf[i] := p^; + INC(i); p := ADDRESS(p) + 1; END; - IF Unix.write(2, q, ADDRESS(p) - ADDRESS(q)) < 0 THEN END; + buf[i] := '"'; + INC(i); + IF Unix.write(2, ADR(buf), i) < 0 THEN END; ELSE l := Argv(0, buf); IF Unix.write(2, ADR(buf), l-1) < 0 THEN END; @@ -48,12 +53,13 @@ IMPLEMENTATION MODULE Traps; lino := EM.LINO(); i := 0; IF lino # 0 THEN - i := 2; - buf[0] := ','; - buf[1] := ' '; + i := 7; + buf[0] := ','; buf[1] := ' '; + buf[2] := 'l'; buf[3] := 'i'; buf[4] := 'n'; buf[5] := 'e'; + buf[6] := ' '; IF lino < 0 THEN - buf[2] := '-'; - i := 3; + buf[7] := '-'; + i := 8; lino := - lino; END; j := 0; diff --git a/lang/m2/libm2/catch.c b/lang/m2/libm2/catch.c index 15a6b75e0..3d3529f5e 100644 --- a/lang/m2/libm2/catch.c +++ b/lang/m2/libm2/catch.c @@ -45,7 +45,7 @@ static struct errm { { M2_TOOMANY, "too many nested traps + handlers"}, { M2_NORESULT, "no RETURN from procedure function"}, { M2_UOVFL, "cardinal overflow"}, - { M2_FORCH, "Warning: FOR-loop control variable was changed in the body"}, + { M2_FORCH, "(warning) FOR-loop control variable was changed in the body"}, { M2_UUVFL, "cardinal underflow"}, { M2_INTERNAL, "internal error; ask an expert for help"}, { M2_UNIXSIG, "got a unix signal"}, -- 2.34.1