[Python-checkins] r60776 - python/branches/release25-maint/Lib/idlelib/NEWS.txt python/branches/release25-maint/Lib/idlelib/ScriptBinding.py

kurt.kaiser python-checkins at python.org
Thu Feb 14 04:26:00 CET 2008


Author: kurt.kaiser
Date: Thu Feb 14 04:25:59 2008
New Revision: 60776

Modified:
   python/branches/release25-maint/Lib/idlelib/NEWS.txt
   python/branches/release25-maint/Lib/idlelib/ScriptBinding.py
Log:
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



Modified: python/branches/release25-maint/Lib/idlelib/NEWS.txt
==============================================================================
--- python/branches/release25-maint/Lib/idlelib/NEWS.txt	(original)
+++ python/branches/release25-maint/Lib/idlelib/NEWS.txt	Thu Feb 14 04:25:59 2008
@@ -3,6 +3,10 @@
 
 *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

Modified: python/branches/release25-maint/Lib/idlelib/ScriptBinding.py
==============================================================================
--- python/branches/release25-maint/Lib/idlelib/ScriptBinding.py	(original)
+++ python/branches/release25-maint/Lib/idlelib/ScriptBinding.py	Thu Feb 14 04:25:59 2008
@@ -57,9 +57,10 @@
         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 @@
             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 @@
         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:


More information about the Python-checkins mailing list