Junio C Hamano [off-list ref] wrote:
Matthias Lederhofer [off-list ref] writes:
Arrrrrrrgh! The message I wanted to send you went to Jeff.
Your Mail-Followup-To: fooled me. Please do not do this.
Sorry.
quoted
Is there any reason not checking isatty()?
Not that I can think of, but do people really run "git status"?
I do :)
I think Jeff's follow-up "vim colorizer" makes a lot more sense
than colorizing "git status" output -- it gives reminder during
the last chance the user has to notice such problems, which is
while composing the commit log message.
I like the colored git status. Here is a patch to honor isatty(1) and
pager_in_use (exporting GIT_PAGER_IN_USE) with pager.color.
---
From c01b26cd332283d3b3feaeae4a8218bb409aea2c Mon Sep 17 00:00:00 2001
From: Matthias Lederhofer <redacted>
Date: Sat, 5 Aug 2006 14:09:49 +0200
Subject: [PATCH] git-status: do not use colors all the time
Either [ -t 1 ] has to be true or the pager is used and pager.color is
not false.
Signed-off-by: Matthias Lederhofer <redacted>
---
git-commit.sh | 6 +++++-
pager.c | 1 +
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/git-commit.sh b/git-commit.sh
index b7269c2..ad0cbb1 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -20,7 +20,11 @@ case "$0" in
*status)
status_only=t
unmerged_ok_if_status=--unmerged
- color=`git-repo-config --bool --get status.color`
+ [ "`git-repo-config --bool --get status.color`" = 'true' ] &&
+ ([ -t 1 ] || (
+ [ -n "$GIT_PAGER_IN_USE" ] &&
+ [ "`git-repo-config --bool --get pager.color`" != 'false' ]
+ )) && color=true
eval `git-repo-config --get-regexp status.color. \
| while read k v; do
echo color_${k#status.color.}=$vdiff --git a/pager.c b/pager.c
index dcb398d..3ba4166 100644
--- a/pager.c
+++ b/pager.c
@@ -27,6 +27,7 @@ void setup_pager(void)
return;
pager_in_use = 1; /* means we are emitting to terminal */
+ setenv("GIT_PAGER_IN_USE", "1", 1);
if (pipe(fd) < 0)
return;--
1.4.2.rc2.gd71a