# HG changeset patch # User Augie Fackler # Date 2017-03-12 05:50:44 # Node ID 50cd81346ad418a4bfc15526b331c4f79687ff57 # Parent 8a17c541177f32348e248608b6a9dfd7fefdf517 store: fix many single-byte ops to use slicing in _auxencode diff --git a/mercurial/store.py b/mercurial/store.py --- a/mercurial/store.py +++ b/mercurial/store.py @@ -193,22 +193,22 @@ def _auxencode(path, dotencode): if not n: continue if dotencode and n[0] in '. ': - n = "~%02x" % ord(n[0]) + n[1:] + n = "~%02x" % ord(n[0:1]) + n[1:] path[i] = n else: l = n.find('.') if l == -1: l = len(n) if ((l == 3 and n[:3] in _winres3) or - (l == 4 and n[3] <= '9' and n[3] >= '1' + (l == 4 and n[3:4] <= '9' and n[3:4] >= '1' and n[:3] in _winres4)): # encode third letter ('aux' -> 'au~78') - ec = "~%02x" % ord(n[2]) + ec = "~%02x" % ord(n[2:3]) n = n[0:2] + ec + n[3:] path[i] = n if n[-1] in '. ': # encode last period or space ('foo...' -> 'foo..~2e') - path[i] = n[:-1] + "~%02x" % ord(n[-1]) + path[i] = n[:-1] + "~%02x" % ord(n[-1:]) return path _maxstorepathlen = 120