Mercurial > vim
diff src/eval.c @ 14968:c5ec5ddbe814 v8.1.0495
patch 8.1.0495: :filter only supports some commands
commit https://github.com/vim/vim/commit/f86db78fed78541cefdb706e4779ce5ae9ca7820
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Oct 25 13:31:37 2018 +0200
patch 8.1.0495: :filter only supports some commands
Problem: :filter only supports some commands.
Solution: Add :filter support for more commands. (Marcin Szamotulski,
closes #2856)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 25 Oct 2018 13:45:05 +0200 |
parents | 2c0bfa167468 |
children | a527110d5f56 |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -1425,6 +1425,7 @@ list_hashtable_vars( hashitem_T *hi; dictitem_T *di; int todo; + char_u buf[IOSIZE]; todo = (int)ht->ht_used; for (hi = ht->ht_array; todo > 0 && !got_int; ++hi) @@ -1433,6 +1434,13 @@ list_hashtable_vars( { --todo; di = HI2DI(hi); + + // apply :filter /pat/ to variable name + vim_strncpy((char_u *) buf, prefix, IOSIZE - 1); + vim_strcat((char_u *) buf, di->di_key, IOSIZE); + if (message_filtered(buf)) + continue; + if (empty || di->di_tv.v_type != VAR_STRING || di->di_tv.vval.v_string != NULL) list_one_var(di, prefix, first);