namazu-dev(ring)


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

Re: %var::REQUIRE_CODECONV



<199908310542.OAA00617@xxxxxxxxxxxxxx>の記事において
satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。

>>      'message/rfc822' => 1,
>>      'message/news' => 1,
>>      'text/html' => 1,
>>      'text/html; x-type=mhonarc' => 1,
>>      'text/x-roff' => 1,
>> 
>> を追加しました。理由:

  あ、説明が悪かったかもしれません。このあたりは各filterにcodeconv()と
いう関数を実装し、mknmz.pl.inのload_modules()で

eval "\$codeconv  = ${module}::codeconv();";
$var::REQUIRE_CODECONV{$mt} = $codeconv if ($codeconv);

  などとして値を設定させています。今のところ、html, mailnews, mhonarc
がcodeconvを行うようになっています。
  あらかじめ'text/plain' => 1を設定しているのは、対応するフィルタがな
いからで、filterに関する設定をstaticに行うつもりではありませんでした。
説明不足ですみません。

  manに関しては、codeconvが指定されないようにしています。codeconvを有
効にすると、EUC-JP化されたデータがjgroff/groff/nroffに与えられてしまう
ので、roffが期待するencodingがEUC-JP以外であるような処理系で問題が起き
るかもしれません。
  そこで、あえてここでは変換せずにroffを通した結果をfilter内部でEUC-JP
に変換して返すようにしました。デフォルトで非EUC-JPなroff文章を扱うよう
な環境(HPUXなど?)ではこのほうが都合が良いように思います。

 しかし、これはこれで別の問題を抱えています。systemに標準で付属してい
る文章をインデックス化するときはこれで良いのですが、そうでないもの、例
えばフリーソフトに付属のroff文章などをインデックス化するときは、その前
に自分でsystemが要求するencodingに直さないといけません...

  この辺り、より良い解決方法があったらご教授ください。

  rfcは微妙な所のような気がします。現状のFile::MMagicでは日本語訳され
たrfc文章の判別はあまりできなさそうなのと、filter内部の処理もあまりう
まく扱えそうにないので...

>> ところで、load_modules で得た %conf::Supported を
>> load_document で用いるようにしませんか?

  やってみます。
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)