[Date Prev][Date Next][Thread Prev][Thread Next][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.