patch 9.1.0002: a closing fold expr, may start a new fold
Problem: a closing fold expression may unexpectedly start a new fold
when it should end a fold
(reported by Shota Nozaki)
Solution: if a fold hasn't started yet, do not immediately
start a new fold with level 1
(Shota Nozaki)
fixes: #12768
closes: #13748
Signed-off-by: Shota Nozaki <emonkak@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/fold.c b/src/fold.c
index be20991..5c41ed1 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -3362,7 +3362,9 @@
break;
// "<1", "<2", .. : end a fold with a certain level
- case '<': flp->lvl_next = n - 1;
+ case '<': // To prevent an unexpected start of a new fold, the next
+ // level must not exceed the level of the current fold.
+ flp->lvl_next = MIN(flp->lvl, n - 1);
flp->end = n;
break;