summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1155
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1155')
-rw-r--r--data/vim/patches/8.1.1155372
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 ///