#include "base/exception.hpp"
#include <fstream>
+#ifdef _WIN32
+#include "Shlwapi.h"
+#endif /* _WIN32 */
+
using namespace icinga;
std::vector<String> ConfigCompiler::m_IncludeSearchDirs;
{
String upath;
- if (search || (path.GetLength() > 0 && path[0] == '/'))
+ if (search || (IsAbsolutePath(path)))
upath = path;
else
upath = relativeBase + "/" + path;
{
String ppath;
- if (path.GetLength() > 0 && path[0] == '/')
+ if (IsAbsolutePath(path))
ppath = path;
else
ppath = relativeBase + "/" + path;
String ppath;
- if (path.GetLength() > 0 && path[0] == '/')
+ if (IsAbsolutePath(path))
ppath = path;
else
ppath = relativeBase + "/" + path;
String ppath;
String newRelativeBase = relativeBase;
- if (path.GetLength() > 0 && path[0] == '/')
+ if (IsAbsolutePath(path))
ppath = path;
else {
ppath = relativeBase + "/" + path;
return !empty;
}
-
static bool HasZoneConfigAuthority(const String& zoneName);
+ static inline bool IsAbsolutePath(const String& path) {
+#ifndef _WIN32
+ return (path.GetLength() > 0 && path[0] == '/');
+#else
+ return !PathIsRelative(path.CStr());
+#endif /* _WIN32 */
+ }
+
private:
boost::promise<boost::shared_ptr<Expression> > m_Promise;