From: Bram Moolenaar Date: Tue, 18 Jan 2022 13:14:47 +0000 (+0000) Subject: patch 8.2.4132: Vim9: wrong error message when autoload script can't be found X-Git-Tag: v8.2.4132 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1836d6157828baddd94e1f2c82488031570e444d;p=vim patch 8.2.4132: Vim9: wrong error message when autoload script can't be found Problem: Vim9: wrong error message when autoload script can't be found. Solution: Correct check for using autoload with wrong name. --- diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim index 13530151a..79c1ca43e 100644 --- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -1433,9 +1433,21 @@ def Test_import_autoload_fails() lines =<< trim END vim9script - import autoload 'doesNotExist.vim' + import autoload './doesNotExist.vim' + END + CheckScriptFailure(lines, 'E1264:') + + lines =<< trim END + vim9script + import autoload '/dir/doesNotExist.vim' END CheckScriptFailure(lines, 'E1264:') + + lines =<< trim END + vim9script + import autoload 'doesNotExist.vim' + END + CheckScriptFailure(lines, 'E1053: Could not import "doesNotExist.vim"') enddef " test disassembling an auto-loaded function starting with "debug" diff --git a/src/version.c b/src/version.c index 64a607796..8b9958a47 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4132, /**/ 4131, /**/ diff --git a/src/vim9script.c b/src/vim9script.c index 2038c78a0..41df6bfc4 100644 --- a/src/vim9script.c +++ b/src/vim9script.c @@ -411,7 +411,7 @@ handle_import( int ret = FAIL; char_u *as_name = NULL; typval_T tv; - int sid = -1; + int sid = -2; int res; long start_lnum = SOURCING_LNUM; garray_T *import_gap; @@ -519,7 +519,7 @@ handle_import( if (res == FAIL || sid <= 0) { - semsg(_(is_autoload && sid <= 0 + semsg(_(is_autoload && sid == -2 ? e_autoload_import_cannot_use_absolute_or_relative_path : e_could_not_import_str), tv.vval.v_string); goto erret;