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 c...@case.edu 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; ! } } }