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