Mercurial > hg
changeset 2791:f4d916351366
Add portable shell-quoting function; teach mq to use it.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Sat, 05 Aug 2006 15:23:26 -0700 |
parents | 58a679745b38 |
children | 8ec1b1f0a5f7 |
files | hgext/mq.py mercurial/util.py |
diffstat | 2 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/mq.py Sun Aug 06 16:03:02 2006 +0200 +++ b/hgext/mq.py Sat Aug 05 15:23:26 2006 -0700 @@ -272,8 +272,8 @@ patchfile: file name of patch''' try: pp = util.find_in_path('gpatch', os.environ.get('PATH', ''), 'patch') - f = os.popen("%s -d '%s' -p1 --no-backup-if-mismatch < '%s'" % - (pp, repo.root, patchfile)) + f = os.popen("%s -d %s -p1 --no-backup-if-mismatch < %s" % + (pp, util.shellquote(repo.root), util.shellquote(patchfile))) except: self.ui.warn("patch failed, unable to continue (try -v)\n") return (None, [], False)
--- a/mercurial/util.py Sun Aug 06 16:03:02 2006 +0200 +++ b/mercurial/util.py Sat Aug 05 15:23:26 2006 -0700 @@ -611,6 +611,9 @@ def samestat(s1, s2): return False + def shellquote(s): + return '"%s"' % s.replace('"', '\\"') + def explain_exit(code): return _("exited with status %d") % code, code @@ -700,6 +703,9 @@ else: raise + def shellquote(s): + return "'%s'" % s.replace("'", "'\\''") + def testpid(pid): '''return False if pid dead, True if running or not sure''' try: