X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=README-gnus-bbdb.ja;h=f9f99bf0479ccead1b095c721a6480a2286cd7d2;hb=d82e9d2dca685c16f2686113f1381eba7e5c07df;hp=beab72620d6fbfec5bc28c6bdb6c421874b73b37;hpb=13eade1eead5a903b034ad87475ded25e3003785;p=elisp%2Fgnus.git- diff --git a/README-gnus-bbdb.ja b/README-gnus-bbdb.ja index beab726..f9f99bf 100644 --- a/README-gnus-bbdb.ja +++ b/README-gnus-bbdb.ja @@ -1,13 +1,17 @@ -*- 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 が必要です。 @@ -25,3 +29,112 @@ bbdb-auto-notes-hook を使用していない方には不要ですが、使用している方 (require 'gnus-bbdb) (bbdb-initialize 'sc) ;; 'gnus / 'Gnus ははずしてください。 (add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate) +(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.el / bbdb-hooks.el にあてる patch です。 + +------ 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,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 +@@ -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 @@ + (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 ------ + +--- +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' での記述方法と同じものです。