From 89894c62c6d197265565a007edcf5ddc74d5a1d8 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 13 Dec 2001 09:38:11 +0000 Subject: [PATCH] * lexsup.c (parse_args): Don't pass shortopts to second call to getopt functions. Restore optind rather than decrementing before second call. Remove errind as it now duplicates last_optind. --- ld/ChangeLog | 6 ++++++ ld/lexsup.c | 17 +++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 54739eea4bc..9e05021beda 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2001-12-13 Alan Modra + + * lexsup.c (parse_args): Don't pass shortopts to second call to + getopt functions. Restore optind rather than decrementing before + second call. Remove errind as it now duplicates last_optind. + 2001-12-11 Christopher Faylor * emultempl/pe.em (gld_${EMULATION_NAME}_list_options): Fix typo. diff --git a/ld/lexsup.c b/ld/lexsup.c index b9b74bdf0b2..ca2e9a1a46c 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -542,7 +542,7 @@ parse_args (argc, argv) last_optind = -1; while (1) { - int longind, errind; + int longind; int optc; /* Using last_optind lets us avoid calling ldemul_parse_args @@ -552,21 +552,18 @@ parse_args (argc, argv) -nx, in which the -n is parsed as a single option, and we loop around to pick up the -x. */ if (optind != last_optind) - { - if (ldemul_parse_args (argc, argv)) - continue; - last_optind = optind; - } + if (ldemul_parse_args (argc, argv)) + continue; /* getopt_long_only is like getopt_long, but '-' as well as '--' can indicate a long option. */ opterr = 0; - errind = optind; + last_optind = optind; optc = getopt_long_only (argc, argv, shortopts, longopts, &longind); if (optc == '?') { - --optind; - optc = getopt_long (argc, argv, shortopts, really_longopts, &longind); + optind = last_optind; + optc = getopt_long (argc, argv, "-", really_longopts, &longind); } if (optc == -1) @@ -575,7 +572,7 @@ parse_args (argc, argv) switch (optc) { case '?': - einfo (_("%P: unrecognized option '%s'\n"), argv[errind]); + einfo (_("%P: unrecognized option '%s'\n"), argv[last_optind]); default: einfo (_("%P%F: use the --help option for usage information\n")); -- 2.30.2