mirror of https://github.com/acidanthera/audk.git
186 lines
3.4 KiB
C
186 lines
3.4 KiB
C
/*
|
|
|
|
Copyright (c) 1999-2006 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
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
*/
|
|
|
|
// GC_TODO: fix comment to start with /*++
|
|
#include "stdio.h"
|
|
#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
|
|
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
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
GC_TODO: Add function description
|
|
|
|
Arguments:
|
|
|
|
|
|
Returns:
|
|
|
|
GC_TODO: add return values
|
|
|
|
--*/
|
|
{
|
|
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
|
|
main (
|
|
int argc,
|
|
char*argv[]
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
GC_TODO: Add function description
|
|
|
|
Arguments:
|
|
|
|
argc - GC_TODO: add argument description
|
|
] - GC_TODO: add argument description
|
|
|
|
Returns:
|
|
|
|
GC_TODO: add return values
|
|
|
|
--*/
|
|
{
|
|
FILE *In;
|
|
|
|
FILE *Out1;
|
|
|
|
FILE *Out2;
|
|
char OutName1[512];
|
|
char OutName2[512];
|
|
unsigned long Index;
|
|
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) {
|
|
Usage ();
|
|
return -1;
|
|
}
|
|
|
|
In = fopen (argv[1], "rb");
|
|
if (In == NULL) {
|
|
printf ("Unable to open file \"%s\"\n", argv[1]);
|
|
return -1;
|
|
}
|
|
|
|
strncpy (OutName1, argv[1], 510);
|
|
strncpy (OutName2, argv[1], 510);
|
|
strcat (OutName1, "1");
|
|
strcat (OutName2, "2");
|
|
|
|
Out1 = fopen (OutName1, "wb");
|
|
if (Out1 == NULL) {
|
|
printf ("Unable to open file \"%s\"\n", OutName1);
|
|
return -1;
|
|
}
|
|
|
|
Out2 = fopen (OutName2, "wb");
|
|
if (Out2 == NULL) {
|
|
printf ("Unable to open file \"%s\"\n", OutName2);
|
|
return -1;
|
|
}
|
|
|
|
splitpoint = atoi (argv[2]);
|
|
|
|
for (Index = 0; Index < splitpoint; Index++) {
|
|
CharC = (char) fgetc (In);
|
|
if (feof (In)) {
|
|
break;
|
|
}
|
|
|
|
fputc (CharC, Out1);
|
|
}
|
|
|
|
for (;;) {
|
|
CharC = (char) fgetc (In);
|
|
if (feof (In)) {
|
|
break;
|
|
}
|
|
|
|
fputc (CharC, Out2);
|
|
}
|
|
|
|
fclose (In);
|
|
fclose (Out1);
|
|
fclose (Out2);
|
|
|
|
return 0;
|
|
}
|