diff options
author | Tom Feist <shabble@metavore.org> | 2011-05-05 07:10:25 +0000 |
---|---|---|
committer | Tom Feist <shabble@metavore.org> | 2011-05-05 07:10:25 +0000 |
commit | 67b377d92ace6d119bd83867b70e55c4383fc63f (patch) | |
tree | a98c2b39e0e0d532551dc80d8b41c1e230a9c1a5 | |
parent | vim-mode/vim_mode: changed input_buf to escape_buf to more accurately represent (diff) | |
download | irssi-scripts-67b377d92ace6d119bd83867b70e55c4383fc63f.tar.gz irssi-scripts-67b377d92ace6d119bd83867b70e55c4383fc63f.zip |
vim-mode/vim_mode: added :set [no]option for booleans. Needs testing (which
can't be done until I unbreak the input system :(
-rw-r--r-- | vim-mode/vim_mode.pl | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index becf13b..51094aa 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -3298,6 +3298,21 @@ sub _setting_get { sub _setting_set { my ($name, $value) = @_; + # support the vim convention of no<param> as a way to unset booleans. + if ($name =~ m/^no(.*)/) { + my $actual_name = $1; + eval { + use warnings FATAL => qw/all/; + my $val = settings_get_bool($actual_name); + }; + if ($@ =~ m/not found/) { + _debug("setting $name ($actual_name)) not found, ignoring"); + return; + } + $name = $actual_name; + $value = 0; + } + my $type = $settings->{$name}->{type}; $name = "vim_mode_$name"; |