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>
This commit is contained in:

committed by
Junio C Hamano

parent
190c1cda7e
commit
f6dff119d5
@ -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 "$@"
|
||||
}
|
||||
|
Reference in New Issue
Block a user