Add ignored groups back.
authorTed Zlatanov <tzz@lifelogs.com>
Wed, 20 Apr 2011 20:48:24 +0000 (15:48 -0500)
committerTed Zlatanov <tzz@lifelogs.com>
Wed, 20 Apr 2011 20:48:24 +0000 (15:48 -0500)
* gnus-registry.el (gnus-registry-ignored-groups): New variable.
(gnus-registry-ignore-group-p): Use it.
(gnus-registry-handle-action): Use `gnus-registry-ignore-group-p' and
set the destination group to nil (same as delete) if it's ignored.

lisp/ChangeLog
lisp/gnus-registry.el

index f23e8a3..0d2f6b6 100644 (file)
@@ -2,6 +2,10 @@
 
        * gnus-registry.el
        (gnus-registry--split-fancy-with-parent-internal): Fix loop bugs.
+       (gnus-registry-ignored-groups): New variable.
+       (gnus-registry-ignore-group-p): Use it.
+       (gnus-registry-handle-action): Use `gnus-registry-ignore-group-p' and
+       set the destination group to nil (same as delete) if it's ignored.
 
 2011-04-20  David Engster  <dengste@eml.cc>
 
index 3dbffd9..21cec5f 100644 (file)
@@ -133,6 +133,16 @@ qualified.  This parameter tells the Gnus registry 'never split a
 message into a group that matches one of these, regardless of
 references.'
 
+nnmairix groups are specifically excluded because they are ephemeral."
+  :group 'gnus-registry
+  :type '(repeat regexp))
+
+(defcustom gnus-registry-ignored-groups
+  '("delayed$" "drafts$" "queue$" "INBOX$" "^nnmairix:" "archive")
+  "List of groups that the Gnus Registry will ignore.
+The group names are matched, they don't have to be fully
+qualified.
+
 nnmairix groups are specifically excluded because they are ephemeral."
   :group 'gnus-registry
   :type '(repeat regexp))
@@ -341,6 +351,8 @@ This is not required after changing `gnus-registry-cache-file'."
    10
    "gnus-registry-handle-action %S" (list id from to subject sender recipients))
   (let ((db gnus-registry-db)
+        ;; if the group is ignored, set the destination to nil (same as delete)
+        (to (if (gnus-registry-ignore-group-p to) nil to))
         ;; safe if not found
         (entry (gnus-registry-get-or-make-entry id))
         (subject (gnus-string-remove-all-properties
@@ -643,6 +655,18 @@ Consults `gnus-registry-unfollowed-groups' and
                  group
                  nnmail-split-fancy-with-parent-ignore-groups)))))
 
+(defun gnus-registry-ignore-group-p (group)
+  "Determines if a group name should be ignored.
+Consults `gnus-registry-ignored-groups' and
+`nnmail-split-fancy-with-parent-ignore-groups'."
+  (and group
+       (not (or (gnus-grep-in-list
+                 group
+                 gnus-registry-ignored-groups)
+                (gnus-grep-in-list
+                 group
+                 nnmail-split-fancy-with-parent-ignore-groups)))))
+
 (defun gnus-registry-wash-for-keywords (&optional force)
   "Get the keywords of the current article.
 Overrides existing keywords with FORCE set non-nil."