[plain text]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *gToolName;
int main(int argc, char **argv)
{
char varName[256], inFileName[256], outFileName[256], *tmpStr;
FILE *inFile, *outFile;
long tc, cnt;
gToolName = *argv;
if (argc != 3) {
fprintf(stderr, "Usage: %s var-name file.fcode\n", gToolName);
return -1;
}
strncpy(varName, argv[1], 255);
strncpy(inFileName, argv[2], 255);
strncpy(outFileName, argv[2], 255);
tmpStr = outFileName;
while ((*tmpStr != '.') && (*tmpStr != '\0')) tmpStr++;
if ((*tmpStr == '\0') || strncmp(tmpStr, ".fcode", 6)) {
fprintf(stderr, "Usage: %s var-name file.fcode\n", gToolName);
return -1;
}
tmpStr[1] = 'c';
tmpStr[2] = '\0';
inFile = fopen(inFileName, "rb");
if (inFile == NULL) {
fprintf(stderr, "%s: failed to open %s\n", gToolName, inFileName);
return -1;
}
outFile = fopen(outFileName, "w");
if (outFile == NULL) {
fprintf(stderr, "%s: failed to open %s\n", gToolName, outFileName);
return -1;
}
fprintf(outFile, "const char %s[] = {", varName);
cnt = 0;
while ((tc = fgetc(inFile)) != EOF) {
if (cnt == 0) fputc('\n', outFile);
fprintf(outFile, "0x%02x,", (unsigned char)tc);
if (cnt++ == 0x20) cnt = 0;
}
fprintf(outFile, "\n};");
fclose(inFile);
fclose(outFile);
return 0;
}
Generated by GNU enscript 1.6.4.