# HG changeset patch # User Yuya Nishihara <y...@tcha.org> # Date 1521963324 -32400 # Sun Mar 25 16:35:24 2018 +0900 # Node ID ea801aa5d559e37f68fb9bdda47dec6e58abcb88 # Parent 2be95f3cc4f8a4b59f7c50af093ea033d1d09c5e sshserver: do setbinary() by caller (API)
In most cases, stdio should be set to binary mode by the dispatcher, so the sshserver does not have to take care of that. The only exception was hg-ssh, which is fixed by this patch. .. api:: ``sshserver()`` no longer sets stdin and stdout to binary mode. diff --git a/contrib/hg-ssh b/contrib/hg-ssh --- a/contrib/hg-ssh +++ b/contrib/hg-ssh @@ -43,6 +43,9 @@ from mercurial import ( ) def main(): + # Prevent insertion/deletion of CRs + dispatch.initstdio() + cwd = os.getcwd() readonly = False args = sys.argv[1:] diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -83,7 +83,7 @@ class request(object): def run(): "run the command in sys.argv" - _initstdio() + initstdio() req = request(pycompat.sysargv[1:]) err = None try: @@ -112,7 +112,7 @@ def run(): sys.exit(status & 255) if pycompat.ispy3: - def _initstdio(): + def initstdio(): pass def _silencestdio(): @@ -132,7 +132,7 @@ if pycompat.ispy3: except IOError: pass else: - def _initstdio(): + def initstdio(): for fp in (sys.stdin, sys.stdout, sys.stderr): procutil.setbinary(fp) diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py --- a/mercurial/wireprotoserver.py +++ b/mercurial/wireprotoserver.py @@ -798,10 +798,6 @@ class sshserver(object): hook.redirect(True) ui.fout = repo.ui.fout = ui.ferr - # Prevent insertion/deletion of CRs - procutil.setbinary(self._fin) - procutil.setbinary(self._fout) - def serve_forever(self): self.serveuntil(threading.Event()) sys.exit(0) _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel