From 37b8f332605b343ac7b009283122f3c8fd2540d9 Mon Sep 17 00:00:00 2001 From: Vadim Kurland Date: Mon, 18 Apr 2011 22:31:30 -0700 Subject: [PATCH] need to remove .bak file before renaming data file in fwbedit, otherwise operation fails on windows --- src/fwbedit/fwbedit.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/fwbedit/fwbedit.cpp b/src/fwbedit/fwbedit.cpp index 4e185c412..8392e5d03 100644 --- a/src/fwbedit/fwbedit.cpp +++ b/src/fwbedit/fwbedit.cpp @@ -107,6 +107,7 @@ extern int errno; #include "UserWorkflow.h" #include +#include using namespace libfwbuilder; @@ -864,13 +865,20 @@ int main(int argc, char * const *argv) } } - string bakfile = filename+".bak"; - if (rename(filename.c_str(),bakfile.c_str()) == 0) + QString filename_qstr = QString::fromUtf8(filename.c_str()); + QString bakfile = filename_qstr + ".bak"; + + QFile bakf(bakfile); + if (bakf.exists()) bakf.remove(); + + QFile dataf(filename_qstr); + if (dataf.rename(bakfile)) + { objdb->saveFile(filename); - else + } else { cout << "Could not rename data file, abroting operation" << endl; - cout << strerror(errno) << endl; + cout << dataf.errorString().toStdString() << endl; exit(-1); }