Browse Source

Add #warning to cemcom.ansi

Manoel Trapier 11 years ago
parent
commit
93f542eb7a

+ 14 - 0
lang/cem/cemcom.ansi/domacro.c

@@ -136,6 +136,9 @@ void domacro()
 		case K_ERROR:				/* "error"	*/
 			do_error();
 			break;
+		case K_WARNING:				/* "warning" */
+			do_warning();
+			break;
 		case K_PRAGMA:				/* "pragma"	*/
 			do_pragma();
 			break;
@@ -522,6 +525,17 @@ void do_error()
 	LineNumber++;
 }
 
+void do_warning()
+{
+	int len;
+	char *get_text();
+	char *bp = get_text((char **) 0, &len);
+
+	lexwarning("user warning: %s", bp);
+	free(bp);
+	LineNumber++;
+}
+
 int getparams(char *buf[], char parbuf[])
 {
 	/*	getparams() reads the formal parameter list of a macro

+ 1 - 0
lang/cem/cemcom.ansi/domacro.h

@@ -20,6 +20,7 @@ void do_if(void);
 void do_ifdef(int how);
 void do_undef(struct idf *argidf);
 void do_error(void);
+void do_warning(void);
 int getparams(char *buf[], char parbuf[]);
 void macro_def(struct idf *id, char *text, int nformals, int length, int flags);
 int find_name(char *nm, char *index[]);

+ 1 - 0
lang/cem/cemcom.ansi/init.c

@@ -34,6 +34,7 @@ struct mkey	{
 	{"else",	K_ELSE},
 	{"endif",	K_ENDIF},
 	{"error",	K_ERROR},
+	{"warning",	K_WARNING},
 	{"if",		K_IF},
 	{"ifdef",	K_IFDEF},
 	{"ifndef",	K_IFNDEF},

+ 1 - 0
lang/cem/cemcom.ansi/macro.str

@@ -48,5 +48,6 @@ 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 */
 #endif /* NOPP */