Namazu-users-ja(旧)


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

Re: File::Magicでの挙動



寺西です。

Yukio USUDA wrote:
> 
> > のように 先頭のヘッダ部分(128byte) カットすれば、実用上問題ない
> > かもしれません。が、データフォークの長さ、リソースフォークの長さが
> > ヘッダに書かれていますので、データフォークだけ切り出すように書くのも
> > そう難しくないと思います。
> データフォークの長さを読み取って
> $$contref = substr($$contref,128,LENGTH);
> の一行で終わりといった感じでしょうか?
> おそらく外部プログラムは不要ですね。

そう思います。このために外部プログラムを用意するまでもないと
思います。

> gzip.pl等では何が圧縮されていたのかは全く調べていないようですね
> 
> filter内で
> sub recursive() { return 1;}
> としておくことで
> 展開処理後のデータを持ってもう一度Mediatypeの推測まで戻ります。

野首さんにも指摘いただきましたが、うまい仕組みがありましたね。
これを利用できますね。

> これによりgzip.pl等では展開処理しかしていないのに、本来使用し
> たいfilterに処理を渡すことができています。
> mknmzの
> sub load_document($$$$\%)
> を見るとわかります。

ありがとうございます。また、チェックしてみます。

> > $magic->addMagicEntry() は複数指定ってできないんでしたっけ?
> 
> 複数指定はできました。filter/ooo.plで2回呼び出しています。
> 
> ただ、私が試してみた範囲では複数指定するとor扱いになってしまい
> and扱いにする方法がわかりませんでした。
> 
> MMagic.pmの中では複数行をand型で指定しているデータもあるので
> 方法があるようにも思うのですが、調べていません。
> これは、ぜひ知りたいです。

野首さんの資料を待つことにしましょうか。
and ができれば、もう少し条件を追加すれば、良いと思います。
 
> Macで作成したファイルを扱ったことがないので、テスト用のファイルも
> 用意できません。filterを作成するようでしたらお任せします。

Mac のテストファイルは多分用意できると思います。ただ、ちょっと
今は時間がないので、作業ができるのはちょっと先になるかと思います。

# Mac の使い手ではありませんが、Mac は 5,6台手元にありますから。
 
> 先のWebページでは
> OSXのcocoaアプリからはデータフォークだけになっているとも書かれていた
> ので、MacBinaryIIIも歴史上のファイルになってしまうのかもしれません。

Mac の世界は MacOS X と、classic 環境(MacOS 9 と MacOS 8) ぐらいは
まだサポートしないといけないでしょう。
DTP の世界はまだ MacOS X に完全には移行できていないのが普通ですから。
68K Mac (漢字Talk7.5, MacOS 7.6) はさすがに無視しても良いとは思います。

たぶん MacOS 8 以上なら MacBinaryIII さえサポートすれば実害はない
ものと思います。(きちんと調べたわけでなく、推測でしかありませんけど。)
-- 
=====================================================================
寺西 忠勝(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