From fb7679136e9da436e99ae328fe0351b7e87e190e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 20 Jan 2005 15:35:57 +0000 Subject: [PATCH] (std_longopts): Add an entry for "--a" in order to prevent getopt_long_only() from considering -a as an abbreviation for --alternate. (parse_args): Fix the parsing of -a=. --- gas/ChangeLog | 7 +++++++ gas/as.c | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 572d8e00c3b..ca40e8a84d2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2005-01-20 Nick Clifton + + * as.c (std_longopts): Add an entry for "--a" in order to prevent + getopt_long_only() from considering -a as an abbreviation for + --alternate. + (parse_args): Fix the parsing of -a=. + 2005-01-20 Alan Modra PR gas/684 diff --git a/gas/as.c b/gas/as.c index 60647554231..915a5eb5a1b 100644 --- a/gas/as.c +++ b/gas/as.c @@ -437,6 +437,11 @@ parse_args (int * pargc, char *** pargv) the end of the preceeding line so that it is simpler to selectively add and remove lines from this list. */ {"alternate", no_argument, NULL, OPTION_ALTERNATE} + /* The entry for "a" is here to prevent getopt_long_only() from + considering that -a is an abbreviation for --alternate. This is + necessary because -a= is a valid switch but getopt would + normally reject it since --alternate does not take an argument. */ + ,{"a", optional_argument, NULL, 'a'} ,{"defsym", required_argument, NULL, OPTION_DEFSYM} ,{"dump-config", no_argument, NULL, OPTION_DUMPCONFIG} ,{"emulation", required_argument, NULL, OPTION_EMULATION} @@ -786,6 +791,9 @@ the GNU General Public License. This program has absolutely no warranty.\n")); case 'a': if (optarg) { + if (optarg != old_argv[optind] && optarg[-1] == '=') + --optarg; + if (md_parse_option (optc, optarg) != 0) break; -- 2.30.2