This allows overriding the build-time PAGER_ENV variable at run-time. Inspired by part 1 of an idea from Kyle J. McKay at: https://public-inbox.org/git/62DB6DEF-8B39-4481-BA06-245BF45233E5@xxxxxxxxx/ Signed-off-by: Eric Wong <e@xxxxxxxxx> --- Documentation/config.txt | 7 +++++++ pager.c | 5 ++++- t/t7006-pager.sh | 14 ++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 8b1aee4..6c20269 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -714,6 +714,13 @@ 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.pagerEnv:: + Environment for running `core.pager`. ++ +Defaults to the value set at build, usually `LESS=FRX LV=-c`. +On platforms where `more` and `less` are the same binary, +`LESS=FRX LV=-c MORE=FRX` is appropriate. + core.whitespace:: A comma separated list of common whitespace problems to notice. 'git diff' will use `color.diff.whitespace` to diff --git a/pager.c b/pager.c index 2f2cadc..cc2df7c 100644 --- a/pager.c +++ b/pager.c @@ -68,7 +68,10 @@ const char *git_pager(int stdout_is_tty) static void setup_pager_env(struct argv_array *env) { - const char *pager_env = stringify(PAGER_ENV); + const char *pager_env; + + if (git_config_get_value("core.pagerenv", &pager_env)) + pager_env = stringify(PAGER_ENV); while (*pager_env) { struct strbuf buf = STRBUF_INIT; diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh index e4fc5c8..0c482fc 100755 --- a/t/t7006-pager.sh +++ b/t/t7006-pager.sh @@ -456,4 +456,18 @@ test_expect_success 'command with underscores does not complain' ' test_cmp expect actual ' +test_expect_success TTY 'core.pagerEnv overrides build-time env' ' + ( + sane_unset LESS LV MORE && + git config core.pagerEnv MORE=-R && + PAGER="env >pager-env.out; wc" && + export PAGER && + test_terminal git log + ) && + git config --unset core.pagerEnv && + grep ^MORE=-R pager-env.out && + grep -v ^LESS= pager-env.out && + grep -v ^LV= pager-env.out +' + test_done -- EW -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html