#!/usr/bin/perl -w my $test_only = 0; while ($file = shift @ARGV) { if ($file =~ /--test/) { $test_only = 1; next; } open (File, "$file") || die "Can't open $file\n"; my $intermediate = $file.".oo.int"; open (Tmp, ">$intermediate") || die "Can't open $intermediate\n"; $hit = 0; $num = 0; my $line = ''; while () { $num++; if (/^#endif\s+[^\/\s]/) { print STDERR "Error on line $num of $file\n"; $hit = 1; if( $file =~ m/\..xx$/ ) { # C++ comment s/^#endif\s+/#endif \/\/ /; } else { # C comment s/^#endif\s+(.*)\s+/#endif \/* $1 *\/ /; } } $line = $_; print Tmp $line; } if (! ($line =~ m/\n$/) ) { print STDERR "No newline at EOF of $file\n"; print Tmp "\n"; $hit = 1; } close File; close Tmp; if ($hit && !$test_only) { print "$file\n"; rename $file, "$file.old"; rename $intermediate, $file; } else { unlink $intermediate; } }