summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-02-08 16:00:46 +0100
committerBram Moolenaar <Bram@vim.org>2020-02-08 16:00:46 +0100
commit165315584d6587e287f54d6c8820e050114b5694 (patch)
treee7827dcce0b96c88614b6882236777023834222f
parentd02e508a18346ca1acb8c0c94c38e62a6ddeefe2 (diff)
downloadvim-git-165315584d6587e287f54d6c8820e050114b5694.tar.gz
patch 8.2.0232: the :compiler command causes a crashv8.2.0232
Problem: The :compiler command causes a crash. (Daniel Steinberg) Solution: Do not use the script index if it isn't set.
-rw-r--r--src/ex_docmd.c3
-rw-r--r--src/testdir/test_compiler.vim10
-rw-r--r--src/version.c2
3 files changed, 14 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 645ad0c93..659af1911 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2495,7 +2495,8 @@ do_one_cmd(
#ifdef FEAT_EVAL
// Set flag that any command was executed, used by ex_vim9script().
- if (getline_equal(ea.getline, ea.cookie, getsourceline))
+ if (getline_equal(ea.getline, ea.cookie, getsourceline)
+ && current_sctx.sc_sid > 0)
SCRIPT_ITEM(current_sctx.sc_sid)->sn_had_command = TRUE;
/*
diff --git a/src/testdir/test_compiler.vim b/src/testdir/test_compiler.vim
index 4f02cf1c2..464dd9bcb 100644
--- a/src/testdir/test_compiler.vim
+++ b/src/testdir/test_compiler.vim
@@ -1,6 +1,7 @@
" Test the :compiler command
source check.vim
+source shared.vim
func Test_compiler()
if !executable('perl')
@@ -48,6 +49,15 @@ func Test_compiler_without_arg()
call assert_match(runtime .. '/compiler/xmlwf.vim$', a[-1])
endfunc
+" Test executing :compiler from the command line, not from a script
+func Test_compiler_commandline()
+ call system(GetVimCommandClean() .. ' --not-a-term -c "compiler gcc" -c "call writefile([b:current_compiler], ''XcompilerOut'')" -c "quit"')
+ call assert_equal(0, v:shell_error)
+ call assert_equal(["gcc"], readfile('XcompilerOut'))
+
+ call delete('XcompilerOut')
+endfunc
+
func Test_compiler_completion()
call feedkeys(":compiler \<C-A>\<C-B>\"\<CR>", 'tx')
call assert_match('^"compiler ant bcc .* xmlwf$', @:)
diff --git a/src/version.c b/src/version.c
index db1f9f77b..e1fde105f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 232,
+/**/
231,
/**/
230,