From: Junio C Hamano Date: Tue, 05 May 2009 19:37:34 GMT Subject: Re: [PATCH] Fix sloppy Getopt::Long. Message-ID: <7vfxfj1gu9.fsf@alter.siamese.dyndns.org> In-Reply-To: <1241547374-6737-1-git-send-email-robbat2@gentoo.org> "Robin H. Johnson" writes: > Getopt-Long v2.38 is much stricter about sloppy getopt usage. The > trailing pipe causes git-svn testcases to fail for all of the --stdin > argument calls. I am not objecting at all; just asking for clarification. > - { 'stdin|' => \$_stdin, %cmt_opts, %fc_opts, } ], > + { 'stdin' => \$_stdin, %cmt_opts, %fc_opts, } ], Is this "pipe" supposed to be followed by an alternative spelling of the option, as in 'stdin|standard-input' => \$_stdin, ... and is the sloppyness that it would be crazy to accept either --stdin or just -- (without actual option name) for this option? Could an older version of Getopt::Long() have accepted $ command --foo --bar - other args to set $_stdin to true with that "sloppy" syntax? If so people could have relied on such a behaviour, which is a bit worrying.