From 5d52e7d0456a69b89b73bea74a56a05a66a20c1a Mon Sep 17 00:00:00 2001 From: Marc Autret Date: Mon, 15 Oct 2001 19:01:12 +0000 Subject: [PATCH] * src/options.c (create_long_option_table): Fix. --- ChangeLog | 4 ++++ src/options.c | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7f93b7d5..85468624 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2001-10-14 Marc Autret + + * src/options.c (create_long_option_table): Fix. + 2001-10-10 Akim Demaille * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA. diff --git a/src/options.c b/src/options.c index c09ef0a5..37963cd4 100644 --- a/src/options.c +++ b/src/options.c @@ -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; -- 2.47.2