namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: moving OLE filters
- From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
- Date: Thu, 24 Feb 2000 11:19:34 JST
<200002221636.BAA11578@xxxxxxxxxxxxxx>の記事において
kenzo-@xxxxxxxxxxさんは書きました。
>> >oleexcel.pl, olemsword.pl, olepowerpoint.pl は filter/win32
>> >の下に移動してそれぞれ、 excel.pl, msword.pl, powerpoint.pl
>> >というファイル名にしてはいかがでしょう? その方がファイル名が
>> >すっきりしますし、mknmz での処理もやりやすくなります。
>>
>> そうですね。判りました。
できれば、configure 時に Win32 環境でないことが判明したら、
filter/win32 以下のファイルをインストールしないようにしてもらえると嬉
しいです。
>> で、namazu-ml で動かないと言いましたが、olemsword だけは動くはずでした。。
>> しかしうまく行かないのでちょっと追ってみたのですが、どうも File-MMagic で
>> 追加 test がうまくいっていないみたいなのです。
>>
>> 0 string \320\317\021\340\241\261\032\341
>> >48 byte 0x1B application/excel <--
>> >64 byte 0x00 application/powerpoint <--
>> >64 byte 0x01 application/msword <--この辺の判断
今までの File::MMagic は、> で始まる subtest な entry での処理はコメ
ントアウトしてありました。実装上ちょっと面倒だったので、後回しにしたま
まずっと忘れさられていました ^^;
先程、ad-hoc ぎみながらとりあえず動作するよう修正したのですが、まだ
ちょっと問題があります。具体的には、subtest entry に複数マッチしてしま
うとそれら全てを返してしまうのです。
# file コマンドもそういった挙動をするはず。
このため、広瀬さんにいただいたテスト用データの excel だと
application/excelapplication/powerpoint
といった感じの出力がされてしまいます。
さて、どうしましょうか... 私がすぐに思いつく方法は以下の通りです。
1. 最初に match した subtest の entry のみを返すよう修正
2. 最後に match した subtest のみを返すよう修正
3. code はそのままで、entry の文字列を変更するとで対処
3. は、以下のような entry を作成すれば良いでしょう。
0 string \320\317\021\340\241\261\032\341 application/x-office
>48 byte 0x1B ; x-subtype=excel
>64 byte 0x00 ; x-subtype=powerpoint
>64 byte 0x01 ; x-subtype=word
それから、修正した File::MMagic でチェックしたテストデータの結果を以
下に付けておきます。
$ mmfile.pl excel/*
application/excelapplication/powerpoint
application/excelapplication/powerpoint
$ mmfile.pl powerpoint/*
application/msword
application/msword
$ mmfile.pl word8/*
application/msword
application/msword
$ mmfile.pl jbw/*
application/octet-stream
application/octet-stream
application/octet-stream
# entry そのものが正しいかどうかまではまだ調べていません... ちょっと時
# 間を下さい。
## 会社の回線工事を控えて忙しいので...
--
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
nokubi@xxxxxxxxx (official)