[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra/calligra/2.9] /: Use QFile::rename because KDE::rename does not work across devices
From:       Jaroslaw Staniek <staniek () kde ! org>
Date:       2015-02-28 21:58:13
Message-ID: E1YRpOn-0002f3-Tb () scm ! kde ! org
[Download RAW message or body]

Git commit 3e5abfcffbb968ec9836d9b9eb418a6854352e4d by Jaroslaw Staniek.
Committed on 28/02/2015 at 21:32.
Pushed by staniek into branch 'calligra/2.9'.

Use QFile::rename because KDE::rename does not work across devices

KDE::rename fail when source and destination sit on different devices
(errno == EXDEV -- Cross-device link)

This fixes status bar online updates when e.g. /tmp is on different partition than /home.
The same fix has been made for compacting .kexi files.

M  +1    -1    kexi/main/startup/KexiWelcomeStatusBar.cpp
M  +1    -1    libs/db/drivers/sqlite/sqlitevacuum.cpp

http://commits.kde.org/calligra/3e5abfcffbb968ec9836d9b9eb418a6854352e4d

diff --git a/kexi/main/startup/KexiWelcomeStatusBar.cpp b/kexi/main/startup/KexiWelcomeStatusBar.cpp
index 545fcb8..1cc4a9b 100644
--- a/kexi/main/startup/KexiWelcomeStatusBar.cpp
+++ b/kexi/main/startup/KexiWelcomeStatusBar.cpp
@@ -248,7 +248,7 @@ void KexiWelcomeStatusBarGuiUpdater::filesCopyFinished(KJob* job)
     QString dir(KStandardDirs::locateLocal("data", basePath() + '/', true /*create*/));
     kDebug() << dir;
     foreach (const QString &fname, d->fileNamesToUpdate) {
-        if (0 != KDE::rename(d->tempDir + fname, dir + fname)) {
+        if (!QFile::rename(d->tempDir + fname, dir + fname)) {
             kWarning() << "cannot move" << (d->tempDir + fname) << "to" << (dir + fname);
         }
     }
diff --git a/libs/db/drivers/sqlite/sqlitevacuum.cpp b/libs/db/drivers/sqlite/sqlitevacuum.cpp
index f91e64d..b016033 100644
--- a/libs/db/drivers/sqlite/sqlitevacuum.cpp
+++ b/libs/db/drivers/sqlite/sqlitevacuum.cpp
@@ -198,7 +198,7 @@ void SQLiteVacuum::dumpProcessFinished(int exitCode, QProcess::ExitStatus exitSt
     QFileInfo fi(m_filePath);
     const uint origSize = fi.size();
 
-    if (0 != KDE::rename(m_tmpFilePath, fi.absoluteFilePath())) {
+    if (!QFile::rename(m_tmpFilePath, fi.absoluteFilePath())) {
         kWarning() << "Rename" << m_tmpFilePath << "to" << fi.absoluteFilePath() << "failed.";
         m_result = false;
     }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic