aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua/executor.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-03-11 21:29:25 +0800
committerGitHub <noreply@github.com>2023-03-11 21:29:25 +0800
commit7dc9182cf0b27cbfb4e289db55dd7b02998ef5c8 (patch)
tree3eca706a2115138bbbb76ce562ba441c13bf659d /src/nvim/lua/executor.c
parent6d0c61d90d316473eee0729363e20bf06825b09b (diff)
downloadrneovim-7dc9182cf0b27cbfb4e289db55dd7b02998ef5c8.tar.gz
rneovim-7dc9182cf0b27cbfb4e289db55dd7b02998ef5c8.tar.bz2
rneovim-7dc9182cf0b27cbfb4e289db55dd7b02998ef5c8.zip
vim-patch:8.2.1398: autoload script sourced twice if sourced directly (#22622)
Problem: Autoload script sourced twice if sourced directly. Solution: Do not source an autoload script again. (issue vim/vim#6644) https://github.com/vim/vim/commit/daa2f36573db3e1df7eb1fdbc3a09a2815644048 Cherry-pick ret_sid changes from patch 8.2.0149. Use do_in_runtimepath() as that's what source_runtime() calls in Nvim. Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/lua/executor.c')
-rw-r--r--src/nvim/lua/executor.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c
index 078bc4fea9..11a02ea402 100644
--- a/src/nvim/lua/executor.c
+++ b/src/nvim/lua/executor.c
@@ -2061,10 +2061,15 @@ void nlua_set_sctx(sctx_T *current)
break;
}
char *source_path = fix_fname(info->source + 1);
- get_current_script_id(&source_path, current);
- xfree(source_path);
- current->sc_lnum = info->currentline;
+ int sid = find_script_by_name(source_path);
+ if (sid > 0) {
+ xfree(source_path);
+ } else {
+ new_script_item(source_path, &sid);
+ }
+ current->sc_sid = sid;
current->sc_seq = -1;
+ current->sc_lnum = info->currentline;
cleanup:
xfree(info);