mercurial/chgserver.py
branchstable
changeset 39809 23a00bc90a3c
parent 39808 1b9be0b26511
child 39840 a9f56e4501c1
equal deleted inserted replaced
39808:1b9be0b26511 39809:23a00bc90a3c
   198                 self._csystem = csystem
   198                 self._csystem = csystem
   199 
   199 
   200         def _runsystem(self, cmd, environ, cwd, out):
   200         def _runsystem(self, cmd, environ, cwd, out):
   201             # fallback to the original system method if
   201             # fallback to the original system method if
   202             #  a. the output stream is not stdout (e.g. stderr, cStringIO),
   202             #  a. the output stream is not stdout (e.g. stderr, cStringIO),
       
   203             #  b. or stdout is redirected by protectstdio(),
   203             # because the chg client is not aware of these situations and
   204             # because the chg client is not aware of these situations and
   204             # will behave differently (i.e. write to stdout).
   205             # will behave differently (i.e. write to stdout).
   205             if (out is not self.fout
   206             if (out is not self.fout
   206                 or not util.safehasattr(self.fout, 'fileno')
   207                 or not util.safehasattr(self.fout, 'fileno')
   207                 or self.fout.fileno() != procutil.stdout.fileno()):
   208                 or self.fout.fileno() != procutil.stdout.fileno()
       
   209                 or self._finoutredirected):
   208                 return procutil.system(cmd, environ=environ, cwd=cwd, out=out)
   210                 return procutil.system(cmd, environ=environ, cwd=cwd, out=out)
   209             self.flush()
   211             self.flush()
   210             return self._csystem(cmd, procutil.shellenviron(environ), cwd)
   212             return self._csystem(cmd, procutil.shellenviron(environ), cwd)
   211 
   213 
   212         def _runpager(self, cmd, env=None):
   214         def _runpager(self, cmd, env=None):