Author: jghali
Date: Sun Jan 30 16:28:42 2022
New Revision: 24866

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24866
Log:
Try to avoid better copying a file over itself

Modified:
    trunk/Scribus/scribus/util_file.cpp

Modified: trunk/Scribus/scribus/util_file.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24866&path=/trunk/Scribus/scribus/util_file.cpp
==============================================================================
--- trunk/Scribus/scribus/util_file.cpp (original)
+++ trunk/Scribus/scribus/util_file.cpp Sun Jan 30 16:28:42 2022
@@ -60,8 +60,15 @@
        bool success = true;
        if ((source.isEmpty()) || (target.isEmpty()))
                return false;
-       if (source == target)
-               return false;
+
+       // Make sure to compare source and target paths
+       // by using same directory separators. Source and target
+       // arguments might use native and Qt's separators for eg
+       QString qtSource = QDir::fromNativeSeparators(source);
+       QString qtTarget = QDir::fromNativeSeparators(target);
+       if (qtSource == qtTarget)
+               return false;
+
        QFile s(source);
        if (!s.exists())
                return false;
@@ -84,8 +91,15 @@
        bool success = false;
        if ((source.isEmpty()) || (target.isEmpty()))
                return false;
-       if (source == target)
-               return false;
+
+       // Make sure to compare source and target paths
+       // by using same directory separators. Source and target
+       // arguments might use native and Qt's separators for eg
+       QString qtSource = QDir::fromNativeSeparators(source);
+       QString qtTarget = QDir::fromNativeSeparators(target);
+       if (qtSource == qtTarget)
+               return false;
+
        QFile srcFile(source);
        QString tempFileName;
        QTemporaryFile* tempFile = new QTemporaryFile(target + "_XXXXXX");
@@ -178,8 +192,15 @@
 {
        if (source.isEmpty() || target.isEmpty())
                return false;
-       if (source == target)
-               return false;
+
+       // Make sure to compare source and target paths
+       // by using same directory separators. Source and target
+       // arguments might use native and Qt's separators for eg
+       QString qtSource = QDir::fromNativeSeparators(source);
+       QString qtTarget = QDir::fromNativeSeparators(target);
+       if (qtSource == qtTarget)
+               return false;
+
        bool moveSucceed = copyFile(source, target);
        if (moveSucceed)
                moveSucceed &= QFile::remove(source);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to