diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-10-27 21:39:09 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-10-27 21:39:09 +0100 |
commit | 38ba4dce4a8574e60f6ddb111922880b0c7affdc (patch) | |
tree | ae4f543edd710eff94e1d5bf77329b5cdbdd22a3 | |
parent | 1c329c04be2e95a3589a53f2978926e91b450cca (diff) | |
download | vim-git-38ba4dce4a8574e60f6ddb111922880b0c7affdc.tar.gz |
patch 8.1.2228: screenpos() returns wrong values when 'number' is setv8.1.2228
Problem: screenpos() returns wrong values when 'number' is set. (Ben
Jackson)
Solution: Compare the column with the window width. (closes #5133)
-rw-r--r-- | src/move.c | 2 | ||||
-rw-r--r-- | src/testdir/test_cursor_func.vim | 15 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 18 insertions, 1 deletions
diff --git a/src/move.c b/src/move.c index 97f5ac1b7..d6b1c2636 100644 --- a/src/move.c +++ b/src/move.c @@ -1217,7 +1217,7 @@ textpos2screenpos( col -= rowoff * width; } col -= wp->w_leftcol; - if (col >= width) + if (col >= wp->w_width) col = -1; if (col >= 0) coloff = col - scol + wp->w_wincol + 1; diff --git a/src/testdir/test_cursor_func.vim b/src/testdir/test_cursor_func.vim index dc65fdca2..0afc45e58 100644 --- a/src/testdir/test_cursor_func.vim +++ b/src/testdir/test_cursor_func.vim @@ -100,3 +100,18 @@ func Test_screenpos() close bwipe! endfunc + +func Test_screenpos_number() + rightbelow new + rightbelow 73vsplit + call setline (1, repeat('x', 66)) + setlocal number + redraw + let winid = win_getid() + let [winrow, wincol] = win_screenpos(winid) + let pos = screenpos(winid, 1, 66) + call assert_equal(winrow, pos.row) + call assert_equal(wincol + 66 + 3, pos.col) + close + bwipe! +endfunc diff --git a/src/version.c b/src/version.c index 7b4ebe6b5..01c95b335 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2228, +/**/ 2227, /**/ 2226, |