Re: [PATCH 3/5 v4] diff: parse detached options --stat-width n, --stat-name-width n
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 2, 2010, 16:56 UTC
- Message-ID
- <7v1vahnebk.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1280478669-22973-3-git-send-email-Matthieu.Moy@imag.fr>
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
Show 32 quoted lines
> Part of a campaign for unstuck forms of options.
>
> switch (*arg) {
> case '-':
> - if (!prefixcmp(arg, "-width="))
> - width = strtoul(arg + 7, &end, 10);
> - else if (!prefixcmp(arg, "-name-width="))
> - name_width = strtoul(arg + 12, &end, 10);
> + if (!prefixcmp(arg, "-width")) {
> + arg += strlen("-width");
> + if (*arg == '=')
> + width = strtoul(arg + 1, &end, 10);
> + else if (!*arg && !av[1])
> + die("Option '--stat-width' requires a value");
> + else if (!*arg) {
> + width = strtoul(av[1], &end, 10);
> + argcount = 2;
> + }
> + } else if (!prefixcmp(arg, "-name-width")) {
> + arg += strlen("-name-width");
> + if (*arg == '=')
> + name_width = strtoul(arg + 1, &end, 10);
> + else if (!*arg && !av[1])
> + die("Option '--stat-name-width' requires a value");
> + else if (!*arg) {
> + name_width = strtoul(av[1], &end, 10);
> + argcount = 2;
> + }
> + }
> break;
> case '=':
> width = strtoul(arg+1, &end, 10);This will accept "--stat-width=40", "--stat-width 40", and "--stat=40,20" but not "--stat 40,20" --- am I reading the patch correctly?
Not a complaint but trying to double-check. I think it is Ok not to try guessing wrong (the user may be interested in a path 40,20, for example).
Thanks.