Patch 8.1.0851
Problem:    feedkeys() with "L" does not work properly.
Solution:   Do not set typebuf_was_filled when using "L". (Ozaki Kiichi,
            closes #3885)
Files:      src/evalfunc.c, src/testdir/test_autocmd.vim,
            src/testdir/test_mapping.vim, src/testdir/test_timers.vim


*** ../vim-8.1.0850/src/evalfunc.c      2019-01-29 22:58:02.401136295 +0100
--- src/evalfunc.c      2019-01-30 21:55:17.473416488 +0100
***************
*** 3705,3719 ****
  #endif
            }
            else
                ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE),
                                  insert ? 0 : typebuf.tb_len, !typed, FALSE);
!           vim_free(keys_esc);
!           if (vgetc_busy
  #ifdef FEAT_TIMERS
!                   || timer_busy
  #endif
!                   )
!               typebuf_was_filled = TRUE;
            if (execute)
            {
                int save_msg_scroll = msg_scroll;
--- 3705,3722 ----
  #endif
            }
            else
+           {
                ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE),
                                  insert ? 0 : typebuf.tb_len, !typed, FALSE);
!               if (vgetc_busy
  #ifdef FEAT_TIMERS
!                       || timer_busy
  #endif
!                       )
!                   typebuf_was_filled = TRUE;
!           }
!           vim_free(keys_esc);
! 
            if (execute)
            {
                int save_msg_scroll = msg_scroll;
*** ../vim-8.1.0850/src/testdir/test_autocmd.vim        2019-01-27 
22:32:51.584018729 +0100
--- src/testdir/test_autocmd.vim        2019-01-30 21:55:17.473416488 +0100
***************
*** 50,56 ****
      au CursorHoldI * let g:triggered += 1
      set updatetime=500
      call job_start(has('win32') ? 'cmd /c echo:' : 'echo',
!           \ {'exit_cb': {j, s -> timer_start(1000, 'ExitInsertMode')}})
      call feedkeys('a', 'x!')
      call assert_equal(1, g:triggered)
      unlet g:triggered
--- 50,56 ----
      au CursorHoldI * let g:triggered += 1
      set updatetime=500
      call job_start(has('win32') ? 'cmd /c echo:' : 'echo',
!           \ {'exit_cb': {-> timer_start(1000, 'ExitInsertMode')}})
      call feedkeys('a', 'x!')
      call assert_equal(1, g:triggered)
      unlet g:triggered
*** ../vim-8.1.0850/src/testdir/test_mapping.vim        2019-01-27 
22:32:51.584018729 +0100
--- src/testdir/test_mapping.vim        2019-01-30 21:55:17.473416488 +0100
***************
*** 215,221 ****
    set timeout timeoutlen=1000
  
    func ExitCb(job, status)
!     let g:timer = timer_start(1, {_ -> feedkeys("3\<Esc>", 't')})
    endfunc
  
    call job_start([&shell, &shellcmdflag, 'echo'], {'exit_cb': 'ExitCb'})
--- 215,221 ----
    set timeout timeoutlen=1000
  
    func ExitCb(job, status)
!     let g:timer = timer_start(1, {-> feedkeys("3\<Esc>", 't')})
    endfunc
  
    call job_start([&shell, &shellcmdflag, 'echo'], {'exit_cb': 'ExitCb'})
*** ../vim-8.1.0850/src/testdir/test_timers.vim 2019-01-29 20:36:53.350466201 
+0100
--- src/testdir/test_timers.vim 2019-01-30 21:55:17.473416488 +0100
***************
*** 251,265 ****
  endfunc
  
  func Test_getchar_zero()
!   if has('win32')
      " Console: no low-level input
-     " GUI: somehow doesn't work
      return
    endif
  
    " Measure the elapsed time to avoid a hang when it fails.
    let start = reltime()
!   let id = timer_start(20, {id -> feedkeys('x', 'L')})
    let c = 0
    while c == 0 && reltimefloat(reltime(start)) < 0.2
      let c = getchar(0)
--- 251,264 ----
  endfunc
  
  func Test_getchar_zero()
!   if has('win32') && !has('gui_running')
      " Console: no low-level input
      return
    endif
  
    " Measure the elapsed time to avoid a hang when it fails.
    let start = reltime()
!   let id = timer_start(20, {-> feedkeys('x', 'L')})
    let c = 0
    while c == 0 && reltimefloat(reltime(start)) < 0.2
      let c = getchar(0)
*** ../vim-8.1.0850/src/version.c       2019-01-30 21:51:24.427016059 +0100
--- src/version.c       2019-01-30 22:01:25.434932254 +0100
***************
*** 785,786 ****
--- 785,788 ----
  {   /* Add new patch number below this line */
+ /**/
+     851,
  /**/

-- 
The early bird gets the worm. The second mouse gets the cheese.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui