pjs/java/pluggable-jvm/wf/doc/rules.pl

160 строки
4.4 KiB
Perl

#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is The Waterfall Java Plugin Module
#
# The Initial Developer of the Original Code is Sun Microsystems Inc
# Portions created by Sun Microsystems Inc are Copyright (C) 2001
# All Rights Reserved.
#
# $Id: rules.pl,v 1.1 2001-07-12 20:25:40 edburns%acm.org Exp $
#
# Contributor(s):
#
# Nikolay N. Igotti <nikolay.igotti@Sun.Com>
#
$post_license = <<EOF
Contributor(s):
Nikolay N. Igotti <nikolay.igotti\@Sun.Com>
EOF
;
# trick to prevent CVS from rewriting those comments
$post_license = "\$"."Id: CVS comments placeholder "."Exp \$\n".$post_license;
$license = "/work/checkin/MPL.txt";
$oldtree = "/work/checkin/wf";
$newtree = "/work/checkin/wf.new";
%mapping = (
".*\\.cpp\$" => "cpp",
".*\\.c\$" => "c",
".*\\.h\$" => "h",
".*\\.java\$" => "java",
".*\\.bat\$" => "bat",
".*\\.BAT\$" => "bat",
".*\\.policy" => "policy",
".*\\.sh" => "sh",
".*\\.csh" => "csh",
"GNUmakefile" => "GNUmakefile",
"Makefile" => "Makefile",
"makefile\\.win" => "makefile.win",
".*\\.mk" => "mk",
".*\\.gmk" => "gmk",
".*\\.pl" => "pl"
);
%prefixes = (
"cpp" => "-*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- ",
"c" => "-*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-",
"java" => "-*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-",
"h" => "-*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-"
);
%comments_start = (
"cpp" => "/* ",
"c" => "/* ",
"h" => "/* ",
"policy" => "/* ",
"sh" => "# ",
"csh" => "# ",
"pl" => "# ",
"GNUmakefile" => "# ",
"Makefile" => "# ",
"makefile.win"=> "# ",
"java" => "/* ",
"bat" => "\@REM ",
"BAT" => "\@REM ",
"mk" => "# ",
"gmk" => "# "
);
%comments_middle = (
"cpp" => " * ",
"c" => " * ",
"h" => " * ",
"policy" => " * ",
"java" => " * ",
"sh" => "# ",
"csh" => "# ",
"pl" => "# ",
"GNUmakefile" => "# ",
"Makefile" => "# ",
"makefile.win"=> "# ",
"mk" => "# ",
"gmk" => "# ",
"bat" => "\@REM ",
"BAT" => "\@REM "
);
%comments_end = (
"cpp" => " */",
"c" => " */",
"h" => " */",
"policy" => " */",
"sh" => "# ",
"csh" => "# ",
"pl" => "# ",
"GNUmakefile" => "# ",
"Makefile" => "# ",
"makefile.win"=> "# ",
"java" => " */ ",
"bat" => "\@REM ",
"BAT" => "\@REM ",
"mk" => "# ",
"gmk" => "# "
);
%ignore_dirs = (
"CVS" => 1
);
# filtering procedure:
# input - filename, type, list of file strings
# output - list of file strings
sub proceed
{
my ($file, $type, @lines) = @_;
my @newlines;
my ($pre, $com1, $com2, $com3) =
($prefixes{$type}, $comments_start{$type},
$comments_middle{$type}, $comments_end{$type});
# in shell scripts add only after #!<smth> execution comment
if ($type eq "sh" || $type eq "csh" || $type eq "pl") {
$_ = $lines[0];
push @newlines, shift @lines if (/^\#\S*\!/);
}
push @newlines, "$com1$pre\n";
push @newlines, "$com2\n" if ($pre);
foreach (@lic) {
push @newlines, "$com2$_";
}
my @post = split('\n', $post_license);
foreach (@post) {
push @newlines, "$com2$_\n";
}
push @newlines, "$com3\n\n";
foreach (@lines) {
push @newlines, $_;
}
return @newlines;
}