This is a patch for bbdb.el / bbdb-hooks.el.
------ cut here ------ cut here ------ cut here ------ cut here ------
---- bbdb-2.2/lisp/bbdb-hooks.el~ Mon Jan 8 12:35:14 2001
-+++ bbdb-2.2/lisp/bbdb-hooks.el Tue Feb 6 04:35:00 2001
-@@ -411,12 +411,23 @@
+--- bbdb-2.33/lisp/bbdb-com.el~ Sat Sep 1 07:00:10 2001
++++ bbdb-2.33/lisp/bbdb-com.el Mon Sep 10 23:17:46 2001
+@@ -1654,7 +1654,7 @@
+ ;; to be enclosed in quotes. Double-quotes and backslashes have
+ ;; already been escaped. This quotes a few extra characters as
+ ;; well (!,%, and $) just for common sense.
+- ((string-match "[][\000-\037\177()<>@,;:.!$%]" name)
++ ((string-match "[][\000-\037\177<>@,;.!$%]" name)
+ (format "\"%s\" <%s>" name net))
+ (t
+ (format "%s <%s>" name net)))))
+--- bbdb-2.33/lisp/bbdb-hooks.el~ Sat Sep 1 07:00:10 2001
++++ bbdb-2.33/lisp/bbdb-hooks.el Mon Sep 10 23:17:46 2001
+@@ -35,6 +35,8 @@
+ ;; $Id: README-gnus-bbdb.en,v 1.1.2.5.12.6 2001-09-10 23:21:07 yamaoka Exp $
+ ;;
+
++(eval-when-compile (require 'cl))
++
+ (require 'bbdb)
+
+ (defvar rmail-buffer)
+@@ -384,13 +386,23 @@
(marker (bbdb-header-start))
field pairs fieldval ; do all bindings here for speed
regexp string notes-field-name notes
-- replace-p replace-or-add-msg)
-+ replace-p replace-or-add-msg
-+ extract-field-value-funtion)
+- replace-p)
++ replace-p extract-field-value-funtion)
(set-buffer (marker-buffer marker))
(save-restriction
- (widen)
- (goto-char marker)
- (if (and (setq fieldval (bbdb-extract-field-value "From"))
+- (string-match (bbdb-user-mail-names) fieldval))
+ (let ((function-list bbdb-extract-field-value-function-list)
+ function)
+ (or (progn
+ (goto-char marker)
+ (setq extract-field-value-funtion 'bbdb-extract-field-value))))
+ (if (and (setq fieldval (funcall extract-field-value-funtion "From"))
- (string-match (bbdb-user-mail-names) fieldval))
++ (string-match (bbdb-user-mail-names) fieldval))
;; Don't do anything if this message is from us. Note that we have
;; to look at the message instead of the record, because the record
-@@ -427,7 +438,7 @@
+ ;; will be of the recipient of the message if it is from us.
+@@ -400,7 +412,7 @@
(goto-char marker)
(setq field (car (car ignore-all))
regexp (cdr (car ignore-all))
(if (and fieldval
(string-match regexp fieldval))
(setq ignore t)
-@@ -440,7 +451,8 @@
+@@ -413,7 +425,8 @@
pairs (cdr (car rest)) ; (REGEXP . STRING) or
; (REGEXP FIELD-NAME STRING) or
; (REGEXP FIELD-NAME STRING REPLACE-P)
(when fieldval
(while pairs
(setq regexp (car (car pairs))
---- bbdb-2.2/lisp/bbdb.el~ Wed Jan 24 23:14:00 2001
-+++ bbdb-2.2/lisp/bbdb.el Tue Feb 6 04:35:00 2001
-@@ -681,6 +681,7 @@
+--- bbdb-2.33/lisp/bbdb.el~ Wed Sep 5 07:00:12 2001
++++ bbdb-2.33/lisp/bbdb.el Mon Sep 10 23:17:46 2001
+@@ -707,6 +707,7 @@
(defvar bbdb-showing-changed-ones nil)
(defvar bbdb-modified-p nil)
- (defvar bbdb-elided-display nil)
+ (defvar bbdb-address-print-formatting-alist) ; "bbdb-print"
+(defvar bbdb-extract-field-value-function-list nil)
(defvar bbdb-debug t)