changeset 14307:df27d6270691 v8.1.0169

patch 8.1.0169: calling message_filtered() a bit too often commit https://github.com/vim/vim/commit/a9defadb8f03ecd03f3297305d5482ba380774dc Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 8 18:20:24 2018 +0200 patch 8.1.0169: calling message_filtered() a bit too often Problem: Calling message_filtered() a bit too often. Solution: Only call message_filtered() when filtering is already false.
author Christian Brabandt <cb@256bit.org>
date Sun, 08 Jul 2018 18:30:06 +0200
parents 006f608a77b5
children 5ffdc5efb1f4
files runtime/doc/quickfix.txt src/quickfix.c src/version.c
diffstat 3 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -298,6 +298,10 @@ processing a quickfix or location list c
 			from the last error backwards, -1 being the last error.
 			The 'switchbuf' settings are respected when jumping
 			to a buffer.
+			The |:filter| command can be used to display only the
+			quickfix entries matching a supplied pattern. The
+			pattern is matched against the filename, module name,
+			pattern and text of the entry.
 
 :cl[ist] +{count}	List the current and next {count} valid errors.  This
 			is similar to ":clist from from+count", where "from"
@@ -1287,7 +1291,7 @@ to the file.
 Changing directory
 
 The following uppercase conversion characters specify the type of special
-format strings.  At most one of them may be given as a prefix at the begin
+format strings.  At most one of them may be given as a prefix at the beginning
 of a single comma-separated format pattern.
 Some compilers produce messages that consist of directory names that have to
 be prepended to each file name read by %f (example: GNU make).  The following
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3139,18 +3139,21 @@ qf_list(exarg_T *eap)
 		    sprintf((char *)IObuff, "%2d", i);
 		else
 		    vim_snprintf((char *)IObuff, IOSIZE, "%2d %s",
-								i, (char *)fname);
+							     i, (char *)fname);
 	    }
 
 	    // Support for filtering entries using :filter /pat/ clist
-	    filter_entry = 1;
+	    // Match against the module name, file name, search pattern and
+	    // text of the entry.
+	    filter_entry = TRUE;
 	    if (qfp->qf_module != NULL && *qfp->qf_module != NUL)
 		filter_entry &= message_filtered(qfp->qf_module);
-	    if (fname != NULL)
+	    if (filter_entry && fname != NULL)
 		filter_entry &= message_filtered(fname);
-	    if (qfp->qf_pattern != NULL)
+	    if (filter_entry && qfp->qf_pattern != NULL)
 		filter_entry &= message_filtered(qfp->qf_pattern);
-	    filter_entry &= message_filtered(qfp->qf_text);
+	    if (filter_entry)
+		filter_entry &= message_filtered(qfp->qf_text);
 	    if (filter_entry)
 		goto next_entry;
 
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    169,
+/**/
     168,
 /**/
     167,