Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mknmz / html.pl problem.
- From: WATANABE Yoshimasa <naney@xxxxxxxxx>
- Date: Thu, 07 Dec 2000 16:08:45 +0900 (JST)
- X-ml-name: namazu-devel-ja
- X-mail-count: 01121
Namazu 開発者様
東京電機大学の渡部と申します。
mknmz の不具合を発見いたしましたので、ご報告いたします(既知/解決済み/
こちらの勘違いでしたらご容赦ください)。
問題点
------
サイズの大きめのある特定のHTMLファイルがインデックスの対象にある時、
mknmz が事実上停止しない。
環境
----
Namazu 2.0.5 (Debian パッケージ 2.0.5-2)
Linux 2.2.17 (Debian GNU/Linux woody)
Perl 5.006
module_kakasi -ieuc -oeuc -w
nkf 1.9
(知人の Plamo 2.0 + Namazu 2.0.5 + perl 5.005_02 でも同症状を確認)
問題個所
--------
filter/html.pl::weight_element の
$$contref =~ s!<($element)>(.*?)</$element>!weight_element_sub($1, $2,\$tmp)!gies;
が停止しない。s/// で i オプションを指定しているため、正規表現処理が非
常に時間がかかっているものと思われる。iオプションをとりのぞき、
$$contref =~ s!<($element)>(.*?)</$element>!weight_element_sub($1, $2,\$tmp)!ges;
とすると、問題のファイルでもすぐに先へ進む(ただし、i オプションがない
ため大文字小文字が区別される)。
なお、問題のファイルの例として:
http://www.s99.co.jp/phpdoc/bimanual.html
がある(手元にダウンロードし、そのファイルのみを含めたディレクトリに対
して mknmz を実行することにより再現)。
ファイルサイズが大きいが、config の $FILE_SIZE_MAX, $TEXT_SIZE_MAX で
のチェックは上記問題コードを処理後行われるため、ファイルサイズによる除
外はできない。
以上です。お役にたてば幸いです。
---
渡部 喜正 (WATANABE Yoshimasa) <naney@xxxxxxxxx>
http://www.naney.org/