changeset 13642:994510694b1d stable

pager: don't page stderr if it's being redirected (issue2541)
author Brodie Rao <brodie@bitheap.org>
date Tue, 04 Jan 2011 00:24:34 +1100
parents 2420cb1ea1d6
children d943efb9701f 9777df929035 47f11b52021b
files hgext/pager.py
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/pager.py	Fri Mar 11 11:14:21 2011 +0100
+++ b/hgext/pager.py	Tue Jan 04 00:24:34 2011 +1100
@@ -59,14 +59,17 @@
 
 def _runpager(p):
     if not hasattr(os, 'fork'):
-        sys.stderr = sys.stdout = util.popen(p, 'wb')
+        sys.stdout = util.popen(p, 'wb')
+        if sys.stderr.isatty():
+            sys.stderr = sys.stdout
         return
     fdin, fdout = os.pipe()
     pid = os.fork()
     if pid == 0:
         os.close(fdin)
         os.dup2(fdout, sys.stdout.fileno())
-        os.dup2(fdout, sys.stderr.fileno())
+        if sys.stderr.isatty():
+            os.dup2(fdout, sys.stderr.fileno())
         os.close(fdout)
         return
     os.dup2(fdin, sys.stdin.fileno())