diff options
author | Steven Knight <knight@baldmt.com> | 2003-10-28 03:39:31 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-10-28 03:39:31 (GMT) |
commit | c0859da6b4fe678bab39caf47a628719fc6ff0b6 (patch) | |
tree | 432c5912e83b9725981ae47298afb7bc2472849f /src/engine | |
parent | dcc0927037489849938795e559b396a1f811fbcf (diff) | |
download | SCons-c0859da6b4fe678bab39caf47a628719fc6ff0b6.zip SCons-c0859da6b4fe678bab39caf47a628719fc6ff0b6.tar.gz SCons-c0859da6b4fe678bab39caf47a628719fc6ff0b6.tar.bz2 |
Fix a regression with env.Append().
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/SCons/Environment.py | 10 | ||||
-rw-r--r-- | src/engine/SCons/EnvironmentTests.py | 19 |
2 files changed, 24 insertions, 5 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py index e320f05..6c6ad8a 100644 --- a/src/engine/SCons/Environment.py +++ b/src/engine/SCons/Environment.py @@ -427,14 +427,16 @@ class Base: self._dict[key] = kw[key] elif SCons.Util.is_List(self._dict[key]) and not \ SCons.Util.is_List(kw[key]): - if not kw[key] is None and kw[key] != '': + if kw[key]: self._dict[key] = self._dict[key] + [ kw[key] ] + #self._dict[key] = map(None, self._dict[key] + [ kw[key] ]) elif SCons.Util.is_List(kw[key]) and not \ SCons.Util.is_List(self._dict[key]): - if self._dict[key] is None or self._dict[key] == '': - self._dict[key] = kw[key] - else: + if self._dict[key]: self._dict[key] = [ self._dict[key] ] + kw[key] + else: + self._dict[key] = kw[key] + #self._dict[key] = map(None, self._dict[key] + [ kw[key] ]) elif SCons.Util.is_Dict(self._dict[key]) and \ SCons.Util.is_Dict(kw[key]): self._dict[key].update(kw[key]) diff --git a/src/engine/SCons/EnvironmentTests.py b/src/engine/SCons/EnvironmentTests.py index d079feb..2861f85 100644 --- a/src/engine/SCons/EnvironmentTests.py +++ b/src/engine/SCons/EnvironmentTests.py @@ -721,7 +721,7 @@ class EnvironmentTestCase(unittest.TestCase): b1 = Environment()['BUILDERS'] b2 = Environment()['BUILDERS'] assert b1 == b2, diff_dict(b1, b2) - + import UserList UL = UserList.UserList env1 = Environment(AAA = 'a', @@ -777,6 +777,23 @@ class EnvironmentTestCase(unittest.TestCase): assert env1['QQQ2'] == UL(['', 'Q2']), env1['QQQ2'] assert env1['QQQ3'] == UL(['', 'Q3']), env1['QQQ3'] + class C: + def __init__(self, name): + self.name = name + def __str__(self): + return self.name + def __cmp__(self, other): + raise "should not compare" + + ccc = C('ccc') + + env2 = Environment(CCC1 = ['c1'], CCC2 = ccc) + env2.Append(CCC1 = ccc, CCC2 = ['c2']) + assert env2['CCC1'][0] == 'c1', env2['CCC1'] + assert env2['CCC1'][1] is ccc, env2['CCC1'] + assert env2['CCC2'][0] is ccc, env2['CCC2'] + assert env2['CCC2'][1] == 'c2', env2['CCC2'] + env3 = Environment(X = {'x1' : 7}) env3.Append(X = {'x1' : 8, 'x2' : 9}, Y = {'y1' : 10}) assert env3['X'] == {'x1': 8, 'x2': 9}, env3['X'] |