remote-hg: set stdout to binary mode on win32
authorAmit Bakshi <ambakshi@gmail.com>
Sun, 19 May 2013 11:53:48 +0000 (06:53 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 May 2013 18:18:43 +0000 (11:18 -0700)
git clone hangs on windows, and file.write would return errno 22 inside
of mercurial's windows.winstdout wrapper class. This patch sets stdout's
mode to binary, fixing both issues.

[fc: cleaned up]

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/remote-helpers/git-remote-hg
index beb864b57e25a4297b7355d56c7c586e6f19d7be..01555dc3471422e050ebef110840bf98633786e7 100755 (executable)
@@ -954,6 +954,10 @@ def main(args):
     marks_path = os.path.join(dirname, 'marks-hg')
     marks = Marks(marks_path)
 
+    if sys.platform == 'win32':
+        import msvcrt
+        msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
+
     parser = Parser(repo)
     for line in parser:
         if parser.check('capabilities'):