dturner@xxxxxxxxxxxxxxxx writes: > From: David Turner <dturner@xxxxxxxxxxx> > > Signed-off-by: David Turner <dturner@xxxxxxxxxxx> Ehh, why? > --- > builtin/grep.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/builtin/grep.c b/builtin/grep.c > index 69ac2d8..e9fe040 100644 > --- a/builtin/grep.c > +++ b/builtin/grep.c > @@ -355,15 +355,25 @@ static void run_pager(struct grep_opt *opt, const char *prefix) > { > struct string_list *path_list = opt->output_priv; > const char **argv = xmalloc(sizeof(const char *) * (path_list->nr + 1)); > + static char old_directory[PATH_MAX+1]; > int i, status; > > for (i = 0; i < path_list->nr; i++) > argv[i] = path_list->items[i].string; > argv[path_list->nr] = NULL; > > - if (prefix && chdir(prefix)) > - die(_("Failed to chdir: %s"), prefix); > + > + if (prefix) { > + if (!getcwd(old_directory, PATH_MAX+1)) > + die(_("Failed to get cwd: %s"), prefix); > + if (chdir(prefix)) > + die(_("Failed to chdir: %s"), prefix); > + } > status = run_command_v_opt(argv, RUN_USING_SHELL); > + if (prefix) > + if (chdir(old_directory)) > + die(_("Failed to chdir: %s"), old_directory); > + > if (status) > exit(status); > free(argv); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html