Mercurial > public > mercurial-scm > hg-stable
diff mercurial/subrepo.py @ 11961:f3075ffa6b30
subrepos: handle backslashes in subpaths
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Thu, 19 Aug 2010 13:25:46 +0200 |
parents | a8614c5a5e9a |
children | 63eab3b74ba6 |
line wrap: on
line diff
--- a/mercurial/subrepo.py Wed Aug 18 11:59:35 2010 +0200 +++ b/mercurial/subrepo.py Thu Aug 19 13:25:46 2010 +0200 @@ -50,6 +50,13 @@ kind = kind[1:] for pattern, repl in p.items('subpaths'): + # Turn r'C:\foo\bar' into r'C:\\foo\\bar' since re.sub + # does a string decode. + repl = repl.encode('string-escape') + # However, we still want to allow back references to go + # through unharmed, so we turn r'\\1' into r'\1'. Again, + # extra escapes are needed because re.sub string decodes. + repl = re.sub(r'\\\\([0-9]+)', r'\\\1', repl) try: src = re.sub(pattern, repl, src, 1) except re.error, e: