From: Junio C Hamano Date: Fri, 6 Jun 2014 18:32:49 +0000 (-0700) Subject: Merge branch 'sk/spawn-less-case-insensitively-from-grep-O-i' X-Git-Tag: v2.1.0-rc0~155 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/7e03f416633b5dbd242d6552e239d50a821262c6?hp=-c Merge branch 'sk/spawn-less-case-insensitively-from-grep-O-i' * sk/spawn-less-case-insensitively-from-grep-O-i: git grep -O -i: if the pager is 'less', pass the '-I' option --- 7e03f416633b5dbd242d6552e239d50a821262c6 diff --combined builtin/grep.c index 43af5b744f,1892335c06..c86a142f30 --- a/builtin/grep.c +++ b/builtin/grep.c @@@ -361,7 -361,9 +361,7 @@@ static void run_pager(struct grep_opt * argv[i] = path_list->items[i].string; argv[path_list->nr] = NULL; - if (prefix && chdir(prefix)) - die(_("Failed to chdir: %s"), prefix); - status = run_command_v_opt(argv, RUN_USING_SHELL); + status = run_command_v_opt_cd_env(argv, RUN_USING_SHELL, prefix, NULL); if (status) exit(status); free(argv); @@@ -377,7 -379,7 +377,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 @@@ -522,7 -524,9 +522,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) @@@ -872,6 -876,9 +872,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",