Kris Jurka wrote:
> 
> 
> On Fri, 19 Aug 2011, Kris Jurka wrote:
> 
> > For me this fails with:
> > 
> > Bareword "Tie::File" not allowed while "strict subs" in use  at
> > /home/jurka/pg/server/postgresql/src/tools/copyright.pl line 28.
> > 
> 
> This fixes things for me.  The copyright matching wasn't working for me 
> either without escaping the parentheses.

Was able to reproduce the error you reported with Perl 5.10.  I then
tried the single-quote idea I got from Googling, but then got an error
about TIEARRAY being missing, so I recoded it as a simple file
open/close.  I also incorported your regex fix.  Path attached and
applied.  Thanks.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/src/tools/copyright.pl b/src/tools/copyright.pl
new file mode 100755
index 96b1f22..91f73e3
*** a/src/tools/copyright.pl
--- b/src/tools/copyright.pl
*************** use warnings;
*** 13,19 ****
  use File::Find;
  
  my $pgdg = 'PostgreSQL Global Development Group';
! my $cc = 'Copyright (c) ';
  # year-1900 is what localtime(time) puts in element 5
  my $year = 1900 + ${[localtime(time)]}[5];
  
--- 13,19 ----
  use File::Find;
  
  my $pgdg = 'PostgreSQL Global Development Group';
! my $cc = 'Copyright \(c\) ';
  # year-1900 is what localtime(time) puts in element 5
  my $year = 1900 + ${[localtime(time)]}[5];
  
*************** print "Using current year:  $year\n";
*** 22,33 ****
  find({wanted => \&wanted, no_chdir => 1}, '.');
  
  sub wanted {
!     return unless -f $File::Find::name;
  
!     my @lines;
!     tie @lines, Tie::File, $File::Find::name;
  
!     foreach my $line (@lines) {
          # We only care about lines with a copyright notice.
          next unless $line =~ m/$cc.*$pgdg/;
          # We stop when we've done one substitution.  This is both for
--- 22,35 ----
  find({wanted => \&wanted, no_chdir => 1}, '.');
  
  sub wanted {
!     my $filename = $File::Find::name;
  
!     # only regular files
!     return if ! -f $filename;
  
!     open(my $FILE, '<', $filename) or die "Cannot open $filename";
! 
!     foreach my $line (<$FILE>) {
          # We only care about lines with a copyright notice.
          next unless $line =~ m/$cc.*$pgdg/;
          # We stop when we've done one substitution.  This is both for
*************** sub wanted {
*** 37,43 ****
          last if $line =~ s/($cc\d{4})(, $pgdg)/$1-$year$2/;
          last if $line =~ s/($cc\d{4})-\d{4}(, $pgdg)/$1-$year$2/;
      }
!     untie @lines;
  }
  
  print "Manually update doc/src/sgml/legal.sgml and src/interfaces/libpq/libpq.rc.in too\n";
--- 39,45 ----
          last if $line =~ s/($cc\d{4})(, $pgdg)/$1-$year$2/;
          last if $line =~ s/($cc\d{4})-\d{4}(, $pgdg)/$1-$year$2/;
      }
!     close($FILE) or die "Cannot close $filename";
  }
  
  print "Manually update doc/src/sgml/legal.sgml and src/interfaces/libpq/libpq.rc.in too\n";
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to