forked from aniani/vim
patch 8.0.1459: cannot handle change of directory
Problem: Cannot handle change of directory. Solution: Add the DirChanged autocommand event. (Andy Massimino, closes #888) Avoid changing directory for 'autochdir' too often.
This commit is contained in:
@@ -9048,11 +9048,19 @@ ex_cd(exarg_T *eap)
|
||||
EMSG(_(e_failed));
|
||||
else
|
||||
{
|
||||
post_chdir(eap->cmdidx == CMD_lcd || eap->cmdidx == CMD_lchdir);
|
||||
int is_local_chdir = eap->cmdidx == CMD_lcd
|
||||
|| eap->cmdidx == CMD_lchdir;
|
||||
|
||||
post_chdir(is_local_chdir);
|
||||
|
||||
/* Echo the new current directory if the command was typed. */
|
||||
if (KeyTyped || p_verbose >= 5)
|
||||
ex_pwd(eap);
|
||||
#ifdef FEAT_AUTOCMD
|
||||
apply_autocmds(EVENT_DIRCHANGED,
|
||||
is_local_chdir ? (char_u *)"window" : (char_u *)"global",
|
||||
new_dir, FALSE, curbuf);
|
||||
#endif
|
||||
}
|
||||
vim_free(tofree);
|
||||
}
|
||||
@@ -9932,7 +9940,7 @@ ex_mkrc(
|
||||
*dirnow = NUL;
|
||||
if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
|
||||
{
|
||||
if (vim_chdirfile(fname) == OK)
|
||||
if (vim_chdirfile(fname, NULL) == OK)
|
||||
shorten_fnames(TRUE);
|
||||
}
|
||||
else if (*dirnow != NUL
|
||||
|
Reference in New Issue
Block a user