updated for version 7.0125
diff --git a/src/eval.c b/src/eval.c
index 56811ab..6919bf1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -15161,8 +15161,26 @@
|| *p == '{'
|| ((flags & FNE_INCL_BR) && (*p == '[' || *p == '.'))
|| mb_nest != 0
- || br_nest != 0); ++p)
+ || br_nest != 0); mb_ptr_adv(p))
{
+ if (*p == '\'')
+ {
+ /* skip over 'string' to avoid counting [ and ] inside it. */
+ for (p = p + 1; *p != NUL && *p != '\''; mb_ptr_adv(p))
+ ;
+ if (*p == NUL)
+ break;
+ }
+ else if (*p == '"')
+ {
+ /* skip over "str\"ing" to avoid counting [ and ] inside it. */
+ for (p = p + 1; *p != NUL && *p != '"'; mb_ptr_adv(p))
+ if (*p == '\\' && p[1] != NUL)
+ ++p;
+ if (*p == NUL)
+ break;
+ }
+
if (mb_nest == 0)
{
if (*p == '[')
@@ -15170,6 +15188,7 @@
else if (*p == ']')
--br_nest;
}
+
if (br_nest == 0)
{
if (*p == '{')