On Sat, Mar 01, 2014 at 10:16:10PM -0700, Stephen Warren wrote:

> 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 <[email protected]>
> Acked-by: Simon Glass <[email protected]>
> Signed-off-by: Stephen Warren <[email protected]>

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to