make runtime error messages emacs-compatible

This commit is contained in:
ceriel 1989-02-13 18:28:17 +00:00
parent 429d527a64
commit 7b2e749b0d
2 changed files with 15 additions and 9 deletions

View file

@ -28,7 +28,7 @@ IMPLEMENTATION MODULE Traps;
(* Write message "str" on standard error, preceeded by filename and (* Write message "str" on standard error, preceeded by filename and
linenumber if possible linenumber if possible
*) *)
VAR p, q: POINTER TO CHAR; VAR p: POINTER TO CHAR;
l: CARDINAL; l: CARDINAL;
lino: INTEGER; lino: INTEGER;
buf, buf2: ARRAY [0..255] OF CHAR; buf, buf2: ARRAY [0..255] OF CHAR;
@ -36,11 +36,16 @@ IMPLEMENTATION MODULE Traps;
BEGIN BEGIN
p := EM.FILN(); p := EM.FILN();
IF p # NIL THEN IF p # NIL THEN
q := p; i := 1;
buf[0] := '"';
WHILE p^ # 0C DO WHILE p^ # 0C DO
buf[i] := p^;
INC(i);
p := ADDRESS(p) + 1; p := ADDRESS(p) + 1;
END; 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 ELSE
l := Argv(0, buf); l := Argv(0, buf);
IF Unix.write(2, ADR(buf), l-1) < 0 THEN END; IF Unix.write(2, ADR(buf), l-1) < 0 THEN END;
@ -48,12 +53,13 @@ IMPLEMENTATION MODULE Traps;
lino := EM.LINO(); lino := EM.LINO();
i := 0; i := 0;
IF lino # 0 THEN IF lino # 0 THEN
i := 2; i := 7;
buf[0] := ','; buf[0] := ','; buf[1] := ' ';
buf[1] := ' '; buf[2] := 'l'; buf[3] := 'i'; buf[4] := 'n'; buf[5] := 'e';
buf[6] := ' ';
IF lino < 0 THEN IF lino < 0 THEN
buf[2] := '-'; buf[7] := '-';
i := 3; i := 8;
lino := - lino; lino := - lino;
END; END;
j := 0; j := 0;

View file

@ -45,7 +45,7 @@ static struct errm {
{ M2_TOOMANY, "too many nested traps + handlers"}, { M2_TOOMANY, "too many nested traps + handlers"},
{ M2_NORESULT, "no RETURN from procedure function"}, { M2_NORESULT, "no RETURN from procedure function"},
{ M2_UOVFL, "cardinal overflow"}, { 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_UUVFL, "cardinal underflow"},
{ M2_INTERNAL, "internal error; ask an expert for help"}, { M2_INTERNAL, "internal error; ask an expert for help"},
{ M2_UNIXSIG, "got a unix signal"}, { M2_UNIXSIG, "got a unix signal"},