diff options
Diffstat (limited to 'package/readline/readline52-007')
| -rw-r--r-- | package/readline/readline52-007 | 65 | 
1 files changed, 65 insertions, 0 deletions
| diff --git a/package/readline/readline52-007 b/package/readline/readline52-007 new file mode 100644 index 000000000..6c2d0d103 --- /dev/null +++ b/package/readline/readline52-007 @@ -0,0 +1,65 @@ +			   READLINE PATCH REPORT +			   ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-007 + +Bug-Reported-by:        Tom Bjorkholm <tom.bjorkholm@ericsson.com> +Bug-Reference-ID:       <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se> +Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../readline-5.2/input.c	Wed Aug 16 15:15:16 2006 +--- ./input.c	Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** +   +    *key = ibuffer[pop_index++]; +!  +    if (pop_index >= ibuffer_len) +      pop_index = 0; +   +--- 134,142 ---- +   +    *key = ibuffer[pop_index++]; +! #if 0 +    if (pop_index >= ibuffer_len) ++ #else ++   if (pop_index > ibuffer_len) ++ #endif +      pop_index = 0; +   +*************** +*** 251,255 **** +  	{ +  	  k = (*rl_getc_function) (rl_instream); +! 	  rl_stuff_char (k); +  	  if (k == NEWLINE || k == RETURN) +  	    break; +--- 254,259 ---- +  	{ +  	  k = (*rl_getc_function) (rl_instream); +! 	  if (rl_stuff_char (k) == 0) +! 	    break;			/* some problem; no more room */ +  	  if (k == NEWLINE || k == RETURN) +  	    break; +*************** +*** 374,378 **** +--- 378,386 ---- +      } +    ibuffer[push_index++] = key; ++ #if 0 +    if (push_index >= ibuffer_len) ++ #else ++   if (push_index > ibuffer_len) ++ #endif +      push_index = 0; +   | 
