Mercurial > hg
diff mercurial/posix.py @ 15566:7786b7dfbc46
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 23 Nov 2011 16:35:17 -0600 |
parents | b61fa7481a68 |
children | 2ebe3d0ce91d |
line wrap: on
line diff
--- a/mercurial/posix.py Wed Nov 23 02:44:11 2011 +0100 +++ b/mercurial/posix.py Wed Nov 23 16:35:17 2011 -0600 @@ -176,13 +176,15 @@ u = path.decode('utf-8') except UnicodeDecodeError: # percent-encode any characters that don't round-trip - p2 = path.decode('utf-8', 'replace').encode('utf-8') + p2 = path.decode('utf-8', 'ignore').encode('utf-8') s = "" - for a, b in zip(path, p2): - if a != b: - s += "%%%02X" % ord(a) + pos = 0 + for c in path: + if p2[pos:pos + 1] == c: + s += c + pos += 1 else: - s += a + s += "%%%02X" % ord(c) u = s.decode('utf-8') # Decompose then lowercase (HFS+ technote specifies lower)