Namazu-devel-ja(旧)


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

util::fclose(), util::writefile()



寺西です。

ファイルを明示的にクローズするために util::fclose() を用意しました。
(util::fopen(), util::efopen() と対応させるために)

また、フィルタで頻繁に使う
    {
        my $fh = util::efopen("> $tmpfile");
        print $fh $$cont;
        util::fclose($fh);
    }
に相当する util::writefile() を用意しました。次の1命令に置き換え可能
です。
    util::writefile($tmpfile, $cont);

以下、差分です。

# cvs diff util.pl
Index: util.pl
===================================================================
RCS file: /storage/cvsroot/namazu/pl/util.pl,v
retrieving revision 1.28
diff -r1.28 util.pl
67a68,83
> sub fclose ($) {
>     my ($arg) = @_;
>     my $fh;
>     if (ref $arg) {
>       if ($arg =~ /^(IO::File|FileHandle)/) {
>             $fh = $arg;
>             $fh->close();
>             return undef;
>         }
>     }
>
>     my $err = "$arg: " . _("not an IO::File/FileHandle object!\n");
>     warn $err;
>     return $err;
> }
>
134a151,154
>     unless (ref $arg) {
>         fclose($fh);
>     }
>
137a158,182
> sub writefile ($$) {
>     my ($arg, $cont) = @_;
>
>     my $fh;
>     if (ref $arg) {
>       if ($arg =~ /^(IO::File|FileHandle)/) {
>           $fh = $arg;
>       } else {
>           my $err = "$arg: " . _("not an IO::File/FileHandle object!\n");
>           warn $err;
>           return $err;
>       }
>     } else {
>       $fh = efopen("> $arg");
>     }
>
>     print $fh $$cont;
>
>     unless (ref $arg) {
>         fclose($fh);
>     }
>
>     return undef;
> }
>
152a198,200
>     unless (ref $arg) {
>         fclose($fh);
>     }
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E