Namazu-devel-ja(旧)


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

Re: zipフィルタ Re: lhaフィルタ



臼田です。

日本語名のファイルを含むzipファイルで動作確認をしていて見つけましたが、
昨日修正したフィルタではunzip -Z の出力をeucにしてしまっていて
不具合がありました。
また、空白を含んだファイル名も処理できませんでした。
下記の修正が必要です。

$ diff -u filter/zip.pl.old filter/zip.pl
--- filter/zip.pl.old   2004-05-03 15:57:19.000000000 +0900
+++ filter/zip.pl       2004-05-03 15:56:32.000000000 +0900
@@ -92,7 +92,6 @@
     $status = system("$unzippath -Z $tmpfile > $tmpfile2");
     if ($status == 0) {
        my $filelist = util::readfile("$tmpfile2");
-       codeconv::toeuc(\$filelist);
        while ($filelist =~/\n\S+\s+    # permission
                        \S+\s+          # version
                        \S+\s+          # filesystem
@@ -101,7 +100,7 @@
                        \S+\s+          #
                        \S+\s+          # day-month-year
                        \S+\s+          # hour:min
-                       (\S+)/gx){      # filename
+                       (.+)/gx){       # filename
            $files{$2} = $1;
        }
     }
@@ -120,7 +119,7 @@
            util::dprint("$fname: Too large ziped file");
        } else {
            my $con = "";
-           my $fh = util::efopen("$unzippath -p $tmpfile $fname|");
+           my $fh = util::efopen("$unzippath -p $tmpfile \"$fname\"|");
            while (defined(my $line = <$fh>)){
                $con .= $line;
            }

臼田幸生