[Namazu-devel-ja 178] Re: [Namazu-users-ja 67] Namazu 2.0.13 の filter/excel.pl の問題 ?

Yukio USUDA m6694ha392t @ asahi-net.or.jp
2004年 9月 23日 (木) 11:05:22 JST


臼田です

Tadamasa Teranishi wrote:
> 
> Namazu 2.0.12 に比べて Namazu 2.0.13 の場合、mknmz の excel の処理に
> 時間がかかっているそうです。(xlhtml 0.5.1 使用)
> 
略
> 
> ちなみに 2.0.13 の場合、(必要と思われる)処理が増えていますので、
> 多少遅くなるぐらいは正常の範囲です。
> -- 
excel 文書の処理に限った話だとしてですが

2.0.12 から 2.0.13 で filter/excel.pl に入っている修正は
少ないのですが、
新しく追加した normalize_eucjp からカナや英数文字の半角全角を正規化する
サブルーチンを呼び出す際に文書を値渡しにしている点は気になっています。

ここをレファレンス渡しにしたら少しだけ軽くなるのではと思っています。


[namazu-2.0.13]$ diff -up pl/codeconv.pl.org pl/codeconv.pl
--- pl/codeconv.pl.org  2004-09-23 10:25:03.000000000 +0900
+++ pl/codeconv.pl      2004-09-23 10:49:20.000000000 +0900
@@ -60,7 +60,7 @@ sub ktoe ($$) {
 sub eucjp_han2zen_kana ($) {
     my ($str) = @_;
     if (util::islang("ja")) {
-       $str =~ s/\x8e([\xa1-\xdf])(\x8e([\xde\xdf]))?/&ktoe($1,$3)/geo;
+       $$str =~ s/\x8e([\xa1-\xdf])(\x8e([\xde\xdf]))?/&ktoe($1,$3)/geo;
     }
     $str;
 }
@@ -153,7 +153,7 @@ sub toeuc ($) {
 sub eucjp_zen2han_ascii ($) {
     my ($str) = @_;
     if (util::islang("ja")) {
-       $str =~ s/([\xa1-\xfe][\xa1-\xfe]|\x8e[\xa1-\xdf]|\x8f[\xa1-\xfe][\xa1-\xfe])/
+       $$str =~ s/([\xa1-\xfe][\xa1-\xfe]|\x8e[\xa1-\xdf]|\x8f[\xa1-\xfe][\xa1-\xfe])/
        my $tmp = $1;
        $tmp =~ m!\xa3([\xb0-\xb9\xc1-\xda\xe1-\xfa])! ? $1 & "\x7F" : $tmp/gse;
     }
@@ -163,8 +163,8 @@ sub eucjp_zen2han_ascii ($) {
 sub normalize_eucjp ($) {
     my ($contref) = @_;
     if (util::islang("ja")) {
-        $$contref = codeconv::eucjp_han2zen_kana($$contref);
-        $$contref = codeconv::eucjp_zen2han_ascii($$contref);
+        codeconv::eucjp_han2zen_kana($contref);
+        codeconv::eucjp_zen2han_ascii($contref);
     }
     $contref;
 }


[namazu-2.0.13]$ diff -up pl/gfilter.pl.org pl/gfilter.pl
--- pl/gfilter.pl.org   2004-09-23 10:27:43.000000000 +0900
+++ pl/gfilter.pl       2004-09-23 10:28:08.000000000 +0900
@@ -58,7 +58,7 @@ sub filename_to_title ($$) {
     # for MSWin32's filename using Shift_JIS [1998-09-24]
     if (($mknmz::SYSTEM eq "MSWin32") || ($mknmz::SYSTEM eq "os2")) {
        $cfile = codeconv::shiftjis_to_eucjp($cfile);
-       $cfile = codeconv::eucjp_han2zen_kana($cfile);
+       codeconv::eucjp_han2zen_kana(\$cfile);
     }
     
     $cfile =~ m!^.*/([^/]*)$!;


臼田幸生




Namazu-devel-ja メーリングリストの案内