diff options
author | Robert Fenk <fenk@users.sourceforge.net> | 2007-07-03 19:26:57 +0000 |
---|---|---|
committer | Robert Fenk <fenk@users.sourceforge.net> | 2007-07-03 19:26:57 +0000 |
commit | 3f2b5af8287a3a9628ce07a7a04316d6d5aa8337 (patch) | |
tree | 362497f00a510d1da917b7b92eb38c77a8bc44dd /lisp/bbdb-gnus.el | |
parent | 4c0c84f3a68e148de25c1ccbddcf1ecbcdd18730 (diff) |
(bbdb/gnus-summary-get-author): Added handling of
`gnus-ignored-from-addresses' and `gnus-summary-to-prefix'.
Diffstat (limited to 'lisp/bbdb-gnus.el')
-rw-r--r-- | lisp/bbdb-gnus.el | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/lisp/bbdb-gnus.el b/lisp/bbdb-gnus.el index 5911597..0963f00 100644 --- a/lisp/bbdb-gnus.el +++ b/lisp/bbdb-gnus.el @@ -327,9 +327,19 @@ documentation for the following variables for more details: This function is meant to be used with the user function defined in `bbdb/gnus-summary-user-format-letter'" (let* ((from (mail-header-from header)) + (to (when (and (boundp 'gnus-ignored-from-addresses) + gnus-ignored-from-addresses + (string-match gnus-ignored-from-addresses from)) + (let* ((headers (mail-header-extra header)) + (to (or (mail-header 'To) + (mail-header 'CC) + (mail-header 'Newsgroups)))) + (if (and to (listp to)) + (cdr (car to)) + to)))) (data (and bbdb/gnus-summary-show-bbdb-names (condition-case nil - (mail-extract-address-components from) + (mail-extract-address-components (or to from)) (error nil)))) (name (car data)) (net (car (cdr data))) @@ -339,27 +349,34 @@ This function is meant to be used with the user function defined in (if (and net bbdb-canonicalize-net-hook) (bbdb-canonicalize-address net) net))))) + (if (and record name (member (downcase name) (bbdb-record-net record))) - ;; bogon! - (setq record nil)) + ;; bogon! + (setq record nil)) (setq name - (or (and bbdb/gnus-summary-prefer-bbdb-data - (or (and bbdb/gnus-summary-prefer-real-names - (and record (bbdb-record-name record))) - (and record (bbdb-record-net record) - (nth 0 (bbdb-record-net record))))) - (and bbdb/gnus-summary-prefer-real-names - (or (and (equal bbdb/gnus-summary-prefer-real-names 'bbdb) - net) - name)) - net from "**UNKNOWN**")) - (format "%s%s" - (or (and record bbdb/gnus-summary-mark-known-posters - (or (bbdb-record-getprop - record bbdb-message-marker-field) - bbdb/gnus-summary-known-poster-mark)) - " ") - name))) + (or (and bbdb/gnus-summary-prefer-bbdb-data + (or (and bbdb/gnus-summary-prefer-real-names + (and record (bbdb-record-name record))) + (and record (bbdb-record-net record) + (nth 0 (bbdb-record-net record))))) + (and bbdb/gnus-summary-prefer-real-names + (or (and (equal bbdb/gnus-summary-prefer-real-names 'bbdb) + net) + name)) + net from "**UNKNOWN**")) + (format "%s%s%s" + (if to + (if (and (boundp 'gnus-summary-to-prefix) + (stringp gnus-summary-to-prefix)) + gnus-summary-to-prefix + "To: ") + "") + (or (and record bbdb/gnus-summary-mark-known-posters + (or (bbdb-record-getprop + record bbdb-message-marker-field) + bbdb/gnus-summary-known-poster-mark)) + " ") + name))) ;; DEBUG: (bbdb/gnus-summary-author-in-bbdb "From: simmonmt@acm.org") (defun bbdb/gnus-summary-author-in-bbdb (header) |