diff options
Diffstat (limited to 'src/message.c')
-rw-r--r-- | src/message.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/message.c b/src/message.c index a7398f6eb0..f24bc28173 100644 --- a/src/message.c +++ b/src/message.c @@ -137,6 +137,11 @@ msg_attr_keep( int retval; char_u *buf = NULL; + /* Skip messages not matching ":filter pattern". + * Don't filter when there is an error. */ + if (!emsg_on_display && message_filtered(s)) + return TRUE; + #ifdef FEAT_EVAL if (attr == 0) set_vim_var_string(VV_STATUSMSG, s, -1); @@ -2150,6 +2155,17 @@ msg_puts_display( } /* + * Return TRUE when ":filter pattern" was used and "msg" does not match + * "pattern". + */ + int +message_filtered(char_u *msg) +{ + return cmdmod.filter_regmatch.regprog != NULL + && !vim_regexec(&cmdmod.filter_regmatch, msg, (colnr_T)0); +} + +/* * Scroll the screen up one line for displaying the next message line. */ static void |