Some syntax errors were being caught by tokenize during the tabnanny

check, resulting in obscure error messages.  Do the syntax check
first.  Bug 1562716, 1562719  Backport of r52083
This commit is contained in:
Kurt B. Kaiser 2008-02-14 03:25:59 +00:00
parent b80a194531
commit 6493ade54d
2 changed files with 8 additions and 6 deletions

View File

@ -3,6 +3,10 @@ What's New in IDLE 1.2.2c1?
*Release date: XX-FEB-2008* *Release date: XX-FEB-2008*
- Some syntax errors were being caught by tokenize during the tabnanny
check, resulting in obscure error messages. Do the syntax check
first. Bug 1562716, 1562719 (backport r52083)
- Patch 1693258: Fix for duplicate "preferences" menu-OS X. Backport of r56204. - Patch 1693258: Fix for duplicate "preferences" menu-OS X. Backport of r56204.
- OSX: Avoid crash for those versions of Tcl/Tk which don't have a console - OSX: Avoid crash for those versions of Tcl/Tk which don't have a console

View File

@ -57,9 +57,10 @@ class ScriptBinding:
filename = self.getfilename() filename = self.getfilename()
if not filename: if not filename:
return return
if not self.checksyntax(filename):
return
if not self.tabnanny(filename): if not self.tabnanny(filename):
return return
self.checksyntax(filename)
def tabnanny(self, filename): def tabnanny(self, filename):
f = open(filename, 'r') f = open(filename, 'r')
@ -76,9 +77,6 @@ class ScriptBinding:
self.editwin.gotoline(nag.get_lineno()) self.editwin.gotoline(nag.get_lineno())
self.errorbox("Tab/space error", indent_message) self.errorbox("Tab/space error", indent_message)
return False return False
except IndentationError:
# From tokenize(), let compile() in checksyntax find it again.
pass
return True return True
def checksyntax(self, filename): def checksyntax(self, filename):
@ -139,11 +137,11 @@ class ScriptBinding:
filename = self.getfilename() filename = self.getfilename()
if not filename: if not filename:
return return
if not self.tabnanny(filename):
return
code = self.checksyntax(filename) code = self.checksyntax(filename)
if not code: if not code:
return return
if not self.tabnanny(filename):
return
shell = self.shell shell = self.shell
interp = shell.interp interp = shell.interp
if PyShell.use_subprocess: if PyShell.use_subprocess: