mercurial/utils/procutil.py
changeset 45081 29a905fe23ae
parent 45080 00cdac669614
child 45082 b6afe1c52964
equal deleted inserted replaced
45080:00cdac669614 45081:29a905fe23ae
    89 else:
    89 else:
    90     stdin = sys.stdin
    90     stdin = sys.stdin
    91     stdout = sys.stdout
    91     stdout = sys.stdout
    92     stderr = sys.stderr
    92     stderr = sys.stderr
    93 
    93 
    94 if pycompat.iswindows:
       
    95     stdout = platform.winstdout(stdout)
       
    96 
       
    97 # glibc determines buffering on first write to stdout - if we replace a TTY
    94 # glibc determines buffering on first write to stdout - if we replace a TTY
    98 # destined stdout with a pipe destined stdout (e.g. pager), we want line
    95 # destined stdout with a pipe destined stdout (e.g. pager), we want line
    99 # buffering.
    96 # buffering.
   100 if isatty(stdout):
    97 if isatty(stdout):
   101     if pycompat.ispy3:
    98     if pycompat.ispy3:
   102         # Python 3 implements its own I/O streams.
    99         # Python 3 implements its own I/O streams.
   103         # The standard library doesn't offer line-buffered binary streams.
   100         # The standard library doesn't offer line-buffered binary streams.
   104         stdout = make_line_buffered(stdout)
   101         stdout = make_line_buffered(stdout)
   105     elif pycompat.iswindows:
   102     elif pycompat.iswindows:
       
   103         # Work around size limit when writing to console.
       
   104         stdout = platform.winstdout(stdout)
   106         # Python 2 uses the I/O streams provided by the C library.
   105         # Python 2 uses the I/O streams provided by the C library.
   107         # The Windows C runtime library doesn't support line buffering.
   106         # The Windows C runtime library doesn't support line buffering.
   108         stdout = make_line_buffered(stdout)
   107         stdout = make_line_buffered(stdout)
   109     else:
   108     else:
   110         stdout = os.fdopen(stdout.fileno(), 'wb', 1)
   109         stdout = os.fdopen(stdout.fileno(), 'wb', 1)