diff options
-rw-r--r-- | runtime/doc/eval.txt | 6 | ||||
-rw-r--r-- | src/nvim/eval.c | 4 | ||||
-rw-r--r-- | src/nvim/eval.h | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_eval_stuff.vim | 9 |
4 files changed, 18 insertions, 3 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 459e3ed2d2..f6ca0d5242 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1794,6 +1794,12 @@ v:null Special value used to put "null" in JSON and NIL in msgpack. operator) and to zero when used as a Number (e.g. in |expr5| or |expr7| when used with numeric operators). Read-only. + *v:numbermax* *numbermax-variable* +v:numbermax Maximum value of a number. + + *v:numbermix* *numbermix-variable* +v:numbermin Minimum value of a number (negative) + *v:numbersize* *numbersize-variable* v:numbersize Number of bits in a Number. This is normally 64, but on some systems it may be 32. diff --git a/src/nvim/eval.c b/src/nvim/eval.c index ce8850b903..2c21f82aeb 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -213,6 +213,8 @@ static struct vimvar { VV(VV_FALSE, "false", VAR_BOOL, VV_RO), VV(VV_TRUE, "true", VAR_BOOL, VV_RO), VV(VV_NULL, "null", VAR_SPECIAL, VV_RO), + VV(VV_NUMBERMAX, "numbermax", VAR_NUMBER, VV_RO), + VV(VV_NUMBERMIN, "numbermin", VAR_NUMBER, VV_RO), VV(VV_NUMBERSIZE, "numbersize", VAR_NUMBER, VV_RO), VV(VV_VIM_DID_ENTER, "vim_did_enter", VAR_NUMBER, VV_RO), VV(VV_TESTING, "testing", VAR_NUMBER, 0), @@ -395,6 +397,8 @@ void eval_init(void) set_vim_var_bool(VV_FALSE, kBoolVarFalse); set_vim_var_bool(VV_TRUE, kBoolVarTrue); set_vim_var_special(VV_NULL, kSpecialVarNull); + set_vim_var_nr(VV_NUMBERMAX, VARNUMBER_MAX); + set_vim_var_nr(VV_NUMBERMIN, VARNUMBER_MIN); set_vim_var_nr(VV_NUMBERSIZE, sizeof(varnumber_T) * 8); set_vim_var_special(VV_EXITING, kSpecialVarNull); diff --git a/src/nvim/eval.h b/src/nvim/eval.h index 88c629f15d..8188502987 100644 --- a/src/nvim/eval.h +++ b/src/nvim/eval.h @@ -142,6 +142,8 @@ typedef enum { VV_FALSE, VV_TRUE, VV_NULL, + VV_NUMBERMAX, + VV_NUMBERMIN, VV_NUMBERSIZE, VV_VIM_DID_ENTER, VV_TESTING, diff --git a/src/nvim/testdir/test_eval_stuff.vim b/src/nvim/testdir/test_eval_stuff.vim index b667086482..4870b9a60a 100644 --- a/src/nvim/testdir/test_eval_stuff.vim +++ b/src/nvim/testdir/test_eval_stuff.vim @@ -120,10 +120,13 @@ func Test_skip_after_throw() endtry endfunc -func Test_numbersize() - " This will fail on systems without 64 bit int support or when not configured - " correctly. +func Test_number_max_min_size() + " This will fail on systems without 64 bit number support or when not + " configured correctly. call assert_equal(64, v:numbersize) + + call assert_true(v:numbermin < -9999999) + call assert_true(v:numbermax > 9999999) endfunc func Test_curly_assignment() |