+2013-07-08 Tassilo Horn <tsdh@gnu.org>
+
+ * gnus.texi (lines): Correct description of
+ `gnus-registry-track-extra's default value. Mention
+ `gnus-registry-remove-extra-data'.
+
2013-07-06 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Group Parameters): Mention regexp
@defvar gnus-registry-track-extra
This is a list of symbols, so it's best to change it from the
-Customize interface. By default it's @code{(subject sender)}, which
-may work for you. It can be annoying if your mail flow is large and
-people don't stick to the same groups.
+Customize interface. By default it's @code{(subject sender recipient)},
+which may work for you. It can be annoying if your mail flow is large
+and people don't stick to the same groups.
+
+When you decide to stop tracking any of those extra data, you can use
+the command @code{gnus-registry-remove-extra-data} to purge it from
+the existing registry entries.
@end defvar
@defvar gnus-registry-split-strategy
+2013-07-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nnml.el (nnml-request-compact-group): Don't bug out if we can't
+ delete files (bug#13481).
+
+2013-07-08 Tassilo Horn <tsdh@gnu.org>
+
+ * gnus-registry.el (gnus-registry-remove-extra-data): New function.
+
2013-07-06 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-art.el (gnus-block-private-groups): Allow `global' methods to
(gnus-select-group-with-message-id group message-id) t)
(throw 'found t))))))))
+(defun gnus-registry-remove-extra-data (extra)
+ "Remove tracked EXTRA data from the gnus registry.
+EXTRA is a list of symbols. Valid symbols are those contained in
+the docs of `gnus-registry-track-extra'. This command is useful
+when you stop tracking some extra data and now want to purge it
+from your existing entries."
+ (interactive (list (mapcar 'intern
+ (completing-read-multiple
+ "Extra data: "
+ '("subject" "sender" "recipient")))))
+ (when extra
+ (let ((db gnus-registry-db))
+ (registry-reindex db)
+ (loop for k being the hash-keys of (oref db :data)
+ using (hash-value v)
+ do (let ((newv (delq nil (mapcar #'(lambda (entry)
+ (unless (member (car entry) extra)
+ entry))
+ v))))
+ (registry-delete db (list k) nil)
+ (gnus-registry-insert db k newv)))
+ (registry-reindex db))))
+
;; TODO: a few things
(provide 'gnus-registry)
(concat group ":" new-number-string)))
;; Save to the new file:
(nnmail-write-region (point-min) (point-max) newfile))
- (funcall nnmail-delete-file-function oldfile))
+ (condition-case ()
+ (funcall nnmail-delete-file-function oldfile)
+ (file-error
+ (message "Couldn't delete %s" oldfile))))
;; 2/ Update all marks for this article:
;; #### NOTE: it is possible that the new article number
;; #### already belongs to a range, whereas the corresponding