From: Michał Kiedrowicz Date: Mon, 9 May 2011 21:52:04 +0000 (+0200) Subject: grep: Extract compile_regexp_failed() from compile_regexp() X-Git-Tag: v1.7.6-rc0~18^2~9 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=a30c148aa7ec6583dbdb38fa6601df3cf4f5a660;p=git.git grep: Extract compile_regexp_failed() from compile_regexp() This simplifies compile_regexp() a little and allows re-using error handling code. Signed-off-by: Michał Kiedrowicz Signed-off-by: Junio C Hamano --- diff --git a/grep.c b/grep.c index 250462e0c..870d10cf6 100644 --- a/grep.c +++ b/grep.c @@ -59,6 +59,21 @@ struct grep_opt *grep_opt_dup(const struct grep_opt *opt) return ret; } +static NORETURN void compile_regexp_failed(const struct grep_pat *p, + const char *error) +{ + char where[1024]; + + if (p->no) + sprintf(where, "In '%s' at %d, ", p->origin, p->no); + else if (p->origin) + sprintf(where, "%s, ", p->origin); + else + where[0] = 0; + + die("%s'%s': %s", where, p->pattern, error); +} + static void compile_regexp(struct grep_pat *p, struct grep_opt *opt) { int err; @@ -73,17 +88,9 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt) err = regcomp(&p->regexp, p->pattern, opt->regflags); if (err) { char errbuf[1024]; - char where[1024]; - if (p->no) - sprintf(where, "In '%s' at %d, ", - p->origin, p->no); - else if (p->origin) - sprintf(where, "%s, ", p->origin); - else - where[0] = 0; regerror(err, &p->regexp, errbuf, 1024); regfree(&p->regexp); - die("%s'%s': %s", where, p->pattern, errbuf); + compile_regexp_failed(p, errbuf); } }