Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-kconfig for openSUSE:Factory 
checked in at 2025-12-16 15:50:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kconfig (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-kconfig.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kconfig"

Tue Dec 16 15:50:33 2025 rev:23 rq:1322700 version:6.21.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kconfig/kf6-kconfig.changes  2025-11-17 
12:15:04.472759937 +0100
+++ /work/SRC/openSUSE:Factory/.kf6-kconfig.new.1939/kf6-kconfig.changes        
2025-12-16 15:55:19.828515863 +0100
@@ -1,0 +2,18 @@
+Fri Dec 12 20:17:21 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 6.21.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.21.0
+- Changes since 6.20.0:
+  * Update dependency version to 6.21.0
+  * Fix documentation of KSharedConfig::openStateConfig
+  * kconfig_target_kcfg_file docs: add "since" note
+  * kconfig_target_kcfg_file: avoid recreating same kcfgc file each cmake run
+  * KF6ConfigMacros: No longer explicitly include CMakeParseArguments
+  * kconfig_benchmark: add testParsing benchmark
+  * KconfigIni: stream parse ini files (kde#481702)
+  * Update version to 6.21.0
+  * [kwindowconfig] Remove weird note from documentation
+
+-------------------------------------------------------------------

Old:
----
  kconfig-6.20.0.tar.xz
  kconfig-6.20.0.tar.xz.sig

New:
----
  kconfig-6.21.0.tar.xz
  kconfig-6.21.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kf6-kconfig.spec ++++++
--- /var/tmp/diff_new_pack.y9ToaD/_old  2025-12-16 15:55:20.948563292 +0100
+++ /var/tmp/diff_new_pack.y9ToaD/_new  2025-12-16 15:55:20.948563292 +0100
@@ -19,11 +19,11 @@
 %define qt6_version 6.8.0
 
 %define rname kconfig
-# Full KF6 version (e.g. 6.20.0)
+# Full KF6 version (e.g. 6.21.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-kconfig
-Version:        6.20.0
+Version:        6.21.0
 Release:        0
 Summary:        Advanced configuration system
 License:        LGPL-2.1-or-later AND GPL-2.0-or-later


++++++ kconfig-6.20.0.tar.xz -> kconfig-6.21.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/CMakeLists.txt 
new/kconfig-6.21.0/CMakeLists.txt
--- old/kconfig-6.20.0/CMakeLists.txt   2025-11-07 19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/CMakeLists.txt   2025-12-05 14:19:46.000000000 +0100
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "6.20.0") # handled by release scripts
+set(KF_VERSION "6.21.0") # handled by release scripts
 project(KConfig VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 6.20.0  NO_MODULE)
+find_package(ECM 6.21.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/KF6ConfigMacros.cmake 
new/kconfig-6.21.0/KF6ConfigMacros.cmake
--- old/kconfig-6.20.0/KF6ConfigMacros.cmake    2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/KF6ConfigMacros.cmake    2025-12-05 14:19:46.000000000 
+0100
@@ -6,7 +6,7 @@
 #    relative path to the file.
 #    <target> must not be an alias.
 #
-#  kconfig_target_kcfg_file(<target> FILE <kcfg file> CLASS_NAME <classname> 
...)
+#  kconfig_target_kcfg_file(<target> FILE <kcfg file> CLASS_NAME <classname> 
...)  (since 6.2)
 #    Add a kcfg file to a target without having a kcfgc file. The kcfgc file 
will
 #    be generated from the function arguments. Arguments correspond to the
 #    similarly names fields from the kcfgc file.
@@ -52,8 +52,6 @@
 #
 # SPDX-License-Identifier: BSD-3-Clause
 
-include(CMakeParseArguments)
-
 function(KCONFIG_ADD_KCFG_FILES _target_or_source_var)
     set(options GENERATE_MOC USE_RELATIVE_PATH)
     cmake_parse_arguments(ARG "${options}" "" "" ${ARGN})
@@ -256,7 +254,15 @@
 
     get_filename_component(_basename ${_filepath} NAME_WE)
     set(_output "${CMAKE_CURRENT_BINARY_DIR}/${_basename}.kcfgc")
-    file(WRITE ${_output} "${_content}")
+    # avoid rebuilding due to new timestamp if there was no change on 
generation,
+    # once CMake min. 3.18 is required, replace with
+    # file(CONFIGURE OUTPUT "${_output}" CONTENT "${_content}" @ONLY)
+    set(_output_work "${_output}.work")
+    file(WRITE ${_output_work} "${_content}")
+    execute_process(
+        COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_output_work}" 
"${_output}"
+    )
+    file(REMOVE "${_output_work}")
 
     configure_file(${_filepath} "${CMAKE_CURRENT_BINARY_DIR}/${_filename}" 
COPYONLY)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/autotests/kconfig_benchmark.cpp 
new/kconfig-6.21.0/autotests/kconfig_benchmark.cpp
--- old/kconfig-6.20.0/autotests/kconfig_benchmark.cpp  2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/autotests/kconfig_benchmark.cpp  2025-12-05 
14:19:46.000000000 +0100
@@ -23,6 +23,7 @@
 private Q_SLOTS:
     void initTestCase();
 
+    void testParsing();
     void testHasKey();
     void testReadEntry();
     void testKConfigGroupKeyList();
@@ -39,6 +40,39 @@
     cg.writeEntry("UsedEntry", s_string_entry1);
 }
 
+void KConfigBenchmark::testParsing()
+{
+    QString fileName =
+        
QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + 
QLatin1Char('/') + s_test_subdir + QLatin1String("pathtest.ini");
+    qputenv("WITHSLASH", "/a/");
+    {
+        QFile file(fileName);
+        QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Text));
+        QTextStream out(&file);
+        out << "[Test Group]\n"
+            << "homePath=$HOME/foo\n"
+            << "homePath2=file://$HOME/foo\n"
+            << "withSlash=$WITHSLASH/foo\n"
+            << "withSlash2=$WITHSLASH\n"
+            << "withBraces[$e]=file://${HOME}/foo\n"
+            << "URL[$e]=file://${HOME}/foo\n"
+            << "hostname[$e]=$(hostname)\n"
+            << "escapes=aaa,bb/b,ccc\\,ccc\n"
+            << "\n\n"
+            << "noeol=foo" // no EOL
+            ;
+    }
+
+    QStringList groups;
+    QBENCHMARK {
+        KConfig sc(fileName, KConfig::SimpleConfig);
+        groups = sc.groupList();
+    }
+
+    const auto expected = QStringList{QStringLiteral("Test Group")};
+    QCOMPARE(groups, expected);
+}
+
 void KConfigBenchmark::testHasKey()
 {
     bool hasUsedKey = false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/af/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/af/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/af/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/af/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -22,7 +22,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ar/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ar/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ar/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ar/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr "رجاءً راسل مدير النظام."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ast/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ast/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ast/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ast/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -18,7 +18,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/az/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/az/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/az/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/az/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -18,7 +18,7 @@
 msgid "Please contact your system administrator."
 msgstr "Sistem inzibatçınız ilə əlaqə saxlayın."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/be/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/be/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/be/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/be/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -29,7 +29,7 @@
 msgid "Please contact your system administrator."
 msgstr "Звярніцеся да сістэмнага адміністратара."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/be@latin/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/be@latin/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/be@latin/kconfig6_qt.po     2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/be@latin/kconfig6_qt.po     2025-12-05 
14:19:46.000000000 +0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/bg/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/bg/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/bg/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/bg/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Моля, свържете се със системния си администратор."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/bn/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/bn/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/bn/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/bn/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -21,7 +21,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/bn_IN/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/bn_IN/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/bn_IN/kconfig6_qt.po        2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/bn_IN/kconfig6_qt.po        2025-12-05 
14:19:46.000000000 +0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/br/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/br/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/br/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/br/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -20,7 +20,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/bs/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/bs/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/bs/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/bs/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -18,7 +18,7 @@
 msgid "Please contact your system administrator."
 msgstr "Obratite se sistem-administratoru."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ca/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ca/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ca/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ca/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -12,14 +12,14 @@
 "Project-Id-Version: kconfig\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2014-04-11 02:17+0000\n"
-"PO-Revision-Date: 2025-01-29 10:29+0100\n"
+"PO-Revision-Date: 2025-12-02 09:54+0100\n"
 "Last-Translator: Josep M. Ferrer <[email protected]>\n"
 "Language-Team: Catalan <[email protected]>\n"
 "Language: ca\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 22.12.3\n"
+"X-Generator: Lokalize 25.04.0\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Accelerator-Marker: &\n"
 "X-Qt-Contexts: true\n"
@@ -29,7 +29,7 @@
 msgid "Please contact your system administrator."
 msgstr "Si us plau, contacteu amb l'administrador del sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
@@ -532,7 +532,7 @@
 #: gui/kstandardactions_p.h:138
 msgctxt "KStandardActions|"
 msgid "&Donate"
-msgstr "&Donatius"
+msgstr "&Donació"
 
 #: gui/kstandardactions_p.h:139
 msgctxt "KStandardActions|"
@@ -937,7 +937,7 @@
 #: gui/kstandardshortcut.cpp:438
 msgctxt "KStandardShortcut|@action"
 msgid "Donate"
-msgstr "Donatius"
+msgstr "Donació"
 
 #: gui/kstandardshortcut.cpp:441
 msgctxt "KStandardShortcut|@action"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ca@valencia/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ca@valencia/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ca@valencia/kconfig6_qt.po  2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/ca@valencia/kconfig6_qt.po  2025-12-05 
14:19:46.000000000 +0100
@@ -12,14 +12,14 @@
 "Project-Id-Version: kconfig\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2014-04-11 02:17+0000\n"
-"PO-Revision-Date: 2025-01-29 10:29+0100\n"
+"PO-Revision-Date: 2025-12-02 09:54+0100\n"
 "Last-Translator: Josep M. Ferrer <[email protected]>\n"
 "Language-Team: Catalan <[email protected]>\n"
 "Language: ca@valencia\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 22.12.3\n"
+"X-Generator: Lokalize 25.04.0\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Accelerator-Marker: &\n"
 "X-Qt-Contexts: true\n"
@@ -29,7 +29,7 @@
 msgid "Please contact your system administrator."
 msgstr "Contacteu amb l'administrador del sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
@@ -532,7 +532,7 @@
 #: gui/kstandardactions_p.h:138
 msgctxt "KStandardActions|"
 msgid "&Donate"
-msgstr "&Donatius"
+msgstr "&Donació"
 
 #: gui/kstandardactions_p.h:139
 msgctxt "KStandardActions|"
@@ -937,7 +937,7 @@
 #: gui/kstandardshortcut.cpp:438
 msgctxt "KStandardShortcut|@action"
 msgid "Donate"
-msgstr "Donatius"
+msgstr "Donació"
 
 #: gui/kstandardshortcut.cpp:441
 msgctxt "KStandardShortcut|@action"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/cs/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/cs/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/cs/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/cs/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -6,7 +6,7 @@
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-04-11 02:17+0000\n"
 "PO-Revision-Date: 2024-05-27 15:24+0200\n"
-"Last-Translator: Vit Pelcak <[email protected]>\n"
+"Last-Translator: Vit Pelcak <[email protected]>\n"
 "Language-Team: Czech <[email protected]>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr "Prosím kontaktujte svého správce systému."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/csb/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/csb/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/csb/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/csb/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/cy/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/cy/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/cy/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/cy/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/da/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/da/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/da/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/da/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -27,7 +27,7 @@
 msgid "Please contact your system administrator."
 msgstr "Kontakt venligst din systemadministrator."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/de/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/de/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/de/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/de/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "Bitte nehmen Sie Kontakt zu Ihrer Systemverwaltung auf."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/el/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/el/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/el/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/el/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -29,7 +29,7 @@
 msgid "Please contact your system administrator."
 msgstr "Επικοινωνήστε με τον διαχειριστή του συστήματός σας."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/en_GB/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/en_GB/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/en_GB/kconfig6_qt.po        2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/en_GB/kconfig6_qt.po        2025-12-05 
14:19:46.000000000 +0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr "Please contact your system administrator."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/eo/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/eo/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/eo/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/eo/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -28,7 +28,7 @@
 msgid "Please contact your system administrator."
 msgstr "Bonvolu kontakti vian sisteman administranton."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/es/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/es/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/es/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/es/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -28,7 +28,7 @@
 msgid "Please contact your system administrator."
 msgstr "Póngase en contacto con el administrador de su sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/et/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/et/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/et/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/et/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Palun võta ühendust süsteemiadministraatoriga."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/eu/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/eu/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/eu/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/eu/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "Mesedez, Jarri zure sistemaren administratzailearekin harremanean."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/fa/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/fa/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/fa/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/fa/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/fi/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/fi/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/fi/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/fi/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -22,7 +22,7 @@
 msgid "Please contact your system administrator."
 msgstr "Ota yhteyttä järjestelmän ylläpitäjääsi."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/fr/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/fr/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/fr/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/fr/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -38,7 +38,7 @@
 msgid "Please contact your system administrator."
 msgstr "Veuillez contacter l'administrateur du système."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/fy/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/fy/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/fy/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/fy/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -22,7 +22,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ga/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ga/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ga/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ga/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/gd/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/gd/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/gd/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/gd/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -20,7 +20,7 @@
 msgid "Please contact your system administrator."
 msgstr "Cuir fios gu rianaire an t-siostaim agad."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/gl/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/gl/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/gl/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/gl/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -28,7 +28,7 @@
 msgid "Please contact your system administrator."
 msgstr "Contacte co equipo administrador do sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/gu/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/gu/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/gu/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/gu/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/he/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/he/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/he/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/he/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -28,7 +28,7 @@
 msgid "Please contact your system administrator."
 msgstr "נא ליצור קשר עם הנהלת המערכת שלך."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/hi/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/hi/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/hi/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/hi/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -27,7 +27,7 @@
 msgid "Please contact your system administrator."
 msgstr "कृपया अपने तंत्र व्यवस्थापक से संपर्क करें। "
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/hne/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/hne/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/hne/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/hne/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/hr/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/hr/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/hr/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/hr/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/hsb/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/hsb/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/hsb/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/hsb/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/hu/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/hu/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/hu/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/hu/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Lépjen kapcsolatba a rendszergazdával."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ia/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ia/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ia/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ia/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr "Pro favor, tu continge tu administrator de systema"
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/id/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/id/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/id/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/id/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -27,7 +27,7 @@
 msgid "Please contact your system administrator."
 msgstr "Silakan kontak pengurus sistem anda."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/is/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/is/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/is/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/is/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "Hafðu samband við kerfisstjóra."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/it/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/it/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/it/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/it/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "Contatta il tuo amministratore di sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ja/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ja/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ja/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ja/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -22,7 +22,7 @@
 msgid "Please contact your system administrator."
 msgstr "システム管理者に連絡してください。"
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ka/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ka/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ka/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ka/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -18,7 +18,7 @@
 msgid "Please contact your system administrator."
 msgstr "დაუკავშირდით თქვენს სისტემურ ადმინისტრატორს."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/kab/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/kab/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/kab/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/kab/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr "Ttxil-k·m nermes anedbal-ik·im n unagraw."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/kk/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/kk/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/kk/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/kk/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -22,7 +22,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/km/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/km/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/km/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/km/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/kn/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/kn/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/kn/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/kn/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ko/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ko/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ko/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ko/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "시스템 관리자에게 연락하십시오."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ku/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ku/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ku/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ku/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/lb/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/lb/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/lb/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/lb/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -21,7 +21,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/lt/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/lt/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/lt/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/lt/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Susisiekite su sistemos administratoriumi."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/lv/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/lv/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/lv/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/lv/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -27,7 +27,7 @@
 msgid "Please contact your system administrator."
 msgstr "Lūdzu, sazinieties ar savu sistēmas administratoru."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/mai/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/mai/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/mai/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/mai/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/mk/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/mk/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/mk/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/mk/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ml/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ml/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ml/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ml/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/mr/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/mr/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/mr/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/mr/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ms/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ms/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ms/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ms/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/nb/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/nb/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/nb/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/nb/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -27,7 +27,7 @@
 msgid "Please contact your system administrator."
 msgstr "Kontakt systemadministratoren din."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/nds/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/nds/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/nds/kconfig6_qt.po  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/nds/kconfig6_qt.po  2025-12-05 14:19:46.000000000 
+0100
@@ -20,7 +20,7 @@
 msgid "Please contact your system administrator."
 msgstr "Snack bitte Dien Systeempleger an."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ne/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ne/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ne/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ne/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/nl/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/nl/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/nl/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/nl/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -18,7 +18,7 @@
 msgid "Please contact your system administrator."
 msgstr "Neem contact op met uw systeembeheerder."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/nn/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/nn/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/nn/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/nn/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "Ta kontakt med systemansvarleg."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/or/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/or/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/or/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/or/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/pa/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/pa/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/pa/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/pa/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr "ਆਪਣੇ ਸਿਸਟਮ ਐਡਮਿਨਸਟੇਟਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ ਜੀ।"
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/pl/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/pl/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/pl/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/pl/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Proszę skontaktować się z administratorem systemu."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/pt/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/pt/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/pt/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/pt/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -20,7 +20,7 @@
 msgid "Please contact your system administrator."
 msgstr "Contacte por favor o seu administrador do sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/pt_BR/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/pt_BR/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/pt_BR/kconfig6_qt.po        2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/pt_BR/kconfig6_qt.po        2025-12-05 
14:19:46.000000000 +0100
@@ -30,7 +30,7 @@
 msgid "Please contact your system administrator."
 msgstr "Contate o administrador do seu sistema."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ro/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ro/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ro/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ro/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Contactați administratorul de sistem."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ru/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ru/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ru/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ru/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -32,7 +32,7 @@
 msgid "Please contact your system administrator."
 msgstr "Обратитесь к системному администратору."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sa/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sa/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sa/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/sa/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -18,7 +18,7 @@
 msgid "Please contact your system administrator."
 msgstr "कृपया स्वस्य प्रणालीप्रशासकेन सह सम्पर्कं कुर्वन्तु।"
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/se/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/se/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/se/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/se/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/si/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/si/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/si/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/si/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sk/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sk/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sk/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/sk/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr "Prosím, kontaktujte svojho správcu systému."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sl/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sl/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sl/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/sl/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -29,7 +29,7 @@
 msgid "Please contact your system administrator."
 msgstr "Obvestite vašega sistemskega skrbnika."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sq/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sq/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sq/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/sq/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sr/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sr/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sr/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/sr/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Обратите се систем-администратору."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sr@ijekavian/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sr@ijekavian/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sr@ijekavian/kconfig6_qt.po 2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/sr@ijekavian/kconfig6_qt.po 2025-12-05 
14:19:46.000000000 +0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Обратите се систем-администратору."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sr@ijekavianlatin/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sr@ijekavianlatin/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sr@ijekavianlatin/kconfig6_qt.po    2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/sr@ijekavianlatin/kconfig6_qt.po    2025-12-05 
14:19:46.000000000 +0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Obratite se sistem-administratoru."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sr@latin/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sr@latin/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sr@latin/kconfig6_qt.po     2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/sr@latin/kconfig6_qt.po     2025-12-05 
14:19:46.000000000 +0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Obratite se sistem-administratoru."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/sv/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/sv/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/sv/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/sv/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr " Kontakta systemadministratören."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ta/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ta/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ta/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ta/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "உங்கள் கணினி நிர்வாகியை தொடர்பு கொள்ளுங்கள்."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/te/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/te/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/te/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/te/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -27,7 +27,7 @@
 msgid "Please contact your system administrator."
 msgstr "దయచేసి మీ సిస్టమ్ నిర్వాహకుడిని సంప్రదించండి."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/tg/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/tg/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/tg/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/tg/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -24,7 +24,7 @@
 msgid "Please contact your system administrator."
 msgstr "Лутфан, бо маъмури низоми худ дар тамос шавед."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/th/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/th/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/th/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/th/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/tr/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/tr/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/tr/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/tr/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -28,7 +28,7 @@
 msgid "Please contact your system administrator."
 msgstr "Lütfen sistem yöneticinize başvurun."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/ug/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/ug/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/ug/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/ug/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/uk/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/uk/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/uk/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/uk/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr "Будь ласка, зверніться до системного адміністратора."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/uz/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/uz/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/uz/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/uz/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/uz@cyrillic/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/uz@cyrillic/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/uz@cyrillic/kconfig6_qt.po  2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/uz@cyrillic/kconfig6_qt.po  2025-12-05 
14:19:46.000000000 +0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/vi/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/vi/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/vi/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/vi/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr "Vui lòng liên hệ với quản trị viên hệ thống của bạn."
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/wa/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/wa/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/wa/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/wa/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -23,7 +23,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/xh/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/xh/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/xh/kconfig6_qt.po   2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/poqm/xh/kconfig6_qt.po   2025-12-05 14:19:46.000000000 
+0100
@@ -25,7 +25,7 @@
 msgid "Please contact your system administrator."
 msgstr ""
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/zh_CN/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/zh_CN/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/zh_CN/kconfig6_qt.po        2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/zh_CN/kconfig6_qt.po        2025-12-05 
14:19:46.000000000 +0100
@@ -20,7 +20,7 @@
 msgid "Please contact your system administrator."
 msgstr "请联系您的系统管理员。"
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/poqm/zh_TW/kconfig6_qt.po 
new/kconfig-6.21.0/poqm/zh_TW/kconfig6_qt.po
--- old/kconfig-6.20.0/poqm/zh_TW/kconfig6_qt.po        2025-11-07 
19:59:12.000000000 +0100
+++ new/kconfig-6.21.0/poqm/zh_TW/kconfig6_qt.po        2025-12-05 
14:19:46.000000000 +0100
@@ -26,7 +26,7 @@
 msgid "Please contact your system administrator."
 msgstr "請聯絡您的系統管理員。"
 
-#: core/kconfigini.cpp:560
+#: core/kconfigini.cpp:596
 #, qt-format
 msgctxt "KConfigIniBackend|"
 msgid "Configuration file \"%1\" not writable.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/src/core/kconfigini.cpp 
new/kconfig-6.21.0/src/core/kconfigini.cpp
--- old/kconfig-6.20.0/src/core/kconfigini.cpp  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/src/core/kconfigini.cpp  2025-12-05 14:19:46.000000000 
+0100
@@ -32,16 +32,6 @@
 
 KCONFIGCORE_EXPORT bool kde_kiosk_exception = false; // flag to disable kiosk 
restrictions
 
-static QByteArray lookup(QByteArrayView fragment, QHash<QByteArrayView, 
QByteArray> *cache)
-{
-    auto it = cache->constFind(fragment);
-    if (it != cache->constEnd()) {
-        return it.value();
-    }
-
-    return cache->insert(fragment, fragment.toByteArray()).value();
-}
-
 QString KConfigIniBackend::warningProlog(const QFile &file, int line)
 {
     // %2 then %1 i.e. int before QString, so that the QString is last
@@ -71,17 +61,17 @@
         return file.exists() ? ParseOpenError : ParseOk;
     }
 
+    if (file.size() == 0) {
+        return ParseOk;
+    }
+
     QList<QString> immutableGroups;
 
     bool fileOptionImmutable = false;
     bool groupOptionImmutable = false;
     bool groupSkip = false;
 
-    int lineNo = 0;
-    // on systems using \r\n as end of line, \r will be taken care of by
-    // trim() below
-    QByteArray buffer = file.readAll();
-    QByteArrayView contents(buffer.data(), buffer.size());
+    uint lineNo = 0;
 
     const int langIdx = currentLocale.indexOf('_');
     const QByteArray currentLanguage = langIdx >= 0 ? 
currentLocale.left(langIdx) : currentLocale;
@@ -90,23 +80,59 @@
     bool bDefault = options & ParseDefaults;
     bool allowExecutableValues = options & ParseExpansions;
 
-    // Reduce memory overhead by making use of implicit sharing
-    // This assumes that config files contain only a small amount of
-    // different fragments which are repeated often.
-    // This is often the case, especially sub groups will all have
-    // the same list of keys and similar values as well.
-    QHash<QByteArrayView, QByteArray> cache;
-    cache.reserve(4096);
-
-    while (!contents.isEmpty()) {
-        QByteArrayView line;
-        if (const auto idx = contents.indexOf('\n'); idx < 0) {
-            line = contents;
-            contents = {};
+    const uint MAX_ERRORS = 100;
+    uint errorCount = 0;
+
+    QDataStream stream(&file);
+    const qint64 readBufferSize = std::min(file.size(), qint64(128 * 1024) /* 
128 KB */);
+    const uint maximumSizeWithoutNewLine = 1.5 * 1024 * 1024; // 1.5 MB
+    bool newLineFound = false;
+
+    QByteArray readBuffer(readBufferSize, Qt::Uninitialized);
+    QByteArray buffer;
+    QByteArray leftOverBuffer;
+
+    while ((!stream.atEnd() || !leftOverBuffer.isEmpty()) && errorCount < 
MAX_ERRORS) {
+        buffer = leftOverBuffer;
+
+        int n = buffer.indexOf('\n');
+        if (n != -1) {
+            leftOverBuffer = buffer.sliced(n + 1);
+            buffer = buffer.sliced(0, n);
+
+        } else if (!stream.atEnd()) {
+            while (!stream.atEnd()) {
+                int len = stream.readRawData(readBuffer.data(), 
readBufferSize);
+                if (len == -1) {
+                    qCWarning(KCONFIG_CORE_LOG) << "Couldn't read." << 
filePath() << "after line" << lineNo;
+                    return ParseOpenError;
+                }
+
+                QByteArrayView readBufferView(readBuffer.data(), len);
+                auto n = readBufferView.indexOf('\n');
+                if (n != -1) {
+                    // found '\n' at position n
+                    buffer += readBufferView.sliced(0, n);
+                    leftOverBuffer = readBufferView.sliced(n+1).toByteArray();
+                    newLineFound = true;
+                    break;
+                } else {
+                    // stream is atEnd or the \n was at the edge of the 
readBuffer
+                    buffer += readBufferView;
+                    leftOverBuffer = {};
+
+                    if (!newLineFound && buffer.length() > 
maximumSizeWithoutNewLine) {
+                        qCWarning(KCONFIG_CORE_LOG) << "Couldn't find a single 
line in " << filePath() << " after reading" << (maximumSizeWithoutNewLine)
+                                                    << "bytes.";
+                        return ParseOpenError;
+                    }
+                }
+            }
         } else {
-            line = contents.left(idx);
-            contents = contents.mid(idx + 1);
+            leftOverBuffer = {};
         }
+
+        QByteArrayView line = buffer;
         line = line.trimmed();
         ++lineNo;
 
@@ -198,6 +224,7 @@
             while ((start = aKey.lastIndexOf('[')) >= 0) {
                 int end = aKey.indexOf(']', start);
                 if (end < 0) {
+                    errorCount++;
                     qCWarning(KCONFIG_CORE_LOG) << warningProlog(file, lineNo) 
<< "Invalid entry (missing ']')";
                     goto next_line;
                 } else if (end > start + 1 && aKey.at(start + 1) == '$') { // 
found option(s)
@@ -227,6 +254,7 @@
                     }
                 } else { // found a locale
                     if (!locale.isNull()) {
+                        errorCount++;
                         qCWarning(KCONFIG_CORE_LOG) << warningProlog(file, 
lineNo) << "Invalid entry (second locale!?)";
                         goto next_line;
                     }
@@ -236,6 +264,7 @@
                 aKey.truncate(start);
             }
             if (eqpos < 0) { // Do this here after [$d] was checked
+                errorCount++;
                 qCWarning(KCONFIG_CORE_LOG) << warningProlog(file, lineNo) << 
"Invalid entry (missing '=')";
                 continue;
             }
@@ -265,21 +294,28 @@
                     entryOptions |= KEntryMap::EntryLocalizedCountry;
                 }
             }
-            printableToString(line, file, lineNo);
+            if (!printableToString(line, file, lineNo)) {
+                errorCount++;
+            }
             if (entryOptions & KEntryMap::EntryRawKey) {
                 QByteArray rawKey;
                 rawKey.reserve(aKey.length() + locale.length() + 2);
                 rawKey.append(aKey);
                 rawKey.append('[').append(locale).append(']');
-                entryMap.setEntry(currentGroup, rawKey, lookup(line, &cache), 
entryOptions);
+                entryMap.setEntry(currentGroup, rawKey, line.toByteArray(), 
entryOptions);
             } else {
-                entryMap.setEntry(currentGroup, lookup(aKey, &cache), 
lookup(line, &cache), entryOptions);
+                entryMap.setEntry(currentGroup, aKey.toByteArray(), 
line.toByteArray(), entryOptions);
             }
         }
     next_line:
         continue;
     }
 
+    if (errorCount > MAX_ERRORS) {
+        qCWarning(KCONFIG_CORE_LOG) << "Too many errors in file" << filePath();
+        return ParseOpenError;
+    }
+
     // now make sure immutable groups are marked immutable
     for (const QString &group : std::as_const(immutableGroups)) {
         entryMap.setEntry(group, QByteArray(), QByteArray(), 
KEntryMap::EntryImmutable);
@@ -877,10 +913,10 @@
     return char(ret);
 }
 
-void KConfigIniBackend::printableToString(QByteArrayView &aString, const QFile 
&file, int line)
+bool KConfigIniBackend::printableToString(QByteArrayView &aString, const QFile 
&file, int line)
 {
     if (aString.isEmpty() || aString.indexOf('\\') == -1) {
-        return;
+        return true;
     }
     aString = aString.trimmed();
     int l = aString.size();
@@ -938,10 +974,12 @@
             default:
                 *r = '\\';
                 qCWarning(KCONFIG_CORE_LOG).noquote() << warningProlog(file, 
line) << QStringLiteral("Invalid escape sequence: «\\%1»").arg(str[i]);
+                return false;
             }
         }
     }
     aString.truncate(r - aString.constData());
+    return true;
 }
 
 QString KConfigIniBackend::filePath() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/src/core/kconfigini_p.h 
new/kconfig-6.21.0/src/core/kconfigini_p.h
--- old/kconfig-6.20.0/src/core/kconfigini_p.h  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/src/core/kconfigini_p.h  2025-12-05 14:19:46.000000000 
+0100
@@ -87,7 +87,7 @@
     };
     // Warning: this modifies data in-place. Other QByteArrayView objects 
referencing the same buffer
     // fragment will get their data modified too.
-    static void printableToString(QByteArrayView &aString, const QFile &file, 
int line);
+    static bool printableToString(QByteArrayView &aString, const QFile &file, 
int line);
     static QByteArray stringToPrintable(const QByteArray &aString, StringType 
type);
     static char charFromHex(const char *str, const QFile &file, int line);
     static QString warningProlog(const QFile &file, int line);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/src/core/ksharedconfig.h 
new/kconfig-6.21.0/src/core/ksharedconfig.h
--- old/kconfig-6.20.0/src/core/ksharedconfig.h 2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/src/core/ksharedconfig.h 2025-12-05 14:19:46.000000000 
+0100
@@ -75,8 +75,8 @@
      *
      * If an absolute path is specified for \a fileName, that file will be used
      * as the store for the configuration settings. If a non-absolute path
-     * is provided, the file will be looked for in the standard data directory
-     * (QStandardPaths::AppDataLocation). If no path is provided, a default
+     * is provided, the file will be looked for in the standard state directory
+     * (QStandardPaths::GenericStateLocation). If no path is provided, a 
default
      * configuration file will be used based on the name of the main
      * application component.
      *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-6.20.0/src/gui/kwindowconfig.h 
new/kconfig-6.21.0/src/gui/kwindowconfig.h
--- old/kconfig-6.20.0/src/gui/kwindowconfig.h  2025-11-07 19:59:12.000000000 
+0100
+++ new/kconfig-6.21.0/src/gui/kwindowconfig.h  2025-12-05 14:19:46.000000000 
+0100
@@ -26,8 +26,6 @@
  * Saves the window's size dependent on the screen dimension either to the
  * global or application config file.
  *
- * \note the group must be set before calling
- *
  * \a window The window to save size.
  *
  * \a config The config group to read from.
@@ -64,8 +62,6 @@
  *   resize(windowHandle()->size()); // workaround for QTBUG-40584
  * \endcode
  *
- * \note the group must be set before calling
- *
  * \a window The window to restore size.
  *
  * \a config The config group to read from.
@@ -79,8 +75,6 @@
  * This function has no effect on Wayland, where the compositor is responsible
  * for window positioning.
  *
- * \note the group must be set before calling
- *
  * \a window The window whose position to save.
  *
  * \a config The config group to read from.
@@ -107,8 +101,6 @@
  * This function has no effect on Wayland, where the compositor is responsible
  * for window positioning.
  *
- * \note the group must be set before calling
- *
  * \a window The window whose position to restore.
  *
  * \a config The config group to read from.
@@ -122,8 +114,6 @@
  * This function has no effect on Wayland, where the compositor is responsible
  * for window positioning.
  *
- * \note the group must be set before calling
- *
  * \a window The window whose position to restore.
  *
  * \a screen Screen on which window should be placed.

Reply via email to