(require 'gnus-bbdb)
(bbdb-initialize 'sc) ;; 'gnus / 'Gnus \e$B$O$O$:$7$F$/$@$5$$!#\e(B
(add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate)
+(add-hook 'message-setup-hook 'gnus-bbdb-insinuate-message)
FLIM \e$B$G$O\e(B quote \e$B$5$l$?\e(B eword encoded word \e$B$O\e(B decode \e$B$5$l$^$;$s$,!"$=$l\e(B
\e$B$r6/@)E*$K\e(B decode \e$B$7$?$$>l9g$K$O!"<!$N@_Dj$r2C$($F$/$@$5$$!#\e(B
\e$B0J2<$O\e(B bbdb.el / bbdb-hooks.el \e$B$K$"$F$k\e(B patch \e$B$G$9!#\e(B
------ cut here ------ cut here ------ cut here ------ cut here ------
---- bbdb-hooks.el~ Tue Oct 13 03:13:50 1998
-+++ bbdb-hooks.el Fri Oct 30 17:05:53 1998
-@@ -352,12 +352,22 @@
- (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)
+--- 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.ja,v 1.1.2.6.2.5 2002-01-08 05:19:44 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-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
+ (while (and (not extract-field-value-funtion)
-+ (setq function (pop function-list)))
-+ (setq extract-field-value-funtion (funcall function)))
++ (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
-@@ -368,7 +378,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)
-@@ -382,7 +392,7 @@
- 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
- (if fieldval
- (while pairs
- (setq regexp (car (car pairs))
---- bbdb.el~ Tue Oct 13 03:14:55 1998
-+++ bbdb.el Fri Oct 30 17:05:53 1998
-@@ -620,6 +620,7 @@
++ (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
+ ;; 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))
+- fieldval (bbdb-extract-field-value field))
++ fieldval (funcall extract-field-value-funtion field))
+ (if (and fieldval
+ (string-match regexp fieldval))
+ (setq ignore t)
+@@ -413,7 +425,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.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)
------ cut here ------ cut here ------ cut here ------ cut here ------
---
+gnus-bbdb/split-mail()
+
+nnmail-split-fancy \e$B$G;HMQ$9$k$?$a$N4X?t$G$9!#<!$N$h$&$K;HMQ$7$F$/$@$5$$!#\e(B
+
+(setq nnmail-split-methods 'nnmail-split-fancy
+ nnmail-split-fancy
+ '(|
+ .....
+*1 (: gnus-bbdb/split-mail "from\\|to\\|cc"
+ 'company "foo" "foo-group")
+ .....
+*2 (: gnus-bbdb/split-mail "from\\|to\\|cc" 'company "^bar")
+ .....
+*3 (: gnus-bbdb/split-mail "from\\|to\\|cc" 'group)
+ .....
+*4 (: gnus-bbdb/split-mail "from\\|to\\|cc" 'note "my friend"
+ '(|
+ .....
+ .....
+ ))
+
+*1 : From, To, Cc \e$B$$$:$l$+$N%X%C%@!<!&%U%#!<%k%I$K4^$^$l$k%a%$%k!&%"%I\e(B
+ \e$B%l%9$N$&$A\e(B BBDB \e$B$N\e(B `company' \e$B%U%#!<%k%I$K\e(B `foo' \e$B$,4^$^$l$k>l9g!"\e(B
+ `foo-group' \e$B$K?6$jJ,$1$^$9!#\e(B
+
+*2 : `company' \e$B%U%#!<%k%I$,\e(B `bar' \e$B$G;O$^$C$F$$$k>l9g!"\e(B`company' \e$B%U%#!<\e(B
+ \e$B%k%I$NFbMF$r$=$N$^$^%0%k!<%WL>$H$7$F;HMQ$7!"?6$jJ,$1$^$9!#\e(B
+
+*3 : `group' \e$B%U%#!<%k%I$,$"$k>l9g!"\e(B`group' \e$B%U%#!<%k%I$NFbMF$r$=$N$^$^\e(B
+ \e$B%0%k!<%WL>$H$7$F;HMQ$7!"?6$jJ,$1$^$9!#\e(B
+
+*4 : `note' \e$B%U%#!<%k%I$K\e(B `my friend' \e$B$,4^$^$l$k>l9g!"$=$N8e$m$K;XDj$5\e(B
+ \e$B$l$?5,B'$G?6$jJ,$1$^$9!#$3$N5,B'$N5-=RJ}K!$O!"DL>o$N\e(B
+ `nnmail-split-fancy' \e$B$G$N5-=RJ}K!$HF1$8$b$N$G$9!#\e(B