diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index cec8c08eb1f91..b7814a1159b8a 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -259,7 +259,12 @@ bool ProcessDirectoryJob::handleExcluded(const QString &path, const Entries &ent const auto fileName = path.mid(path.lastIndexOf('/') + 1); - if (excluded == CSYNC_NOT_EXCLUDED && Utility::isWindows()) { + // we don't need to trigger a warning if trailing/leading space file is already on the server or has already been synced down + // only if the OS supports trailing/leading spaces + const auto osSupportsSpaces = !Utility::isWindows(); + const auto wasSyncedAlready = (entries.dbEntry.isValid() || entries.serverEntry.isValid()); + + if (excluded == CSYNC_NOT_EXCLUDED && (!osSupportsSpaces || !((osSupportsSpaces && wasSyncedAlready) || _discoveryData->_leadingAndTrailingSpacesFilesAllowed.contains(_discoveryData->_localDir + path)))) { const auto endsWithSpace = fileName.endsWith(QLatin1Char(' ')); const auto startsWithSpace = fileName.startsWith(QLatin1Char(' ')); if (startsWithSpace && endsWithSpace) { @@ -273,11 +278,11 @@ bool ProcessDirectoryJob::handleExcluded(const QString &path, const Entries &ent // we don't need to trigger a warning if trailing/leading space file is already on the server or has already been synced down // only if the OS supports trailing/leading spaces - const auto wasSyncedAlreadyAndOsSupportsSpaces = !Utility::isWindows() && (entries.serverEntry.isValid() || entries.dbEntry.isValid()); - if ((excluded == CSYNC_FILE_EXCLUDE_LEADING_SPACE || excluded == CSYNC_FILE_EXCLUDE_TRAILING_SPACE || excluded == CSYNC_FILE_EXCLUDE_LEADING_AND_TRAILING_SPACE) - && (wasSyncedAlreadyAndOsSupportsSpaces || _discoveryData->_leadingAndTrailingSpacesFilesAllowed.contains(_discoveryData->_localDir + path))) { - excluded = CSYNC_NOT_EXCLUDED; - } + // const auto wasSyncedAlreadyAndOsSupportsSpaces = !Utility::isWindows() && (entries.serverEntry.isValid() || entries.dbEntry.isValid()); + // if ((excluded == CSYNC_FILE_EXCLUDE_LEADING_SPACE || excluded == CSYNC_FILE_EXCLUDE_TRAILING_SPACE || excluded == CSYNC_FILE_EXCLUDE_LEADING_AND_TRAILING_SPACE) + // && (wasSyncedAlreadyAndOsSupportsSpaces || _discoveryData->_leadingAndTrailingSpacesFilesAllowed.contains(_discoveryData->_localDir + path))) { + // excluded = CSYNC_NOT_EXCLUDED; + // } // FIXME: move to ExcludedFiles 's regexp ? bool isInvalidPattern = false;