diff options
author | Denis Vlasenko | 2008-07-05 17:40:04 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-07-05 17:40:04 +0000 |
commit | afdcd12ed71abdeab16961a0308c84f7147b66b2 (patch) | |
tree | 28daaec6dfc82170f7ddc003b33d197dd086c352 /shell/hush_test/hush-parsing | |
parent | a60f84ebf07863e390b72a2b6150e461a1ec18e9 (diff) | |
download | busybox-afdcd12ed71abdeab16961a0308c84f7147b66b2.zip busybox-afdcd12ed71abdeab16961a0308c84f7147b66b2.tar.gz |
hush: fix a case where "$@" must expand to no word at all
Diffstat (limited to 'shell/hush_test/hush-parsing')
-rw-r--r-- | shell/hush_test/hush-parsing/starquoted2.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-parsing/starquoted2.tests | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/shell/hush_test/hush-parsing/starquoted2.right b/shell/hush_test/hush-parsing/starquoted2.right new file mode 100644 index 0000000..46f2436 --- /dev/null +++ b/shell/hush_test/hush-parsing/starquoted2.right @@ -0,0 +1,2 @@ +Should be printed +Should be printed diff --git a/shell/hush_test/hush-parsing/starquoted2.tests b/shell/hush_test/hush-parsing/starquoted2.tests new file mode 100755 index 0000000..782d71b --- /dev/null +++ b/shell/hush_test/hush-parsing/starquoted2.tests @@ -0,0 +1,14 @@ +if test $# != 0; then + exec "$THIS_SH" "$0" +fi + +# No params! +for a in "$*"; do echo Should be printed; done +for a in "$@"; do echo Should not be printed; done +# Yes, believe it or not, bash is mesmerized by "$@" and stops +# treating "" as "this word cannot be expanded to nothing, +# but must be at least null string". Now it can be expanded to nothing. +for a in "$@"""; do echo Should not be printed; done +for a in """$@"; do echo Should not be printed; done +for a in """$@"''"$@"''; do echo Should not be printed; done +for a in ""; do echo Should be printed; done |