# HG changeset patch # User Bram Moolenaar # Date 1642516204 -3600 # Node ID 42561e956a703d9fca0ecdca2617a070514e717e # Parent ceba1e0d02105456e73058b8fb8c21c271bc4c53 patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script Commit: https://github.com/vim/vim/commit/6079da7cfb10c798535224c92db7fedd3914cb71 Author: Bram Moolenaar Date: Tue Jan 18 14:16:59 2022 +0000 patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script Problem: Vim9: ":scriptnames" shows unloaded imported autoload script. Solution: Mark the unloaded script with "A". (closes https://github.com/vim/vim/issues/9552) diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -380,6 +380,9 @@ For writing a Vim script, see chapter 41 :scr[iptnames] List all sourced script names, in the order they were first sourced. The number is used for the script ID ||. + For a script that was used with `import autoload` but + was not actually sourced yet an "A" is shown after the + script ID. {not available when compiled without the |+eval| feature} diff --git a/src/scriptfile.c b/src/scriptfile.c --- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -1648,16 +1648,22 @@ ex_scriptnames(exarg_T *eap) } for (i = 1; i <= script_items.ga_len && !got_int; ++i) - if (SCRIPT_ITEM(i)->sn_name != NULL) + { + scriptitem_T *si = SCRIPT_ITEM(i); + + if (si->sn_name != NULL) { - home_replace(NULL, SCRIPT_ITEM(i)->sn_name, - NameBuff, MAXPATHL, TRUE); - vim_snprintf((char *)IObuff, IOSIZE, "%3d: %s", i, NameBuff); + home_replace(NULL, si->sn_name, NameBuff, MAXPATHL, TRUE); + vim_snprintf((char *)IObuff, IOSIZE, "%3d%s: %s", + i, + si->sn_state == SN_STATE_NOT_LOADED ? " A" : "", + NameBuff); msg_putchar('\n'); msg_outtrans(IObuff); out_flush(); // output one line at a time ui_breakcheck(); } + } } # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO) diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim --- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -1397,10 +1397,12 @@ def Test_autoload_mapping() CheckScriptSuccess(lines) assert_false(exists("g:toggle_loaded")) assert_false(exists("g:toggle_called")) + assert_match('\d A: \f*[/\\]toggle.vim', execute('scriptnames')) feedkeys("tt", 'xt') assert_equal('yes', g:toggle_loaded) assert_equal('yes', g:toggle_called) + assert_match('\d: \f*[/\\]toggle.vim', execute('scriptnames')) feedkeys("xx", 'xt') assert_equal('yes', g:doit_called) diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 4135, +/**/ 4134, /**/ 4133,