X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Fdefine.c;h=e91505c726ee271a84891c601e8d453f183a41e7;hb=5dd9df91d08bb0283bde1b82266a29f6e5e17bb3;hp=c21c66a73cab91b9eed75dfd1713159317561857;hpb=b707aef4702e0998353de081458b7720f67a1b72;p=pspp diff --git a/src/language/control/define.c b/src/language/control/define.c index c21c66a73c..e91505c726 100644 --- a/src/language/control/define.c +++ b/src/language/control/define.c @@ -113,9 +113,23 @@ cmd_define (struct lexer *lexer, struct dataset *ds UNUSED) } else { + if (lex_token (lexer) == T_MACRO_ID) + { + lex_error (lexer, _("Keyword macro parameter must be named in " + "definition without \"!\" prefix.")); + goto error; + } if (!lex_force_id (lexer)) goto error; + if (is_macro_keyword (lex_tokss (lexer))) + { + lex_error (lexer, _("Cannot use macro keyword \"%s\" " + "as an argument name."), + lex_tokcstr (lexer)); + goto error; + } + p->positional = false; p->name = xasprintf ("!%s", lex_tokcstr (lexer)); lex_get (lexer);