py3: use pycompat.bytestr to convert _b85chars to bytes
authorPulkit Goyal <7895pulkit@gmail.com>
Wed, 07 Feb 2018 13:17:19 +0530
changeset 35984 01b4d88ccb24
parent 35983 bdb6ec909878
child 35985 1dbd8a62b581
py3: use pycompat.bytestr to convert _b85chars to bytes The tranformer does append b'' to the value and make that a bytes but bytes in Python 3 returns the ascii value on getting characters using indexing. Characters of this string are queried using indexing multiple times in the file and to support that we use pycompat.bytestr which returns the bytechrs using indexing. Differential Revision: https://phab.mercurial-scm.org/D2072
mercurial/pure/base85.py
--- a/mercurial/pure/base85.py	Wed Feb 07 13:11:38 2018 +0530
+++ b/mercurial/pure/base85.py	Wed Feb 07 13:17:19 2018 +0530
@@ -9,8 +9,10 @@
 
 import struct
 
-_b85chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
-            "abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"
+from .. import pycompat
+
+_b85chars = pycompat.bytestr("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef"
+                             "ghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~")
 _b85chars2 = [(a + b) for a in _b85chars for b in _b85chars]
 _b85dec = {}