merge with stable
authorMatt Mackall <mpm@selenic.com>
Mon, 01 Aug 2011 14:52:11 -0500
changeset 15002 b55c1c6a793e
parent 14999 f6a737357195 (current diff)
parent 15001 dd74cd1e5d49 (diff)
child 15003 a31b8e03af28
merge with stable
mercurial/hgweb/hgwebdir_mod.py
mercurial/ui.py
--- a/mercurial/hgweb/hgwebdir_mod.py	Mon Aug 01 10:54:34 2011 -0500
+++ b/mercurial/hgweb/hgwebdir_mod.py	Mon Aug 01 14:52:11 2011 -0500
@@ -370,4 +370,7 @@
             env['SERVER_NAME'] = u.host
             if u.port:
                 env['SERVER_PORT'] = u.port
-            env['SCRIPT_NAME'] = '/' + u.path
+            path = u.path or ""
+            if not path.startswith('/'):
+                path = '/' + path
+            env['SCRIPT_NAME'] = path
--- 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