BASH PATCH REPORT ================= Bash-Release: 3.2 Patch-ID: bash32-031 Bug-Reported-by: Miroslav Lichvar Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html Bug-Description: In certain cases when outputting characters at the end of the line, e.g., when displaying the prompt string, readline positions the cursor incorrectly if the prompt string contains invisible characters and the text being drawn begins before the last invisible character in the line. Patch: *** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 --- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 *************** *** 1566,1574 **** else { - /* We have horizontal scrolling and we are not inserting at - the end. We have invisible characters in this line. This - is a dumb update. */ _rl_output_some_chars (nfd, temp); _rl_last_c_pos += col_temp; return; } --- 1619,1632 ---- else { _rl_output_some_chars (nfd, temp); _rl_last_c_pos += col_temp; + /* If nfd begins before any invisible characters in the prompt, + adjust _rl_last_c_pos to account for wrap_offset and set + cpos_adjusted to let the caller know. */ + if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) + { + _rl_last_c_pos -= wrap_offset; + cpos_adjusted = 1; + } return; } *** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 --- patchlevel.h Mon Oct 16 14:22:54 2006 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 30 #endif /* _PATCHLEVEL_H_ */ --- 26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 31 #endif /* _PATCHLEVEL_H_ */