diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-12-05 17:20:24 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-12-05 17:20:24 +0000 |
commit | c7d5fc8622f03cca8d1a9a54d4703e8f0c9941d0 (patch) | |
tree | 3b42a9e1c84f60fd992e8e8834bf88ff886b27fa | |
parent | f661cee847d2c17652b0ad0d703d2e3ac8610265 (diff) | |
download | vim-git-c7d5fc8622f03cca8d1a9a54d4703e8f0c9941d0.tar.gz |
patch 8.2.3746: cannot disassemble function starting with "debug" or "profile"v8.2.3746
Problem: Cannot disassemble function starting with "debug" or "profile".
Solution: Check for white space following. (closes #9273)
-rw-r--r-- | src/testdir/test_vim9_script.vim | 35 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 4 |
3 files changed, 39 insertions, 2 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 40833c51c..4d83a4e8f 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -3988,6 +3988,41 @@ def Test_vim9_autoload() &rtp = save_rtp enddef +" test disassembling an auto-loaded function starting with "debug" +def Test_vim9_autoload_disass() + mkdir('Xdir/autoload', 'p') + var save_rtp = &rtp + exe 'set rtp^=' .. getcwd() .. '/Xdir' + + var lines =<< trim END + vim9script + def debugit#test(): string + return 'debug' + enddef + END + writefile(lines, 'Xdir/autoload/debugit.vim') + + lines =<< trim END + vim9script + def profileit#test(): string + return 'profile' + enddef + END + writefile(lines, 'Xdir/autoload/profileit.vim') + + lines =<< trim END + vim9script + assert_equal('debug', debugit#test()) + disass debugit#test + assert_equal('profile', profileit#test()) + disass profileit#test + END + CheckScriptSuccess(lines) + + delete('Xdir', 'rf') + &rtp = save_rtp +enddef + " test using a vim9script that is auto-loaded from an autocmd def Test_vim9_aucmd_autoload() var lines =<< trim END diff --git a/src/version.c b/src/version.c index 54baf7b16..0d00f207d 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3746, +/**/ 3745, /**/ 3744, diff --git a/src/vim9execute.c b/src/vim9execute.c index 2908e55c7..adfb9207c 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -5904,12 +5904,12 @@ ex_disassemble(exarg_T *eap) int is_global = FALSE; compiletype_T compile_type = CT_NONE; - if (STRNCMP(arg, "profile", 7) == 0) + if (STRNCMP(arg, "profile", 7) == 0 && VIM_ISWHITE(arg[7])) { compile_type = CT_PROFILE; arg = skipwhite(arg + 7); } - else if (STRNCMP(arg, "debug", 5) == 0) + else if (STRNCMP(arg, "debug", 5) == 0 && VIM_ISWHITE(arg[5])) { compile_type = CT_DEBUG; arg = skipwhite(arg + 5); |