comparison mercurial/revset.py @ 11404:37cbedbeae96

revset: allow extended characters in symbols
author Matt Mackall <mpm@selenic.com>
date Sat, 19 Jun 2010 12:22:35 -0500
parents e5a2134c083b
children 42408cd43f55
comparison
equal deleted inserted replaced
11403:f7d7de6eccc8 11404:37cbedbeae96
60 yield ('string', program[s:pos].decode('string-escape'), s) 60 yield ('string', program[s:pos].decode('string-escape'), s)
61 break 61 break
62 pos += 1 62 pos += 1
63 else: 63 else:
64 raise error.ParseError(_("unterminated string"), s) 64 raise error.ParseError(_("unterminated string"), s)
65 elif c.isalnum() or c in '.': # gather up a symbol/keyword 65 elif c.isalnum() or c in '._' or ord(c) > 127: # gather up a symbol/keyword
66 s = pos 66 s = pos
67 pos += 1 67 pos += 1
68 while pos < l: # find end of symbol 68 while pos < l: # find end of symbol
69 d = program[pos] 69 d = program[pos]
70 if not (d.isalnum() or d in "._"): 70 if not (d.isalnum() or d in "._" or ord(d) > 127):
71 break 71 break
72 if d == '.' and program[pos - 1] == '.': # special case for .. 72 if d == '.' and program[pos - 1] == '.': # special case for ..
73 pos -= 1 73 pos -= 1
74 break 74 break
75 pos += 1 75 pos += 1