summaryrefslogtreecommitdiff
path: root/Lib/idlelib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/idlelib')
-rw-r--r--Lib/idlelib/NEWS.txt4
-rw-r--r--Lib/idlelib/ScriptBinding.py10
2 files changed, 8 insertions, 6 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 42c291b4c3..178aee4710 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,10 @@ What's New in IDLE 1.2.2c1?
*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.
- OSX: Avoid crash for those versions of Tcl/Tk which don't have a console
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
index f325ad1d25..3746eb8304 100644
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -57,9 +57,10 @@ class ScriptBinding:
filename = self.getfilename()
if not filename:
return
+ if not self.checksyntax(filename):
+ return
if not self.tabnanny(filename):
return
- self.checksyntax(filename)
def tabnanny(self, filename):
f = open(filename, 'r')
@@ -76,9 +77,6 @@ class ScriptBinding:
self.editwin.gotoline(nag.get_lineno())
self.errorbox("Tab/space error", indent_message)
return False
- except IndentationError:
- # From tokenize(), let compile() in checksyntax find it again.
- pass
return True
def checksyntax(self, filename):
@@ -139,11 +137,11 @@ class ScriptBinding:
filename = self.getfilename()
if not filename:
return
- if not self.tabnanny(filename):
- return
code = self.checksyntax(filename)
if not code:
return
+ if not self.tabnanny(filename):
+ return
shell = self.shell
interp = shell.interp
if PyShell.use_subprocess: