hush: fix yet another fallout
hush: move fixed testsuites out of hush-bugs/*
This commit is contained in:
parent
895bea2303
commit
2e76c3f901
25
shell/hush.c
25
shell/hush.c
@ -2691,19 +2691,18 @@ static int expand_vars_to_list(o_string *output, int n, char *arg, char or_mask)
|
||||
arg = ++p;
|
||||
} /* end of "while (SPECIAL_VAR_SYMBOL is found) ..." */
|
||||
|
||||
{
|
||||
int len = strlen(arg);
|
||||
if (len) {
|
||||
o_debug_list("expand_vars_to_list[a]", output, n);
|
||||
o_addstr(output, arg, len + 1);
|
||||
o_debug_list("expand_vars_to_list[b]", output, n);
|
||||
} else if (output->length == o_get_last_ptr(output, n)) { /* expansion is empty */
|
||||
if (!(ored_ch & 0x80)) { /* all vars were not quoted... */
|
||||
n--;
|
||||
/* allow to reuse list[n] later without re-growth */
|
||||
output->has_empty_slot = 1;
|
||||
}
|
||||
}
|
||||
if (arg[0]) {
|
||||
o_debug_list("expand_vars_to_list[a]", output, n);
|
||||
o_addstr(output, arg, strlen(arg) + 1);
|
||||
o_debug_list("expand_vars_to_list[b]", output, n);
|
||||
} else if (output->length == o_get_last_ptr(output, n) /* expansion is empty */
|
||||
&& !(ored_ch & 0x80) /* and all vars were not quoted. */
|
||||
) {
|
||||
n--;
|
||||
/* allow to reuse list[n] later without re-growth */
|
||||
output->has_empty_slot = 1;
|
||||
} else {
|
||||
o_addchr(output, '\0');
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
# Bag: backticks are executed even inside not-taken if
|
||||
if false; then
|
||||
echo "FOO"
|
||||
tmp=`echo BAR >&2`
|
Loading…
Reference in New Issue
Block a user