u-boot/test
Stephen Warren fe9ca3d328 hush: fix some quoted variable expansion issues
The following shell command fails:

if test -z "$x"; then echo "zero"; else echo "non-zero"; fi

(assuming $x does not exist, it prints "non-zero" rather than "zero").

... since "$x" expands to nothing, and the argument is completely
dropped, causing too few to be passed to -z, causing cmd_test() to
error out early.

This is because when variable expansions are processed by make_string(),
the expanded results are concatenated back into a new string. However,
no quoting is applied when doing so, so any empty variables simply don't
generate any parameter when the combined string is parsed again.

Fix this by explicitly replacing quoting any argument that was originally
quoted when re-generating a string from the already-parsed argument list.

This also fixes loss of whitespace in commands such as:

setenv space " "
setenv var " 1${space}${space} 2 "
echo ">>${var}<<"

Reported-by: Russell King <linux@arm.linux.org.uk>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
2014-03-07 10:59:06 -05:00
..
dm dm: Add GPIO support and tests 2014-03-04 12:15:30 -05:00
image sandbox: dumpimage: Test dumpimage 2013-12-13 09:15:32 -05:00
trace Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
vboot Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
command_ut.c hush: fix some quoted variable expansion issues 2014-03-07 10:59:06 -05:00
compression.c Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
Makefile dts, api, test: convert makefiles to Kbuild style 2013-11-01 11:42:12 -04:00