Mercurial > vim
comparison src/evalvars.c @ 23509:18f3dc6974af v8.2.2297
patch 8.2.2297: Vim9: cannot set 'number' to a boolean value
Commit: https://github.com/vim/vim/commit/0ea04408653be843e37d03ce574f5d2eae682339
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 4 13:37:54 2021 +0100
patch 8.2.2297: Vim9: cannot set 'number' to a boolean value
Problem: Vim9: cannot set 'number' to a boolean value.
Solution: Use tv_get_bool(). (closes https://github.com/vim/vim/issues/7615)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 04 Jan 2021 13:45:04 +0100 |
parents | 2247a2ce3630 |
children | 27ca5534a408 |
comparison
equal
deleted
inserted
replaced
23508:66c2449bef2e | 23509:18f3dc6974af |
---|---|
1368 if ((opt_type == gov_bool | 1368 if ((opt_type == gov_bool |
1369 || opt_type == gov_number | 1369 || opt_type == gov_number |
1370 || opt_type == gov_hidden_bool | 1370 || opt_type == gov_hidden_bool |
1371 || opt_type == gov_hidden_number) | 1371 || opt_type == gov_hidden_number) |
1372 && (tv->v_type != VAR_STRING || !in_vim9script())) | 1372 && (tv->v_type != VAR_STRING || !in_vim9script())) |
1373 // number, possibly hidden | 1373 { |
1374 n = (long)tv_get_number(tv); | 1374 if (opt_type == gov_bool || opt_type == gov_hidden_bool) |
1375 // bool, possibly hidden | |
1376 n = (long)tv_get_bool(tv); | |
1377 else | |
1378 // number, possibly hidden | |
1379 n = (long)tv_get_number(tv); | |
1380 } | |
1375 | 1381 |
1376 // Avoid setting a string option to the text "v:false" or similar. | 1382 // Avoid setting a string option to the text "v:false" or similar. |
1377 // In Vim9 script also don't convert a number to string. | 1383 // In Vim9 script also don't convert a number to string. |
1378 if (tv->v_type != VAR_BOOL && tv->v_type != VAR_SPECIAL | 1384 if (tv->v_type != VAR_BOOL && tv->v_type != VAR_SPECIAL |
1379 && (!in_vim9script() || tv->v_type != VAR_NUMBER)) | 1385 && (!in_vim9script() || tv->v_type != VAR_NUMBER)) |