Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: File-MMagic(OpenOfficeのfiletype)
臼田です。
Yukio USUDA wrote:
> > ですが、OpenOffice関連のファイルをFile-MMagicが
> > application/x-zipと認識をしてくれるためうまくテストできません。
>
> ファイルの判別については過去のMLログを参考に2行追加して試したところ解決でき
> ました。
解決できたものと思っていたのですが。
どうもOpenOffice1.0.xのファイルの何割かが判別に失敗します。
OpenOfficeの文書ファイルは元々XMLファイルを圧縮したzipファイル
なのでFile-MMagicはzipファイルとして認識します。
OpenOffice1.0.x文書ファイル内にはcontent.xmlというXMLファイルがあ
り、最初に位置する(と思っていた)ことからそれをmagic情報として
使っていました。
しかし、他のファイルがcontent.xmlの前にくる例があり、magic情報だ
けでは一般のzipファイルと区別できないことがわかりました。
OpenOfficeの文書ファイルを確実につかまえるために
1.zipのフィルターを作り、zipフィルター内ではデータのファイル名
を見て拡張子からOOoのファイルを判別しooo::filterサブルーチン
を呼び出すようにする。
(とりあえずzipフィルターはOOoのファイル以外は処理しない)
2.mknmzでの判定箇所を修正し mtype_mがapplication/x-zipで
ある場合は拡張子情報 mtype_nを併用して決定させる。
の2案を思いつきました。
しかし、
1はzip汎用でない中途半端なフィルターを入れることになるのと
(複数ファイルに展開される圧縮ファイルを通せるフィルターはいま
のmknmzのままでは書けないですよね)
OpenOfficeの文書ファイルを直接ooo.plで処理する場合と、zip用フィ
ルター経由で処理する2経路できて分かりにくくなる。
2はOpenOfficeのためだけにmknmz内の判定フローを複雑にするのは気が
進まない。
ということでどちらもすっきりしないので作業を始めていません。
シンプルな解決方法はないでしょうか?
臼田幸生