]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge changes made in Gnus master
authorGnus developers <ding@gnus.org.noreply>
Mon, 8 Jul 2013 23:51:26 +0000 (23:51 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 8 Jul 2013 23:51:26 +0000 (23:51 +0000)
doc/misc/ChangeLog
doc/misc/gnus.texi
lisp/gnus/ChangeLog
lisp/gnus/gnus-registry.el
lisp/gnus/nnml.el

index 5467d2cadcaccf27ea90ea7cb98fb3955fa752ba..2fe1914f926c3608d8b2943005e10ce5df1897f9 100644 (file)
@@ -1,3 +1,9 @@
+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
index 678521d12207fa13596590a59ccb3bdf72a262f2..e5ba2c19eec2f3a64be84fad0cdd4d64edf0151b 100644 (file)
@@ -26006,9 +26006,13 @@ following variables.
 
 @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
index 689444878d7fbdfbf1dd9185cbc9e5c6e1848bc1..7348b6e603cde60956f2c1d2c121e6f4fbf15b37 100644 (file)
@@ -1,3 +1,12 @@
+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
index 5a7dfd82d286293d7c58d09755e3516e96a5384d..6f2fe78c3d8baba791a7d27e976d69fae8401591 100644 (file)
@@ -1186,6 +1186,29 @@ data stored in the registry."
                   (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)
index 64e1ee1197706c121d7a5e61ab91ab4825449281..05d0c902340c545273930f923044c628f4aaf67f 100644 (file)
@@ -1094,7 +1094,10 @@ Use the nov database for the current group if available."
                       (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