]> granicus.if.org Git - vim/commitdiff
patch 7.4.1888 v7.4.1888
authorBram Moolenaar <Bram@vim.org>
Sat, 4 Jun 2016 12:37:22 +0000 (14:37 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 4 Jun 2016 12:37:22 +0000 (14:37 +0200)
Problem:    Wrong computation of remaining wait time in RealWaitForChar()
Solution:   Remember the original waiting time.

src/os_unix.c
src/version.c

index 5c30a43584ebd884556af96b462f1bb05b7ffe9b..4b2c99e85e61d5dc4e895922d7adfc8795b8254f 100644 (file)
@@ -5577,25 +5577,10 @@ RealWaitForChar(int fd, long msec, int *check_for_gpm UNUSED, int *interrupted)
     /* Remember at what time we started, so that we know how much longer we
      * should wait after being interrupted. */
 #  define USE_START_TV
+    long           start_msec = msec;
     struct timeval  start_tv;
 
-    if (msec > 0 && (
-#  ifdef FEAT_XCLIPBOARD
-           xterm_Shell != (Widget)0
-#   if defined(USE_XSMP) || defined(FEAT_MZSCHEME)
-           ||
-#   endif
-#  endif
-#  ifdef USE_XSMP
-           xsmp_icefd != -1
-#   ifdef FEAT_MZSCHEME
-           ||
-#   endif
-#  endif
-#  ifdef FEAT_MZSCHEME
-       (mzthreads_allowed() && p_mzq > 0)
-#  endif
-           ))
+    if (msec > 0)
        gettimeofday(&start_tv, NULL);
 # endif
 
@@ -5911,7 +5896,7 @@ select_eintr:
        {
 # ifdef USE_START_TV
            /* Compute remaining wait time. */
-           msec -= elapsed(&start_tv);
+           msec = start_msec - elapsed(&start_tv);
 # else
            /* Guess we got interrupted halfway. */
            msec = msec / 2;
index 7ad9e1b707fe292f271e7ee30f5841d5722044df..e18515e117401912a71537ea01e211b4f651a17d 100644 (file)
@@ -753,6 +753,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1888,
 /**/
     1887,
 /**/