READLINE PATCH REPORT ===================== Readline-Release: 6.2 Patch-ID: readline62-003 Bug-Reported-by: Max Horn Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de> Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html Bug-Description: A change between readline-6.1 and readline-6.2 to prevent the readline input hook from being called too frequently had the side effect of causing delays when reading pasted input on systems such as Mac OS X. This patch fixes those delays while retaining the readline-6.2 behavior. Patch (apply with `patch -p0'): *** ../readline-6.2-patched/input.c 2010-05-30 18:33:01.000000000 -0400 --- input.c 2012-06-25 21:08:42.000000000 -0400 *************** *** 410,414 **** rl_read_key () { ! int c; rl_key_sequence_length++; --- 412,416 ---- rl_read_key () { ! int c, r; rl_key_sequence_length++; *************** *** 430,441 **** while (rl_event_hook) { ! if (rl_gather_tyi () < 0) /* XXX - EIO */ { rl_done = 1; return ('\n'); } RL_CHECK_SIGNALS (); - if (rl_get_char (&c) != 0) - break; if (rl_done) /* XXX - experimental */ return ('\n'); --- 432,447 ---- while (rl_event_hook) { ! if (rl_get_char (&c) != 0) ! break; ! ! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ { rl_done = 1; return ('\n'); } + else if (r == 1) /* read something */ + continue; + RL_CHECK_SIGNALS (); if (rl_done) /* XXX - experimental */ return ('\n'); *** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 --- patchlevel 2011-11-17 11:09:35.000000000 -0500 *************** *** 1,3 **** # Do not edit -- exists only for use by patch ! 2 --- 1,3 ---- # Do not edit -- exists only for use by patch ! 3