diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/ex_docmd.c | 2 | ||||
| -rw-r--r-- | src/nvim/file_search.c | 5 | ||||
| -rw-r--r-- | src/nvim/window.c | 4 | 
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);  | 
