diff --git a/src/ex_getln.c b/src/ex_getln.c index 63e9814546..4ebfbfc5e4 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4481,7 +4481,7 @@ f_getcmdscreenpos(typval_T *argvars UNUSED, typval_T *rettv) { cmdline_info_T *p = get_ccline_ptr(); - rettv->vval.v_number = p != NULL ? p->cmdspos + 1 : 0; + rettv->vval.v_number = p != NULL ? cmdline_col_off + p->cmdspos + 1 : 0; } /* diff --git a/src/testdir/test_tabpanel.vim b/src/testdir/test_tabpanel.vim index acf0ea94bd..4959693260 100644 --- a/src/testdir/test_tabpanel.vim +++ b/src/testdir/test_tabpanel.vim @@ -94,6 +94,45 @@ function Test_tabpanel_with_vsplit() call StopVimInTerminal(buf) endfunc +func Call_cmd_funcs() + let g:results = [getcmdpos(), getcmdscreenpos(), getcmdline()] +endfunc + +function Test_tabpanel_cmdline() + let save_showtabline = &showtabline + let g:results = [] + cnoremap Call_cmd_funcs() + + set showtabline=0 showtabpanel=0 + call Call_cmd_funcs() + call assert_equal([0, 0, ''], g:results) + call feedkeys(":\\", "xt") + call assert_equal([1, 2, ''], g:results) + call feedkeys(":pwd\\", "xt") + call assert_equal([4, 5, 'pwd'], g:results) + + set showtabline=2 showtabpanel=2 tabpanelopt=columns:20,align:left + call Call_cmd_funcs() + call assert_equal([0, 0, ''], g:results) + call feedkeys(":\\", "xt") + call assert_equal([1, 22, ''], g:results) + call feedkeys(":pwd\\", "xt") + call assert_equal([4, 25, 'pwd'], g:results) + + set showtabline=2 showtabpanel=2 tabpanelopt+=align:right + call Call_cmd_funcs() + call assert_equal([0, 0, ''], g:results) + call feedkeys(":\\", "xt") + call assert_equal([1, 2, ''], g:results) + call feedkeys(":pwd\\", "xt") + call assert_equal([4, 5, 'pwd'], g:results) + + unlet g:results + cunmap + call s:reset() + let &showtabline = save_showtabline +endfunc + function Test_tabpanel_mouse() let save_showtabline = &showtabline let save_mouse = &mouse diff --git a/src/version.c b/src/version.c index adf5f22684..a95d332c38 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1899, /**/ 1898, /**/