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
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

