Namazu-users-ja(旧)


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

Re: File::Magicでの挙動



臼田です

当面処理できるようになったようでよかったですが、場当り的な方法をお勧
めして少々後悔しております。

Tadamasa Teranishi wrote:
> どのように変なのでしょう。
先ほどは
/usr/share/magic から引用してくださいと書きましたが
/usr/share/magic.mime から引用してもらった方が良かったかもしれません。

> 正解かどうかはわかりませんが、本格的に対応を考えるなら、
> PDF 以外でも起こりうる問題だと思いますので、次のようにするのが
> 良いかと思います。
> Mac バイナリを各フィルタにそのまま渡すのも何だかまずい
> ような気がしますので、.gz などのように Mac バイナリからリソースを
> 削除して各フィルタに渡すような仕組みを作るのが良いのではないか
> と思います。(ただ、簡単じゃないかもしれませんけど。)

少し検索して見つけた文書を読ませていただいたところ
http://homepage1.nifty.com/glass/tom_neko/web/web_05.html

Macバイナリは
・ヘッダ+データフォーク+リソースフォークでできている
・プログラムでなければリソースフォークはついていない
・ヘッダ部は128byte
ということのようなので、

ヘッダ部128byteを切り取って
他のフィルタに渡してしまうフィルタを作ればよいだけのように思えます。

問題はMacバイナリの識別ですね。
Macバイナリからヘッダを除去するだけのフィルタモジュールを作るとすれば
File-MMagicを修正しなくても
MacBinaryIIIの場合は識別できる文字列が入っているようなので
$magic->addMagicEntry('102	string	mBIN	application/macbinary');
とフィルタ内に書くだけでよさそう(mimetypeの定義は議論がありそう)
ですが、MacBinaryI,IIを他のファイルと見分けるのは難しそうです。

臼田幸生