зеркало из https://github.com/microsoft/git.git
Merge branch 'jn/pager-lv-default-env'
Just like we give a reasonable default for "less" via the LESS environment variable, specify a reasonable default for "lv" via the "LV" environment variable when spawning the pager. * jn/pager-lv-default-env: pager: set LV=-c alongside LESS=FRSX
This commit is contained in:
Коммит
9fac0777e1
|
@ -567,6 +567,10 @@ be passed to the shell by Git, which will translate the final
|
|||
command to `LESS=FRSX less -+S`. The environment tells the command
|
||||
to set the `S` option to chop long lines but the command line
|
||||
resets it to the default to fold long lines.
|
||||
+
|
||||
Likewise, when the `LV` environment variable is unset, Git sets it
|
||||
to `-c`. You can override this setting by exporting `LV` with
|
||||
another value or setting `core.pager` to `lv +c`.
|
||||
|
||||
core.whitespace::
|
||||
A comma separated list of common whitespace problems to
|
||||
|
|
|
@ -159,7 +159,8 @@ git_pager() {
|
|||
GIT_PAGER=cat
|
||||
fi
|
||||
: ${LESS=-FRSX}
|
||||
export LESS
|
||||
: ${LV=-c}
|
||||
export LESS LV
|
||||
|
||||
eval "$GIT_PAGER" '"$@"'
|
||||
}
|
||||
|
|
11
pager.c
11
pager.c
|
@ -80,8 +80,15 @@ void setup_pager(void)
|
|||
pager_process.use_shell = 1;
|
||||
pager_process.argv = pager_argv;
|
||||
pager_process.in = -1;
|
||||
if (!getenv("LESS")) {
|
||||
static const char *env[] = { "LESS=FRSX", NULL };
|
||||
if (!getenv("LESS") || !getenv("LV")) {
|
||||
static const char *env[3];
|
||||
int i = 0;
|
||||
|
||||
if (!getenv("LESS"))
|
||||
env[i++] = "LESS=FRSX";
|
||||
if (!getenv("LV"))
|
||||
env[i++] = "LV=-c";
|
||||
env[i] = NULL;
|
||||
pager_process.env = env;
|
||||
}
|
||||
if (start_command(&pager_process))
|
||||
|
|
|
@ -117,6 +117,7 @@ sub run_pager {
|
|||
}
|
||||
open STDIN, '<&', $rfd or fatal "Can't redirect stdin: $!";
|
||||
$ENV{LESS} ||= 'FRSX';
|
||||
$ENV{LV} ||= '-c';
|
||||
exec $pager or fatal "Can't run pager: $! ($pager)";
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,18 @@ test_expect_failure TTY 'pager runs from subdir' '
|
|||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success TTY 'LESS and LV envvars are set for pagination' '
|
||||
(
|
||||
sane_unset LESS LV &&
|
||||
PAGER="env >pager-env.out" &&
|
||||
export PAGER &&
|
||||
|
||||
test_terminal git log
|
||||
) &&
|
||||
grep ^LESS= pager-env.out &&
|
||||
grep ^LV= pager-env.out
|
||||
'
|
||||
|
||||
test_expect_success TTY 'some commands do not use a pager' '
|
||||
rm -f paginated.out &&
|
||||
test_terminal git rev-list HEAD &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче