On 09/22/2014 11:42 PM, Bernhard Voelker wrote: > On 09/22/2014 10:11 PM, Andreas Schwab wrote: >> Pádraig Brady <[email protected]> writes: >>> On 09/22/2014 10:53 AM, Alban Bedel wrote: >> Huh? >> >> $ man/dummy-man foo >> man/dummy-man: too many non-option arguments >> >> Andreas. >> > > oops, in commit b3578fc9ffe70b9466687f9f6470a85f1a0ab14f > I added the --info-page=... option _after_ the program argument > in local.mk. The original help2man doesn't have a problem with > that, as it does the normal GNU option parsing, but the parsing > loop in dummy-man stops parsing when it hit the program argument, > thus leaving $# = 2 (and the --info-page option unused). > > I'll propose a fix for both the test in dummy-man and local.mk > soon.
The proper fix for 'dummy-man' would have been to read the program name argument in the above while loop, checking that such a non-option argument has only been passed once, and then check the final remaining argument count again. I took the easier road, and only fixed the error condition in patch 1, while patch 2 fixes the caller in local.mk. Have a nice day, Berny >From bf2057b20b6c84d792816898dcded905bfdb146f Mon Sep 17 00:00:00 2001 From: Bernhard Voelker <[email protected]> Date: Tue, 23 Sep 2014 01:44:51 +0200 Subject: [PATCH 1/2] build: fix argument count check in dummy-man again * man/dummy-man: Fix argument count check, now only permitting exactly 1 argument, the program name. Reported by Andreas Schwab <[email protected]> --- man/dummy-man | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/dummy-man b/man/dummy-man index 65b85d5..bf31912 100755 --- a/man/dummy-man +++ b/man/dummy-man @@ -39,7 +39,7 @@ while test $# -gt 0; do done test $# -gt 0 || fatal_ "missing argument" -test $# -gt 1 || fatal_ "too many non-option arguments" +test $# -le 1 || fatal_ "too many non-option arguments" baseout=`basename_ "$output"` sed 's/^/WARNING: /' >&2 <<END -- 1.8.4.5 >From d2bcb04400cb00ffd55e7a1d4e5a8e3e7329c062 Mon Sep 17 00:00:00 2001 From: Bernhard Voelker <[email protected]> Date: Tue, 23 Sep 2014 01:49:47 +0200 Subject: [PATCH 2/2] build: pass program name to help2man after other options * man/local.mk (.x.1): Move the program name argument down after the last option argument when calling $(run_help2man). While the other way would be accepted for the GNU help2man program, it is not for the 'dummy-man' script (called as a fallback on systems lacking perl). The wrong order was introduced in commit v8.21-119-gb3578fc while adding the --info-page option. --- man/local.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/man/local.mk b/man/local.mk index 61ecd00..24cdce0 100644 --- a/man/local.mk +++ b/man/local.mk @@ -187,8 +187,9 @@ endif && $(run_help2man) \ --source='$(PACKAGE_STRING)' \ --include=$(srcdir)/man/$$name.x \ - --output=$$t/$$name.1 $$t/$$argv \ + --output=$$t/$$name.1 \ --info-page='\(aq(coreutils) '$$name' invocation\(aq' \ + $$t/$$argv \ && sed \ -e 's|$*\.td/||g' \ -e '/For complete documentation/d' \ -- 1.8.4.5
