fix(ignore-list): skip star pattern

Signed-off-by: Rello <Rello@users.noreply.github.com>
This commit is contained in:
Rello
2025-07-03 14:12:51 +02:00
committed by Jyrki Gadinger
parent d5c7d113f4
commit 0ccba7edfb
2 changed files with 12 additions and 3 deletions

View File

@ -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);

View File

@ -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"));