What does get-mother arg. of mime-preview-find-boundary-info mean?
守岡知彦 / MORIOKA Tomohiko
tomo @ kanji.zinbun.kyoto-u.ac.jp
2002年 11月 5日 (火) 21:27:25 JST
>>>>> <87of94s1ao.wl @ eken.phys.nagoya-u.ac.jp> にて
>>>>> “Yoichi”= Yoichi NAKAYAMA <yoichi @ eken.phys.nagoya-u.ac.jp> さま曰く:
Yoichi> > mime-preview-find-boundary-info の get-mother の意図する効用
Yoichi> > というのはどういうものでしょうか?
tomo> ひとつ上の親の境界を調べるという意味のようです。
Yoichi> あ、嘘の description を入れてしまったかも
Yoichi> (header)
Yoichi> 1
Yoichi> (header) <== ここで get-mother=t なら 1 全体を取る; nil なら 1 の header のみ (*)
Yoichi> 1.1.1
Yoichi> 〜 <== ここでは get-mother=t でも 1.1.1 のみ
Yoichi> 1.1.2
Yoichi> 〜 <== (**)
Yoichi> 2
Yoichi> 〜
tomo> おぼろげな記憶によれば、1.1.1 の場合、get-mother=t なら 1.1 全体
tomo> になります。ただ、1.1 が message/rfc822 だったりすると陽に見えな
tomo> いので判りにくいですが(上記はそういう場合の図でしょうか?)。
tomo> (*) は曖昧で、実は 1 の場合と 1.1 の場合がありそうです。実は 1
tomo> だった場合、get-mother=t なら message 全体となりますし、実は 1.1
tomo> なら 1 全体となるのが正しいといえます。
Yoichi> はい、図は message/rfc822 を 1 として添付した例です。
Yoichi> (mime-entity-node-id (get-text-property (point) 'mime-view-entity))
Yoichi> で調べてみたところ、message/rfc822 の場合、 tag 直上で 1 、ヘッ
Yoichi> ダ領域で1.1 がそれぞれ生で見えますね。
Yoichi> > (**) の場合、get-mother=t なら 1.1 全体となるのが正しいとい
Yoichi> > えます。
Yoichi> うーむ。となると僕の修正以前からその意図とは違う動作になってい
Yoichi> るような…。
そのようですね。get-mother というより with-children に近いですね。API
体系ととして考えると、別に mime-preview-move-to-upper のような親の情報
を得るための関数があれば、それと mime-preview-find-boundary-info を組
み合わせれば親の情報が得られる訳で、get-mother みたいな不自然な option
は要らない気がします。一方、子孫込みの自分の全領域を得る情報はあった方
が良いと思います。
という訳で、with-children という定義にすることを提案したいと思います。
また、SEMI 1.15 API を作る時に、mime-preview-move-to-upper の
(mime-preview-quit) なし版というか副作用なし版の関数を追加してはどうか
と思います。
ところで、mime-preview-find-boundary-info の SEMI での用例は
mime-preview-follow-current-entity とmime-preview-toggle-display だけ
で、ChangeLog を見た感じでもなんとなくcheck が甘そうな香りがします。
(^_^;;
いずれにせよ、申し訳ないです。
Yoichi> ということを意図してるのだと思いますが、次の次のパートが存在し
Yoichi> ないとき、例えば上の図のように 2 までしかないときについては論
Yoichi> 理がおかしいために(*) とか (**) のところで間違えて (point-max)
Yoichi> を p-end に入れてしまいます。
Yoichi> 僕が修正した問題は、元のコードだと
Yoichi> 「次の次」の entity の先頭に飛んで、一歩後ろを見て「次」の
Yoichi> entity の情報を調べていた (真なら「次の次」の先頭か point-max
Yoichi> を返す)
Yoichi> ので、「次の次」の entity が存在しない時は調べる前にやめちゃう
Yoichi> という問題で、
Yoichi> → 「次」に飛んで、そこで足元を見て「次」の entity の情報を調べる
Yoichi> (真なら「次の次」の先頭か point-max を返す)
Yoichi> ようにしました。というわけで論理の bug を取っただけで大筋の動
Yoichi> 作は変えていません。僕の読みでは、find-boundary-info の動作と
Yoichi> しては、mime-preview-follow-current-entityで使われていることを
Yoichi> ふまえて、実際の動作を検証した結果、
Yoichi> get-mother=t なら、「自分と自分から生えた枝」を取る
Yoichi> という動作と取りました。で、そういう description 付けちゃった
Yoichi> んですが、間違ってますかねぇ。
Yoichi> ;; で、どうして get-mother って名前なのかという疑問は残ったわ
Yoichi> ;; けです。
という訳で、これを追認するということでいかがでしょうか?
その場合、get-mother を with-children とかに変えてはいかがでしょうか?
では。
--
┯━…‥・懐かしい未来の記憶をふと思い出しかけた・‥…━━┯━━━┯━
││ ─ │ ─ / ─ ┼─ ┬ ─ ─┼ ┬┴─
┼┼─┼|〓━─┼ 守岡 知彦 (MORIOKA Tomohiko) <tomo @ m17n.org> ─ ─┬
┻┻━┻━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
More information about the Emacs-mime-ja
mailing list