X-Git-Url: https://git.p6c8.net/devedit.git/blobdiff_plain/28fffadb645ec8948406c30e05eed0d3776a5cad..548d69a4ee38cc59612e787f479ac198d5c37741:/modules/File/UseList.pm?ds=sidebyside diff --git a/modules/File/UseList.pm b/modules/File/UseList.pm index 22d1bcc..29db298 100644 --- a/modules/File/UseList.pm +++ b/modules/File/UseList.pm @@ -1,18 +1,19 @@ package File::UseList; # -# File::UseList 1.1.1 +# File::UseList 1.3 # # Run a list with files that are currently in use # (bases on Filing::UseList by Roland Bluethgen ) # -# Author: Patrick Canterino -# Last modified: 2003-10-17 +# Author: Patrick Canterino +# Last modified: 2004-12-03 # use strict; use Carp qw(croak); +use Fcntl; # new() # @@ -95,11 +96,8 @@ sub unlock if($self->{'locked'}) { - unless(-f $lockfile) - { - open(LOCKFILE,">",$lockfile) or return; - close(LOCKFILE) or return; - } + sysopen(LOCKFILE,$lockfile,O_WRONLY | O_CREAT | O_TRUNC) or return; + close(LOCKFILE) or return; $self->{'locked'} = 0; return 1; @@ -126,9 +124,9 @@ sub load # Read out the file and split the content line-per-line - open(FILE,"<",$file) or return; + sysopen(FILE,$file,O_RDONLY) or return; read(FILE, my $content, -s $file); - close(FILE) or return; + close(FILE) or return; my @files = split(/\015\012|\012|\015/,$content); @@ -165,11 +163,11 @@ sub save my $data = (@$files) ? join("\n",@$files) : ''; - open(FILE,">",$temp) or return; - print FILE $data or do { close(FILE); return }; - close(FILE) or return; + sysopen(FILE,$temp,O_WRONLY | O_CREAT | O_TRUNC) or return; + print FILE $data or do { close(FILE); return }; + close(FILE) or return; - rename($temp,$file) or return; + rename($temp,$file) or return; return 1; } @@ -179,6 +177,8 @@ sub save # Add a file to the list # # Params: File +# +# Return: Status code (Boolean) sub add_file($) { @@ -190,6 +190,7 @@ sub add_file($) return if($self->in_use($file)); push(@$files,$file); + return 1; } # remove_file() @@ -197,6 +198,8 @@ sub add_file($) # Remove a file from the list # # Params: File +# +# Return: Status code (Boolean) sub remove_file($) { @@ -214,11 +217,28 @@ sub remove_file($) if($files->[$x] eq $file) { splice(@$files,$x,1); - last; + return 1; } } } +# remove_all() +# +# Remove all files from the list +# +# Params: -nothing- +# +# Return: -nothing- + +sub remove_all +{ + my $self = shift; + + $self->{'files'} = []; + + return; +} + # in_use() # # Check if a file is in the list