patch 9.0.1728: missing winid argument for virtcol()
Problem: missing winid argument for virtcol()
Solution: Add a {winid} argument to virtcol()
Other functions col(), charcol() and virtcol2col() support a {winid}
argument, so it makes sense for virtcol() to also support than.
Also add test for virtcol2col() with 'showbreak' and {winid}.
closes: #12633
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
diff --git a/src/testdir/test_cursor_func.vim b/src/testdir/test_cursor_func.vim
index 2ae7580..b0444d5 100644
--- a/src/testdir/test_cursor_func.vim
+++ b/src/testdir/test_cursor_func.vim
@@ -540,9 +540,28 @@
call assert_equal(8, virtcol2col(0, 1, 7))
call assert_equal(8, virtcol2col(0, 1, 8))
+ let w = winwidth(0)
+ call setline(2, repeat('a', w + 2))
+ let win_nosbr = win_getid()
+ split
+ setlocal showbreak=!!
+ let win_sbr = win_getid()
+ call assert_equal(w, virtcol2col(win_nosbr, 2, w))
+ call assert_equal(w + 1, virtcol2col(win_nosbr, 2, w + 1))
+ call assert_equal(w + 2, virtcol2col(win_nosbr, 2, w + 2))
+ call assert_equal(w + 2, virtcol2col(win_nosbr, 2, w + 3))
+ call assert_equal(w, virtcol2col(win_sbr, 2, w))
+ call assert_equal(w + 1, virtcol2col(win_sbr, 2, w + 1))
+ call assert_equal(w + 1, virtcol2col(win_sbr, 2, w + 2))
+ call assert_equal(w + 1, virtcol2col(win_sbr, 2, w + 3))
+ call assert_equal(w + 2, virtcol2col(win_sbr, 2, w + 4))
+ call assert_equal(w + 2, virtcol2col(win_sbr, 2, w + 5))
+ close
+
call assert_fails('echo virtcol2col("0", 1, 20)', 'E1210:')
call assert_fails('echo virtcol2col(0, "1", 20)', 'E1210:')
call assert_fails('echo virtcol2col(0, 1, "1")', 'E1210:')
+
bw!
endfunc