You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.9 KiB

BASH PATCH REPORT
=================
Bash-Release: 4.2
Patch-ID: bash42-031
Bug-Reported-by: Max Horn <max@quendi.de>
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 bash-4.1 and bash-4.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 bash-4.2 behavior.
Patch (apply with `patch -p0'):
*** ../bash-4.2-patched/lib/readline/input.c 2010-05-30 18:33:01.000000000 -0400
--- lib/readline/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');
*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
--- patchlevel.h Thu Feb 24 21:41:34 2011
***************
*** 26,30 ****
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 30
#endif /* _PATCHLEVEL_H_ */
--- 26,30 ----
looks for to find the patch level (for the sccs version string). */
! #define PATCHLEVEL 31
#endif /* _PATCHLEVEL_H_ */