summaryrefslogtreecommitdiff
path: root/package/readline/readline52-010
diff options
context:
space:
mode:
authorHamish Moffatt <hamish@cloud.net.au>2008-02-06 01:26:58 +0000
committerHamish Moffatt <hamish@cloud.net.au>2008-02-06 01:26:58 +0000
commit83b7c8b381768a83fdca110a740448061ca2d898 (patch)
tree147441f9ce656876ed161a075d60a1c32001b848 /package/readline/readline52-010
parentd53b1d1f93fe0a92eaa92507a31e11a5f31a70d6 (diff)
Commit the new upstream patches and remove the old
Diffstat (limited to 'package/readline/readline52-010')
-rw-r--r--package/readline/readline52-01047
1 files changed, 47 insertions, 0 deletions
diff --git a/package/readline/readline52-010 b/package/readline/readline52-010
new file mode 100644
index 000000000..a9595f254
--- /dev/null
+++ b/package/readline/readline52-010
@@ -0,0 +1,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;
+ }