mercurial/util.py
changeset 26450 1138e1d05207
parent 26392 127b59787fd5
child 26478 a3f7e5461dbd
--- a/mercurial/util.py	Fri Oct 02 23:04:52 2015 -0700
+++ b/mercurial/util.py	Sat Oct 03 14:57:24 2015 +0900
@@ -730,6 +730,10 @@
     global _hgexecutable
     _hgexecutable = path
 
+def _isstdout(f):
+    fileno = getattr(f, 'fileno', None)
+    return fileno and fileno() == sys.__stdout__.fileno()
+
 def system(cmd, environ=None, cwd=None, onerr=None, errprefix=None, out=None):
     '''enhanced shell command execution.
     run with environment maybe modified, maybe in different dir.
@@ -765,7 +769,7 @@
         env = dict(os.environ)
         env.update((k, py2shell(v)) for k, v in environ.iteritems())
         env['HG'] = hgexecutable()
-        if out is None or out == sys.__stdout__:
+        if out is None or _isstdout(out):
             rc = subprocess.call(cmd, shell=True, close_fds=closefds,
                                  env=env, cwd=cwd)
         else: