When subst() returns a non-string object, return the object and not a list on 1.5.2.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 21 Oct 2004 18:21:55 +0000 (18:21 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 21 Oct 2004 18:21:55 +0000 (18:21 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1132 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Util.py
src/engine/SCons/UtilTests.py

index 9f91158627ebb85fd013e4a12f0e4c5d3e9ea103..4e8193503303a819d5bcabbe93c369d5c733ee72 100644 (file)
@@ -668,8 +668,8 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, dict=No
                     result = _dollar_exps.sub(sub_match, args)
                 except TypeError:
                     # If the internal conversion routine doesn't return
-                    # strings (it could be overridden to return Nodes,
-                    # for example), then the re module will throw this
+                    # strings (it could be overridden to return Nodes, for
+                    # example), then the 1.5.2 re module will throw this
                     # exception.  Back off to a slower, general-purpose
                     # algorithm that works for all data types.
                     args = _separate_args.findall(args)
@@ -679,7 +679,8 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, dict=No
                     try:
                         result = string.join(result, '')
                     except TypeError:
-                        pass
+                        if len(result) == 1:
+                            result = result[0]
                 return result
             else:
                 return self.expand(args, lvars)
index 61142d5d700a9fb43433a1c3f4f8136a948d7081..cec89e1d258f5f894d0312400109e7ca12696390 100644 (file)
@@ -457,11 +457,11 @@ class UtilTestCase(unittest.TestCase):
         n1 = MyNode('n1')
         env = DummyEnv({'NODE' : n1})
         node = scons_subst("$NODE", env, mode=SUBST_RAW, conv=s)
-        assert node == [n1], node
+        assert node is n1, node
         node = scons_subst("$NODE", env, mode=SUBST_CMD, conv=s)
-        assert node == [n1], node
+        assert node is n1, node
         node = scons_subst("$NODE", env, mode=SUBST_SIG, conv=s)
-        assert node == [n1], node
+        assert node is n1, node
 
         # Test returning a function.
         #env = DummyEnv({'FUNCTION' : foo})