I've just started testing the new readline/bash and found two issues.
dump-variables() always shows the default variables for
vim-*-mode-string or the emacs-mode-string. here is a fix for that one.
diff -uar readline-7.0-beta2/bind.c ../readline-7.0-beta2/bind.c
--- readline-7.0-beta2/bind.c 2016-01-25 09:33:57.000000000 -0600
+++ ../readline-7.0-beta2/bind.c 2016-07-26 20:11:55.129286301 -0500
@@ -2591,9 +2591,9 @@
else if (_rl_stricmp (name, "emacs-mode-string") == 0)
return (_rl_emacs_mode_str ? _rl_emacs_mode_str :
RL_EMACS_MODESTR_DEFAULT);
else if (_rl_stricmp (name, "vi-cmd-mode-string") == 0)
- return (_rl_emacs_mode_str ? _rl_emacs_mode_str :
RL_VI_CMD_MODESTR_DEFAULT);
+ return (_rl_vi_cmd_mode_str ? _rl_vi_cmd_mode_str :
RL_VI_CMD_MODESTR_DEFAULT);
else if (_rl_stricmp (name, "vi-ins-mode-string") == 0)
- return (_rl_emacs_mode_str ? _rl_emacs_mode_str :
RL_VI_INS_MODESTR_DEFAULT);
+ return (_rl_vi_ins_mode_str ? _rl_vi_ins_mode_str :
RL_VI_INS_MODESTR_DEFAULT);
else
return (0);
}
The other is that if non-printing characters are used in the
*-mode-strings then the strings starts leaking into the line. This
happens with both vi and emacs mode. Also the show-mode string is not
updated correctly when switching between modes. my strings are:
set emacs-mode-string "\1\e[1;34m\2@\1\e[0m\2 "
set vi-ins-mode-string "\1\e[1;32m\2+\1\e[0m\2 "
set vi-cmd-mode-string "\1\e[1;31m\2-\1\e[0m\2 "
Using simple strings works just fine:
set vi-ins-mode-string "+ "
set vi-cmd-mode-string "- "
--
Steve Jones
<[email protected]>
_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline