hgext/pager.py
branchstable
changeset 13642 994510694b1d
parent 12892 919c440868d9
child 14515 76f295eaed86
equal deleted inserted replaced
13641:2420cb1ea1d6 13642:994510694b1d
    57 from mercurial import commands, dispatch, util, extensions
    57 from mercurial import commands, dispatch, util, extensions
    58 from mercurial.i18n import _
    58 from mercurial.i18n import _
    59 
    59 
    60 def _runpager(p):
    60 def _runpager(p):
    61     if not hasattr(os, 'fork'):
    61     if not hasattr(os, 'fork'):
    62         sys.stderr = sys.stdout = util.popen(p, 'wb')
    62         sys.stdout = util.popen(p, 'wb')
       
    63         if sys.stderr.isatty():
       
    64             sys.stderr = sys.stdout
    63         return
    65         return
    64     fdin, fdout = os.pipe()
    66     fdin, fdout = os.pipe()
    65     pid = os.fork()
    67     pid = os.fork()
    66     if pid == 0:
    68     if pid == 0:
    67         os.close(fdin)
    69         os.close(fdin)
    68         os.dup2(fdout, sys.stdout.fileno())
    70         os.dup2(fdout, sys.stdout.fileno())
    69         os.dup2(fdout, sys.stderr.fileno())
    71         if sys.stderr.isatty():
       
    72             os.dup2(fdout, sys.stderr.fileno())
    70         os.close(fdout)
    73         os.close(fdout)
    71         return
    74         return
    72     os.dup2(fdin, sys.stdin.fileno())
    75     os.dup2(fdin, sys.stdin.fileno())
    73     os.close(fdin)
    76     os.close(fdin)
    74     os.close(fdout)
    77     os.close(fdout)