summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-search.el
diff options
context:
space:
mode:
authorEric Abrahamsen <eric@ericabrahamsen.net>2021-05-21 13:35:38 -0700
committerEric Abrahamsen <eric@ericabrahamsen.net>2021-05-21 13:35:38 -0700
commit5fe343a44cdd83c43793c86b92ab5dd16a29bc3a (patch)
tree44217c017d55cf5cfc865c4958cd75507e1214d8 /lisp/gnus/gnus-search.el
parent484bd8137a71d26fc712053c6904e16877ca9be3 (diff)
downloademacs-5fe343a44cdd83c43793c86b92ab5dd16a29bc3a.tar.gz
Robustify parsing of gnus-search search results
* lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Look for a "process finished" tag, and don't choke on mis-parsed lines.
Diffstat (limited to 'lisp/gnus/gnus-search.el')
-rw-r--r--lisp/gnus/gnus-search.el7
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el
index a59d0e57a79..fc9f8684f63 100644
--- a/lisp/gnus/gnus-search.el
+++ b/lisp/gnus/gnus-search.el
@@ -1358,9 +1358,12 @@ Returns a list of [group article score] vectors."
"\\|")))
artlist vectors article group)
(goto-char (point-min))
- (while (not (eobp))
+ (while (not (or (eobp)
+ (looking-at-p
+ "\\(?:[[:space:]\n]+\\)?Process .+ finished")))
(pcase-let ((`(,f-name ,score) (gnus-search-indexed-extract engine)))
- (when (and (file-readable-p f-name)
+ (when (and f-name
+ (file-readable-p f-name)
(null (file-directory-p f-name))
(or (null groups)
(and (gnus-search-single-p query)