Add an optional value parameter to -p (lmod)

This commit is contained in:
anthony
2009-12-30 13:58:06 -07:00
parent d8070a10eb
commit 0bc88ce7f7

View File

@@ -132,6 +132,7 @@ main(int argc, char *argv[])
char filename[512]; char filename[512];
char cartname[32]; char cartname[32];
FILE *f; FILE *f;
int pad_value = 0;
ulOptions = 0; ulOptions = 0;
@@ -150,6 +151,13 @@ main(int argc, char *argv[])
break; break;
case 'p': case 'p':
ulOptions |= OPTF_PAD; ulOptions |= OPTF_PAD;
if (strlen(argv[argn] + 2) > 0 && strlen(argv[argn] + 2) <= 2) {
int result;
result = sscanf(argv[argn] + 2, "%x", &pad_value);
if (!((result == EOF) || (result == 1))) {
FatalError("Invalid argument for option 'p'");
}
}
break; break;
case 'r': case 'r':
ulOptions |= OPTF_TRUNCATE; ulOptions |= OPTF_TRUNCATE;
@@ -203,7 +211,7 @@ main(int argc, char *argv[])
padto *= 2; padto *= 2;
if (!(ulOptions & OPTF_QUIET)) { if (!(ulOptions & OPTF_QUIET)) {
printf("Padding to %ldkB:\n", padto / 1024); printf("Padding to %ldkB with pad value %#02X\n", padto / 1024, pad_value & 0xFF);
} }
/* /*
if( padto<=0x80000L ) if( padto<=0x80000L )
@@ -216,7 +224,7 @@ main(int argc, char *argv[])
while (size < padto) { while (size < padto) {
size += 1; size += 1;
if ((ulOptions & OPTF_DEBUG) == 0) if ((ulOptions & OPTF_DEBUG) == 0)
fputc(0, f); fputc(pad_value & 0xFF, f);
bytesadded += 1; bytesadded += 1;
} }
fflush(f); fflush(f);