diff options
author | Mats Wichmann <mats@linux.com> | 2024-08-14 11:44:00 (GMT) |
---|---|---|
committer | Mats Wichmann <mats@linux.com> | 2024-08-16 14:04:18 (GMT) |
commit | 6cf21b8298d81fa34f583b60d3fd19a4201d8a04 (patch) | |
tree | ced83ba6bb64c181f23efdfdf66580760bc9e686 /RELEASE.txt | |
parent | 876bb0691bba2e6086ac7c05caf1fb88fbb1cf43 (diff) | |
download | SCons-6cf21b8298d81fa34f583b60d3fd19a4201d8a04.zip SCons-6cf21b8298d81fa34f583b60d3fd19a4201d8a04.tar.gz SCons-6cf21b8298d81fa34f583b60d3fd19a4201d8a04.tar.bz2 |
Fix ListVariable with a space-containing value
Fix ListVariable handling of a quoted variable value containing spaces.
As a side effect of splitting the former monolithic converter/validator
for ListVariable into separate callbacks, it became possible for
subst to be called twice. The ListVariable converter produces an
instance of a _ListVariable container, and running subst on that
result ends up losing information, so avoid doing so.
While developing a test for this, it turned out the test framework
also didn't handle a quoted argument containing a space, so that
a test case passing arguments to scons via "run(arguments='...')"
could end up with scons seeing a different (broken) command line
than scons invoked with the same arguments typing to a shell prompt.
A regex is now used to more accurately split the "arguments" parameter,
and a unit test was added to the framework tests to validate.
The framework fix had a side effect - it was possible that when run
as part of the test suite, the Variables package could receive a value
still wrapped in quotes, leading to string mismatches ('"with space"'
is not equal to 'with space'), so ListVariable now strips wrapping
quote marks.
Also during testing it turned out that the earlier fix for #4241,
allowing a Variable to declare the value should not be subst'd,
introduced problems for two types which assumed they would always
be passed a string. With subst=False, they could be passed a default
value that had been specified as a bool. Fixed to not fail on that.
Fixes #4585
Signed-off-by: Mats Wichmann <mats@linux.com>
Diffstat (limited to 'RELEASE.txt')
-rw-r--r-- | RELEASE.txt | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/RELEASE.txt b/RELEASE.txt index 2efc001..5b7f9f1 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -46,6 +46,8 @@ FIXES to be avaiable. `BoolVariable`, `EnumVariable`, `ListVariable`, `PackageVariable` and `PathVariable` are added to `__all__`, so this form of import should now work again. +- Fix handling of ListVariable when supplying a quoted choice containing + a space character (issue #4585). IMPROVEMENTS ------------ |