diff -r f6a737357195 -r b55c1c6a793e mercurial/ui.py --- a/mercurial/ui.py Mon Aug 01 10:54:34 2011 -0500 +++ b/mercurial/ui.py Mon Aug 01 14:52:11 2011 -0500 @@ -539,12 +539,15 @@ except Exception: pass - # instead of trying to emulate raw_input, swap our in/out - # with sys.stdin/out - old = sys.stdout, sys.stdin - sys.stdout, sys.stdin = self.fout, self.fin - line = raw_input(prompt) - sys.stdout, sys.stdin = old + # call write() so output goes through subclassed implementation + # e.g. color extension on Windows + self.write(prompt) + + # instead of trying to emulate raw_input, swap self.fin with sys.stdin + old = sys.stdin + sys.stdin = self.fin + line = raw_input() + sys.stdin = old # When stdin is in binary mode on Windows, it can cause # raw_input() to emit an extra trailing carriage return