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

View File

@ -53,6 +53,9 @@ private:
bool checkUnexpectedArgs(); bool checkUnexpectedArgs();
static ArgsBase& argsBase() { return *m_argsBase; } 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: private:
App* m_app; App* m_app;