sub make_manifest {
- my $fout = "tmp/manifest.out";
- my $result_uu = sys_command("make manifest >$fout 2>$fout");
- my $status = "OK";
- $rstatus->{'MANIFEST'} = $status;
+ my $fout = "tmp/manifest.out";
+ my $fdiff = "tmp/manifest.diff";
+ my $result = sys_command("make manifest >$fout 2>$fout");
post_result($fout);
+ $result = sys_command("diff MANIFEST.bak MANIFEST >$fdiff");
+ if ( !$result ) {
+ query("No changes to MANIFEST; hit <cr>\n");
+ }
+ else {
+ post_result($fdiff);
+ query("MANIFEST has changed, please check; hit <cr>\n");
+ }
+ my $status = "OK";
+ $rstatus->{'MANIFEST'} = $status;
return;
} ## end sub make_manifest
$string =~
s/2000-(\d\d\d\d) by Steve Hancock/2000-$reported_year by Steve Hancock/g;
if ( $string ne $old_string ) {
- my $diff_msg = compare_string_buffers( \$old_string, \$string );
+ my $diff_msg = compare_string_buffers( $old_string, $string, 3 );
print <<EOM;
===================================================
Copyright year needs to be updated in $source_file:
sub compare_string_buffers {
- my ( $rbufi, $rbufo ) = @_;
+ my ( $string_i, $string_o, ($max_diff_count) ) = @_;
# Compare input and output string buffers and return a brief text
# description of the first difference.
+
+ # Given:
+ # $string_i = input string, or ref to input string
+ # $string_o = output string, or ref to output string
+ # $max_diff_count = optional maximum number of differences to show,
+ # default=1
+ # Return:
+ # a string showing differences
+
+ my $rbufi = ref($string_i) ? $string_i : \$string_i;
+ my $rbufo = ref($string_o) ? $string_o : \$string_o;
+
+ if ( !defined($max_diff_count) ) { $max_diff_count = 1 }
+
my ( @aryi, @aryo );
my ( $leni, $leno ) = ( 0, 0 );
if ( defined($rbufi) ) {
my $last_nonblank_count = 0;
# loop over lines until we find a difference
- my $count = 0;
+ my $count = 0;
+ my $diff_count = 0;
while ( @aryi && @aryo ) {
$count++;
my $linei = shift @aryi;
>$count:$lineo
$line_diff
EOM
- return $msg;
+ $diff_count++;
+ last if ( $diff_count >= $max_diff_count );
} ## end while ( @aryi && @aryo )
+ if ($diff_count) { return $msg }
+
#------------------------------------------------------
# no differences found, see if one file has fewer lines
#------------------------------------------------------