namazu-ml(avocado)


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

namazu_core (mknmz.pl)



古川です。小さなことですが…

mknmz.pl の中に、

sub namazu_core ($$$) {
    my ($cfile, $file_count, $file_segment) = @_;
    my ($url, $cfile_size, $ctrl, $kanji);
    my ($title, $weighted_str, $contents, $header, $headings);

    chop $cfile;
    $url = &url_decchiagator($cfile);  # ファイル名から URL をでっちあげる

というところがありますが、この最後のところを

    chop $cfile;
    return 0 if ! -r $cfile # 追加
    $url = &url_decchiagator($cfile);  # ファイル名から URL をでっちあげる

とした方がいいようです。permission が無くてファイルを読めない場合でも、
size は取得できてしまうので、namazu_core はちゃんとサイズを返してしま
い、読めなかったファイルが @FList に登録されてしまいます。

ちなみに、cfileload の中で、

    open(CFILE, "$NKF -emZ1 \"$cfile\" |") || die "Can't open $cfile.\n";

という行がありますが、これは、$cfile が存在しない、という理由では die 
しません。ここで die するのは $NKF が無い場合です。$cfile が読めなかっ
たか知りたいときは、close してから $? を見る必要がありそうです。

以上は、SunOS 4.1.4 + perl5.004 での「実験結果」ですので、普遍性につい
ては分かりませんが、いちおう、ご報告させていただきました。

-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx