mirror of
https://github.com/neovim/neovim.git
synced 2025-10-09 11:26:37 +00:00
vim-patch:8.2.0056: execution stack is incomplete and inefficient
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
1a47ae32cd
Omit test_debugger.vim: superseded by later patches.
Omit check_map_keycodes(): N/A.
Omit kword_test.c: N/A (converted to a unit test).
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "nvim/garray.h"
|
||||
#include "nvim/lua/executor.h"
|
||||
#include "nvim/os/input.h"
|
||||
#include "nvim/runtime.h"
|
||||
#include "nvim/usercmd.h"
|
||||
#include "nvim/window.h"
|
||||
|
||||
@@ -168,7 +169,7 @@ char *find_ucmd(exarg_T *eap, char *p, int *full, expand_T *xp, int *complp)
|
||||
xp->xp_luaref = uc->uc_compl_luaref;
|
||||
xp->xp_arg = (char *)uc->uc_compl_arg;
|
||||
xp->xp_script_ctx = uc->uc_script_ctx;
|
||||
xp->xp_script_ctx.sc_lnum += sourcing_lnum;
|
||||
xp->xp_script_ctx.sc_lnum += SOURCING_LNUM;
|
||||
}
|
||||
// Do not search for further abbreviations
|
||||
// if this is an exact match.
|
||||
@@ -890,7 +891,7 @@ int uc_add_command(char *name, size_t name_len, const char *rep, uint32_t argt,
|
||||
cmd->uc_def = def;
|
||||
cmd->uc_compl = compl;
|
||||
cmd->uc_script_ctx = current_sctx;
|
||||
cmd->uc_script_ctx.sc_lnum += sourcing_lnum;
|
||||
cmd->uc_script_ctx.sc_lnum += SOURCING_LNUM;
|
||||
nlua_set_sctx(&cmd->uc_script_ctx);
|
||||
cmd->uc_compl_arg = (char_u *)compl_arg;
|
||||
cmd->uc_compl_luaref = compl_luaref;
|
||||
|
Reference in New Issue
Block a user