Commit 5b66483e authored by Eric Abrahamsen's avatar Eric Abrahamsen

Prevent gnus-registry-handle-action from creating spurious entries

Thanks to Bob Newell for finding this.

* lisp/gnus/gnus-registry.el (gnus-registry-handle-action): If a
message entry ends up with no groups in its 'group key, that means the
entry should be deleted.
parent bd64571e
Pipeline #5629 failed with stage
in 49 minutes and 59 seconds
......@@ -485,23 +485,25 @@ This is not required after changing `gnus-registry-cache-file'."
(when from
(setq entry (cons (delete from (assoc 'group entry))
(assq-delete-all 'group entry))))
(dolist (kv `((group ,to)
(sender ,sender)
(recipient ,@recipients)
(subject ,subject)))
(when (cadr kv)
(let ((new (or (assq (car kv) entry)
(list (car kv)))))
(dolist (toadd (cdr kv))
(unless (member toadd new)
(setq new (append new (list toadd)))))
(setq entry (cons new
(assq-delete-all (car kv) entry))))))
(gnus-message 10 "Gnus registry: new entry for %s is %S"
id
entry)
(gnus-registry-insert db id entry)))
;; Only keep the entry if the message is going to a new group, or
;; it's still in some previous group.
(when (or to (alist-get 'group entry))
(dolist (kv `((group ,to)
(sender ,sender)
(recipient ,@recipients)
(subject ,subject)))
(when (cadr kv)
(let ((new (or (assq (car kv) entry)
(list (car kv)))))
(dolist (toadd (cdr kv))
(unless (member toadd new)
(setq new (append new (list toadd)))))
(setq entry (cons new
(assq-delete-all (car kv) entry))))))
(gnus-message 10 "Gnus registry: new entry for %s is %S"
id
entry)
(gnus-registry-insert db id entry))))
;; Function for nn{mail|imap}-split-fancy: look up all references in
;; the cache and if a match is found, return that group.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment