diff options
author | Marius Bakke <mbakke@fastmail.com> | 2018-12-09 00:18:32 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2018-12-09 00:18:32 +0100 |
commit | fbb7b04a8563fbb5dfbe7b3c7be171c8dec23442 (patch) | |
tree | 5508f13c24ef19dd018cd91fe287e8fa50eda7e4 /gnu/packages/patches/quilt-getopt-second-separator.patch | |
parent | 16735b0b632b5f05fc914836b8f345e3a9e601dd (diff) | |
parent | cec0c4e29c6efb337ae65d9c533cdbb2bf724430 (diff) | |
download | guix-fbb7b04a8563fbb5dfbe7b3c7be171c8dec23442.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/patches/quilt-getopt-second-separator.patch')
-rw-r--r-- | gnu/packages/patches/quilt-getopt-second-separator.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/patches/quilt-getopt-second-separator.patch b/gnu/packages/patches/quilt-getopt-second-separator.patch new file mode 100644 index 0000000000..cde2c8d41c --- /dev/null +++ b/gnu/packages/patches/quilt-getopt-second-separator.patch @@ -0,0 +1,58 @@ +From: Jean Delvare <jdelvare@suse.de> +Subject: compat/getopt: Handle a second separator + +getopt can be passed 2 '--' separators. The first one tells that +getopt options are over and target program options start. The second +one tells that the target program's options are over and following +arguments should be treated as non-options even if they look like +options. + +This second separator was not handled, causing the compatibility +getopt script to treat the following arguments as options, eventually +failing one way or another. + +Properly detect and handle the second separator. This fixes the first +half of bug #54772: +https://savannah.nongnu.org/bugs/index.php?54772 + +Signed-off-by: Jean Delvare <jdelvare@suse.de> +--- + compat/getopt.in | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +--- quilt.orig/compat/getopt.in 2018-10-03 15:23:21.147620172 +0200 ++++ quilt/compat/getopt.in 2018-10-03 16:05:56.818667040 +0200 +@@ -8,12 +8,12 @@ + + use strict; + +-my $opts; ++my $opts = ''; + my @words; + my $found_sep = 0; + + foreach my $arg (@ARGV) { +- if ($arg eq '--') { ++ if (!$found_sep && $arg eq '--') { + $found_sep = 1; + } + else { +@@ -62,10 +62,17 @@ sub quote_word + return "'$word'"; + } + ++# there can be a second separator, to inhibit processing following arguments ++# as options ++$found_sep = 0; + foreach my $word (@words) { ++ if ($word eq '--') { ++ $found_sep = 1; ++ next; ++ } + + # allow '-' to be an option value +- if (!$need_param && $word !~ /^-./) { ++ if ($found_sep || (!$need_param && $word !~ /^-./)) { + push @barewords, quote_word($word); + next; + } |