Fix a block in Script/Main.py that could swallow KeyboardInterrupt
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 5 Oct 2008 13:42:01 +0000 (13:42 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 5 Oct 2008 13:42:01 +0000 (13:42 +0000)
exceptions.  Fix the script that analyzes our try:-except: block so it
recognizes that "except Exception, e:" is equivalent to "except:".

git-svn-id: http://scons.tigris.org/svn/scons/trunk@3552 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Script/Main.py
src/test_interrupts.py

index 048dfdd10874b89a3f2d3c43a354b5604a062db1..22ca331388adba4a233c77931486bd7fefd516ef 100644 (file)
@@ -216,6 +216,8 @@ class BuildTask(SCons.Taskmaster.Task):
                 sys.stderr.write("\n")
                 try:
                     raise SCons.Errors.BuildError(t, errstr)
+                except KeyboardInterrupt:
+                    raise
                 except:
                     self.exception_set()
                 self.do_failed()
index 6fb82b4664f171580f7196eef25a700c3e3098e9..eee1f0cab78c3628a35cc31532d49a3fba413d56 100644 (file)
@@ -83,7 +83,7 @@ else:
 tryexc_pat = re.compile(
 r'^(?P<try_or_except>(?P<indent> *)(try|except)( [^\n]*)?:.*)',re.MULTILINE)
 keyboardint_pat = re.compile(r' *except +([^,],)*KeyboardInterrupt([ ,][^\n]*)?:[^\n]*')
-exceptall_pat   = re.compile(r' *except *:[^\n]*')
+exceptall_pat   = re.compile(r' *except(?: *| +Exception *, *[^: ]+):[^\n]*')
 
 uncaughtKeyboardInterrupt = 0
 for f in files: