1111use warnings;
1212
1313use File::Find;
14+ use Tie::File;
1415
1516my $pgdg =' PostgreSQL Global Development Group' ;
1617my $cc =' Copyright \(c\)' ;
2223find({wanted => \&wanted,no_chdir => 1},' .' );
2324
2425sub wanted {
25- my $filename = $File::Find::name ;
26+ return if ! -f $File::Find::name || -l $File::Find::name ;
2627
27- # only regular files
28- return if ! -f $filename ;
28+ my @lines ;
29+ tie @lines , " Tie::File " , $File::Find::name ;
2930
30- open (my $FILE ,' <' ,$filename )or die " Cannot open$filename " ;
31-
32- foreach my $line (<$FILE >) {
31+ foreach my $line (@lines ) {
3332# We only care about lines with a copyright notice.
3433next unless $line =~m /$cc .*$pgdg / ;
3534# We stop when we've done one substitution. This is both for
@@ -39,7 +38,7 @@ sub wanted {
3938last if $line =~s / ($cc\d {4})(, $pgdg)/ $1 -$year$2 / ;
4039last if $line =~s / ($cc\d {4})-\d {4}(, $pgdg)/ $1 -$year$2 / ;
4140 }
42- close ( $FILE ) or die " Cannot close $filename " ;
41+ untie @lines ;
4342}
4443
4544print " Manually update doc/src/sgml/legal.sgml and src/interfaces/libpq/libpq.rc.in too\n " ;