namazu-ml(avocado)


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

Re: Q. about mknmz



Hiroshi Kato <tumibito@xxxxxxxxxxxxxxxxxxx> wrote:

>(1) mknmz は,前回以降に追加されたファイルのみを抽出し,以前に作成され
>    たインデックスを再構成する形で作られるのではないのでしょうか?

そのはずです。


>(4) マニュアルによると,
>	「また、 maillist.html や threads.html といった MHonArc の作成
>	するインデックスをスキップします。」
>    と書いてありますが,
>	「'<\!-- MHonArc v\d\.\d\.\d -->' というヘッダがついた
>	 (ex. maillist.html や threads.html といった) MHonArc の作成するイ
>	  ンデックスをスキップします.」
>    という理解でよいのでしょうか?

そうです。 MHonArc v2.1.0 を想定しています。


>(1) SunOS Release 4.1.3-JLE1.1.3_U1
>(2) perl 5.003 with EMBED built under sunos + suidperl security patch

どうもこの組合わせがアヤシイです :-)。

この組合わせ (というかこの Perl) では文字列の比較で EUCの日本語部
分が正しく行えないという問題がありました。char を unsigned で扱う
か扱わないかの問題だと思われます。

NMZ.log に

>(using unsignedcmp routine)

と記録されているのがその証拠です。

これについては古川さんがパッチをくださったのでそれで解決したと思っ
ていたのですが、良く考えてみたら mknmz.pl の 1600行目辺りの

    for (; $cnt <= $#words && $words[$cnt] le $current_word ; $cnt++) {

でも引っ掛かってしまいますね。故に、インデックスを更新すると

>5.2の NMZ.i を wdnmz してみる.
>	:
>ヤメ	1
>依頼	1		<---- オヨヨ?
>下さい	1
>	:
>位置付け	1
>依頼	16		<---- どうして2回出てくるの?

ということが発生してしまうのだと思います。先ほどの行を強引に

    for (; $cnt <= $#words 
	&& unsignedcmp($words[$cnt], $current_word) < 0 ; $cnt++) {

と書き替えてしまえば、おそらく動くと思いますが、 Perl を 5.004 に
ヴァージョンを上げる方が良いかもしれません。

とはいえ、これもバグなので次にリリースするときには対処しておきたい
と思います。

# OS/2 対応も合わせて v1.1.1.3 かな?

--
高林 哲 Satoru Takabayashi