comparison src/if_mzsch.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 d776967d0f0d
comparison
equal deleted inserted replaced
19101:7c682fab000b 19102:ba9f50bfda83
3134 MZ_GC_CHECK(); 3134 MZ_GC_CHECK();
3135 3135
3136 MZ_GC_UNREG(); 3136 MZ_GC_UNREG();
3137 } 3137 }
3138 } 3138 }
3139 else if (vim_value->v_type == VAR_SPECIAL) 3139 else if (vim_value->v_type == VAR_BOOL || vim_value->v_type == VAR_SPECIAL)
3140 { 3140 {
3141 if (vim_value->vval.v_number <= VVAL_TRUE) 3141 if (vim_value->vval.v_number <= VVAL_TRUE)
3142 result = scheme_make_integer((long)vim_value->vval.v_number); 3142 result = scheme_make_integer((long)vim_value->vval.v_number);
3143 else 3143 else
3144 result = scheme_null; 3144 result = scheme_null;
3216 tv->v_type = VAR_NUMBER; 3216 tv->v_type = VAR_NUMBER;
3217 tv->vval.v_number = SCHEME_INT_VAL(obj); 3217 tv->vval.v_number = SCHEME_INT_VAL(obj);
3218 } 3218 }
3219 else if (SCHEME_BOOLP(obj)) 3219 else if (SCHEME_BOOLP(obj))
3220 { 3220 {
3221 tv->v_type = VAR_SPECIAL; 3221 tv->v_type = VAR_BOOL;
3222 tv->vval.v_number = SCHEME_TRUEP(obj); 3222 tv->vval.v_number = SCHEME_TRUEP(obj);
3223 } 3223 }
3224 # ifdef FEAT_FLOAT 3224 # ifdef FEAT_FLOAT
3225 else if (SCHEME_DBLP(obj)) 3225 else if (SCHEME_DBLP(obj))
3226 { 3226 {