equal
deleted
inserted
replaced
116 for k, v in cmap.iteritems(): |
116 for k, v in cmap.iteritems(): |
117 dmap[v] = k |
117 dmap[v] = k |
118 def decode(s): |
118 def decode(s): |
119 i = 0 |
119 i = 0 |
120 while i < len(s): |
120 while i < len(s): |
121 for l in xrange(1, 4): |
121 for l in pycompat.xrange(1, 4): |
122 try: |
122 try: |
123 yield dmap[s[i:i + l]] |
123 yield dmap[s[i:i + l]] |
124 i += l |
124 i += l |
125 break |
125 break |
126 except KeyError: |
126 except KeyError: |
127 pass |
127 pass |
128 else: |
128 else: |
129 raise KeyError |
129 raise KeyError |
130 return (lambda s: ''.join([cmap[s[c:c + 1]] for c in xrange(len(s))]), |
130 return (lambda s: ''.join([cmap[s[c:c + 1]] |
|
131 for c in pycompat.xrange(len(s))]), |
131 lambda s: ''.join(list(decode(s)))) |
132 lambda s: ''.join(list(decode(s)))) |
132 |
133 |
133 _encodefname, _decodefname = _buildencodefun() |
134 _encodefname, _decodefname = _buildencodefun() |
134 |
135 |
135 def encodefilename(s): |
136 def encodefilename(s): |
157 'hello~3aworld~3f' |
158 'hello~3aworld~3f' |
158 >>> f(b'the\\x07quick\\xADshot') |
159 >>> f(b'the\\x07quick\\xADshot') |
159 'the~07quick~adshot' |
160 'the~07quick~adshot' |
160 ''' |
161 ''' |
161 xchr = pycompat.bytechr |
162 xchr = pycompat.bytechr |
162 cmap = dict([(xchr(x), xchr(x)) for x in xrange(127)]) |
163 cmap = dict([(xchr(x), xchr(x)) for x in pycompat.xrange(127)]) |
163 for x in _reserved(): |
164 for x in _reserved(): |
164 cmap[xchr(x)] = "~%02x" % x |
165 cmap[xchr(x)] = "~%02x" % x |
165 for x in range(ord("A"), ord("Z") + 1): |
166 for x in range(ord("A"), ord("Z") + 1): |
166 cmap[xchr(x)] = xchr(x).lower() |
167 cmap[xchr(x)] = xchr(x).lower() |
167 def lowerencode(s): |
168 def lowerencode(s): |