Patch 8.2.2238
Problem:    Vim9: cannot load a Vim9 script without the +eval feature.
Solution:   Support Vim9 script syntax without the +eval feature.
Files:      src/ex_docmd.c, src/vim9script.c, src/globals.h, src/main.c,
            src/autocmd.c, src/buffer.c, src/structs.h, src/menu.c,
            src/scriptfile.c, src/usercmd.c, src/proto.h, src/errors.h


*** ../vim-8.2.2237/src/ex_docmd.c      2020-12-27 19:17:52.507402031 +0100
--- src/ex_docmd.c      2020-12-28 18:01:16.018264652 +0100
***************
*** 304,310 ****
  # define ex_try                       ex_ni
  # define ex_unlet             ex_ni
  # define ex_unlockvar         ex_ni
- # define ex_vim9script                ex_ni
  # define ex_while             ex_ni
  # define ex_import            ex_ni
  # define ex_export            ex_ni
--- 304,309 ----
***************
*** 8011,8020 ****
      msg_scroll = FALSE;                   // no msg scrolling in Normal mode
      restart_edit = 0;             // don't go to Insert mode
      p_im = FALSE;                 // don't use 'insertmode'
! #ifdef FEAT_EVAL
      sst->save_script_version = current_sctx.sc_version;
      current_sctx.sc_version = 1;    // not in Vim9 script
- #endif
  
      /*
       * Save the current typeahead.  This is required to allow using ":normal"
--- 8010,8018 ----
      msg_scroll = FALSE;                   // no msg scrolling in Normal mode
      restart_edit = 0;             // don't go to Insert mode
      p_im = FALSE;                 // don't use 'insertmode'
! 
      sst->save_script_version = current_sctx.sc_version;
      current_sctx.sc_version = 1;    // not in Vim9 script
  
      /*
       * Save the current typeahead.  This is required to allow using ":normal"
***************
*** 8038,8046 ****
      opcount = sst->save_opcount;
      reg_executing = sst->save_reg_executing;
      msg_didout |= sst->save_msg_didout;       // don't reset msg_didout now
- #ifdef FEAT_EVAL
      current_sctx.sc_version = sst->save_script_version;
- #endif
  
      // Restore the state (needed when called from a function executed for
      // 'indentexpr'). Update the mouse and cursor, they may have changed.
--- 8036,8042 ----
*** ../vim-8.2.2237/src/vim9script.c    2020-12-27 13:39:44.659044653 +0100
--- src/vim9script.c    2020-12-28 18:08:49.320558889 +0100
***************
*** 13,21 ****
  
  #include "vim.h"
  
! #if defined(FEAT_EVAL) || defined(PROTO)
! 
! #include "vim9.h"
  
      int
  in_vim9script(void)
--- 13,21 ----
  
  #include "vim.h"
  
! #if defined(FEAT_EVAL)
! # include "vim9.h"
! #endif
  
      int
  in_vim9script(void)
***************
*** 30,37 ****
   * ":vim9script".
   */
      void
