barrier: split the platform-specific argument parsing

Instead of one function with several ifdefs, split into several functions
to make the code more readable.

No functional changes.
This commit is contained in:
Peter Hutterer 2020-12-08 13:46:56 +10:00
parent b0c0b42bc2
commit c32ca2195d
2 changed files with 34 additions and 10 deletions

View File

@ -133,10 +133,10 @@ ArgParser::parseClientArgs(ClientArgs& args, int argc, const char* const* argv)
return true;
}
bool
ArgParser::parsePlatformArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i)
{
#if WINAPI_MSWINDOWS
bool
ArgParser::parseMSWindowsArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i)
{
if (isArg(i, argc, argv, NULL, "--service")) {
LOG((CLOG_WARN "obsolete argument --service, use barrierd instead."));
argsBase.m_shouldExit = true;
@ -153,25 +153,46 @@ ArgParser::parsePlatformArg(ArgsBase& argsBase, const int& argc, const char* con
}
return true;
#elif WINAPI_XWINDOWS
}
#endif
#if WINAPI_CARBON
bool
ArgParser::parseCarbonArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i)
{
// no options for carbon
return false;
}
#endif
#if WINAPI_XWINDOWS
bool
ArgParser::parseXWindowsArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i)
{
if (isArg(i, argc, argv, "-display", "--display", 1)) {
// use alternative display
argsBase.m_display = argv[++i];
}
else if (isArg(i, argc, argv, NULL, "--no-xinitthreads")) {
argsBase.m_disableXInitThreads = true;
}
else {
} else {
// option not supported here
return false;
}
return true;
}
#endif
bool
ArgParser::parsePlatformArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i)
{
#if WINAPI_MSWINDOWS
return parseMSWindowsArg(argsBase, argc, argv, i);
#elif WINAPI_CARBON
// no options for carbon
return false;
return parseCarbonArg(argsBase, argc, argv, i);
#elif WINAPI_XWINDOWS
return parseXWindowsArg(argsBase, argc, argv, i);
#endif
}

View File

@ -53,6 +53,9 @@ private:
bool checkUnexpectedArgs();
static ArgsBase& argsBase() { return *m_argsBase; }
bool parseMSWindowsArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i);
bool parseCarbonArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i);
bool parseXWindowsArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i);
private:
App* m_app;