git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] pager: do not leak "GIT_PAGER_IN_USE" to the pager
@ 2015-07-03 17:18 Junio C Hamano
  2015-07-03 17:56 ` Jeff King
  0 siblings, 1 reply; 2+ messages in thread
From: Junio C Hamano @ 2015-07-03 17:18 UTC (permalink / raw)
  To: git; +Cc: Jeff King

Since 2e6c01e2, we export GIT_PAGER_IN_USE so that a process that
becomes the upstream of the spawned pager can still tell that we
have spawned the pager and decide to do colored output even when
its output no longer goes to a terminal (i.e. isatty(1)).

But we forgot to clear it from the enviornment of the spawned pager.
This is not a problem in a sane world, but if you have a handful of
thousands Git users in your organization, somebody is bound to do
strange things, e.g. typing "!<ENTER>" instead of 'q' to get control
back from $LESS.  GIT_PAGER_IN_USE is still set in that subshell
spawned by "less", and all sorts of interesting things starts
happening, e.g. "git diff | cat" starts coloring its output.

We can clear the environment variable in the half of the fork that
runs the pager to avoid the confusion.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

 * Arguably, "git diff | cat" that is colored is much minor problem
   than that the user keep using that subshell from pager without
   realizing.  The user may run more git commands that spawn a pager
   and do the "!<ENTER>" infinite times creating a deep process tree
   and then "logout" many number of times.

 pager.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pager.c b/pager.c
index 98b2682..070dc11 100644
--- a/pager.c
+++ b/pager.c
@@ -78,6 +78,7 @@ void setup_pager(void)
 		argv_array_push(&pager_process.env_array, "LESS=FRX");
 	if (!getenv("LV"))
 		argv_array_push(&pager_process.env_array, "LV=-c");
+	argv_array_push(&pager_process.env_array, "GIT_PAGER_IN_USE");
 	if (start_command(&pager_process))
 		return;
 

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-07-03 17:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-03 17:18 [PATCH] pager: do not leak "GIT_PAGER_IN_USE" to the pager Junio C Hamano
2015-07-03 17:56 ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).