diff options
author | albert-github <albert.tests@gmail.com> | 2018-10-08 10:01:05 (GMT) |
---|---|---|
committer | albert-github <albert.tests@gmail.com> | 2018-10-08 10:01:05 (GMT) |
commit | 887db516c1b0163139db971c5aa720804cc23f37 (patch) | |
tree | 59e7a16c2da4f74c7e167b7d34da1d64d9dac822 | |
parent | 36eefaf9a5faeb828c0d99bffb731747a59f17fe (diff) | |
download | Doxygen-887db516c1b0163139db971c5aa720804cc23f37.zip Doxygen-887db516c1b0163139db971c5aa720804cc23f37.tar.gz Doxygen-887db516c1b0163139db971c5aa720804cc23f37.tar.bz2 |
Bug 751700 - Main page absent in TOC of CHM, if PROJECT_NAME is empty
In case a string is empty the default should be taken and not left blank.
-rw-r--r-- | src/config.h | 2 | ||||
-rw-r--r-- | src/configimpl.h | 6 | ||||
-rw-r--r-- | src/configimpl.l | 14 |
3 files changed, 19 insertions, 3 deletions
diff --git a/src/config.h b/src/config.h index 98f5a92..102774e 100644 --- a/src/config.h +++ b/src/config.h @@ -66,7 +66,7 @@ namespace Config * and replaces environment variables. * \param clearHeaderAndFooter set to TRUE when writing header and footer templates. */ - void postProcess(bool clearHeaderAndFooter); + void postProcess(bool clearHeaderAndFooter, bool compare = FALSE); /*! Check the validity of the parsed options and correct or warn the user where needed. */ void checkAndCorrect(); diff --git a/src/configimpl.h b/src/configimpl.h index ef8bb21..1594d47 100644 --- a/src/configimpl.h +++ b/src/configimpl.h @@ -75,6 +75,7 @@ class ConfigOption virtual void writeTemplate(FTextStream &t,bool sl,bool upd) = 0; virtual void compareDoxyfile(FTextStream &t) = 0; virtual void convertStrToVal() {} + virtual void emptyValueToDefault() {} virtual void substEnvVars() = 0; virtual void init() {} @@ -189,6 +190,7 @@ class ConfigString : public ConfigOption void compareDoxyfile(FTextStream &t); void substEnvVars(); void init() { m_value = m_defValue.copy(); } + void emptyValueToDefault() { if(m_value.isEmpty()) m_value=m_defValue; }; private: QCString m_value; @@ -491,6 +493,10 @@ class ConfigImpl */ void convertStrToVal(); + /*! Sets default value in case value is empty + */ + void emptyValueToDefault(); + /*! Replaces references to environment variable by the actual value * of the environment variable. */ diff --git a/src/configimpl.l b/src/configimpl.l index 3fb1360..3d4e05d 100644 --- a/src/configimpl.l +++ b/src/configimpl.l @@ -983,6 +983,15 @@ void ConfigImpl::convertStrToVal() option->convertStrToVal(); } } +void ConfigImpl::emptyValueToDefault() +{ + QListIterator<ConfigOption> it = iterator(); + ConfigOption *option; + for (;(option=it.current());++it) + { + option->emptyValueToDefault(); + } +} static void substEnvVarsInString(QCString &s) { @@ -1854,7 +1863,7 @@ void Config::writeTemplate(FTextStream &t,bool shortList,bool update) void Config::compareDoxyfile(FTextStream &t) { - postProcess(FALSE); + postProcess(FALSE, TRUE); ConfigImpl::instance()->compareDoxyfile(t); } @@ -1863,9 +1872,10 @@ bool Config::parse(const char *fileName,bool update) return ConfigImpl::instance()->parse(fileName,update); } -void Config::postProcess(bool clearHeaderAndFooter) +void Config::postProcess(bool clearHeaderAndFooter, bool compare) { ConfigImpl::instance()->substituteEnvironmentVars(); + if (!compare)ConfigImpl::instance()->emptyValueToDefault(); ConfigImpl::instance()->convertStrToVal(); // avoid bootstrapping issues when the config file already |