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
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");
|
|
|