-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Jim Meyering on 1/10/2009 10:48 AM: > "[" feels like it should be the exception. > I see treating --v like --version as a feature. a typing saver. > But with "[", it's good to minimize the number of strings that > make it act differently. > > Besides, why make everyone type it all out if there's no need?
Then maybe the better approach would be adding a parameter to parse_long_options (or rather, creating a new function with an extra parameter, and making parse_long_options default to calling it with the parameter at 0, but make echo and [ call it with the parameter set to 1), where having the parameter set controls whether --h is ignored (the exception, for echo) or treated as an abbreviation (the rule, for things like basename). Or, for echo and [, we could skip parse_long_options altogether, and hardcode this instead: argc == 2 && (STREQ (argv[1], "--help") || STREQ (argv[1], "--version")) > Then you don't have to "know" that a program accepts only > --help and --version, and hence accepts no abbreviations, > versus those that accept at least one more long option, which > do provide the feature. > > Also, it'd mean adding a third option would have > the side effect of enabling --h and --v recognition. That's kind of what happened with expr vs. factor. Since parse_long_options only recognizes exactly one argument as a long option, adding another option already has a side effect: $ src/factor --help | head -n1 Usage: src/factor [NUMBER]... $ src/factor --help --version | head -n1 Usage: src/factor [NUMBER]... $ src/expr --help | head -n1 Usage: src/expr EXPRESSION $ src/expr --help --version | head -n1 src/expr: syntax error expr currently uses parse_long_options, while factor does not; therefore factor is able to handle --help --version while expr is not. Maybe parse_long_options should be taught to recognize multiple options that all match an abbreviation of --help/--version, rather than expecting exactly one option? - -- Don't work too hard, make some time for fun as well! Eric Blake e...@byu.net -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAklo4Y0ACgkQ84KuGfSFAYAkwwCcDzAlg75YBcUhuyPnkJ3oQKRb REkAn0ZCjFU2Wpe76N93RdtH7e/bJ+b/ =zkiz -----END PGP SIGNATURE----- _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils