X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/782e8187185a009ce698ad294c87e49a0a30c3a1..9ec79612e822b39d0ab2ef5c4b9d584884ef61cd:/src/scan-skel.l diff --git a/src/scan-skel.l b/src/scan-skel.l index 68f528cb..607dc3c4 100644 --- a/src/scan-skel.l +++ b/src/scan-skel.l @@ -186,25 +186,23 @@ at_directive_perform (int argc, char *argv[], char **outnamep, int *out_linenop) fail_for_at_directive_too_many_args (argv[0]); fputs (last_component (argv[1]), yyout); } - else if (STREQ (argv[0], "@warn") || STREQ (argv[0], "@warn_at") - || STREQ (argv[0], "@complain") || STREQ (argv[0], "@complain_at") - || STREQ (argv[0], "@fatal") || STREQ (argv[0], "@fatal_at")) + else if (STREQ (argv[0], "@warn") + || STREQ (argv[0], "@complain") + || STREQ (argv[0], "@fatal")) { warnings w = flag (*argv); location loc; location *locp = NULL; - if (STREQ (*argv + strlen (*argv) - 3, "_at")) + if (argc < 4) + fail_for_at_directive_too_few_args (argv[0]); + if (argv[1] && argv[1][0]) { - if (argc < 4) - fail_for_at_directive_too_few_args (argv[0]); boundary_set_from_string (&loc.start, argv[1]); boundary_set_from_string (&loc.end, argv[2]); - argc -= 2; - argv += 2; locp = &loc; } - else if (argc < 2) - fail_for_at_directive_too_few_args (argv[0]); + argc -= 2; + argv += 2; complain_args (locp, w, argc, argv); } else if (STREQ (argv[0], "@output"))