summaryrefslogtreecommitdiffstats
path: root/src/qdoc/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/config.cpp')
-rw-r--r--src/qdoc/config.cpp161
1 files changed, 70 insertions, 91 deletions
diff --git a/src/qdoc/config.cpp b/src/qdoc/config.cpp
index 079ffd0e5..73f29d56a 100644
--- a/src/qdoc/config.cpp
+++ b/src/qdoc/config.cpp
@@ -94,7 +94,8 @@ QString ConfigStrings::OUTPUTFORMATS = QStringLiteral("outputformats");
QString ConfigStrings::OUTPUTPREFIXES = QStringLiteral("outputprefixes");
QString ConfigStrings::OUTPUTSUFFIXES = QStringLiteral("outputsuffixes");
QString ConfigStrings::PROJECT = QStringLiteral("project");
-QString ConfigStrings::REDIRECTDOCUMENTATIONTODEVNULL = QStringLiteral("redirectdocumentationtodevnull");
+QString ConfigStrings::REDIRECTDOCUMENTATIONTODEVNULL =
+ QStringLiteral("redirectdocumentationtodevnull");
QString ConfigStrings::QHP = QStringLiteral("qhp");
QString ConfigStrings::QUOTINGINFORMATION = QStringLiteral("quotinginformation");
QString ConfigStrings::SCRIPTDIRS = QStringLiteral("scriptdirs");
@@ -205,7 +206,7 @@ void MetaStack::process(QChar ch, const Location &location)
top().next.clear();
for (const auto &prefix : prefixes) {
- for (const auto &suffix: suffixes)
+ for (const auto &suffix : suffixes)
top().next << prefix + suffix;
}
} else if (ch == QLatin1Char(',') && count() > 1) {
@@ -256,8 +257,7 @@ QMap<QString, QStringList> Config::includeFilesMap_;
internal state variables to either default values or to ones
defined in command line arguments \a args.
*/
-Config::Config(const QString &programName, const QStringList &args)
- : prog(programName)
+Config::Config(const QString &programName, const QStringList &args) : prog(programName)
{
++numInstances;
processCommandLineOptions(args);
@@ -309,7 +309,7 @@ void Config::reset()
#undef SET
setListFlag(CONFIG_NOLINKERRORS,
m_parser.isSet(m_parser.noLinkErrorsOption)
- || qEnvironmentVariableIsSet("QDOC_NOLINKERRORS"));
+ || qEnvironmentVariableIsSet("QDOC_NOLINKERRORS"));
// CONFIG_DEFINES and CONFIG_INCLUDEPATHS are set in load()
}
@@ -418,12 +418,11 @@ void Config::setIndexDirs()
{
m_indexDirs = m_parser.values(m_parser.indexDirOption);
auto it = std::remove_if(m_indexDirs.begin(), m_indexDirs.end(),
- [](const QString &s) { return !QFile::exists(s); });
+ [](const QString &s) { return !QFile::exists(s); });
- std::for_each(it, m_indexDirs.end(),
- [](const QString &s) {
- Location::logToStdErrAlways(tr("Cannot find index directory: %1").arg(s));
- });
+ std::for_each(it, m_indexDirs.end(), [](const QString &s) {
+ Location::logToStdErrAlways(tr("Cannot find index directory: %1").arg(s));
+ });
m_indexDirs.erase(it, m_indexDirs.end());
}
@@ -517,13 +516,13 @@ QString Config::getString(const QString &var, const QString &defaultString) cons
QString value("");
int i = configVars.size() - 1;
while (i >= 0) {
- const ConfigVar& cv = configVars[i];
+ const ConfigVar &cv = configVars[i];
if (!cv.location_.isEmpty())
const_cast<Config *>(this)->lastLocation_ = cv.location_;
if (!cv.values_.isEmpty()) {
if (!cv.plus_)
value.clear();
- for (int j=0; j<cv.values_.size(); ++j) {
+ for (int j = 0; j < cv.values_.size(); ++j) {
if (!value.isEmpty() && !value.endsWith(QChar('\n')))
value.append(QChar(' '));
value.append(cv.values_[j]);
@@ -601,7 +600,7 @@ QStringList Config::getCanonicalPathList(const QString &var, bool validate) cons
if (!configVars.empty()) {
int i = configVars.size() - 1;
while (i >= 0) {
- const ConfigVar& cv = configVars[i];
+ const ConfigVar &cv = configVars[i];
if (!cv.location_.isEmpty())
const_cast<Config *>(this)->lastLocation_ = cv.location_;
if (!cv.plus_)
@@ -610,7 +609,7 @@ QStringList Config::getCanonicalPathList(const QString &var, bool validate) cons
const QStringList &sl = cv.values_;
if (!sl.isEmpty()) {
t.reserve(t.size() + sl.size());
- for (int i=0; i<sl.size(); ++i) {
+ for (int i = 0; i < sl.size(); ++i) {
QDir dir(sl[i].simplified());
QString path = dir.path();
if (dir.isRelative())
@@ -746,8 +745,7 @@ QString Config::getIncludeFilePath(const QString &fileName) const
The directories in \a excludedDirs are avoided. The files
in \a excludedFiles are not included in the return list.
*/
-QStringList Config::getAllFiles(const QString &filesVar,
- const QString &dirsVar,
+QStringList Config::getAllFiles(const QString &filesVar, const QString &dirsVar,
const QSet<QString> &excludedDirs,
const QSet<QString> &excludedFiles)
{
@@ -794,10 +792,8 @@ QStringList Config::getExampleImageFiles(const QSet<QString> &excludedDirs,
\a location is used for obtaining the file and line numbers
for report qdoc errors.
*/
-QString Config::findFile(const Location &location,
- const QStringList &files,
- const QStringList &dirs,
- const QString &fileName,
+QString Config::findFile(const Location &location, const QStringList &files,
+ const QStringList &dirs, const QString &fileName,
QString *userFriendlyFilePath)
{
if (fileName.isEmpty() || fileName.startsWith(QLatin1Char('/'))) {
@@ -811,8 +807,7 @@ QString Config::findFile(const Location &location,
QString firstComponent = components.first();
for (const auto &file : files) {
- if (file == firstComponent ||
- file.endsWith(QLatin1Char('/') + firstComponent)) {
+ if (file == firstComponent || file.endsWith(QLatin1Char('/') + firstComponent)) {
fileInfo.setFile(file);
if (!fileInfo.exists())
location.fatal(tr("File '%1' does not exist").arg(file));
@@ -854,18 +849,12 @@ QString Config::findFile(const Location &location,
/*!
*/
-QString Config::findFile(const Location &location,
- const QStringList &files,
- const QStringList &dirs,
- const QString &fileBase,
- const QStringList &fileExtensions,
- QString *userFriendlyFilePath)
+QString Config::findFile(const Location &location, const QStringList &files,
+ const QStringList &dirs, const QString &fileBase,
+ const QStringList &fileExtensions, QString *userFriendlyFilePath)
{
for (const auto &extension : fileExtensions) {
- QString filePath = findFile(location,
- files,
- dirs,
- fileBase + QLatin1Char('.') + extension,
+ QString filePath = findFile(location, files, dirs, fileBase + QLatin1Char('.') + extension,
userFriendlyFilePath);
if (!filePath.isEmpty())
return filePath;
@@ -880,15 +869,14 @@ QString Config::findFile(const Location &location,
the file and line number where a qdoc error occurred. The
constructed output file name is returned.
*/
-QString Config::copyFile(const Location &location,
- const QString &sourceFilePath,
- const QString &userFriendlySourceFilePath,
- const QString &targetDirPath)
+QString Config::copyFile(const Location &location, const QString &sourceFilePath,
+ const QString &userFriendlySourceFilePath, const QString &targetDirPath)
{
QFile inFile(sourceFilePath);
if (!inFile.open(QFile::ReadOnly)) {
location.warning(tr("Cannot open input file for copy: '%1': %2")
- .arg(sourceFilePath).arg(inFile.errorString()));
+ .arg(sourceFilePath)
+ .arg(inFile.errorString()));
return QString();
}
@@ -903,7 +891,8 @@ QString Config::copyFile(const Location &location,
QFile outFile(outFileName);
if (!outFile.open(QFile::WriteOnly)) {
location.warning(tr("Cannot open output file for copy: '%1': %2")
- .arg(outFileName).arg(outFile.errorString()));
+ .arg(outFileName)
+ .arg(outFile.errorString()));
return QString();
}
@@ -945,8 +934,7 @@ bool Config::removeDirContents(const QString &dir)
if (entry.isFile()) {
if (!dirInfo.remove(entry.fileName()))
ok = false;
- }
- else if (entry.isDir()) {
+ } else if (entry.isDir()) {
if (entry.fileName() != QLatin1String(".") && entry.fileName() != QLatin1String("..")) {
if (removeDirContents(entry.absoluteFilePath())) {
if (!dirInfo.rmdir(entry.fileName()))
@@ -966,12 +954,8 @@ bool Config::removeDirContents(const QString &dir)
*/
bool Config::isMetaKeyChar(QChar ch)
{
- return ch.isLetterOrNumber()
- || ch == QLatin1Char('_')
- || ch == QLatin1Char('.')
- || ch == QLatin1Char('{')
- || ch == QLatin1Char('}')
- || ch == QLatin1Char(',');
+ return ch.isLetterOrNumber() || ch == QLatin1Char('_') || ch == QLatin1Char('.')
+ || ch == QLatin1Char('{') || ch == QLatin1Char('}') || ch == QLatin1Char(',');
}
/*!
@@ -985,10 +969,13 @@ QStringList Config::loadMaster(const QString &fileName)
if (!fin.open(QFile::ReadOnly | QFile::Text)) {
if (!Config::installDir.isEmpty()) {
int prefix = location.filePath().length() - location.fileName().length();
- fin.setFileName(Config::installDir + QLatin1Char('/') + fileName.right(fileName.length() - prefix));
+ fin.setFileName(Config::installDir + QLatin1Char('/')
+ + fileName.right(fileName.length() - prefix));
}
if (!fin.open(QFile::ReadOnly | QFile::Text))
- location.fatal(tr("Cannot open master qdocconf file '%1': %2").arg(fileName).arg(fin.errorString()));
+ location.fatal(tr("Cannot open master qdocconf file '%1': %2")
+ .arg(fileName)
+ .arg(fin.errorString()));
}
QTextStream stream(&fin);
#ifndef QT_NO_TEXTCODEC
@@ -1018,20 +1005,20 @@ void Config::load(Location location, const QString &fileName)
QDir::setCurrent(path);
QRegExp keySyntax(QLatin1String("\\w+(?:\\.\\w+)*"));
-#define SKIP_CHAR() \
- do { \
- location.advance(c); \
- ++i; \
- c = text.at(i); \
- cc = c.unicode(); \
-} while (0)
+#define SKIP_CHAR() \
+ do { \
+ location.advance(c); \
+ ++i; \
+ c = text.at(i); \
+ cc = c.unicode(); \
+ } while (0)
-#define SKIP_SPACES() \
- while (c.isSpace() && cc != '\n') \
+#define SKIP_SPACES() \
+ while (c.isSpace() && cc != '\n') \
SKIP_CHAR()
-#define PUT_CHAR() \
- word += c; \
+#define PUT_CHAR() \
+ word += c; \
SKIP_CHAR();
if (location.depth() > 16)
@@ -1041,7 +1028,8 @@ void Config::load(Location location, const QString &fileName)
if (!fin.open(QFile::ReadOnly | QFile::Text)) {
if (!Config::installDir.isEmpty()) {
int prefix = location.filePath().length() - location.fileName().length();
- fin.setFileName(Config::installDir + QLatin1Char('/') + fileName.right(fileName.length() - prefix));
+ fin.setFileName(Config::installDir + QLatin1Char('/')
+ + fileName.right(fileName.length() - prefix));
}
if (!fin.open(QFile::ReadOnly | QFile::Text))
location.fatal(tr("Cannot open file '%1': %2").arg(fileName).arg(fin.errorString()));
@@ -1111,8 +1099,7 @@ void Config::load(Location location, const QString &fileName)
const QByteArray val = qgetenv(var.toLatin1().data());
if (val.isNull()) {
location.fatal(tr("Environment variable '%1' undefined").arg(var));
- }
- else {
+ } else {
includeFile += QString::fromLatin1(val);
}
}
@@ -1133,8 +1120,7 @@ void Config::load(Location location, const QString &fileName)
Here is the recursive call.
*/
load(location, QFileInfo(QDir(path), includeFile).filePath());
- }
- else {
+ } else {
/*
It wasn't an include statement, so it's something else.
We must see either '=' or '+=' next. If not, fatal error.
@@ -1155,26 +1141,22 @@ void Config::load(Location location, const QString &fileName)
SKIP_CHAR();
if (cc == '\n') {
SKIP_CHAR();
- }
- else if (cc > '0' && cc < '8') {
+ } else if (cc > '0' && cc < '8') {
word += QChar(c.digitValue());
SKIP_CHAR();
- }
- else if ((metaCharPos = QString::fromLatin1("abfnrtv").indexOf(c)) != -1) {
+ } else if ((metaCharPos = QString::fromLatin1("abfnrtv").indexOf(c))
+ != -1) {
word += QLatin1Char("\a\b\f\n\r\t\v"[metaCharPos]);
SKIP_CHAR();
- }
- else {
+ } else {
PUT_CHAR();
}
- }
- else if (c.isSpace() || cc == '#') {
+ } else if (c.isSpace() || cc == '#') {
if (inQuote) {
if (cc == '\n')
location.fatal(tr("Unterminated string"));
PUT_CHAR();
- }
- else {
+ } else {
if (!word.isEmpty()) {
if (metWord)
stringValue += QLatin1Char(' ');
@@ -1188,8 +1170,7 @@ void Config::load(Location location, const QString &fileName)
break;
SKIP_SPACES();
}
- }
- else if (cc == '"') {
+ } else if (cc == '"') {
if (inQuote) {
if (!prevWordQuoted)
stringValue += QLatin1Char(' ');
@@ -1202,8 +1183,7 @@ void Config::load(Location location, const QString &fileName)
}
inQuote = !inQuote;
SKIP_CHAR();
- }
- else if (cc == '$') {
+ } else if (cc == '$') {
QString var;
SKIP_CHAR();
while (c.isLetterOrNumber() || cc == '_') {
@@ -1214,13 +1194,11 @@ void Config::load(Location location, const QString &fileName)
const QByteArray val = qgetenv(var.toLatin1().constData());
if (val.isNull()) {
location.fatal(tr("Environment variable '%1' undefined").arg(var));
- }
- else {
+ } else {
word += QString::fromLatin1(val);
}
}
- }
- else {
+ } else {
if (!inQuote && cc == '=')
location.fatal(tr("Unexpected '='"));
PUT_CHAR();
@@ -1231,7 +1209,8 @@ void Config::load(Location location, const QString &fileName)
keyLoc.fatal(tr("Invalid key '%1'").arg(key));
ConfigVarMultimap::Iterator i;
- i = configVars_.insert(key, ConfigVar(key, rhsValues, QDir::currentPath(), keyLoc));
+ i = configVars_.insert(key,
+ ConfigVar(key, rhsValues, QDir::currentPath(), keyLoc));
i.value().plus_ = plus;
}
}
@@ -1256,13 +1235,12 @@ bool Config::isFileExcluded(const QString &fileName, const QSet<QString> &exclud
return excludedFiles.contains(fileName);
}
-QStringList Config::getFilesHere(const QString &uncleanDir,
- const QString &nameFilter,
- const Location &location,
- const QSet<QString> &excludedDirs,
+QStringList Config::getFilesHere(const QString &uncleanDir, const QString &nameFilter,
+ const Location &location, const QSet<QString> &excludedDirs,
const QSet<QString> &excludedFiles)
{
- QString dir = location.isEmpty() ? QDir::cleanPath(uncleanDir) : QDir(uncleanDir).canonicalPath();
+ QString dir =
+ location.isEmpty() ? QDir::cleanPath(uncleanDir) : QDir(uncleanDir).canonicalPath();
QStringList result;
if (excludedDirs.contains(dir))
return result;
@@ -1273,7 +1251,7 @@ QStringList Config::getFilesHere(const QString &uncleanDir,
dirInfo.setSorting(QDir::Name);
dirInfo.setFilter(QDir::Files);
QStringList fileNames = dirInfo.entryList();
- for (const auto &file: qAsConst(fileNames)) {
+ for (const auto &file : qAsConst(fileNames)) {
if (!file.startsWith(QLatin1Char('~'))) {
QString s = dirInfo.filePath(file);
QString c = QDir::cleanPath(s);
@@ -1283,10 +1261,11 @@ QStringList Config::getFilesHere(const QString &uncleanDir,
}
dirInfo.setNameFilters(QStringList(QLatin1String("*")));
- dirInfo.setFilter(QDir::Dirs|QDir::NoDotAndDotDot);
+ dirInfo.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
fileNames = dirInfo.entryList();
for (const auto &file : fileNames)
- result += getFilesHere(dirInfo.filePath(file), nameFilter, location, excludedDirs, excludedFiles);
+ result += getFilesHere(dirInfo.filePath(file), nameFilter, location, excludedDirs,
+ excludedFiles);
return result;
}