summaryrefslogtreecommitdiffstats
path: root/src/configimpl.l
diff options
context:
space:
mode:
authoralbert-github <albert.tests@gmail.com>2020-02-13 18:19:21 (GMT)
committeralbert-github <albert.tests@gmail.com>2020-02-13 18:19:21 (GMT)
commit9c9e30b295ca8b0a2130aa00c26bb5aa40a0e608 (patch)
tree218fc6102352a7ab4a1547e9dee9c6dfc686e2d5 /src/configimpl.l
parent10b2b8fc694b60a17ccd2642f3a40c851e33b9da (diff)
downloadDoxygen-9c9e30b295ca8b0a2130aa00c26bb5aa40a0e608.zip
Doxygen-9c9e30b295ca8b0a2130aa00c26bb5aa40a0e608.tar.gz
Doxygen-9c9e30b295ca8b0a2130aa00c26bb5aa40a0e608.tar.bz2
Unknown configuration enum values
In case we set for instance `DOT_IMAGE_FORMAT = SVG` (and generate call graphs) we get messages from the `dot` tool like: ``` error: Problems running dot: exit code=1, command='dot', arguments='".../example/html/test_8cpp_a764ac60c654173eb1a0afd0906ad5a12_icgraph.dot" -TSVG -o ".../example/html/test_8cpp_a764ac60c654173eb1a0afd0906ad5a12_icgraph.SVG"' ``` on other places (e.g `HTML_FORMULA_FORMAT`) and an unknown or enum value with a wrong case, the default value is (silently) taken. We now check: - is the enum value of the correct case otherwise (silently) set it to the correct case. - in case of an unknown enum value a warning is given and the default value is used
Diffstat (limited to 'src/configimpl.l')
-rw-r--r--src/configimpl.l19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/configimpl.l b/src/configimpl.l
index daa7d90..eb33610 100644
--- a/src/configimpl.l
+++ b/src/configimpl.l
@@ -221,6 +221,25 @@ void ConfigBool::convertStrToVal()
}
}
+void ConfigEnum::convertStrToVal()
+{
+ QCString val = m_value.stripWhiteSpace().lower();
+ const char *s=m_valueRange.first();
+ while (s)
+ {
+ if (QCString(s).lower() == val)
+ {
+ m_value = s;
+ return;
+ }
+ s = m_valueRange.next();
+ }
+
+ config_warn("argument '%s' for option %s is not a valid enum value\n"
+ "Using the default: %s!\n",m_value.data(),m_name.data(),m_defValue.data());
+ m_value = m_defValue;
+}
+
QCString &ConfigImpl::getString(const char *fileName,int num,const char *name) const
{
ConfigOption *opt = m_dict->find(name);