From 1810f78a87ce5c1c286dbab09281f804350a6685 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Fri, 15 Oct 2010 23:42:14 +0200 Subject: vim_mode: Correctly display partial commands with ^X notation. Reported by estragib. --- vim-mode/vim_mode.pl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index 871440e..6cbf617 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -1865,6 +1865,16 @@ sub _parse_mapping_reverse { return $string; } +sub _parse_partial_command_reverse { + my ($string) = @_; + + # Convert Ctrl-X to ^X. + $string =~ s/([\x01-\x1A])/"^" . chr(ord($1) + 64)/ge; + # Convert Ctrl-6 and Ctrl-^ to . + $string =~ s/\x1E/^^/g; + + return $string; +} sub ex_source { my ($arg_str, $count) = @_; @@ -2043,7 +2053,7 @@ sub vim_mode_cb { if (defined $pending_map) { $partial .= $pending_map; } - $partial = _parse_mapping_reverse($partial); + $partial = _parse_partial_command_reverse($partial); $partial =~ s/\\/\\\\\\\\/g; $mode_str .= " ($partial)"; } -- cgit v1.2.3