mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 17:28:23 +00:00
Merge pull request #17363 from zeertzjq/dirchangedpre
feat(events): add DirChangedPre
This commit is contained in:
@@ -7797,7 +7797,7 @@ static char_u *get_prevdir(CdScope scope)
|
||||
/// Deal with the side effects of changing the current directory.
|
||||
///
|
||||
/// @param scope Scope of the function call (global, tab or window).
|
||||
void post_chdir(CdScope scope, bool trigger_dirchanged)
|
||||
static void post_chdir(CdScope scope, bool trigger_dirchanged)
|
||||
{
|
||||
// Always overwrite the window-local CWD.
|
||||
XFREE_CLEAR(curwin->w_localdir);
|
||||
@@ -7838,7 +7838,7 @@ void post_chdir(CdScope scope, bool trigger_dirchanged)
|
||||
shorten_fnames(true);
|
||||
|
||||
if (trigger_dirchanged) {
|
||||
do_autocmd_dirchanged(cwd, scope, kCdCauseManual);
|
||||
do_autocmd_dirchanged(cwd, scope, kCdCauseManual, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7882,10 +7882,13 @@ bool changedir_func(char_u *new_dir, CdScope scope)
|
||||
}
|
||||
|
||||
bool dir_differs = pdir == NULL || pathcmp((char *)pdir, (char *)new_dir, -1) != 0;
|
||||
if (dir_differs && vim_chdir(new_dir) != 0) {
|
||||
emsg(_(e_failed));
|
||||
xfree(pdir);
|
||||
return false;
|
||||
if (dir_differs) {
|
||||
do_autocmd_dirchanged((char *)new_dir, scope, kCdCauseManual, true);
|
||||
if (vim_chdir(new_dir) != 0) {
|
||||
emsg(_(e_failed));
|
||||
xfree(pdir);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
char_u **pp;
|
||||
|
Reference in New Issue
Block a user