diff --git a/src/csync/csync_exclude.cpp b/src/csync/csync_exclude.cpp index 37ec120072..abf63547af 100644 --- a/src/csync/csync_exclude.cpp +++ b/src/csync/csync_exclude.cpp @@ -257,6 +257,11 @@ void ExcludedFiles::addManualExclude(const QString &expr, const QString &basePat { Q_ASSERT(basePath.endsWith(QLatin1Char('/'))); + const auto trimmedExpr = QStringView{expr}.trimmed(); + if (trimmedExpr == QLatin1String("*")) { + return; + } + auto key = basePath; _manualExcludes[key].append(expr); _allExcludes[key].append(expr); @@ -291,8 +296,12 @@ void ExcludedFiles::loadExcludeFilePatterns(const QString &basePath, QFile &file } if (line.isEmpty() || line.startsWith('#')) continue; + QString patternStr = QString::fromUtf8(line); + if (QStringView{patternStr}.trimmed() == QLatin1String("*")) + continue; csync_exclude_expand_escapes(line); - patterns.append(QString::fromUtf8(line)); + patternStr = QString::fromUtf8(line); + patterns.append(patternStr); } _allExcludes[basePath].append(patterns); diff --git a/test/testexcludedfiles.cpp b/test/testexcludedfiles.cpp index b6c85b466b..988b4f8f54 100644 --- a/test/testexcludedfiles.cpp +++ b/test/testexcludedfiles.cpp @@ -121,9 +121,9 @@ private slots: { setup(); excludedFiles->addManualExclude("*", "/tmp/check_csync1/"); - QCOMPARE(check_file_full("/tmp/check_csync1/foo"), CSYNC_FILE_EXCLUDE_LIST); + QCOMPARE(check_file_full("/tmp/check_csync1/foo"), CSYNC_NOT_EXCLUDED); QCOMPARE(check_file_full("/tmp/check_csync2/foo"), CSYNC_NOT_EXCLUDED); - QVERIFY(excludedFiles->_allExcludes[QStringLiteral("/tmp/check_csync1/")].contains("*")); + QVERIFY(!excludedFiles->_allExcludes[QStringLiteral("/tmp/check_csync1/")].contains("*")); excludedFiles->addManualExclude("foo"); QVERIFY(excludedFiles->_fullRegexFile[QStringLiteral("/")].pattern().contains("foo"));