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