hush: fix remaining known two bugs with IFS expansion. Closes 4027.
function old new delta
expand_vars_to_list 1054 1140 +86
parse_stream 2425 2479 +54
expand_on_ifs 258 310 +52
builtin_umask 133 132 -1
done_word 820 779 -41
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/2 up/down: 192/-42) Total: 150 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/shell/hush_test/hush-parsing/starquoted2.right b/shell/hush_test/hush-parsing/starquoted2.right
index e1562ed..1bff408 100644
--- a/shell/hush_test/hush-parsing/starquoted2.right
+++ b/shell/hush_test/hush-parsing/starquoted2.right
@@ -1,4 +1,7 @@
Should be printed
+Would not be printed by bash
+Would not be printed by bash
+Would not be printed by bash
Should be printed
Empty:
Empty:
diff --git a/shell/hush_test/hush-parsing/starquoted2.tests b/shell/hush_test/hush-parsing/starquoted2.tests
index f305c4c..7c5ff45 100755
--- a/shell/hush_test/hush-parsing/starquoted2.tests
+++ b/shell/hush_test/hush-parsing/starquoted2.tests
@@ -8,9 +8,9 @@
# 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 Would not be printed by bash; done
+for a in """$@"; do echo Would not be printed by bash; done
+for a in """$@"''"$@"''; do echo Would not be printed by bash; done
for a in ""; do echo Should be printed; done
# Bug 207: "$@" expands to nothing, and we erroneously glob "%s\n" twice: