diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-29 14:11:38 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-30 13:08:54 +0200 |
commit | 1aad6d033a83c025a6e3b279ac5b145c7a2efffd (patch) | |
tree | 887bc81a8a1b420c6f543cb7bb1d22841c35ca36 /fs | |
parent | 37e77d3cfec63f46e4c04847c6181dae2c1b7ea0 (diff) | |
download | barebox-1aad6d033a83c025a6e3b279ac5b145c7a2efffd.tar.gz barebox-1aad6d033a83c025a6e3b279ac5b145c7a2efffd.tar.xz |
hush: remove quotes at end of processing
hush removes the quotes from strings too early. This leads to some bugs.
When hush executes
echo "hello sascha"
it correctly results in:
argv[0] = "echo"
argv[1] = "hello sascha"
However, the following behaves incorrect:
a="hello sascha"
echo "$a"
results in:
argv[0] = "echo"
argv[1] = "hello"
argv[2] = "sascha"
This is because hush removes the quotes and inserts variable values in a
single loop, so
echo "$a"
becomes:
echo hello sascha
after the loop.
Instead, keep the quotes until all variables are inserted and remove them
at the end.
This also fixes that echo \" resulted in \" instead of ".
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions