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.

Raspunde prin e-mail lui