comparison src/if_lua.c @ 19102:ba9f50bfda83 v8.2.0111

patch 8.2.0111: VAR_SPECIAL is also used for booleans Commit: https://github.com/vim/vim/commit/9b4a15d5dba354d2e1e02871470bad103f34769a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 11 16:05:23 2020 +0100 patch 8.2.0111: VAR_SPECIAL is also used for booleans Problem: VAR_SPECIAL is also used for booleans. Solution: Add VAR_BOOL for better type checking.
author Bram Moolenaar <Bram@vim.org>
date Sat, 11 Jan 2020 16:15:04 +0100
parents f0f9692d4487
children 94eda51ba9ba
comparison
equal deleted inserted replaced
19101:7c682fab000b 19102:ba9f50bfda83
533 luaV_pushlist(L, tv->vval.v_list); 533 luaV_pushlist(L, tv->vval.v_list);
534 break; 534 break;
535 case VAR_DICT: 535 case VAR_DICT:
536 luaV_pushdict(L, tv->vval.v_dict); 536 luaV_pushdict(L, tv->vval.v_dict);
537 break; 537 break;
538 case VAR_BOOL:
538 case VAR_SPECIAL: 539 case VAR_SPECIAL:
539 if (tv->vval.v_number <= VVAL_TRUE) 540 if (tv->vval.v_number <= VVAL_TRUE)
540 lua_pushinteger(L, (int) tv->vval.v_number); 541 lua_pushinteger(L, (int) tv->vval.v_number);
541 else 542 else
542 lua_pushnil(L); 543 lua_pushnil(L);
562 int status = OK; 563 int status = OK;
563 564
564 switch (lua_type(L, pos)) 565 switch (lua_type(L, pos))
565 { 566 {
566 case LUA_TBOOLEAN: 567 case LUA_TBOOLEAN:
567 tv->v_type = VAR_SPECIAL; 568 tv->v_type = VAR_BOOL;
568 tv->vval.v_number = (varnumber_T) lua_toboolean(L, pos); 569 tv->vval.v_number = (varnumber_T) lua_toboolean(L, pos);
569 break; 570 break;
570 case LUA_TNIL: 571 case LUA_TNIL:
571 tv->v_type = VAR_SPECIAL; 572 tv->v_type = VAR_SPECIAL;
572 tv->vval.v_number = VVAL_NULL; 573 tv->vval.v_number = VVAL_NULL;