comparison mercurial/revsetlang.py @ 41840:ddb174511f1b

revsetlang: use sysbytes() instead of blind encode() Otherwise we will call str.encode() on Python 2, which is wrong. sysbytes() does encode('utf-8') on Python 3. But the source is guaranteed ASCII, so it shouldn't matter. With this change, `hg` now runs with `HGUNICODEPEDANTRY=1` set. However, several tests are failing. Differential Revision: https://phab.mercurial-scm.org/D6050
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 02 Mar 2019 13:02:39 -0800
parents 1c04894e8fe1
children 2372284d9457
comparison
equal deleted inserted replaced
41839:7f63ec6969f3 41840:ddb174511f1b
60 _quoteletters = {'"', "'"} 60 _quoteletters = {'"', "'"}
61 _simpleopletters = set(pycompat.iterbytestr("()[]#:=,-|&+!~^%")) 61 _simpleopletters = set(pycompat.iterbytestr("()[]#:=,-|&+!~^%"))
62 62
63 # default set of valid characters for the initial letter of symbols 63 # default set of valid characters for the initial letter of symbols
64 _syminitletters = set(pycompat.iterbytestr( 64 _syminitletters = set(pycompat.iterbytestr(
65 string.ascii_letters.encode('ascii') + 65 pycompat.sysbytes(string.ascii_letters) +
66 string.digits.encode('ascii') + 66 pycompat.sysbytes(string.digits) +
67 '._@')) | set(map(pycompat.bytechr, pycompat.xrange(128, 256))) 67 '._@')) | set(map(pycompat.bytechr, pycompat.xrange(128, 256)))
68 68
69 # default set of valid characters for non-initial letters of symbols 69 # default set of valid characters for non-initial letters of symbols
70 _symletters = _syminitletters | set(pycompat.iterbytestr('-/')) 70 _symletters = _syminitletters | set(pycompat.iterbytestr('-/'))
71 71