comparison hgext/pager.py @ 30722:117e15c30e6c

pager: wrap ui._runpager As discussed at [1], ui._runpager will be the new low-level API accepting a pager command to actually run the pager. And ui.pager is the high-level API which reads config directly from self. This change is necessary for chgserver to override _runpager cleanly. [1]: www.mercurial-scm.org/pipermail/mercurial-devel/2016-December/091656.html
author Jun Wu <quark@fb.com>
date Mon, 26 Dec 2016 00:25:44 +0000
parents a150173da1c1
children d3e2d39b97ea
comparison
equal deleted inserted replaced
30721:4ab19763d71c 30722:117e15c30e6c
116 116
117 def uisetup(ui): 117 def uisetup(ui):
118 if '--debugger' in sys.argv or not ui.formatted(): 118 if '--debugger' in sys.argv or not ui.formatted():
119 return 119 return
120 120
121 class pagerui(ui.__class__):
122 def _runpager(self, pagercmd):
123 _runpager(self, pagercmd)
124
125 ui.__class__ = pagerui
126
121 # chg has its own pager implementation 127 # chg has its own pager implementation
122 argv = sys.argv[:] 128 argv = sys.argv[:]
123 if 'chgunix' in dispatch._earlygetopt(['--cmdserver'], argv): 129 if 'chgunix' in dispatch._earlygetopt(['--cmdserver'], argv):
124 return 130 return
125 131
155 if usepager: 161 if usepager:
156 ui.setconfig('ui', 'formatted', ui.formatted(), 'pager') 162 ui.setconfig('ui', 'formatted', ui.formatted(), 'pager')
157 ui.setconfig('ui', 'interactive', False, 'pager') 163 ui.setconfig('ui', 'interactive', False, 'pager')
158 if util.safehasattr(signal, "SIGPIPE"): 164 if util.safehasattr(signal, "SIGPIPE"):
159 signal.signal(signal.SIGPIPE, signal.SIG_DFL) 165 signal.signal(signal.SIGPIPE, signal.SIG_DFL)
160 _runpager(ui, p) 166 ui._runpager(p)
161 return orig(ui, options, cmd, cmdfunc) 167 return orig(ui, options, cmd, cmdfunc)
162 168
163 # Wrap dispatch._runcommand after color is loaded so color can see 169 # Wrap dispatch._runcommand after color is loaded so color can see
164 # ui.pageractive. Otherwise, if we loaded first, color's wrapped 170 # ui.pageractive. Otherwise, if we loaded first, color's wrapped
165 # dispatch._runcommand would run without having access to ui.pageractive. 171 # dispatch._runcommand would run without having access to ui.pageractive.