patch 8.2.1886: using ":silent!" in a popup filter has unexpected effect
Problem: Using ":silent!" in a popup filter has unexpected effect.
Solution: Use did_emsg instead of called_emsg. (closes #7178)
diff --git a/src/popupwin.c b/src/popupwin.c
index 2868a9d..ed96456 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -3149,7 +3149,7 @@
typval_T argv[3];
char_u buf[NUMBUFLEN];
linenr_T old_lnum = wp->w_cursor.lnum;
- int prev_called_emsg = called_emsg;
+ int prev_did_emsg = did_emsg;
// Emergency exit: CTRL-C closes the popup.
if (c == Ctrl_C)
@@ -3193,12 +3193,12 @@
if (win_valid_popup(wp) && old_lnum != wp->w_cursor.lnum)
popup_highlight_curline(wp);
- // If an error was given always return FALSE, so that keys are not
- // consumed and the user can type something.
+ // If an error message was given always return FALSE, so that keys are
+ // not consumed and the user can type something.
// If we get three errors in a row then close the popup. Decrement the
// error count by 1/10 if there are no errors, thus allowing up to 1 in
// 10 calls to cause an error.
- if (win_valid_popup(wp) && called_emsg > prev_called_emsg)
+ if (win_valid_popup(wp) && did_emsg > prev_did_emsg)
{
wp->w_filter_errors += 10;
if (wp->w_filter_errors >= 30)