diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-08-10 13:54:52 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-08-10 13:54:52 +0100 |
| commit | 94ec1cdde7a40d431788398f3f72aa9d1f952932 (patch) | |
| tree | ad52d9bc2de6993b388c4129631938ce7f570706 /src/option_manager.cc | |
| parent | 10d8cf64cf80826dd27f8b8f2f7b74edc6b35ecb (diff) | |
Add an unset command to remove an option value (falling back to parent)
unset is not applicable to global scope.
Diffstat (limited to 'src/option_manager.cc')
| -rw-r--r-- | src/option_manager.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/option_manager.cc b/src/option_manager.cc index 8427f6e0..04fb3e84 100644 --- a/src/option_manager.cc +++ b/src/option_manager.cc @@ -76,6 +76,17 @@ const Option& OptionManager::operator[](StringView name) const return const_cast<OptionManager&>(*this)[name]; } +void OptionManager::unset_option(StringView name) +{ + kak_assert(m_parent); // cannot unset option on global manager + auto it = find_option(m_options, name); + if (it != m_options.end()) + { + m_options.erase(it); + on_option_changed((*m_parent)[name]); + } +} + OptionManager::OptionList OptionManager::flatten_options() const { OptionList res = m_parent ? m_parent->flatten_options() : OptionList{}; |
