Patch 8.1.1247
Problem: Urxvt mouse codes are not tested.
Solution: Also set 'ttymouse' to "urxvt" in the termcodes test.
Files: src/testdir/test_termcodes.vim
*** ../vim-8.1.1246/src/testdir/test_termcodes.vim 2019-05-01
23:13:53.270968846 +0200
--- src/testdir/test_termcodes.vim 2019-05-02 21:09:32.053517694 +0200
***************
*** 7,17 ****
source shared.vim
" Helper function to emit a terminal escape code.
! func TerminalEscapeCode(code_xterm, code_sgr, row, col, m)
if &ttymouse ==# 'xterm2'
" 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
--- 7,23 ----
source shared.vim
+ " xterm2 and sgr always work, urxvt is optional.
+ let s:test_ttymouse = ['xterm2', 'sgr']
+ if has('mouse_urxvt')
+ call add(s:test_ttymouse, 'urxvt')
+ endif
+
" Helper function to emit a terminal escape code.
! func TerminalEscapeCode(code, row, col, m)
if &ttymouse ==# 'xterm2'
" need to use byte encoding here.
! let str = list2str([a:code + 0x20, a:col + 0x20, a:row + 0x20])
if has('iconv')
let bytes = iconv(str, 'utf-8', 'latin1')
else
***************
*** 20,69 ****
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 MouseMiddleClick(row, col)
! call TerminalEscapeCode(0x21, 1, a:row, a:col, 'M')
endfunc
func MouseCtrlLeftClick(row, col)
let ctrl = 0x10
! call TerminalEscapeCode(0x20 + ctrl, 0 + ctrl, a:row, a:col, 'M')
endfunc
func MouseCtrlRightClick(row, col)
let ctrl = 0x10
! call TerminalEscapeCode(0x22 + ctrl, 2 + ctrl, a:row, a:col, 'M')
endfunc
func MouseLeftRelease(row, col)
! call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm')
endfunc
func MouseMiddleRelease(row, col)
! call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm')
endfunc
func MouseRightRelease(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_left_click()
--- 26,77 ----
endif
call feedkeys("\<Esc>[M" .. bytes, 'Lx!')
elseif &ttymouse ==# 'sgr'
! call feedkeys(printf("\<Esc>[<%d;%d;%d%s", a:code, a:col, a:row, a:m),
'Lx!')
! elseif &ttymouse ==# 'urxvt'
! call feedkeys(printf("\<Esc>[%d;%d;%dM", a:code + 0x20, a:col, a:row),
'Lx!')
endif
endfunc
func MouseLeftClick(row, col)
! call TerminalEscapeCode(0, a:row, a:col, 'M')
endfunc
func MouseMiddleClick(row, col)
! call TerminalEscapeCode(1, a:row, a:col, 'M')
endfunc
func MouseCtrlLeftClick(row, col)
let ctrl = 0x10
! call TerminalEscapeCode(0 + ctrl, a:row, a:col, 'M')
endfunc
func MouseCtrlRightClick(row, col)
let ctrl = 0x10
! call TerminalEscapeCode(2 + ctrl, a:row, a:col, 'M')
endfunc
func MouseLeftRelease(row, col)
! call TerminalEscapeCode(3, a:row, a:col, 'm')
endfunc
func MouseMiddleRelease(row, col)
! call TerminalEscapeCode(3, a:row, a:col, 'm')
endfunc
func MouseRightRelease(row, col)
! call TerminalEscapeCode(3, a:row, a:col, 'm')
endfunc
func MouseLeftDrag(row, col)
! call TerminalEscapeCode(0x20, a:row, a:col, 'M')
endfunc
func MouseWheelUp(row, col)
! call TerminalEscapeCode(0x40, a:row, a:col, 'M')
endfunc
func MouseWheelDown(row, col)
! call TerminalEscapeCode(0x41, a:row, a:col, 'M')
endfunc
func Test_xterm_mouse_left_click()
***************
*** 74,80 ****
set mouse=a term=xterm
call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer'])
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
go
--- 82,88 ----
set mouse=a term=xterm
call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer'])
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
go
***************
*** 99,105 ****
let save_ttymouse = &ttymouse
set mouse=a term=xterm
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
help
--- 107,113 ----
let save_ttymouse = &ttymouse
set mouse=a term=xterm
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
help
***************
*** 138,144 ****
let @* = 'abc'
set mouse=a term=xterm
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
call setline(1, ['123456789', '123456789'])
--- 146,152 ----
let @* = 'abc'
set mouse=a term=xterm
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
call setline(1, ['123456789', '123456789'])
***************
*** 179,185 ****
set mouse=a term=xterm
call setline(1, range(1, 100))
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
go
--- 187,193 ----
set mouse=a term=xterm
call setline(1, range(1, 100))
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
go
***************
*** 215,221 ****
let save_ttymouse = &ttymouse
set mouse=a term=xterm
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
--- 223,229 ----
let save_ttymouse = &ttymouse
set mouse=a term=xterm
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
***************
*** 272,278 ****
let save_laststatus = &laststatus
set mouse=a term=xterm laststatus=2
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
--- 280,286 ----
let save_laststatus = &laststatus
set mouse=a term=xterm laststatus=2
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
***************
*** 313,319 ****
set mouse=a term=xterm
let row = 1
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
e Xfoo
--- 321,327 ----
set mouse=a term=xterm
let row = 1
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
e Xfoo
***************
*** 361,367 ****
let row = 1
let col = &columns
! for ttymouse_val in ['xterm2', 'sgr']
if ttymouse_val ==# 'xterm2' && col > 223
" When 'ttymouse' is 'xterm2', row/col bigger than 223 are not
supported.
continue
--- 369,375 ----
let row = 1
let col = &columns
! for ttymouse_val in s:test_ttymouse
if ttymouse_val ==# 'xterm2' && col > 223
" When 'ttymouse' is 'xterm2', row/col bigger than 223 are not
supported.
continue
***************
*** 407,413 ****
set mouse=a term=xterm mousetime=1
let row = 1
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
e Xtab1
--- 415,421 ----
set mouse=a term=xterm mousetime=1
let row = 1
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
e Xtab1
***************
*** 456,467 ****
let row = 1
let col = 10
! for ttymouse_val in ['xterm2', 'sgr']
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
e Xtab1
tabnew Xtab2
let a = split(execute(':tabs'), "\n")
call assert_equal(['Tab page 1',
\ ' Xtab1',
--- 464,483 ----
let row = 1
let col = 10
! let round = 0
! for ttymouse_val in s:test_ttymouse
let msg = 'ttymouse=' .. ttymouse_val
exe 'set ttymouse=' .. ttymouse_val
e Xtab1
tabnew Xtab2
+ if round > 0
+ " We need to sleep, or else the first MouseLeftClick() will be
+ " interpreted as a spurious triple-click.
+ sleep 100m
+ endif
+ let round += 1
+
let a = split(execute(':tabs'), "\n")
call assert_equal(['Tab page 1',
\ ' Xtab1',
***************
*** 485,495 ****
\ 'Tab page 3',
\ ' Xtab2'], a, msg)
- if ttymouse_val !=# 'sgr'
- " We need to sleep, or else MouseLeftClick() in next loop
- " iteration will be interpreted as a spurious triple-click.
- sleep 100m
- endif
%bwipe!
endfor
--- 501,506 ----
*** ../vim-8.1.1246/src/version.c 2019-05-02 20:24:08.624617859 +0200
--- src/version.c 2019-05-02 21:11:40.708817159 +0200
***************
*** 769,770 ****
--- 769,772 ----
{ /* Add new patch number below this line */
+ /**/
+ 1247,
/**/
--
Vi beats Emacs to death, and then again!
http://linuxtoday.com/stories/5764.html
/// 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.