# HG changeset patch # User Augie Fackler # Date 2018-02-26 05:51:41 # Node ID 1ca4e86c7265f6fb9396ac9a95cf5585596c0ed1 # Parent ec43960b03e8c8c8c72cc2c73b2b3ca00d6743d5 util: handle fileno() on Python 3 throwing io.UnsupportedOperation Fortunately, the exception exists on Python 2 so we don't have to do something weirder than this. Differential Revision: https://phab.mercurial-scm.org/D2450 diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -26,6 +26,7 @@ import errno import gc import hashlib import imp +import io import itertools import mmap import os @@ -1178,7 +1179,10 @@ def _sethgexecutable(path): def _isstdout(f): fileno = getattr(f, 'fileno', None) - return fileno and fileno() == sys.__stdout__.fileno() + try: + return fileno and fileno() == sys.__stdout__.fileno() + except io.UnsupportedOperation: + return False # fileno() raised UnsupportedOperation def shellenviron(environ=None): """return environ with optional override, useful for shelling out"""