summaryrefslogtreecommitdiff
path: root/lisp/bbdb-gnus.el
diff options
context:
space:
mode:
authorRobert Fenk <fenk@users.sourceforge.net>2007-07-03 19:26:57 +0000
committerRobert Fenk <fenk@users.sourceforge.net>2007-07-03 19:26:57 +0000
commit3f2b5af8287a3a9628ce07a7a04316d6d5aa8337 (patch)
tree362497f00a510d1da917b7b92eb38c77a8bc44dd /lisp/bbdb-gnus.el
parent4c0c84f3a68e148de25c1ccbddcf1ecbcdd18730 (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.el57
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)