From 672f5b7e94dafa543a9424059b16b1a7f310dccf Mon Sep 17 00:00:00 2001 From: Ted Zlatanov Date: Mon, 11 Apr 2011 16:14:51 -0500 Subject: [PATCH] Add subject and sender tracking in Gnus registry for incoming mail. * gnus-registry.el (gnus-registry-action): Remove properties and simplify subject in `gnus-registry-handle-action'. (gnus-registry-spool-action): Get subject and sender from message if they are not passed in. (gnus-registry-handle-action): Remove properties and simplify subject consistently. --- lisp/ChangeLog | 9 +++++++++ lisp/gnus-registry.el | 16 +++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0322b1883..153570cc8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2011-04-11 Teodor Zlatanov + + * gnus-registry.el (gnus-registry-action): Remove properties and + simplify subject in `gnus-registry-handle-action'. + (gnus-registry-spool-action): Get subject and sender from message if + they are not passed in. + (gnus-registry-handle-action): Remove properties and simplify subject + consistently. + 2011-04-11 Stefan Monnier * registry.el: Require CL before using defmacro*. diff --git a/lisp/gnus-registry.el b/lisp/gnus-registry.el index 9824fc26f..8847dacd7 100644 --- a/lisp/gnus-registry.el +++ b/lisp/gnus-registry.el @@ -294,11 +294,8 @@ This is not required after changing `gnus-registry-cache-file'." ;; article move/copy/spool/delete actions (defun gnus-registry-action (action data-header from &optional to method) (let* ((id (mail-header-id data-header)) - (subject (gnus-string-remove-all-properties - (gnus-registry-simplify-subject - (mail-header-subject data-header)))) - (sender (gnus-string-remove-all-properties - (mail-header-from data-header))) + (subject (mail-header-subject data-header)) + (sender (mail-header-from data-header)) (from (gnus-group-guess-full-name-from-command-method from)) (to (if to (gnus-group-guess-full-name-from-command-method to) nil)) (to-name (if to to "the Bit Bucket"))) @@ -312,7 +309,9 @@ This is not required after changing `gnus-registry-cache-file'." to subject sender))) (defun gnus-registry-spool-action (id group &optional subject sender) - (let ((to (gnus-group-guess-full-name-from-command-method group))) + (let ((to (gnus-group-guess-full-name-from-command-method group)) + (subject (or subject (message-fetch-field "subject"))) + (sender (or sender (message-fetch-field "from")))) (when (and (stringp id) (string-match "\r$" id)) (setq id (substring id 0 -1))) (gnus-message 7 "Gnus registry: article %s spooled to %s" @@ -326,7 +325,10 @@ This is not required after changing `gnus-registry-cache-file'." "gnus-registry-handle-action %S" (list id from to subject sender)) (let ((db gnus-registry-db) ;; safe if not found - (entry (gnus-registry-get-or-make-entry id))) + (entry (gnus-registry-get-or-make-entry id)) + (subject (gnus-string-remove-all-properties + (gnus-registry-simplify-subject subject))) + (sender (gnus-string-remove-all-properties sender))) ;; this could be done by calling `gnus-registry-set-id-key' ;; several times but it's better to bunch the transactions -- 2.25.1