Use string.ascii_letters instead of string.letters (SF bug #226706).

Move computation of sets of characters out of the body of the function that
uses them.
This commit is contained in:
Fred Drake 2001-07-20 18:58:42 +00:00
parent 0f715d2aa1
commit cd694c44a9
2 changed files with 9 additions and 3 deletions

View file

@ -36,6 +36,9 @@ def linecache_checkcache(orig_checkcache=linecache.checkcache):
linecache.checkcache = linecache_checkcache
IDENTCHARS = string.ascii_letters + string.digits + "_"
# Note: <<newline-and-indent>> event is defined in AutoIndent.py
#$ event <<plain-newline-and-indent>>
@ -217,7 +220,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
text.tag_add("ERROR", pos)
text.see(pos)
char = text.get(pos)
if char and char in string.letters + string.digits + "_":
if char and char in IDENTCHARS:
text.tag_add("ERROR", pos + " wordstart", pos)
self.tkconsole.resetoutput()
self.write("SyntaxError: %s\n" % str(msg))

View file

@ -30,13 +30,16 @@ import string
oops = 'oops'
IDENTSTARTCHARS = string.ascii_letters + '_'
IDENTCHARS = string.ascii_letters + string.digits + '_'
# Check that string is a legal C identifier
def checkid(str):
if not str: return 0
if not str[0] in string.letters+'_':
if not str[0] in IDENTSTARTCHARS:
return 0
for c in str[1:]:
if not c in string.letters+string.digits+'_':
if not c in IDENTCHARS:
return 0
return 1