summaryrefslogtreecommitdiff
path: root/git-sh-setup.sh
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-02-14 23:04:13 -0600
committerJunio C Hamano <gitster@pobox.com>2010-02-14 22:05:17 -0800
commitf6dff119d51e0067d213068093039bb2f939d139 (patch)
treedb787d1d1aa1ef9b9f83d5b7c57516c3169dcfd3 /git-sh-setup.sh
parent190c1cda7eb6dc03be80f45d3d174c313d23da2c (diff)
downloadgit-f6dff119d51e0067d213068093039bb2f939d139.tar.gz
am: Fix launching of pager
The pagination functionality in git am has some problems: - It does not check if stdout is a tty, so it always paginates. - If $GIT_PAGER uses any environment variables, they are being ignored, since it does not run $GIT_PAGER through eval. - If $GIT_PAGER is set to the empty string, instead of passing output through to stdout, it tries to run $dotest/patch. Fix them. While at it, move the definition of git_pager() to git-sh-setup so authors of other commands are not tempted to reimplement it with the same mistakes. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-sh-setup.sh')
-rwxr-xr-xgit-sh-setup.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index d56426dd39..44fb4670ae 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -107,6 +107,19 @@ git_editor() {
eval "$GIT_EDITOR" '"$@"'
}
+git_pager() {
+ if test -t 1
+ then
+ GIT_PAGER=$(git var GIT_PAGER)
+ else
+ GIT_PAGER=cat
+ fi
+ : ${LESS=-FRSX}
+ export LESS
+
+ eval "$GIT_PAGER" '"$@"'
+}
+
sane_grep () {
GREP_OPTIONS= LC_ALL=C grep "$@"
}