[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH 2/2] compat/getopt: Allow non-digit parameter embedde
From: |
Jean Delvare |
Subject: |
[Quilt-dev] [PATCH 2/2] compat/getopt: Allow non-digit parameter embedded in short option |
Date: |
Wed, 3 Oct 2018 17:34:15 +0200 |
The compatibility getopt script allows only digit parameters to be
embedded in short options. Util-linux's getopt implementation does
not have such a restriction and allows any parameter to be embedded
in short options. As a consequence, using the compatibility getopt
script would choke for example on "-pab", which is a legal option
of the "quilt refresh" command.
Remove the limitation on digits so that the compatibility getopt
script allows what util-linux allows. This fixes the second half
of bug #54772:
https://savannah.nongnu.org/bugs/index.php?54772
As a side note, this feature of the compatibility script was broken
anyway, as it would output the digits in reverse order.
Signed-off-by: Jean Delvare <address@hidden>
---
compat/getopt.in | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
--- quilt.orig/compat/getopt.in 2018-10-03 16:05:56.818667040 +0200
+++ quilt/compat/getopt.in 2018-10-03 16:12:17.624841732 +0200
@@ -108,15 +108,10 @@ foreach my $word (@words) {
if (scalar(@letters) == 0) {
$need_param = $letter;
} else {
- # short options can have numerical args
- # embedded in the short option list: -UO
- die "unexpected character after option
$letter"
- if ($letters[$#letters] !~
/[0-9]/);
- my @digits;
- while (scalar(@letters) &&
($letters[$#letters] =~ /[0-9]/)) {
- push @digits, pop @letters;
- }
- push @options, quote_word(join('',
reverse @digits));
+ # short options can have args
+ # embedded in the short option list
+ push @options, quote_word(join('',
reverse @letters));
+ @letters = ();
}
}
}
--
Jean Delvare
SUSE L3 Support