Patch 8.2.1111
Problem: Inconsistent naming of get_list_tv() and eval_dict().
Solution: Rename get_list_tv() to eval_list(). Similarly for eval_number(),
eval_string(), eval_lit_string() and a few others.
Files: src/eval.c, src/list.c, src/proto/
list.pro, src/vim9compile.c,
src/typval.c, src/proto/
typval.pro, src/vim9script.c,
src/evalfunc.c, src/evalvars.c, src/proto/
evalvars.pro,
src/vim9execute.c
*** ../vim-8.2.1110/src/eval.c 2020-07-01 17:28:30.343443234 +0200
--- src/eval.c 2020-07-01 18:26:26.106119016 +0200
***************
*** 1224,1230 ****
// handle +=, -=, *=, /=, %= and .=
di = NULL;
! if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name),
&tv, &di, TRUE, FALSE) == OK)
{
if ((di == NULL
--- 1224,1230 ----
// handle +=, -=, *=, /=, %= and .=
di = NULL;
! if (eval_variable(lp->ll_name, (int)STRLEN(lp->ll_name),
&tv, &di, TRUE, FALSE) == OK)
{
if ((di == NULL
***************
*** 2901,2907 ****
case '7':
case '8':
case '9':
! case '.': ret = get_number_tv(arg, rettv, evaluate, want_string);
// Apply prefixed "-" and "+" now. Matters especially when
// "->" follows.
--- 2901,2907 ----
case '7':
case '8':
case '9':
! case '.': ret = eval_number(arg, rettv, evaluate, want_string);
// Apply prefixed "-" and "+" now. Matters especially when
// "->" follows.
***************
*** 2912,2930 ****
/*
* String constant: "string".
*/
! case '"': ret = get_string_tv(arg, rettv, evaluate);
break;
/*
* Literal string constant: 'str''ing'.
*/
! case '\'': ret = get_lit_string_tv(arg, rettv, evaluate);
break;
/*
* List: [expr, expr]
*/
! case '[': ret = get_list_tv(arg, rettv, evalarg, TRUE);
break;
/*
--- 2912,2930 ----
/*
* String constant: "string".
*/
! case '"': ret = eval_string(arg, rettv, evaluate);
break;
/*
* Literal string constant: 'str''ing'.
*/
! case '\'': ret = eval_lit_string(arg, rettv, evaluate);
break;
/*
* List: [expr, expr]
*/
! case '[': ret = eval_list(arg, rettv, evalarg, TRUE);
break;
/*
***************
*** 2951,2963 ****
/*
* Option value: &name
*/
! case '&': ret = get_option_tv(arg, rettv, evaluate);
break;
/*
* Environment variable: $VAR.
*/
! case '$': ret = get_env_tv(arg, rettv, evaluate);
break;
/*
--- 2951,2963 ----
/*
* Option value: &name
*/
! case '&': ret = eval_option(arg, rettv, evaluate);
break;
/*
* Environment variable: $VAR.
*/
! case '$': ret = eval_env_var(arg, rettv, evaluate);
break;
/*
***************
*** 3012,3025 ****
ret = FAIL;
else
{
! if (**arg == '(') // recursive!
ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL);
else if (flags & EVAL_CONSTANT)
ret = FAIL;
else if (evaluate)
! ret = get_var_tv(s, len, rettv, NULL, TRUE, FALSE);
else
{
check_vars(s, len);
ret = OK;
}
--- 3012,3028 ----
ret = FAIL;
else
{
! if (**arg == '(')
! // "name(..." recursive!
ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL);
else if (flags & EVAL_CONSTANT)
ret = FAIL;
else if (evaluate)
! // get value of variable
! ret = eval_variable(s, len, rettv, NULL, TRUE, FALSE);
else
{
+ // skip the name
check_vars(s, len);
ret = OK;
}
*** ../vim-8.2.1110/src/list.c 2020-07-01 17:28:30.343443234 +0200
--- src/list.c 2020-07-01 18:11:50.442919494 +0200
***************
*** 1160,1166 ****
* Return OK or FAIL.
*/
int
! get_list_tv(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
{
int evaluate = evalarg == NULL ? FALSE
: evalarg->eval_flags & EVAL_EVALUATE;
--- 1160,1166 ----
* Return OK or FAIL.
*/
int
! eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
{
int evaluate = evalarg == NULL ? FALSE
: evalarg->eval_flags & EVAL_EVALUATE;
*** ../vim-8.2.1110/src/proto/
list.pro 2020-06-26 22:46:23.233370940 +0200
--- src/proto/
list.pro 2020-07-01 18:15:35.801686543 +0200
***************
*** 39,45 ****
char_u *list2string(typval_T *tv, int copyID, int restore_copyID);
int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int restore_copyID, int copyID);
void f_join(typval_T *argvars, typval_T *rettv);
! int get_list_tv(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error);
int write_list(FILE *fd, list_T *list, int binary);
void init_static_list(staticList10_T *sl);
void f_list2str(typval_T *argvars, typval_T *rettv);
--- 39,45 ----
char_u *list2string(typval_T *tv, int copyID, int restore_copyID);
int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int restore_copyID, int copyID);
void f_join(typval_T *argvars, typval_T *rettv);
! int eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error);
int write_list(FILE *fd, list_T *list, int binary);
void init_static_list(staticList10_T *sl);
void f_list2str(typval_T *argvars, typval_T *rettv);
*** ../vim-8.2.1110/src/vim9compile.c 2020-07-01 16:00:39.936953109 +0200
--- src/vim9compile.c 2020-07-01 18:18:20.496783998 +0200
***************
*** 2868,2876 ****
argvars[0].v_type = VAR_UNKNOWN;
if (*s == '"')
! (void)get_string_tv(&s, &argvars[0], TRUE);
else if (*s == '\'')
! (void)get_lit_string_tv(&s, &argvars[0], TRUE);
s = skipwhite(s);
if (*s == ')' && argvars[0].v_type == VAR_STRING)
{
--- 2868,2876 ----
argvars[0].v_type = VAR_UNKNOWN;
if (*s == '"')
! (void)eval_string(&s, &argvars[0], TRUE);
else if (*s == '\'')
! (void)eval_lit_string(&s, &argvars[0], TRUE);
s = skipwhite(s);
if (*s == ')' && argvars[0].v_type == VAR_STRING)
{
***************
*** 2992,2998 ****
{
// Can be "[1, 2, 3]->Func()".
! if (get_list_tv(&p, &rettv, NULL, FALSE) == FAIL)
p = arg;
}
else if (p == arg && *arg == '#' && arg[1] == '{')
--- 2992,2998 ----
{
// Can be "[1, 2, 3]->Func()".
! if (eval_list(&p, &rettv, NULL, FALSE) == FAIL)
p = arg;
}
else if (p == arg && *arg == '#' && arg[1] == '{')
***************
*** 3270,3279 ****
// parse the option and get the current value to get the type.
rettv.v_type = VAR_UNKNOWN;
! ret = get_option_tv(arg, &rettv, TRUE);
if (ret == OK)
{
! // include the '&' in the name, get_option_tv() expects it.
char_u *name = vim_strnsave(start, *arg - start);
type_T *type = rettv.v_type == VAR_NUMBER ? &t_number : &t_string;
--- 3270,3279 ----
// parse the option and get the current value to get the type.
rettv.v_type = VAR_UNKNOWN;
! ret = eval_option(arg, &rettv, TRUE);
if (ret == OK)
{
! // include the '&' in the name, eval_option() expects it.
char_u *name = vim_strnsave(start, *arg - start);
type_T *type = rettv.v_type == VAR_NUMBER ? &t_number : &t_string;
***************
*** 3304,3310 ****
return FAIL;
}
! // include the '$' in the name, get_env_tv() expects it.
name = vim_strnsave(start, len + 1);
ret = generate_LOAD(cctx, ISN_LOADENV, 0, name, &t_string);
vim_free(name);
--- 3304,3310 ----
return FAIL;
}
! // include the '$' in the name, eval_env_var() expects it.
name = vim_strnsave(start, len + 1);
ret = generate_LOAD(cctx, ISN_LOADENV, 0, name, &t_string);
vim_free(name);
***************
*** 3761,3781 ****
case '7':
case '8':
case '9':
! case '.': if (get_number_tv(arg, rettv, TRUE, FALSE) == FAIL)
return FAIL;
break;
/*
* String constant: "string".
*/
! case '"': if (get_string_tv(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
/*
* Literal string constant: 'str''ing'.
*/
! case '\'': if (get_lit_string_tv(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
--- 3761,3781 ----
case '7':
case '8':
case '9':
! case '.': if (eval_number(arg, rettv, TRUE, FALSE) == FAIL)
return FAIL;
break;
/*
* String constant: "string".
*/
! case '"': if (eval_string(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
/*
* Literal string constant: 'str''ing'.
*/
! case '\'': if (eval_lit_string(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
*** ../vim-8.2.1110/src/typval.c 2020-06-19 19:30:50.177338803 +0200
--- src/typval.c 2020-07-01 18:18:17.816798693 +0200
***************
*** 992,998 ****
* Return OK or FAIL.
*/
int
! get_option_tv(
char_u **arg,
typval_T *rettv, // when NULL, only check if option exists
int evaluate)
--- 992,998 ----
* Return OK or FAIL.
*/
int
! eval_option(
char_u **arg,
typval_T *rettv, // when NULL, only check if option exists
int evaluate)
***************
*** 1069,1075 ****
* Return OK or FAIL.
*/
int
! get_number_tv(
char_u **arg,
typval_T *rettv,
int evaluate,
--- 1069,1075 ----
* Return OK or FAIL.
*/
int
! eval_number(
char_u **arg,
typval_T *rettv,
int evaluate,
***************
*** 1179,1185 ****
* Return OK or FAIL.
*/
int
! get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *p;
char_u *end;
--- 1179,1185 ----
* Return OK or FAIL.
*/
int
! eval_string(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *p;
char_u *end;
***************
*** 1297,1303 ****
{
end += extra;
if (end >= rettv->vval.v_string + len)
! iemsg("get_string_tv() used more space than allocated");
break;
}
}
--- 1297,1303 ----
{
end += extra;
if (end >= rettv->vval.v_string + len)
! iemsg("eval_string() used more space than allocated");
break;
}
}
***************
*** 1323,1329 ****
* Return OK or FAIL.
*/
int
! get_lit_string_tv(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *p;
char_u *str;
--- 1323,1329 ----
* Return OK or FAIL.
*/
int
! eval_lit_string(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *p;
char_u *str;
***************
*** 1401,1407 ****
* Return FAIL if the name is invalid.
*/
int
! get_env_tv(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *string = NULL;
int len;
--- 1401,1407 ----
* Return FAIL if the name is invalid.
*/
int
! eval_env_var(char_u **arg, typval_T *rettv, int evaluate)
{
char_u *string = NULL;
int len;
*** ../vim-8.2.1110/src/proto/
typval.pro 2020-05-30 17:05:57.032692393 +0200
--- src/proto/
typval.pro 2020-07-01 18:18:26.816749345 +0200
***************
*** 4,21 ****
void free_tv(typval_T *varp);
void clear_tv(typval_T *varp);
void init_tv(typval_T *varp);
- int tv_check_lock(typval_T *tv, char_u *name, int use_gettext);
- void copy_tv(typval_T *from, typval_T *to);
- int typval_compare(typval_T *typ1, typval_T *typ2, exptype_T type, int ic);
- char_u *typval_tostring(typval_T *arg);
- int tv_islocked(typval_T *tv);
- int tv_equal(typval_T *tv1, typval_T *tv2, int ic, int recursive);
- int get_option_tv(char_u **arg, typval_T *rettv, int evaluate);
- int get_number_tv(char_u **arg, typval_T *rettv, int evaluate, int want_string);
- int get_string_tv(char_u **arg, typval_T *rettv, int evaluate);
- int get_lit_string_tv(char_u **arg, typval_T *rettv, int evaluate);
- char_u *tv2string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
- int get_env_tv(char_u **arg, typval_T *rettv, int evaluate);
varnumber_T tv_get_number(typval_T *varp);
varnumber_T tv_get_number_chk(typval_T *varp, int *denote);
float_T tv_get_float(typval_T *varp);
--- 4,9 ----
***************
*** 23,30 ****
char_u *tv_get_string_buf(typval_T *varp, char_u *buf);
char_u *tv_get_string_chk(typval_T *varp);
char_u *tv_get_string_buf_chk(typval_T *varp, char_u *buf);
linenr_T tv_get_lnum(typval_T *argvars);
linenr_T tv_get_lnum_buf(typval_T *argvars, buf_T *buf);
buf_T *tv_get_buf(typval_T *tv, int curtab_only);
- char_u *tv_stringify(typval_T *varp, char_u *buf);
/* vim: set ft=c : */
--- 11,30 ----
char_u *tv_get_string_buf(typval_T *varp, char_u *buf);
char_u *tv_get_string_chk(typval_T *varp);
char_u *tv_get_string_buf_chk(typval_T *varp, char_u *buf);
+ char_u *tv_stringify(typval_T *varp, char_u *buf);
+ int tv_check_lock(typval_T *tv, char_u *name, int use_gettext);
+ void copy_tv(typval_T *from, typval_T *to);
+ int typval_compare(typval_T *typ1, typval_T *typ2, exptype_T type, int ic);
+ char_u *typval_tostring(typval_T *arg);
+ int tv_islocked(typval_T *tv);
+ int tv_equal(typval_T *tv1, typval_T *tv2, int ic, int recursive);
+ int eval_option(char_u **arg, typval_T *rettv, int evaluate);
+ int eval_number(char_u **arg, typval_T *rettv, int evaluate, int want_string);
+ int eval_string(char_u **arg, typval_T *rettv, int evaluate);
+ int eval_lit_string(char_u **arg, typval_T *rettv, int evaluate);
+ char_u *tv2string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
+ int eval_env_var(char_u **arg, typval_T *rettv, int evaluate);
linenr_T tv_get_lnum(typval_T *argvars);
linenr_T tv_get_lnum_buf(typval_T *argvars, buf_T *buf);
buf_T *tv_get_buf(typval_T *tv, int curtab_only);
/* vim: set ft=c : */
*** ../vim-8.2.1110/src/vim9compile.c 2020-07-01 16:00:39.936953109 +0200
--- src/vim9compile.c 2020-07-01 18:18:20.496783998 +0200
***************
*** 2868,2876 ****
argvars[0].v_type = VAR_UNKNOWN;
if (*s == '"')
! (void)get_string_tv(&s, &argvars[0], TRUE);
else if (*s == '\'')
! (void)get_lit_string_tv(&s, &argvars[0], TRUE);
s = skipwhite(s);
if (*s == ')' && argvars[0].v_type == VAR_STRING)
{
--- 2868,2876 ----
argvars[0].v_type = VAR_UNKNOWN;
if (*s == '"')
! (void)eval_string(&s, &argvars[0], TRUE);
else if (*s == '\'')
! (void)eval_lit_string(&s, &argvars[0], TRUE);
s = skipwhite(s);
if (*s == ')' && argvars[0].v_type == VAR_STRING)
{
***************
*** 2992,2998 ****
{
// Can be "[1, 2, 3]->Func()".
! if (get_list_tv(&p, &rettv, NULL, FALSE) == FAIL)
p = arg;
}
else if (p == arg && *arg == '#' && arg[1] == '{')
--- 2992,2998 ----
{
// Can be "[1, 2, 3]->Func()".
! if (eval_list(&p, &rettv, NULL, FALSE) == FAIL)
p = arg;
}
else if (p == arg && *arg == '#' && arg[1] == '{')
***************
*** 3270,3279 ****
// parse the option and get the current value to get the type.
rettv.v_type = VAR_UNKNOWN;
! ret = get_option_tv(arg, &rettv, TRUE);
if (ret == OK)
{
! // include the '&' in the name, get_option_tv() expects it.
char_u *name = vim_strnsave(start, *arg - start);
type_T *type = rettv.v_type == VAR_NUMBER ? &t_number : &t_string;
--- 3270,3279 ----
// parse the option and get the current value to get the type.
rettv.v_type = VAR_UNKNOWN;
! ret = eval_option(arg, &rettv, TRUE);
if (ret == OK)
{
! // include the '&' in the name, eval_option() expects it.
char_u *name = vim_strnsave(start, *arg - start);
type_T *type = rettv.v_type == VAR_NUMBER ? &t_number : &t_string;
***************
*** 3304,3310 ****
return FAIL;
}
! // include the '$' in the name, get_env_tv() expects it.
name = vim_strnsave(start, len + 1);
ret = generate_LOAD(cctx, ISN_LOADENV, 0, name, &t_string);
vim_free(name);
--- 3304,3310 ----
return FAIL;
}
! // include the '$' in the name, eval_env_var() expects it.
name = vim_strnsave(start, len + 1);
ret = generate_LOAD(cctx, ISN_LOADENV, 0, name, &t_string);
vim_free(name);
***************
*** 3761,3781 ****
case '7':
case '8':
case '9':
! case '.': if (get_number_tv(arg, rettv, TRUE, FALSE) == FAIL)
return FAIL;
break;
/*
* String constant: "string".
*/
! case '"': if (get_string_tv(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
/*
* Literal string constant: 'str''ing'.
*/
! case '\'': if (get_lit_string_tv(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
--- 3761,3781 ----
case '7':
case '8':
case '9':
! case '.': if (eval_number(arg, rettv, TRUE, FALSE) == FAIL)
return FAIL;
break;
/*
* String constant: "string".
*/
! case '"': if (eval_string(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
/*
* Literal string constant: 'str''ing'.
*/
! case '\'': if (eval_lit_string(arg, rettv, TRUE) == FAIL)
return FAIL;
break;
*** ../vim-8.2.1110/src/vim9script.c 2020-06-19 19:01:39.038497746 +0200
--- src/vim9script.c 2020-07-01 18:15:28.141728497 +0200
***************
*** 302,310 ****
tv.v_type = VAR_UNKNOWN;
// TODO: should we accept any expression?
if (*arg == '\'')
! ret = get_lit_string_tv(&arg, &tv, TRUE);
else if (*arg == '"')
! ret = get_string_tv(&arg, &tv, TRUE);
if (ret == FAIL || tv.vval.v_string == NULL || *tv.vval.v_string == NUL)
{
emsg(_("E1071: Invalid string after \"from\""));
--- 302,310 ----
tv.v_type = VAR_UNKNOWN;
// TODO: should we accept any expression?
if (*arg == '\'')
! ret = eval_lit_string(&arg, &tv, TRUE);
else if (*arg == '"')
! ret = eval_string(&arg, &tv, TRUE);
if (ret == FAIL || tv.vval.v_string == NULL || *tv.vval.v_string == NUL)
{
emsg(_("E1071: Invalid string after \"from\""));
*** ../vim-8.2.1110/src/evalfunc.c 2020-06-30 13:37:57.931017122 +0200
--- src/evalfunc.c 2020-07-01 18:16:23.889423103 +0200
***************
*** 2324,2330 ****
}
else if (*p == '&' || *p == '+') // option
{
! n = (get_option_tv(&p, NULL, TRUE) == OK);
if (*skipwhite(p) != NUL)
n = FALSE; // trailing garbage
}
--- 2324,2330 ----
}
else if (*p == '&' || *p == '+') // option
{
! n = (eval_option(&p, NULL, TRUE) == OK);
if (*skipwhite(p) != NUL)
n = FALSE; // trailing garbage
}
*** ../vim-8.2.1110/src/evalvars.c 2020-06-28 15:51:12.145674365 +0200
--- src/evalvars.c 2020-07-01 18:26:56.577951627 +0200
***************
*** 1124,1130 ****
{
if (tofree != NULL)
name = tofree;
! if (get_var_tv(name, len, &tv, NULL, TRUE, FALSE) == FAIL)
error = TRUE;
else
{
--- 1124,1130 ----
{
if (tofree != NULL)
name = tofree;
! if (eval_variable(name, len, &tv, NULL, TRUE, FALSE) == FAIL)
error = TRUE;
else
{
***************
*** 2365,2371 ****
* Return OK or FAIL. If OK is returned "rettv" must be cleared.
*/
int
! get_var_tv(
char_u *name,
int len, // length of "name"
typval_T *rettv, // NULL when only checking existence
--- 2365,2371 ----
* Return OK or FAIL. If OK is returned "rettv" must be cleared.
*/
int
! eval_variable(
char_u *name,
int len, // length of "name"
typval_T *rettv, // NULL when only checking existence
***************
*** 3206,3212 ****
done = TRUE;
}
}
! else if (get_option_tv(&varname, rettv, 1) == OK)
// window-local-option
done = TRUE;
}
--- 3206,3212 ----
done = TRUE;
}
}
! else if (eval_option(&varname, rettv, 1) == OK)
// window-local-option
done = TRUE;
}
***************
*** 3342,3348 ****
{
if (tofree != NULL)
name = tofree;
! n = (get_var_tv(name, len, &tv, NULL, FALSE, TRUE) == OK);
if (n)
{
// handle d.key, l[idx], f(expr)
--- 3342,3348 ----
{
if (tofree != NULL)
name = tofree;
! n = (eval_variable(name, len, &tv, NULL, FALSE, TRUE) == OK);
if (n)
{
// handle d.key, l[idx], f(expr)
***************
*** 3609,3615 ****
done = TRUE;
}
}
! else if (get_option_tv(&varname, rettv, TRUE) == OK)
// buffer-local-option
done = TRUE;
--- 3609,3615 ----
done = TRUE;
}
}
! else if (eval_option(&varname, rettv, TRUE) == OK)
// buffer-local-option
done = TRUE;
*** ../vim-8.2.1110/src/proto/
evalvars.pro 2020-06-14 23:05:06.368915209 +0200
--- src/proto/
evalvars.pro 2020-07-01 18:27:02.329920031 +0200
***************
*** 52,58 ****
char_u *v_exception(char_u *oldval);
char_u *v_throwpoint(char_u *oldval);
char_u *set_cmdarg(exarg_T *eap, char_u *oldarg);
! int get_var_tv(char_u *name, int len, typval_T *rettv, dictitem_T **dip, int verbose, int no_autoload);
void check_vars(char_u *name, int len);
dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload);
dictitem_T *find_var_in_ht(hashtab_T *ht, int htname, char_u *varname, int no_autoload);
--- 52,58 ----
char_u *v_exception(char_u *oldval);
char_u *v_throwpoint(char_u *oldval);
char_u *set_cmdarg(exarg_T *eap, char_u *oldarg);
! int eval_variable(char_u *name, int len, typval_T *rettv, dictitem_T **dip, int verbose, int no_autoload);
void check_vars(char_u *name, int len);
dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload);
dictitem_T *find_var_in_ht(hashtab_T *ht, int htname, char_u *varname, int no_autoload);
*** ../vim-8.2.1110/src/vim9execute.c 2020-06-20 18:19:05.920877872 +0200
--- src/vim9execute.c 2020-07-01 18:18:22.724771782 +0200
***************
*** 1089,1095 ****
// compilation: don't set SOURCING_LNUM.
if (GA_GROW(&ectx.ec_stack, 1) == FAIL)
goto failed;
! if (get_option_tv(&name, &optval, TRUE) == FAIL)
goto failed;
*STACK_TV_BOT(0) = optval;
++ectx.ec_stack.ga_len;
--- 1089,1095 ----
// compilation: don't set SOURCING_LNUM.
if (GA_GROW(&ectx.ec_stack, 1) == FAIL)
goto failed;
! if (eval_option(&name, &optval, TRUE) == FAIL)
goto failed;
*STACK_TV_BOT(0) = optval;
++ectx.ec_stack.ga_len;
***************
*** 1105,1111 ****
if (GA_GROW(&ectx.ec_stack, 1) == FAIL)
goto failed;
// name is always valid, checked when compiling
! (void)get_env_tv(&name, &optval, TRUE);
*STACK_TV_BOT(0) = optval;
++ectx.ec_stack.ga_len;
}
--- 1105,1111 ----
if (GA_GROW(&ectx.ec_stack, 1) == FAIL)
goto failed;
// name is always valid, checked when compiling
! (void)eval_env_var(&name, &optval, TRUE);
*STACK_TV_BOT(0) = optval;
++ectx.ec_stack.ga_len;
}
*** ../vim-8.2.1110/src/version.c 2020-07-01 17:28:30.343443234 +0200
--- src/version.c 2020-07-01 18:27:22.649808416 +0200
***************
*** 756,757 ****
--- 756,759 ----
{ /* Add new patch number below this line */
+ /**/
+ 1111,
/**/
--
BODY: I'm not dead!
CART DRIVER: 'Ere. He says he's not dead.
LARGE MAN: Yes he is.
BODY: I'm not!
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language --
http://www.Zimbu.org ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///