* gnus-registry.el (gnus-registry-remove-ignored): New function to remove entries...
authorTed Zlatanov <tzz@lifelogs.com>
Wed, 1 Jun 2011 17:26:33 +0000 (12:26 -0500)
committerTed Zlatanov <tzz@lifelogs.com>
Wed, 1 Jun 2011 17:30:28 +0000 (12:30 -0500)
lisp/ChangeLog
lisp/gnus-registry.el

index a62ef42..35d4e09 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * gnus-registry.el (gnus-registry-remove-ignored): New function to
+       remove entries with groups we ignore.
+
 2011-05-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * shr.el (shr-rescale-image): Add an :ascent of 100 to images so that
index f6c0daa..a44986e 100644 (file)
@@ -321,6 +321,20 @@ This is not required after changing `gnus-registry-cache-file'."
     (gnus-message 5 "Saving Gnus registry (size %d) to %s...done"
                   (registry-size db) file)))
 
+(defun gnus-registry-remove-ignored ()
+  (interactive)
+  (let* ((db gnus-registry-db)
+         (grouphashtb (registry-lookup-secondary db 'group))
+         (old-size (registry-size db)))
+    (registry-reindex db)
+    (loop for k being the hash-keys of grouphashtb
+          using (hash-values v)
+          when (gnus-registry-ignore-group-p k)
+          do (registry-delete db v nil))
+    (registry-reindex db)
+    (gnus-message 4 "Removed %d ignored entries from the Gnus registry"
+                  (- old-size (registry-size db)))))
+
 ;; article move/copy/spool/delete actions
 (defun gnus-registry-action (action data-header from &optional to method)
   (let* ((id (mail-header-id data-header))