diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-08-15 19:28:05 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-08-15 19:28:05 +0200 |
commit | 4bba16d252da6f072d311f9b3ebb50101d6d2eaf (patch) | |
tree | f374be3d8bbc73d2117afa5520da072aaee2d60f | |
parent | b033ee2ddfa8513b57111a56d6af9e45c41f7d1e (diff) | |
download | vim-git-4bba16d252da6f072d311f9b3ebb50101d6d2eaf.tar.gz |
patch 8.2.3352: Vim9: error for nested :enddef has wrong line numberv8.2.3352
Problem: Vim9: error for nested :enddef has wrong line number.
Solution: Compute the line number.
-rw-r--r-- | src/testdir/test_vim9_func.vim | 11 | ||||
-rw-r--r-- | src/userfunc.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index c42188e7a..0ffe68632 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -630,6 +630,17 @@ def Test_nested_function() assert_equal(2, Test()) END CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + def Outer() + def Inner() + echo 'hello' + enddef burp + enddef + defcompile + END + CheckScriptFailure(lines, 'E1173: Text found after enddef: burp', 3) enddef def Test_not_nested_function() diff --git a/src/userfunc.c b/src/userfunc.c index 7a7617f5e..86a2bec4e 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -822,6 +822,8 @@ get_function_body( else if (*p != NUL && *p != (vim9_function ? '#' : '"') && (vim9_function || p_verbose > 0)) { + SOURCING_LNUM = sourcing_lnum_top + + newlines->ga_len + 1; if (eap->cmdidx == CMD_def) semsg(_(e_text_found_after_enddef_str), p); else diff --git a/src/version.c b/src/version.c index 22022c815..95e53312d 100644 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3352, +/**/ 3351, /**/ 3350, |