diffcore-pickaxe: Add regcomp_or_die()
There's another regcomp code block coming in this function that needs the same error handling. This function can help avoid duplicating error handling code. Helped-by: Jeff King <peff@peff.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
18547aacf5
commit
3d5b23a362
@ -198,6 +198,18 @@ static void pickaxe(struct diff_queue_struct *q, struct diff_options *o,
|
|||||||
*q = outq;
|
*q = outq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void regcomp_or_die(regex_t *regex, const char *needle, int cflags)
|
||||||
|
{
|
||||||
|
int err = regcomp(regex, needle, cflags);
|
||||||
|
if (err) {
|
||||||
|
/* The POSIX.2 people are surely sick */
|
||||||
|
char errbuf[1024];
|
||||||
|
regerror(err, regex, errbuf, 1024);
|
||||||
|
regfree(regex);
|
||||||
|
die("invalid regex: %s", errbuf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void diffcore_pickaxe(struct diff_options *o)
|
void diffcore_pickaxe(struct diff_options *o)
|
||||||
{
|
{
|
||||||
const char *needle = o->pickaxe;
|
const char *needle = o->pickaxe;
|
||||||
@ -206,18 +218,10 @@ void diffcore_pickaxe(struct diff_options *o)
|
|||||||
kwset_t kws = NULL;
|
kwset_t kws = NULL;
|
||||||
|
|
||||||
if (opts & (DIFF_PICKAXE_REGEX | DIFF_PICKAXE_KIND_G)) {
|
if (opts & (DIFF_PICKAXE_REGEX | DIFF_PICKAXE_KIND_G)) {
|
||||||
int err;
|
|
||||||
int cflags = REG_EXTENDED | REG_NEWLINE;
|
int cflags = REG_EXTENDED | REG_NEWLINE;
|
||||||
if (DIFF_OPT_TST(o, PICKAXE_IGNORE_CASE))
|
if (DIFF_OPT_TST(o, PICKAXE_IGNORE_CASE))
|
||||||
cflags |= REG_ICASE;
|
cflags |= REG_ICASE;
|
||||||
err = regcomp(®ex, needle, cflags);
|
regcomp_or_die(®ex, needle, cflags);
|
||||||
if (err) {
|
|
||||||
/* The POSIX.2 people are surely sick */
|
|
||||||
char errbuf[1024];
|
|
||||||
regerror(err, ®ex, errbuf, 1024);
|
|
||||||
regfree(®ex);
|
|
||||||
die("invalid regex: %s", errbuf);
|
|
||||||
}
|
|
||||||
regexp = ®ex;
|
regexp = ®ex;
|
||||||
} else {
|
} else {
|
||||||
kws = kwsalloc(DIFF_OPT_TST(o, PICKAXE_IGNORE_CASE)
|
kws = kwsalloc(DIFF_OPT_TST(o, PICKAXE_IGNORE_CASE)
|
||||||
|
Loading…
Reference in New Issue
Block a user