summaryrefslogtreecommitdiff
path: root/src/options
diff options
context:
space:
mode:
authorGereon Kremer <nafur42@gmail.com>2021-09-02 11:50:18 -0700
committerGitHub <noreply@github.com>2021-09-02 18:50:18 +0000
commit67e6694f10919292ecc23b7ced60818ee13025e8 (patch)
tree8c7f0066fe4a33c6ba4e823782f9a775d07ca0a3 /src/options
parentb88b3cb5d93e4a2639d4ad647389953656e4c9ea (diff)
Add API check whether option in getOptionInfo() exists (#7093)
This PR adds a missing check in the API for getOptionInfo().
Diffstat (limited to 'src/options')
-rw-r--r--src/options/mkoptions.py10
-rw-r--r--src/options/options_public_template.cpp2
2 files changed, 7 insertions, 5 deletions
diff --git a/src/options/mkoptions.py b/src/options/mkoptions.py
index 62e70214d..d2881cc94 100644
--- a/src/options/mkoptions.py
+++ b/src/options/mkoptions.py
@@ -769,6 +769,10 @@ def codegen_all_modules(modules, build_dir, dst_dir, tpls):
['name == "{}"'.format(x) for x in sorted(names)])
# Generate code for getOptionInfo
+ if option.alias:
+ alias = ', '.join(map(lambda s: '"{}"'.format(s), option.alias))
+ else:
+ alias = ''
if option.name:
constr = None
fmt = {
@@ -788,11 +792,9 @@ def codegen_all_modules(modules, build_dir, dst_dir, tpls):
constr = 'OptionInfo::ModeInfo{{"{default}", {value}, {{ {modes} }}}}'.format(**fmt, modes=values)
else:
constr = 'OptionInfo::VoidInfo{}'
- if option.alias:
- alias = ', '.join(map(lambda s: '"{}"'.format(s), option.alias))
- else:
- alias = ''
options_get_info.append('if ({}) return OptionInfo{{"{}", {{{alias}}}, opts.{}.{}WasSetByUser, {}}};'.format(cond, long_get_option(option.long), module.id, option.name, constr, alias=alias))
+ else:
+ options_get_info.append('if ({}) return OptionInfo{{"{}", {{{alias}}}, false, OptionInfo::VoidInfo{{}}}};'.format(cond, long_get_option(option.long), alias=alias))
if setoption_handlers:
setoption_handlers.append(' }} else if ({}) {{'.format(cond))
diff --git a/src/options/options_public_template.cpp b/src/options/options_public_template.cpp
index 4beb47e0f..9c44dacba 100644
--- a/src/options/options_public_template.cpp
+++ b/src/options/options_public_template.cpp
@@ -277,7 +277,7 @@ OptionInfo getInfo(const Options& opts, const std::string& name)
// clang-format off
${options_get_info}$
// clang-format on
- return OptionInfo{name, {}, false, OptionInfo::VoidInfo{}};
+ return OptionInfo{"", {}, false, OptionInfo::VoidInfo{}};
}
#undef DO_SEMANTIC_CHECKS_BY_DEFAULT
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback