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 -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202007011630.061GUqMm1213568%40masaka.moolenaar.net.

Raspunde prin e-mail lui