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);