#include <config.h>
-#include <unistd.h>
-
#include "support/lyxlib.h"
-int lyx::support::chdir(std::string const & name)
+#include "support/filename.h"
+
+
+namespace lyx {
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifdef _WIN32
+# include <windows.h>
+#endif
+
+int support::chdir(FileName const & name)
{
-#ifndef __EMX__
- return ::chdir(name.c_str());
+#ifdef _WIN32
+ return SetCurrentDirectory(name.toFilesystemEncoding().c_str()) != 0 ? 0 : -1;
#else
- return ::_chdir2(name.c_str());
+ return ::chdir(name.toFilesystemEncoding().c_str());
#endif
}
+
+
+} // namespace lyx