Mercurial > public > mercurial-scm > hg-stable
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 |