]> git.saurik.com Git - bison.git/blobdiff - src/getargs.c
Java: Fix syntax error handling without error token.
[bison.git] / src / getargs.c
index e1298f3ef1a83f9b562316f3490e590c9cc9dfb7..1185e40944a157013c0720c0e10bdd0b3c09ae0c 100644 (file)
@@ -1,6 +1,6 @@
 /* Parse command line arguments for Bison.
 
-   Copyright (C) 1984, 1986, 1989, 1992, 2000-2011 Free Software
+   Copyright (C) 1984, 1986, 1989, 1992, 2000-2012 Free Software
    Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
@@ -26,7 +26,6 @@
 #include <c-strcase.h>
 #include <configmake.h>
 #include <error.h>
-#include <quotearg.h>
 
 /* Hack to get <getopt.h> to declare getopt with a prototype.  */
 #if lint && ! defined __GNU_LIBRARY__
 # undef HACK_FOR___GNU_LIBRARY___PROTOTYPE
 #endif
 
+#include <progname.h>
+
 #include "complain.h"
 #include "files.h"
 #include "getargs.h"
 #include "muscle-tab.h"
+#include "quote.h"
 #include "uniqstr.h"
 
 bool debug_flag;
@@ -79,8 +81,6 @@ int language_prio = default_prio;
 struct bison_language const *language = &valid_languages[0];
 const char *include = NULL;
 
-char *program_name;
-
 
 /** Decode an option's set of keys.
  *
@@ -418,20 +418,20 @@ language_argmatch (char const *arg, int prio, location loc)
     {
       int i;
       for (i = 0; valid_languages[i].language[0]; i++)
-       if (c_strcasecmp (arg, valid_languages[i].language) == 0)
-         {
-           language_prio = prio;
-           language = &valid_languages[i];
-           return;
-         }
-      msg = _("invalid language `%s'");
+        if (c_strcasecmp (arg, valid_languages[i].language) == 0)
+          {
+            language_prio = prio;
+            language = &valid_languages[i];
+            return;
+          }
+      msg = _("%s: invalid language");
     }
   else if (language_prio == prio)
     msg = _("multiple language declarations are invalid");
   else
     return;
 
-  complain_at (loc, msg, arg);
+  complain_at (loc, msg, quotearg_colon (arg));
 }
 
 /*----------------------.
@@ -562,7 +562,7 @@ getargs (int argc, char *argv[])
       case 'F': /* -FNAME[=VALUE]. */
         {
           char* name = optarg;
-          char* value = strchr (optarg, '=');
+          char* value = mbschr (optarg, '=');
           if (value)
             *value++ = 0;
           muscle_percent_define_insert (name, command_line_location (),
@@ -679,9 +679,9 @@ getargs (int argc, char *argv[])
   if (argc - optind != 1)
     {
       if (argc - optind < 1)
-       error (0, 0, _("missing operand after `%s'"), argv[argc - 1]);
+        error (0, 0, _("%s: missing operand"), quotearg_colon (argv[argc - 1]));
       else
-       error (0, 0, _("extra operand `%s'"), argv[optind + 1]);
+        error (0, 0, _("extra operand %s"), quote (argv[optind + 1]));
       usage (EXIT_FAILURE);
     }