209 if usepager: |
209 if usepager: |
210 ui.setconfig('ui', 'formatted', ui.formatted(), 'pager') |
210 ui.setconfig('ui', 'formatted', ui.formatted(), 'pager') |
211 ui.setconfig('ui', 'interactive', False, 'pager') |
211 ui.setconfig('ui', 'interactive', False, 'pager') |
212 return p |
212 return p |
213 |
213 |
214 def _newchgui(srcui, csystem): |
214 def _newchgui(srcui, csystem, attachio): |
215 class chgui(srcui.__class__): |
215 class chgui(srcui.__class__): |
216 def __init__(self, src=None): |
216 def __init__(self, src=None): |
217 super(chgui, self).__init__(src) |
217 super(chgui, self).__init__(src) |
218 if src: |
218 if src: |
219 self._csystem = getattr(src, '_csystem', csystem) |
219 self._csystem = getattr(src, '_csystem', csystem) |
239 if errprefix: |
239 if errprefix: |
240 errmsg = '%s: %s' % (errprefix, errmsg) |
240 errmsg = '%s: %s' % (errprefix, errmsg) |
241 raise onerr(errmsg) |
241 raise onerr(errmsg) |
242 return rc |
242 return rc |
243 |
243 |
|
244 def _runpager(self, cmd): |
|
245 self._csystem(cmd, util.shellenviron(), type='pager', |
|
246 cmdtable={'attachio': attachio}) |
|
247 |
244 return chgui(srcui) |
248 return chgui(srcui) |
245 |
249 |
246 def _loadnewui(srcui, args): |
250 def _loadnewui(srcui, args): |
247 from . import dispatch # avoid cycle |
251 from . import dispatch # avoid cycle |
248 |
252 |
333 ] |
337 ] |
334 |
338 |
335 class chgcmdserver(commandserver.server): |
339 class chgcmdserver(commandserver.server): |
336 def __init__(self, ui, repo, fin, fout, sock, hashstate, baseaddress): |
340 def __init__(self, ui, repo, fin, fout, sock, hashstate, baseaddress): |
337 super(chgcmdserver, self).__init__( |
341 super(chgcmdserver, self).__init__( |
338 _newchgui(ui, channeledsystem(fin, fout, 'S')), repo, fin, fout) |
342 _newchgui(ui, channeledsystem(fin, fout, 'S'), self.attachio), |
|
343 repo, fin, fout) |
339 self.clientsock = sock |
344 self.clientsock = sock |
340 self._oldios = [] # original (self.ch, ui.fp, fd) before "attachio" |
345 self._oldios = [] # original (self.ch, ui.fp, fd) before "attachio" |
341 self.hashstate = hashstate |
346 self.hashstate = hashstate |
342 self.baseaddress = baseaddress |
347 self.baseaddress = baseaddress |
343 if hashstate is not None: |
348 if hashstate is not None: |