Subject: bug#7434: When an incorrect option is used before --help/--version, automake behaviour is inconsistent with that of other GNU programs.

From: Stefano Lattarini <[email-masked]>
Date: Thu, 18 Nov 2010 22:01:06 +0100

On Thursday 18 November 2010, Ralf Wildenhues wrote:
> Hello,
Hi Ralf.  I answer here because I'm not subscribed to bug-standards;
I hope that's not a problem.

> 
> * Stefano Lattarini wrote on Thu, Nov 18, 2010 at 05:28:30PM CET:
> > On Thursday 18 November 2010, Eric Blake wrote:
> > > On 11/18/2010 08:22 AM, Stefano Lattarini wrote:
> > > > Currently, automake and aclocal scan their command line looking for
> > > > `--help' and `--version' even after an invalid option has been seen;
> > > > and in case one of those two options is seen, it takes precedence
> > > > even over error reporting about preceding invalid options.
> > > 
> > > GNU Coding Standards _only_ require that --help and --version be
> > > recognized as the first argument, with no other arguments.
> > > When possible, recognizing --help and --version after other arguments,
> > > or with other arguments afterwards, is nice, but there are no rules
> > > that require that consistency.
> 
> > Not exactly.  The GNU Coding Standards read (my emphasis):
> > 
> >   ``The standard --version option should direct the program to print
> >     information about its name, version, origin and legal status, all
> >     on standard output, and then exit successfully. Other options and
> >     arguments should be ignored *once this is seen*, and the program
> >     should not perform its normal function.''
> > 
> > So it means that the behaviour of GNU m4 (and the other mentioned
> > programs) is compliant with the GCS, while the automake behaviour
> > is "overzealous" in this respect.
> 
> I think the GCS should be adjusted then.
I strongly disagree.

> IIUC then GNU has valued usability over implementation simplicity.
True, but I don't think that the current behaviour of autoconf, m4,
sed, libtool, etc. in this matter can be described as lacking in
usability.  Has any real user ever complained about such a behaviour
(honest question)?  If not, then the behaviour is clearly correct
and good enough.
> I think --help should work whereever it is put on a command line,
> except after -- or right after an option which requires an argument
I disagree; that would complicate the implementation without providing
any real advantage for the users IMHO.

> (or at least GCS should allow for this behavior).
They alrady does (so automake is safe in this respect even with its
current behaviour); they just doesn't require it.  Which is good IMO.

> The point being that I type
> 
> $ foo --zork --barf
> foo: blabla error, see --help
> 
> and then type <up><space>--help<enter> to find out more.
Or type <up><ctrl-a><alt-f><space>--help<enter> to find out more.
Or even type "foo --help" to find out more.  These are not much
more complex or lacking in usability, IMHO.
 
> Let's address this on bug-standards before changing any programs.
I'm not subscribed to that list, so please CC me if you want me to
contribute to the discussion.  Thanks.

Regards,
   Stefano