OSDN Git Service

Add core.pager config variable.
authorBrian Gernhardt <benji@silverinsanity.com>
Tue, 3 Jul 2007 18:18:11 +0000 (14:18 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Jul 2007 17:09:32 +0000 (10:09 -0700)
This adds a configuration variable that performs the same function as,
but is overridden by, GIT_PAGER.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Acked-by: Johannes E. Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
cache.h
config.c
environment.c
pager.c

index 1d96adf..66a55b0 100644 (file)
@@ -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 0d23a25..e64071e 100644 (file)
--- 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;
 
index 4de8926..561ee3b 100644 (file)
--- 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;
 }
index 1c2773f..f83fb9e 100644 (file)
@@ -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 5f280ab..3bfed02 100644 (file)
--- 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";