aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/quickfix.txt2
-rw-r--r--src/nvim/quickfix.c12
2 files changed, 9 insertions, 5 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index d20a91dc2d..7b9c418a46 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1257,7 +1257,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
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index 81da410826..6779f4e05d 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -2551,17 +2551,21 @@ void qf_list(exarg_T *eap)
}
// Support for filtering entries using :filter /pat/ clist
- int filter_entry = 1;
+ // Match against the module name, file name, search pattern and
+ // text of the entry.
+ bool 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;
}