bug-readline
[Top][All Lists]
Advanced

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

[Bug-readline] Readline-6.2 Official Patch 3


From: Chet Ramey
Subject: [Bug-readline] Readline-6.2 Official Patch 3
Date: Tue, 10 Jul 2012 11:11:44 -0400

                           READLINE PATCH REPORT
                           =====================

Readline-Release: 6.2
Patch-ID: readline62-003

Bug-Reported-by:        Max Horn <address@hidden>
Bug-Reference-ID:       <address@hidden>
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

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



reply via email to

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