diff src/message.c @ 9941:e975914c17e9 v7.4.2244

commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Aug 23 23:51:21 2016 +0200 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.
author Christian Brabandt <cb@256bit.org>
date Wed, 24 Aug 2016 00:00:08 +0200
parents b01afb4e8f66
children b222552cf0c4
line wrap: on
line diff
--- 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