-*- mode: text; fill-column: 70; -*- --- If BBDB is used then, bbdb-gnus.elc can't be shared with them before Semi-gnus 6.8.X. It is necessary to byte-compile it again. ;; It is a simple way that only bbdb-gnus.el is byte-compiled after ;; gnus starts. --- gnus-bbdb.el This is the BBDB API module for Semi-gnus. `mime-bbdb' should not be necessary for Semi-gnus, if that module were used. You need FLIM 1.11.3 or later. If you are using bbdb-auto-notes-hook, the patch listed at the end of this file should be applied. If not, it might not. EXAMPLE: ;; You need to set nothing for `mime-bbdb'. ;(setq mime-bbdb/use-mail-extr nil) ;(eval-after-load "mail-extr" '(require 'mime-bbdb)) (require 'bbdb) (require 'gnus-bbdb) (bbdb-initialize 'sc) ;; 'Gnus or 'gnus should be deleted. (add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate) (add-hook 'message-setup-hook 'gnus-bbdb-insinuate-message) If you would like to decode the quoted encoded words forcibly, even though FLIM does not decode them, put the following lines in your .gnus file. (setq gnus-bbdb/decode-field-body-function (function (lambda (field-body field-name) (eword-decode-string field-body)))) --- This is a patch for bbdb.el / bbdb-hooks.el. ------ cut here ------ cut here ------ cut here ------ cut here ------ --- bbdb-2.32/lisp/bbdb-com.el~ Sun Feb 18 08:00:39 2001 +++ bbdb-2.32/lisp/bbdb-com.el Sun Feb 18 08:00:39 2001 @@ -1620,7 +1620,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.32/lisp/bbdb-hooks.el~ Tue Jan 30 08:00:56 2001 +++ bbdb-2.32/lisp/bbdb-hooks.el Tue Jan 30 08:00:56 2001 @@ -83,6 +83,8 @@ ;; ;; +(eval-when-compile (require 'cl)) + (require 'bbdb) (defmacro the-v18-byte-compiler-sucks-wet-farts-from-dead-pigeons () @@ -415,12 +417,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) (set-buffer (marker-buffer marker)) (save-restriction - (widen) - (goto-char marker) - (if (and (setq fieldval (bbdb-extract-field-value "From")) + (let ((function-list bbdb-extract-field-value-function-list) + function) + (or (progn + (while (and (not extract-field-value-funtion) + (setq function (car function-list))) + (setq extract-field-value-funtion (funcall function) + function-list (cdr function-list))) + extract-field-value-funtion) + (progn + (widen) + (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)) ;; 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 @@ -431,7 +444,7 @@ (goto-char marker) (setq field (car (car ignore-all)) regexp (cdr (car ignore-all)) - fieldval (bbdb-extract-field-value field)) + fieldval (funcall extract-field-value-funtion field)) (if (and fieldval (string-match regexp fieldval)) (setq ignore t) @@ -444,7 +457,8 @@ pairs (cdr (car rest)) ; (REGEXP . STRING) or ; (REGEXP FIELD-NAME STRING) or ; (REGEXP FIELD-NAME STRING REPLACE-P) - fieldval (bbdb-extract-field-value field)) ; e.g., Subject line + fieldval (funcall extract-field-value-funtion field)) + ; e.g., Subject line (when fieldval (while pairs (setq regexp (car (car pairs)) --- bbdb-2.32/lisp/bbdb.el~ Sun Mar 4 20:30:09 2001 +++ bbdb-2.32/lisp/bbdb.el Sun Mar 4 20:30:09 2001 @@ -710,6 +710,7 @@ (defvar bbdb-showing-changed-ones nil) (defvar bbdb-modified-p nil) (defvar bbdb-elided-display nil) +(defvar bbdb-extract-field-value-function-list nil) (defvar bbdb-debug t) (defmacro bbdb-debug (&rest body) ------ cut here ------ cut here ------ cut here ------ cut here ------ ---