diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2016-11-24 16:38:12 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2016-11-25 09:38:35 +0000 |
commit | 6b3cd80665069b5fcbeb6513b391c1051131ca00 (patch) | |
tree | 0177391d3026759139e6f7f389c7deaff09fc41d | |
parent | 3c66ee1ebd49ef6fe828de4af74c9c3a80512340 (diff) |
Work around a QDirIterator peculiarity when expanding wildcards
If we set the filter to include files, symbolic links to directories are
suppressed (presumably because QFileInfo::isDir() returns true for
them).
Task-number: QBS-964
Change-Id: Iab96a2371d99e772f3e1664e1e904f899d068116
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r-- | src/lib/corelib/language/language.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index 86a8cce5d..82d0bb102 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -1141,7 +1141,8 @@ void SourceWildCards::expandPatterns(QSet<QString> &result, const GroupConstPtr : QDirIterator::NoIteratorFlags; QDir::Filters itFilters = isDir ? QDir::Dirs - : QDir::Files; + : QDir::Files | QDir::System + | QDir::Dirs; // This one is needed to get symbolic links to directories if (isDir && !FileInfo::isPattern(filePattern)) itFilters |= QDir::Hidden; @@ -1153,7 +1154,8 @@ void SourceWildCards::expandPatterns(QSet<QString> &result, const GroupConstPtr const QString filePath = it.next(); if (isQbsBuildDir(it.fileInfo().dir())) continue; // See above. - QBS_ASSERT(FileInfo(filePath).isDir() == isDir, break); + if (!isDir && it.fileInfo().isDir() && !it.fileInfo().isSymLink()) + continue; if (isDir) expandPatterns(result, group, changed_parts, filePath); else |