# HG changeset patch # User Gregory Szorc # Date 2019-03-02 21:02:39 # Node ID ddb174511f1beaa64a94dc3ed6a05cbc37a5a085 # Parent 7f63ec6969f3f6380ce760d8d06ae0f9f3422744 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 diff --git a/mercurial/revsetlang.py b/mercurial/revsetlang.py --- a/mercurial/revsetlang.py +++ b/mercurial/revsetlang.py @@ -62,8 +62,8 @@ symbols = {} # 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