patch 8.0.0667: memory access error when command follows :endfunc
Problem: Memory access error when command follows :endfunction. (Nikolai
Pavlov)
Solution: Make memory handling in :function straightforward. (closes #1793)
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index 13b32cd..29394c9 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -1379,6 +1379,11 @@
delfunc Xtest
unlet done
+ " trailing line break
+ exe "func Xtest()\necho 'hello'\nendfunc\n"
+ call assert_true(exists('*Xtest'))
+ delfunc Xtest
+
set verbose=1
exe "func Xtest()\necho 'hello'\nendfunc \" garbage"
call assert_notmatch('W22:', split(execute('1messages'), "\n")[0])
@@ -1390,6 +1395,11 @@
call assert_true(exists('*Xtest'))
delfunc Xtest
set verbose=0
+
+ function Foo()
+ echo 'hello'
+ endfunction | echo 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+ delfunc Foo
endfunc
func Test_delfunction_force()