diff -r 3006d0d26ad3 -r 2def3d55b1b9 mercurial/revset.py --- a/mercurial/revset.py Thu Aug 11 15:05:17 2016 +0200 +++ b/mercurial/revset.py Fri Oct 07 08:32:40 2016 -0400 @@ -9,6 +9,7 @@ import heapq import re +import string from .i18n import _ from . import ( @@ -22,6 +23,7 @@ parser, pathutil, phases, + pycompat, registrar, repoview, util, @@ -173,11 +175,12 @@ keywords = set(['and', 'or', 'not']) # default set of valid characters for the initial letter of symbols -_syminitletters = set(c for c in [chr(i) for i in xrange(256)] - if c.isalnum() or c in '._@' or ord(c) > 127) +_syminitletters = set( + string.ascii_letters + + string.digits + pycompat.sysstr('._@')) | set(map(chr, xrange(128, 256))) # default set of valid characters for non-initial letters of symbols -_symletters = _syminitletters | set('-/') +_symletters = _syminitletters | set(pycompat.sysstr('-/')) def tokenize(program, lookup=None, syminitletters=None, symletters=None): ''' @@ -2619,8 +2622,7 @@ # the set of valid characters for the initial letter of symbols in # alias declarations and definitions -_aliassyminitletters = set(c for c in [chr(i) for i in xrange(256)] - if c.isalnum() or c in '._@$' or ord(c) > 127) +_aliassyminitletters = _syminitletters | set(pycompat.sysstr('$')) def _parsewith(spec, lookup=None, syminitletters=None): """Generate a parse tree of given spec with given tokenizing options