]> git.saurik.com Git - bison.git/commitdiff
* src/options.c (create_long_option_table): Fix.
authorMarc Autret <autret_m@epita.fr>
Mon, 15 Oct 2001 19:01:12 +0000 (19:01 +0000)
committerMarc Autret <autret_m@epita.fr>
Mon, 15 Oct 2001 19:01:12 +0000 (19:01 +0000)
ChangeLog
src/options.c

index 7f93b7d5fa3bbfd0017180d9101330b76ac5021f..854686249e9f01c4e5b7d16a245274633b2a6333 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2001-10-14  Marc Autret  <autret_m@epita.fr>
+
+       * src/options.c (create_long_option_table): Fix.
+
 2001-10-10  Akim Demaille  <akim@epita.fr>
 
        * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
index c09ef0a55800f87f4c6f46d6c22c446a1e633b3c..37963cd4d6c8800515b3809781fff86ef5037e67 100644 (file)
@@ -142,7 +142,14 @@ create_long_option_table ()
        /* Copy the struct information in the longoptions.  */
        longopts[j].name = option_table[i].name;
        longopts[j].has_arg = option_table[i].has_arg;
-       longopts[j].flag = option_table[i].set_flag;
+       /* 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;
+       else
+         longopts[j].flag = option_table[i].set_flag;
        longopts[j++].val = option_table[i].val;
       }
   longopts[number_options].name = NULL;