READLINE PATCH REPORT
                          =====================

Readline-Release: 6.0
Patch-ID: readline60-004

Bug-Reported-by:        [email protected]
Bug-Reference-ID:       <[email protected]>
Bug-Reference-URL:      http://lists.gnu.org/archive/html/bug-bash/2009-05/msg00074.html

Bug-Description:

There are occasional cursor positioning errors when using readline's
horizontal scroll mode.

Patch:

*** ../readline-6.0-patched/display.c   2009-05-22 12:32:25.000000000 -0400
--- display.c   2009-05-29 23:32:20.000000000 -0400
***************
*** 1190,1196 ****
       line[t - 1] = '>';

!       if (!rl_display_fixed || forced_display || lmargin != last_lmargin)
       {
         forced_display = 0;
         update_line (&visible_line[last_lmargin],
                      &invisible_line[lmargin],
--- 1192,1200 ----
       line[t - 1] = '>';

!       if (rl_display_fixed == 0 || forced_display || lmargin != last_lmargin)
       {
         forced_display = 0;
+         o_cpos = _rl_last_c_pos;
+         cpos_adjusted = 0;
         update_line (&visible_line[last_lmargin],
                      &invisible_line[lmargin],
***************
*** 1200,1203 ****
--- 1204,1214 ----
                      0);

+         if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+             cpos_adjusted == 0 &&
+             _rl_last_c_pos != o_cpos &&
+             _rl_last_c_pos > wrap_offset &&
+             o_cpos < prompt_last_invisible)
+               _rl_last_c_pos -= prompt_invis_chars_first_line;        /* XXX - was wrap_offset */
+
         /* If the visible new line is shorter than the old, but the number
            of invisible characters is greater, and we are at the end of
*** ../readline-6.0/patchlevel  2008-11-18 11:01:14.000000000 -0500
--- patchlevel  2009-05-09 12:01:06.000000000 -0400
***************
*** 1,3 ****
 # Do not edit -- exists only for use by patch

! 3
--- 1,3 ----
 # Do not edit -- exists only for use by patch

! 4