From: Godzil Date: Wed, 20 Mar 2013 22:45:43 +0000 (+0100) Subject: cpp.ansi: Add missing "#warning" directive X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=b31c94cf32c0c859a36198fd7c745c80c6cc2f15;p=ack.git cpp.ansi: Add missing "#warning" directive --- diff --git a/lang/cem/cpp.ansi/domacro.c b/lang/cem/cpp.ansi/domacro.c index 91b565f2a..d1bedcfe5 100644 --- a/lang/cem/cpp.ansi/domacro.c +++ b/lang/cem/cpp.ansi/domacro.c @@ -47,6 +47,7 @@ void do_if(); void do_ifdef(int how); void do_undef(char *argstr); void do_error(); +void do_warning(); void do_line(unsigned int l); void macro_def(struct idf *id, char *text, int nformals, int length, int flags); @@ -145,6 +146,9 @@ void domacro() else do_line((unsigned int)tk.tk_val); break; + case K_WARNING: /* "warning" */ + do_warning(); + break; case K_ERROR: /* "error" */ do_error(); break; @@ -507,6 +511,17 @@ void do_undef(char *argstr) error("illegal #undef construction"); } +void do_warning() +{ + int len; + char *get_text(); + char *bp = get_text((char **) 0, &len); + + warning("user warning: %s", bp); + free(bp); + LineNumber++; +} + void do_error() { int len; diff --git a/lang/cem/cpp.ansi/init.c b/lang/cem/cpp.ansi/init.c index 575323836..243dc468e 100644 --- a/lang/cem/cpp.ansi/init.c +++ b/lang/cem/cpp.ansi/init.c @@ -26,6 +26,7 @@ struct mkey { {"else", K_ELSE}, {"endif", K_ENDIF}, {"error", K_ERROR}, + {"warning", K_WARNING}, {"if", K_IF}, {"ifdef", K_IFDEF}, {"ifndef", K_IFNDEF}, diff --git a/lang/cem/cpp.ansi/macro.str b/lang/cem/cpp.ansi/macro.str index 249105316..1a3e15e57 100644 --- a/lang/cem/cpp.ansi/macro.str +++ b/lang/cem/cpp.ansi/macro.str @@ -44,4 +44,5 @@ struct macro { #define K_LINE 10 #define K_PRAGMA 11 #define K_UNDEF 12 +#define K_WARNING 13 #define K_FILE 100 /* for dependency generator */