From: Jean Delvare Subject: compat/getopt: Allow non-digit parameter embedded in short option 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 --- 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 = (); } } }