Signed-off-by: Matthias Lederhofer <matled@xxxxxxx> --- I'd like to use another pager (or other options) with git than the normal pager. Normally I would not want the -R option with less but for git less should show colors. --- Documentation/config.txt | 5 +++++ pager.c | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 465eb13..96429b6 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -116,6 +116,11 @@ apply.whitespace:: Tells `git-apply` how to handle whitespaces, in the same way as the '--whitespace' option. See gitlink:git-apply[1]. +pager.program:: + Use this program as pager. git will try this configuration + variable first, then the 'PAGER' environment variable and + "less" as fallback. + diff.color:: When true (or `always`), always use colors in patch. When false (or `never`), never. When set to `auto`, use diff --git a/pager.c b/pager.c index 280f57f..3f753f6 100644 --- a/pager.c +++ b/pager.c @@ -5,6 +5,18 @@ #include "cache.h" * something different on Windows, for example. */ +static const char *pager = NULL; + +static int git_pager_config(const char *var, const char *value) +{ + if (!strcmp(var, "pager.program")) { + if (value) + pager = strdup(value); + return 0; + } + return 0; +} + static void run_pager(const char *pager) { execlp(pager, pager, NULL); @@ -15,10 +27,12 @@ void setup_pager(void) { pid_t pid; int fd[2]; - const char *pager = getenv("PAGER"); if (!isatty(1)) return; + git_config(git_pager_config); + if (!pager) + pager = getenv("PAGER"); if (!pager) pager = "less"; else if (!*pager || !strcmp(pager, "cat")) -- 1.4.2.rc2.g688a - : 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