Hello,

Can you please try the 'devel' branch?


There's a fix for this issue already in it:

|  commit 947f04912e4715e7a9df526cd99412bffa729368
|  Author: Chet Ramey <chet.ra...@case.edu>
|  Date:   Tue Jan 27 11:10:49 2015 -0500
|  
|      commit bash-20150116 snapshot


Here's the description of the fix:

|  lib/readline/isearch.c
|         - _rl_isearch_dispatch: if we are in a multibyte locale, make sure to 
use
|           _rl_find_prev_mbchar when trying to delete characters from the 
search
|           string, instead of just chopping off the previous byte.  Fixes bug
|           reported by Kyrylo Shpytsya <kshpi...@gmail.com>


This was reported earlier this year:

  http://lists.gnu.org/archive/html/bug-readline/2015-01/msg00017.html


Or use this to patch:

|  dualbus@yaqui ...src/gnu/bash % git diff origin/master 
947f04912e4715e7a9df526cd99412bffa729368 -- lib/readline/isearch.c
|  diff --git a/lib/readline/isearch.c b/lib/readline/isearch.c
|  index 6f6a7a6..d768560 100644
|  --- a/lib/readline/isearch.c
|  +++ b/lib/readline/isearch.c
|  @@ -553,8 +553,16 @@ add_character:
|           do until we have a real isearch-undo. */
|         if (cxt->search_string_index == 0)
|          rl_ding ();
|  -      else
|  +      else if (MB_CUR_MAX == 1 || rl_byte_oriented)
|          cxt->search_string[--cxt->search_string_index] = '\0';
|  +      else
|  +       {
|  +         wstart = _rl_find_prev_mbchar (cxt->search_string, 
cxt->search_string_index, MB_FIND_NONZERO);
|  +         if (wstart >= 0)
|  +           cxt->search_string[cxt->search_string_index = wstart] = '\0';
|  +         else
|  +           rl_ding ();
|  +       }
|         break;
|   
|       case -4:   /* C-G, abort */

Greetings!

-- 
Eduardo Bustamante
https://dualbus.me/

Reply via email to