[pim/libksieve] src/ksievecore/managescriptsjob: fix canStart() when newname == oldname

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 5cba568bf53867acae267b8f648433c17a54ac24 by Laurent Montel.
Committed on 14/08/2026 at 17:43.
Pushed by mlaurent into branch 'master'.

fix canStart() when newname == oldname

M  +4    -1    src/ksievecore/managescriptsjob/autotests/renamescriptjobtest.cpp
M  +2    -2    src/ksievecore/managescriptsjob/renamescriptjob.cpp

https://invent.kde.org/pim/libksieve/-/commit/5cba568bf53867acae267b8f648433c17a54ac24

diff --git a/src/ksievecore/managescriptsjob/autotests/renamescriptjobtest.cpp b/src/ksievecore/managescriptsjob/autotests/renamescriptjobtest.cpp
index bfd2c3f6..d5749366 100644
--- a/src/ksievecore/managescriptsjob/autotests/renamescriptjobtest.cpp
+++ b/src/ksievecore/managescriptsjob/autotests/renamescriptjobtest.cpp
@@ -19,7 +19,7 @@ RenameScriptJobTest::~RenameScriptJobTest() = default;
 
 void RenameScriptJobTest::canNotStartByDefault()
 {
-    KSieveCore::RenameScriptJob job;
+    const KSieveCore::RenameScriptJob job;
     QVERIFY(!job.canStart());
 }
 
@@ -32,6 +32,9 @@ void RenameScriptJobTest::shouldBeStart_data()
     QTest::newRow("hasNewName") << u"foo"_s << QUrl() << false;
     QTest::newRow("hasUrl") << QString() << QUrl(u"http://www.kde.org"_s) << false;
     QTest::newRow("canStart") << u"foo"_s << QUrl(u"http://www.kde.org"_s) << true;
+
+    QTest::newRow("samefilename") << u"foo1"_s << QUrl(u"http://www.kde.org/foo1"_s) << false;
+
     QTest::newRow("cannotStartHasEmptyName") << u" "_s << QUrl(u"http://www.kde.org"_s) << false;
     // QTest::newRow("cannotStartHasInvalidUrl") <<  u"foo"_s << QUrl(u" "_s) << false;
 }
diff --git a/src/ksievecore/managescriptsjob/renamescriptjob.cpp b/src/ksievecore/managescriptsjob/renamescriptjob.cpp
index 920e1a4c..6d3a4c69 100644
--- a/src/ksievecore/managescriptsjob/renamescriptjob.cpp
+++ b/src/ksievecore/managescriptsjob/renamescriptjob.cpp
@@ -44,7 +44,7 @@ void RenameScriptJob::setNewName(const QString &newName)
 
 bool RenameScriptJob::canStart() const
 {
-    return !d->mNewName.trimmed().isEmpty() && d->mOldUrl.isValid();
+    return !d->mNewName.trimmed().isEmpty() && d->mOldUrl.isValid() && (d->mNewName.trimmed() != d->mOldUrl.fileName());
 }
 
 void RenameScriptJob::start()
@@ -67,7 +67,7 @@ void RenameScriptJob::slotGetResult([[maybe_unused]] KManageSieve::SieveJob *job
     }
     QUrl u = d->mOldUrl;
     u = u.adjusted(QUrl::RemoveFilename);
-    u.setPath(u.path() + d->mNewName);
+    u.setPath(u.path() + d->mNewName.trimmed());
     d->mNewUrl = u;
     KManageSieve::SieveJob *putJob = KManageSieve::SieveJob::put(d->mNewUrl, script, d->mIsActive, d->mIsActive);
     connect(putJob, &KManageSieve::SieveJob::result, this, &RenameScriptJob::slotPutScript);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.