Author: matthew
Date: 2009-06-25 12:50:03 -0600 (Thu, 25 Jun 2009)
New Revision: 2084

Added:
   trunk/readline/readline-6.0-fixes-1.patch
Log:
Add upstream patches for Readline-6.0

Added: trunk/readline/readline-6.0-fixes-1.patch
===================================================================
--- trunk/readline/readline-6.0-fixes-1.patch                           (rev 0)
+++ trunk/readline/readline-6.0-fixes-1.patch   2009-06-25 18:50:03 UTC (rev 
2084)
@@ -0,0 +1,92 @@
+Submitted By:            Matt Burgess <matthew_at_linuxfromscratch_dot_org>
+Date:                    2009-06-25
+Initial Package Version: 6.0
+Upstream Status:         Already in upstream patch repo
+Origin:                  Upstream
+Description:             This patch contains upstream patch numbers 1 thru 3.
+
+diff -Naur readline-6.0.orig/display.c readline-6.0/display.c
+--- readline-6.0.orig/display.c        2009-01-04 19:32:32.000000000 +0000
++++ readline-6.0/display.c     2009-06-25 19:48:47.000000000 +0100
+@@ -512,6 +512,7 @@
+   /* Block keyboard interrupts because this function manipulates global
+      data structures. */
+   _rl_block_sigint ();  
++  RL_SETSTATE (RL_STATE_REDISPLAYING);
+ 
+   if (!rl_display_prompt)
+     rl_display_prompt = "";
+@@ -1236,6 +1237,7 @@
+       visible_wrap_offset = wrap_offset;
+   }
+ 
++  RL_UNSETSTATE (RL_STATE_REDISPLAYING);
+   _rl_release_sigint ();
+ }
+ 
+@@ -1772,7 +1774,7 @@
+            space_to_eol will insert too many spaces.  XXX - maybe we should
+            adjust col_lendiff based on the difference between _rl_last_c_pos
+            and _rl_screenwidth */
+-        if (col_lendiff && (_rl_last_c_pos < _rl_screenwidth))
++        if (col_lendiff && ((MB_CUR_MAX == 1 || rl_byte_oriented) || 
(_rl_last_c_pos < _rl_screenwidth)))
+ #endif
+           {     
+             if (_rl_term_autowrap && current_line < inv_botlin)
+@@ -1892,6 +1894,10 @@
+ 
+   woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
+   cpos = _rl_last_c_pos;
++
++  if (cpos == 0 && cpos == new)
++    return;
++
+ #if defined (HANDLE_MULTIBYTE)
+   /* If we have multibyte characters, NEW is indexed by the buffer point in
+      a multibyte string, but _rl_last_c_pos is the display position.  In
+@@ -1905,9 +1911,9 @@
+        prompt string, since they're both buffer indices and DPOS is a
+        desired display position. */
+       if ((new > prompt_last_invisible) ||            /* XXX - don't use woff 
here */
+-        (prompt_physical_chars > _rl_screenwidth &&
++        (prompt_physical_chars >= _rl_screenwidth &&
+          _rl_last_v_pos == prompt_last_screen_line &&
+-         wrap_offset >= woff &&
++         wrap_offset >= woff && dpos >= woff &&
+          new > 
(prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset)))
+          /* XXX last comparison might need to be >= */
+       {
+diff -Naur readline-6.0.orig/patchlevel readline-6.0/patchlevel
+--- readline-6.0.orig/patchlevel       2008-11-18 16:01:14.000000000 +0000
++++ readline-6.0/patchlevel    2009-06-25 19:48:47.000000000 +0100
+@@ -1,3 +1,3 @@
+ # Do not edit -- exists only for use by patch
+ 
+-0
++3
+diff -Naur readline-6.0.orig/readline.h readline-6.0/readline.h
+--- readline-6.0.orig/readline.h       2009-01-04 19:32:33.000000000 +0000
++++ readline-6.0/readline.h    2009-06-25 19:48:47.000000000 +0100
+@@ -814,8 +814,9 @@
+ #define RL_STATE_VIMOTION     0x100000        /* reading vi motion arg */
+ #define RL_STATE_MULTIKEY     0x200000        /* reading multiple-key command 
*/
+ #define RL_STATE_VICMDONCE    0x400000        /* entered vi command mode at 
least once */
++#define RL_STATE_REDISPLAYING 0x800000        /* updating terminal display */
+ 
+-#define RL_STATE_DONE         0x800000        /* done; accepted line */
++#define RL_STATE_DONE         0x1000000       /* done; accepted line */
+ 
+ #define RL_SETSTATE(x)                (rl_readline_state |= (x))
+ #define RL_UNSETSTATE(x)      (rl_readline_state &= ~(x))
+diff -Naur readline-6.0.orig/terminal.c readline-6.0/terminal.c
+--- readline-6.0.orig/terminal.c       2009-01-04 19:32:34.000000000 +0000
++++ readline-6.0/terminal.c    2009-06-25 19:48:47.000000000 +0100
+@@ -355,7 +355,7 @@
+       _rl_get_screen_size (fileno (rl_instream), 1);
+       if (CUSTOM_REDISPLAY_FUNC ())
+       rl_forced_update_display ();
+-      else
++      else if (RL_ISSTATE(RL_STATE_REDISPLAYING) == 0)
+       _rl_redisplay_after_sigwinch ();
+     }
+ }

-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to