Modified version and usage display.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2262 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ywang 2007-01-17 21:31:03 +00:00
parent 92bb9cf637
commit 243009a7bf
3 changed files with 148 additions and 48 deletions

View File

@ -16,8 +16,43 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "string.h"
#include "stdlib.h"
//
// Utility Name
//
#define UTILITY_NAME "SplitFile"
//
// Utility version information
//
#define UTILITY_MAJOR_VERSION 0
#define UTILITY_MINOR_VERSION 1
void
helpmsg (
Version (
void
)
/*++
Routine Description:
Displays the standard utility information to SDTOUT
Arguments:
None
Returns:
None
--*/
{
printf ("%s v%d.%d -Utility to break a file into two pieces at the request offset.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION);
printf ("Copyright (c) 1999-2007 Intel Corporation. All rights reserved.\n");
}
void
Usage (
void
)
/*++
@ -35,11 +70,14 @@ Returns:
--*/
{
printf (
"SplitFile Filename Offset\n"" Filename = Input file to split\n"" Offset = offset at which to split file\n"
"\n\n""SplitFile will break a file in two pieces at the requested offset\n"
" outputting Filename1 and Filename2\n"
);
Version();
printf ("\nUsage: \n\
SplitFile Filename Offset\n\
where:\n\
Filename: Input file to split\n\
Offset: offset at which to split file\n\
The output files will be named <Filename>1 and <Filename>2 with \n\
<Filename> being given as the input file name.\n");
}
int
@ -75,8 +113,24 @@ Returns:
unsigned long splitpoint;
char CharC;
if (argc == 1) {
Usage();
return -1;
}
if ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "--help") == 0) ||
(strcmp(argv[1], "-?") == 0) || (strcmp(argv[1], "/?") == 0)) {
Usage();
return -1;
}
if ((strcmp(argv[1], "-V") == 0) || (strcmp(argv[1], "--version") == 0)) {
Version();
return -1;
}
if (argc != 3) {
helpmsg ();
Usage ();
return -1;
}

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004, Intel Corporation
Copyright (c) 2004-2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -31,8 +31,6 @@ Abstract:
#include "StrGather.h"
#include "StringDB.h"
#define TOOL_VERSION "0.31"
#ifndef MAX_PATH
#define MAX_PATH 255
#endif
@ -237,6 +235,12 @@ wstrcmp (
WCHAR *Str
);
static
void
Version (
VOID
);
static
void
Usage (
@ -321,7 +325,7 @@ Returns:
{
STATUS Status;
SetUtilityName (PROGRAM_NAME);
SetUtilityName (UTILITY_NAME);
//
// Process the command-line arguments
//
@ -1470,7 +1474,7 @@ FindFile (
// Put the path and filename together
//
if (strlen (List->Str) + strlen (FileName) + 1 > FoundFileNameLen) {
Error (PROGRAM_NAME, 0, 0, NULL, "internal error - cannot concatenate path+filename");
Error (UTILITY_NAME, 0, 0, NULL, "internal error - cannot concatenate path+filename");
return NULL;
}
//
@ -1519,6 +1523,17 @@ ProcessArgs (
Usage ();
return STATUS_ERROR;
}
if ((strcmp(Argv[0], "-h") == 0) || (strcmp(Argv[0], "--help") == 0) ||
(strcmp(Argv[0], "-?") == 0) || (strcmp(Argv[0], "/?") == 0)) {
Usage();
return STATUS_ERROR;
}
if ((strcmp(Argv[0], "-V") == 0) || (strcmp(Argv[0], "--version") == 0)) {
Version();
return STATUS_ERROR;
}
mGlobals.Mode = MODE_UNKNOWN;
//
@ -1570,7 +1585,7 @@ ProcessArgs (
// check for one more arg
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing include path");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing include path");
return STATUS_ERROR;
}
//
@ -1580,7 +1595,7 @@ ProcessArgs (
//
NewList = malloc (sizeof (TEXT_STRING_LIST));
if (NewList == NULL) {
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1588,7 +1603,7 @@ ProcessArgs (
NewList->Str = malloc (strlen (Argv[1]) + 2);
if (NewList->Str == NULL) {
free (NewList);
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1613,7 +1628,7 @@ ProcessArgs (
// Indirection file -- check for one more arg
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing indirection file name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing indirection file name");
return STATUS_ERROR;
}
//
@ -1623,7 +1638,7 @@ ProcessArgs (
//
NewList = malloc (sizeof (TEXT_STRING_LIST));
if (NewList == NULL) {
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1631,7 +1646,7 @@ ProcessArgs (
NewList->Str = malloc (strlen (Argv[1]) + 1);
if (NewList->Str == NULL) {
free (NewList);
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1654,13 +1669,13 @@ ProcessArgs (
// Check for one more arg (the database file name)
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing database file name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing database file name");
return STATUS_ERROR;
}
NewList = malloc (sizeof (TEXT_STRING_LIST));
if (NewList == NULL) {
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1668,7 +1683,7 @@ ProcessArgs (
NewList->Str = malloc (strlen (Argv[1]) + 1);
if (NewList->Str == NULL) {
free (NewList);
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1691,14 +1706,14 @@ ProcessArgs (
// which we can dump our database.
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing database dump output file name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing database dump output file name");
return STATUS_ERROR;
}
if (mGlobals.DumpUFileName[0] == 0) {
strcpy (mGlobals.DumpUFileName, Argv[1]);
} else {
Error (PROGRAM_NAME, 0, 0, Argv[1], "-ou option already specified with '%s'", mGlobals.DumpUFileName);
Error (UTILITY_NAME, 0, 0, Argv[1], "-ou option already specified with '%s'", mGlobals.DumpUFileName);
return STATUS_ERROR;
}
@ -1709,14 +1724,14 @@ ProcessArgs (
// -hpk option to create an HII export pack of the input database file
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing raw string data dump output file name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing raw string data dump output file name");
return STATUS_ERROR;
}
if (mGlobals.HiiExportPackFileName[0] == 0) {
strcpy (mGlobals.HiiExportPackFileName, Argv[1]);
} else {
Error (PROGRAM_NAME, 0, 0, Argv[1], "-or option already specified with '%s'", mGlobals.HiiExportPackFileName);
Error (UTILITY_NAME, 0, 0, Argv[1], "-or option already specified with '%s'", mGlobals.HiiExportPackFileName);
return STATUS_ERROR;
}
@ -1740,7 +1755,7 @@ ProcessArgs (
// check for one more arg
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing output C filename");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing output C filename");
return STATUS_ERROR;
}
@ -1752,7 +1767,7 @@ ProcessArgs (
// check for one more arg
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing base name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing base name");
Usage ();
return STATUS_ERROR;
}
@ -1765,7 +1780,7 @@ ProcessArgs (
// -oh to specify output .h defines file name
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing output .h filename");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing output .h filename");
return STATUS_ERROR;
}
@ -1777,7 +1792,7 @@ ProcessArgs (
// -skipext to skip scanning of files with certain filename extensions
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing filename extension");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing filename extension");
return STATUS_ERROR;
}
//
@ -1787,7 +1802,7 @@ ProcessArgs (
//
NewList = malloc (sizeof (TEXT_STRING_LIST));
if (NewList == NULL) {
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1795,7 +1810,7 @@ ProcessArgs (
NewList->Str = malloc (strlen (Argv[1]) + 2);
if (NewList->Str == NULL) {
free (NewList);
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1822,7 +1837,7 @@ ProcessArgs (
// "-lang eng" or "-lang spa+cat" to only output certain languages
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing language name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing language name");
Usage ();
return STATUS_ERROR;
}
@ -1838,7 +1853,7 @@ ProcessArgs (
// Output database file name -- check for another arg
//
if ((Argc <= 1) || (Argv[1][0] == '-')) {
Error (PROGRAM_NAME, 0, 0, Argv[0], "missing output database file name");
Error (UTILITY_NAME, 0, 0, Argv[0], "missing output database file name");
return STATUS_ERROR;
}
@ -1849,7 +1864,7 @@ ProcessArgs (
//
// Unrecognized arg
//
Error (PROGRAM_NAME, 0, 0, Argv[0], "unrecognized option");
Error (UTILITY_NAME, 0, 0, Argv[0], "unrecognized option");
Usage ();
return STATUS_ERROR;
}
@ -1896,7 +1911,7 @@ ProcessArgs (
//
if (mGlobals.Mode == MODE_SCAN) {
if (Argc < 1) {
Error (PROGRAM_NAME, 0, 0, NULL, "must specify at least one source file to scan with -scan");
Error (UTILITY_NAME, 0, 0, NULL, "must specify at least one source file to scan with -scan");
Usage ();
return STATUS_ERROR;
}
@ -1906,14 +1921,14 @@ ProcessArgs (
while (Argc > 0) {
NewList = malloc (sizeof (TEXT_STRING_LIST));
if (NewList == NULL) {
Error (PROGRAM_NAME, 0, 0, "memory allocation failure", NULL);
Error (UTILITY_NAME, 0, 0, "memory allocation failure", NULL);
return STATUS_ERROR;
}
memset (NewList, 0, sizeof (TEXT_STRING_LIST));
NewList->Str = (CHAR8 *) malloc (strlen (Argv[0]) + 1);
if (NewList->Str == NULL) {
Error (PROGRAM_NAME, 0, 0, "memory allocation failure", NULL);
Error (UTILITY_NAME, 0, 0, "memory allocation failure", NULL);
return STATUS_ERROR;
}
@ -1933,7 +1948,7 @@ ProcessArgs (
// Parse mode -- must specify an input unicode file name
//
if (Argc < 1) {
Error (PROGRAM_NAME, 0, 0, NULL, "must specify input unicode string file name with -parse");
Error (UTILITY_NAME, 0, 0, NULL, "must specify input unicode string file name with -parse");
Usage ();
return STATUS_ERROR;
}
@ -1966,7 +1981,7 @@ AddCommandLineLanguage (
//
WNewList = MALLOC (sizeof (WCHAR_STRING_LIST));
if (WNewList == NULL) {
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
@ -1974,7 +1989,7 @@ AddCommandLineLanguage (
WNewList->Str = malloc ((strlen (Language) + 1) * sizeof (WCHAR));
if (WNewList->Str == NULL) {
free (WNewList);
Error (PROGRAM_NAME, 0, 0, NULL, "memory allocation failure");
Error (UTILITY_NAME, 0, 0, NULL, "memory allocation failure");
return STATUS_ERROR;
}
//
@ -1997,7 +2012,7 @@ AddCommandLineLanguage (
(From[LANGUAGE_IDENTIFIER_NAME_LEN] != L',')
)
) {
Error (PROGRAM_NAME, 0, 0, Language, "invalid format for language name on command line");
Error (UTILITY_NAME, 0, 0, Language, "invalid format for language name on command line");
FREE (WNewList->Str);
FREE (WNewList);
return STATUS_ERROR;
@ -2470,6 +2485,31 @@ SkipTo (
return FALSE;
}
static
void
Version (
VOID
)
/*++
Routine Description:
Displays the standard utility information to SDTOUT
Arguments:
None
Returns:
None
--*/
{
printf ("%s v%d.%d -Utility to process unicode strings file..\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION);
printf ("Copyright (c) 1999-2007 Intel Corporation. All rights reserved.\n");
}
static
void
Usage (
@ -2494,12 +2534,12 @@ Returns:
int Index;
static const char *Str[] = {
"",
PROGRAM_NAME " version "TOOL_VERSION " -- process unicode strings file",
" Usage: "PROGRAM_NAME " -parse {parse options} [FileNames]",
" "PROGRAM_NAME " -scan {scan options} [FileName]",
" "PROGRAM_NAME " -dump {dump options}",
" Usage: "UTILITY_NAME " -parse {parse options} [FileNames]",
" "UTILITY_NAME " -scan {scan options} [FileName]",
" "UTILITY_NAME " -dump {dump options}",
" Common options include:",
" -h or -? for this help information",
" -h,--help,-?,/? display help messages",
" -V,--version display version information",
" -db Database required name of output/input database file",
" -bn BaseName for use in the .h and .c output files",
" Default = "DEFAULT_BASE_NAME,
@ -2535,6 +2575,9 @@ Returns:
"",
NULL
};
Version();
for (Index = 0; Str[Index] != NULL; Index++) {
fprintf (stdout, "%s\n", Str[Index]);
}

View File

@ -1,6 +1,6 @@
/*++
Copyright (c) 2004, Intel Corporation
Copyright (c) 2004-2007, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -25,7 +25,10 @@ Abstract:
#define MALLOC(size) malloc (size)
#define FREE(ptr) free (ptr)
#define PROGRAM_NAME "StrGather"
#define UTILITY_NAME "StrGather"
#define UTILITY_MAJOR_VERSION 0
#define UTILITY_MINOR_VERSION 31
typedef CHAR16 WCHAR;