Skip to content

Commit 26ecfe3

Browse files
peffgitster
authored andcommitted
grep: use run-command's "dir" option for --open-files-in-pager
Git generally changes directory to the repository root on startup. When running "grep --open-files-in-pager" from a subdirectory, we chdir back to the original directory before running the pager, so that we can feed the relative pathnames to the pager. We currently do this chdir manually, but we can ask run_command to do it for us. This is fewer lines of code, and as a bonus, the chdir is limited to the child process, which avoids any unexpected surprises for code running after the pager (there isn't any currently, but this is future-proofing). Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 0bc85ab commit 26ecfe3

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

builtin/grep.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,9 +361,7 @@ static void run_pager(struct grep_opt *opt, const char *prefix)
361361
argv[i] = path_list->items[i].string;
362362
argv[path_list->nr] = NULL;
363363

364-
if (prefix && chdir(prefix))
365-
die(_("Failed to chdir: %s"), prefix);
366-
status = run_command_v_opt(argv, RUN_USING_SHELL);
364+
status = run_command_v_opt_cd_env(argv, RUN_USING_SHELL, prefix, NULL);
367365
if (status)
368366
exit(status);
369367
free(argv);

0 commit comments

Comments
 (0)