+/**
+ * \file rename.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
#include <config.h>
+#include "support/lyxlib.h"
+#include "support/filename.h"
+
#include <cstdio>
-#include "support/lyxlib.h"
-bool lyx::rename(char const * from, char const * to)
-{
- return ::rename(from, to) != -1;
-}
+namespace lyx {
+namespace support {
-bool lyx::rename(string const & from, string const & to)
+
+using std::string;
+
+
+bool rename(FileName const & from, FileName const & to)
{
- return ::rename(from.c_str(), to.c_str()) != -1;
+ if (::rename(from.toFilesystemEncoding().c_str(), to.toFilesystemEncoding().c_str()) == -1)
+ if (copy(from, to)) {
+ unlink(from);
+ return true;
+ } else
+ return false;
+ return true;
}
+
+
+} // namespace support
+} // namespace lyx