From aa681df25fc1b1c22182c8150e53952fefa63e10 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Wed, 22 May 2019 23:44:57 -0400 Subject: vim-patch:8.1.0729: there is a SourcePre autocommand event but not a SourcePost Problem: There is a SourcePre autocommand event but not a SourcePost. Solution: Add the SourcePost autocommand event. (closes vim/vim#3739) https://github.com/vim/vim/commit/2b6185287adf53343ed5f49e967ae402c64063e4 --- src/nvim/ex_cmds2.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/nvim/ex_cmds2.c') diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 2fb818760a..71c9290027 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -3039,6 +3039,7 @@ int do_source(char_u *fname, int check_other, int is_vimrc) int save_debug_break_level = debug_break_level; scriptitem_T *si = NULL; proftime_T wait_start; + bool trigger_source_post = false; p = expand_env_save(fname); if (p == NULL) { @@ -3059,6 +3060,10 @@ int do_source(char_u *fname, int check_other, int is_vimrc) && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp, false, curbuf)) { retval = aborting() ? FAIL : OK; + if (retval == OK) { + // Apply SourcePost autocommands. + apply_autocmds(EVENT_SOURCEPOST, fname_exp, fname_exp, false, curbuf); + } goto theend; } @@ -3261,6 +3266,10 @@ int do_source(char_u *fname, int check_other, int is_vimrc) time_pop(rel_time); } + if (!got_int) { + trigger_source_post = true; + } + // After a "finish" in debug mode, need to break at first command of next // sourced file. if (save_debug_break_level > ex_nesting_level @@ -3278,6 +3287,10 @@ int do_source(char_u *fname, int check_other, int is_vimrc) xfree(firstline); convert_setup(&cookie.conv, NULL, NULL); + if (trigger_source_post) { + apply_autocmds(EVENT_SOURCEPOST, si->sn_name, si->sn_name, false, curbuf); + } + theend: xfree(fname_exp); return retval; -- cgit From fdfdc0a228b896a3ce606fb523f5677092490dcc Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Wed, 17 Jul 2019 20:24:35 -0400 Subject: vim-patch:8.1.0732: cannot build without the eval feature Problem: Cannot build without the eval feature. Solution: Make a copy of the sourced file name. https://github.com/vim/vim/commit/ea56e167c87352f07a77d3661425e336817a7141 --- src/nvim/ex_cmds2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/nvim/ex_cmds2.c') diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 71c9290027..c092036ce9 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -3186,7 +3186,7 @@ int do_source(char_u *fname, int check_other, int is_vimrc) } si = &SCRIPT_ITEM(current_SID); si->sn_name = fname_exp; - fname_exp = NULL; + fname_exp = vim_strsave(si->sn_name); // used for autocmd if (file_id_ok) { si->file_id_valid = true; si->file_id = file_id; @@ -3288,7 +3288,7 @@ int do_source(char_u *fname, int check_other, int is_vimrc) convert_setup(&cookie.conv, NULL, NULL); if (trigger_source_post) { - apply_autocmds(EVENT_SOURCEPOST, si->sn_name, si->sn_name, false, curbuf); + apply_autocmds(EVENT_SOURCEPOST, fname_exp, fname_exp, false, curbuf); } theend: -- cgit