Find attached a patch to address two bugs:
* if show-mode-in-prompt is on, the initial Emacs prompt would
not show the mode;
* moving backwards a word in vi mode, on a line starting with a
space, would test before the start of the buffer (found by
Martin Ridgers in Clink, but this is a different solution).
--
Jason.
diff -urp current/readline.c working/readline.c
--- current/readline.c 2017-01-30 04:55:51 +1000
+++ working/readline.c 2017-02-21 16:05:49 +1000
@@ -419,7 +419,10 @@ readline_internal_setup ()
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode)
rl_vi_insertion_mode (1, 'i'); /* don't want to reset last */
+ else
#endif /* VI_MODE */
+ if (_rl_show_mode_in_prompt)
+ _rl_reset_prompt ();
/* If we're not echoing, we still want to at least print a prompt, because
rl_redisplay will not do it for us. If the calling application has a
diff -urp current/vi_mode.c working/vi_mode.c
--- current/vi_mode.c 2017-01-30 04:55:51 +1000
+++ working/vi_mode.c 2017-02-21 16:05:49 +1000
@@ -594,7 +594,8 @@ rl_vi_bword (count, ignore)
so we will go back to the start of the previous word. */
if (!whitespace (rl_line_buffer[rl_point]) &&
whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
+ if (--rl_point == 0)
+ break;
/* If this character and the previous character are `opposite', move
back so we don't get messed up by the rl_point++ down there in
_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline