diff --git a/src/file/fileindexerconfig.cpp b/src/file/fileindexerconfig.cpp --- a/src/file/fileindexerconfig.cpp +++ b/src/file/fileindexerconfig.cpp @@ -46,9 +46,13 @@ #endif } -QString stripTrailingSlash(const QString& path) +QString normalizeTrailingSlashes(QString&& path) { - return path.endsWith(QLatin1Char('/')) ? path.mid(0, path.length()-1) : path; + while (path.endsWith(QLatin1Char('/'))) { + path.chop(1); + } + path += QLatin1Char('/'); + return path; } } @@ -231,7 +235,7 @@ { const_cast(this)->buildFolderCache(); - const QString p = stripTrailingSlash(path); + const QString p = normalizeTrailingSlashes(QString(path)); // we traverse the list backwards to catch all exclude folders int i = m_folderCache.count(); @@ -260,8 +264,6 @@ bool included = false; for (int i = 0; i < folders.count(); ++i) { QString path = folders[i].first; - if (!path.endsWith(QLatin1Char('/'))) - path.append(QLatin1Char('/')); if (f != folders[i].first && f.startsWith(path)) { included = folders[i].second; @@ -275,9 +277,9 @@ */ void insertSortFolders(const QStringList& folders, bool include, QList >& result) { - Q_FOREACH (const QString& f, folders) { + Q_FOREACH (QString path, folders) { int pos = 0; - QString path = stripTrailingSlash(f); + path = normalizeTrailingSlashes(std::move(path)); while (result.count() > pos && result[pos].first < path) ++pos; diff --git a/src/tools/balooctl/configcommand.cpp b/src/tools/balooctl/configcommand.cpp --- a/src/tools/balooctl/configcommand.cpp +++ b/src/tools/balooctl/configcommand.cpp @@ -43,6 +43,7 @@ while (path.endsWith(QLatin1Char('/'))) { path.chop(1); } + path += QLatin1Char('/'); return path; } }