On 4/19/14, 3:44 PM, Trond Endrestøl wrote:
> Hi,
>
> I'm running GNU bash 4.3.11 on several branches of FreeBSD, more
> specifically stable/{8,9,10}, and head (11.0-CURRENT), both 32-bit
> (i386) and 64-bit (amd64).
>
> Whenever horizontal-scroll-mode is set to on in .inputrc, backwards
> incremental search fails to repaint the command line when doing
> successive tappings on C-r. bash will misbehave even further when I
> hit the enter key. More explanation follows.
Coincidentally, I've been looking at this problem for the last couple of
days, based on another report. I've attached what I have so far, which
seems to fix the problem according to the testing I've done so far. Let
me know how it works for you.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.3-patched/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400
--- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400
***************
*** 1638,1642 ****
the spot of first difference is before the end of the invisible chars,
lendiff needs to be adjusted. */
! if (current_line == 0 && !_rl_horizontal_scroll_mode &&
current_invis_chars != visible_wrap_offset)
{
--- 1638,1642 ----
the spot of first difference is before the end of the invisible chars,
lendiff needs to be adjusted. */
! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
current_invis_chars != visible_wrap_offset)
{
***************
*** 1826,1831 ****
_rl_last_c_pos += bytes_to_insert;
if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
! goto clear_rest_of_line;
}
}
--- 1826,1836 ----
_rl_last_c_pos += bytes_to_insert;
+ /* XXX - we only want to do this if we are at the end of the line
+ so we move there with _rl_move_cursor_relative */
if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
! {
! _rl_move_cursor_relative (ne-new, new);
! goto clear_rest_of_line;
! }
}
}