From 8ca17ed943424f277d53cadd2e884834fac16b1f Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 12 Jul 2012 10:15:55 +0200 Subject: qdoc: Clean path names before using them The excludedirs variable doesn't work correctly when its values have '../' in them. The solution is to use QDir::cleanPath() on each path name before using it. Task Nr: QTBUG-26492 Change-Id: I2db74e79cf096c1c75ab5b10877320360c016fc7 Reviewed-by: Casper van Donderen --- src/tools/qdoc/config.cpp | 4 ++-- src/tools/qdoc/location.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tools/qdoc/config.cpp b/src/tools/qdoc/config.cpp index 7ab65703de..e1a028315f 100644 --- a/src/tools/qdoc/config.cpp +++ b/src/tools/qdoc/config.cpp @@ -219,7 +219,6 @@ void Config::unload(const QString& fileName) } qDebug() << "fileName:" << fileName; } - /*! Joins all the strings in \a values into a single string with the individual \a values separated by ' '. Then it inserts the result @@ -931,11 +930,12 @@ void Config::load(Location location, const QString& fileName) } } -QStringList Config::getFilesHere(const QString& dir, +QStringList Config::getFilesHere(const QString& uncleanDir, const QString& nameFilter, const QSet &excludedDirs, const QSet &excludedFiles) { + QString dir = QDir::cleanPath(uncleanDir); QStringList result; if (excludedDirs.contains(dir)) return result; diff --git a/src/tools/qdoc/location.cpp b/src/tools/qdoc/location.cpp index 9cea232555..630bf64e53 100644 --- a/src/tools/qdoc/location.cpp +++ b/src/tools/qdoc/location.cpp @@ -60,7 +60,7 @@ QRegExp *Location::spuriousRegExp = 0; /*! \class Location - \brief The Location class keeps track of where we are in a file. + \brief The Location class provides a way to mark a location in a file. It maintains a stack of file positions. A file position consists of the file path, line number, and column number. -- cgit v1.2.3