mercurial/commandserver.py
changeset 30473 39d13b8c101d
parent 30263 7f2313450e86
child 30507 dd539e2d89aa
equal deleted inserted replaced
30472:277f4fe6d01a 30473:39d13b8c101d
    13 import random
    13 import random
    14 import select
    14 import select
    15 import signal
    15 import signal
    16 import socket
    16 import socket
    17 import struct
    17 import struct
    18 import sys
       
    19 import traceback
    18 import traceback
    20 
    19 
    21 from .i18n import _
    20 from .i18n import _
    22 from . import (
    21 from . import (
    23     encoding,
    22     encoding,
   302 def _protectio(ui):
   301 def _protectio(ui):
   303     """ duplicates streams and redirect original to null if ui uses stdio """
   302     """ duplicates streams and redirect original to null if ui uses stdio """
   304     ui.flush()
   303     ui.flush()
   305     newfiles = []
   304     newfiles = []
   306     nullfd = os.open(os.devnull, os.O_RDWR)
   305     nullfd = os.open(os.devnull, os.O_RDWR)
   307     for f, sysf, mode in [(ui.fin, sys.stdin, 'rb'),
   306     for f, sysf, mode in [(ui.fin, util.stdin, 'rb'),
   308                           (ui.fout, sys.stdout, 'wb')]:
   307                           (ui.fout, util.stdout, 'wb')]:
   309         if f is sysf:
   308         if f is sysf:
   310             newfd = os.dup(f.fileno())
   309             newfd = os.dup(f.fileno())
   311             os.dup2(nullfd, f.fileno())
   310             os.dup2(nullfd, f.fileno())
   312             f = os.fdopen(newfd, mode)
   311             f = os.fdopen(newfd, mode)
   313         newfiles.append(f)
   312         newfiles.append(f)