diff options
Diffstat (limited to 'pager.py')
| -rw-r--r-- | pager.py | 6 |
1 files changed, 6 insertions, 0 deletions
| @@ -27,6 +27,7 @@ pager_process = None | |||
| 27 | old_stdout = None | 27 | old_stdout = None |
| 28 | old_stderr = None | 28 | old_stderr = None |
| 29 | 29 | ||
| 30 | |||
| 30 | def RunPager(globalConfig): | 31 | def RunPager(globalConfig): |
| 31 | if not os.isatty(0) or not os.isatty(1): | 32 | if not os.isatty(0) or not os.isatty(1): |
| 32 | return | 33 | return |
| @@ -39,6 +40,7 @@ def RunPager(globalConfig): | |||
| 39 | else: | 40 | else: |
| 40 | _ForkPager(pager) | 41 | _ForkPager(pager) |
| 41 | 42 | ||
| 43 | |||
| 42 | def TerminatePager(): | 44 | def TerminatePager(): |
| 43 | global pager_process, old_stdout, old_stderr | 45 | global pager_process, old_stdout, old_stderr |
| 44 | if pager_process: | 46 | if pager_process: |
| @@ -52,6 +54,7 @@ def TerminatePager(): | |||
| 52 | sys.stdout = old_stdout | 54 | sys.stdout = old_stdout |
| 53 | sys.stderr = old_stderr | 55 | sys.stderr = old_stderr |
| 54 | 56 | ||
| 57 | |||
| 55 | def _PipePager(pager): | 58 | def _PipePager(pager): |
| 56 | global pager_process, old_stdout, old_stderr | 59 | global pager_process, old_stdout, old_stderr |
| 57 | assert pager_process is None, "Only one active pager process at a time" | 60 | assert pager_process is None, "Only one active pager process at a time" |
| @@ -62,6 +65,7 @@ def _PipePager(pager): | |||
| 62 | sys.stdout = pager_process.stdin | 65 | sys.stdout = pager_process.stdin |
| 63 | sys.stderr = pager_process.stdin | 66 | sys.stderr = pager_process.stdin |
| 64 | 67 | ||
| 68 | |||
| 65 | def _ForkPager(pager): | 69 | def _ForkPager(pager): |
| 66 | global active | 70 | global active |
| 67 | # This process turns into the pager; a child it forks will | 71 | # This process turns into the pager; a child it forks will |
| @@ -88,6 +92,7 @@ def _ForkPager(pager): | |||
| 88 | print("fatal: cannot start pager '%s'" % pager, file=sys.stderr) | 92 | print("fatal: cannot start pager '%s'" % pager, file=sys.stderr) |
| 89 | sys.exit(255) | 93 | sys.exit(255) |
| 90 | 94 | ||
| 95 | |||
| 91 | def _SelectPager(globalConfig): | 96 | def _SelectPager(globalConfig): |
| 92 | try: | 97 | try: |
| 93 | return os.environ['GIT_PAGER'] | 98 | return os.environ['GIT_PAGER'] |
| @@ -105,6 +110,7 @@ def _SelectPager(globalConfig): | |||
| 105 | 110 | ||
| 106 | return 'less' | 111 | return 'less' |
| 107 | 112 | ||
| 113 | |||
| 108 | def _BecomePager(pager): | 114 | def _BecomePager(pager): |
| 109 | # Delaying execution of the pager until we have output | 115 | # Delaying execution of the pager until we have output |
| 110 | # ready works around a long-standing bug in popularly | 116 | # ready works around a long-standing bug in popularly |
