Fix ar so that it can correctly detect non-dash prefixed options that appear after dash prefixed options.
PR 13256 * ar.c (decode_options): Restart option scanning if no operation is detected and argument remain to be scanned.
This commit is contained in:
parent
cc364be6ff
commit
2f86d55940
|
@ -1,3 +1,9 @@
|
||||||
|
2019-07-24 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR 13256
|
||||||
|
* ar.c (decode_options): Restart option scanning if no operation
|
||||||
|
is detected and argument remain to be scanned.
|
||||||
|
|
||||||
2019-07-23 Nick Clifton <nickc@redhat.com>
|
2019-07-23 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR 24818
|
PR 24818
|
||||||
|
|
|
@ -432,9 +432,10 @@ decode_options (int argc, char **argv)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
/* Convert old-style tar call by exploding option element and rearranging
|
/* Convert old-style ar call by exploding option element and rearranging
|
||||||
options accordingly. */
|
options accordingly. */
|
||||||
|
|
||||||
|
restart:
|
||||||
if (argc > 1 && argv[1][0] != '-')
|
if (argc > 1 && argv[1][0] != '-')
|
||||||
{
|
{
|
||||||
int new_argc; /* argc value for rearranged arguments */
|
int new_argc; /* argc value for rearranged arguments */
|
||||||
|
@ -598,6 +599,17 @@ decode_options (int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* PR 13256: Allow for the possibility that the first command line option
|
||||||
|
started with a dash (eg --plugin) but then the following option(s) are
|
||||||
|
old style, non-dash-prefixed versions. */
|
||||||
|
if (operation == none && optind > 0 && optind < argc)
|
||||||
|
{
|
||||||
|
argv += (optind - 1);
|
||||||
|
argc -= (optind - 1);
|
||||||
|
optind = 0;
|
||||||
|
goto restart;
|
||||||
|
}
|
||||||
|
|
||||||
return &argv[optind];
|
return &argv[optind];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue