# HG changeset patch # User Yuya Nishihara # Date 2018-10-16 05:08:12 # Node ID 431a831342d2b41dac32af32c87f3f76d63333b2 # Parent 73c2b9c9cd3c75dd19a52d265dd7fb2c9696834f py3: work around unicode stdio streams in contrib/hgclient.py diff --git a/contrib/hgclient.py b/contrib/hgclient.py --- a/contrib/hgclient.py +++ b/contrib/hgclient.py @@ -16,6 +16,13 @@ except ImportError: import io stringio = io.StringIO +if sys.version_info[0] >= 3: + stdout = sys.stdout.buffer + stderr = sys.stderr.buffer +else: + stdout = sys.stdout + stderr = sys.stderr + def connectpipe(path=None): cmdline = [b'hg', b'serve', b'--cmdserver', b'pipe'] if path: @@ -81,10 +88,10 @@ def readchannel(server): def sep(text): return text.replace(b'\\', b'/') -def runcommand(server, args, output=sys.stdout, error=sys.stderr, input=None, +def runcommand(server, args, output=stdout, error=stderr, input=None, outfilter=lambda x: x): print(b'*** runcommand', b' '.join(args)) - sys.stdout.flush() + stdout.flush() server.stdin.write(b'runcommand\n') writeblock(server, b'\0'.join(args)) @@ -114,7 +121,7 @@ def runcommand(server, args, output=sys. return def check(func, connect=connectpipe): - sys.stdout.flush() + stdout.flush() server = connect() try: return func(server)