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.
--- a/mercurial/ui.py Tue Dec 04 23:28:10 2007 +0100
+++ b/mercurial/ui.py Mon Dec 03 17:28:26 2007 -0600
@@ -403,7 +403,12 @@
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