Mercurial > vim
changeset 25423:3e56078569ca v8.2.3248
patch 8.2.3248: Vim9: error message for wrong input uses wrong line number
Commit: https://github.com/vim/vim/commit/921ba529266c8dfc0809d41e1f084e26d25fffb1
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jul 29 22:25:05 2021 +0200
patch 8.2.3248: Vim9: error message for wrong input uses wrong line number
Problem: Vim9: error message for wrong input uses wrong line number.
Solution: Use the line number of the start of the command. (issue https://github.com/vim/vim/issues/8653)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 29 Jul 2021 22:30:05 +0200 |
parents | 7fde4d54b8b7 |
children | 3cf272d6ee04 |
files | src/testdir/test_vim9_script.vim src/version.c src/vim9script.c |
diffstat | 3 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -1223,6 +1223,16 @@ def Test_vim9_import_export() writefile(import_star_as_lines_dot_space, 'Ximport.vim') assert_fails('source Ximport.vim', 'E1074:', '', 1, 'Func') + var import_func_duplicated =<< trim END + vim9script + import ExportedInc from './Xexport.vim' + import ExportedInc from './Xexport.vim' + + ExportedInc() + END + writefile(import_func_duplicated, 'Ximport.vim') + assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim') + var import_star_as_duplicated =<< trim END vim9script import * as Export from './Xexport.vim'
--- 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 */ /**/ + 3248, +/**/ 3247, /**/ 3246,
--- a/src/vim9script.c +++ b/src/vim9script.c @@ -411,6 +411,7 @@ handle_import( int mult = FALSE; garray_T names; garray_T as_names; + long start_lnum = SOURCING_LNUM; tv.v_type = VAR_UNKNOWN; ga_init2(&names, sizeof(char_u *), 10); @@ -511,6 +512,9 @@ handle_import( } cmd_end = arg; + // Give error messages for the start of the line. + SOURCING_LNUM = start_lnum; + /* * find script file */