! ex_vim9script(exarg_T *eap)
  {
      int                   sid = current_sctx.sc_sid;
      scriptitem_T    *si;
  
--- 30,38 ----
   * ":vim9script".
   */
      void
! ex_vim9script(exarg_T *eap UNUSED)
  {
+ #ifdef FEAT_EVAL
      int                   sid = current_sctx.sc_sid;
      scriptitem_T    *si;
  
***************
*** 75,80 ****
--- 76,85 ----
        si->sn_save_cpo = vim_strsave(p_cpo);
        set_option_value((char_u *)"cpo", 0L, (char_u *)CPO_VIM, 0);
      }
+ #else
+     // No check for this being the first command, it doesn't matter.
+     current_sctx.sc_version = SCRIPT_VERSION_VIM9;
+ #endif
  }
  
  /*
***************
*** 91,103 ****
            case CMD_insert:
            case CMD_t:
            case CMD_xit:
!               semsg(_(e_missing_var_str), eap->cmd);
                return FAIL;
            default: break;
        }
      return OK;
  }
  
  /*
   * ":export let Name: type"
   * ":export const Name: type"
--- 96,110 ----
            case CMD_insert:
            case CMD_t:
            case CMD_xit:
!               
semsg(_(e_command_not_supported_in_vim9_script_missing_var_str), eap->cmd);
                return FAIL;
            default: break;
        }
      return OK;
  }
  
+ #if defined(FEAT_EVAL) || defined(PROTO)
+ 
  /*
   * ":export let Name: type"
   * ":export const Name: type"
*** ../vim-8.2.2237/src/globals.h       2020-12-25 13:20:36.795341032 +0100
--- src/globals.h       2020-12-28 18:10:22.084220080 +0100
***************
*** 290,295 ****
--- 290,303 ----
  // line number in the message source or zero
  #define SOURCING_LNUM (((estack_T *)exestack.ga_data)[exestack.ga_len - 
1].es_lnum)
  
+ // Script CTX being sourced or was sourced to define the current function.
+ EXTERN sctx_T current_sctx
+ #ifdef FEAT_EVAL
+     INIT4(0, 0, 0, 0);
+ #else
+     INIT(= {0});
+ #endif
+ 
  #ifdef FEAT_EVAL
  // whether inside compile_def_function()
  EXTERN int    estack_compiling INIT(= FALSE);
***************
*** 392,400 ****
  EXTERN int    want_garbage_collect INIT(= FALSE);
  EXTERN int    garbage_collect_at_exit INIT(= FALSE);
  
- // Script CTX being sourced or was sourced to define the current function.
- EXTERN sctx_T current_sctx INIT4(0, 0, 0, 0);
- 
  
  // Commonly used types.
  EXTERN type_T t_unknown INIT6(VAR_UNKNOWN, 0, 0, TTFLAG_STATIC, NULL, NULL);
--- 400,405 ----
*** ../vim-8.2.2237/src/main.c  2020-12-08 19:36:17.810905137 +0100
--- src/main.c  2020-12-28 18:12:20.803789724 +0100
***************
*** 3269,3277 ****
      int               is_viminit) // when TRUE, called for VIMINIT
  {
      char_u    *initstr;
- #ifdef FEAT_EVAL
      sctx_T    save_current_sctx;
! #endif
      ESTACK_CHECK_DECLARATION
  
      if ((initstr = mch_getenv(env)) != NULL && *initstr != NUL)
--- 3269,3276 ----
      int               is_viminit) // when TRUE, called for VIMINIT
  {
      char_u    *initstr;
      sctx_T    save_current_sctx;
! 
      ESTACK_CHECK_DECLARATION
  
      if ((initstr = mch_getenv(env)) != NULL && *initstr != NUL)
***************
*** 3280,3299 ****
            vimrc_found(NULL, NULL);
        estack_push(ETYPE_ENV, env, 0);
        ESTACK_CHECK_SETUP
- #ifdef FEAT_EVAL
        save_current_sctx = current_sctx;
        current_sctx.sc_sid = SID_ENV;
        current_sctx.sc_seq = 0;
        current_sctx.sc_lnum = 0;
-       current_sctx.sc_version = 1;
  #endif
        do_cmdline_cmd(initstr);
  
        ESTACK_CHECK_NOW
        estack_pop();
- #ifdef FEAT_EVAL
        current_sctx = save_current_sctx;
- #endif
        return OK;
      }
      return FAIL;
--- 3279,3297 ----
            vimrc_found(NULL, NULL);
        estack_push(ETYPE_ENV, env, 0);
        ESTACK_CHECK_SETUP
        save_current_sctx = current_sctx;
+       current_sctx.sc_version = 1;
+ #ifdef FEAT_EVAL
        current_sctx.sc_sid = SID_ENV;
        current_sctx.sc_seq = 0;
        current_sctx.sc_lnum = 0;
  #endif
+ 
        do_cmdline_cmd(initstr);
  
        ESTACK_CHECK_NOW
        estack_pop();
        current_sctx = save_current_sctx;
        return OK;
      }
      return FAIL;
*** ../vim-8.2.2237/src/autocmd.c       2020-12-11 19:30:26.785393308 +0100
--- src/autocmd.c       2020-12-28 17:57:49.767086151 +0100
***************
*** 55,63 ****
      char          once;               // "One shot": removed after execution
      char          nested;             // If autocommands nest here.
      char          last;               // last command in list
- #ifdef FEAT_EVAL
      sctx_T        script_ctx;         // script context where defined
- #endif
      struct AutoCmd  *next;            // next AutoCmd in list
  } AutoCmd;
  
--- 55,61 ----
***************
*** 1249,1256 ****
            if (ac == NULL)
                return FAIL;
            ac->cmd = vim_strsave(cmd);
- #ifdef FEAT_EVAL
            ac->script_ctx = current_sctx;
            ac->script_ctx.sc_lnum += SOURCING_LNUM;
  #endif
            if (ac->cmd == NULL)
--- 1247,1254 ----
            if (ac == NULL)
                return FAIL;
            ac->cmd = vim_strsave(cmd);
            ac->script_ctx = current_sctx;
+ #ifdef FEAT_EVAL
            ac->script_ctx.sc_lnum += SOURCING_LNUM;
  #endif
            if (ac->cmd == NULL)
***************
*** 1819,1826 ****
      static int        nesting = 0;
      AutoPatCmd        patcmd;
      AutoPat   *ap;
- #ifdef FEAT_EVAL
      sctx_T    save_current_sctx;
      funccal_entry_T funccal_entry;
      char_u    *save_cmdarg;
      long      save_cmdbang;
--- 1817,1824 ----
      static int        nesting = 0;
      AutoPatCmd        patcmd;
      AutoPat   *ap;
      sctx_T    save_current_sctx;
+ #ifdef FEAT_EVAL
      funccal_entry_T funccal_entry;
      char_u    *save_cmdarg;
      long      save_cmdbang;
***************
*** 2029,2037 ****
      estack_push(ETYPE_AUCMD, NULL, 0);
      ESTACK_CHECK_SETUP
  
- #ifdef FEAT_EVAL
      save_current_sctx = current_sctx;
  
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
        prof_child_enter(&wait_time); // doesn't count for the caller itself
--- 2027,2035 ----
      estack_push(ETYPE_AUCMD, NULL, 0);
      ESTACK_CHECK_SETUP
  
      save_current_sctx = current_sctx;
  
+ #ifdef FEAT_EVAL
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
        prof_child_enter(&wait_time); // doesn't count for the caller itself
***************
*** 2138,2145 ****
      autocmd_fname_full = save_autocmd_fname_full;
      autocmd_bufnr = save_autocmd_bufnr;
      autocmd_match = save_autocmd_match;
- #ifdef FEAT_EVAL
      current_sctx = save_current_sctx;
      restore_funccal();
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
--- 2136,2143 ----
      autocmd_fname_full = save_autocmd_fname_full;
      autocmd_bufnr = save_autocmd_bufnr;
      autocmd_match = save_autocmd_match;
      current_sctx = save_current_sctx;
+ #ifdef FEAT_EVAL
      restore_funccal();
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
***************
*** 2370,2378 ****
      if (ac->once)
        au_del_cmd(ac);
      autocmd_nested = ac->nested;
- #ifdef FEAT_EVAL
      current_sctx = ac->script_ctx;
- #endif
      if (ac->last)
        acp->nextcmd = NULL;
      else
--- 2368,2374 ----
*** ../vim-8.2.2237/src/buffer.c        2020-12-21 19:59:04.565197736 +0100
--- src/buffer.c        2020-12-28 17:58:13.182990787 +0100
***************
*** 5371,5379 ****
      int               vers;
      int               end;
      int               retval = OK;
- #ifdef FEAT_EVAL
      sctx_T    save_current_sctx;
! #endif
      ESTACK_CHECK_DECLARATION
  
      prev = -1;
--- 5371,5378 ----
      int               vers;
      int               end;
      int               retval = OK;
      sctx_T    save_current_sctx;
! 
      ESTACK_CHECK_DECLARATION
  
      prev = -1;
***************
*** 5457,5478 ****
            if (*s != NUL)              // skip over an empty "::"
            {
                int secure_save = secure;
! #ifdef FEAT_EVAL
                save_current_sctx = current_sctx;
                current_sctx.sc_sid = SID_MODELINE;
                current_sctx.sc_seq = 0;
                current_sctx.sc_lnum = lnum;
-               current_sctx.sc_version = 1;
  #endif
                // Make sure no risky things are executed as a side effect.
                secure = 1;
  
                retval = do_set(s, OPT_MODELINE | OPT_LOCAL | flags);
  
                secure = secure_save;
- #ifdef FEAT_EVAL
                current_sctx = save_current_sctx;
- #endif
                if (retval == FAIL)             // stop if error found
                    break;
            }
--- 5456,5477 ----
            if (*s != NUL)              // skip over an empty "::"
            {
                int secure_save = secure;
! 
                save_current_sctx = current_sctx;
+               current_sctx.sc_version = 1;
+ #ifdef FEAT_EVAL
                current_sctx.sc_sid = SID_MODELINE;
                current_sctx.sc_seq = 0;
                current_sctx.sc_lnum = lnum;
  #endif
+ 
                // Make sure no risky things are executed as a side effect.
                secure = 1;
  
                retval = do_set(s, OPT_MODELINE | OPT_LOCAL | flags);
  
                secure = secure_save;
                current_sctx = save_current_sctx;
                if (retval == FAIL)             // stop if error found
                    break;
            }
*** ../vim-8.2.2237/src/structs.h       2020-12-27 13:39:44.659044653 +0100
--- src/structs.h       2020-12-28 18:00:31.806437530 +0100
***************
*** 83,91 ****
--- 83,93 ----
   * sc_version is also here, for convenience.
   */
  typedef struct {
+ #ifdef FEAT_EVAL
      scid_T    sc_sid;         // script ID
      int               sc_seq;         // sourcing sequence number
      linenr_T  sc_lnum;        // line number
+ #endif
      int               sc_version;     // :scriptversion
  } sctx_T;
  
