--- a/mercurial/store.py Tue Sep 18 11:44:16 2012 +0200
+++ b/mercurial/store.py Tue Sep 18 19:51:48 2012 +0200
@@ -93,10 +93,24 @@
pass
else:
raise KeyError
- return (lambda s: "".join([cmap[c] for c in encodedir(s)]),
- lambda s: decodedir("".join(list(decode(s)))))
+ return (lambda s: ''.join([cmap[c] for c in s]),
+ lambda s: ''.join(list(decode(s))))
+
+_encodefname, _decodefname = _buildencodefun()
-encodefilename, decodefilename = _buildencodefun()
+def encodefilename(s):
+ '''
+ >>> encodefilename('foo.i/bar.d/bla.hg/hi:world?/HELLO')
+ 'foo.i.hg/bar.d.hg/bla.hg.hg/hi~3aworld~3f/_h_e_l_l_o'
+ '''
+ return _encodefname(encodedir(s))
+
+def decodefilename(s):
+ '''
+ >>> decodefilename('foo.i.hg/bar.d.hg/bla.hg.hg/hi~3aworld~3f/_h_e_l_l_o')
+ 'foo.i/bar.d/bla.hg/hi:world?/HELLO'
+ '''
+ return decodedir(_decodefname(s))
def _buildlowerencodefun():
'''