From 9a05e2b269fc787005bdfc4fdfa341c20b8b8aca Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 15 Mar 2013 11:51:35 +0100 Subject: [PATCH] Windows build fix. --- lib/base/registry.h | 10 ++-------- lib/config/configcompiler.h | 4 ++-- lib/python/pythonlanguage.cpp | 6 +++--- tools/.gitignore | 1 + tools/mkembedconfig.c | 13 ++++++++++++- 5 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 tools/.gitignore diff --git a/lib/base/registry.h b/lib/base/registry.h index 8bbf5882d..b32721f4d 100644 --- a/lib/base/registry.h +++ b/lib/base/registry.h @@ -91,20 +91,14 @@ public: return m_Items; /* Makes a copy of the map. */ } - static signals2::signal OnRegistered; - static signals2::signal OnUnregistered; + signals2::signal OnRegistered; + signals2::signal OnUnregistered; private: mutable boost::mutex m_Mutex; typename Registry::ItemMap m_Items; }; -template -signals2::signal Registry::OnRegistered; - -template -signals2::signal Registry::OnUnregistered; - } #endif /* REGISTRY_H */ diff --git a/lib/config/configcompiler.h b/lib/config/configcompiler.h index fcd809c2a..e38bc2737 100644 --- a/lib/config/configcompiler.h +++ b/lib/config/configcompiler.h @@ -89,8 +89,8 @@ public: } }; -#define REGISTER_CONFIG_FRAGMENT(name, fragment) \ - static icinga::RegisterConfigFragmentHelper g_RegisterCF_ ## type(name, fragment) +#define REGISTER_CONFIG_FRAGMENT(id, name, fragment) \ + static icinga::RegisterConfigFragmentHelper g_RegisterCF_ ## id(name, fragment) } diff --git a/lib/python/pythonlanguage.cpp b/lib/python/pythonlanguage.cpp index cff9dbbca..bb3c80c9d 100644 --- a/lib/python/pythonlanguage.cpp +++ b/lib/python/pythonlanguage.cpp @@ -60,12 +60,12 @@ void PythonLanguage::InitializeOnce(void) PyEval_ReleaseLock(); String name; - BOOST_FOREACH(tie(name, tuples::ignore), ScriptFunction::GetFunctions()) { + BOOST_FOREACH(tie(name, tuples::ignore), ScriptFunctionRegistry::GetInstance()->GetItems()) { RegisterNativeFunction(name); } - ScriptFunction::OnRegistered.connect(boost::bind(&PythonLanguage::RegisterNativeFunction, this, _1)); - ScriptFunction::OnUnregistered.connect(boost::bind(&PythonLanguage::UnregisterNativeFunction, this, _1)); + ScriptFunctionRegistry::GetInstance()->OnRegistered.connect(boost::bind(&PythonLanguage::RegisterNativeFunction, this, _1)); + ScriptFunctionRegistry::GetInstance()->OnUnregistered.connect(boost::bind(&PythonLanguage::UnregisterNativeFunction, this, _1)); m_Initialized = true; } diff --git a/tools/.gitignore b/tools/.gitignore new file mode 100644 index 000000000..5a41d4834 --- /dev/null +++ b/tools/.gitignore @@ -0,0 +1 @@ +mkembedconfig diff --git a/tools/mkembedconfig.c b/tools/mkembedconfig.c index 664885144..e4f43c022 100644 --- a/tools/mkembedconfig.c +++ b/tools/mkembedconfig.c @@ -19,11 +19,13 @@ #include #include +#include int main(int argc, char **argv) { int cols; FILE *infp, *outfp; + int i; if (argc < 3) { fprintf(stderr, "Syntax: %s \n", argv[0]); @@ -65,7 +67,16 @@ int main(int argc, char **argv) cols++; } - fprintf(outfp, "0\n};\n\nREGISTER_CONFIG_FRAGMENT(\"%s\", g_ConfigFragment);\n", argv[1]); + char id[32]; + strncpy(id, argv[1], sizeof(id)); + id[sizeof(id) - 1] = '\0'; + + for (i = 0; i < sizeof(id) - 1; i++) { + if ((id[i] < 'a' || id[i] > 'z') && (id[i] < 'A' || id[i] > 'Z')) + id[i] = '_'; + } + + fprintf(outfp, "0\n};\n\nREGISTER_CONFIG_FRAGMENT(%s, \"%s\", g_ConfigFragment);\n", id, argv[1]); fclose(outfp); fclose(infp); -- 2.40.0