Eric Sunshine <[email protected]> writes:
> On Fri, Feb 5, 2016 at 9:03 PM, Nguyễn Thái Ngọc Duy <[email protected]>
> wrote:
>> diff --git a/test-regex.c b/test-regex.c
>> @@ -21,8 +38,38 @@ static int test_regex_bug(void)
>> int main(int argc, char **argv)
>> {
>> + const char *pat;
>> + const char *str;
>> + int flags = 0;
>> + regex_t r;
>> + regmatch_t m[1];
>> +
>> if (argc == 2 && !strcmp(argv[1], "--bug"))
>> return test_regex_bug();
>> - else
>> - die("must be used with --bug");
>> + else if (argc < 3)
>> + die("usage: test-regex --bug\n"
>> + " test-regex <pattern> <string> [<options>]");
>
> This is just a test program, so it probably isn't that important, but
> die() automatically prepends "fatal: " which means the alignment of
> the second line will be wrong. Perhaps you want to use usage() instead
> which automatically prepends "usage: " (and drop the literal "usage: "
> from the above string).
So true.
>> + argv++;
>> + pat = *argv++;
>> + str = *argv++;
>> + while (*argv) {
>> + struct reg_flag *rf;
>> + for (rf = reg_flags; rf->name; rf++)
>> + if (!strcmp(*argv, rf->name)) {
>> + flags |= rf->flag;
>> + break;
>> + }
>> + if (!rf->name)
>> + die("do not recognize %s", *argv);
>> + argv++;
>> + }
>> + git_setup_gettext();
>> +
>> + if (regcomp(&r, pat, flags))
>> + die("failed regcomp() for pattern '%s'", pat);
>> + if (regexec(&r, str, 1, m, 0))
>> + return 1;
>> +
>> + return 0;
>> }
>
> This version is much easier to read without the "bug" special case
> spread throughout the code. Thanks.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html