summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Johannes Sixt <j6t@kdbg.org>2009-09-11 19:45:07 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-09-11 16:35:08 -0700
commit25fc1786ab147daa9ffa43ebcbaf5c1cc6e50d4f (patch)
tree13fb38f6e94bfbfc5773c38c86dae4d385ee28b2
parentstart_command: do not clobber cmd->env on Windows code path (diff)
downloadtgif-25fc1786ab147daa9ffa43ebcbaf5c1cc6e50d4f.tar.xz
pager: set LESS=FRSX also on Windows
Previously, this environment variable was set in the pager_preexec callback, which is conditionally-compiled only on Unix, because it is not, and cannot be, called on Windows. With this patch the env member of struct child_process is used to set the environment variable, which also works on Windows. Noticed by Alexey Borzenkov. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--pager.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pager.c b/pager.c
index 4921843577..f416d38ac2 100644
--- a/pager.c
+++ b/pager.c
@@ -21,8 +21,6 @@ static void pager_preexec(void)
FD_ZERO(&in);
FD_SET(0, &in);
select(1, &in, NULL, &in, NULL);
-
- setenv("LESS", "FRSX", 0);
}
#endif
@@ -70,6 +68,10 @@ void setup_pager(void)
pager_argv[2] = pager;
pager_process.argv = pager_argv;
pager_process.in = -1;
+ if (!getenv("LESS")) {
+ static const char *env[] = { "LESS=FRSX", NULL };
+ pager_process.env = env;
+ }
#ifndef __MINGW32__
pager_process.preexec_cb = pager_preexec;
#endif