| 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; |
| |