diff --git a/src/ConfigurationFile.cpp b/src/ConfigurationFile.cpp index 17a980c926e205d8240b616ac046f629121fbbfa..76d2644868bf327c56d5d767070cbf8d329f5281 100644 --- a/src/ConfigurationFile.cpp +++ b/src/ConfigurationFile.cpp @@ -21,6 +21,7 @@ #include "XmlConfig.h" #include #include +#include using namespace PacketLib; @@ -45,12 +46,16 @@ bool ConfigurationFile::open(char** parameters) throw(PacketExceptionIO*) if(std::string(parameters[0]).find(".xml") != std::string::npos) { + std::string confdir(parameters[0]); + confdir.erase(std::find(confdir.rbegin(), confdir.rend(), '/').base(), confdir.end()); + chdir(confdir.c_str()); XmlConfig config; - std::string streamfile = config.convert(parameters[0]); + std::string streamfile = confdir + config.convert(parameters[0]); int size = streamfile.size(); parameters[0] = new char[size]; memcpy(parameters[0], streamfile.c_str(), size); parameters[0][size] = 0; + chdir(currentpwd); } ret = InputTextFile::open(parameters);