Skip to content

Commit a30c148

Browse files
mkiedrowiczgitster
authored andcommitted
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 <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 8997da3 commit a30c148

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

grep.c

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,21 @@ struct grep_opt *grep_opt_dup(const struct grep_opt *opt)
5959
return ret;
6060
}
6161

62+
static NORETURN void compile_regexp_failed(const struct grep_pat *p,
63+
const char *error)
64+
{
65+
char where[1024];
66+
67+
if (p->no)
68+
sprintf(where, "In '%s' at %d, ", p->origin, p->no);
69+
else if (p->origin)
70+
sprintf(where, "%s, ", p->origin);
71+
else
72+
where[0] = 0;
73+
74+
die("%s'%s': %s", where, p->pattern, error);
75+
}
76+
6277
static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
6378
{
6479
int err;
@@ -73,17 +88,9 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
7388
err = regcomp(&p->regexp, p->pattern, opt->regflags);
7489
if (err) {
7590
char errbuf[1024];
76-
char where[1024];
77-
if (p->no)
78-
sprintf(where, "In '%s' at %d, ",
79-
p->origin, p->no);
80-
else if (p->origin)
81-
sprintf(where, "%s, ", p->origin);
82-
else
83-
where[0] = 0;
8491
regerror(err, &p->regexp, errbuf, 1024);
8592
regfree(&p->regexp);
86-
die("%s'%s': %s", where, p->pattern, errbuf);
93+
compile_regexp_failed(p, errbuf);
8794
}
8895
}
8996

0 commit comments

Comments
 (0)