Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
$inroot = '\rtl\crt'; $outroot = '\rtl\tmp';
while ($_ = $ARGV[0], /^-/) { shift; if (/^-i/) { $inroot = $ARGV[0]; shift; } if (/^-o/) { $outroot = $ARGV[0]; shift; } if (/^-v/) { $verbose++; } }
chdir "$inroot" or die "Can't chdir to $inroot: $!\n";
system "delnode /q $outroot"; system "xcopy /ti $inroot $outroot";
open FILELIST, "sd files ...#have |" or die "Can't run sd files: $!\n";
for (<FILELIST>) {
chop; s|^//depot/VCBranch/VC/crt/||; s|#\d+ - .*||;
next if /^log\.txt$/; next if /fixcopyright\.pl$/;
$INFILE = $_; open INFILE or die "Can't open $INFILE: $!\n";
$OUTFILE = "$outroot\\$INFILE"; open OUTFILE, ">$OUTFILE" or die "Can't open $OUTFILE: $!\n";
$found_copyright = 0; $other_copyright = 0; $detab = 0; @format_errs = ();
for (<INFILE>) { $detab = 1 if /\t/;
if (/copyright/i && /Microsoft/) { ++$found_copyright; if (/2001/) { print "Warning: $INFILE:\tCopyright already current\n"; } elsif (/ (19|20)\d\d[ ,."]/) { s/( (19|20)\d\d)([ ,."])/$1-2001$3/; } elsif (/ (19|20)\d\d-(19|20)\d\d[ ,."]/) { s/( (19|20)\d\d)-(19|20)\d\d([ ,."])/$1-2001$4/; } elsif (/ (19|20)\d\d$/) { s/( (19|20)\d\d)$/$1-2001/; } elsif (/ (19|20)\d\d-(19|20)\d\d$/) { s/( (19|20)\d\d)-(19|20)\d\d$/$1-2001/; } else { print "Error: $INFILE: Unparsable copyright line\n"; print "\t $_"; }
if (!/Copyright \([cC]\) \d{4}(-\d{4})?,? Microsoft Corporation\.\s+All rights reserved\./) { if ( $INFILE !~ q|/sources(\.nt)?$| && $INFILE !~ q|dirs$| ) { push @format_errs, $_; } } } elsif (/copyright/i && (/Digital Equipment/ || /Intel/)) { ++$other_copyright; }
print OUTFILE $_; }
while ($_ = pop @format_errs) { # missing "All rights reserved" OK if other copyrights present next if $other_copyright && /Copyright \([cC]\) \d{4}(-\d{4})?,? Microsoft Corporation/; # .rc files are allowed to have a different format next if $INFILE =~ /\.rc$/ && /Copyright \([cC]\) Microsoft Corporation\.\s+\d{4}(-\d{4})?"/; print "Error: $INFILE: Incorrect copyright format\n"; print "\t $_"; }
if ($verbose) { print "Warning: $INFILE:\tdetab!\n" if $detab; print "Warning: $INFILE:\tmultiple copyrights\n" if $found_copyright > 1; print "Warning: $INFILE:\tno copyright\n" if !$found_copyright; }
close INFILE; close OUTFILE;
unlink $OUTFILE if !$found_copyright; } close FILELIST;
|