***************
*** 1224,1231 ****
      char      m_silent;       // <silent> used, don't echo commands
      char      m_nowait;       // <nowait> used
  #ifdef FEAT_EVAL
-     char      m_expr;         // <expr> used, m_str is an expression
      sctx_T    m_script_ctx;   // SCTX where map was defined
  #endif
  };
  
--- 1226,1233 ----
      char      m_silent;       // <silent> used, don't echo commands
      char      m_nowait;       // <nowait> used
  #ifdef FEAT_EVAL
      sctx_T    m_script_ctx;   // SCTX where map was defined
+     char      m_expr;         // <expr> used, m_str is an expression
  #endif
  };
  
***************
*** 1567,1572 ****
--- 1569,1576 ----
      GETLINE_CONCAT_ALL            // concatenate continuation and Vim9 # 
comment lines
  } getline_opt_T;
  
+ typedef struct svar_S svar_T;
+ 
  #if defined(FEAT_EVAL) || defined(PROTO)
  typedef struct funccall_S funccall_T;
  
***************
*** 1766,1778 ****
  /*
   * Entry for "sn_var_vals".  Used for script-local variables.
   */
! typedef struct {
      char_u    *sv_name;       // points into "sn_all_vars" di_key
      typval_T  *sv_tv;         // points into "sn_vars" or "sn_all_vars" di_tv
      type_T    *sv_type;
      int               sv_const;
      int               sv_export;      // "export let var = val"
! } svar_T;
  
  typedef struct {
      char_u    *imp_name;          // name imported as (allocated)
--- 1770,1782 ----
  /*
   * Entry for "sn_var_vals".  Used for script-local variables.
   */
! struct svar_S {
      char_u    *sv_name;       // points into "sn_all_vars" di_key
      typval_T  *sv_tv;         // points into "sn_vars" or "sn_all_vars" di_tv
      type_T    *sv_type;
      int               sv_const;
      int               sv_export;      // "export let var = val"
! };
  
  typedef struct {
      char_u    *imp_name;          // name imported as (allocated)
***************
*** 4164,4172 ****
      int               save_finish_op;
      int               save_opcount;
      int               save_reg_executing;
- #ifdef FEAT_EVAL
      int               save_script_version;
- #endif
      tasave_T  tabuf;
  } save_state_T;
  
--- 4168,4174 ----
*** ../vim-8.2.2237/src/menu.c  2020-09-28 22:29:25.421766301 +0200
--- src/menu.c  2020-12-28 17:35:48.247473972 +0100
***************
*** 2310,2320 ****
      if (idx < 0)
      {
        // Use the Insert mode entry when returning to Insert mode.
!       if (restart_edit
! #ifdef FEAT_EVAL
!               && !current_sctx.sc_sid
! #endif
!               )
        {
            idx = MENU_INDEX_INSERT;
        }
--- 2310,2316 ----
      if (idx < 0)
      {
        // Use the Insert mode entry when returning to Insert mode.
!       if (restart_edit && !current_sctx.sc_sid)
        {
            idx = MENU_INDEX_INSERT;
        }
***************
*** 2384,2394 ****
        // When executing a script or function execute the commands right now.
        // Also for the window toolbar.
        // Otherwise put them in the typeahead buffer.
!       if (eap == NULL
! #ifdef FEAT_EVAL
!               || current_sctx.sc_sid != 0
! #endif
!          )
        {
            save_state_T save_state;
  
--- 2380,2386 ----
        // When executing a script or function execute the commands right now.
        // Also for the window toolbar.
        // Otherwise put them in the typeahead buffer.
!       if (eap == NULL || current_sctx.sc_sid != 0)
        {
            save_state_T save_state;
  
*** ../vim-8.2.2237/src/scriptfile.c    2020-12-28 15:41:37.167352395 +0100
--- src/scriptfile.c    2020-12-28 17:47:38.057211157 +0100
***************
*** 1135,1142 ****
      char_u                *fname_exp;
      char_u                *firstline = NULL;
      int                           retval = FAIL;
- #ifdef FEAT_EVAL
      sctx_T                save_current_sctx;
      static scid_T         last_current_SID = 0;
      static int                    last_current_SID_seq = 0;
      funccal_entry_T       funccalp_entry;
--- 1135,1142 ----
      char_u                *fname_exp;
      char_u                *firstline = NULL;
      int                           retval = FAIL;
      sctx_T                save_current_sctx;
+ #ifdef FEAT_EVAL
      static scid_T         last_current_SID = 0;
      static int                    last_current_SID_seq = 0;
      funccal_entry_T       funccalp_entry;
***************
*** 1300,1305 ****
--- 1300,1308 ----
        time_push(&tv_rel, &tv_start);
  #endif
  
+     save_current_sctx = current_sctx;
+     current_sctx.sc_version = 1;  // default script version
+ 
  #ifdef FEAT_EVAL
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
***************
*** 1310,1318 ****
      // Also starts profiling timer for nested script.
      save_funccal(&funccalp_entry);
  
-     save_current_sctx = current_sctx;
      current_sctx.sc_lnum = 0;
-     current_sctx.sc_version = 1;  // default script version
  
      // Check if this script was sourced before to finds its SID.
      // Always use a new sequence number.
--- 1313,1319 ----
***************
*** 1326,1332 ****
  
        // loading the same script again
        si->sn_state = SN_STATE_RELOAD;
-       si->sn_version = 1;
        current_sctx.sc_sid = sid;
  
        // Script-local variables remain but "const" can be set again.
--- 1327,1332 ----
***************
*** 1484,1496 ****
        CLEAR_POINTER(si->sn_save_cpo);
      }
  
-     current_sctx = save_current_sctx;
      restore_funccal();
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
        prof_child_exit(&wait_start);           // leaving a child now
  # endif
  #endif
      fclose(cookie.fp);
      vim_free(cookie.nextline);
      vim_free(firstline);
--- 1484,1497 ----
        CLEAR_POINTER(si->sn_save_cpo);
      }
  
      restore_funccal();
  # ifdef FEAT_PROFILE
      if (do_profiling == PROF_YES)
        prof_child_exit(&wait_start);           // leaving a child now
  # endif
  #endif
+     current_sctx = save_current_sctx;
+ 
      fclose(cookie.fp);
      vim_free(cookie.nextline);
      vim_free(firstline);
***************
*** 1903,1909 ****
      void
  ex_scriptversion(exarg_T *eap UNUSED)
  {
- #ifdef FEAT_EVAL
      int               nr;
  
      if (!getline_equal(eap->getline, eap->cookie, getsourceline))
--- 1904,1909 ----
***************
*** 1925,1933 ****
      else
      {
        current_sctx.sc_version = nr;
        SCRIPT_ITEM(current_sctx.sc_sid)->sn_version = nr;
-     }
  #endif
  }
  
  #if defined(FEAT_EVAL) || defined(PROTO)
--- 1925,1934 ----
      else
      {
        current_sctx.sc_version = nr;
+ #ifdef FEAT_EVAL
        SCRIPT_ITEM(current_sctx.sc_sid)->sn_version = nr;
  #endif
+     }
  }
  
  #if defined(FEAT_EVAL) || defined(PROTO)
*** ../vim-8.2.2237/src/usercmd.c       2020-10-26 18:46:49.480589241 +0100
--- src/usercmd.c       2020-12-28 17:50:34.352629522 +0100
***************
*** 21,28 ****
      long      uc_def;         // The default value for a range/count
      int               uc_compl;       // completion type
      cmd_addr_T        uc_addr_type;   // The command's address type
- # ifdef FEAT_EVAL
      sctx_T    uc_script_ctx;  // SCTX where the command was defined
      char_u    *uc_compl_arg;  // completion argument if any
  # endif
  } ucmd_T;
--- 21,28 ----
      long      uc_def;         // The default value for a range/count
      int               uc_compl;       // completion type
      cmd_addr_T        uc_addr_type;   // The command's address type
      sctx_T    uc_script_ctx;  // SCTX where the command was defined
+ # ifdef FEAT_EVAL
      char_u    *uc_compl_arg;  // completion argument if any
  # endif
  } ucmd_T;
