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): |