summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt2
-rw-r--r--src/engine/SCons/Node/FS.py3
-rw-r--r--src/engine/SCons/Node/FSTests.py6
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):