Skip to content

Commit

Permalink
grep: Put calls to fixmatch() and regmatch() into patmatch()
Browse files Browse the repository at this point in the history
Both match_one_pattern() and look_ahead() use fixmatch() and regmatch()
in the same way. They really want to match a pattern againt a string,
but now they need to know if the pattern is fixed or regexp.

This change cleans this up by introducing patmatch() (from "pattern
match") and also simplifies inserting other ways of matching a string.

Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michał Kiedrowicz authored and Junio C Hamano committed May 5, 2011
1 parent 5a69eaf commit 97e7778
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions grep.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,19 @@ static int regmatch(const regex_t *preg, char *line, char *eol,
return regexec(preg, line, 1, match, eflags);
}

static int patmatch(struct grep_pat *p, char *line, char *eol,
regmatch_t *match, int eflags)
{
int hit;

if (p->fixed)
hit = !fixmatch(p, line, eol, match);
else
hit = !regmatch(&p->regexp, line, eol, match, eflags);

return hit;
}

static int strip_timestamp(char *bol, char **eol_p)
{
char *eol = *eol_p;
Expand Down Expand Up @@ -461,10 +474,7 @@ static int match_one_pattern(struct grep_pat *p, char *bol, char *eol,
}

again:
if (p->fixed)
hit = !fixmatch(p, bol, eol, pmatch);
else
hit = !regmatch(&p->regexp, bol, eol, pmatch, eflags);
hit = patmatch(p, bol, eol, pmatch, eflags);

if (hit && p->word_regexp) {
if ((pmatch[0].rm_so < 0) ||
Expand Down Expand Up @@ -791,10 +801,7 @@ static int look_ahead(struct grep_opt *opt,
int hit;
regmatch_t m;

if (p->fixed)
hit = !fixmatch(p, bol, bol + *left_p, &m);
else
hit = !regmatch(&p->regexp, bol, bol + *left_p, &m, 0);
hit = patmatch(p, bol, bol + *left_p, &m, 0);
if (!hit || m.rm_so < 0 || m.rm_eo < 0)
continue;
if (earliest < 0 || m.rm_so < earliest)
Expand Down

0 comments on commit 97e7778

Please sign in to comment.