Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 50995:ce9cb12ca8c9
openvms: fix the pager spawning and cleanup
Unsurprisingly, pager handling needs some adjustment.
author | Jean-Francois Pieronne <jf.pieronne@laposte.net> |
---|---|
date | Thu, 03 Aug 2023 02:33:22 +0200 |
parents | 18c8c18993f0 |
children | 9d3721552b6c |
comparison
equal
deleted
inserted
replaced
50994:def6f1a4604b | 50995:ce9cb12ca8c9 |
---|---|
1535 ) | 1535 ) |
1536 return False | 1536 return False |
1537 raise | 1537 raise |
1538 | 1538 |
1539 # back up original file descriptors | 1539 # back up original file descriptors |
1540 stdoutfd = os.dup(procutil.stdout.fileno()) | 1540 if pycompat.sysplatform != b'OpenVMS': |
1541 stderrfd = os.dup(procutil.stderr.fileno()) | 1541 stdoutfd = os.dup(procutil.stdout.fileno()) |
1542 stderrfd = os.dup(procutil.stderr.fileno()) | |
1542 | 1543 |
1543 os.dup2(pager.stdin.fileno(), procutil.stdout.fileno()) | 1544 os.dup2(pager.stdin.fileno(), procutil.stdout.fileno()) |
1544 if self._isatty(procutil.stderr): | 1545 if self._isatty(procutil.stderr): |
1545 os.dup2(pager.stdin.fileno(), procutil.stderr.fileno()) | 1546 os.dup2(pager.stdin.fileno(), procutil.stderr.fileno()) |
1546 | 1547 |
1547 @self.atexit | 1548 @self.atexit |
1548 def killpager(): | 1549 def killpager(): |
1549 if hasattr(signal, "SIGINT"): | 1550 if hasattr(signal, "SIGINT"): |
1550 signal.signal(signal.SIGINT, signal.SIG_IGN) | 1551 signal.signal(signal.SIGINT, signal.SIG_IGN) |
1551 # restore original fds, closing pager.stdin copies in the process | 1552 # restore original fds, closing pager.stdin copies in the process |
1553 if pycompat.sysplatform == b'OpenVMS': | |
1554 pager.kill() | |
1552 os.dup2(stdoutfd, procutil.stdout.fileno()) | 1555 os.dup2(stdoutfd, procutil.stdout.fileno()) |
1553 os.dup2(stderrfd, procutil.stderr.fileno()) | 1556 os.dup2(stderrfd, procutil.stderr.fileno()) |
1554 pager.stdin.close() | 1557 pager.stdin.close() |
1555 pager.wait() | 1558 pager.wait() |
1556 | 1559 |