(defvar bbdb-wl-folder-regexp nil)
(defvar bbdb-wl-ignore-folder-regexp nil)
+(defvar bbdb-wl-canonicalize-full-name-function
+ #'bbdb-wl-canonicalize-spaces-and-dots
+ "Way to canonicalize full name.")
+
+(defun bbdb-wl-canonicalize-spaces-and-dots (string)
+ (while (and string (string-match " +\\|[\f\t\n\r\v]+\\|\\." string))
+ (setq string (replace-match " " nil t string)))
+ (and string (string-match "^ " string)
+ (setq string (replace-match "" nil t string)))
+ string)
+
;;;###autoload
(defun bbdb-wl-setup ()
(add-hook 'wl-message-redisplay-hook 'bbdb-wl-get-update-record)
(add-hook 'wl-summary-exit-hook 'bbdb-wl-hide-bbdb-buffer)
(add-hook 'wl-message-window-deleted-hook 'bbdb-wl-hide-bbdb-buffer)
(add-hook 'wl-exit-hook 'bbdb-wl-exit)
+ (add-hook 'wl-save-hook 'bbdb-offer-save)
(add-hook 'wl-summary-toggle-disp-off-hook 'bbdb-wl-hide-bbdb-buffer)
(add-hook 'wl-summary-toggle-disp-folder-on-hook 'bbdb-wl-hide-bbdb-buffer)
(add-hook 'wl-summary-toggle-disp-folder-off-hook 'bbdb-wl-hide-bbdb-buffer)
(lambda ()
;;; (local-set-key "\M-\t" 'bbdb-complete-name)
(define-key (current-local-map) "\M-\t" 'bbdb-complete-name))))
- ;; BBDB 2.00.06 or earlier:
- ;; auto-autoloads.el includes (provide 'bbdb-autoloads)
- ;; Don't exist bbdb-autoloads.el
- (when (and (not (featurep 'bbdb-autoloads))
- (module-installed-p 'bbdb-autoloads))
- ;; BBDB 2.20: bbdb-autoloads.el NOT includes (provide 'bbdb-autoloads)
- (load "bbdb-autoloads")))
+ (require 'bbdb)
+ (bbdb-initialize)
+
+ (if (not (boundp 'bbdb-get-addresses-from-headers))
+ (defvar bbdb-get-addresses-from-headers
+ '("From" "Resent-From" "Reply-To")))
+
+ (if (not (boundp 'bbdb-get-addresses-to-headers))
+ (defvar bbdb-get-addresses-to-headers
+ '("Resent-To" "Resent-CC" "To" "CC" "BCC")))
+
+ (if (not (boundp 'bbdb-get-addresses-headers))
+ (defvar bbdb-get-addresses-headers
+ (append bbdb-get-addresses-from-headers
+ bbdb-get-addresses-to-headers))))
(defun bbdb-wl-exit ()
(let (bbdb-buf)
from-str)
string)))
-(if (not (boundp 'bbdb-get-addresses-from-headers))
- (defvar bbdb-get-addresses-from-headers
- '("From" "Resent-From" "Reply-To")))
-
-(if (not (boundp 'bbdb-get-addresses-to-headers))
- (defvar bbdb-get-addresses-to-headers
- '("Resent-To" "Resent-CC" "To" "CC" "BCC")))
-
-(if (not (boundp 'bbdb-get-addresses-headers))
- (defvar bbdb-get-addresses-headers
- (append bbdb-get-addresses-from-headers bbdb-get-addresses-to-headers)))
-
(defun bbdb-wl-get-addresses-1 (&optional only-first-address)
"Return real name and email address of sender respectively recipients.
If an address matches `bbdb-user-mail-names' it will be ignored.
(setq fn (std11-full-name-string structure)
fn (and fn
(with-temp-buffer ; to keep raw buffer unibyte.
- (elmo-set-buffer-multibyte
+ (set-buffer-multibyte
default-enable-multibyte-characters)
(eword-decode-string
(decode-mime-charset-string
fn wl-mime-charset))))
+ fn (funcall bbdb-wl-canonicalize-full-name-function fn)
ad (std11-address-string structure))
;; ignore uninteresting addresses, this is kinda gross!
(when (or (not (stringp uninteresting-senders))
- (not
+ (not
(or
(and fn (string-match uninteresting-senders fn))
(and ad (string-match uninteresting-senders ad)))))
(let ((headers bbdb-get-addresses-headers)
(uninteresting-senders bbdb-user-mail-names)
addrlist header structures structure fn ad
- header-type header-fields)
+ header-type header-fields header-content)
(while headers
(setq header-type (caar headers)
header-fields (cdar headers))
(std11-unfold-string header-content)))
(while (and (setq structure (car structures))
(eq (car structure) 'mailbox))
- (setq fn (std11-full-name-string structure)
+ (setq fn (std11-full-name-string structure)
fn (and fn
(with-temp-buffer ; to keep raw buffer unibyte.
- (elmo-set-buffer-multibyte
+ (set-buffer-multibyte
default-enable-multibyte-characters)
(eword-decode-string
(decode-mime-charset-string
fn wl-mime-charset))))
+ fn (funcall bbdb-wl-canonicalize-full-name-function fn)
ad (std11-address-string structure))
-
;; ignore uninteresting addresses, this is kinda gross!
(when (or (not (stringp uninteresting-senders))
- (not
+ (not
(or
(and fn
(string-match uninteresting-senders fn))
(string-match (bbdb-user-mail-names) addr))
(setq from (or (std11-field-body "To") from)))
(with-temp-buffer ; to keep raw buffer unibyte.
- (elmo-set-buffer-multibyte
+ (set-buffer-multibyte
default-enable-multibyte-characters)
(setq from (eword-decode-string
(decode-mime-charset-string
(defun bbdb-extract-field-value (field)
(let ((value (bbdb-wl-extract-field-value-internal field)))
(with-temp-buffer ; to keep raw buffer unibyte.
- (elmo-set-buffer-multibyte
+ (set-buffer-multibyte
default-enable-multibyte-characters)
(and value
(eword-decode-string value)))))