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).
> + 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