bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20-fyi-long-opts.patch


From: Akim Demaille
Subject: 20-fyi-long-opts.patch
Date: Sat, 29 Dec 2001 15:14:53 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        * src/options.h, src/options.c (create_long_option_table): Rename
        as...
        (long_option_table_new): this, with a clearer prototype.
        (percent_table): Remove, unused,
        * src/getargs.c (getargs): Adjust.
        
        
Index: src/getargs.c
--- src/getargs.c Sat, 08 Dec 2001 13:24:47 +0100 akim
+++ src/getargs.c Fri, 28 Dec 2001 16:54:47 +0100 akim
@@ -135,7 +135,7 @@ Output:\n\
 {
   int c;
 
-  create_long_option_table ();
+  struct option *longopts = long_option_table_new ();
   while ((c = getopt_long (argc, argv, shortopts, longopts, NULL)) != EOF)
     switch (c)
       {
@@ -217,7 +217,8 @@ Output:\n\
        exit (1);
       }
 
-  XFREE (longopts);
+  free (longopts);
+
   if (optind == argc)
     {
       fprintf (stderr, _("%s: no grammar file given\n"), program_name);
Index: src/options.c
--- src/options.c Sat, 08 Dec 2001 15:03:00 +0100 akim
+++ src/options.c Fri, 28 Dec 2001 16:53:43 +0100 akim
@@ -30,11 +30,6 @@
 /* Shorts options.  */
 const char *shortopts = "yvegdhrltknVo:b:p:S:";
 
-/* Long options.  */
-struct option *longopts = NULL;
-
-struct percent_table_struct *percent_table = NULL;
-
 /* A CLI option only.
    Arguments is the policy: `no', `optional', `required'.
    OptionChar is the value given to the Var if the latter is specified.  */
@@ -135,13 +130,16 @@
   {0, 0, 0, 0, 0, 0}
 };
 
+
 /*--------------------------------------------------------.
 | Create the longoptions structure from the option_table, |
 | for the getopt file.                                   |
 `--------------------------------------------------------*/
-void
-create_long_option_table ()
+
+struct option *
+long_option_table_new ()
 {
+  struct option *res = NULL;
   int i = 0;
   int j = 0;
   int number_options;
@@ -151,26 +149,28 @@
        || option_table[i].access == opt_both)
       ++number_options;
 
-  longopts = XMALLOC (struct option, number_options + 1);
+  res = XMALLOC (struct option, number_options + 1);
   for (i = 0; option_table[i].name; i++)
     if (option_table[i].access == opt_cmd_line
        || option_table[i].access == opt_both)
       {
        /* Copy the struct information in the longoptions.  */
-       longopts[j].name = option_table[i].name;
-       longopts[j].has_arg = option_table[i].has_arg;
+       res[j].name = option_table[i].name;
+       res[j].has_arg = option_table[i].has_arg;
        /* When an options is declared having 'optional_argument' and
           a flag is specified to be set, the option is skipped on
           command line. So we never use a flag when a command line
           option is declared 'optional_argument.  */
-       if (longopts[j].has_arg == optional_argument)
-         longopts[j].flag = NULL;
+       if (res[j].has_arg == optional_argument)
+         res[j].flag = NULL;
        else
-         longopts[j].flag = option_table[i].set_flag;
-       longopts[j++].val = option_table[i].val;
+         res[j].flag = option_table[i].set_flag;
+       res[j++].val = option_table[i].val;
       }
-  longopts[number_options].name = NULL;
-  longopts[number_options].has_arg = 0;
-  longopts[number_options].flag = NULL;
-  longopts[number_options].val = 0;
+  res[number_options].name = NULL;
+  res[number_options].has_arg = 0;
+  res[number_options].flag = NULL;
+  res[number_options].val = 0;
+
+  return res;
 }
Index: src/options.h
--- src/options.h Sat, 08 Dec 2001 14:08:51 +0100 akim
+++ src/options.h Fri, 28 Dec 2001 16:52:19 +0100 akim
@@ -51,12 +51,11 @@
 };
 
 extern const char *shortopts;
-extern struct option *longopts;
 
 /* Table which contain all options.  */
 extern const struct option_table_struct option_table[];
 
 /* Set the longopts variable from option_table.  */
-void create_long_option_table PARAMS ((void));
+struct option *long_option_table_new PARAMS ((void));
 
 #endif /* !OPTIONS_H_ */
Index: src/reduce.c
--- src/reduce.c Fri, 28 Dec 2001 16:41:48 +0100 akim
+++ src/reduce.c Fri, 28 Dec 2001 16:57:22 +0100 akim
@@ -337,7 +337,6 @@
 nonterminals_reduce (void)
 {
   int i, n;
-  rule r;
 
   /* Map the nonterminals to their new index: useful first, useless
      afterwards.  Kept for later report.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]