diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CHANGES.txt | 2 | ||||
-rw-r--r-- | src/engine/SCons/Node/FS.py | 3 | ||||
-rw-r--r-- | src/engine/SCons/Node/FSTests.py | 6 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index feb988a..814107b 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -63,6 +63,8 @@ RELEASE 0.97 - XXX module prior to Python 2.3, which would generate an exception for a nonexistent file even when ignore_errors was set.) + - Only replace a Node's builder with a non-null source builder. + From Christoph Wiedemann: - Add an Environment.SetDefault() method that only sets values if diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 6d2dd8b..b59c375 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -1618,7 +1618,8 @@ class File(Base): rcspath = os.path.join(dir, rcspath) if os.path.exists(rcspath): scb = get_DefaultRCSBuilder() - self.builder = scb + if scb is not None: + self.builder_set(scb) self.sbuilder = scb return not scb is None diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 3e80309..4c086dd 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -1426,6 +1426,7 @@ class has_src_builderTestCase(unittest.TestCase): f5 = fs.File('f5', sub2) f6 = fs.File('f6', sub2) f7 = fs.File('f7', sub2) + f8 = fs.File('f8', sub2) h = f1.has_src_builder() assert not h, h @@ -1451,6 +1452,7 @@ class has_src_builderTestCase(unittest.TestCase): assert f3.builder is b1, f3.builder f7.set_src_builder(b1) + f8.builder_set(b1) test.write(['sub2', 'SCCS', 's.f5'], "sub2/SCCS/s.f5\n") test.write(['sub2', 'RCS', 'f6,v'], "sub2/RCS/f6,v\n") @@ -1470,6 +1472,10 @@ class has_src_builderTestCase(unittest.TestCase): assert h, h h = f7.has_builder() assert h, h + h = f8.has_src_builder() + assert not h, h + h = f8.has_builder() + assert h, h class prepareTestCase(unittest.TestCase): def runTest(self): |