2008-04-29 22:03:03 +02:00
|
|
|
BASH PATCH REPORT
|
|
|
|
=================
|
|
|
|
|
|
|
|
Bash-Release: 3.2
|
|
|
|
Patch-ID: bash32-031
|
|
|
|
|
|
|
|
Bug-Reported-by: Miroslav Lichvar <mlichvar@redhat.com>
|
|
|
|
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:
|
|
|
|
|
2008-05-01 21:07:58 +02:00
|
|
|
*** bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
|
|
|
|
--- bash-3.2/lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500
|
2008-04-29 22:03:03 +02:00
|
|
|
***************
|
|
|
|
*** 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;
|
|
|
|
}
|
2008-05-01 21:07:58 +02:00
|
|
|
*** bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
|
|
|
--- bash-3.2/patchlevel.h Mon Oct 16 14:22:54 2006
|
2008-04-29 22:03:03 +02:00
|
|
|
***************
|
|
|
|
*** 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_ */
|