diff options
Diffstat (limited to 'data/vim/patches/8.1.1155')
-rw-r--r-- | data/vim/patches/8.1.1155 | 372 |
1 files changed, 372 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1155 b/data/vim/patches/8.1.1155 new file mode 100644 index 000000000..631083f04 --- /dev/null +++ b/data/vim/patches/8.1.1155 @@ -0,0 +1,372 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1155 +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.1155 +Problem: Termcodes tests can be improved. +Solution: Add helper functions to simplify tests. Dragging statusline for + xterm and sgr. (Dominique Pelle, closes #4237) +Files: src/testdir/test_termcodes.vim + + +*** ../vim-8.1.1154/src/testdir/test_termcodes.vim 2019-04-09 21:51:59.177300145 +0200 +--- src/testdir/test_termcodes.vim 2019-04-11 23:53:26.777268934 +0200 +*************** +*** 5,43 **** + 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 +--- 5,65 ---- + finish + endif + ++ " Helper function to emit a terminal escape code. ++ func TerminalEscapeCode(code_xterm, code_sgr, row, col, m) ++ if &ttymouse ==# 'xterm' ++ " need to use byte encoding here. ++ let str = list2str([a:code_xterm, a:col + 0x20, a:row + 0x20]) ++ if has('iconv') ++ let bytes = iconv(str, 'utf-8', 'latin1') ++ else ++ " Hopefully the numbers are not too big. ++ let bytes = str ++ endif ++ call feedkeys("\<Esc>[M" .. bytes, 'Lx!') ++ elseif &ttymouse ==# 'sgr' ++ call feedkeys(printf("\<Esc>[<%d;%d;%d%s", a:code_sgr, a:col, a:row, a:m), 'Lx!') ++ endif ++ endfunc ++ ++ func MouseLeftClick(row, col) ++ call TerminalEscapeCode(0x20, 0, a:row, a:col, 'M') ++ endfunc ++ ++ func MouseLeftRelease(row, col) ++ call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') ++ endfunc ++ ++ func MouseLeftDrag(row, col) ++ call TerminalEscapeCode(0x43, 0x20, a:row, a:col, 'M') ++ endfunc ++ ++ func MouseWheelUp(row, col) ++ call TerminalEscapeCode(0x40, 0x40, a:row, a:col, 'M') ++ endfunc ++ ++ func MouseWheelDown(row, col) ++ call TerminalEscapeCode(0x41, 0x41, a:row, a:col, 'M') ++ endfunc ++ + func Test_xterm_mouse_click() + new + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse +! set mouse=a term=xterm + call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer']) + +! for ttymouse_val in ['xterm', 'sgr'] +! exe 'set ttymouse=' . ttymouse_val +! go +! call assert_equal([0, 1, 1, 0], getpos('.')) +! let row = 2 +! let col = 6 +! call MouseLeftClick(row, col) +! call MouseLeftRelease(row, col) +! call assert_equal([0, 2, 6, 0], getpos('.')) +! endfor + + let &mouse = save_mouse + let &term = save_term +*************** +*** 50,110 **** + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse +! set mouse=a +! set term=xterm + call setline(1, range(1, 100)) + +! " Test Xterm mouse wheel. +! set ttymouse=xterm +! let button = 0x41 " wheel down. +! let row = 1 + 32 " cursor position for mouse wheel is not relevant. +! let col = 1 + 32 +! +! call assert_equal(1, line('w0')) +! call assert_equal([0, 1, 1, 0], getpos('.')) +! call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!') +! call assert_equal(4, line('w0')) +! call assert_equal([0, 4, 1, 0], getpos('.')) +! call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!') +! call assert_equal(7, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! +! let button = 0x40 " wheel up. +! +! call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!') +! call assert_equal(4, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!') +! call assert_equal(1, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! +! " Test SGR mouse wheel. +! set ttymouse=sgr +! go +! let button = 0x41 " wheel down. +! let row = 1 " cursor position for mouse wheel is not relevant. +! let col = 1 +! +! call assert_equal(1, line('w0')) +! call assert_equal([0, 1, 1, 0], getpos('.')) +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! call assert_equal(4, line('w0')) +! call assert_equal([0, 4, 1, 0], getpos('.')) +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! call assert_equal(7, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! +! let button = 0x40 " wheel up. +! +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! call assert_equal(4, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! call assert_equal(1, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! call assert_equal(1, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) + + let &mouse = save_mouse + let &term = save_term +--- 72,102 ---- + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse +! set mouse=a term=xterm + call setline(1, range(1, 100)) + +! for ttymouse_val in ['xterm', 'sgr'] +! exe 'set ttymouse=' . ttymouse_val +! go +! call assert_equal(1, line('w0')) +! call assert_equal([0, 1, 1, 0], getpos('.')) +! +! call MouseWheelDown(1, 1) +! call assert_equal(4, line('w0')) +! call assert_equal([0, 4, 1, 0], getpos('.')) +! +! call MouseWheelDown(1, 1) +! call assert_equal(7, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! +! call MouseWheelUp(1, 1) +! call assert_equal(4, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! +! call MouseWheelUp(1, 1) +! call assert_equal(1, line('w0')) +! call assert_equal([0, 7, 1, 0], getpos('.')) +! endfor + + let &mouse = save_mouse + let &term = save_term +*************** +*** 116,170 **** + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse +! set mouse=a +! set term=xterm +! set ttymouse=sgr +! +! " Split horizontally and test dragging the horizontal window separator. +! split +! let rowseparator = winheight(0) + 1 +! +! let button = 0 " left down. +! let row = rowseparator +! let col = 1 +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! +! let drag = 32 +! let row -= 1 +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", drag, col, row), 'Lx!') +! call assert_equal(rowseparator - 1, winheight(0) + 1) +! let row += 1 +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", drag, col, row), 'Lx!') +! call assert_equal(rowseparator, winheight(0) + 1) +! +! let release = 3 +! call feedkeys(printf("\<Esc>[<%d;%d;%dm", release, col, row), 'Lx!') +! call assert_equal(rowseparator, winheight(0) + 1) + +! bwipe! + +! " Split vertically and test dragging the vertical window separator. +! vsplit +! let colseparator = winwidth(0) + 1 +! +! let button = 0 +! let row = 1 +! let col = colseparator +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!') +! +! let drag = 32 +! let col -= 1 +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", drag, col, row), 'Lx!') +! call assert_equal(colseparator - 1, winwidth(0) + 1) +! let col += 1 +! call feedkeys(printf("\<Esc>[<%d;%d;%dM", drag, col, row), 'Lx!') +! call assert_equal(colseparator, winwidth(0) + 1) +! +! let release = 3 +! call feedkeys(printf("\<Esc>[<%d;%d;%dm", release, col, row), 'Lx!') +! call assert_equal(colseparator, winwidth(0) + 1) + +- bwipe! + let &mouse = save_mouse + let &term = save_term + let &ttymouse = save_ttymouse +--- 108,187 ---- + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse +! set mouse=a term=xterm + +! for ttymouse_val in ['xterm', 'sgr'] +! exe 'set ttymouse=' . ttymouse_val + +! " Split horizontally and test dragging the horizontal window separator. +! split +! let rowseparator = winheight(0) + 1 +! let row = rowseparator +! let col = 1 +! call MouseLeftClick(row, col) +! +! let row -= 1 +! call MouseLeftDrag(row, col) +! call assert_equal(rowseparator - 1, winheight(0) + 1) +! let row += 1 +! call MouseLeftDrag(row, col) +! call assert_equal(rowseparator, winheight(0) + 1) +! call MouseLeftRelease(row, col) +! call assert_equal(rowseparator, winheight(0) + 1) +! +! bwipe! +! +! " Split vertically and test dragging the vertical window separator. +! vsplit +! let colseparator = winwidth(0) + 1 +! +! let row = 1 +! let col = colseparator +! call MouseLeftClick(row, col) +! let col -= 1 +! call MouseLeftDrag(row, col) +! call assert_equal(colseparator - 1, winwidth(0) + 1) +! let col += 1 +! call MouseLeftDrag(row, col) +! call assert_equal(colseparator, winwidth(0) + 1) +! call MouseLeftRelease(row, col) +! call assert_equal(colseparator, winwidth(0) + 1) +! +! bwipe! +! endfor +! +! let &mouse = save_mouse +! let &term = save_term +! let &ttymouse = save_ttymouse +! endfunc +! +! func Test_xterm_mouse_drag_statusline() +! let save_mouse = &mouse +! let save_term = &term +! let save_ttymouse = &ttymouse +! set mouse=a term=xterm +! +! for ttymouse_val in ['xterm', 'sgr'] +! exe 'set ttymouse=' . ttymouse_val +! +! call assert_equal(1, &cmdheight) +! let rowstatusline = winheight(0) + 1 +! let row = rowstatusline +! let col = 1 +! call MouseLeftClick(row, col) +! let row -= 1 +! call MouseLeftDrag(row, col) +! call assert_equal(2, &cmdheight) +! call assert_equal(rowstatusline - 1, winheight(0) + 1) +! let row += 1 +! call MouseLeftDrag(row, col) +! call assert_equal(1, &cmdheight) +! call assert_equal(rowstatusline, winheight(0) + 1) +! call MouseLeftRelease(row, col) +! call assert_equal(1, &cmdheight) +! call assert_equal(rowstatusline, winheight(0) + 1) +! endfor + + let &mouse = save_mouse + let &term = save_term + let &ttymouse = save_ttymouse +*** ../vim-8.1.1154/src/version.c 2019-04-11 20:14:52.448664389 +0200 +--- src/version.c 2019-04-11 23:02:25.131500056 +0200 +*************** +*** 773,774 **** +--- 773,776 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1155, + /**/ + +-- +Did you hear about the new 3 million dollar West Virginia State Lottery? +The winner gets 3 dollars a year for a million years. + + /// 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 /// |