Mercurial > vim
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