diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-12-15 00:33:34 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-12-15 01:37:15 -0800 |
commit | a8335024c294db470e16e9df3aaa346bfcfbeacb (patch) | |
tree | 1fb2b119ec62cb4606294e4a509c3d271b3c53e0 | |
parent | d2dadfe890b5da6f65fe061a414b6ec67c5efe9c (diff) | |
download | git-a8335024c294db470e16e9df3aaa346bfcfbeacb.tar.gz |
pager: do not dup2 stderr if it is already redirected
An earlier commit 61b8050 (sending errors to stdout under $PAGER,
2008-02-16) avoided losing the error messages that are sent to the
standard error when $PAGER is in effect by dup2'ing fd 2 to the pager.
his way, showing a tag object that points to a bad object:
$ git show tag-foo
would give the error message to the pager. However, it was not quite
right if the user did:
$ git show 2>error.log tag-foo
i.e. use the pager but store the errors in a separate file.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | pager.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -102,7 +102,8 @@ void setup_pager(void) /* original process continues, but writes to the pipe */ dup2(pager_process.in, 1); - dup2(pager_process.in, 2); + if (isatty(2)) + dup2(pager_process.in, 2); close(pager_process.in); /* this makes sure that the parent terminates after the pager */ |