mercurial/chgserver.py
changeset 39840 a9f56e4501c1
parent 39739 7cdd47d9ccf8
parent 39809 23a00bc90a3c
child 40108 e5fbdc3659fc
equal deleted inserted replaced
39839:9e8fcd2e78c1 39840:a9f56e4501c1
   196                 self._csystem = getattr(src, '_csystem', csystem)
   196                 self._csystem = getattr(src, '_csystem', csystem)
   197             else:
   197             else:
   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 the output needs to be
   201             # fallback to the original system method if
   202             # captured (to self._buffers), or the output stream is not stdout
   202             #  a. the output stream is not stdout (e.g. stderr, cStringIO),
   203             # (e.g. stderr, cStringIO), because the chg client is not aware of
   203             #  b. or stdout is redirected by protectstdio(),
   204             # these situations and will behave differently (write to stdout).
   204             # because the chg client is not aware of these situations and
       
   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):