comparison src/eval.c @ 14439:e4c553e9132b v8.1.0233

patch 8.1.0233: "safe" argument of call_vim_function() is always FALSE commit https://github.com/vim/vim/commit/ded27a1febda3db7447958b60a7d791af514d124 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 1 19:06:03 2018 +0200 patch 8.1.0233: "safe" argument of call_vim_function() is always FALSE Problem: "safe" argument of call_vim_function() is always FALSE. Solution: Remove the argument.
author Christian Brabandt <cb@256bit.org>
date Wed, 01 Aug 2018 19:15:05 +0200
parents c62601adad69
children 0a3b9ecf7cb8
comparison
equal deleted inserted replaced
14438:af83b1cb4702 14439:e4c553e9132b
1019 int 1019 int
1020 call_vim_function( 1020 call_vim_function(
1021 char_u *func, 1021 char_u *func,
1022 int argc, 1022 int argc,
1023 typval_T *argv, 1023 typval_T *argv,
1024 typval_T *rettv, 1024 typval_T *rettv)
1025 int safe) /* use the sandbox */
1026 { 1025 {
1027 int doesrange; 1026 int doesrange;
1028 void *save_funccalp = NULL;
1029 int ret; 1027 int ret;
1030
1031 if (safe)
1032 {
1033 save_funccalp = save_funccal();
1034 ++sandbox;
1035 }
1036 1028
1037 rettv->v_type = VAR_UNKNOWN; /* clear_tv() uses this */ 1029 rettv->v_type = VAR_UNKNOWN; /* clear_tv() uses this */
1038 ret = call_func(func, (int)STRLEN(func), rettv, argc, argv, NULL, 1030 ret = call_func(func, (int)STRLEN(func), rettv, argc, argv, NULL,
1039 curwin->w_cursor.lnum, curwin->w_cursor.lnum, 1031 curwin->w_cursor.lnum, curwin->w_cursor.lnum,
1040 &doesrange, TRUE, NULL, NULL); 1032 &doesrange, TRUE, NULL, NULL);
1041 if (safe)
1042 {
1043 --sandbox;
1044 restore_funccal(save_funccalp);
1045 }
1046
1047 if (ret == FAIL) 1033 if (ret == FAIL)
1048 clear_tv(rettv); 1034 clear_tv(rettv);
1049 1035
1050 return ret; 1036 return ret;
1051 } 1037 }
1058 */ 1044 */
1059 varnumber_T 1045 varnumber_T
1060 call_func_retnr( 1046 call_func_retnr(
1061 char_u *func, 1047 char_u *func,
1062 int argc, 1048 int argc,
1063 typval_T *argv, 1049 typval_T *argv)
1064 int safe) /* use the sandbox */
1065 { 1050 {
1066 typval_T rettv; 1051 typval_T rettv;
1067 varnumber_T retval; 1052 varnumber_T retval;
1068 1053
1069 if (call_vim_function(func, argc, argv, &rettv, safe) == FAIL) 1054 if (call_vim_function(func, argc, argv, &rettv) == FAIL)
1070 return -1; 1055 return -1;
1071 1056
1072 retval = get_tv_number_chk(&rettv, NULL); 1057 retval = get_tv_number_chk(&rettv, NULL);
1073 clear_tv(&rettv); 1058 clear_tv(&rettv);
1074 return retval; 1059 return retval;
1086 */ 1071 */
1087 void * 1072 void *
1088 call_func_retstr( 1073 call_func_retstr(
1089 char_u *func, 1074 char_u *func,
1090 int argc, 1075 int argc,
1091 typval_T *argv, 1076 typval_T *argv)
1092 int safe) /* use the sandbox */
1093 { 1077 {
1094 typval_T rettv; 1078 typval_T rettv;
1095 char_u *retval; 1079 char_u *retval;
1096 1080
1097 if (call_vim_function(func, argc, argv, &rettv, safe) == FAIL) 1081 if (call_vim_function(func, argc, argv, &rettv) == FAIL)
1098 return NULL; 1082 return NULL;
1099 1083
1100 retval = vim_strsave(get_tv_string(&rettv)); 1084 retval = vim_strsave(get_tv_string(&rettv));
1101 clear_tv(&rettv); 1085 clear_tv(&rettv);
1102 return retval; 1086 return retval;
1111 */ 1095 */
1112 void * 1096 void *
1113 call_func_retlist( 1097 call_func_retlist(
1114 char_u *func, 1098 char_u *func,
1115 int argc, 1099 int argc,
1116 typval_T *argv, 1100 typval_T *argv)
1117 int safe) /* use the sandbox */
1118 { 1101 {
1119 typval_T rettv; 1102 typval_T rettv;
1120 1103
1121 if (call_vim_function(func, argc, argv, &rettv, safe) == FAIL) 1104 if (call_vim_function(func, argc, argv, &rettv) == FAIL)
1122 return NULL; 1105 return NULL;
1123 1106
1124 if (rettv.v_type != VAR_LIST) 1107 if (rettv.v_type != VAR_LIST)
1125 { 1108 {
1126 clear_tv(&rettv); 1109 clear_tv(&rettv);