From 2552813eaab33e808a1d56d0b7ef98609e3d5d90 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 11 Apr 1991 10:52:52 +0000 Subject: [PATCH] Corrected #error and #define --- lang/cem/cemcom.ansi/domacro.c | 18 ++++++++++-------- lang/cem/cpp.ansi/domacro.c | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/lang/cem/cemcom.ansi/domacro.c b/lang/cem/cemcom.ansi/domacro.c index f42c17ac4..83e7d3269 100644 --- a/lang/cem/cemcom.ansi/domacro.c +++ b/lang/cem/cemcom.ansi/domacro.c @@ -476,15 +476,13 @@ do_undef(argidf) do_error() { - static char errbuf[512]; - register char *bp = errbuf; - register int ch; + int len; + char *get_text(); + char *bp = get_text((char **) 0, &len); - while ((ch = GetChar()) != '\n') - *bp++ = ch; - *bp = '\0'; - UnGetChar(); - lexerror("user error: %s", errbuf); + lexerror("user error: %s", bp); + free(bp); + LineNumber++; } int @@ -652,6 +650,10 @@ get_text(formals, length) if (c == '\\') add2repl(repl, GetChar()); c = GetChar(); } while (c != delim && c != EOI && class(c) != STNL); + if (c == EOI || class(c) == STNL) { + lexstrict("unclosed opening %c", delim); + break; + } add2repl(repl, c); c = GetChar(); } else if (c == '/') { diff --git a/lang/cem/cpp.ansi/domacro.c b/lang/cem/cpp.ansi/domacro.c index 0dcedd468..5e6875317 100644 --- a/lang/cem/cpp.ansi/domacro.c +++ b/lang/cem/cpp.ansi/domacro.c @@ -487,15 +487,13 @@ do_undef(argstr) do_error() { - static char errbuf[512]; - register char *bp = errbuf; - register int ch; + int len; + char *get_text(); + char *bp = get_text((char **) 0, &len); - while ((ch = GetChar()) != '\n') - *bp++ = ch; - *bp = '\0'; - UnGetChar(); - error("user error: %s", errbuf); + error("user error: %s", bp); + free(bp); + LineNumber++; } int @@ -678,6 +676,10 @@ get_text(formals, length) if (c == '\\') add2repl(repl, GetChar()); c = GetChar(); } while (c != delim && c != EOI && class(c) != STNL); + if (c != delim) { + strict("unclosed opening %c", delim); + break; + } add2repl(repl, c); c = GetChar(); } else if (c == '/') { -- 2.34.1