Mercurial > vim
diff src/vim9script.c @ 20881:58137dbee8da v8.2.0992
patch 8.2.0992: Vim9: crash when using :import in the Vim command
Commit: https://github.com/vim/vim/commit/101f4810e27e432970bc8809e18f018e1795937f
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 16 23:18:51 2020 +0200
patch 8.2.0992: Vim9: crash when using :import in the Vim command
Problem: Vim9: crash when using :import in the Vim command.
Solution: Give an error when using :import outside of a script.
(closes #6271)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 16 Jun 2020 23:30:04 +0200 |
parents | 709379ab5110 |
children | 96bf2b304932 |
line wrap: on
line diff
--- a/src/vim9script.c +++ b/src/vim9script.c @@ -32,13 +32,14 @@ in_vim9script(void) void ex_vim9script(exarg_T *eap) { - scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid); + scriptitem_T *si; if (!getline_equal(eap->getline, eap->cookie, getsourceline)) { emsg(_("E1038: vim9script can only be used in a script")); return; } + si = SCRIPT_ITEM(current_sctx.sc_sid); if (si->sn_had_command) { emsg(_("E1039: vim9script must be the first command in a script")); @@ -141,8 +142,15 @@ free_imports(int sid) void ex_import(exarg_T *eap) { - char_u *cmd_end = handle_import(eap->arg, NULL, current_sctx.sc_sid, NULL); + char_u *cmd_end; + if (!getline_equal(eap->getline, eap->cookie, getsourceline)) + { + emsg(_("E1094: import can only be used in a script")); + return; + } + + cmd_end = handle_import(eap->arg, NULL, current_sctx.sc_sid, NULL); if (cmd_end != NULL) eap->nextcmd = check_nextcmd(cmd_end); }