***************
*** 954,961 ****
      cmd->uc_argt = argt;
      cmd->uc_def = def;
      cmd->uc_compl = compl;
- #ifdef FEAT_EVAL
      cmd->uc_script_ctx = current_sctx;
      cmd->uc_script_ctx.sc_lnum += SOURCING_LNUM;
      cmd->uc_compl_arg = compl_arg;
  #endif
--- 954,961 ----
      cmd->uc_argt = argt;
      cmd->uc_def = def;
      cmd->uc_compl = compl;
      cmd->uc_script_ctx = current_sctx;
+ #ifdef FEAT_EVAL
      cmd->uc_script_ctx.sc_lnum += SOURCING_LNUM;
      cmd->uc_compl_arg = compl_arg;
  #endif
***************
*** 1573,1581 ****
      size_t    split_len = 0;
      char_u    *split_buf = NULL;
      ucmd_T    *cmd;
- #ifdef FEAT_EVAL
      sctx_T    save_current_sctx = current_sctx;
- #endif
  
      if (eap->cmdidx == CMD_USER)
        cmd = USER_CMD(eap->useridx);
--- 1573,1579 ----
***************
*** 1674,1688 ****
        }
      }
  
  #ifdef FEAT_EVAL
      current_sctx.sc_sid = cmd->uc_script_ctx.sc_sid;
