[PATCH] pager: config variable pager.program
Signed-off-by: Matthias Lederhofer <matled@gmx.net>
---
Junio C Hamano <junkio@cox.net> wrote:
> I am not enthused about any configuration stored in .git/config
> to override the environment variables. Files are to store
> reasonable default, and command line flags and environments are
> to override them, but this patch does it the other way around.
You're right, this patch uses $GIT_PAGER. I don't think pager.program
does make much sense with this (expect someone does not want to export
$PAGER/$GIT_PAGER), should it be introduced anyway (I don't need
it)?
---
Documentation/git.txt | 3 +++
pager.c | 5 ++++-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 7310a2b..d243883 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -627,6 +627,9 @@ git Diffs
other
~~~~~
+'GIT_PAGER'::
+ This environment variable overrides `$PAGER`.
+
'GIT_TRACE'::
If this variable is set git will print `trace:` messages on
stderr telling about alias expansion, built-in command
diff --git a/pager.c b/pager.c
index 280f57f..ab9be5d 100644
--- a/pager.c
+++ b/pager.c
@@ -15,10 +15,13 @@ void setup_pager(void)
{
pid_t pid;
int fd[2];
- const char *pager = getenv("PAGER");
+ char *pager;
if (!isatty(1))
return;
+ pager = getenv("GIT_PAGER");
+ if (!pager)
+ pager = getenv("PAGER");
if (!pager)
pager = "less";
else if (!*pager || !strcmp(pager, "cat"))
--
1.4.2.rc2.g91b7