mirror of
https://github.com/git/git.git
synced 2026-03-15 03:00:07 +01:00
Merge branch 'mk/grep-pcre' into next
* mk/grep-pcre: grep: Put calls to fixmatch() and regmatch() into patmatch() contrib/completion: --line-number to git grep Documentation: Add --line-number to git-grep synopsis
This commit is contained in:
@@ -12,7 +12,7 @@ SYNOPSIS
|
||||
'git grep' [-a | --text] [-I] [-i | --ignore-case] [-w | --word-regexp]
|
||||
[-v | --invert-match] [-h|-H] [--full-name]
|
||||
[-E | --extended-regexp] [-G | --basic-regexp]
|
||||
[-F | --fixed-strings] [-n]
|
||||
[-F | --fixed-strings] [-n | --line-number]
|
||||
[-l | --files-with-matches] [-L | --files-without-match]
|
||||
[(-O | --open-files-in-pager) [<pager>]]
|
||||
[-z | --null]
|
||||
|
||||
@@ -1441,7 +1441,7 @@ _git_grep ()
|
||||
__gitcomp "
|
||||
--cached
|
||||
--text --ignore-case --word-regexp --invert-match
|
||||
--full-name
|
||||
--full-name --line-number
|
||||
--extended-regexp --basic-regexp --fixed-strings
|
||||
--files-with-matches --name-only
|
||||
--files-without-match
|
||||
|
||||
23
grep.c
23
grep.c
@@ -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;
|
||||
@@ -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) ||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user