]> git.saurik.com Git - bison.git/blobdiff - src/getargs.c
* data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
[bison.git] / src / getargs.c
index 0113f3370f5e877773394d0cf35bf0bf8b5e2a1e..69e6f20f9edaa8334c141204d5f007217068b576 100644 (file)
@@ -1,5 +1,6 @@
-/* Parse command line arguments for bison.
-   Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
+/* Parse command line arguments for Bison.
+
+   Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
    02111-1307, USA.  */
 
 #include "system.h"
    02111-1307, USA.  */
 
 #include "system.h"
-#include "getopt.h"
-#include "argmatch.h"
-#include "error.h"
+
+#include <argmatch.h>
+#include <error.h>
+
+/* Hack to get <getopt.h> to declare getopt with a prototype.  */
+#if lint && ! defined __GNU_LIBRARY__
+# define __GNU_LIBRARY__
+# define HACK_FOR___GNU_LIBRARY___PROTOTYPE 1
+#endif
+
+#include <getopt.h>
+
+#ifdef HACK_FOR___GNU_LIBRARY___PROTOTYPE
+# undef __GNU_LIBRARY__
+# undef HACK_FOR___GNU_LIBRARY___PROTOTYPE
+#endif
+
 #include "complain.h"
 #include "complain.h"
-#include "struniq.h"
-#include "getargs.h"
 #include "files.h"
 #include "files.h"
+#include "getargs.h"
+#include "uniqstr.h"
 
 int debug_flag = 0;
 int defines_flag = 0;
 
 int debug_flag = 0;
 int defines_flag = 0;
@@ -88,7 +103,7 @@ static const int trace_types[] =
 static void
 trace_argmatch (char *args)
 {
 static void
 trace_argmatch (char *args)
 {
-  ARGMATCH_ASSERT (trace_args, trace_types);
+  verify (trace_constraint, ARGMATCH_CONSTRAINT (trace_args, trace_types));
   if (args)
     {
       args = strtok (args, ",");
   if (args)
     {
       args = strtok (args, ",");
@@ -139,7 +154,7 @@ static const int report_types[] =
 static void
 report_argmatch (char *args)
 {
 static void
 report_argmatch (char *args)
 {
-  ARGMATCH_ASSERT (report_args, report_types);
+  verify (report_constraint, ARGMATCH_CONSTRAINT (report_args, report_types));
   args = strtok (args, ",");
   do
     {
   args = strtok (args, ",");
   do
     {
@@ -248,7 +263,7 @@ version (void)
   putc ('\n', stdout);
 
   fprintf (stdout,
   putc ('\n', stdout);
 
   fprintf (stdout,
-          _("Copyright (C) %d Free Software Foundation, Inc.\n"), 2002);
+          _("Copyright (C) %d Free Software Foundation, Inc.\n"), 2003);
 
   fputs (_("\
 This is free software; see the source for copying conditions.  There is NO\n\
 
   fputs (_("\
 This is free software; see the source for copying conditions.  There is NO\n\
@@ -318,7 +333,8 @@ getargs (int argc, char *argv[])
 {
   int c;
 
 {
   int c;
 
-  while ((c = getopt_long (argc, argv, short_options, long_options, NULL)) != EOF)
+  while ((c = getopt_long (argc, argv, short_options, long_options, NULL))
+        != -1)
     switch (c)
       {
       case 0:
     switch (c)
       {
       case 0:
@@ -339,7 +355,8 @@ getargs (int argc, char *argv[])
       case 'g':
        /* Here, the -g and --graph=FILE options are differentiated.  */
        graph_flag = 1;
       case 'g':
        /* Here, the -g and --graph=FILE options are differentiated.  */
        graph_flag = 1;
-       spec_graph_file = AS_FILE_NAME (optarg);
+       if (optarg)
+         spec_graph_file = AS_FILE_NAME (optarg);
        break;
 
       case 'v':
        break;
 
       case 'v':
@@ -410,5 +427,5 @@ getargs (int argc, char *argv[])
       usage (EXIT_FAILURE);
     }
 
       usage (EXIT_FAILURE);
     }
 
-  current_file = grammar_file = struniq_new (argv[optind]);
+  current_file = grammar_file = uniqstr_new (argv[optind]);
 }
 }