Mercurial > vim
comparison src/if_ruby.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 | 23df4b83fd31 |
children | 1cae476a7c82 |
comparison
equal
deleted
inserted
replaced
19101:7c682fab000b | 19102:ba9f50bfda83 |
---|---|
1181 vim_to_ruby(&di->di_tv)); | 1181 vim_to_ruby(&di->di_tv)); |
1182 } | 1182 } |
1183 } | 1183 } |
1184 } | 1184 } |
1185 } | 1185 } |
1186 else if (tv->v_type == VAR_SPECIAL) | 1186 else if (tv->v_type == VAR_BOOL || tv->v_type == VAR_SPECIAL) |
1187 { | 1187 { |
1188 if (tv->vval.v_number == VVAL_TRUE) | 1188 if (tv->vval.v_number == VVAL_TRUE) |
1189 result = Qtrue; | 1189 result = Qtrue; |
1190 else if (tv->vval.v_number == VVAL_FALSE) | 1190 else if (tv->vval.v_number == VVAL_FALSE) |
1191 result = Qfalse; | 1191 result = Qfalse; |
1825 case T_NIL: | 1825 case T_NIL: |
1826 rettv->v_type = VAR_SPECIAL; | 1826 rettv->v_type = VAR_SPECIAL; |
1827 rettv->vval.v_number = VVAL_NULL; | 1827 rettv->vval.v_number = VVAL_NULL; |
1828 break; | 1828 break; |
1829 case T_TRUE: | 1829 case T_TRUE: |
1830 rettv->v_type = VAR_SPECIAL; | 1830 rettv->v_type = VAR_BOOL; |
1831 rettv->vval.v_number = VVAL_TRUE; | 1831 rettv->vval.v_number = VVAL_TRUE; |
1832 break; | 1832 break; |
1833 case T_FALSE: | 1833 case T_FALSE: |
1834 rettv->v_type = VAR_SPECIAL; | 1834 rettv->v_type = VAR_BOOL; |
1835 rettv->vval.v_number = VVAL_FALSE; | 1835 rettv->vval.v_number = VVAL_FALSE; |
1836 break; | 1836 break; |
1837 case T_BIGNUM: | 1837 case T_BIGNUM: |
1838 case T_FIXNUM: | 1838 case T_FIXNUM: |
1839 rettv->v_type = VAR_NUMBER; | 1839 rettv->v_type = VAR_NUMBER; |