X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=README-gnus-bbdb.ja;h=a2667c8597c28e467358b57a845de47c5ed79b46;hb=33965a53081332d78df42c20b6da50ef1f568b22;hp=beab72620d6fbfec5bc28c6bdb6c421874b73b37;hpb=13eade1eead5a903b034ad87475ded25e3003785;p=elisp%2Fgnus.git- diff --git a/README-gnus-bbdb.ja b/README-gnus-bbdb.ja index beab726..a2667c8 100644 --- a/README-gnus-bbdb.ja +++ b/README-gnus-bbdb.ja @@ -1,15 +1,19 @@ -*- mode: text; fill-column: 70; -*- - ** 鈴木圭一さんのご厚意により keiichi branch から copy しました。** +--- +BBDB を使用されている方は、 bbdb-gnus.elc を Semi-gnus 6.8.X 以前のも +のと共有することはできません。必ず、 byte-compile し直してください。 +;; gnus を起動したあとで、 bbdb-gnus.el のみを byte-compile するという +;; のがお手軽です。 :-) + +--- gnus-bbdb.el -Chao-gnus 6.9 を取り込んだ Semi-gnus に特化した BBDB API モジュールで -す。 -このモジュールを使用することによって、 Semi-gnus で使用する場合には -mime-bbdb が不要になります。 +Semi-gnus に特化した BBDB API モジュールです。このモジュールを使用する +ことによって、 Semi-gnus で使用する場合には mime-bbdb が不要になります。 -1.11.3 以降の FLIM が必要です。 +1.11.3 以降の FLIM が必要 (T-gnus では FLIM 1.14 が必要) です。 bbdb-auto-notes-hook を使用していない方には不要ですが、使用している方 は bbdb.el / bbdb-hooks.el にこのファイルの最後にある patch をあてる必 @@ -25,3 +29,135 @@ bbdb-auto-notes-hook を使用していない方には不要ですが、使用している方 (require 'gnus-bbdb) (bbdb-initialize 'sc) ;; 'gnus / 'Gnus ははずしてください。 (add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate) + +;; T-gnus 6.15.5 以上では不要です。 +;(eval-after-load "message" +; '(add-hook 'message-setup-hook 'gnus-bbdb-insinuate-message)) + +FLIM では quote された eword encoded word は decode されませんが、それ +を強制的に decode したい場合には、次の設定を加えてください。 + +(setq gnus-bbdb/decode-field-body-function + (function + (lambda (field-body field-name) + (eword-decode-string field-body)))) + +--- +以下は bbdb-com.el、bbdb-hooks.el および bbdb.el にあてる patch です。 + +------ cut here ------ cut here ------ cut here ------ cut here ------ +--- bbdb-2.34/lisp/bbdb-com.el~ Tue Jan 15 23:00:57 2002 ++++ bbdb-2.34/lisp/bbdb-com.el Thu Jan 31 03:55:01 2002 +@@ -1686,7 +1686,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.34/lisp/bbdb-hooks.el~ Tue Jan 15 09:00:11 2002 ++++ bbdb-2.34/lisp/bbdb-hooks.el Thu Jan 31 03:55:01 2002 +@@ -36,4 +36,6 @@ + ;; + ++(eval-when-compile (require 'cl)) ++ + (require 'bbdb) + (require 'bbdb-com) +@@ -405,13 +407,23 @@ + ignore + 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 (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 + ;; will be of the recipient of the message if it is from us. +@@ -421,7 +433,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) +@@ -434,7 +446,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 + ;; we perform the auto notes stuff only for authors of a message + ;; or if explicitly requested +--- bbdb-2.34/lisp/bbdb.el~ Tue Jan 15 23:00:58 2002 ++++ bbdb-2.34/lisp/bbdb.el Thu Jan 31 03:55:01 2002 +@@ -737,6 +737,7 @@ + (defvar bbdb-showing-changed-ones nil) + (defvar bbdb-modified-p nil) + (defvar bbdb-address-print-formatting-alist) ; "bbdb-print" ++(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 ------ + +--- +gnus-bbdb/split-mail() + +nnmail-split-fancy で使用するための関数です。次のように使用してください。 + +(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 いずれかのヘッダー・フィールドに含まれるメイル・アド + レスのうち BBDB の `company' フィールドに `foo' が含まれる場合、 + `foo-group' に振り分けます。 + +*2 : `company' フィールドが `bar' で始まっている場合、`company' フィー + ルドの内容をそのままグループ名として使用し、振り分けます。 + +*3 : `group' フィールドがある場合、`group' フィールドの内容をそのまま + グループ名として使用し、振り分けます。 + +*4 : `note' フィールドに `my friend' が含まれる場合、その後ろに指定さ + れた規則で振り分けます。この規則の記述方法は、通常の + `nnmail-split-fancy' での記述方法と同じものです。