From 7b668e83d0635d082b7ec90d7d2aa30a9d7d8928 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 23 Aug 2016 23:51:21 +0200 Subject: patch 7.4.2244 Problem: Adding pattern to ":oldfiles" is not a generic solution. Solution: Add the ":filter /pat/ cmd" command modifier. Only works for some commands right now. --- src/message.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/message.c') diff --git a/src/message.c b/src/message.c index a7398f6eb..f24bc2817 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); @@ -2149,6 +2154,17 @@ msg_puts_display( msg_check(); } +/* + * 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. */ -- cgit v1.2.1