From: Peter Meerwald Date: Tue, 15 Apr 2014 08:58:21 +0000 (+0200) Subject: pactl: Stop parsing option when the first non-option is encountered X-Git-Url: https://code.delx.au/pulseaudio/commitdiff_plain/997e369691496be4ecfe38e3516f7e007ed69a7b pactl: Stop parsing option when the first non-option is encountered fix bug https://bugs.freedesktop.org/show_bug.cgi?id=77108 see getopt(3): ""By default, getopt() permutes the contents of argv as it scans, so that eventually all the nonoptions are at the end. Two other modes are also implemented. If the first character of optstring is '+' or the envi‐ ronment variable POSIXLY_CORRECT is set, then option processing stops as soon as a nonoption argument is encountered. If the first character of optstring is '-', then each nonoption argv-element is handled as if it were the argument of an option with character code 1. (This is used by programs that were written to expect options and other argv-elements in any order and that care about the ordering of the two.) The special argument "--" forces an end of option-scanning regardless of the scan‐ ning mode."" prepend optstring with '+' to use POSIXLY_CORRECT mode Signed-off-by: Peter Meerwald --- diff --git a/src/utils/pactl.c b/src/utils/pactl.c index 8483464f..555cb481 100644 --- a/src/utils/pactl.c +++ b/src/utils/pactl.c @@ -1596,7 +1596,7 @@ int main(int argc, char *argv[]) { proplist = pa_proplist_new(); - while ((c = getopt_long(argc, argv, "s:n:h", long_options, NULL)) != -1) { + while ((c = getopt_long(argc, argv, "+s:n:h", long_options, NULL)) != -1) { switch (c) { case 'h' : help(bn);