diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp index 77055ca9fe0e39fad5ef0cc738577b8bf7f03dd3..ec145c7362d9bf5f1a4b9296fb903e77fb48fe18 100644 --- a/src/qdoc/clangcodeparser.cpp +++ b/src/qdoc/clangcodeparser.cpp @@ -1176,7 +1176,7 @@ void ClangCodeParser::getMoreArgs() */ void ClangCodeParser::buildPCH() { - if (!pchFileDir_) { + if (!pchFileDir_ && !moduleHeader().isEmpty()) { pchFileDir_.reset(new QTemporaryDir(QDir::tempPath() + QLatin1String("/qdoc_pch"))); if (pchFileDir_->isValid()) { //const QByteArray module = qdb_->primaryTreeRoot()->tree()->camelCaseModuleName().toUtf8(); diff --git a/src/qdoc/config.cpp b/src/qdoc/config.cpp index de7f23ce6eb28557be529da9abac9726da1978a9..64c8786f63b004e576253ae696987c1572c9b961 100644 --- a/src/qdoc/config.cpp +++ b/src/qdoc/config.cpp @@ -397,12 +397,17 @@ QSet<QString> Config::getOutputFormats() const If \a var is not contained in the location map it returns \a defaultString. + + \note By default, \a defaultString is a null string. If \a var + is found but contains an empty string, that is returned instead. + This allows determining whether a configuration variable is + undefined (null string) or defined as empty (empty string). */ QString Config::getString(const QString& var, const QString& defaultString) const { QList<ConfigVar> configVars = configVars_.values(var); if (!configVars.empty()) { - QString value; + QString value(""); int i = configVars.size() - 1; while (i >= 0) { const ConfigVar& cv = configVars[i]; diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp index 79cde7950f4e21bb2134816cbfa327755d4d344f..563915d4961dbcf2a9d60f7aaf59aa16abd5c5d5 100644 --- a/src/qdoc/main.cpp +++ b/src/qdoc/main.cpp @@ -366,7 +366,7 @@ static void processQdocconfFile(const QString &fileName) qdb->newPrimaryTree(project); else qdb->setPrimaryTree(project); - if (!moduleHeader.isEmpty()) + if (!moduleHeader.isNull()) clangParser_->setModuleHeader(moduleHeader); else clangParser_->setModuleHeader(project);