mercurial/chgserver.py
changeset 39739 7cdd47d9ccf8
parent 39738 a93fe297dfb3
child 39840 a9f56e4501c1
equal deleted inserted replaced
39738:a93fe297dfb3 39739:7cdd47d9ccf8
   454         mask = struct.unpack('>I', self._read(4))[0]
   454         mask = struct.unpack('>I', self._read(4))[0]
   455         _log('setumask %r\n' % mask)
   455         _log('setumask %r\n' % mask)
   456         os.umask(mask)
   456         os.umask(mask)
   457 
   457 
   458     def runcommand(self):
   458     def runcommand(self):
   459         return super(chgcmdserver, self).runcommand()
   459         # pager may be attached within the runcommand session, which should
       
   460         # be detached at the end of the session. otherwise the pager wouldn't
       
   461         # receive EOF.
       
   462         globaloldios = self._oldios
       
   463         self._oldios = []
       
   464         try:
       
   465             return super(chgcmdserver, self).runcommand()
       
   466         finally:
       
   467             self._restoreio()
       
   468             self._oldios = globaloldios
   460 
   469 
   461     def setenv(self):
   470     def setenv(self):
   462         """Clear and update os.environ
   471         """Clear and update os.environ
   463 
   472 
   464         Note that not all variables can make an effect on the running process.
   473         Note that not all variables can make an effect on the running process.