diff options
-rw-r--r-- | Src/lex.c | 6 | ||||
-rw-r--r-- | Test/D04parameter.ztst | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/Src/lex.c b/Src/lex.c index 3ea878c7b..23b0a1cd9 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -1026,8 +1026,10 @@ gettokstr(int c, int sub) c = Inbrace; ++bct; cmdpush(CS_BRACEPAR); - if (!in_brace_param) - in_brace_param = bct; + if (!in_brace_param) { + if ((in_brace_param = bct)) + seen_brct = 0; + } } else { hungetc(e); lexstop = 0; diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst index bcea980ad..a6817fe22 100644 --- a/Test/D04parameter.ztst +++ b/Test/D04parameter.ztst @@ -1880,3 +1880,9 @@ >'two words' >'three so-called '\''words'\' >'three so-called ''words''' + + array=(one two three) + array[1]=${nonexistent:-foo} + print $array +0:"-" works after "[" in same expression (Dash problem) +>foo two three |