Leaked source code of windows server 2003
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.
 
 
 
 
 
 

145 lines
2.7 KiB

@rem = '
@perl.exe -w %~f0 %*
@goto :EOF
'; undef @rem;
# Creates a new source file, 'sd add's it, and fills in the comment headers.
$date = "";
$year = "";
$changelist = "";
$syntax = "Syntax: newfile [-c <changelist>] <fn>\n";
while ($#ARGV > 0)
{
$option = $ARGV[0];
$option =~ tr/A-Z/a-z/;
$option =~ /^[-\/].$/ || die $syntax;
($#ARGV > 1) || die $syntax;
if ($ARGV[0] eq "-c")
{
$changelist = "-c ".$ARGV[1]." ";
shift;
shift;
}
else
{
die $syntax;
}
}
($#ARGV == 0) || die $syntax;
$fn = $ARGV[0];
$username = $ENV{"USERNAME"};
(!-r $fn) || die "$fn already exists\n";
$username || die "USERNAME not set\n";
sub getDate {
local ($mday, $mon);
local @currentTime;
@currentTime = localtime;
$mday = $currentTime[3];
$mon = $currentTime[4];
$year = $currentTime[5];
# ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$year += 1900;
$mon++;
$date = sprintf("%02d/%02d/%d", $mon, $mday, $year);
}
%filetype = (
"h", 1,
"hpp", 1,
"hxx", 1,
"c", 2,
"cpp", 2,
"cxx", 2
);
# Check the file extension
$fn =~ /\.([^.]+)$/ || die "Unrecognized file extension\n";
$ext = $1;
$ext =~ tr/[A-Z]/[a-z]/;
$type = $filetype{$ext};
$type || die "Unrecognized file extension\n";
open (FILE, ">$fn") || die "Couldn't open file\n";
&getDate;
print FILE <<EOT;
/**************************************************************************\
*
* Copyright (c) $year Microsoft Corporation
*
* Module Name:
*
* <an unabbreviated name for the module (not the filename)>
*
* Abstract:
*
* <Description of what this module does>
*
* Notes:
*
* <optional>
*
* Created:
*
* $date $username
* Created it.
*
\**************************************************************************/
EOT
if ($type == 1) {
$upfn = $fn;
$upfn =~ tr/\.[a-z]/_[A-Z]/;
$upfn =~ s/.*\\([^\\])+/$1/;
print FILE "#ifndef _$upfn\n#define _$upfn\n\n";
} else {
print FILE <<EOT;
/**************************************************************************\
*
* Function Description:
*
* <Description of what the function does>
*
* Arguments:
*
* [<blank> | OUT | IN/OUT] argument-name - description of argument
* ......
*
* Return Value:
*
* return-value - description of return value
* or NONE
*
* Created:
*
* $date $username
* Created it.
*
\**************************************************************************/
EOT
}
if ($type == 1) {
print FILE "#endif\n";
}
close (FILE);
system ("sd add $changelist$fn");