summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-27 21:39:09 +0100
committerBram Moolenaar <Bram@vim.org>2019-10-27 21:39:09 +0100
commit38ba4dce4a8574e60f6ddb111922880b0c7affdc (patch)
treeae4f543edd710eff94e1d5bf77329b5cdbdd22a3
parent1c329c04be2e95a3589a53f2978926e91b450cca (diff)
downloadvim-git-8.1.2228.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.c2
-rw-r--r--src/testdir/test_cursor_func.vim15
-rw-r--r--src/version.c2
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,