Add '--fixed-strings' option to "git log --grep" and friends

Add support for -F | --fixed-strings option to "git log --grep"
and friends: "git log --author", "git log --committer=<pattern>".
Code is based on implementation of this option in "git grep".

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jakub Narebski 2008-02-26 13:22:05 +01:00 committed by Junio C Hamano
parent c6fabfafbc
commit dc1c0fffd3
3 changed files with 15 additions and 1 deletions

View file

@ -31,6 +31,7 @@ SYNOPSIS
[ \--(author|committer|grep)=<pattern> ] [ \--(author|committer|grep)=<pattern> ]
[ \--regexp-ignore-case | \-i ] [ \--regexp-ignore-case | \-i ]
[ \--extended-regexp | \-E ] [ \--extended-regexp | \-E ]
[ \--fixed-strings | \-F ]
[ \--date={local|relative|default|iso|rfc|short} ] [ \--date={local|relative|default|iso|rfc|short} ]
[ [\--objects | \--objects-edge] [ \--unpacked ] ] [ [\--objects | \--objects-edge] [ \--unpacked ] ]
[ \--pretty | \--header ] [ \--pretty | \--header ]

View file

@ -153,6 +153,11 @@ limiting may be applied.
Consider the limiting patterns to be extended regular expressions Consider the limiting patterns to be extended regular expressions
instead of the default basic regular expressions. instead of the default basic regular expressions.
-F, --fixed-strings::
Consider the limiting patterns to be fixed strings (don't interpret
pattern as a regular expression).
--remove-empty:: --remove-empty::
Stop when a given path disappears from the tree. Stop when a given path disappears from the tree.

View file

@ -942,6 +942,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
int left = 1; int left = 1;
int all_match = 0; int all_match = 0;
int regflags = 0; int regflags = 0;
int fixed = 0;
/* First, search for "--" */ /* First, search for "--" */
seen_dashdash = 0; seen_dashdash = 0;
@ -1238,6 +1239,11 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
regflags |= REG_ICASE; regflags |= REG_ICASE;
continue; continue;
} }
if (!strcmp(arg, "--fixed-strings") ||
!strcmp(arg, "-F")) {
fixed = 1;
continue;
}
if (!strcmp(arg, "--all-match")) { if (!strcmp(arg, "--all-match")) {
all_match = 1; all_match = 1;
continue; continue;
@ -1293,8 +1299,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
} }
} }
if (revs->grep_filter) if (revs->grep_filter) {
revs->grep_filter->regflags |= regflags; revs->grep_filter->regflags |= regflags;
revs->grep_filter->fixed = fixed;
}
if (show_merge) if (show_merge)
prepare_show_merge(revs); prepare_show_merge(revs);