* src/getargs.c (short_options): Split and sort for readability.

-g and -x take optional arguments, just like their long options.
* build-aux/cross-options.pl: Use /x to make the regexp easier to
understand.
Fix the handling of $opt which resulted in all the argument to be
considered as optional.
This commit is contained in:
Akim Demaille
2008-02-28 16:01:16 +00:00
parent 59da312bc7
commit 7020f1e9e2
3 changed files with 40 additions and 4 deletions

View File

@@ -7,7 +7,12 @@ use strict;
my %option;
while (<>)
{
if (/^\s*(?:(-\w), )?(--[-\w]+)(\[?)(=[-\w]+)?\]?/)
if (/^\s* # Initial spaces.
(?:(-\w),\s+)? # $1: Possible short option.
(--[-\w]+) # $2: Long option.
(\[?) # $3: '[' iff the argument is optional.
(?:=([-\w]+))? # $4: Possible argument name.
/x)
{
my ($short, $long, $opt, $arg) = ($1, $2, $3, $4);
$short = defined $short ? '@option{' . $short . '}' : '';
@@ -16,7 +21,7 @@ while (<>)
$arg =~ s/^=//;
$arg = '@var{' . lc ($arg) . '}';
$arg = '[' . $arg . ']'
if defined $opt;
if $opt eq '[';
$option{"$long=$arg"} = $short ? "$short $arg" : '';
}
else