summaryrefslogtreecommitdiffstats
path: root/src/getchar.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-23 12:29:11 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-23 12:29:11 +0200
commit189832bf661168df7ebd428e4088737718775fbd (patch)
tree41f4c1d46cc1b0b40dcff2969f189ddfd1b21d84 /src/getchar.c
parentc53e9c57a9846655c2d3169788f4beefa6d22d90 (diff)
patch 8.2.1729: endless loop when ":normal" feeds popup window filterv8.2.1729
Problem: Endless loop when ":normal" feeds popup window filter. Solution: Add the ex_normal_busy_done flag.
Diffstat (limited to 'src/getchar.c')
-rw-r--r--src/getchar.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/getchar.c b/src/getchar.c
index e42fc332cc..2c7bd1fd2e 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1888,7 +1888,7 @@ vgetc(void)
}
#endif
#ifdef FEAT_PROP_POPUP
- if (popup_do_filter(c))
+ if (!ex_normal_busy_done && popup_do_filter(c))
{
if (c == Ctrl_C)
got_int = FALSE; // avoid looping
@@ -3168,6 +3168,10 @@ vgetorpeek(int advance)
timedout = TRUE;
continue;
}
+#ifdef FEAT_PROP_POPUP
+ ex_normal_busy_done = TRUE;
+#endif
+
// When 'insertmode' is set, ESC just beeps in Insert
// mode. Use CTRL-L to make edit() return.
// For the command line only CTRL-C always breaks it.