forked from aniani/vim
patch 9.1.0848: if_lua: v:false/v:true are not evaluated to boolean
Problem: if_lua: v:false/v:true are not evaluated to boolean Solution: Use lua_pushboolean() instead of lua_pushinteger(). (zeertzjq) fixes: #15994 closes: #11419 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
a14c457cad
commit
50732c7ba6
@@ -595,7 +595,7 @@ luaV_pushtypval(lua_State *L, typval_T *tv)
|
|||||||
case VAR_BOOL:
|
case VAR_BOOL:
|
||||||
case VAR_SPECIAL:
|
case VAR_SPECIAL:
|
||||||
if (tv->vval.v_number <= VVAL_TRUE)
|
if (tv->vval.v_number <= VVAL_TRUE)
|
||||||
lua_pushinteger(L, (int) tv->vval.v_number);
|
lua_pushboolean(L, (int) tv->vval.v_number);
|
||||||
else
|
else
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
break;
|
break;
|
||||||
|
@@ -117,11 +117,11 @@ func Test_lua_eval()
|
|||||||
|
|
||||||
" lua.eval with a bool
|
" lua.eval with a bool
|
||||||
lua v = vim.eval('v:true')
|
lua v = vim.eval('v:true')
|
||||||
call assert_equal('number', luaeval('vim.type(v)'))
|
call assert_equal('boolean', luaeval('vim.type(v)'))
|
||||||
call assert_equal(1, luaeval('v'))
|
call assert_equal(v:true, luaeval('v'))
|
||||||
lua v = vim.eval('v:false')
|
lua v = vim.eval('v:false')
|
||||||
call assert_equal('number', luaeval('vim.type(v)'))
|
call assert_equal('boolean', luaeval('vim.type(v)'))
|
||||||
call assert_equal(0, luaeval('v'))
|
call assert_equal(v:false, luaeval('v'))
|
||||||
|
|
||||||
" lua.eval with a null
|
" lua.eval with a null
|
||||||
lua v = vim.eval('v:null')
|
lua v = vim.eval('v:null')
|
||||||
|
@@ -299,7 +299,7 @@ func Test_unicode()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Test vim.eval() with various types.
|
" Test vim.eval() with various types.
|
||||||
func Test_python3_vim_val()
|
func Test_python3_vim_eval()
|
||||||
call assert_equal("\n8", execute('py3 print(vim.eval("3+5"))'))
|
call assert_equal("\n8", execute('py3 print(vim.eval("3+5"))'))
|
||||||
call assert_equal("\n3.140000", execute('py3 print(vim.eval("1.01+2.13"))'))
|
call assert_equal("\n3.140000", execute('py3 print(vim.eval("1.01+2.13"))'))
|
||||||
call assert_equal("\n0.000000", execute('py3 print(vim.eval("0.0/(1.0/0.0)"))'))
|
call assert_equal("\n0.000000", execute('py3 print(vim.eval("0.0/(1.0/0.0)"))'))
|
||||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
848,
|
||||||
/**/
|
/**/
|
||||||
847,
|
847,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user