pager: set LV=-c alongside LESS=FRSX
commite54c1f2d2533c5406abeb8e3e0cf78c68ca9c21e
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 7 Jan 2014 02:14:05 +0000 (6 18:14 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 Jan 2014 17:23:41 +0000 (7 09:23 -0800)
treebbe2d918a0c6247be6df19d4ebd0a520f49e51f3
parentc90d3dbe7db37f298e7ce858cfc4c494113f8945
pager: set LV=-c alongside LESS=FRSX

On systems with lv configured as the preferred pager (i.e.,
DEFAULT_PAGER=lv at build time, or PAGER=lv exported in the
environment) git commands that use color show control codes instead of
color in the pager:

$ git diff
^[[1mdiff --git a/.mailfilter b/.mailfilter^[[m
^[[1mindex aa4f0b2..17e113e 100644^[[m
^[[1m--- a/.mailfilter^[[m
^[[1m+++ b/.mailfilter^[[m
^[[36m@@ -1,11 +1,58 @@^[[m

"less" avoids this problem because git uses the LESS environment
variable to pass the -R option ('output ANSI color escapes in raw
form') by default.  Use the LV environment variable to pass 'lv' the
-c option ('allow ANSI escape sequences for text decoration / color')
to fix it for lv, too.

Noticed when the default value for color.ui flipped to 'auto' in
v1.8.4-rc0~36^2~1 (2013-06-10).

Reported-by: Olaf Meeuwissen <olaf.meeuwissen@avasys.jp>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
git-sh-setup.sh
pager.c
perl/Git/SVN/Log.pm
t/t7006-pager.sh