From 45020d140918f129a394831cf828622a1c079549 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Thu, 6 Jun 2002 14:46:22 +0000 Subject: Fix SConsignEntry.set_implicit() to handle null strings, too. (Jeff Petkau) --- src/engine/SCons/Sig/SigTests.py | 21 +++++++++++++++++++++ src/engine/SCons/Sig/__init__.py | 4 +++- 2 files changed, 24 insertions(+), 1 deletion(-) 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') -- cgit v0.12