value directory; avoiding slowing substitution logic when there's no
'$' in the string.
+ From Jan Nieuwenhuizen:
+
+ - Fix a problem with interpreting quoted argument lists on command lines.
+
From Greg Noel:
- Add construction variables to support frameworks on Mac OS X:
- Update EnsureSConsVersion() to support revision numbers.
+ From Dobes Vandermeer:
+
+ - Add support for SCC and other settings in Microsoft Visual
+ Studio project and solution files: $MSVS_PROJECT_BASE_PATH,
+ $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH,
+ $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER,
+
From Greg Ward:
- Fix a misplaced line in the man page.
self.add_new_word(x)
else:
y = current_word + x
- literal1 = self.literal(self[-1][-1])
- literal2 = self.literal(x)
+
+ # We used to treat a word appended to a literal
+ # as a literal itself, but this caused problems
+ # with interpreting quotes around space-separated
+ # targets on command lines. Removing this makes
+ # none of the "substantive" end-to-end tests fail,
+ # so we'll take this out but leave it commented
+ # for now in case there's a problem not covered
+ # by the test cases and we need to resurrect this.
+ #literal1 = self.literal(self[-1][-1])
+ #literal2 = self.literal(x)
y = self.conv(y)
if is_String(y):
- y = CmdStringHolder(y, literal1 or literal2)
+ #y = CmdStringHolder(y, literal1 or literal2)
+ y = CmdStringHolder(y, None)
self[-1][-1] = y
def add_new_word(self, x):
c = cmd_list[0][3].escape(escape_func)
assert c == 'xyz', c
+ # We used to treat literals smooshed together like the whole
+ # thing was literal and escape it as a unit. The commented-out
+ # asserts below are in case we ever have to find a way to
+ # resurrect that functionality in some way.
cmd_list = scons_subst_list("abc${LITERALS}xyz", env, gvars=gvars)
c = cmd_list[0][0].escape(escape_func)
- assert c == '**abcfoo\nwith\nnewlines**', c
+ #assert c == '**abcfoo\nwith\nnewlines**', c
+ assert c == 'abcfoo\nwith\nnewlines', c
c = cmd_list[0][1].escape(escape_func)
- assert c == '**bar\nwith\nnewlinesxyz**', c
+ #assert c == '**bar\nwith\nnewlinesxyz**', c
+ assert c == 'bar\nwith\nnewlinesxyz', c
+
+ cmd_list = scons_subst_list('echo "target: $TARGET"', env,
+ target=_t, gvars=gvars)
+ c = cmd_list[0][0].escape(escape_func)
+ assert c == 'echo', c
+ c = cmd_list[0][1].escape(escape_func)
+ assert c == '"target:', c
+ c = cmd_list[0][2].escape(escape_func)
+ assert c == 't"', c
# Tests of the various SUBST_* modes of substitution.
subst_list_cases = [