revsetlang: use sysbytes() instead of blind encode()
authorGregory Szorc <gregory.szorc@gmail.com>
Sat, 02 Mar 2019 13:02:39 -0800
changeset 41835 ddb174511f1b
parent 41834 7f63ec6969f3
child 41836 25694a78e4a4
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
mercurial/revsetlang.py
--- a/mercurial/revsetlang.py	Sat Mar 02 12:57:00 2019 -0800
+++ b/mercurial/revsetlang.py	Sat Mar 02 13:02:39 2019 -0800
@@ -62,8 +62,8 @@
 
 # default set of valid characters for the initial letter of symbols
 _syminitletters = set(pycompat.iterbytestr(
-    string.ascii_letters.encode('ascii') +
-    string.digits.encode('ascii') +
+    pycompat.sysbytes(string.ascii_letters) +
+    pycompat.sysbytes(string.digits) +
     '._@')) | set(map(pycompat.bytechr, pycompat.xrange(128, 256)))
 
 # default set of valid characters for non-initial letters of symbols