Author: jghali
Date: Sun Jan 30 16:29:07 2022
New Revision: 24867

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

Modified:
    branches/Version15x/Scribus/scribus/util_file.cpp

Modified: branches/Version15x/Scribus/scribus/util_file.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24867&path=/branches/Version15x/Scribus/scribus/util_file.cpp
==============================================================================
--- branches/Version15x/Scribus/scribus/util_file.cpp   (original)
+++ branches/Version15x/Scribus/scribus/util_file.cpp   Sun Jan 30 16:29:07 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