66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			   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;
 | 
						|
  
 |