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:
@@ -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));
|
||||||
|
31
src/eval.c
31
src/eval.c
@@ -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)
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user