Merge branch 'sk/spawn-less-case-insensitively-from-grep-O-i' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2014 18:47:49 +0000 (11:47 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2014 18:47:49 +0000 (11:47 -0700)
"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

1  2 
builtin/grep.c
diff --combined builtin/grep.c
index 69ac2d8797ec32dc206425db0a2f3d7356810cfe,1892335c060552e07dbd344001b5d11de47c9c40..b8d440d0e099543d1b05de0dbb13cb4f8d32da29
@@@ -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",