mirror of https://github.com/mgba-emu/mgba.git
All: Add --help flag for command line programs
This commit is contained in:
parent
a651a91aa1
commit
6f24064f4f
1
CHANGES
1
CHANGES
|
@ -63,6 +63,7 @@ Misc:
|
||||||
- GBA Thread: Add functionality for running callbacks on the GBA thread
|
- GBA Thread: Add functionality for running callbacks on the GBA thread
|
||||||
- Qt: Fast forward (held) option moved from Other to Emulation menu
|
- Qt: Fast forward (held) option moved from Other to Emulation menu
|
||||||
- GBA Memory: Soft-crash if jumping past the end of a ROM
|
- GBA Memory: Soft-crash if jumping past the end of a ROM
|
||||||
|
- All: Add --help flag for command line programs
|
||||||
|
|
||||||
0.2.0: (2015-04-03)
|
0.2.0: (2015-04-03)
|
||||||
Features:
|
Features:
|
||||||
|
|
|
@ -43,6 +43,7 @@ static const struct option _options[] = {
|
||||||
#ifdef USE_GDB_STUB
|
#ifdef USE_GDB_STUB
|
||||||
{ "gdb", no_argument, 0, 'g' },
|
{ "gdb", no_argument, 0, 'g' },
|
||||||
#endif
|
#endif
|
||||||
|
{ "help", no_argument, 0, 'h' },
|
||||||
{ "movie", required_argument, 0, 'v' },
|
{ "movie", required_argument, 0, 'v' },
|
||||||
{ "patch", required_argument, 0, 'p' },
|
{ "patch", required_argument, 0, 'p' },
|
||||||
{ 0, 0, 0, 0 }
|
{ 0, 0, 0, 0 }
|
||||||
|
@ -53,7 +54,7 @@ bool _parseGraphicsArg(struct SubParser* parser, struct GBAConfig* config, int o
|
||||||
bool parseArguments(struct GBAArguments* opts, struct GBAConfig* config, int argc, char* const* argv, struct SubParser* subparser) {
|
bool parseArguments(struct GBAArguments* opts, struct GBAConfig* config, int argc, char* const* argv, struct SubParser* subparser) {
|
||||||
int ch;
|
int ch;
|
||||||
char options[64] =
|
char options[64] =
|
||||||
"b:c:Dl:p:s:v:"
|
"b:c:Dhl:p:s:v:"
|
||||||
#ifdef USE_CLI_DEBUGGER
|
#ifdef USE_CLI_DEBUGGER
|
||||||
"d"
|
"d"
|
||||||
#endif
|
#endif
|
||||||
|
@ -93,6 +94,9 @@ bool parseArguments(struct GBAArguments* opts, struct GBAConfig* config, int arg
|
||||||
opts->debuggerType = DEBUGGER_GDB;
|
opts->debuggerType = DEBUGGER_GDB;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
case 'h':
|
||||||
|
opts->showHelp = true;
|
||||||
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
GBAConfigSetDefaultValue(config, "logLevel", optarg);
|
GBAConfigSetDefaultValue(config, "logLevel", optarg);
|
||||||
break;
|
break;
|
||||||
|
@ -117,7 +121,7 @@ bool parseArguments(struct GBAArguments* opts, struct GBAConfig* config, int arg
|
||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
if (argc != 1) {
|
if (argc != 1) {
|
||||||
return false;
|
return opts->showHelp;
|
||||||
}
|
}
|
||||||
opts->fname = strdup(argv[0]);
|
opts->fname = strdup(argv[0]);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -30,6 +30,7 @@ struct GBAArguments {
|
||||||
|
|
||||||
enum DebuggerType debuggerType;
|
enum DebuggerType debuggerType;
|
||||||
bool debugAtStart;
|
bool debugAtStart;
|
||||||
|
bool showHelp;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SubParser {
|
struct SubParser {
|
||||||
|
|
|
@ -62,12 +62,13 @@ int main(int argc, char** argv) {
|
||||||
GBAConfigLoadDefaults(&config, &opts);
|
GBAConfigLoadDefaults(&config, &opts);
|
||||||
|
|
||||||
struct GBAArguments args;
|
struct GBAArguments args;
|
||||||
if (!parseArguments(&args, &config, argc, argv, &subparser)) {
|
bool parsed = parseArguments(&args, &config, argc, argv, &subparser);
|
||||||
|
if (!parsed || args.showHelp) {
|
||||||
usage(argv[0], PERF_USAGE);
|
usage(argv[0], PERF_USAGE);
|
||||||
freeArguments(&args);
|
freeArguments(&args);
|
||||||
GBAConfigFreeOpts(&opts);
|
GBAConfigFreeOpts(&opts);
|
||||||
GBAConfigDeinit(&config);
|
GBAConfigDeinit(&config);
|
||||||
return 1;
|
return !parsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderer.outputBuffer = malloc(256 * 256 * 4);
|
renderer.outputBuffer = malloc(256 * 256 * 4);
|
||||||
|
|
|
@ -59,12 +59,13 @@ int main(int argc, char** argv) {
|
||||||
struct SubParser subparser;
|
struct SubParser subparser;
|
||||||
|
|
||||||
initParserForGraphics(&subparser, &graphicsOpts);
|
initParserForGraphics(&subparser, &graphicsOpts);
|
||||||
if (!parseArguments(&args, &config, argc, argv, &subparser)) {
|
bool parsed = parseArguments(&args, &config, argc, argv, &subparser);
|
||||||
|
if (!parsed || args.showHelp) {
|
||||||
usage(argv[0], subparser.usage);
|
usage(argv[0], subparser.usage);
|
||||||
freeArguments(&args);
|
freeArguments(&args);
|
||||||
GBAConfigFreeOpts(&opts);
|
GBAConfigFreeOpts(&opts);
|
||||||
GBAConfigDeinit(&config);
|
GBAConfigDeinit(&config);
|
||||||
return 1;
|
return !parsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
GBAConfigMap(&config, &opts);
|
GBAConfigMap(&config, &opts);
|
||||||
|
|
Loading…
Reference in New Issue