patch 8.1.2228: screenpos() returns wrong values when 'number' is set

Problem:    screenpos() returns wrong values when 'number' is set. (Ben
            Jackson)
Solution:   Compare the column with the window width. (closes #5133)
diff --git a/src/move.c b/src/move.c
index 97f5ac1..d6b1c26 100644
--- a/src/move.c
+++ b/src/move.c
@@ -1217,7 +1217,7 @@
 	    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 dc65fdc..0afc45e 100644
--- a/src/testdir/test_cursor_func.vim
+++ b/src/testdir/test_cursor_func.vim
@@ -100,3 +100,18 @@
   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 7b4ebe6..01c95b3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2228,
+/**/
     2227,
 /**/
     2226,