Namazu-win32-users-ja(旧)


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

Re: 拡張子だけで判断するフィルタが呼び出されない



寺西です。

# 問題点をよく理解していませんでした。

koi_san wrote:
> 
> 前回のデバッグ出力と同じです。
> // decide_type: name: image/svg+xml, cont: application/x-gzip
> // 検出されたタイプ: application/x-gzip

フィルタでのメディアタイプの判断より、
FileMagic での判断が優先されて x-gzip になっているということですね。

> 仕様と理解しました。

仕様というよりは、想定外で対応しきれていないということですね。
ooo.pl ではそのために decide_type を多少書き換えて対応しているようです。

> Unicode対応する時に、mknmz::decide_typeとその呼び出し元の仕様が改善さ
> れることを期待して、独自パッチで対応することにします。

結局同等の処理を追加することになるかと思います。
ただし、提示されている条件式では、or の使い方がおかしいと思うので、
常に $name を返すことになってしまうでしょう。

>     if ($name == 'application/octet-stream') {
>         return $cont;
>     } elsif ($cont == 'application/octet-stream' or 'application/x-gzip'
>             or 'application/xml' or 'text/plain' or 'text/html') {
>         return $name;
>     }
>     return $cont;

根本的な対応ではありませんが、とりあえず、

    } elsif ($cont =~ m!^application/x-gzip! &&
             $name =~ m!^image/svg\+xml!) {
        return $name;
    }

とでもしておけばよいかと思います。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E