Mercurial > vim
comparison src/evalfunc.c @ 24998:3b1770226f85 v8.2.3036
patch 8.2.3036: Vim9: builtin function arguments not checked at compile time
Commit: https://github.com/vim/vim/commit/7237cab8f1d1a4391372cafdb57f2d97f3b32d05
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Tue Jun 22 19:52:27 2021 +0200
patch 8.2.3036: Vim9: builtin function arguments not checked at compile time
Problem: Vim9: builtin function arguments not checked at compile time.
Solution: Add more argument type specs. Check arguments to test_setmouse()
and test_gui_mouse_event(). (Yegappan Lakshmanan, closes #8425)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 22 Jun 2021 20:00:05 +0200 |
parents | 4cb423b9250d |
children | 496221916885 |
comparison
equal
deleted
inserted
replaced
24997:6cd844668030 | 24998:3b1770226f85 |
---|---|
401 | 401 |
402 /* | 402 /* |
403 * Lists of functions that check the argument types of a builtin function. | 403 * Lists of functions that check the argument types of a builtin function. |
404 */ | 404 */ |
405 argcheck_T arg1_string[] = {arg_string}; | 405 argcheck_T arg1_string[] = {arg_string}; |
406 argcheck_T arg3_string_nr_bool[] = {arg_string, arg_number, arg_bool}; | 406 argcheck_T arg1_number[] = {arg_number}; |
407 argcheck_T arg1_float_or_nr[] = {arg_float_or_nr}; | 407 argcheck_T arg1_float_or_nr[] = {arg_float_or_nr}; |
408 argcheck_T arg2_float_or_nr[] = {arg_float_or_nr, arg_float_or_nr}; | |
409 argcheck_T arg2_number[] = {arg_number, arg_number}; | |
408 argcheck_T arg2_listblob_item[] = {arg_list_or_blob, arg_item_of_prev}; | 410 argcheck_T arg2_listblob_item[] = {arg_list_or_blob, arg_item_of_prev}; |
409 argcheck_T arg2_execute[] = {arg_string_or_list, arg_string}; | 411 argcheck_T arg2_execute[] = {arg_string_or_list, arg_string}; |
410 argcheck_T arg23_extend[] = {arg_list_or_dict, arg_same_as_prev, arg_extend3}; | 412 argcheck_T arg23_extend[] = {arg_list_or_dict, arg_same_as_prev, arg_extend3}; |
411 argcheck_T arg23_extendnew[] = {arg_list_or_dict, arg_same_struct_as_prev, arg_extend3}; | 413 argcheck_T arg23_extendnew[] = {arg_list_or_dict, arg_same_struct_as_prev, arg_extend3}; |
414 argcheck_T arg3_string[] = {arg_string, arg_string, arg_string}; | |
415 argcheck_T arg3_string_nr_bool[] = {arg_string, arg_number, arg_bool}; | |
412 argcheck_T arg3_insert[] = {arg_list_or_blob, arg_item_of_prev, arg_number}; | 416 argcheck_T arg3_insert[] = {arg_list_or_blob, arg_item_of_prev, arg_number}; |
413 | 417 |
414 /* | 418 /* |
415 * Functions that return the return type of a builtin function. | 419 * Functions that return the return type of a builtin function. |
416 * Note that "argtypes" is NULL if "argcount" is zero. | 420 * Note that "argtypes" is NULL if "argcount" is zero. |
668 | 672 |
669 static funcentry_T global_functions[] = | 673 static funcentry_T global_functions[] = |
670 { | 674 { |
671 {"abs", 1, 1, FEARG_1, arg1_float_or_nr, | 675 {"abs", 1, 1, FEARG_1, arg1_float_or_nr, |
672 ret_any, FLOAT_FUNC(f_abs)}, | 676 ret_any, FLOAT_FUNC(f_abs)}, |
673 {"acos", 1, 1, FEARG_1, NULL, | 677 {"acos", 1, 1, FEARG_1, arg1_float_or_nr, |
674 ret_float, FLOAT_FUNC(f_acos)}, | 678 ret_float, FLOAT_FUNC(f_acos)}, |
675 {"add", 2, 2, FEARG_1, NULL /* arg2_listblob_item */, | 679 {"add", 2, 2, FEARG_1, NULL /* arg2_listblob_item */, |
676 ret_first_arg, f_add}, | 680 ret_first_arg, f_add}, |
677 {"and", 2, 2, FEARG_1, NULL, | 681 {"and", 2, 2, FEARG_1, arg2_number, |
678 ret_number, f_and}, | 682 ret_number, f_and}, |
679 {"append", 2, 2, FEARG_2, NULL, | 683 {"append", 2, 2, FEARG_2, NULL, |
680 ret_number_bool, f_append}, | 684 ret_number_bool, f_append}, |
681 {"appendbufline", 3, 3, FEARG_3, NULL, | 685 {"appendbufline", 3, 3, FEARG_3, NULL, |
682 ret_number_bool, f_appendbufline}, | 686 ret_number_bool, f_appendbufline}, |
683 {"argc", 0, 1, 0, NULL, | 687 {"argc", 0, 1, 0, arg1_number, |
684 ret_number, f_argc}, | 688 ret_number, f_argc}, |
685 {"argidx", 0, 0, 0, NULL, | 689 {"argidx", 0, 0, 0, NULL, |
686 ret_number, f_argidx}, | 690 ret_number, f_argidx}, |
687 {"arglistid", 0, 2, 0, NULL, | 691 {"arglistid", 0, 2, 0, arg2_number, |
688 ret_number, f_arglistid}, | 692 ret_number, f_arglistid}, |
689 {"argv", 0, 2, 0, NULL, | 693 {"argv", 0, 2, 0, arg2_number, |
690 ret_argv, f_argv}, | 694 ret_argv, f_argv}, |
691 {"asin", 1, 1, FEARG_1, NULL, | 695 {"asin", 1, 1, FEARG_1, arg1_float_or_nr, |
692 ret_float, FLOAT_FUNC(f_asin)}, | 696 ret_float, FLOAT_FUNC(f_asin)}, |
693 {"assert_beeps", 1, 2, FEARG_1, NULL, | 697 {"assert_beeps", 1, 2, FEARG_1, NULL, |
694 ret_number_bool, f_assert_beeps}, | 698 ret_number_bool, f_assert_beeps}, |
695 {"assert_equal", 2, 3, FEARG_2, NULL, | 699 {"assert_equal", 2, 3, FEARG_2, NULL, |
696 ret_number_bool, f_assert_equal}, | 700 ret_number_bool, f_assert_equal}, |
714 ret_number_bool, f_assert_notmatch}, | 718 ret_number_bool, f_assert_notmatch}, |
715 {"assert_report", 1, 1, FEARG_1, NULL, | 719 {"assert_report", 1, 1, FEARG_1, NULL, |
716 ret_number_bool, f_assert_report}, | 720 ret_number_bool, f_assert_report}, |
717 {"assert_true", 1, 2, FEARG_1, NULL, | 721 {"assert_true", 1, 2, FEARG_1, NULL, |
718 ret_number_bool, f_assert_true}, | 722 ret_number_bool, f_assert_true}, |
719 {"atan", 1, 1, FEARG_1, NULL, | 723 {"atan", 1, 1, FEARG_1, arg1_float_or_nr, |
720 ret_float, FLOAT_FUNC(f_atan)}, | 724 ret_float, FLOAT_FUNC(f_atan)}, |
721 {"atan2", 2, 2, FEARG_1, NULL, | 725 {"atan2", 2, 2, FEARG_1, arg2_float_or_nr, |
722 ret_float, FLOAT_FUNC(f_atan2)}, | 726 ret_float, FLOAT_FUNC(f_atan2)}, |
723 {"balloon_gettext", 0, 0, 0, NULL, | 727 {"balloon_gettext", 0, 0, 0, NULL, |
724 ret_string, | 728 ret_string, |
725 #ifdef FEAT_BEVAL | 729 #ifdef FEAT_BEVAL |
726 f_balloon_gettext | 730 f_balloon_gettext |
778 ret_number, f_byteidx}, | 782 ret_number, f_byteidx}, |
779 {"byteidxcomp", 2, 2, FEARG_1, NULL, | 783 {"byteidxcomp", 2, 2, FEARG_1, NULL, |
780 ret_number, f_byteidxcomp}, | 784 ret_number, f_byteidxcomp}, |
781 {"call", 2, 3, FEARG_1, NULL, | 785 {"call", 2, 3, FEARG_1, NULL, |
782 ret_any, f_call}, | 786 ret_any, f_call}, |
783 {"ceil", 1, 1, FEARG_1, NULL, | 787 {"ceil", 1, 1, FEARG_1, arg1_float_or_nr, |
784 ret_float, FLOAT_FUNC(f_ceil)}, | 788 ret_float, FLOAT_FUNC(f_ceil)}, |
785 {"ch_canread", 1, 1, FEARG_1, NULL, | 789 {"ch_canread", 1, 1, FEARG_1, NULL, |
786 ret_number_bool, JOB_FUNC(f_ch_canread)}, | 790 ret_number_bool, JOB_FUNC(f_ch_canread)}, |
787 {"ch_close", 1, 1, FEARG_1, NULL, | 791 {"ch_close", 1, 1, FEARG_1, NULL, |
788 ret_void, JOB_FUNC(f_ch_close)}, | 792 ret_void, JOB_FUNC(f_ch_close)}, |
830 ret_number, f_charidx}, | 834 ret_number, f_charidx}, |
831 {"chdir", 1, 1, FEARG_1, NULL, | 835 {"chdir", 1, 1, FEARG_1, NULL, |
832 ret_string, f_chdir}, | 836 ret_string, f_chdir}, |
833 {"cindent", 1, 1, FEARG_1, NULL, | 837 {"cindent", 1, 1, FEARG_1, NULL, |
834 ret_number, f_cindent}, | 838 ret_number, f_cindent}, |
835 {"clearmatches", 0, 1, FEARG_1, NULL, | 839 {"clearmatches", 0, 1, FEARG_1, arg1_number, |
836 ret_void, f_clearmatches}, | 840 ret_void, f_clearmatches}, |
837 {"col", 1, 1, FEARG_1, NULL, | 841 {"col", 1, 1, FEARG_1, NULL, |
838 ret_number, f_col}, | 842 ret_number, f_col}, |
839 {"complete", 2, 2, FEARG_2, NULL, | 843 {"complete", 2, 2, FEARG_2, NULL, |
840 ret_void, f_complete}, | 844 ret_void, f_complete}, |
846 ret_dict_any, f_complete_info}, | 850 ret_dict_any, f_complete_info}, |
847 {"confirm", 1, 4, FEARG_1, NULL, | 851 {"confirm", 1, 4, FEARG_1, NULL, |
848 ret_number, f_confirm}, | 852 ret_number, f_confirm}, |
849 {"copy", 1, 1, FEARG_1, NULL, | 853 {"copy", 1, 1, FEARG_1, NULL, |
850 ret_first_arg, f_copy}, | 854 ret_first_arg, f_copy}, |
851 {"cos", 1, 1, FEARG_1, NULL, | 855 {"cos", 1, 1, FEARG_1, arg1_float_or_nr, |
852 ret_float, FLOAT_FUNC(f_cos)}, | 856 ret_float, FLOAT_FUNC(f_cos)}, |
853 {"cosh", 1, 1, FEARG_1, NULL, | 857 {"cosh", 1, 1, FEARG_1, arg1_float_or_nr, |
854 ret_float, FLOAT_FUNC(f_cosh)}, | 858 ret_float, FLOAT_FUNC(f_cosh)}, |
855 {"count", 2, 4, FEARG_1, NULL, | 859 {"count", 2, 4, FEARG_1, NULL, |
856 ret_number, f_count}, | 860 ret_number, f_count}, |
857 {"cscope_connection",0,3, 0, NULL, | 861 {"cscope_connection",0,3, 0, NULL, |
858 ret_number, f_cscope_connection}, | 862 ret_number, f_cscope_connection}, |
859 {"cursor", 1, 3, FEARG_1, NULL, | 863 {"cursor", 1, 3, FEARG_1, NULL, |
860 ret_number, f_cursor}, | 864 ret_number, f_cursor}, |
861 {"debugbreak", 1, 1, FEARG_1, NULL, | 865 {"debugbreak", 1, 1, FEARG_1, arg1_number, |
862 ret_number, | 866 ret_number, |
863 #ifdef MSWIN | 867 #ifdef MSWIN |
864 f_debugbreak | 868 f_debugbreak |
865 #else | 869 #else |
866 NULL | 870 NULL |
896 ret_string, f_execute}, | 900 ret_string, f_execute}, |
897 {"exepath", 1, 1, FEARG_1, NULL, | 901 {"exepath", 1, 1, FEARG_1, NULL, |
898 ret_string, f_exepath}, | 902 ret_string, f_exepath}, |
899 {"exists", 1, 1, FEARG_1, NULL, | 903 {"exists", 1, 1, FEARG_1, NULL, |
900 ret_number_bool, f_exists}, | 904 ret_number_bool, f_exists}, |
901 {"exp", 1, 1, FEARG_1, NULL, | 905 {"exp", 1, 1, FEARG_1, arg1_float_or_nr, |
902 ret_float, FLOAT_FUNC(f_exp)}, | 906 ret_float, FLOAT_FUNC(f_exp)}, |
903 {"expand", 1, 3, FEARG_1, NULL, | 907 {"expand", 1, 3, FEARG_1, NULL, |
904 ret_any, f_expand}, | 908 ret_any, f_expand}, |
905 {"expandcmd", 1, 1, FEARG_1, NULL, | 909 {"expandcmd", 1, 1, FEARG_1, NULL, |
906 ret_string, f_expandcmd}, | 910 ret_string, f_expandcmd}, |
924 ret_string, f_findfile}, | 928 ret_string, f_findfile}, |
925 {"flatten", 1, 2, FEARG_1, NULL, | 929 {"flatten", 1, 2, FEARG_1, NULL, |
926 ret_list_any, f_flatten}, | 930 ret_list_any, f_flatten}, |
927 {"flattennew", 1, 2, FEARG_1, NULL, | 931 {"flattennew", 1, 2, FEARG_1, NULL, |
928 ret_list_any, f_flattennew}, | 932 ret_list_any, f_flattennew}, |
929 {"float2nr", 1, 1, FEARG_1, NULL, | 933 {"float2nr", 1, 1, FEARG_1, arg1_float_or_nr, |
930 ret_number, FLOAT_FUNC(f_float2nr)}, | 934 ret_number, FLOAT_FUNC(f_float2nr)}, |
931 {"floor", 1, 1, FEARG_1, NULL, | 935 {"floor", 1, 1, FEARG_1, arg1_float_or_nr, |
932 ret_float, FLOAT_FUNC(f_floor)}, | 936 ret_float, FLOAT_FUNC(f_floor)}, |
933 {"fmod", 2, 2, FEARG_1, NULL, | 937 {"fmod", 2, 2, FEARG_1, arg2_float_or_nr, |
934 ret_float, FLOAT_FUNC(f_fmod)}, | 938 ret_float, FLOAT_FUNC(f_fmod)}, |
935 {"fnameescape", 1, 1, FEARG_1, NULL, | 939 {"fnameescape", 1, 1, FEARG_1, NULL, |
936 ret_string, f_fnameescape}, | 940 ret_string, f_fnameescape}, |
937 {"fnamemodify", 2, 2, FEARG_1, NULL, | 941 {"fnamemodify", 2, 2, FEARG_1, NULL, |
938 ret_string, f_fnamemodify}, | 942 ret_string, f_fnamemodify}, |
984 ret_string, f_getcmdtype}, | 988 ret_string, f_getcmdtype}, |
985 {"getcmdwintype", 0, 0, 0, NULL, | 989 {"getcmdwintype", 0, 0, 0, NULL, |
986 ret_string, f_getcmdwintype}, | 990 ret_string, f_getcmdwintype}, |
987 {"getcompletion", 2, 3, FEARG_1, NULL, | 991 {"getcompletion", 2, 3, FEARG_1, NULL, |
988 ret_list_string, f_getcompletion}, | 992 ret_list_string, f_getcompletion}, |
989 {"getcurpos", 0, 1, FEARG_1, NULL, | 993 {"getcurpos", 0, 1, FEARG_1, arg1_number, |
990 ret_list_number, f_getcurpos}, | 994 ret_list_number, f_getcurpos}, |
991 {"getcursorcharpos", 0, 1, FEARG_1, NULL, | 995 {"getcursorcharpos", 0, 1, FEARG_1, arg1_number, |
992 ret_list_number, f_getcursorcharpos}, | 996 ret_list_number, f_getcursorcharpos}, |
993 {"getcwd", 0, 2, FEARG_1, NULL, | 997 {"getcwd", 0, 2, FEARG_1, arg2_number, |
994 ret_string, f_getcwd}, | 998 ret_string, f_getcwd}, |
995 {"getenv", 1, 1, FEARG_1, NULL, | 999 {"getenv", 1, 1, FEARG_1, NULL, |
996 ret_any, f_getenv}, | 1000 ret_any, f_getenv}, |
997 {"getfontname", 0, 1, 0, NULL, | 1001 {"getfontname", 0, 1, 0, NULL, |
998 ret_string, f_getfontname}, | 1002 ret_string, f_getfontname}, |
1004 ret_number, f_getftime}, | 1008 ret_number, f_getftime}, |
1005 {"getftype", 1, 1, FEARG_1, NULL, | 1009 {"getftype", 1, 1, FEARG_1, NULL, |
1006 ret_string, f_getftype}, | 1010 ret_string, f_getftype}, |
1007 {"getimstatus", 0, 0, 0, NULL, | 1011 {"getimstatus", 0, 0, 0, NULL, |
1008 ret_number_bool, f_getimstatus}, | 1012 ret_number_bool, f_getimstatus}, |
1009 {"getjumplist", 0, 2, FEARG_1, NULL, | 1013 {"getjumplist", 0, 2, FEARG_1, arg2_number, |
1010 ret_list_any, f_getjumplist}, | 1014 ret_list_any, f_getjumplist}, |
1011 {"getline", 1, 2, FEARG_1, NULL, | 1015 {"getline", 1, 2, FEARG_1, NULL, |
1012 ret_f_getline, f_getline}, | 1016 ret_f_getline, f_getline}, |
1013 {"getloclist", 1, 2, 0, NULL, | 1017 {"getloclist", 1, 2, 0, NULL, |
1014 ret_list_or_dict_1, f_getloclist}, | 1018 ret_list_or_dict_1, f_getloclist}, |
1015 {"getmarklist", 0, 1, FEARG_1, NULL, | 1019 {"getmarklist", 0, 1, FEARG_1, NULL, |
1016 ret_list_dict_any, f_getmarklist}, | 1020 ret_list_dict_any, f_getmarklist}, |
1017 {"getmatches", 0, 1, 0, NULL, | 1021 {"getmatches", 0, 1, 0, arg1_number, |
1018 ret_list_dict_any, f_getmatches}, | 1022 ret_list_dict_any, f_getmatches}, |
1019 {"getmousepos", 0, 0, 0, NULL, | 1023 {"getmousepos", 0, 0, 0, NULL, |
1020 ret_dict_number, f_getmousepos}, | 1024 ret_dict_number, f_getmousepos}, |
1021 {"getpid", 0, 0, 0, NULL, | 1025 {"getpid", 0, 0, 0, NULL, |
1022 ret_number, f_getpid}, | 1026 ret_number, f_getpid}, |
1028 ret_getreg, f_getreg}, | 1032 ret_getreg, f_getreg}, |
1029 {"getreginfo", 0, 1, FEARG_1, NULL, | 1033 {"getreginfo", 0, 1, FEARG_1, NULL, |
1030 ret_dict_any, f_getreginfo}, | 1034 ret_dict_any, f_getreginfo}, |
1031 {"getregtype", 0, 1, FEARG_1, NULL, | 1035 {"getregtype", 0, 1, FEARG_1, NULL, |
1032 ret_string, f_getregtype}, | 1036 ret_string, f_getregtype}, |
1033 {"gettabinfo", 0, 1, FEARG_1, NULL, | 1037 {"gettabinfo", 0, 1, FEARG_1, arg1_number, |
1034 ret_list_dict_any, f_gettabinfo}, | 1038 ret_list_dict_any, f_gettabinfo}, |
1035 {"gettabvar", 2, 3, FEARG_1, NULL, | 1039 {"gettabvar", 2, 3, FEARG_1, NULL, |
1036 ret_any, f_gettabvar}, | 1040 ret_any, f_gettabvar}, |
1037 {"gettabwinvar", 3, 4, FEARG_1, NULL, | 1041 {"gettabwinvar", 3, 4, FEARG_1, NULL, |
1038 ret_any, f_gettabwinvar}, | 1042 ret_any, f_gettabwinvar}, |
1039 {"gettagstack", 0, 1, FEARG_1, NULL, | 1043 {"gettagstack", 0, 1, FEARG_1, arg1_number, |
1040 ret_dict_any, f_gettagstack}, | 1044 ret_dict_any, f_gettagstack}, |
1041 {"gettext", 1, 1, FEARG_1, NULL, | 1045 {"gettext", 1, 1, FEARG_1, NULL, |
1042 ret_string, f_gettext}, | 1046 ret_string, f_gettext}, |
1043 {"getwininfo", 0, 1, FEARG_1, NULL, | 1047 {"getwininfo", 0, 1, FEARG_1, arg1_number, |
1044 ret_list_dict_any, f_getwininfo}, | 1048 ret_list_dict_any, f_getwininfo}, |
1045 {"getwinpos", 0, 1, FEARG_1, NULL, | 1049 {"getwinpos", 0, 1, FEARG_1, arg1_number, |
1046 ret_list_number, f_getwinpos}, | 1050 ret_list_number, f_getwinpos}, |
1047 {"getwinposx", 0, 0, 0, NULL, | 1051 {"getwinposx", 0, 0, 0, NULL, |
1048 ret_number, f_getwinposx}, | 1052 ret_number, f_getwinposx}, |
1049 {"getwinposy", 0, 0, 0, NULL, | 1053 {"getwinposy", 0, 0, 0, NULL, |
1050 ret_number, f_getwinposy}, | 1054 ret_number, f_getwinposy}, |
1058 ret_any, f_globpath}, | 1062 ret_any, f_globpath}, |
1059 {"has", 1, 2, 0, NULL, | 1063 {"has", 1, 2, 0, NULL, |
1060 ret_number_bool, f_has}, | 1064 ret_number_bool, f_has}, |
1061 {"has_key", 2, 2, FEARG_1, NULL, | 1065 {"has_key", 2, 2, FEARG_1, NULL, |
1062 ret_number_bool, f_has_key}, | 1066 ret_number_bool, f_has_key}, |
1063 {"haslocaldir", 0, 2, FEARG_1, NULL, | 1067 {"haslocaldir", 0, 2, FEARG_1, arg2_number, |
1064 ret_number, f_haslocaldir}, | 1068 ret_number, f_haslocaldir}, |
1065 {"hasmapto", 1, 3, FEARG_1, NULL, | 1069 {"hasmapto", 1, 3, FEARG_1, NULL, |
1066 ret_number_bool, f_hasmapto}, | 1070 ret_number_bool, f_hasmapto}, |
1067 {"highlightID", 1, 1, FEARG_1, NULL, // obsolete | 1071 {"highlightID", 1, 1, FEARG_1, NULL, // obsolete |
1068 ret_number, f_hlID}, | 1072 ret_number, f_hlID}, |
1102 ret_string, f_inputsecret}, | 1106 ret_string, f_inputsecret}, |
1103 {"insert", 2, 3, FEARG_1, arg3_insert, | 1107 {"insert", 2, 3, FEARG_1, arg3_insert, |
1104 ret_first_arg, f_insert}, | 1108 ret_first_arg, f_insert}, |
1105 {"interrupt", 0, 0, 0, NULL, | 1109 {"interrupt", 0, 0, 0, NULL, |
1106 ret_void, f_interrupt}, | 1110 ret_void, f_interrupt}, |
1107 {"invert", 1, 1, FEARG_1, NULL, | 1111 {"invert", 1, 1, FEARG_1, arg1_number, |
1108 ret_number, f_invert}, | 1112 ret_number, f_invert}, |
1109 {"isdirectory", 1, 1, FEARG_1, NULL, | 1113 {"isdirectory", 1, 1, FEARG_1, NULL, |
1110 ret_number_bool, f_isdirectory}, | 1114 ret_number_bool, f_isdirectory}, |
1111 {"isinf", 1, 1, FEARG_1, NULL, | 1115 {"isinf", 1, 1, FEARG_1, arg1_float_or_nr, |
1112 ret_number, MATH_FUNC(f_isinf)}, | 1116 ret_number, MATH_FUNC(f_isinf)}, |
1113 {"islocked", 1, 1, FEARG_1, NULL, | 1117 {"islocked", 1, 1, FEARG_1, NULL, |
1114 ret_number_bool, f_islocked}, | 1118 ret_number_bool, f_islocked}, |
1115 {"isnan", 1, 1, FEARG_1, NULL, | 1119 {"isnan", 1, 1, FEARG_1, arg1_float_or_nr, |
1116 ret_number_bool, MATH_FUNC(f_isnan)}, | 1120 ret_number_bool, MATH_FUNC(f_isnan)}, |
1117 {"items", 1, 1, FEARG_1, NULL, | 1121 {"items", 1, 1, FEARG_1, NULL, |
1118 ret_list_any, f_items}, | 1122 ret_list_any, f_items}, |
1119 {"job_getchannel", 1, 1, FEARG_1, NULL, | 1123 {"job_getchannel", 1, 1, FEARG_1, NULL, |
1120 ret_channel, JOB_FUNC(f_job_getchannel)}, | 1124 ret_channel, JOB_FUNC(f_job_getchannel)}, |
1158 ret_string, f_list2str}, | 1162 ret_string, f_list2str}, |
1159 {"listener_add", 1, 2, FEARG_2, NULL, | 1163 {"listener_add", 1, 2, FEARG_2, NULL, |
1160 ret_number, f_listener_add}, | 1164 ret_number, f_listener_add}, |
1161 {"listener_flush", 0, 1, FEARG_1, NULL, | 1165 {"listener_flush", 0, 1, FEARG_1, NULL, |
1162 ret_void, f_listener_flush}, | 1166 ret_void, f_listener_flush}, |
1163 {"listener_remove", 1, 1, FEARG_1, NULL, | 1167 {"listener_remove", 1, 1, FEARG_1, arg1_number, |
1164 ret_number_bool, f_listener_remove}, | 1168 ret_number_bool, f_listener_remove}, |
1165 {"localtime", 0, 0, 0, NULL, | 1169 {"localtime", 0, 0, 0, NULL, |
1166 ret_number, f_localtime}, | 1170 ret_number, f_localtime}, |
1167 {"log", 1, 1, FEARG_1, NULL, | 1171 {"log", 1, 1, FEARG_1, arg1_float_or_nr, |
1168 ret_float, FLOAT_FUNC(f_log)}, | 1172 ret_float, FLOAT_FUNC(f_log)}, |
1169 {"log10", 1, 1, FEARG_1, NULL, | 1173 {"log10", 1, 1, FEARG_1, arg1_float_or_nr, |
1170 ret_float, FLOAT_FUNC(f_log10)}, | 1174 ret_float, FLOAT_FUNC(f_log10)}, |
1171 {"luaeval", 1, 2, FEARG_1, NULL, | 1175 {"luaeval", 1, 2, FEARG_1, NULL, |
1172 ret_any, | 1176 ret_any, |
1173 #ifdef FEAT_LUA | 1177 #ifdef FEAT_LUA |
1174 f_luaeval | 1178 f_luaeval |
1190 ret_any, f_match}, | 1194 ret_any, f_match}, |
1191 {"matchadd", 2, 5, FEARG_1, NULL, | 1195 {"matchadd", 2, 5, FEARG_1, NULL, |
1192 ret_number, f_matchadd}, | 1196 ret_number, f_matchadd}, |
1193 {"matchaddpos", 2, 5, FEARG_1, NULL, | 1197 {"matchaddpos", 2, 5, FEARG_1, NULL, |
1194 ret_number, f_matchaddpos}, | 1198 ret_number, f_matchaddpos}, |
1195 {"matcharg", 1, 1, FEARG_1, NULL, | 1199 {"matcharg", 1, 1, FEARG_1, arg1_number, |
1196 ret_list_string, f_matcharg}, | 1200 ret_list_string, f_matcharg}, |
1197 {"matchdelete", 1, 2, FEARG_1, NULL, | 1201 {"matchdelete", 1, 2, FEARG_1, arg2_number, |
1198 ret_number_bool, f_matchdelete}, | 1202 ret_number_bool, f_matchdelete}, |
1199 {"matchend", 2, 4, FEARG_1, NULL, | 1203 {"matchend", 2, 4, FEARG_1, NULL, |
1200 ret_number, f_matchend}, | 1204 ret_number, f_matchend}, |
1201 {"matchfuzzy", 2, 3, FEARG_1, NULL, | 1205 {"matchfuzzy", 2, 3, FEARG_1, NULL, |
1202 ret_list_string, f_matchfuzzy}, | 1206 ret_list_string, f_matchfuzzy}, |
1234 }, | 1238 }, |
1235 {"nextnonblank", 1, 1, FEARG_1, NULL, | 1239 {"nextnonblank", 1, 1, FEARG_1, NULL, |
1236 ret_number, f_nextnonblank}, | 1240 ret_number, f_nextnonblank}, |
1237 {"nr2char", 1, 2, FEARG_1, NULL, | 1241 {"nr2char", 1, 2, FEARG_1, NULL, |
1238 ret_string, f_nr2char}, | 1242 ret_string, f_nr2char}, |
1239 {"or", 2, 2, FEARG_1, NULL, | 1243 {"or", 2, 2, FEARG_1, arg2_number, |
1240 ret_number, f_or}, | 1244 ret_number, f_or}, |
1241 {"pathshorten", 1, 2, FEARG_1, NULL, | 1245 {"pathshorten", 1, 2, FEARG_1, NULL, |
1242 ret_string, f_pathshorten}, | 1246 ret_string, f_pathshorten}, |
1243 {"perleval", 1, 1, FEARG_1, NULL, | 1247 {"perleval", 1, 1, FEARG_1, NULL, |
1244 ret_any, | 1248 ret_any, |
1288 ret_void, PROP_FUNC(f_popup_setoptions)}, | 1292 ret_void, PROP_FUNC(f_popup_setoptions)}, |
1289 {"popup_settext", 2, 2, FEARG_1, NULL, | 1293 {"popup_settext", 2, 2, FEARG_1, NULL, |
1290 ret_void, PROP_FUNC(f_popup_settext)}, | 1294 ret_void, PROP_FUNC(f_popup_settext)}, |
1291 {"popup_show", 1, 1, FEARG_1, NULL, | 1295 {"popup_show", 1, 1, FEARG_1, NULL, |
1292 ret_void, PROP_FUNC(f_popup_show)}, | 1296 ret_void, PROP_FUNC(f_popup_show)}, |
1293 {"pow", 2, 2, FEARG_1, NULL, | 1297 {"pow", 2, 2, FEARG_1, arg2_float_or_nr, |
1294 ret_float, FLOAT_FUNC(f_pow)}, | 1298 ret_float, FLOAT_FUNC(f_pow)}, |
1295 {"prevnonblank", 1, 1, FEARG_1, NULL, | 1299 {"prevnonblank", 1, 1, FEARG_1, NULL, |
1296 ret_number, f_prevnonblank}, | 1300 ret_number, f_prevnonblank}, |
1297 {"printf", 1, 19, FEARG_2, NULL, | 1301 {"printf", 1, 19, FEARG_2, NULL, |
1298 ret_string, f_printf}, | 1302 ret_string, f_printf}, |
1396 ret_first_arg, f_repeat}, | 1400 ret_first_arg, f_repeat}, |
1397 {"resolve", 1, 1, FEARG_1, NULL, | 1401 {"resolve", 1, 1, FEARG_1, NULL, |
1398 ret_string, f_resolve}, | 1402 ret_string, f_resolve}, |
1399 {"reverse", 1, 1, FEARG_1, NULL, | 1403 {"reverse", 1, 1, FEARG_1, NULL, |
1400 ret_first_arg, f_reverse}, | 1404 ret_first_arg, f_reverse}, |
1401 {"round", 1, 1, FEARG_1, NULL, | 1405 {"round", 1, 1, FEARG_1, arg1_float_or_nr, |
1402 ret_float, FLOAT_FUNC(f_round)}, | 1406 ret_float, FLOAT_FUNC(f_round)}, |
1403 {"rubyeval", 1, 1, FEARG_1, NULL, | 1407 {"rubyeval", 1, 1, FEARG_1, NULL, |
1404 ret_any, | 1408 ret_any, |
1405 #ifdef FEAT_RUBY | 1409 #ifdef FEAT_RUBY |
1406 f_rubyeval | 1410 f_rubyeval |
1407 #else | 1411 #else |
1408 NULL | 1412 NULL |
1409 #endif | 1413 #endif |
1410 }, | 1414 }, |
1411 {"screenattr", 2, 2, FEARG_1, NULL, | 1415 {"screenattr", 2, 2, FEARG_1, arg2_number, |
1412 ret_number, f_screenattr}, | 1416 ret_number, f_screenattr}, |
1413 {"screenchar", 2, 2, FEARG_1, NULL, | 1417 {"screenchar", 2, 2, FEARG_1, arg2_number, |
1414 ret_number, f_screenchar}, | 1418 ret_number, f_screenchar}, |
1415 {"screenchars", 2, 2, FEARG_1, NULL, | 1419 {"screenchars", 2, 2, FEARG_1, arg2_number, |
1416 ret_list_number, f_screenchars}, | 1420 ret_list_number, f_screenchars}, |
1417 {"screencol", 0, 0, 0, NULL, | 1421 {"screencol", 0, 0, 0, NULL, |
1418 ret_number, f_screencol}, | 1422 ret_number, f_screencol}, |
1419 {"screenpos", 3, 3, FEARG_1, NULL, | 1423 {"screenpos", 3, 3, FEARG_1, NULL, |
1420 ret_dict_number, f_screenpos}, | 1424 ret_dict_number, f_screenpos}, |
1421 {"screenrow", 0, 0, 0, NULL, | 1425 {"screenrow", 0, 0, 0, NULL, |
1422 ret_number, f_screenrow}, | 1426 ret_number, f_screenrow}, |
1423 {"screenstring", 2, 2, FEARG_1, NULL, | 1427 {"screenstring", 2, 2, FEARG_1, arg2_number, |
1424 ret_string, f_screenstring}, | 1428 ret_string, f_screenstring}, |
1425 {"search", 1, 5, FEARG_1, NULL, | 1429 {"search", 1, 5, FEARG_1, NULL, |
1426 ret_number, f_search}, | 1430 ret_number, f_search}, |
1427 {"searchcount", 0, 1, FEARG_1, NULL, | 1431 {"searchcount", 0, 1, FEARG_1, NULL, |
1428 ret_dict_any, f_searchcount}, | 1432 ret_dict_any, f_searchcount}, |
1446 ret_void, f_setcellwidths}, | 1450 ret_void, f_setcellwidths}, |
1447 {"setcharpos", 2, 2, FEARG_2, NULL, | 1451 {"setcharpos", 2, 2, FEARG_2, NULL, |
1448 ret_number_bool, f_setcharpos}, | 1452 ret_number_bool, f_setcharpos}, |
1449 {"setcharsearch", 1, 1, FEARG_1, NULL, | 1453 {"setcharsearch", 1, 1, FEARG_1, NULL, |
1450 ret_void, f_setcharsearch}, | 1454 ret_void, f_setcharsearch}, |
1451 {"setcmdpos", 1, 1, FEARG_1, NULL, | 1455 {"setcmdpos", 1, 1, FEARG_1, arg1_number, |
1452 ret_number_bool, f_setcmdpos}, | 1456 ret_number_bool, f_setcmdpos}, |
1453 {"setcursorcharpos", 1, 3, FEARG_1, NULL, | 1457 {"setcursorcharpos", 1, 3, FEARG_1, NULL, |
1454 ret_number_bool, f_setcursorcharpos}, | 1458 ret_number_bool, f_setcursorcharpos}, |
1455 {"setenv", 2, 2, FEARG_2, NULL, | 1459 {"setenv", 2, 2, FEARG_2, NULL, |
1456 ret_void, f_setenv}, | 1460 ret_void, f_setenv}, |
1484 NULL | 1488 NULL |
1485 #endif | 1489 #endif |
1486 }, | 1490 }, |
1487 {"shellescape", 1, 2, FEARG_1, NULL, | 1491 {"shellescape", 1, 2, FEARG_1, NULL, |
1488 ret_string, f_shellescape}, | 1492 ret_string, f_shellescape}, |
1489 {"shiftwidth", 0, 1, FEARG_1, NULL, | 1493 {"shiftwidth", 0, 1, FEARG_1, arg1_number, |
1490 ret_number, f_shiftwidth}, | 1494 ret_number, f_shiftwidth}, |
1491 {"sign_define", 1, 2, FEARG_1, NULL, | 1495 {"sign_define", 1, 2, FEARG_1, NULL, |
1492 ret_any, SIGN_FUNC(f_sign_define)}, | 1496 ret_any, SIGN_FUNC(f_sign_define)}, |
1493 {"sign_getdefined", 0, 1, FEARG_1, NULL, | 1497 {"sign_getdefined", 0, 1, FEARG_1, NULL, |
1494 ret_list_dict_any, SIGN_FUNC(f_sign_getdefined)}, | 1498 ret_list_dict_any, SIGN_FUNC(f_sign_getdefined)}, |
1506 ret_number_bool, SIGN_FUNC(f_sign_unplace)}, | 1510 ret_number_bool, SIGN_FUNC(f_sign_unplace)}, |
1507 {"sign_unplacelist", 1, 2, FEARG_1, NULL, | 1511 {"sign_unplacelist", 1, 2, FEARG_1, NULL, |
1508 ret_list_number, SIGN_FUNC(f_sign_unplacelist)}, | 1512 ret_list_number, SIGN_FUNC(f_sign_unplacelist)}, |
1509 {"simplify", 1, 1, FEARG_1, NULL, | 1513 {"simplify", 1, 1, FEARG_1, NULL, |
1510 ret_string, f_simplify}, | 1514 ret_string, f_simplify}, |
1511 {"sin", 1, 1, FEARG_1, NULL, | 1515 {"sin", 1, 1, FEARG_1, arg1_float_or_nr, |
1512 ret_float, FLOAT_FUNC(f_sin)}, | 1516 ret_float, FLOAT_FUNC(f_sin)}, |
1513 {"sinh", 1, 1, FEARG_1, NULL, | 1517 {"sinh", 1, 1, FEARG_1, arg1_float_or_nr, |
1514 ret_float, FLOAT_FUNC(f_sinh)}, | 1518 ret_float, FLOAT_FUNC(f_sinh)}, |
1515 {"slice", 2, 3, FEARG_1, NULL, | 1519 {"slice", 2, 3, FEARG_1, NULL, |
1516 ret_first_arg, f_slice}, | 1520 ret_first_arg, f_slice}, |
1517 {"sort", 1, 3, FEARG_1, NULL, | 1521 {"sort", 1, 3, FEARG_1, NULL, |
1518 ret_first_arg, f_sort}, | 1522 ret_first_arg, f_sort}, |
1530 ret_list_string, f_spellbadword}, | 1534 ret_list_string, f_spellbadword}, |
1531 {"spellsuggest", 1, 3, FEARG_1, NULL, | 1535 {"spellsuggest", 1, 3, FEARG_1, NULL, |
1532 ret_list_string, f_spellsuggest}, | 1536 ret_list_string, f_spellsuggest}, |
1533 {"split", 1, 3, FEARG_1, NULL, | 1537 {"split", 1, 3, FEARG_1, NULL, |
1534 ret_list_string, f_split}, | 1538 ret_list_string, f_split}, |
1535 {"sqrt", 1, 1, FEARG_1, NULL, | 1539 {"sqrt", 1, 1, FEARG_1, arg1_float_or_nr, |
1536 ret_float, FLOAT_FUNC(f_sqrt)}, | 1540 ret_float, FLOAT_FUNC(f_sqrt)}, |
1537 {"srand", 0, 1, FEARG_1, NULL, | 1541 {"srand", 0, 1, FEARG_1, NULL, |
1538 ret_list_number, f_srand}, | 1542 ret_list_number, f_srand}, |
1539 {"state", 0, 1, FEARG_1, NULL, | 1543 {"state", 0, 1, FEARG_1, NULL, |
1540 ret_string, f_state}, | 1544 ret_string, f_state}, |
1614 ret_number, f_tabpagewinnr}, | 1618 ret_number, f_tabpagewinnr}, |
1615 {"tagfiles", 0, 0, 0, NULL, | 1619 {"tagfiles", 0, 0, 0, NULL, |
1616 ret_list_string, f_tagfiles}, | 1620 ret_list_string, f_tagfiles}, |
1617 {"taglist", 1, 2, FEARG_1, NULL, | 1621 {"taglist", 1, 2, FEARG_1, NULL, |
1618 ret_list_dict_any, f_taglist}, | 1622 ret_list_dict_any, f_taglist}, |
1619 {"tan", 1, 1, FEARG_1, NULL, | 1623 {"tan", 1, 1, FEARG_1, arg1_float_or_nr, |
1620 ret_float, FLOAT_FUNC(f_tan)}, | 1624 ret_float, FLOAT_FUNC(f_tan)}, |
1621 {"tanh", 1, 1, FEARG_1, NULL, | 1625 {"tanh", 1, 1, FEARG_1, arg1_float_or_nr, |
1622 ret_float, FLOAT_FUNC(f_tanh)}, | 1626 ret_float, FLOAT_FUNC(f_tanh)}, |
1623 {"tempname", 0, 0, 0, NULL, | 1627 {"tempname", 0, 0, 0, NULL, |
1624 ret_string, f_tempname}, | 1628 ret_string, f_tempname}, |
1625 {"term_dumpdiff", 2, 3, FEARG_1, NULL, | 1629 {"term_dumpdiff", 2, 3, FEARG_1, NULL, |
1626 ret_number, TERM_FUNC(f_term_dumpdiff)}, | 1630 ret_number, TERM_FUNC(f_term_dumpdiff)}, |
1748 ret_number, TIMER_FUNC(f_timer_start)}, | 1752 ret_number, TIMER_FUNC(f_timer_start)}, |
1749 {"timer_stop", 1, 1, FEARG_1, NULL, | 1753 {"timer_stop", 1, 1, FEARG_1, NULL, |
1750 ret_void, TIMER_FUNC(f_timer_stop)}, | 1754 ret_void, TIMER_FUNC(f_timer_stop)}, |
1751 {"timer_stopall", 0, 0, 0, NULL, | 1755 {"timer_stopall", 0, 0, 0, NULL, |
1752 ret_void, TIMER_FUNC(f_timer_stopall)}, | 1756 ret_void, TIMER_FUNC(f_timer_stopall)}, |
1753 {"tolower", 1, 1, FEARG_1, NULL, | 1757 {"tolower", 1, 1, FEARG_1, arg1_string, |
1754 ret_string, f_tolower}, | 1758 ret_string, f_tolower}, |
1755 {"toupper", 1, 1, FEARG_1, NULL, | 1759 {"toupper", 1, 1, FEARG_1, arg1_string, |
1756 ret_string, f_toupper}, | 1760 ret_string, f_toupper}, |
1757 {"tr", 3, 3, FEARG_1, NULL, | 1761 {"tr", 3, 3, FEARG_1, arg3_string, |
1758 ret_string, f_tr}, | 1762 ret_string, f_tr}, |
1759 {"trim", 1, 3, FEARG_1, NULL, | 1763 {"trim", 1, 3, FEARG_1, NULL, |
1760 ret_string, f_trim}, | 1764 ret_string, f_trim}, |
1761 {"trunc", 1, 1, FEARG_1, NULL, | 1765 {"trunc", 1, 1, FEARG_1, arg1_float_or_nr, |
1762 ret_float, FLOAT_FUNC(f_trunc)}, | 1766 ret_float, FLOAT_FUNC(f_trunc)}, |
1763 {"type", 1, 1, FEARG_1, NULL, | 1767 {"type", 1, 1, FEARG_1, NULL, |
1764 ret_number, f_type}, | 1768 ret_number, f_type}, |
1765 {"typename", 1, 1, FEARG_1, NULL, | 1769 {"typename", 1, 1, FEARG_1, NULL, |
1766 ret_string, f_typename}, | 1770 ret_string, f_typename}, |
1782 ret_string, f_win_execute}, | 1786 ret_string, f_win_execute}, |
1783 {"win_findbuf", 1, 1, FEARG_1, NULL, | 1787 {"win_findbuf", 1, 1, FEARG_1, NULL, |
1784 ret_list_number, f_win_findbuf}, | 1788 ret_list_number, f_win_findbuf}, |
1785 {"win_getid", 0, 2, FEARG_1, NULL, | 1789 {"win_getid", 0, 2, FEARG_1, NULL, |
1786 ret_number, f_win_getid}, | 1790 ret_number, f_win_getid}, |
1787 {"win_gettype", 0, 1, FEARG_1, NULL, | 1791 {"win_gettype", 0, 1, FEARG_1, arg1_number, |
1788 ret_string, f_win_gettype}, | 1792 ret_string, f_win_gettype}, |
1789 {"win_gotoid", 1, 1, FEARG_1, NULL, | 1793 {"win_gotoid", 1, 1, FEARG_1, arg1_number, |
1790 ret_number_bool, f_win_gotoid}, | 1794 ret_number_bool, f_win_gotoid}, |
1791 {"win_id2tabwin", 1, 1, FEARG_1, NULL, | 1795 {"win_id2tabwin", 1, 1, FEARG_1, arg1_number, |
1792 ret_list_number, f_win_id2tabwin}, | 1796 ret_list_number, f_win_id2tabwin}, |
1793 {"win_id2win", 1, 1, FEARG_1, NULL, | 1797 {"win_id2win", 1, 1, FEARG_1, arg1_number, |
1794 ret_number, f_win_id2win}, | 1798 ret_number, f_win_id2win}, |
1795 {"win_screenpos", 1, 1, FEARG_1, NULL, | 1799 {"win_screenpos", 1, 1, FEARG_1, arg1_number, |
1796 ret_list_number, f_win_screenpos}, | 1800 ret_list_number, f_win_screenpos}, |
1797 {"win_splitmove", 2, 3, FEARG_1, NULL, | 1801 {"win_splitmove", 2, 3, FEARG_1, NULL, |
1798 ret_number_bool, f_win_splitmove}, | 1802 ret_number_bool, f_win_splitmove}, |
1799 {"winbufnr", 1, 1, FEARG_1, NULL, | 1803 {"winbufnr", 1, 1, FEARG_1, arg1_number, |
1800 ret_number, f_winbufnr}, | 1804 ret_number, f_winbufnr}, |
1801 {"wincol", 0, 0, 0, NULL, | 1805 {"wincol", 0, 0, 0, NULL, |
1802 ret_number, f_wincol}, | 1806 ret_number, f_wincol}, |
1803 {"windowsversion", 0, 0, 0, NULL, | 1807 {"windowsversion", 0, 0, 0, NULL, |
1804 ret_string, f_windowsversion}, | 1808 ret_string, f_windowsversion}, |
1805 {"winheight", 1, 1, FEARG_1, NULL, | 1809 {"winheight", 1, 1, FEARG_1, arg1_number, |
1806 ret_number, f_winheight}, | 1810 ret_number, f_winheight}, |
1807 {"winlayout", 0, 1, FEARG_1, NULL, | 1811 {"winlayout", 0, 1, FEARG_1, arg1_number, |
1808 ret_list_any, f_winlayout}, | 1812 ret_list_any, f_winlayout}, |
1809 {"winline", 0, 0, 0, NULL, | 1813 {"winline", 0, 0, 0, NULL, |
1810 ret_number, f_winline}, | 1814 ret_number, f_winline}, |
1811 {"winnr", 0, 1, FEARG_1, NULL, | 1815 {"winnr", 0, 1, FEARG_1, NULL, |
1812 ret_number, f_winnr}, | 1816 ret_number, f_winnr}, |
1814 ret_string, f_winrestcmd}, | 1818 ret_string, f_winrestcmd}, |
1815 {"winrestview", 1, 1, FEARG_1, NULL, | 1819 {"winrestview", 1, 1, FEARG_1, NULL, |
1816 ret_void, f_winrestview}, | 1820 ret_void, f_winrestview}, |
1817 {"winsaveview", 0, 0, 0, NULL, | 1821 {"winsaveview", 0, 0, 0, NULL, |
1818 ret_dict_number, f_winsaveview}, | 1822 ret_dict_number, f_winsaveview}, |
1819 {"winwidth", 1, 1, FEARG_1, NULL, | 1823 {"winwidth", 1, 1, FEARG_1, arg1_number, |
1820 ret_number, f_winwidth}, | 1824 ret_number, f_winwidth}, |
1821 {"wordcount", 0, 0, 0, NULL, | 1825 {"wordcount", 0, 0, 0, NULL, |
1822 ret_dict_number, f_wordcount}, | 1826 ret_dict_number, f_wordcount}, |
1823 {"writefile", 2, 3, FEARG_1, NULL, | 1827 {"writefile", 2, 3, FEARG_1, NULL, |
1824 ret_number_bool, f_writefile}, | 1828 ret_number_bool, f_writefile}, |
1825 {"xor", 2, 2, FEARG_1, NULL, | 1829 {"xor", 2, 2, FEARG_1, arg2_number, |
1826 ret_number, f_xor}, | 1830 ret_number, f_xor}, |
1827 }; | 1831 }; |
1828 | 1832 |
1829 #if defined(EBCDIC) || defined(PROTO) | 1833 #if defined(EBCDIC) || defined(PROTO) |
1830 /* | 1834 /* |