aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrea Cedraro <a.cedraro@gmail.com>2020-11-07 18:02:06 +0100
committerGitHub <noreply@github.com>2020-11-07 12:02:06 -0500
commit4c7ad9527db7c4476fd07c1fa95d89983dfba775 (patch)
tree7e4ac373771376d9e2331c7ba8edccde36553b58 /src
parent643f4a178751df34b27189f7aebea313b17bad3b (diff)
downloadrneovim-4c7ad9527db7c4476fd07c1fa95d89983dfba775.tar.gz
rneovim-4c7ad9527db7c4476fd07c1fa95d89983dfba775.tar.bz2
rneovim-4c7ad9527db7c4476fd07c1fa95d89983dfba775.zip
Add v:event flag on DirChanged signaling switching window (#13153)
Closes #9909
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_docmd.c2
-rw-r--r--src/nvim/file_search.c5
-rw-r--r--src/nvim/window.c4
3 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index d7ed2fe97d..60963f5411 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -7506,7 +7506,7 @@ void post_chdir(CdScope scope, bool trigger_dirchanged)
shorten_fnames(true);
if (trigger_dirchanged) {
- do_autocmd_dirchanged(cwd, scope);
+ do_autocmd_dirchanged(cwd, scope, false);
}
}
diff --git a/src/nvim/file_search.c b/src/nvim/file_search.c
index 47272df2f0..b1fa0b6779 100644
--- a/src/nvim/file_search.c
+++ b/src/nvim/file_search.c
@@ -1565,7 +1565,7 @@ theend:
return file_name;
}
-void do_autocmd_dirchanged(char *new_dir, CdScope scope)
+void do_autocmd_dirchanged(char *new_dir, CdScope scope, bool changed_window)
{
static bool recursive = false;
@@ -1601,6 +1601,7 @@ void do_autocmd_dirchanged(char *new_dir, CdScope scope)
tv_dict_add_str(dict, S_LEN("scope"), buf); // -V614
tv_dict_add_str(dict, S_LEN("cwd"), new_dir);
+ tv_dict_add_bool(dict, S_LEN("changed_window"), changed_window);
tv_dict_set_keys_readonly(dict);
apply_autocmds(EVENT_DIRCHANGED, (char_u *)buf, (char_u *)new_dir, false,
@@ -1633,7 +1634,7 @@ int vim_chdirfile(char_u *fname)
slash_adjust((char_u *)dir);
#endif
if (!strequal(dir, (char *)NameBuff)) {
- do_autocmd_dirchanged(dir, kCdScopeWindow);
+ do_autocmd_dirchanged(dir, kCdScopeWindow, false);
}
return OK;
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 9d918ebeb0..3429e3df70 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -4567,7 +4567,7 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid,
if (os_chdir(new_dir) == 0) {
if (!p_acd && !strequal(new_dir, cwd)) {
do_autocmd_dirchanged(new_dir, curwin->w_localdir
- ? kCdScopeWindow : kCdScopeTab);
+ ? kCdScopeWindow : kCdScopeTab, true);
}
shorten_fnames(true);
}
@@ -4576,7 +4576,7 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid,
// directory: Change to the global directory.
if (os_chdir((char *)globaldir) == 0) {
if (!p_acd && !strequal((char *)globaldir, cwd)) {
- do_autocmd_dirchanged((char *)globaldir, kCdScopeGlobal);
+ do_autocmd_dirchanged((char *)globaldir, kCdScopeGlobal, true);
}
}
XFREE_CLEAR(globaldir);