Re: [PATCHv2 1/2] parse-options: add PARSE_OPT_LITERAL_ARGHELP for complicated argh's
Show 19 quoted lines
> On Thu, May 21, 2009 at 9:51 AM, René Scharfe
> <rene.scharfe@lsrfire.ath.cx> wrote:
>> Junio C Hamano schrieb:
>>> Hmmm, why does this break t0040 (I am queuing this on top of 5acb3e5)?
>> Probably because it changes this:
>>
>> Â Â Â Â pos += fprintf(...);
>>
>> into this (simplified, usage_argh() expanded):
>>
>> Â Â Â Â pos += pos + fprintf(...);
>>
>> usage_argh() doesn't need the parameter pos.
>>
>> René
>>
>
> Woops. I thought I ran the tests but I guess I didn't. This is the
> correct fix, thanks.
And here's the patch you can squash in.
diff --git a/parse-options.c b/parse-options.c
index 2b880b1..e8955be 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -361,7 +361,7 @@ int parse_options(int argc, const char **argv, const struct option *options,
return parse_options_end(&ctx);
}
-static int usage_argh(const struct option *opts, int pos)
+static int usage_argh(const struct option *opts)
{
const char *s;
int literal = opts->flags & PARSE_OPT_LITERAL_ARGHELP;
@@ -372,7 +372,7 @@ static int usage_argh(const struct option *opts, int pos)
s = literal ? "[%s]" : "[<%s>]";
else
s = literal ? " %s" : " <%s>";
- return pos + fprintf(stderr, s, opts->argh);
+ return fprintf(stderr, s, opts->argh);
}
#define USAGE_OPTS_WIDTH 24
@@ -436,7 +436,7 @@ int usage_with_options_internal(const char * const *usagestr,
/* FALLTHROUGH */
case OPTION_STRING:
if (opts->argh)
- pos += usage_argh(opts, pos);
+ pos += usage_argh(opts);
else {
if (opts->flags & PARSE_OPT_OPTARG)
if (opts->long_name)