equal
deleted
inserted
replaced
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) |