setup_pager: set GIT_PAGER_IN_USE
authorJeff King <peff@peff.net>
Thu, 18 Aug 2011 05:02:29 +0000 (22:02 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 18 Aug 2011 21:17:12 +0000 (14:17 -0700)
commit2e6c012e10fd866eb3259de3a929e0296daabbaf
treec53fe1c1082bfd909d26e2f59f98466658a20095
parent8d68a6d59378760c6bd5c7e0af75fe71c6ed78e7
setup_pager: set GIT_PAGER_IN_USE

We have always set a global "spawned_pager" variable when we
start the pager. This lets us make the auto-color decision
later in the program as as "we are outputting to a terminal,
or to a pager which can handle colors".

Commit 6e9af86 added support for the GIT_PAGER_IN_USE
environment variable. An external program calling git (e.g.,
git-svn) could set this variable to indicate that it had
already started the pager, and that the decision about
auto-coloring should take that into account.

However, 6e9af86 failed to do the reverse, which is to tell
external programs when git itself has started the pager.
Thus a git command implemented as an external script that
has the pager turned on (e.g., "git -p stash show") would
not realize it was going to a pager, and would suppress
colors.

This patch remedies that; we always set GIT_PAGER_IN_USE
when we start the pager, and the value is respected by both
this program and any spawned children.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pager.c
t/t7006-pager.sh