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))