diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -1001,6 +1001,12 @@ if os.name == 'nt': _quotere = re.compile(r'(\\*)("|\\$)') return '"%s"' % _quotere.sub(r'\1\1\\\2', s) + def quotecommand(cmd): + """Build a command string suitable for os.popen* calls.""" + # The extra quotes are needed because popen* runs the command + # through the current COMSPEC. cmd.exe suppress enclosing quotes. + return '"' + cmd + '"' + def explain_exit(code): return _("exited with status %d") % code, code @@ -1154,6 +1160,9 @@ else: else: return "'%s'" % s.replace("'", "'\\''") + def quotecommand(cmd): + return cmd + def testpid(pid): '''return False if pid dead, True if running or not sure''' if os.sys.platform == 'OpenVMS': @@ -1681,3 +1690,7 @@ def drop_scheme(scheme, path): if path.startswith('//'): path = path[2:] return path + +def uirepr(s): + # Avoid double backslash in Windows path repr() + return repr(s).replace('\\\\', '\\')