https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291141
Bug ID: 291141
Summary: ministat(1) reports "Unknown option" when legal option
given but argument missing
Product: Base System
Version: 14.3-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: [email protected]
Reporter: [email protected]
When an option with an impermissible argument is supplied to ministat(1), it
prints a usage message to stderr, preceded by a statement explaining which
option triggered the error and why, e.g.
> $ ministat -c 72
> No support for confidence level
> Usage: ...
> $ ministat -C 0
> Column number should be positive.
> Usage: ...
This printing occurs as part of the `usage` function in lines 527-549:
https://github.com/freebsd/freebsd-src/blob/main/usr.bin/ministat/ministat.c
Minor nit: as above, some of the explanations end in a period (full stop) and
some do not. There's no apparent pattern to this: some are only sentence
fragments but still have a period, others are complete sentences but don't.
They should probably all end in a period.
When an illegal option is supplied, or a legal option that requires an argument
is supplied without one, getopt(3) prints an error message first. The switch
statement that parses the options in ministat has the less informative default
`usage("Unknown option");` - see lines 623-5. This produces:
> $ ministat -z
> ministat: illegal option --z
> Unknown option
> Usage: ...
Here, "Unknown option" is redundant to the getopt error printed before it -
and, since it doesn't identify the problematic option, is much less helpful.
> $ ministat -C
> ministat: option requires an argument --C
> Unknown option
> Usage: ...
Now "Unknown option" is incorrect since -C is a legal option, it just requires
an argument.
Tested on 14.3, but these results should be unaffected by
https://reviews.freebsd.org/D53710 and may be of interest to 0mp@?
--
You are receiving this mail because:
You are the assignee for the bug.