diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-01-18 14:16:59 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-01-18 14:16:59 +0000 |
commit | 6079da7cfb10c798535224c92db7fedd3914cb71 (patch) | |
tree | 49519d64d29414ab7252160d5a13f3bc45e1ea6c | |
parent | 113b8dc111febf605cd1492788353be6c3931fce (diff) | |
download | vim-git-6079da7cfb10c798535224c92db7fedd3914cb71.tar.gz |
patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload scriptv8.2.4135
Problem: Vim9: ":scriptnames" shows unloaded imported autoload script.
Solution: Mark the unloaded script with "A". (closes #9552)
-rw-r--r-- | runtime/doc/repeat.txt | 3 | ||||
-rw-r--r-- | src/scriptfile.c | 14 | ||||
-rw-r--r-- | src/testdir/test_vim9_import.vim | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 17 insertions, 4 deletions
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 8ea19584b..067234a01 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -380,6 +380,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|. :scr[iptnames] List all sourced script names, in the order they were first sourced. The number is used for the script ID |<SID>|. + 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 index 159c9fc67..5b1e43b78 100644 --- 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 index 79c1ca43e..6abe47870 100644 --- 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 index 8ac5c0867..679d25889 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 */ /**/ + 4135, +/**/ 4134, /**/ 4133, |