2006年6月21日

[Namazu-devel-ja 1098] Re: mknmz: text/plain に誤認識されアプリ固有フィルタが適用されない問題

寺西です。

SATOH Fumiyasu wrote:
>
> > 拡張子での判定はできるかぎり避けてください。
> > (バイナリデータでどうしても拡張子で判定せざるを得ない場合にのみ
> > 使用してください。)
>

> 残念ながら、バイナリデータです。具体的には、

拡張子でしか判定することはできないのでしょうか?
繰り返しになりますが、拡張子での判定はできるかぎり避けてください。
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

で、中身の検討をしてないので何の説得力もない話をしますが...。

> で $mtype_c が undef のままということであれば、
> このドキュメントの MIME タイプは application/foobar と
> するのが妥当だと思うのですが、いかがでしょうか?

のように見えはします。ただ、

> その後に
>
> (a)
> $mtype_c = 'text/plain' unless defined $mtype_c;
>
> としている理由がわかりませんでした。

とてもわざわざ後から追加したようなこの処理には、何かの理由が
あるような気がしています。

> 一方、同ファイルの _decide_type() で
>
> return $name if (!defined $cont || $name eq $cont);
>
> としていて、$cont ($mtype_c) が undef の場合は
> $name ($mtype_n) が採用されるような実装になっていますが、
> $cont ($mtype_n) は絶対に undef にならないので、
> 「!defined $cont」を判定する意味はないことになります。
> いつかの変更のタイミングでこの矛盾(?)が入り込んで
> しまったのでしょうかね。

CVS の履歴なり、MLの過去ログをひっぱってその辺りの背景を調べないと
はっきりしたことは言えませんが、現在意味をなしていない部分と
それを意味をなさないようにしている部分のどちらが重要なのかは
慎重に調べないといけない話だろうと思います。

ソースを見る限り、おそらく意味をなさない部分が先に実装され、後に何ら
かの不具合により

$mtype_c = 'text/plain' unless defined $mtype_c;

が追加され(結果として意味のない処理となった部分が残った)たのでは
ないかと考えるのが妥当でしょう。
では、その不具合とは何だったのかを洗い出さない限り、修正するのは
避けたいものです。

# もちろん、懸念している不具合なんて何もなかったというオチもある
# でしょうけれども。

個人的にはこの辺りの処理は、こちらを立てれば、あちらが立たずといった
ことが起こり、八方まるく収まりはしないとは思います。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2006年6月21日 20:34
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/40315
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。