diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim index b0eb3faf4b1b854331efef18814163b579e98dd9..deeb86f945763678a0a367db46f9519e5d1c0c8f 100644 --- a/src/testdir/test_terminal2.vim +++ b/src/testdir/test_terminal2.vim @@ -536,49 +536,5 @@ func Test_term_gettty() exe buf . 'bwipe' endfunc -func Test_terminal_getwinpos() - CheckRunVimInTerminal - - " split, go to the bottom-right window - split - wincmd j - set splitright - - call writefile([ - \ 'echo getwinpos()', - \ ], 'XTest_getwinpos') - let buf = RunVimInTerminal('-S XTest_getwinpos', {'cols': 60}) - call TermWait(buf) - - " Find the output of getwinpos() in the bottom line. - let rows = term_getsize(buf)[0] - call WaitForAssert({-> assert_match('\[\d\+, \d\+\]', term_getline(buf, rows))}) - let line = term_getline(buf, rows) - let xpos = str2nr(substitute(line, '\[\(\d\+\), \d\+\]', '\1', '')) - let ypos = str2nr(substitute(line, '\[\d\+, \(\d\+\)\]', '\1', '')) - - " Position must be bigger than the getwinpos() result of Vim itself. - " The calculation in the console assumes a 10 x 7 character cell. - " In the GUI it can be more, let's assume a 20 x 14 cell. - " And then add 100 / 200 tolerance. - let [xroot, yroot] = getwinpos() - let winpos = 50->getwinpos() - call assert_equal(xroot, winpos[0]) - call assert_equal(yroot, winpos[1]) - let [winrow, wincol] = win_screenpos('.') - let xoff = wincol * (has('gui_running') ? 14 : 7) + 100 - let yoff = winrow * (has('gui_running') ? 20 : 10) + 200 - call assert_inrange(xroot + 2, xroot + xoff, xpos) - call assert_inrange(yroot + 2, yroot + yoff, ypos) - - call TermWait(buf) - call term_sendkeys(buf, ":q\<CR>") - call StopVimInTerminal(buf) - call delete('XTest_getwinpos') - exe buf . 'bwipe!' - set splitright& - only! -endfunc - " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_terminal3.vim b/src/testdir/test_terminal3.vim index add7678018fda54011bf358a51a507bdcf3ec13d..8405cd16a489840141402f32972d57fe6b5d9bbe 100644 --- a/src/testdir/test_terminal3.vim +++ b/src/testdir/test_terminal3.vim @@ -519,5 +519,49 @@ func Test_term_modeless_selection() new | only! endfunc +func Test_terminal_getwinpos() + CheckRunVimInTerminal + + " split, go to the bottom-right window + split + wincmd j + set splitright + + call writefile([ + \ 'echo getwinpos()', + \ ], 'XTest_getwinpos') + let buf = RunVimInTerminal('-S XTest_getwinpos', {'cols': 60}) + call TermWait(buf) + + " Find the output of getwinpos() in the bottom line. + let rows = term_getsize(buf)[0] + call WaitForAssert({-> assert_match('\[\d\+, \d\+\]', term_getline(buf, rows))}) + let line = term_getline(buf, rows) + let xpos = str2nr(substitute(line, '\[\(\d\+\), \d\+\]', '\1', '')) + let ypos = str2nr(substitute(line, '\[\d\+, \(\d\+\)\]', '\1', '')) + + " Position must be bigger than the getwinpos() result of Vim itself. + " The calculation in the console assumes a 10 x 7 character cell. + " In the GUI it can be more, let's assume a 20 x 14 cell. + " And then add 100 / 200 tolerance. + let [xroot, yroot] = getwinpos() + let winpos = 50->getwinpos() + call assert_equal(xroot, winpos[0]) + call assert_equal(yroot, winpos[1]) + let [winrow, wincol] = win_screenpos('.') + let xoff = wincol * (has('gui_running') ? 14 : 7) + 100 + let yoff = winrow * (has('gui_running') ? 20 : 10) + 200 + call assert_inrange(xroot + 2, xroot + xoff, xpos) + call assert_inrange(yroot + 2, yroot + yoff, ypos) + + call TermWait(buf) + call term_sendkeys(buf, ":q\<CR>") + call StopVimInTerminal(buf) + call delete('XTest_getwinpos') + exe buf . 'bwipe!' + set splitright& + only! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 19b911e465c4bd6b9ee084f628f53d7167237dea..9d59181c93c317aac8a675059b7def0cd32a10c5 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1198, /**/ 1197, /**/