diff options
Diffstat (limited to 'data/vim/patches/8.1.1077')
-rw-r--r-- | data/vim/patches/8.1.1077 | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1077 b/data/vim/patches/8.1.1077 new file mode 100644 index 000000000..3e625862c --- /dev/null +++ b/data/vim/patches/8.1.1077 @@ -0,0 +1,141 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1077 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.1077 +Problem: reg_executing() is reset by calling input(). +Solution: Implement a more generic way to save and restore reg_executing. + (Ozaki Kiichi, closes #4192) +Files: src/evalfunc.c, src/ex_docmd.c, src/testdir/test_functions.vim + + +*** ../vim-8.1.1076/src/evalfunc.c 2019-03-30 13:53:26.170425120 +0100 +--- src/evalfunc.c 2019-03-30 14:20:39.794888514 +0100 +*************** +*** 4848,4854 **** + { + varnumber_T n; + int error = FALSE; +- int save_reg_executing = reg_executing; + + #ifdef MESSAGE_QUEUE + // vpeekc() used to check for messages, but that caused problems, invoking +--- 4848,4853 ---- +*************** +*** 4883,4889 **** + } + --no_mapping; + --allow_keys; +- reg_executing = save_reg_executing; + + set_vim_var_nr(VV_MOUSE_WIN, 0); + set_vim_var_nr(VV_MOUSE_WINID, 0); +--- 4882,4887 ---- +*** ../vim-8.1.1076/src/ex_docmd.c 2019-03-04 11:40:06.274241644 +0100 +--- src/ex_docmd.c 2019-03-30 14:20:39.794888514 +0100 +*************** +*** 1699,1704 **** +--- 1699,1705 ---- + exarg_T ea; /* Ex command arguments */ + int save_msg_scroll = msg_scroll; + cmdmod_T save_cmdmod; ++ int save_reg_executing = reg_executing; + int ni; /* set when Not Implemented */ + char_u *cmd; + +*************** +*** 2579,2584 **** +--- 2580,2586 ---- + + free_cmdmod(); + cmdmod = save_cmdmod; ++ reg_executing = save_reg_executing; + + if (ea.save_msg_silent != -1) + { +*** ../vim-8.1.1076/src/testdir/test_functions.vim 2019-03-05 12:24:04.795965374 +0100 +--- src/testdir/test_functions.vim 2019-03-30 14:20:39.794888514 +0100 +*************** +*** 1150,1169 **** + " getchar() command saves and restores reg_executing + map W :call TestFunc()<CR> + let @q = "W" + func TestFunc() abort +! let g:reg1 = reg_executing() + let g:typed = getchar(0) +! let g:reg2 = reg_executing() + endfunc + call feedkeys("@qy", 'xt') + call assert_equal(char2nr("y"), g:typed) +! call assert_equal('q', g:reg1) +! call assert_equal('q', g:reg2) + delfunc TestFunc + unmap W + unlet g:typed +! unlet g:reg1 +! unlet g:reg2 + + bwipe! + delfunc s:save_reg_stat +--- 1150,1187 ---- + " getchar() command saves and restores reg_executing + map W :call TestFunc()<CR> + let @q = "W" ++ let g:typed = '' ++ let g:regs = [] + func TestFunc() abort +! let g:regs += [reg_executing()] + let g:typed = getchar(0) +! let g:regs += [reg_executing()] + endfunc + call feedkeys("@qy", 'xt') + call assert_equal(char2nr("y"), g:typed) +! call assert_equal(['q', 'q'], g:regs) + delfunc TestFunc + unmap W + unlet g:typed +! unlet g:regs +! +! " input() command saves and restores reg_executing +! map W :call TestFunc()<CR> +! let @q = "W" +! let g:typed = '' +! let g:regs = [] +! func TestFunc() abort +! let g:regs += [reg_executing()] +! let g:typed = input('?') +! let g:regs += [reg_executing()] +! endfunc +! call feedkeys("@qy\<CR>", 'xt') +! call assert_equal("y", g:typed) +! call assert_equal(['q', 'q'], g:regs) +! delfunc TestFunc +! unmap W +! unlet g:typed +! unlet g:regs + + bwipe! + delfunc s:save_reg_stat +*** ../vim-8.1.1076/src/version.c 2019-03-30 13:53:26.174425093 +0100 +--- src/version.c 2019-03-30 14:22:17.738221749 +0100 +*************** +*** 777,778 **** +--- 777,780 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1077, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +155. You forget to eat because you're too busy surfing the net. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 /// |