]>
Commit | Line | Data |
---|---|---|
f19b3cb6 MT |
1 | READLINE PATCH REPORT |
2 | ===================== | |
3 | ||
4 | Readline-Release: 5.2 | |
5 | Patch-ID: readline52-007 | |
6 | ||
7 | Bug-Reported-by: Tom Bjorkholm <tom.bjorkholm@ericsson.com> | |
8 | Bug-Reference-ID: <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se> | |
9 | Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html | |
10 | ||
11 | ||
12 | Bug-Description: | |
13 | ||
14 | An off-by-one error in readline's input buffering caused readline to drop | |
15 | each 511th character of buffered input (e.g., when pasting a large amount | |
16 | of data into a terminal window). | |
17 | ||
18 | Patch: | |
19 | ||
20 | *** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 | |
21 | --- input.c Tue Jul 17 09:24:21 2007 | |
22 | *************** | |
23 | *** 134,139 **** | |
24 | ||
25 | *key = ibuffer[pop_index++]; | |
26 | ! | |
27 | if (pop_index >= ibuffer_len) | |
28 | pop_index = 0; | |
29 | ||
30 | --- 134,142 ---- | |
31 | ||
32 | *key = ibuffer[pop_index++]; | |
33 | ! #if 0 | |
34 | if (pop_index >= ibuffer_len) | |
35 | + #else | |
36 | + if (pop_index > ibuffer_len) | |
37 | + #endif | |
38 | pop_index = 0; | |
39 | ||
40 | *************** | |
41 | *** 251,255 **** | |
42 | { | |
43 | k = (*rl_getc_function) (rl_instream); | |
44 | ! rl_stuff_char (k); | |
45 | if (k == NEWLINE || k == RETURN) | |
46 | break; | |
47 | --- 254,259 ---- | |
48 | { | |
49 | k = (*rl_getc_function) (rl_instream); | |
50 | ! if (rl_stuff_char (k) == 0) | |
51 | ! break; /* some problem; no more room */ | |
52 | if (k == NEWLINE || k == RETURN) | |
53 | break; | |
54 | *************** | |
55 | *** 374,378 **** | |
56 | --- 378,386 ---- | |
57 | } | |
58 | ibuffer[push_index++] = key; | |
59 | + #if 0 | |
60 | if (push_index >= ibuffer_len) | |
61 | + #else | |
62 | + if (push_index > ibuffer_len) | |
63 | + #endif | |
64 | push_index = 0; | |
65 |