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内の判定フローを複雑にするのは気が
 進まない。

ということでどちらもすっきりしないので作業を始めていません。

シンプルな解決方法はないでしょうか?

臼田幸生