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 <[email protected]>
---
 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

_______________________________________________
Quilt-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/quilt-dev

Reply via email to