Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
util::fclose(), util::writefile()
- From: Tadamasa Teranishi <yw3t-trns@xxxxxxxxxxxxxxx>
- Date: Sun, 14 Mar 2004 02:34:27 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 03840
寺西です。
ファイルを明示的にクローズするために 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