mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
finish fixing segfault (probably caused by argv[] craziness)
this diff brought to you by lmod
This commit is contained in:
@@ -129,39 +129,44 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
ulOptions = 0;
|
ulOptions = 0;
|
||||||
|
|
||||||
if ((--argc) == 0)
|
if (argc == 1)
|
||||||
PrintUsage();
|
PrintUsage();
|
||||||
|
|
||||||
while (*argv[argn] == '-') {
|
while (argn < argc) {
|
||||||
argc -= 1;
|
if(argv[argn][0] == '-') {
|
||||||
switch (argv[argn++][1]) {
|
switch (argv[argn][1]) {
|
||||||
case '?':
|
case '?':
|
||||||
case 'h':
|
case 'h':
|
||||||
PrintUsage();
|
PrintUsage();
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
ulOptions |= OPTF_DEBUG;
|
ulOptions |= OPTF_DEBUG;
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
ulOptions |= OPTF_PAD;
|
ulOptions |= OPTF_PAD;
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
ulOptions |= OPTF_TRUNCATE;
|
ulOptions |= OPTF_TRUNCATE;
|
||||||
break;
|
break;
|
||||||
case 'v':
|
case 'v':
|
||||||
ulOptions |= OPTF_VALIDATE;
|
ulOptions |= OPTF_VALIDATE;
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
strncpy(cartname, argv[argn - 1] + 2, 16);
|
strncpy(cartname, argv[argn] + 2, 16);
|
||||||
ulOptions |= OPTF_TITLE;
|
ulOptions |= OPTF_TITLE;
|
||||||
break;
|
break;
|
||||||
case 'q':
|
case 'q':
|
||||||
ulOptions|=OPTF_QUIET;
|
ulOptions|=OPTF_QUIET;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
argn++;
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(filename, argv[argn++]);
|
if(argv[argc - 1][0] == '-')
|
||||||
|
PrintUsage();
|
||||||
|
|
||||||
|
strcpy(filename, argv[argc - 1]);
|
||||||
|
|
||||||
if (!FileExists(filename))
|
if (!FileExists(filename))
|
||||||
strcat(filename, ".gb");
|
strcat(filename, ".gb");
|
||||||
|
|||||||
Reference in New Issue
Block a user