Fix file saving on Windows.
Originally committed to SVN as r4333.
This commit is contained in:
parent
cd8305987b
commit
d3c33d5e7c
3 changed files with 6 additions and 6 deletions
|
@ -10,7 +10,9 @@
|
|||
#include <time.h>
|
||||
|
||||
// Windows C
|
||||
#ifdef _MSC_VER
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <io.h>
|
||||
#endif
|
||||
|
||||
|
|
|
@ -60,7 +60,6 @@ Save::Save(const std::string& file): file_name(file) {
|
|||
// util::Rename will find it, and to let users know something went
|
||||
// wrong by leaving a 0 byte file.
|
||||
std::ofstream fp_touch(file.c_str());
|
||||
fp_touch.close();
|
||||
}
|
||||
|
||||
/// @todo This is a temp hack, proper implementation needs to come after
|
||||
|
@ -75,9 +74,8 @@ Save::Save(const std::string& file): file_name(file) {
|
|||
Save::~Save() {
|
||||
|
||||
const std::string tmp(file_name + "_tmp");
|
||||
util::Rename(tmp, file_name);
|
||||
delete fp;
|
||||
fp = 0; // to avoid any silly errors.
|
||||
util::Rename(tmp, file_name);
|
||||
}
|
||||
|
||||
std::ofstream& Save::Get() {
|
||||
|
|
|
@ -34,7 +34,7 @@ namespace agi {
|
|||
|
||||
|
||||
const std::string DirName(const std::string& path) {
|
||||
if (path.find('/') == std::string::npos) {
|
||||
if (path.find('/') == std::string::npos) {
|
||||
const std::string cwd(".");
|
||||
return cwd;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ void Rename(const std::string& from, const std::string& to) {
|
|||
acs::CheckDirWrite(DirName(to));
|
||||
}
|
||||
|
||||
rename(from.c_str(), to.c_str());
|
||||
MoveFileExA(from.c_str(), to.c_str(), MOVEFILE_REPLACE_EXISTING);
|
||||
}
|
||||
|
||||
} // namespace io
|
||||
|
|
Loading…
Reference in a new issue