-     current_sctx.sc_version = cmd->uc_script_ctx.sc_version;
  #endif
      (void)do_cmdline(buf, eap->getline, eap->cookie,
                                   DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED);
- #ifdef FEAT_EVAL
      current_sctx = save_current_sctx;
- #endif
      vim_free(buf);
      vim_free(split_buf);
  }
--- 1672,1684 ----
        }
      }
  
+     current_sctx.sc_version = cmd->uc_script_ctx.sc_version;
  #ifdef FEAT_EVAL
      current_sctx.sc_sid = cmd->uc_script_ctx.sc_sid;
  #endif
      (void)do_cmdline(buf, eap->getline, eap->cookie,
                                   DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED);
      current_sctx = save_current_sctx;
      vim_free(buf);
      vim_free(split_buf);
  }
*** ../vim-8.2.2237/src/proto.h 2020-09-05 15:48:32.469546692 +0200
--- src/proto.h 2020-12-28 17:59:20.718718993 +0100
***************
*** 233,242 ****
  # include "usercmd.pro"
  # include "userfunc.pro"
  # include "version.pro"
  # ifdef FEAT_EVAL
  #  include "vim9compile.pro"
  #  include "vim9execute.pro"
- #  include "vim9script.pro"
  #  include "vim9type.pro"
  # endif
  # include "window.pro"
