X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fargp-parse.c;h=5cab8cec3521093fc428bf51242e782ff150be04;hb=03f358b413de011c710f08b85cdeb0e5b10a3731;hp=35b3d900648d52beac9bb026385e35a1809e9efc;hpb=3030c5b5e0a5199e16b05927da72c43c42f211c3;p=gnulib.git diff --git a/lib/argp-parse.c b/lib/argp-parse.c index 35b3d9006..5cab8cec3 100644 --- a/lib/argp-parse.c +++ b/lib/argp-parse.c @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt - Copyright (C) 1995-2000, 2002-2004, 2009 Free Software Foundation, Inc. + Copyright (C) 1995-2000, 2002-2004, 2009-2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -254,7 +254,7 @@ struct parser struct group *groups; /* The end of the GROUPS array. */ struct group *egroup; - /* An vector containing storage for the CHILD_INPUTS field in all groups. */ + /* A vector containing storage for the CHILD_INPUTS field in all groups. */ void **child_inputs; /* True if we think using getopt is still useful; if false, then @@ -339,7 +339,7 @@ convert_options (const struct argp *argp, values (the sign of the lower bits is preserved however)... */ cvt->long_end->val = - ((opt->key | real->key) & USER_MASK) + ((opt->key ? opt->key : real->key) & USER_MASK) + (((group - cvt->parser->groups) + 1) << USER_BITS); /* Keep the LONG_OPTS list terminated. */