From 54adf3706c5c799584c1bcdcac96fb3285b97de4 Mon Sep 17 00:00:00 2001 From: Brian Gernhardt Date: Tue, 3 Jul 2007 14:18:11 -0400 Subject: [PATCH] Add core.pager config variable. This adds a configuration variable that performs the same function as, but is overridden by, GIT_PAGER. Signed-off-by: Brian Gernhardt Acked-by: Johannes E. Schindelin Signed-off-by: Junio C Hamano --- Documentation/config.txt | 4 ++++ cache.h | 1 + config.c | 5 +++++ environment.c | 1 + pager.c | 2 ++ 5 files changed, 13 insertions(+) diff --git a/Documentation/config.txt b/Documentation/config.txt index 1d96adf30b..66a55b0514 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -281,6 +281,10 @@ core.excludesfile:: of files which are not meant to be tracked. See gitlink:gitignore[5]. +core.pager:: + The command that git will use to paginate output. Can be overridden + with the `GIT_PAGER` environment variable. + alias.*:: Command aliases for the gitlink:git[1] command wrapper - e.g. after defining "alias.last = cat-file commit HEAD", the invocation diff --git a/cache.h b/cache.h index 0d23a25b1f..e64071e2e3 100644 --- a/cache.h +++ b/cache.h @@ -546,6 +546,7 @@ extern int write_or_whine_pipe(int fd, const void *buf, size_t count, const char /* pager.c */ extern void setup_pager(void); +extern char *pager_program; extern int pager_in_use; extern int pager_use_color; diff --git a/config.c b/config.c index 4de8926330..561ee3b576 100644 --- a/config.c +++ b/config.c @@ -387,6 +387,11 @@ int git_default_config(const char *var, const char *value) return 0; } + if (!strcmp(var, "core.pager")) { + pager_program = xstrdup(value); + return 0; + } + /* Add other config variables here and to Documentation/config.txt. */ return 0; } diff --git a/environment.c b/environment.c index 1c2773f1bd..f83fb9e448 100644 --- a/environment.c +++ b/environment.c @@ -30,6 +30,7 @@ int core_compression_seen; size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE; size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT; size_t delta_base_cache_limit = 16 * 1024 * 1024; +char *pager_program; int pager_in_use; int pager_use_color = 1; int auto_crlf = 0; /* 1: both ways, -1: only when adding git objects */ diff --git a/pager.c b/pager.c index 5f280ab527..3bfed02599 100644 --- a/pager.c +++ b/pager.c @@ -32,6 +32,8 @@ void setup_pager(void) if (!isatty(1)) return; if (!pager) + pager = pager_program; + if (!pager) pager = getenv("PAGER"); if (!pager) pager = "less"; -- 2.11.4.GIT