Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
return 0 if %PhraseHash eq "0";
> 千葉市中央区長洲
> 藤原 誠
藤> つまり整理すると、perl -d:DProf に限ってですが、
藤> LANG=C ○
藤> LANG=ja ○
藤> LANG=ja_JP.euc ×
藤> unsetenv LANG ○
と書きましたが、良く確めましたら、LANG= に ja で始まる文字列
が入っている時が問題でした。
unsetenv LANG ○
LANG=C ○
LANG=ja ×
LANG=ja_JP.euc ×
LANG=ja_JP.eucJP ×
LANG=aja ○
LANG=jp ○
(最後の方はもしかして、と思って試しただけです)
寺> ただ locale に ja_JP.euc がないため、(臼田さんと同じで)C として扱われ
寺> ているので、藤原さんとは異なる環境なのかもしれません。
寺> 対応してそうな ja_JP.eucjp でやってみましたが、NMZ.p は生成されました。
NetBSD/1.6T の場合、/usr/share/locale の下の jaで始まる文字列は次のように
なっています。
(...share/locale)> ls -dl ja*
drwxr-xr-x 3 root wheel 512 Nov 11 2002 ja/
drwxr-xr-x 2 root wheel 512 Nov 11 2002 ja_JP.ISO2022-JP/
drwxr-xr-x 2 root wheel 512 Nov 11 2002 ja_JP.ISO2022-JP2/
drwxr-xr-x 2 root wheel 512 Nov 11 2002 ja_JP.SJIS/
drwxr-xr-x 2 root wheel 512 Nov 11 2002 ja_JP.ct/
drwxr-xr-x 2 root wheel 512 Nov 11 2002 ja_JP.eucJP/
で NetBSD/1.5E だと、
(...share/locale)> ls
da/ fr/ no/ pt_BR/
de/ ko/ no@nynorsk/ ru/
el/ locale.alias pl/ sl/
es/ nl/ pt/ sv/
(...share/locale)> grep ja locale.alias
japanese ja_JP.EUC
のようになっているのですが、ここでも全く同じでした。
(関係なかった)。
しかも、以前に、mknmz.in を並べ替えたら、問題が解決した
[namazu-devel-ja : No.03122] の次の記事の中で
藤> 実は、少し予想していたのですが -d:DProf しても NMZ.p* が出来
藤> ていました。
と書いたのは間違いでした。解決しません。
以上をまとめますと、(僕のまわりでは)
LANG=ja.. Perl -d:DProf すると、
namazu-2.0.12, namazu-2.0.13, NetBSD/1.6T, NetBSD/1.5E
では、NMZ.p* が出来ない
でした。
で、次の変更をすると、これが「出来るように」なりました。
(まあ、もっとも、全ての組合せでは調べていませんが)
多分、この変更はした方がいいと思います。
$PhraseHashLast{$hash} = 0
====
という初期化は確かにあるのですが..
---
(藤原)
http://www.ki.nu/software/namazu/tutorial
Index: namazu/scripts/mknmz.in
===================================================================
RCS file: /storage/cvsroot/namazu/scripts/mknmz.in,v
retrieving revision 1.85.4.32
diff -u -r1.85.4.32 mknmz.in
--- namazu/scripts/mknmz.in 9 Jul 2003 15:19:34 -0000 1.85.4.32
+++ namazu/scripts/mknmz.in 29 Jul 2003 03:18:21 -0000
@@ -2103,7 +2103,7 @@
sub write_phrase_hash_sub () {
my $opened = 0;
- return 0 if %PhraseHash eq "0";
+ return 0 if %PhraseHash eq '';
util::dprint(_("doing write_phrase_hash() processing.\n"));
my $fh_tmp_pi = util::efopen(">$var::NMZ{'__pi'}");