mirror of
https://github.com/neovim/neovim.git
synced 2025-09-28 22:18:33 +00:00
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)
2b6185287a
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user