summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-06-06 14:46:22 (GMT)
committerSteven Knight <knight@baldmt.com>2002-06-06 14:46:22 (GMT)
commit45020d140918f129a394831cf828622a1c079549 (patch)
tree19655564ec0c425b0311c838c33d95b936696ef3
parent2f7d4f660fd048edc342a989d25c94d7b52ab13e (diff)
downloadSCons-45020d140918f129a394831cf828622a1c079549.zip
SCons-45020d140918f129a394831cf828622a1c079549.tar.gz
SCons-45020d140918f129a394831cf828622a1c079549.tar.bz2
Fix SConsignEntry.set_implicit() to handle null strings, too. (Jeff Petkau)
-rw-r--r--src/engine/SCons/Sig/SigTests.py21
-rw-r--r--src/engine/SCons/Sig/__init__.py4
2 files changed, 24 insertions, 1 deletions
diff --git a/src/engine/SCons/Sig/SigTests.py b/src/engine/SCons/Sig/SigTests.py
index 7931947..365a0d6 100644
--- a/src/engine/SCons/Sig/SigTests.py
+++ b/src/engine/SCons/Sig/SigTests.py
@@ -502,6 +502,27 @@ class SConsignEntryTestCase(unittest.TestCase):
assert e.get_implicit() == []
assert e.render(m) == "987 654 321 " # note trailing space
+ e.set_implicit(None)
+ assert e.get_implicit() == None, e.get_implicit()
+
+ e.set_implicit('')
+ assert e.get_implicit() == [], e.get_implicit()
+
+ e.set_implicit('foo')
+ assert e.get_implicit() == ['foo'], e.get_implicit()
+
+ e.set_implicit('foo bar')
+ assert e.get_implicit() == ['foo bar'], e.get_implicit()
+
+ e.set_implicit(['foo'])
+ assert e.get_implicit() == ['foo'], e.get_implicit()
+
+ e.set_implicit(['foo bar'])
+ assert e.get_implicit() == ['foo bar'], e.get_implicit()
+
+ e.set_implicit(['foo', 'bar'])
+ assert e.get_implicit() == ['foo', 'bar'], e.get_implicit()
+
class SConsignFileTestCase(unittest.TestCase):
def runTest(self):
diff --git a/src/engine/SCons/Sig/__init__.py b/src/engine/SCons/Sig/__init__.py
index a13557a..c97f81e 100644
--- a/src/engine/SCons/Sig/__init__.py
+++ b/src/engine/SCons/Sig/__init__.py
@@ -91,9 +91,11 @@ class SConsignEntry:
return string.split(self.implicit, '\0')
def set_implicit(self, implicit):
- if not implicit:
+ if implicit is None:
self.implicit = None
else:
+ if SCons.Util.is_String(implicit):
+ implicit = [implicit]
self.implicit = string.join(map(str, implicit), '\0')