aboutsummaryrefslogtreecommitdiff
path: root/builtin-grep.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-11-22 16:28:29 -0800
committerJunio C Hamano <gitster@pobox.com>2009-11-22 16:28:29 -0800
commit3fa384d27e79d4731a9188716f566fa423a8ff50 (patch)
treed3d262941f13e28c4ed27ee293e86f33689700bd /builtin-grep.c
parenta1b01c45d58bba35ec1c2533dfb8d87cfa08b19e (diff)
parent5183bf67278ce5a0da9779d74f05169beac219b8 (diff)
downloadgit-3fa384d27e79d4731a9188716f566fa423a8ff50.tar.gz
git-3fa384d27e79d4731a9188716f566fa423a8ff50.tar.xz
Merge branch 'bc/grep-i-F'
* bc/grep-i-F: grep: Allow case insensitive search of fixed-strings
Diffstat (limited to 'builtin-grep.c')
-rw-r--r--builtin-grep.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/builtin-grep.c b/builtin-grep.c
index 9a9e3fccd..a5b6719a1 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -367,7 +367,7 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
push_arg("-h");
if (opt->regflags & REG_EXTENDED)
push_arg("-E");
- if (opt->regflags & REG_ICASE)
+ if (opt->ignore_case)
push_arg("-i");
if (opt->binary == GREP_BINARY_NOMATCH)
push_arg("-I");
@@ -710,8 +710,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
OPT_GROUP(""),
OPT_BOOLEAN('v', "invert-match", &opt.invert,
"show non-matching lines"),
- OPT_BIT('i', "ignore-case", &opt.regflags,
- "case insensitive matching", REG_ICASE),
+ OPT_BOOLEAN('i', "ignore-case", &opt.ignore_case,
+ "case insensitive matching"),
OPT_BOOLEAN('w', "word-regexp", &opt.word_regexp,
"match patterns only at word boundaries"),
OPT_SET_INT('a', "text", &opt.binary,
@@ -841,6 +841,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
external_grep_allowed = 0;
if (!opt.pattern_list)
die("no pattern given.");
+ if (!opt.fixed && opt.ignore_case)
+ opt.regflags |= REG_ICASE;
if ((opt.regflags != REG_NEWLINE) && opt.fixed)
die("cannot mix --fixed-strings and regexp");
compile_grep_patterns(&opt);