the -U option did not work properly; call do_undef() now

This commit is contained in:
eck
1990-04-18 16:40:17 +00:00
parent 52f08181a6
commit 64e9d11570
4 changed files with 19 additions and 27 deletions

View File

@@ -123,7 +123,7 @@ domacro()
do_pragma();
break;
case K_UNDEF: /* "undef" */
do_undef();
do_undef((struct idf *) 0);
break;
default:
/* invalid word seen after the '#' */
@@ -422,12 +422,14 @@ do_ifdef(how)
SkipToNewLine();
}
do_undef()
/* argidf != NULL when the undef came from a -U option */
do_undef(argidf)
struct idf *argidf;
{
register struct idf *id;
register struct idf *id = argidf;
/* Forget a macro definition. */
if (id = GetIdentifier(1)) {
if (id || (id = GetIdentifier(1))) {
if (id->id_macro) { /* forget the macro */
if (id->id_macro->mc_flag & NOUNDEF) {
lexerror("it is not allowed to undef %s", id->id_text);
@@ -437,7 +439,7 @@ do_undef()
id->id_macro = (struct macro *) 0;
}
} /* else: don't complain */
SkipToNewLine();
if (!argidf) SkipToNewLine();
}
else
lexerror("illegal #undef construction");

View File

@@ -224,14 +224,7 @@ deleted, is now a debug-flag
case 'U' : { /* -Uname : undefine predefined */
#ifndef NOPP
register struct idf *idef;
if (*text) {
if ((idef = str2idf(text))->id_macro) {
free_macro(idef->id_macro);
idef->id_macro = (struct macro *) 0;
}
}
if (*text) do_undef(str2idf(text));
#else NOPP
warning("-U option ignored");
#endif NOPP