loolwsd/LOOLBroker.cpp | 32 ++++++++------------------------ loolwsd/LOOLKit.cpp | 21 +++++---------------- loolwsd/Makefile.am | 6 ++++-- 3 files changed, 17 insertions(+), 42 deletions(-)
New commits: commit d5d779408875fa4ade641b5cd5d35dff82ae71bf Author: Michael Meeks <michael.me...@collabora.com> Date: Mon Aug 17 17:20:27 2015 +0100 Cleanup arg. parsing, kill code duplication. diff --git a/loolwsd/LOOLBroker.cpp b/loolwsd/LOOLBroker.cpp index 809bc9a..616b95a 100644 --- a/loolwsd/LOOLBroker.cpp +++ b/loolwsd/LOOLBroker.cpp @@ -38,7 +38,7 @@ // we can avoid execve and share lots of memory here. We // can't link to a non-PIC translation unit though, so // include to share. -#define LOOKIT_NO_MAIN 1 +#define LOOLKIT_NO_MAIN 1 #include "LOOLKit.cpp" #define INTERVAL_PROBES 10 @@ -219,16 +219,6 @@ namespace static std::map<Poco::Process::PID, Poco::UInt64> _childProcesses; - -static int prefixcmp(const char *str, const char *prefix) -{ - for (; ; str++, prefix++) - if (!*prefix) - return 0; - else if (*str != *prefix) - return (unsigned char)*prefix - (unsigned char)*str; -} - /// Initializes LibreOfficeKit for cross-fork re-use. static bool globalPreinit() { @@ -276,46 +266,40 @@ int main(int argc, char** argv) int _numPreSpawnedChildren = 0; Poco::SharedMemory _sharedForkChild("loolwsd", sizeof(bool), Poco::SharedMemory::AM_WRITE); - while (argc > 0) + for (int i = 0; i < argc; ++i) { - char *cmd = argv[0]; + char *cmd = argv[i]; char *eq = NULL; - if (strstr(cmd, "loolbroker")) - { - } - if (!prefixcmp(cmd, "--losubpath=")) + if (strstr(cmd, "--losubpath=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) loSubPath = std::string(++eq); } - else if (!prefixcmp(cmd, "--systemplate=")) + else if (strstr(cmd, "--systemplate=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) sysTemplate = std::string(++eq); } - else if (!prefixcmp(cmd, "--lotemplate=")) + else if (strstr(cmd, "--lotemplate=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) loTemplate = std::string(++eq); } - else if (!prefixcmp(cmd, "--childroot=")) + else if (strstr(cmd, "--childroot=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) childRoot = std::string(++eq); } - else if (!prefixcmp(cmd, "--numprespawns=")) + else if (strstr(cmd, "--numprespawns=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) _numPreSpawnedChildren = std::stoi(std::string(++eq)); } - - argv++; - argc--; } if (loSubPath.empty()) diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp index 8315440..a4c9a0c 100644 --- a/loolwsd/LOOLKit.cpp +++ b/loolwsd/LOOLKit.cpp @@ -80,15 +80,6 @@ private: tsqueue<std::string>& _queue; }; -static int prefixcmp(const char *str, const char *prefix) -{ - for (; ; str++, prefix++) - if (!*prefix) - return 0; - else if (*str != *prefix) - return (unsigned char)*prefix - (unsigned char)*str; -} - const int MASTER_PORT_NUMBER = 9981; const std::string CHILD_URI = "/loolws/child/"; @@ -184,7 +175,7 @@ void run_lok_main(const std::string &loSubPath, Poco::UInt64 _childId) std::cout << Util::logPrefix() << "loolkit finished OK!" << std::endl; } -#ifdef LOOLKIT_NO_MAIN +#ifndef LOOLKIT_NO_MAIN /// Simple argument parsing wrapper / helper for the above. int main(int argc, char** argv) @@ -192,24 +183,22 @@ int main(int argc, char** argv) std::string loSubPath; Poco::UInt64 _childId = 0; - while (argc > 0) + for (int i = 1; i < argc; ++i) { - char *cmd = argv[0]; + char *cmd = argv[i]; char *eq = NULL; - if (!prefixcmp(cmd, "--losubpath=")) + if (strstr(cmd, "--losubpath=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) loSubPath = std::string(++eq); } - else if (!prefixcmp(cmd, "--child=")) + else if (strstr(cmd, "--child=") == cmd) { eq = strchrnul(cmd, '='); if (*eq) _childId = std::stoll(std::string(++eq)); } - argv++; - argc--; } if (loSubPath.empty()) diff --git a/loolwsd/Makefile.am b/loolwsd/Makefile.am index e15962a..d17ba39 100644 --- a/loolwsd/Makefile.am +++ b/loolwsd/Makefile.am @@ -4,9 +4,11 @@ dist_bin_SCRIPTS = loolwsd-systemplate-setup loolwsd_SOURCES = LOOLWSD.cpp LOOLSession.cpp MasterProcessSession.cpp TileCache.cpp Util.cpp LOOLProtocol.cpp -loolkit_SOURCES = LOOLKit.cpp LOOLSession.cpp ChildProcessSession.cpp Util.cpp LOOLProtocol.cpp +broker_shared_sources = ChildProcessSession.cpp Util.cpp LOOLProtocol.cpp LOOLSession.cpp -loolbroker_SOURCES = LOOLBroker.cpp Util.cpp +loolkit_SOURCES = LOOLKit.cpp $(broker_shared_sources) + +loolbroker_SOURCES = LOOLBroker.cpp $(broker_shared_sources) loolmap_SOURCES = loolmap.c _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits