--- upstream2/log_accum2 2006-05-20 05:38:37.000000000 -0400 +++ ./log_accum2 2006-05-20 11:25:22.000000000 -0400 @@ -1,4 +1,4 @@ -#! @PERL@ -T +#! /usr/bin/perl -T # -*-Perl-*- # Copyright (C) 1994-2006 The Free Software Foundation, Inc. @@ -779,28 +779,39 @@ { my ($mail_to, $module, $branch, $username, $fullname, $mailname, $header, @diffs) = @_; - my ($subject, @onediff); - foreach (@diffs) - { - chomp; - if (/^Index: /) - { - if (@onediff) + # Sample diff: +# Index: subdir/subfile3 +# =================================================================== +# RCS file: /sources/testyeight/testyeight/subdir/subfile3,v +# retrieving revision 1.18 +# retrieving revision 1.19 +# diff -u -b -r1.18 -r1.19 +# --- subdir/subfile3 20 May 2006 11:35:55 -0000 1.18 +# +++ subdir/subfile3 20 May 2006 11:37:01 -0000 1.19 +# @@ -1 +1 @@ +# -$Id: subfile3,v 1.18 2006/05/20 11:35:55 Beuc Exp $ +# +$Id: subfile3,v 1.19 2006/05/20 11:37:01 Beuc Exp $ + + while (@diffs) + { + my ($subject, @onediff); + + do { + my $cur_line = shift @diffs; + push @onediff, $cur_line; + + if ($cur_line =~ /^RCS file: (.*)$/) { - mail_notification $mail_to, $module, $username, $fullname, - $mailname, $subject, @$header, @onediff; + $subject = $1; + $subject =~ s/^\Q$ENV{'CVSROOT'}\E\///; + $subject = "Changes to $subject"; + $subject .= " [$branch]" if $branch; } - undef @onediff; - } - elsif (/^RCS file: (.*)$/) - { - $subject = $1; - $subject =~ s/^\Q$ENV{'CVSROOT'}\E//; - $subject = "Changes to $subject"; - $subject .= " [$branch]" if $branch; - } - push @onediff, $_; + } while (@diffs and $diffs[0] !~ /^Index: /); + + mail_notification $mail_to, $module, $username, $fullname, + $mailname, $subject, @$header, @onediff; } }