# HG changeset patch # User Steve Borho # Date 2007-12-03 23:28:26 # Node ID 2e76e5a23c2baa858314115d443826d8c7ea11a9 # Parent 7c976bb039afc1bd91e4fc248a053780ceb6a1ea workaround for raw_input() on Windows Since change a3fe91b4f6eb, Mercurial has set_binary() on stdin, stdout, and stderr. On Windows, this had the side effect of causing raw_input() to emit trailing carriage returns on it's returned strings. This was causing web authentication problems. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -403,7 +403,12 @@ class ui(object): readline.read_history_file except ImportError: pass - return raw_input(prompt) + line = raw_input(prompt) + # When stdin is in binary mode on Windows, it can cause + # raw_input() to emit an extra trailing carriage return + if os.linesep == '\r\n' and line and line[-1] == '\r': + line = line[:-1] + return line def prompt(self, msg, pat=None, default="y", matchflags=0): if not self.interactive: return default