diff options
author | Hamish Moffatt <hamish@cloud.net.au> | 2008-02-06 01:26:58 +0000 |
---|---|---|
committer | Hamish Moffatt <hamish@cloud.net.au> | 2008-02-06 01:26:58 +0000 |
commit | 83b7c8b381768a83fdca110a740448061ca2d898 (patch) | |
tree | 147441f9ce656876ed161a075d60a1c32001b848 /package/readline/readline52-010 | |
parent | d53b1d1f93fe0a92eaa92507a31e11a5f31a70d6 (diff) |
Commit the new upstream patches and remove the old
Diffstat (limited to 'package/readline/readline52-010')
-rw-r--r-- | package/readline/readline52-010 | 47 |
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; + } |