diff options
Diffstat (limited to 'data/vim/patches/8.1.1136')
-rw-r--r-- | data/vim/patches/8.1.1136 | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1136 b/data/vim/patches/8.1.1136 new file mode 100644 index 000000000..e5b738bd5 --- /dev/null +++ b/data/vim/patches/8.1.1136 @@ -0,0 +1,160 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1136 +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.1136 +Problem: Decoding of mouse click escape sequence is not tested. +Solution: Add a test for xterm and SGR using low-level input. Make + low-level input execution with feedkeys() work. +Files: src/testdir/test_termcodes.vim, src/testdir/Make_all.mak, + src/evalfunc.c, src/ex_docmd.c + + +*** ../vim-8.1.1135/src/testdir/test_termcodes.vim 2019-04-07 14:20:33.310644684 +0200 +--- src/testdir/test_termcodes.vim 2019-04-07 14:13:21.705198866 +0200 +*************** +*** 0 **** +--- 1,47 ---- ++ " Tests for decoding escape sequences sent by the terminal. ++ ++ " This only works for Unix in a terminal ++ if has('gui_running') || !has('unix') ++ finish ++ endif ++ ++ func Test_xterm_mouse_click() ++ new ++ let save_mouse = &mouse ++ let save_term = &term ++ let save_ttymouse = &ttymouse ++ set mouse=a ++ set term=xterm ++ call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer']) ++ redraw ++ ++ " Xterm mouse click ++ set ttymouse=xterm ++ let button = 0x20 " left down ++ let row = 2 + 32 ++ let col = 6 + 32 ++ call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!') ++ ++ let button = 0x23 " release ++ call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!') ++ ++ call assert_equal([0, 2, 6, 0], getpos('.')) ++ ++ " SGR mouse click ++ set ttymouse=sgr ++ let button = 0 " left down ++ let row = 3 ++ let col = 9 ++ call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') ++ ++ let button = 3 " release ++ call feedkeys(printf("\<Esc>[<%d;%d;%dm", button, col, row), 'Lx!') ++ ++ call assert_equal([0, 3, 9, 0], getpos('.')) ++ ++ let &mouse = save_mouse ++ let &term = save_term ++ let &ttymouse = save_ttymouse ++ bwipe! ++ endfunc ++ +*** ../vim-8.1.1135/src/testdir/Make_all.mak 2019-03-24 20:18:36.827484226 +0100 +--- src/testdir/Make_all.mak 2019-04-07 12:14:19.864037012 +0200 +*************** +*** 250,255 **** +--- 250,256 ---- + test_taglist \ + test_tcl \ + test_termencoding \ ++ test_termcodes \ + test_terminal \ + test_terminal_fail \ + test_textformat \ +*************** +*** 402,407 **** +--- 403,409 ---- + test_tab.res \ + test_tcl.res \ + test_termencoding.res \ ++ test_termcodes.res \ + test_terminal.res \ + test_terminal_fail.res \ + test_textformat.res \ +*** ../vim-8.1.1135/src/evalfunc.c 2019-04-06 22:01:20.756989404 +0200 +--- src/evalfunc.c 2019-04-07 13:41:30.844418341 +0200 +*************** +*** 3792,3798 **** + + if (!dangerous) + ++ex_normal_busy; +! exec_normal(TRUE, FALSE, TRUE); + if (!dangerous) + --ex_normal_busy; + +--- 3792,3798 ---- + + if (!dangerous) + ++ex_normal_busy; +! exec_normal(TRUE, lowlevel, TRUE); + if (!dangerous) + --ex_normal_busy; + +*** ../vim-8.1.1135/src/ex_docmd.c 2019-03-30 18:46:57.348077402 +0100 +--- src/ex_docmd.c 2019-04-07 13:42:08.252219954 +0200 +*************** +*** 10487,10498 **** + exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop UNUSED) + { + oparg_T oa; + + clear_oparg(&oa); + finish_op = FALSE; + while ((!stuff_empty() + || ((was_typed || !typebuf_typed()) && typebuf.tb_len > 0) +! || (use_vpeekc && vpeekc() != NUL)) + && !got_int) + { + update_topline_cursor(); +--- 10487,10501 ---- + exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop UNUSED) + { + oparg_T oa; ++ int c; + ++ // When calling vpeekc() from feedkeys() it will return Ctrl_C when there ++ // is nothing to get, so also check for Ctrl_C. + clear_oparg(&oa); + finish_op = FALSE; + while ((!stuff_empty() + || ((was_typed || !typebuf_typed()) && typebuf.tb_len > 0) +! || (use_vpeekc && (c = vpeekc()) != NUL && c != Ctrl_C)) + && !got_int) + { + update_topline_cursor(); +*** ../vim-8.1.1135/src/version.c 2019-04-07 14:19:06.323149516 +0200 +--- src/version.c 2019-04-07 14:20:18.542730124 +0200 +*************** +*** 773,774 **** +--- 773,776 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1136, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +222. You send more than 20 personal e-mails a day. + + /// 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 /// |