From: Junio C Hamano Date: Wed, 25 Jun 2014 18:47:49 +0000 (-0700) Subject: Merge branch 'sk/spawn-less-case-insensitively-from-grep-O-i' into maint X-Git-Tag: v2.0.1~14 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/75b1b04c63e3dfa02fd71caa95c17ed2c3b43050?hp=-c Merge branch 'sk/spawn-less-case-insensitively-from-grep-O-i' into maint "git grep -O" to show the lines that hit in the pager did not work well with case insensitive search. We now spawn "less" with its "-I" option when it is used as the pager (which is the default). * sk/spawn-less-case-insensitively-from-grep-O-i: git grep -O -i: if the pager is 'less', pass the '-I' option --- 75b1b04c63e3dfa02fd71caa95c17ed2c3b43050 diff --combined builtin/grep.c index 69ac2d8797,1892335c06..b8d440d0e0 --- a/builtin/grep.c +++ b/builtin/grep.c @@@ -379,7 -379,7 +379,7 @@@ static int grep_cache(struct grep_opt * const struct cache_entry *ce = active_cache[nr]; if (!S_ISREG(ce->ce_mode)) continue; - if (!match_pathspec_depth(pathspec, ce->name, ce_namelen(ce), 0, NULL)) + if (!ce_path_match(ce, pathspec, NULL)) continue; /* * If CE_VALID is on, we assume worktree file and its cache entry @@@ -524,7 -524,9 +524,7 @@@ static int grep_directory(struct grep_o fill_directory(&dir, pathspec); for (i = 0; i < dir.nr; i++) { - const char *name = dir.entries[i]->name; - int namelen = strlen(name); - if (!match_pathspec_depth(pathspec, name, namelen, 0, NULL)) + if (!dir_path_match(dir.entries[i], pathspec, 0, NULL)) continue; hit |= grep_file(opt, dir.entries[i]->name); if (hit && opt->status_only) @@@ -874,6 -876,9 +874,9 @@@ int cmd_grep(int argc, const char **arg if (len > 4 && is_dir_sep(pager[len - 5])) pager += len - 4; + if (opt.ignore_case && !strcmp("less", pager)) + string_list_append(&path_list, "-I"); + if (!strcmp("less", pager) || !strcmp("vi", pager)) { struct strbuf buf = STRBUF_INIT; strbuf_addf(&buf, "+/%s%s",