bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bash-4.2 Official Patch 31


From: Chet Ramey
Subject: Bash-4.2 Official Patch 31
Date: Tue, 10 Jul 2012 12:02:08 -0400

                             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_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]