summaryrefslogtreecommitdiffstats
path: root/source/l/readline/readline-5.2-patches/readline52-010
blob: ee5c026f827126618b47ed19941b16514e1329d9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
			   READLINE PATCH REPORT
			   =====================

Readline-Release: 5.2
Patch-ID: readline52-010

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:

*** ../readline-5.2-patched/display.c	2007-08-25 13:47:08.000000000 -0400
--- 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;
  	    }