bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: reverse-i-search, multibyte backspace problem


From: Eduardo A . Bustamante López
Subject: Re: reverse-i-search, multibyte backspace problem
Date: Sat, 18 Jul 2015 20:53:52 -0500
User-agent: Mutt/1.5.23 (2014-03-12)

Hello,

Can you please try the 'devel' branch?


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

|  commit 947f04912e4715e7a9df526cd99412bffa729368
|  Author: Chet Ramey <chet.ramey@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 <kshpitsa@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

[Prev in Thread] Current Thread [Next in Thread]