summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Script/__init__.py1
-rw-r--r--src/engine/SCons/Sig/__init__.py12
-rw-r--r--src/engine/SCons/Warnings.py3
3 files changed, 13 insertions, 3 deletions
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index a00c734..bce17ba 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -865,6 +865,7 @@ def _main():
# Enable deprecated warnings by default.
SCons.Warnings._warningOut = _scons_internal_warning
SCons.Warnings.enableWarningClass(SCons.Warnings.DeprecatedWarning)
+ SCons.Warnings.enableWarningClass(SCons.Warnings.CorruptSConsignWarning)
try:
cmd_opts, t = getopt.getopt(string.split(os.environ['SCONSFLAGS']),
diff --git a/src/engine/SCons/Sig/__init__.py b/src/engine/SCons/Sig/__init__.py
index 7739aad..b6a5c25 100644
--- a/src/engine/SCons/Sig/__init__.py
+++ b/src/engine/SCons/Sig/__init__.py
@@ -34,6 +34,7 @@ import os.path
import string
import SCons.Node
import time
+import SCons.Warnings
#XXX Get rid of the global array so this becomes re-entrant.
sig_files = []
@@ -131,9 +132,14 @@ class SConsignFile:
pass
else:
for line in file.readlines():
- filename, rest = map(string.strip, string.split(line, ":", 1))
- self.entries[filename] = SConsignEntry(self.module, rest)
-
+ try:
+ filename, rest = map(string.strip, string.split(line, ":", 1))
+ self.entries[filename] = SConsignEntry(self.module, rest)
+ except ValueError:
+ SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning,
+ "Ignoring corrupt .sconsign file: %s"%self.sconsign)
+ self.entries = {}
+
global sig_files
sig_files.append(self)
diff --git a/src/engine/SCons/Warnings.py b/src/engine/SCons/Warnings.py
index 5ba3aec..bf18ba5 100644
--- a/src/engine/SCons/Warnings.py
+++ b/src/engine/SCons/Warnings.py
@@ -44,6 +44,9 @@ class DeprecatedWarning(Warning):
class DependencyWarning(Warning):
pass
+class CorruptSConsignWarning(Warning):
+ pass
+
_warningAsException = 0
# The below is a list of 2-tuples. The first element is a class object.