summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Action.py2
-rw-r--r--src/engine/SCons/Job.py3
-rw-r--r--src/engine/SCons/Node/FS.py4
-rw-r--r--src/engine/SCons/Options.py2
-rw-r--r--src/engine/SCons/Platform/win32.py12
-rw-r--r--src/engine/SCons/SConf.py4
-rw-r--r--src/engine/SCons/Script/SConscript.py2
-rw-r--r--src/engine/SCons/Script/__init__.py4
-rw-r--r--src/engine/SCons/Sig/__init__.py18
-rw-r--r--src/engine/SCons/Taskmaster.py6
-rw-r--r--src/engine/SCons/Tool/hpc++.py2
-rw-r--r--src/engine/SCons/Tool/hplink.py2
-rw-r--r--src/engine/SCons/Tool/javah.py2
-rw-r--r--src/engine/SCons/Tool/msvc.py2
-rw-r--r--src/engine/SCons/Tool/msvs.py10
-rw-r--r--src/engine/SCons/Tool/rmic.py2
-rw-r--r--src/engine/SCons/Tool/sunlink.py2
-rw-r--r--src/engine/SCons/Util.py2
18 files changed, 57 insertions, 24 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py
index 633bb06..13409aa 100644
--- a/src/engine/SCons/Action.py
+++ b/src/engine/SCons/Action.py
@@ -388,7 +388,7 @@ class FunctionAction(ActionBase):
try:
# "self.execfunction" is a function.
code = self.execfunction.func_code.co_code
- except:
+ except AttributeError:
# "self.execfunction" is a callable object.
code = self.execfunction.__call__.im_func.func_code.co_code
return str(code) + env.subst(string.join(map(lambda v: '${'+v+'}',
diff --git a/src/engine/SCons/Job.py b/src/engine/SCons/Job.py
index b5296dc..d26b73c 100644
--- a/src/engine/SCons/Job.py
+++ b/src/engine/SCons/Job.py
@@ -135,6 +135,9 @@ class Worker(threading.Thread):
try:
task.execute()
+ except KeyboardInterrupt:
+ # be explicit here for test/interrupts.py
+ ok = False
except:
ok = 0
else:
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index b183a88..cffa2b5 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -721,7 +721,7 @@ class FS:
self._cwd = dir
if change_os_dir:
os.chdir(dir.abspath)
- except:
+ except OSError:
self._cwd = curr
raise
@@ -1476,7 +1476,7 @@ class File(Base):
def rfile(self):
try:
return self._rfile
- except:
+ except AttributeError:
self._rfile = self
if not self.exists():
n = self.fs.Rsearch(self.path, clazz=File,
diff --git a/src/engine/SCons/Options.py b/src/engine/SCons/Options.py
index 45f607f..f4d2bcc 100644
--- a/src/engine/SCons/Options.py
+++ b/src/engine/SCons/Options.py
@@ -163,6 +163,8 @@ class Options:
value = env[option.key]
try:
eval(repr(value))
+ except KeyboardInterrupt:
+ raise
except:
# Convert stuff that has a repr() that
# cannot be evaluated into a string
diff --git a/src/engine/SCons/Platform/win32.py b/src/engine/SCons/Platform/win32.py
index 08fb296..c590055 100644
--- a/src/engine/SCons/Platform/win32.py
+++ b/src/engine/SCons/Platform/win32.py
@@ -166,15 +166,15 @@ def piped_spawn(sh, escape, cmd, args, env, stdout, stderr):
try:
stdout.write(open( tmpFileStdout, "r" ).read())
os.remove( tmpFileStdout )
- except:
+ except (IOError, OSError):
pass
if stderr != None and stderrRedirected == 0:
try:
stderr.write(open( tmpFileStderr, "r" ).read())
os.remove( tmpFileStderr )
- except:
- pass
+ except (IOError, OSError):
+ pass
return ret
def spawn(sh, escape, cmd, args, env):
@@ -199,7 +199,7 @@ def get_system_root():
# A resonable default if we can't read the registry
try:
val = os.environ['SYSTEMROOT']
- except:
+ except KeyError:
val = "C:/WINDOWS"
pass
@@ -216,6 +216,8 @@ def get_system_root():
k=SCons.Util.RegOpenKeyEx(SCons.Util.hkey_mod.HKEY_LOCAL_MACHINE,
'Software\\Microsoft\\Windows\\CurrentVersion')
val, tok = SCons.Util.RegQueryValueEx(k, 'SystemRoot')
+ except KeyboardInterrupt:
+ raise
except:
pass
return val
@@ -260,6 +262,8 @@ def generate(env):
'Software\\Microsoft\\Windows\\CurrentVersion')
val, tok = SCons.Util.RegQueryValueEx(k, 'SystemRoot')
cmd_interp = os.path.join(val, 'command.com')
+ except KeyboardInterrupt:
+ raise
except:
pass
diff --git a/src/engine/SCons/SConf.py b/src/engine/SCons/SConf.py
index 144099f..04955a4 100644
--- a/src/engine/SCons/SConf.py
+++ b/src/engine/SCons/SConf.py
@@ -219,8 +219,6 @@ class SConf:
sys.stderr.write("scons: *** [%s] %s\n" % (e.node, e.errstr))
if e.errstr == 'Exception':
traceback.print_exception(e.args[0], e.args[1], e.args[2])
- except:
- raise
for n in nodes:
state = n.get_state()
@@ -401,6 +399,8 @@ class SConf:
if cacheDesc['scons_version'] != SCons.__version__:
raise Exception, "version mismatch"
self.cache = cacheDesc['data']
+ except KeyboardInterrupt:
+ raise
except:
self.cache = {}
diff --git a/src/engine/SCons/Script/SConscript.py b/src/engine/SCons/Script/SConscript.py
index 8212061..4c47078 100644
--- a/src/engine/SCons/Script/SConscript.py
+++ b/src/engine/SCons/Script/SConscript.py
@@ -80,7 +80,7 @@ def get_calling_namespaces():
"""Return the locals and globals for the function that called
into this module in the current callstack."""
try: 1/0
- except: frame = sys.exc_info()[2].tb_frame
+ except ZeroDivisionError: frame = sys.exc_info()[2].tb_frame
while frame.f_globals.get("__name__") == __name__: frame = frame.f_back
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index 613f775..03cb6d8 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -422,6 +422,8 @@ class OptParser(OptionParser):
__main__.__date__,
__main__.__developer__,
__main__.__buildsys__))
+ except KeyboardInterrupt:
+ raise
except:
# On win32 there is no scons.py, so there is no __main__.__version__,
# hence there is no script version.
@@ -740,7 +742,7 @@ def _main(args, parser):
cdir = _create_path(options.directory)
try:
os.chdir(cdir)
- except:
+ except OSError:
sys.stderr.write("Could not change directory to %s\n" % cdir)
xmit_args = []
diff --git a/src/engine/SCons/Sig/__init__.py b/src/engine/SCons/Sig/__init__.py
index dfddf34..a2ebd5c 100644
--- a/src/engine/SCons/Sig/__init__.py
+++ b/src/engine/SCons/Sig/__init__.py
@@ -117,7 +117,7 @@ class _SConsign:
"""
try:
return self.entries[filename]
- except:
+ except (KeyError, AttributeError):
return SConsignEntry()
def set_entry(self, filename, entry):
@@ -198,6 +198,8 @@ class SConsignDB(_SConsign):
if type(self.entries) is not type({}):
self.entries = {}
raise TypeError
+ except KeyboardInterrupt:
+ raise
except:
SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning,
"Ignoring corrupt sconsign entry : %s"%self.dir.path)
@@ -244,11 +246,13 @@ class SConsignDirFile(SConsignDir):
try:
fp = open(self.sconsign, 'rb')
- except:
+ except IOError:
fp = None
try:
SConsignDir.__init__(self, fp, module)
+ except KeyboardInterrupt:
+ raise
except:
SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning,
"Ignoring corrupt .sconsign file: %s"%self.sconsign)
@@ -274,11 +278,11 @@ class SConsignDirFile(SConsignDir):
try:
file = open(temp, 'wb')
fname = temp
- except:
+ except IOError:
try:
file = open(self.sconsign, 'wb')
fname = self.sconsign
- except:
+ except IOError:
return
cPickle.dump(self.entries, file, 1)
file.close()
@@ -287,16 +291,16 @@ class SConsignDirFile(SConsignDir):
mode = os.stat(self.sconsign)[0]
os.chmod(self.sconsign, 0666)
os.unlink(self.sconsign)
- except:
+ except OSError:
pass
try:
os.rename(fname, self.sconsign)
- except:
+ except OSError:
open(self.sconsign, 'wb').write(open(fname, 'rb').read())
os.chmod(self.sconsign, mode)
try:
os.unlink(temp)
- except:
+ except OSError:
pass
SConsignForDirectory = SConsignDirFile
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py
index 6eda8c1..b269fa2 100644
--- a/src/engine/SCons/Taskmaster.py
+++ b/src/engine/SCons/Taskmaster.py
@@ -237,6 +237,8 @@ class Taskmaster:
self.candidates.pop()
self.ready = node
break
+ except KeyboardInterrupt:
+ raise
except:
# We had a problem just trying to figure out the
# children (like a child couldn't be linked in to a
@@ -264,6 +266,8 @@ class Taskmaster:
try:
def derived_nodes(node): return node.is_derived() or node.is_pseudo_derived()
derived = filter(derived_nodes, children)
+ except KeyboardInterrupt:
+ raise
except:
# We had a problem just trying to figure out if any of
# the kids are derived (like a child couldn't be linked
@@ -343,6 +347,8 @@ class Taskmaster:
task = self.tasker(self, tlist, node in self.targets, node)
try:
task.make_ready()
+ except KeyboardInterrupt:
+ raise
except:
# We had a problem just trying to get this task ready (like
# a child couldn't be linked in to a BuildDir when deciding
diff --git a/src/engine/SCons/Tool/hpc++.py b/src/engine/SCons/Tool/hpc++.py
index 5b650d6..a38d494 100644
--- a/src/engine/SCons/Tool/hpc++.py
+++ b/src/engine/SCons/Tool/hpc++.py
@@ -44,7 +44,7 @@ acc = None
try:
dirs = os.listdir('/opt')
-except:
+except OSError:
dirs = []
for dir in dirs:
diff --git a/src/engine/SCons/Tool/hplink.py b/src/engine/SCons/Tool/hplink.py
index 7468920..2c7b55c 100644
--- a/src/engine/SCons/Tool/hplink.py
+++ b/src/engine/SCons/Tool/hplink.py
@@ -43,7 +43,7 @@ ccLinker = None
try:
dirs = os.listdir('/opt')
-except:
+except OSError:
dirs = []
for dir in dirs:
diff --git a/src/engine/SCons/Tool/javah.py b/src/engine/SCons/Tool/javah.py
index ccb62f2..93678e4 100644
--- a/src/engine/SCons/Tool/javah.py
+++ b/src/engine/SCons/Tool/javah.py
@@ -55,7 +55,7 @@ def emit_java_headers(target, source, env):
else:
try:
classdir = s.attributes.java_classdir
- except:
+ except AttributeError:
classdir = '.'
classdir = SCons.Node.FS.default_fs.Dir(classdir).rdir()
if str(classdir) == '.':
diff --git a/src/engine/SCons/Tool/msvc.py b/src/engine/SCons/Tool/msvc.py
index db434c4..4b15568 100644
--- a/src/engine/SCons/Tool/msvc.py
+++ b/src/engine/SCons/Tool/msvc.py
@@ -301,6 +301,8 @@ def get_msvc_default_paths(version = None):
try:
if not version:
version = SCons.Tool.msvs.get_visualstudio_versions()[0] #use highest version
+ except KeyboardInterrupt:
+ raise
except:
pass
diff --git a/src/engine/SCons/Tool/msvs.py b/src/engine/SCons/Tool/msvs.py
index d4c32ba..68e8fda 100644
--- a/src/engine/SCons/Tool/msvs.py
+++ b/src/engine/SCons/Tool/msvs.py
@@ -317,6 +317,8 @@ class _GenerateV6DSP(_DSPGenerator):
try:
datas = base64.decodestring(datas)
data = pickle.loads(datas)
+ except KeyboardInterrupt:
+ raise
except:
return # unable to unpickle any data for some reason
@@ -334,6 +336,8 @@ class _GenerateV6DSP(_DSPGenerator):
try:
datas = base64.decodestring(datas)
data = pickle.loads(datas)
+ except KeyboardInterrupt:
+ raise
except:
return # unable to unpickle any data for some reason
@@ -474,6 +478,8 @@ class _GenerateV7DSP(_DSPGenerator):
try:
datas = base64.decodestring(datas)
data = pickle.loads(datas)
+ except KeyboardInterrupt:
+ raise
except:
return # unable to unpickle any data for some reason
@@ -490,6 +496,8 @@ class _GenerateV7DSP(_DSPGenerator):
try:
datas = base64.decodestring(datas)
data = pickle.loads(datas)
+ except KeyboardInterrupt:
+ raise
except:
return # unable to unpickle any data for some reason
@@ -567,6 +575,8 @@ class _GenerateV7DSW(_DSWGenerator):
try:
datas = base64.decodestring(datas)
data = pickle.loads(datas)
+ except KeyboardInterrupt:
+ raise
except:
return # unable to unpickle any data for some reason
diff --git a/src/engine/SCons/Tool/rmic.py b/src/engine/SCons/Tool/rmic.py
index 7043566..79cc316 100644
--- a/src/engine/SCons/Tool/rmic.py
+++ b/src/engine/SCons/Tool/rmic.py
@@ -55,7 +55,7 @@ def emit_rmic_classes(target, source, env):
else:
try:
classdir = s.attributes.java_classdir
- except:
+ except AttributeError:
classdir = '.'
classdir = SCons.Node.FS.default_fs.Dir(classdir).rdir()
if str(classdir) == '.':
diff --git a/src/engine/SCons/Tool/sunlink.py b/src/engine/SCons/Tool/sunlink.py
index f23917b..53dd410 100644
--- a/src/engine/SCons/Tool/sunlink.py
+++ b/src/engine/SCons/Tool/sunlink.py
@@ -43,7 +43,7 @@ ccLinker = None
try:
dirs = os.listdir('/opt')
-except:
+except OSError:
dirs = []
for dir in dirs:
diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py
index c0bc6ac..41e3883 100644
--- a/src/engine/SCons/Util.py
+++ b/src/engine/SCons/Util.py
@@ -804,7 +804,7 @@ else:
if os.path.isfile(f):
try:
st = os.stat(f)
- except:
+ except OSError:
continue
if stat.S_IMODE(st[stat.ST_MODE]) & 0111:
return os.path.normpath(f)