diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-01-01 18:54:34 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-01-01 18:54:34 +0100 |
commit | b8ba9b919708f44b718c17f1fec85b1df8050a17 (patch) | |
tree | 190e855888a18be913173b5eab36772e9cb15f72 | |
parent | 5178b1b02fc96f42d62199a4be9184c2aea8a49a (diff) | |
download | vim-git-b8ba9b919708f44b718c17f1fec85b1df8050a17.tar.gz |
patch 8.2.2265: error message for missing endfunc/enddef is last linev8.2.2265
Problem: Error message for missing endfunc/enddef is last line.
Solution: Report the line where the function starts. (closes #7582)
-rw-r--r-- | src/testdir/test_vim9_func.vim | 18 | ||||
-rw-r--r-- | src/userfunc.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 223b2fbda..20ad3ba8e 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -98,6 +98,24 @@ def Test_endfunc_enddef() CheckScriptFailure(lines, 'E1152:', 4) enddef +def Test_missing_endfunc_enddef() + var lines =<< trim END + vim9script + def Test() + echo 'test' + endef + END + CheckScriptFailure(lines, 'E1057:', 2) + + lines =<< trim END + vim9script + func Some() + echo 'test' + enfffunc + END + CheckScriptFailure(lines, 'E126:', 2) +enddef + def ReturnString(): string return 'string' enddef diff --git a/src/userfunc.c b/src/userfunc.c index f0877e1c3..5fab412b4 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -3352,6 +3352,8 @@ define_function(exarg_T *eap, char_u *name_arg) lines_left = Rows - 1; if (theline == NULL) { + // Use the start of the function for the line number. + SOURCING_LNUM = sourcing_lnum_top; if (skip_until != NULL) semsg(_(e_missing_heredoc_end_marker_str), skip_until); else if (eap->cmdidx == CMD_def) diff --git a/src/version.c b/src/version.c index 3fc3c01e1..770c1c75a 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2265, +/**/ 2264, /**/ 2263, |