1 READLINE PATCH REPORT 2 ===================== 3 4Readline-Release: 6.2 5Patch-ID: readline62-003 6 7Bug-Reported-by: Max Horn <max@quendi.de> 8Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de> 9Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html 10 11Bug-Description: 12 13A change between readline-6.1 and readline-6.2 to prevent the readline input 14hook from being called too frequently had the side effect of causing delays 15when reading pasted input on systems such as Mac OS X. This patch fixes 16those delays while retaining the readline-6.2 behavior. 17 18Patch (apply with `patch -p0'): 19 20*** ../readline-6.2-patched/input.c 2010-05-30 18:33:01.000000000 -0400 21--- input.c 2012-06-25 21:08:42.000000000 -0400 22*************** 23*** 410,414 **** 24 rl_read_key () 25 { 26! int c; 27 28 rl_key_sequence_length++; 29--- 412,416 ---- 30 rl_read_key () 31 { 32! int c, r; 33 34 rl_key_sequence_length++; 35*************** 36*** 430,441 **** 37 while (rl_event_hook) 38 { 39! if (rl_gather_tyi () < 0) /* XXX - EIO */ 40 { 41 rl_done = 1; 42 return ('\n'); 43 } 44 RL_CHECK_SIGNALS (); 45- if (rl_get_char (&c) != 0) 46- break; 47 if (rl_done) /* XXX - experimental */ 48 return ('\n'); 49--- 432,447 ---- 50 while (rl_event_hook) 51 { 52! if (rl_get_char (&c) != 0) 53! break; 54! 55! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ 56 { 57 rl_done = 1; 58 return ('\n'); 59 } 60+ else if (r == 1) /* read something */ 61+ continue; 62+ 63 RL_CHECK_SIGNALS (); 64 if (rl_done) /* XXX - experimental */ 65 return ('\n'); 66*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 67--- patchlevel 2011-11-17 11:09:35.000000000 -0500 68*************** 69*** 1,3 **** 70 # Do not edit -- exists only for use by patch 71 72! 2 73--- 1,3 ---- 74 # Do not edit -- exists only for use by patch 75 76! 3 77