--- 233,242 ----
  # include "usercmd.pro"
  # include "userfunc.pro"
  # include "version.pro"
+ # include "vim9script.pro"
  # ifdef FEAT_EVAL
  #  include "vim9compile.pro"
  #  include "vim9execute.pro"
  #  include "vim9type.pro"
  # endif
  # include "window.pro"
*** ../vim-8.2.2237/src/errors.h        2020-12-26 20:09:11.282465257 +0100
--- src/errors.h        2020-12-28 18:08:54.588539578 +0100
***************
*** 31,38 ****
        INIT(= N_("E856: \"assert_fails()\" second argument must be a string or 
a list with one or two strings"));
  EXTERN char e_cannot_index_special_variable[]
        INIT(= N_("E909: Cannot index a special variable"));
! EXTERN char e_missing_var_str[]
!       INIT(= N_("E1100: Missing :var: %s"));
  EXTERN char e_variable_not_found_str[]
        INIT(= N_("E1001: Variable not found: %s"));
  EXTERN char e_syntax_error_at_str[]
--- 31,40 ----
        INIT(= N_("E856: \"assert_fails()\" second argument must be a string or 
a list with one or two strings"));
  EXTERN char e_cannot_index_special_variable[]
        INIT(= N_("E909: Cannot index a special variable"));
! #endif
! EXTERN char e_command_not_supported_in_vim9_script_missing_var_str[]
!       INIT(= N_("E1100: Command not supported in Vim9 script (missing :var?): 
%s"));
! #ifdef FEAT_EVAL
  EXTERN char e_variable_not_found_str[]
        INIT(= N_("E1001: Variable not found: %s"));
  EXTERN char e_syntax_error_at_str[]
***************
*** 113,120 ****
--- 115,124 ----
        INIT(= N_("E1038: \"vim9script\" can only be used in a script"));
  EXTERN char e_vim9script_must_be_first_command_in_script[]
        INIT(= N_("E1039: \"vim9script\" must be the first command in a 
script"));
+ #endif
  EXTERN char e_cannot_use_scriptversion_after_vim9script[]
        INIT(= N_("E1040: Cannot use :scriptversion after :vim9script"));
+ #ifdef FEAT_EVAL
  EXTERN char e_redefining_script_item_str[]
        INIT(= N_("E1041: Redefining script item %s"));
  EXTERN char e_export_can_only_be_used_in_vim9script[]
*** ../vim-8.2.2237/src/version.c       2020-12-28 15:46:43.813922887 +0100
--- src/version.c       2020-12-28 18:23:33.921390391 +0100
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     2238,
  /**/

-- 
Everyone has a photographic memory. Some don't have film.

 /// 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/202012281729.0BSHTjXW373547%40masaka.moolenaar.net.

Raspunde prin e-mail lui