[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: Use LSDB records for choosing the author's X-Face



>>>>> In <mpafzl79g1f.fsf@moss.lang-private.kuee.kyoto-u.ac.jp>
>>>>>	TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> wrote:

> 大> 設定やら処理やらがかなりダブっている感があるので、bbdb lsdb etc...
> 大> に抽象的にアクセス出来るような仕組みを作って、それを介して処理をし
> 大> たらスマートになるのかなぁと思いました。
> 
> shimbun-x-face-database-function というオプションを新設してみました.
> これでどうでしょうか?

すばらしいです。
で、二点ほど質問(というか確認)があります。
私が shimbun-header-insert 内に bbdb の設定を真似して lsdb 用のそれを
書く際、bbdb と lsdb の仕様の違いから、以下の部分を異なるように書きま
した。

bbdb用:
(setq from
      (cadr (mail-extract-address-components from)))
       ^^^^

(concat "X-Face: "
	(mapconcat 'identity
		   (split-string x-face)
		   "\nX-Face: "))
                    ^^^^^^^^^^

lsdb用:
(setq from
      (car (mail-extract-address-components from)))
       ^^^

(concat "X-Face: "
	(mapconcat 'identity
		   (split-string x-face)
		   "\n "))
                    ^^^

一つは、bbdb のキーはメールアドレス(なのかな?)で、lsdb のキーは名前だっ
たので、そのための修正です。先端の shimbun.el では from はどちらも car
で取得するようになっていますが、もし bbdb のキーがメールアドレスなので
あれば、cadr にする必要があるかと思います。

もう一つは、mapconcat の第三引数が異なります。.bbdb に X-Face フィール
ドがどのように格納されているのか知らないので、そもそもこの処理の意味を
良く理解出来ていませんが、lsdb の X-Face フィールドは複数行をスペース
で連結して格納しているので、bbdb 用の "\nX-Face: " を適用すると、一つ
の X-Face 中に複数の X-Face: ヘッダが挿入されてしまいます。
つまり (concat "X-Face: " ...) も追い出さないといけない気がします。

;; そもそもこの bbdb 側の mapconcat は何をやっているのでしょう?
;; .bbdb が手元にあればすぐ分かるんでしょうね…

-- 
OHASHI Akira (大橋 彰)
bg66@koka-in.org bg66@debian.org
Share what you know. Learn what you don't.