mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1145882 - Part 2/2 - Add -v and --version. r=evilpie
This commit is contained in:
parent
fb2a57a16d
commit
433ad67fc4
@ -6245,7 +6245,7 @@ main(int argc, char **argv, char **envp)
|
||||
op.setArgCapturesRest("scriptArgs");
|
||||
|
||||
switch (op.parseArgs(argc, argv)) {
|
||||
case OptionParser::ParseHelp:
|
||||
case OptionParser::EarlyExit:
|
||||
return EXIT_SUCCESS;
|
||||
case OptionParser::ParseError:
|
||||
op.printHelp(argv[0]);
|
||||
|
@ -185,8 +185,8 @@ OptionParser::printHelp(const char *progname)
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
if (ver)
|
||||
printf("\nVersion: %s\n\n", ver);
|
||||
if (version)
|
||||
printf("\nVersion: %s\n\n", version);
|
||||
|
||||
if (!arguments.empty()) {
|
||||
printf("Arguments:\n");
|
||||
@ -250,7 +250,15 @@ OptionParser::printHelp(const char *progname)
|
||||
}
|
||||
}
|
||||
|
||||
return ParseHelp;
|
||||
return EarlyExit;
|
||||
}
|
||||
|
||||
OptionParser::Result
|
||||
OptionParser::printVersion()
|
||||
{
|
||||
MOZ_ASSERT(version);
|
||||
printf("%s\n", version);
|
||||
return EarlyExit;
|
||||
}
|
||||
|
||||
OptionParser::Result
|
||||
@ -284,6 +292,8 @@ OptionParser::handleOption(Option *opt, size_t argc, char **argv, size_t *i, boo
|
||||
{
|
||||
if (opt == &helpOption)
|
||||
return printHelp(argv[0]);
|
||||
if (opt == &versionOption)
|
||||
return printVersion();
|
||||
opt->asBoolOption()->value = true;
|
||||
return Okay;
|
||||
}
|
||||
@ -473,6 +483,9 @@ OptionParser::findOption(char shortflag)
|
||||
return *it;
|
||||
}
|
||||
|
||||
if (versionOption.shortflag == shortflag)
|
||||
return &versionOption;
|
||||
|
||||
return helpOption.shortflag == shortflag ? &helpOption : nullptr;
|
||||
}
|
||||
|
||||
@ -503,6 +516,9 @@ OptionParser::findOption(const char *longflag)
|
||||
no_match:;
|
||||
}
|
||||
|
||||
if (strcmp(versionOption.longflag, longflag) == 0)
|
||||
return &versionOption;
|
||||
|
||||
return strcmp(helpOption.longflag, longflag) ? nullptr : &helpOption;
|
||||
}
|
||||
|
||||
|
@ -193,7 +193,8 @@ class OptionParser
|
||||
Okay = 0,
|
||||
Fail, /* As in, allocation fail. */
|
||||
ParseError, /* Successfully parsed but with an error. */
|
||||
ParseHelp /* Aborted on help flag. */
|
||||
EarlyExit /* Successfully parsed but exits the program,
|
||||
* for example with --help and --version. */
|
||||
};
|
||||
|
||||
private:
|
||||
@ -204,8 +205,9 @@ class OptionParser
|
||||
Options options;
|
||||
Options arguments;
|
||||
BoolOption helpOption;
|
||||
BoolOption versionOption;
|
||||
const char *usage;
|
||||
const char *ver;
|
||||
const char *version;
|
||||
const char *descr;
|
||||
size_t descrWidth;
|
||||
size_t helpWidth;
|
||||
@ -234,7 +236,8 @@ class OptionParser
|
||||
public:
|
||||
explicit OptionParser(const char *usage)
|
||||
: helpOption('h', "help", "Display help information"),
|
||||
usage(usage), ver(nullptr), descr(nullptr), descrWidth(80), helpWidth(80),
|
||||
versionOption('v', "version", "Display version information and exit"),
|
||||
usage(usage), version(nullptr), descr(nullptr), descrWidth(80), helpWidth(80),
|
||||
nextArgument(0), restArgument(-1)
|
||||
{}
|
||||
|
||||
@ -242,10 +245,11 @@ class OptionParser
|
||||
|
||||
Result parseArgs(int argc, char **argv);
|
||||
Result printHelp(const char *progname);
|
||||
Result printVersion();
|
||||
|
||||
/* Metadata */
|
||||
|
||||
void setVersion(const char *version) { ver = version; }
|
||||
void setVersion(const char *v) { version = v; }
|
||||
void setHelpWidth(size_t width) { helpWidth = width; }
|
||||
void setDescriptionWidth(size_t width) { descrWidth = width; }
|
||||
void setDescription(const char *description) { descr = description; }
|
||||
|
Loading…
Reference in New Issue
Block a user