Mercurial > vim
changeset 26430:42471d3ac079 v8.2.3746
patch 8.2.3746: cannot disassemble function starting with "debug" or "profile"
Commit: https://github.com/vim/vim/commit/c7d5fc8622f03cca8d1a9a54d4703e8f0c9941d0
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 5 17:20:24 2021 +0000
patch 8.2.3746: cannot disassemble function starting with "debug" or "profile"
Problem: Cannot disassemble function starting with "debug" or "profile".
Solution: Check for white space following. (closes https://github.com/vim/vim/issues/9273)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 05 Dec 2021 18:30:04 +0100 |
parents | a79055d7f518 |
children | 6501e4553b5c |
files | src/testdir/test_vim9_script.vim src/version.c src/vim9execute.c |
diffstat | 3 files changed, 39 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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,
--- 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);