File tree Expand file tree Collapse file tree 5 files changed +28
-3
lines changed Expand file tree Collapse file tree 5 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -567,6 +567,10 @@ be passed to the shell by Git, which will translate the final
567
567
command to `LESS=FRSX less -+S`. The environment tells the command
568
568
to set the `S` option to chop long lines but the command line
569
569
resets it to the default to fold long lines.
570
+ +
571
+ Likewise, when the `LV` environment variable is unset, Git sets it
572
+ to `-c`. You can override this setting by exporting `LV` with
573
+ another value or setting `core.pager` to `lv +c`.
570
574
571
575
core.whitespace::
572
576
A comma separated list of common whitespace problems to
Original file line number Diff line number Diff line change @@ -159,7 +159,8 @@ git_pager() {
159
159
GIT_PAGER=cat
160
160
fi
161
161
: ${LESS=-FRSX}
162
- export LESS
162
+ : ${LV=-c}
163
+ export LESS LV
163
164
164
165
eval " $GIT_PAGER " ' "$@"'
165
166
}
Original file line number Diff line number Diff line change @@ -80,8 +80,15 @@ void setup_pager(void)
80
80
pager_process .use_shell = 1 ;
81
81
pager_process .argv = pager_argv ;
82
82
pager_process .in = -1 ;
83
- if (!getenv ("LESS" )) {
84
- static const char * env [] = { "LESS=FRSX" , NULL };
83
+ if (!getenv ("LESS" ) || !getenv ("LV" )) {
84
+ static const char * env [3 ];
85
+ int i = 0 ;
86
+
87
+ if (!getenv ("LESS" ))
88
+ env [i ++ ] = "LESS=FRSX" ;
89
+ if (!getenv ("LV" ))
90
+ env [i ++ ] = "LV=-c" ;
91
+ env [i ] = NULL ;
85
92
pager_process .env = env ;
86
93
}
87
94
if (start_command (& pager_process ))
Original file line number Diff line number Diff line change @@ -117,6 +117,7 @@ sub run_pager {
117
117
}
118
118
open STDIN , ' <&' , $rfd or fatal " Can't redirect stdin: $! " ;
119
119
$ENV {LESS } ||= ' FRSX' ;
120
+ $ENV {LV } ||= ' -c' ;
120
121
exec $pager or fatal " Can't run pager: $! ($pager )" ;
121
122
}
122
123
Original file line number Diff line number Diff line change @@ -37,6 +37,18 @@ test_expect_failure TTY 'pager runs from subdir' '
37
37
test_cmp expected actual
38
38
'
39
39
40
+ test_expect_success TTY ' LESS and LV envvars are set for pagination' '
41
+ (
42
+ sane_unset LESS LV &&
43
+ PAGER="env >pager-env.out" &&
44
+ export PAGER &&
45
+
46
+ test_terminal git log
47
+ ) &&
48
+ grep ^LESS= pager-env.out &&
49
+ grep ^LV= pager-env.out
50
+ '
51
+
40
52
test_expect_success TTY ' some commands do not use a pager' '
41
53
rm -f paginated.out &&
42
54
test_terminal git rev-list HEAD &&
You can’t perform that action at this time.
0 commit comments