mercurial/chgserver.py
changeset 30740 493935e0327a
parent 30739 815e1cefd082
child 30741 fde9692a02c0
equal deleted inserted replaced
30739:815e1cefd082 30740:493935e0327a
   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: