diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/kconf_update/README.kconf_update | 4 | ||||
-rw-r--r-- | src/kconf_update/kconf_update.cpp | 19 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/kconf_update/README.kconf_update b/src/kconf_update/README.kconf_update index 281fb9e5..72509286 100644 --- a/src/kconf_update/README.kconf_update +++ b/src/kconf_update/README.kconf_update @@ -51,6 +51,9 @@ Commas (,) are used to seperate fields and may not occur as part of any field and all of the keywords are case-sensitive, i.e. you cannot say "key" instead of "Key" for example. +Starting from KDE Frameworks 5 make sure to put Version=5 before the first "Id=" otherwise the upd file +will be skipped and the config file will not be updated. + For the rest the file is parsed and executed sequentially from top to bottom. Each line can contain one entry. The following entries are recognized: @@ -161,6 +164,7 @@ Example update file =================== # This is comment +Version=5 Id=kde2.2 File=kioslaverc,kio_httprc Group=Proxy Settings diff --git a/src/kconf_update/kconf_update.cpp b/src/kconf_update/kconf_update.cpp index 255a382e..309bc3c2 100644 --- a/src/kconf_update/kconf_update.cpp +++ b/src/kconf_update/kconf_update.cpp @@ -29,6 +29,7 @@ #include <QCoreApplication> #include <QtCore/QDir> #include <QProcess> +#include <QDebug> #include <kconfig.h> #include <kconfiggroup.h> @@ -239,13 +240,21 @@ bool KonfUpdate::checkFile(const QString &filename) int lineCount = 0; resetOptions(); QString id; + bool foundVersion = false; while (!ts.atEnd()) { const QString line = ts.readLine().trimmed(); - lineCount++; + if (line.startsWith("Version=5")) { + foundVersion = true; + } + ++lineCount; if (line.isEmpty() || (line[0] == '#')) { continue; } if (line.startsWith("Id=")) { + if (!foundVersion) { + qDebug() << QStringLiteral("Missing \"Version=5\", file \'%1\' will be skipped.").arg(filename); + return true; + } id = m_currentFilename + ':' + line.mid(3); } else if (line.startsWith("File=")) { checkGotFile(line.mid(5), id); @@ -315,13 +324,21 @@ bool KonfUpdate::updateFile(const QString &filename) ts.setCodec(QTextCodec::codecForName("ISO-8859-1")); m_lineCount = 0; resetOptions(); + bool foundVersion = false; while (!ts.atEnd()) { m_line = ts.readLine().trimmed(); + if (m_line.startsWith("Version=5")) { + foundVersion = true; + } m_lineCount++; if (m_line.isEmpty() || (m_line[0] == QLatin1Char('#'))) { continue; } if (m_line.startsWith(QLatin1String("Id="))) { + if (!foundVersion) { + qDebug() << QStringLiteral("Missing \"Version=5\", file \'%1\' will be skipped.").arg(filename); + break; + } gotId(m_line.mid(3)); } else if (m_skip) { continue; |