Synch with BBDB v2.34.
[elisp/gnus.git-] / README-gnus-bbdb.ja
1 -*- mode: text; fill-column: 70; -*-
2
3 ---
4 BBDB ~~~~~~~~~~~ bbdb-gnus.elc ~ Semi-gnus 6.8.X ~~~~
5 ~~~~~~~~~~~~~~~~~~ byte-compile ~~~~~~~~~
6
7 ;; gnus ~~~~~~~~~ bbdb-gnus.el ~~~ byte-compile ~~~~~
8 ;; ~~~~~~~~ :-)
9
10 ---
11 gnus-bbdb.el
12
13 Semi-gnus ~~~~~ BBDB API ~~~~~~~~~~~~~~~~~~~~
14 ~~~~~~~ Semi-gnus ~~~~~~~~~ mime-bbdb ~~~~~~~~~
15
16 1.11.3 ~~~ FLIM ~~~~~~
17
18 bbdb-auto-notes-hook ~~~~~~~~~~~~~~~~~~~~~~~~
19 ~ bbdb.el / bbdb-hooks.el ~~~~~~~~~~~~~ patch ~~~~~
20 ~~~~~~~
21
22 ~~~:
23
24 ;; mime-bbdb ~~~~~~~~~~~~
25 ;(setq mime-bbdb/use-mail-extr nil)
26 ;(eval-after-load "mail-extr" '(require 'mime-bbdb))
27
28 (require 'bbdb)
29 (require 'gnus-bbdb)
30 (bbdb-initialize 'sc)  ;; 'gnus / 'Gnus ~~~~~~~~~~
31 (add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate)
32 (add-hook 'message-setup-hook 'gnus-bbdb-insinuate-message)
33
34 FLIM ~~ quote ~~~ eword encoded word ~ decode ~~~~~~~~~
35 ~~~~~ decode ~~~~~~~~~~~~~~~~~~~~~
36
37 (setq gnus-bbdb/decode-field-body-function
38       (function
39        (lambda (field-body field-name)
40          (eword-decode-string field-body))))
41
42 ---
43 ~~~ bbdb-com.el~bbdb-hooks.el ~~~ bbdb.el ~~~~ patch ~~~
44
45 ------ cut here ------ cut here ------ cut here ------ cut here ------
46 --- bbdb-2.34/lisp/bbdb-com.el~ Tue Jan 15 23:00:57 2002
47 +++ bbdb-2.34/lisp/bbdb-com.el  Thu Jan 31 03:55:01 2002
48 @@ -1686,7 +1686,7 @@
49            ;; to be enclosed in quotes.  Double-quotes and backslashes have
50            ;; already been escaped.  This quotes a few extra characters as
51            ;; well (!,%, and $) just for common sense.
52 -          ((string-match "[][\000-\037\177()<>@,;:.!$%]" name)
53 +         ((string-match "[][\000-\037\177<>@,;.!$%]" name)
54             (format "\"%s\" <%s>" name net))
55            (t
56             (format "%s <%s>" name net)))))
57 --- bbdb-2.34/lisp/bbdb-hooks.el~       Tue Jan 15 09:00:11 2002
58 +++ bbdb-2.34/lisp/bbdb-hooks.el        Thu Jan 31 03:55:01 2002
59 @@ -35,6 +35,8 @@
60  ;; $Id: README-gnus-bbdb.ja,v 1.1.2.6.2.7 2002-01-31 04:33:18 yamaoka Exp $
61  ;;
62  
63 +(eval-when-compile (require 'cl))
64 +
65  (require 'bbdb)
66  (require 'bbdb-com)
67  
68 @@ -405,13 +407,23 @@
69           ignore
70           field pairs fieldval  ; do all bindings here for speed
71           regexp string notes-field-name notes
72 -         replace-p)
73 +         replace-p extract-field-value-funtion)
74      (set-buffer (marker-buffer marker))
75      (save-restriction
76 -      (widen)
77 -      (goto-char marker)
78 -      (if (and (setq fieldval (bbdb-extract-field-value "From"))
79 -               (string-match (bbdb-user-mail-names) fieldval))
80 +      (let ((function-list bbdb-extract-field-value-function-list)
81 +           function)
82 +       (or (progn
83 +             (while (and (not extract-field-value-funtion)
84 +                         (setq function (car function-list)))
85 +               (setq extract-field-value-funtion (funcall function)
86 +                     function-list (cdr function-list)))
87 +             extract-field-value-funtion)
88 +           (progn
89 +             (widen)
90 +             (goto-char marker)
91 +             (setq extract-field-value-funtion 'bbdb-extract-field-value))))
92 +      (if (and (setq fieldval (funcall extract-field-value-funtion "From"))
93 +              (string-match (bbdb-user-mail-names) fieldval))
94            ;; Don't do anything if this message is from us.  Note that we have
95            ;; to look at the message instead of the record, because the record
96            ;; will be of the recipient of the message if it is from us.
97 @@ -421,7 +433,7 @@
98            (goto-char marker)
99            (setq field (car (car ignore-all))
100                  regexp (cdr (car ignore-all))
101 -                fieldval (bbdb-extract-field-value field))
102 +                fieldval (funcall extract-field-value-funtion field))
103            (if (and fieldval
104                     (string-match regexp fieldval))
105                (setq ignore t)
106 @@ -434,7 +446,8 @@
107                  pairs (cdr (car rest))  ; (REGEXP . STRING) or
108                                          ; (REGEXP FIELD-NAME STRING) or
109                                          ; (REGEXP FIELD-NAME STRING REPLACE-P)
110 -                fieldval (bbdb-extract-field-value field)) ; e.g., Subject line
111 +                fieldval (funcall extract-field-value-funtion field))
112 +                                        ; e.g., Subject line
113            (when fieldval
114              ;; we perform the auto notes stuff only for authors of a message
115              ;; or if explicitly requested
116 --- bbdb-2.34/lisp/bbdb.el~     Tue Jan 15 23:00:58 2002
117 +++ bbdb-2.34/lisp/bbdb.el      Thu Jan 31 03:55:01 2002
118 @@ -737,6 +737,7 @@
119  (defvar bbdb-showing-changed-ones nil)
120  (defvar bbdb-modified-p nil)
121  (defvar bbdb-address-print-formatting-alist) ; "bbdb-print"
122 +(defvar bbdb-extract-field-value-function-list nil)
123  
124  (defvar bbdb-debug t)
125  (defmacro bbdb-debug (&rest body)
126 ------ cut here ------ cut here ------ cut here ------ cut here ------
127
128 ---
129 gnus-bbdb/split-mail()
130
131 nnmail-split-fancy ~~~~~~~~~~~~~~~~~~~~~~~~~~~
132
133 (setq nnmail-split-methods 'nnmail-split-fancy
134       nnmail-split-fancy
135       '(|
136         .....
137 *1      (: gnus-bbdb/split-mail "from\\|to\\|cc"
138            'company "foo" "foo-group") 
139         .....
140 *2      (: gnus-bbdb/split-mail "from\\|to\\|cc" 'company "^bar")
141         .....
142 *3      (: gnus-bbdb/split-mail "from\\|to\\|cc" 'group)
143         .....
144 *4      (: gnus-bbdb/split-mail "from\\|to\\|cc" 'note "my friend"
145           '(|
146              .....
147         .....
148         ))
149
150 *1 : From, To, Cc ~~~~~~~~~~~~~~~~~~~~~~~~~~
151      ~~~~~ BBDB ~ `company' ~~~~~~ `foo' ~~~~~~~~
152      `foo-group' ~~~~~~~~
153
154 *2 : `company' ~~~~~~ `bar' ~~~~~~~~~~`company' ~~~
155      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
156
157 *3 : `group' ~~~~~~~~~~~`group' ~~~~~~~~~~~~~
158      ~~~~~~~~~~~~~~~~~~~
159
160 *4 : `note' ~~~~~~ `my friend' ~~~~~~~~~~~~~~~~
161      ~~~~~~~~~~~~~~~~~~~~~~~~~~
162      `nnmail-split-fancy' ~~~~~~~~~~~~~~