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