Synch with Oort Gnus.
[elisp/gnus.git-] / README-gnus-bbdb.ja
1 -*- mode: text; fill-column: 70; -*-
2
3 ---
4 BBDB \e$B$r;HMQ$5$l$F$$$kJ}$O!"\e(B bbdb-gnus.elc \e$B$r\e(B Semi-gnus 6.8.X \e$B0JA0$N$b\e(B
5 \e$B$N$H6&M-$9$k$3$H$O$G$-$^$;$s!#I,$:!"\e(B byte-compile \e$B$7D>$7$F$/$@$5$$!#\e(B
6
7 ;; gnus \e$B$r5/F0$7$?$"$H$G!"\e(B bbdb-gnus.el \e$B$N$_$r\e(B byte-compile \e$B$9$k$H$$$&\e(B
8 ;; \e$B$N$,$*<j7Z$G$9!#\e(B :-)
9
10 ---
11 gnus-bbdb.el
12
13 Semi-gnus \e$B$KFC2=$7$?\e(B BBDB API \e$B%b%8%e!<%k$G$9!#$3$N%b%8%e!<%k$r;HMQ$9$k\e(B
14 \e$B$3$H$K$h$C$F!"\e(B Semi-gnus \e$B$G;HMQ$9$k>l9g$K$O\e(B mime-bbdb \e$B$,ITMW$K$J$j$^$9!#\e(B
15
16 1.11.3 \e$B0J9_$N\e(B FLIM \e$B$,I,MW$G$9!#\e(B
17
18 bbdb-auto-notes-hook \e$B$r;HMQ$7$F$$$J$$J}$K$OITMW$G$9$,!";HMQ$7$F$$$kJ}\e(B
19 \e$B$O\e(B bbdb.el / bbdb-hooks.el \e$B$K$3$N%U%!%$%k$N:G8e$K$"$k\e(B patch \e$B$r$"$F$kI,\e(B
20 \e$BMW$,$"$j$^$9!#\e(B
21
22 \e$B@_DjNc\e(B:
23
24 ;; mime-bbdb \e$B$K4X$9$k@_Dj$OITMW$G$9!#\e(B
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 \e$B$O$O$:$7$F$/$@$5$$!#\e(B
31 (add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate)
32 (add-hook 'message-setup-hook 'gnus-bbdb-insinuate-message)
33
34 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
35 \e$B$r6/@)E*$K\e(B decode \e$B$7$?$$>l9g$K$O!"<!$N@_Dj$r2C$($F$/$@$5$$!#\e(B
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 \e$B0J2<$O\e(B bbdb.el / bbdb-hooks.el \e$B$K$"$F$k\e(B patch \e$B$G$9!#\e(B
44
45 ------ cut here ------ cut here ------ cut here ------ cut here ------
46 --- bbdb-2.32/lisp/bbdb-com.el~ Sun Feb 18 08:00:39 2001
47 +++ bbdb-2.32/lisp/bbdb-com.el  Sun Feb 18 08:00:39 2001
48 @@ -1620,7 +1620,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.32/lisp/bbdb-hooks.el~       Tue Jan 30 08:00:56 2001
58 +++ bbdb-2.32/lisp/bbdb-hooks.el        Tue Jan 30 08:00:56 2001
59 @@ -83,6 +83,8 @@
60  ;;
61  ;;
62  
63 +(eval-when-compile (require 'cl))
64 +
65  (require 'bbdb)
66  
67  (defmacro the-v18-byte-compiler-sucks-wet-farts-from-dead-pigeons ()
68 @@ -415,12 +417,23 @@
69           (marker (bbdb-header-start))
70           field pairs fieldval  ; do all bindings here for speed
71           regexp string notes-field-name notes
72 -         replace-p replace-or-add-msg)
73 +         replace-p replace-or-add-msg
74 +        extract-field-value-funtion)
75      (set-buffer (marker-buffer marker))
76      (save-restriction
77 -      (widen)
78 -      (goto-char marker)
79 -      (if (and (setq fieldval (bbdb-extract-field-value "From"))
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 @@ -431,7 +444,7 @@
97            (goto-char marker)
98            (setq field (car (car ignore-all))
99                  regexp (cdr (car ignore-all))
100 -                fieldval (bbdb-extract-field-value field))
101 +                fieldval (funcall extract-field-value-funtion field))
102            (if (and fieldval
103                     (string-match regexp fieldval))
104                (setq ignore t)
105 @@ -444,7 +457,8 @@
106                  pairs (cdr (car rest))  ; (REGEXP . STRING) or
107                                          ; (REGEXP FIELD-NAME STRING) or
108                                          ; (REGEXP FIELD-NAME STRING REPLACE-P)
109 -                fieldval (bbdb-extract-field-value field)) ; e.g., Subject line
110 +                fieldval (funcall extract-field-value-funtion field))
111 +                                        ; e.g., Subject line
112            (when fieldval
113              (while pairs
114                (setq regexp (car (car pairs))
115 --- bbdb-2.32/lisp/bbdb.el~     Sun Mar  4 20:30:09 2001
116 +++ bbdb-2.32/lisp/bbdb.el      Sun Mar  4 20:30:09 2001
117 @@ -710,6 +710,7 @@
118  (defvar bbdb-showing-changed-ones nil)
119  (defvar bbdb-modified-p nil)
120  (defvar bbdb-elided-display nil)
121 +(defvar bbdb-extract-field-value-function-list nil)
122  
123  (defvar bbdb-debug t)
124  (defmacro bbdb-debug (&rest body)
125 ------ cut here ------ cut here ------ cut here ------ cut here ------
126
127 ---
128 gnus-bbdb/split-mail()
129
130 nnmail-split-fancy \e$B$G;HMQ$9$k$?$a$N4X?t$G$9!#<!$N$h$&$K;HMQ$7$F$/$@$5$$!#\e(B
131
132 (setq nnmail-split-methods 'nnmail-split-fancy
133       nnmail-split-fancy
134       '(|
135         .....
136 *1      (: gnus-bbdb/split-mail "from\\|to\\|cc"
137            'company "foo" "foo-group") 
138         .....
139 *2      (: gnus-bbdb/split-mail "from\\|to\\|cc" 'company "^bar")
140         .....
141 *3      (: gnus-bbdb/split-mail "from\\|to\\|cc" 'group)
142         .....
143 *4      (: gnus-bbdb/split-mail "from\\|to\\|cc" 'note "my friend"
144           '(|
145              .....
146         .....
147         ))
148
149 *1 : From, To, Cc \e$B$$$:$l$+$N%X%C%@!<!&%U%#!<%k%I$K4^$^$l$k%a%$%k!&%"%I\e(B
150      \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
151      `foo-group' \e$B$K?6$jJ,$1$^$9!#\e(B
152
153 *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
154      \e$B%k%I$NFbMF$r$=$N$^$^%0%k!<%WL>$H$7$F;HMQ$7!"?6$jJ,$1$^$9!#\e(B
155
156 *3 : `group' \e$B%U%#!<%k%I$,$"$k>l9g!"\e(B`group' \e$B%U%#!<%k%I$NFbMF$r$=$N$^$^\e(B
157      \e$B%0%k!<%WL>$H$7$F;HMQ$7!"?6$jJ,$1$^$9!#\e(B
158
159 *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
160      \e$B$l$?5,B'$G?6$jJ,$1$^$9!#$3$N5,B'$N5-=RJ}K!$O!"DL>o$N\e(B
161      `nnmail-split-fancy' \e$B$G$N5-=RJ}K!$HF1$8$b$N$G$9!#\e(B