1
0
forked from aniani/vim

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.
This commit is contained in:
Bram Moolenaar
2018-08-01 19:06:03 +02:00
parent f711cb2f12
commit ded27a1feb
7 changed files with 20 additions and 35 deletions

View File

@@ -4239,7 +4239,7 @@ expand_by_function(
curbuf_save = curbuf; curbuf_save = curbuf;
/* Call a function, which returns a list or dict. */ /* Call a function, which returns a list or dict. */
if (call_vim_function(funcname, 2, args, &rettv, FALSE) == OK) if (call_vim_function(funcname, 2, args, &rettv) == OK)
{ {
switch (rettv.v_type) switch (rettv.v_type)
{ {
@@ -5569,7 +5569,7 @@ ins_complete(int c, int enable_pum)
pos = curwin->w_cursor; pos = curwin->w_cursor;
curwin_save = curwin; curwin_save = curwin;
curbuf_save = curbuf; curbuf_save = curbuf;
col = call_func_retnr(funcname, 2, args, FALSE); col = call_func_retnr(funcname, 2, args);
if (curwin_save != curwin || curbuf_save != curbuf) if (curwin_save != curwin || curbuf_save != curbuf)
{ {
EMSG(_(e_complwin)); EMSG(_(e_complwin));

View File

@@ -1021,29 +1021,15 @@ call_vim_function(
char_u *func, char_u *func,
int argc, int argc,
typval_T *argv, typval_T *argv,
typval_T *rettv, typval_T *rettv)
int safe) /* use the sandbox */
{ {
int doesrange; int doesrange;
void *save_funccalp = NULL;
int ret; int ret;
if (safe)
{
save_funccalp = save_funccal();
++sandbox;
}
rettv->v_type = VAR_UNKNOWN; /* clear_tv() uses this */ rettv->v_type = VAR_UNKNOWN; /* clear_tv() uses this */
ret = call_func(func, (int)STRLEN(func), rettv, argc, argv, NULL, ret = call_func(func, (int)STRLEN(func), rettv, argc, argv, NULL,
curwin->w_cursor.lnum, curwin->w_cursor.lnum, curwin->w_cursor.lnum, curwin->w_cursor.lnum,
&doesrange, TRUE, NULL, NULL); &doesrange, TRUE, NULL, NULL);
if (safe)
{
--sandbox;
restore_funccal(save_funccalp);
}
if (ret == FAIL) if (ret == FAIL)
clear_tv(rettv); clear_tv(rettv);
@@ -1060,13 +1046,12 @@ call_vim_function(
call_func_retnr( call_func_retnr(
char_u *func, char_u *func,
int argc, int argc,
typval_T *argv, typval_T *argv)
int safe) /* use the sandbox */
{ {
typval_T rettv; typval_T rettv;
varnumber_T retval; varnumber_T retval;
if (call_vim_function(func, argc, argv, &rettv, safe) == FAIL) if (call_vim_function(func, argc, argv, &rettv) == FAIL)
return -1; return -1;
retval = get_tv_number_chk(&rettv, NULL); retval = get_tv_number_chk(&rettv, NULL);
@@ -1088,13 +1073,12 @@ call_func_retnr(
call_func_retstr( call_func_retstr(
char_u *func, char_u *func,
int argc, int argc,
typval_T *argv, typval_T *argv)
int safe) /* use the sandbox */
{ {
typval_T rettv; typval_T rettv;
char_u *retval; char_u *retval;
if (call_vim_function(func, argc, argv, &rettv, safe) == FAIL) if (call_vim_function(func, argc, argv, &rettv) == FAIL)
return NULL; return NULL;
retval = vim_strsave(get_tv_string(&rettv)); retval = vim_strsave(get_tv_string(&rettv));
@@ -1113,12 +1097,11 @@ call_func_retstr(
call_func_retlist( call_func_retlist(
char_u *func, char_u *func,
int argc, int argc,
typval_T *argv, typval_T *argv)
int safe) /* use the sandbox */
{ {
typval_T rettv; typval_T rettv;
if (call_vim_function(func, argc, argv, &rettv, safe) == FAIL) if (call_vim_function(func, argc, argv, &rettv) == FAIL)
return NULL; return NULL;
if (rettv.v_type != VAR_LIST) if (rettv.v_type != VAR_LIST)

View File

@@ -5279,7 +5279,7 @@ expand_shellcmd(
*/ */
static void * static void *
call_user_expand_func( call_user_expand_func(
void *(*user_expand_func)(char_u *, int, typval_T *, int), void *(*user_expand_func)(char_u *, int, typval_T *),
expand_T *xp, expand_T *xp,
int *num_file, int *num_file,
char_u ***file) char_u ***file)
@@ -5318,7 +5318,7 @@ call_user_expand_func(
ccline.cmdprompt = NULL; ccline.cmdprompt = NULL;
current_SID = xp->xp_scriptID; current_SID = xp->xp_scriptID;
ret = user_expand_func(xp->xp_arg, 3, args, FALSE); ret = user_expand_func(xp->xp_arg, 3, args);
ccline = save_ccline; ccline = save_ccline;
current_SID = save_current_SID; current_SID = save_current_SID;

View File

@@ -4825,7 +4825,7 @@ call_imactivatefunc(int active)
argv[0].v_type = VAR_NUMBER; argv[0].v_type = VAR_NUMBER;
argv[0].vval.v_number = active ? 1 : 0; argv[0].vval.v_number = active ? 1 : 0;
argv[1].v_type = VAR_UNKNOWN; argv[1].v_type = VAR_UNKNOWN;
(void)call_func_retnr(p_imaf, 1, argv, FALSE); (void)call_func_retnr(p_imaf, 1, argv);
} }
static int static int
@@ -4839,7 +4839,7 @@ call_imstatusfunc(void)
/* FIXME: :py print 'xxx' is shown duplicate result. /* FIXME: :py print 'xxx' is shown duplicate result.
* Use silent to avoid it. */ * Use silent to avoid it. */
++msg_silent; ++msg_silent;
is_active = call_func_retnr(p_imsf, 0, NULL, FALSE); is_active = call_func_retnr(p_imsf, 0, NULL);
--msg_silent; --msg_silent;
return (is_active > 0); return (is_active > 0);
} }

View File

@@ -2248,7 +2248,7 @@ op_function(oparg_T *oap UNUSED)
virtual_op = MAYBE; virtual_op = MAYBE;
# endif # endif
(void)call_func_retnr(p_opfunc, 1, argv, FALSE); (void)call_func_retnr(p_opfunc, 1, argv);
# ifdef FEAT_VIRTUALEDIT # ifdef FEAT_VIRTUALEDIT
virtual_op = save_virtual_op; virtual_op = save_virtual_op;

View File

@@ -19,10 +19,10 @@ varnumber_T eval_to_number(char_u *expr);
list_T *eval_spell_expr(char_u *badword, char_u *expr); list_T *eval_spell_expr(char_u *badword, char_u *expr);
int get_spellword(list_T *list, char_u **pp); int get_spellword(list_T *list, char_u **pp);
typval_T *eval_expr(char_u *arg, char_u **nextcmd); typval_T *eval_expr(char_u *arg, char_u **nextcmd);
int call_vim_function(char_u *func, int argc, typval_T *argv, typval_T *rettv, int safe); int call_vim_function(char_u *func, int argc, typval_T *argv, typval_T *rettv);
varnumber_T call_func_retnr(char_u *func, int argc, typval_T *argv, int safe); varnumber_T call_func_retnr(char_u *func, int argc, typval_T *argv);
void *call_func_retstr(char_u *func, int argc, typval_T *argv, int safe); void *call_func_retstr(char_u *func, int argc, typval_T *argv);
void *call_func_retlist(char_u *func, int argc, typval_T *argv, int safe); void *call_func_retlist(char_u *func, int argc, typval_T *argv);
int eval_foldexpr(char_u *arg, int *cp); int eval_foldexpr(char_u *arg, int *cp);
void ex_let(exarg_T *eap); void ex_let(exarg_T *eap);
void list_hashtable_vars(hashtab_T *ht, char_u *prefix, int empty, int *first); void list_hashtable_vars(hashtab_T *ht, char_u *prefix, int empty, int *first);

View File

@@ -794,6 +794,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
233,
/**/ /**/
232, 232,
/**/ /**/