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

Reply via email to