X-Git-Url: https://git.jankratochvil.net/?a=blobdiff_plain;f=bin%2Fcvsutil;h=fd833d515aee40326ee732ff823a356322a6a2c3;hb=0dcff6a67377de40510a102eb1c7cca9e6c9b427;hp=b3bf3a8b3f96aa987d27fc52f2da6c63dc8d0e24;hpb=337694b030e9f20f76a6a08b0e9c9929e1e333a7;p=nethome.git diff --git a/bin/cvsutil b/bin/cvsutil index b3bf3a8..fd833d5 100755 --- a/bin/cvsutil +++ b/bin/cvsutil @@ -1,4 +1,6 @@ #! /usr/bin/perl +# +# $Id$ use strict; use warnings; @@ -118,6 +120,17 @@ sub localdircore fordirs \&localdir,@dir_dirs; } +sub filterout +{ +my($from,@what)=@_; + + my %hash=map { $_=>1; } @$from; + for (@what) { + delete $hash{$_}; + } + return keys %hash; +} + sub localreaddir { local *E; @@ -146,6 +159,7 @@ sub localreaddir } } close I; + @dir_ignores=filterout \@dir_ignores,@dir_dirs,@dir_files; } else { mayfatal "File \"".CVSIGNORE."\" cannot be opened" if !$!{ENOENT}; @@ -156,13 +170,8 @@ sub localreaddir mayfatal "Cannot read directory \".\""; return 0; } - @dir_workings=readdir D; + @dir_workings=filterout [readdir D],@dir_dirs,@dir_files,@dir_ignores,@all_ignore,".",".."; closedir D; - my %delworkings=map { $_=>1; } @dir_workings; - for (@dir_dirs,@dir_files,@dir_ignores,@all_ignore,".","..") { - delete $delworkings{$_}; - } - @dir_workings=keys %delworkings; return 1; }