forked from aniani/vim
patch 8.2.3969: value of MAXCOL not available in Vim script
Problem: Value of MAXCOL not available in Vim script. Solution: Add v:maxcol. (Naohiro Ono, closes #9451)
This commit is contained in:
committed by
Bram Moolenaar
parent
e70cec9760
commit
56200eed62
@@ -154,6 +154,7 @@ static struct vimvar
|
||||
{VV_NAME("sizeofint", VAR_NUMBER), NULL, VV_RO},
|
||||
{VV_NAME("sizeoflong", VAR_NUMBER), NULL, VV_RO},
|
||||
{VV_NAME("sizeofpointer", VAR_NUMBER), NULL, VV_RO},
|
||||
{VV_NAME("maxcol", VAR_NUMBER), NULL, VV_RO},
|
||||
};
|
||||
|
||||
// shorthand
|
||||
@@ -241,6 +242,7 @@ evalvars_init(void)
|
||||
set_vim_var_nr(VV_SIZEOFINT, sizeof(int));
|
||||
set_vim_var_nr(VV_SIZEOFLONG, sizeof(long));
|
||||
set_vim_var_nr(VV_SIZEOFPOINTER, sizeof(char *));
|
||||
set_vim_var_nr(VV_MAXCOL, MAXCOL);
|
||||
|
||||
set_vim_var_nr(VV_TYPE_NUMBER, VAR_TYPE_NUMBER);
|
||||
set_vim_var_nr(VV_TYPE_STRING, VAR_TYPE_STRING);
|
||||
|
||||
@@ -38,6 +38,18 @@ func Test_move_cursor()
|
||||
quit!
|
||||
endfunc
|
||||
|
||||
func Test_curswant_maxcol()
|
||||
new
|
||||
call setline(1, 'foo')
|
||||
|
||||
" Test that after "$" command curswant is set to the same value as v:maxcol.
|
||||
normal! 1G$
|
||||
call assert_equal(v:maxcol, getcurpos()[4])
|
||||
call assert_equal(v:maxcol, winsaveview().curswant)
|
||||
|
||||
quit!
|
||||
endfunc
|
||||
|
||||
" Very short version of what matchparen does.
|
||||
function s:Highlight_Matching_Pair()
|
||||
let save_cursor = getcurpos()
|
||||
|
||||
@@ -858,7 +858,7 @@ func Test_normal14_page()
|
||||
set nostartofline
|
||||
exe "norm! $\<c-b>"
|
||||
call assert_equal('92', getline('.'))
|
||||
call assert_equal([0, 92, 2, 0, 2147483647], getcurpos())
|
||||
call assert_equal([0, 92, 2, 0, v:maxcol], getcurpos())
|
||||
" cleanup
|
||||
set startofline
|
||||
bw!
|
||||
@@ -902,7 +902,7 @@ func Test_normal15_z_scroll_vert()
|
||||
norm! >>$ztzb
|
||||
call assert_equal(' 30', getline('.'))
|
||||
call assert_equal(30, winsaveview()['topline']+winheight(0)-1)
|
||||
call assert_equal([0, 30, 3, 0, 2147483647], getcurpos())
|
||||
call assert_equal([0, 30, 3, 0, v:maxcol], getcurpos())
|
||||
|
||||
" Test for z-
|
||||
1
|
||||
@@ -2798,7 +2798,7 @@ func Test_normal36_g_cmd5()
|
||||
call assert_equal([0, 14, 1, 0, 1], getcurpos())
|
||||
" count > buffer content
|
||||
norm! 120go
|
||||
call assert_equal([0, 14, 1, 0, 2147483647], getcurpos())
|
||||
call assert_equal([0, 14, 1, 0, v:maxcol], getcurpos())
|
||||
" clean up
|
||||
bw!
|
||||
endfunc
|
||||
@@ -2980,7 +2980,7 @@ func Test_normal42_halfpage()
|
||||
set nostartofline
|
||||
exe "norm! $\<c-u>"
|
||||
call assert_equal('95', getline('.'))
|
||||
call assert_equal([0, 95, 2, 0, 2147483647], getcurpos())
|
||||
call assert_equal([0, 95, 2, 0, v:maxcol], getcurpos())
|
||||
" cleanup
|
||||
set startofline
|
||||
bw!
|
||||
|
||||
@@ -205,7 +205,7 @@ func Test_multibyte_op_end_mark()
|
||||
call assert_equal([0, 1, 7, 0], getpos("']"))
|
||||
|
||||
normal Vyp
|
||||
call assert_equal([0, 1, 2147483647, 0], getpos("'>"))
|
||||
call assert_equal([0, 1, v:maxcol, 0], getpos("'>"))
|
||||
call assert_equal([0, 2, 7, 0], getpos("']"))
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
@@ -749,6 +749,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3969,
|
||||
/**/
|
||||
3968,
|
||||
/**/
|
||||
|
||||
@@ -2067,7 +2067,8 @@ typedef int sock_T;
|
||||
#define VV_SIZEOFINT 100
|
||||
#define VV_SIZEOFLONG 101
|
||||
#define VV_SIZEOFPOINTER 102
|
||||
#define VV_LEN 103 // number of v: vars
|
||||
#define VV_MAXCOL 103
|
||||
#define VV_LEN 104 // number of v: vars
|
||||
|
||||
// used for v_number in VAR_BOOL and VAR_SPECIAL
|
||||
#define VVAL_FALSE 0L // VAR_BOOL
|
||||
|
||||
Reference in New Issue
Block a user