From: Bernhard Voelker Date: Wed, 26 Mar 2014 08:02:42 +0000 (+0100) Subject: ptx: avoid --format long option falling through into --help X-Git-Tag: v8.23~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5de5d8a5c0aa864bbf79a299cf5b9d5a1547941a;p=thirdparty%2Fcoreutils.git ptx: avoid --format long option falling through into --help * src/ptx.c (main): Add a 'break' after the --format handling case. Otherwise it would fall through into the usage case. * tests/misc/ptx.pl: Add test cases for --format=tex and --format=roff. * NEWS (Bug fixes): Mention the fix. Bug introduced in 1999-04-04 commit, SH-UTILS-1_16f-269-gd815c15. Spotted by coverity (MISSING_BREAK). --- diff --git a/NEWS b/NEWS index f68ab4f7c1..582f06082a 100644 --- a/NEWS +++ b/NEWS @@ -31,6 +31,9 @@ GNU coreutils NEWS -*- outline -*- ln -sr '' F no longer segfaults. Now works as expected. [bug introduced with the --relative feature in coreutils-8.16] + ptx --format long option parsing no longer falls through into the --help case. + [bug introduced in TEXTUTILS-1_22i] + shuf --repeat no longer dumps core if the input is empty. [bug introduced with the --repeat feature in coreutils-8.22] diff --git a/src/ptx.c b/src/ptx.c index 99da0cb5b1..be342eefc5 100644 --- a/src/ptx.c +++ b/src/ptx.c @@ -2015,6 +2015,8 @@ main (int argc, char **argv) case 10: output_format = XARGMATCH ("--format", optarg, format_args, format_vals); + break; + case_GETOPT_HELP_CHAR; case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS); diff --git a/tests/misc/ptx.pl b/tests/misc/ptx.pl index 2db953a92c..8a91d616af 100755 --- a/tests/misc/ptx.pl +++ b/tests/misc/ptx.pl @@ -33,6 +33,13 @@ my @Tests = # with coreutils-6.12 and earlier, this would act like "ptx F1 F1" ["2files", '-g1 -w1', {IN=>{F1=>"a"}}, {IN=>{F2=>"b"}}, {OUT=>" a\n b\n"}], + +# with coreutils-8.22 and earlier, the --format long option would +# fall through into the --help case. +["format-r", '--format=roff', {IN=>"foo\n"}, + {OUT=>".xx \"\" \"\" \"foo\" \"\"\n"}], +["format-t", '--format=tex', {IN=>"foo\n"}, + {OUT=>"\\xx {}{}{foo}{}{}\n"}], ); @Tests = triple_test \@Tests;