diff options
Diffstat (limited to 'vim-mode')
| -rw-r--r-- | vim-mode/vim_mode.pl | 21 | 
1 files changed, 15 insertions, 6 deletions
| diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index 0eddc76..b47e959 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -516,6 +516,8 @@ my $settings       start_cmd      => { type => S_BOOL, value => 0 },       # not used yet       max_undo_lines => { type => S_INT,  value => 50 }, +     # prompt_leading_space +     prompt_leading_space => { type => S_BOOL, value => 1 },      };  sub DEBUG { $settings->{debug}->{value} } @@ -601,7 +603,7 @@ my $history_pos = 0;  my @undo_buffer;  my $undo_index = undef; - +# tab completion state vars  my @tab_candidates;  my $completion_active = 0;  my $completion_string = ''; @@ -3111,8 +3113,11 @@ sub _update_mode {  sub _set_prompt {      my $msg = shift; +      # add a leading space unless we're trying to clear it entirely. -    $msg = ' ' . $msg if length $msg; +    if  (length($msg) and $settings->{prompt_leading_space}->{value}) { +        $msg = ' ' . $msg; +    }      # escape % symbols. This prevents any _set_prompt calls from using      # colouring sequences. @@ -3127,17 +3132,21 @@ sub _setting_get {      my $type = $settings->{$name}->{type};      $name = "vim_mode_$name"; +    my $ret = undef; +      if ($type == S_BOOL) { -        return Irssi::settings_get_bool($name); +        $ret = Irssi::settings_get_bool($name);      } elsif ($type == S_INT) { -        return Irssi::settings_get_int($name); +        $ret = Irssi::settings_get_int($name);      } elsif ($type == S_STR) { -        return Irssi::settings_get_str($name); +        $ret = Irssi::settings_get_str($name);      } else {          _warn("Unknown setting type '$type', please report.");      } -    return undef; + +    return $ret;  } +  sub _setting_set {      my ($name, $value) = @_; | 
