diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-01-20 18:49:46 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-01-20 18:49:46 +0000 |
commit | 47bba53bdb6d59057887149e2eeb2071803e547e (patch) | |
tree | 03409a5588fe07989acce53eeaf8d591229c4e9d /src/globals.h | |
parent | 7193323b7796c05573f3aa89d422e848feb3a8dc (diff) |
patch 9.0.1224: cannot call a :def function with a number for float argumentv9.0.1224
Problem: Cannot call a :def function with a number for a float argument.
Solution: Accept a number as well, convert it to a float.
Diffstat (limited to 'src/globals.h')
-rw-r--r-- | src/globals.h | 202 |
1 files changed, 105 insertions, 97 deletions
diff --git a/src/globals.h b/src/globals.h index e38b471657..3c401a290f 100644 --- a/src/globals.h +++ b/src/globals.h @@ -430,107 +430,111 @@ EXTERN int garbage_collect_at_exit INIT(= FALSE); #define t_number_bool (static_types[14]) #define t_const_number_bool (static_types[15]) -#define t_float (static_types[16]) -#define t_const_float (static_types[17]) +// t_number_float - number that can be used as a float +#define t_number_float (static_types[16]) +#define t_const_number_float (static_types[17]) -#define t_string (static_types[18]) -#define t_const_string (static_types[19]) +#define t_float (static_types[18]) +#define t_const_float (static_types[19]) -#define t_blob (static_types[20]) -#define t_const_blob (static_types[21]) +#define t_string (static_types[20]) +#define t_const_string (static_types[21]) -#define t_blob_null (static_types[22]) -#define t_const_blob_null (static_types[23]) +#define t_blob (static_types[22]) +#define t_const_blob (static_types[23]) -#define t_job (static_types[24]) -#define t_const_job (static_types[25]) +#define t_blob_null (static_types[24]) +#define t_const_blob_null (static_types[25]) -#define t_channel (static_types[26]) -#define t_const_channel (static_types[27]) +#define t_job (static_types[26]) +#define t_const_job (static_types[27]) + +#define t_channel (static_types[28]) +#define t_const_channel (static_types[29]) // t_number_or_string - Special value used for @#. -#define t_number_or_string (static_types[28]) -#define t_const_number_or_string (static_types[29]) +#define t_number_or_string (static_types[30]) +#define t_const_number_or_string (static_types[31]) // t_func_unknown - function with any arguments and no or unknown return value -#define t_func_unknown (static_types[30]) -#define t_const_func_unknown (static_types[31]) +#define t_func_unknown (static_types[32]) +#define t_const_func_unknown (static_types[33]) // t_func_void - function with any arguments and no return value -#define t_func_void (static_types[32]) -#define t_const_func_void (static_types[33]) +#define t_func_void (static_types[34]) +#define t_const_func_void (static_types[35]) -#define t_func_any (static_types[34]) -#define t_const_func_any (static_types[35]) +#define t_func_any (static_types[36]) +#define t_const_func_any (static_types[37]) -#define t_func_number (static_types[36]) -#define t_const_func_number (static_types[37]) +#define t_func_number (static_types[38]) +#define t_const_func_number (static_types[39]) -#define t_func_string (static_types[38]) -#define t_const_func_string (static_types[39]) +#define t_func_string (static_types[40]) +#define t_const_func_string (static_types[41]) -#define t_func_bool (static_types[40]) -#define t_const_func_bool (static_types[41]) +#define t_func_bool (static_types[42]) +#define t_const_func_bool (static_types[43]) // t_func_0_void - function without arguments and nor return value -#define t_func_0_void (static_types[42]) -#define t_const_func_0_void (static_types[43]) +#define t_func_0_void (static_types[44]) +#define t_const_func_0_void (static_types[45]) -#define t_func_0_any (static_types[44]) -#define t_const_func_0_any (static_types[45]) +#define t_func_0_any (static_types[46]) +#define t_const_func_0_any (static_types[47]) -#define t_func_0_number (static_types[46]) -#define t_const_func_0_number (static_types[47]) +#define t_func_0_number (static_types[48]) +#define t_const_func_0_number (static_types[49]) -#define t_func_0_string (static_types[48]) -#define t_const_func_0_string (static_types[49]) +#define t_func_0_string (static_types[50]) +#define t_const_func_0_string (static_types[51]) -#define t_list_any (static_types[50]) -#define t_const_list_any (static_types[51]) +#define t_list_any (static_types[52]) +#define t_const_list_any (static_types[53]) -#define t_dict_any (static_types[52]) -#define t_const_dict_any (static_types[53]) +#define t_dict_any (static_types[54]) +#define t_const_dict_any (static_types[55]) -#define t_list_empty (static_types[54]) -#define t_const_list_empty (static_types[55]) +#define t_list_empty (static_types[56]) +#define t_const_list_empty (static_types[57]) -#define t_dict_empty (static_types[56]) -#define t_const_dict_empty (static_types[57]) +#define t_dict_empty (static_types[58]) +#define t_const_dict_empty (static_types[59]) -#define t_list_bool (static_types[58]) -#define t_const_list_bool (static_types[59]) +#define t_list_bool (static_types[60]) +#define t_const_list_bool (static_types[61]) -#define t_list_number (static_types[60]) -#define t_const_list_number (static_types[61]) +#define t_list_number (static_types[62]) +#define t_const_list_number (static_types[63]) -#define t_list_string (static_types[62]) -#define t_const_list_string (static_types[63]) +#define t_list_string (static_types[64]) +#define t_const_list_string (static_types[65]) -#define t_list_job (static_types[64]) -#define t_const_list_job (static_types[65]) +#define t_list_job (static_types[66]) +#define t_const_list_job (static_types[67]) -#define t_list_dict_any (static_types[66]) -#define t_const_list_dict_any (static_types[67]) +#define t_list_dict_any (static_types[68]) +#define t_const_list_dict_any (static_types[69]) -#define t_list_list_any (static_types[68]) -#define t_const_list_list_any (static_types[69]) +#define t_list_list_any (static_types[70]) +#define t_const_list_list_any (static_types[71]) -#define t_list_list_string (static_types[70]) -#define t_const_list_list_string (static_types[71]) +#define t_list_list_string (static_types[72]) +#define t_const_list_list_string (static_types[73]) -#define t_dict_bool (static_types[72]) -#define t_const_dict_bool (static_types[73]) +#define t_dict_bool (static_types[74]) +#define t_const_dict_bool (static_types[75]) -#define t_dict_number (static_types[74]) -#define t_const_dict_number (static_types[75]) +#define t_dict_number (static_types[76]) +#define t_const_dict_number (static_types[77]) -#define t_dict_string (static_types[76]) -#define t_const_dict_string (static_types[77]) +#define t_dict_string (static_types[78]) +#define t_const_dict_string (static_types[79]) -#define t_super (static_types[78]) -#define t_const_super (static_types[79]) +#define t_super (static_types[80]) +#define t_const_super (static_types[81]) -EXTERN type_T static_types[80] +EXTERN type_T static_types[82] #ifdef DO_INIT = { // 0: t_unknown @@ -565,131 +569,135 @@ EXTERN type_T static_types[80] {VAR_NUMBER, 0, 0, TTFLAG_STATIC|TTFLAG_BOOL_OK, NULL, NULL}, {VAR_NUMBER, 0, 0, TTFLAG_STATIC|TTFLAG_BOOL_OK|TTFLAG_CONST, NULL, NULL}, - // 16: t_float + // 16: t_number_float + {VAR_NUMBER, 0, 0, TTFLAG_STATIC|TTFLAG_FLOAT_OK, NULL, NULL}, + {VAR_NUMBER, 0, 0, TTFLAG_STATIC|TTFLAG_FLOAT_OK|TTFLAG_CONST, NULL, NULL}, + + // 18: t_float {VAR_FLOAT, 0, 0, TTFLAG_STATIC, NULL, NULL}, {VAR_FLOAT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL}, - // 18: t_string + // 20: t_string {VAR_STRING, 0, 0, TTFLAG_STATIC, NULL, NULL}, {VAR_STRING, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL}, - // 20: t_blob + // 22: t_blob {VAR_BLOB, 0, 0, TTFLAG_STATIC, NULL, NULL}, {VAR_BLOB, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL}, - // 22: t_blob_null + // 24: t_blob_null {VAR_BLOB, 0, 0, TTFLAG_STATIC, &t_void, NULL}, {VAR_BLOB, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_void, NULL}, - // 24: t_job + // 26: t_job {VAR_JOB, 0, 0, TTFLAG_STATIC, NULL, NULL}, {VAR_JOB, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL}, - // 26: t_channel + // 28: t_channel {VAR_CHANNEL, 0, 0, TTFLAG_STATIC, NULL, NULL}, {VAR_CHANNEL, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL}, - // 28: t_number_or_string + // 30: t_number_or_string {VAR_STRING, 0, 0, TTFLAG_STATIC, NULL, NULL}, {VAR_STRING, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, NULL, NULL}, - // 30: t_func_unknown + // 32: t_func_unknown {VAR_FUNC, -1, -1, TTFLAG_STATIC, &t_unknown, NULL}, {VAR_FUNC, -1, -1, TTFLAG_STATIC|TTFLAG_CONST, &t_unknown, NULL}, - // 32: t_func_void + // 34: t_func_void {VAR_FUNC, -1, 0, TTFLAG_STATIC, &t_void, NULL}, {VAR_FUNC, -1, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_void, NULL}, - // 34: t_func_any + // 36: t_func_any {VAR_FUNC, -1, 0, TTFLAG_STATIC, &t_any, NULL}, {VAR_FUNC, -1, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_any, NULL}, - // 36: t_func_number + // 38: t_func_number {VAR_FUNC, -1, 0, TTFLAG_STATIC, &t_number, NULL}, {VAR_FUNC, -1, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_number, NULL}, - // 38: t_func_string + // 40: t_func_string {VAR_FUNC, -1, 0, TTFLAG_STATIC, &t_string, NULL}, {VAR_FUNC, -1, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_string, NULL}, - // 40: t_func_bool + // 42: t_func_bool {VAR_FUNC, -1, 0, TTFLAG_STATIC, &t_bool, NULL}, {VAR_FUNC, -1, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_bool, NULL}, - // 42: t_func_0_void + // 44: t_func_0_void {VAR_FUNC, 0, 0, TTFLAG_STATIC, &t_void, NULL}, {VAR_FUNC, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_void, NULL}, - // 44: t_func_0_any + // 46: t_func_0_any {VAR_FUNC, 0, 0, TTFLAG_STATIC, &t_any, NULL}, {VAR_FUNC, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_any, NULL}, - // 46: t_func_0_number + // 48: t_func_0_number {VAR_FUNC, 0, 0, TTFLAG_STATIC, &t_number, NULL}, {VAR_FUNC, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_number, NULL}, - // 48: t_func_0_string + // 50: t_func_0_string {VAR_FUNC, 0, 0, TTFLAG_STATIC, &t_string, NULL}, {VAR_FUNC, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_string, NULL}, - // 50: t_list_any + // 52: t_list_any {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_any, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_any, NULL}, - // 52: t_dict_any + // 54: t_dict_any {VAR_DICT, 0, 0, TTFLAG_STATIC, &t_any, NULL}, {VAR_DICT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_any, NULL}, - // 54: t_list_empty + // 56: t_list_empty {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_unknown, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_unknown, NULL}, - // 56: t_dict_empty + // 58: t_dict_empty {VAR_DICT, 0, 0, TTFLAG_STATIC, &t_unknown, NULL}, {VAR_DICT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_unknown, NULL}, - // 58: t_list_bool + // 60: t_list_bool {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_bool, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_bool, NULL}, - // 60: t_list_number + // 62: t_list_number {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_number, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_number, NULL}, - // 62: t_list_string + // 64: t_list_string {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_string, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_string, NULL}, - // 64: t_list_job + // 66: t_list_job {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_job, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_job, NULL}, - // 66: t_list_dict_any + // 68: t_list_dict_any {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_dict_any, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_dict_any, NULL}, - // 68: t_list_list_any + // 70: t_list_list_any {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_list_any, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_list_any, NULL}, - // 70: t_list_list_string + // 72: t_list_list_string {VAR_LIST, 0, 0, TTFLAG_STATIC, &t_list_string, NULL}, {VAR_LIST, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_list_string, NULL}, - // 72: t_dict_bool + // 74: t_dict_bool {VAR_DICT, 0, 0, TTFLAG_STATIC, &t_bool, NULL}, {VAR_DICT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_bool, NULL}, - // 74: t_dict_number + // 76: t_dict_number {VAR_DICT, 0, 0, TTFLAG_STATIC, &t_number, NULL}, {VAR_DICT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_number, NULL}, - // 76: t_dict_string + // 78: t_dict_string {VAR_DICT, 0, 0, TTFLAG_STATIC, &t_string, NULL}, {VAR_DICT, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_string, NULL}, - // 78: t_super (VAR_CLASS with tt_member set to &t_bool + // 80: t_super (VAR_CLASS with tt_member set to &t_bool {VAR_CLASS, 0, 0, TTFLAG_STATIC, &t_bool, NULL}, {VAR_CLASS, 0, 0, TTFLAG_STATIC|TTFLAG_CONST, &t_bool, NULL}, } |