{
char_u *pdir = NULL;
int dir_differs;
- int retval = FALSE;
+ char_u *acmd_fname;
+ char_u **pp;
if (new_dir == NULL || allbuf_locked())
return FALSE;
{
emsg(_(e_command_failed));
vim_free(pdir);
+ return FALSE;
}
+
+ if (scope == CDSCOPE_WINDOW)
+ pp = &curwin->w_prevdir;
+ else if (scope == CDSCOPE_TABPAGE)
+ pp = &curtab->tp_prevdir;
else
- {
- char_u *acmd_fname;
- char_u **pp;
+ pp = &prev_dir;
+ vim_free(*pp);
+ *pp = pdir;
+
+ post_chdir(scope);
+ if (dir_differs)
+ {
if (scope == CDSCOPE_WINDOW)
- pp = &curwin->w_prevdir;
+ acmd_fname = (char_u *)"window";
else if (scope == CDSCOPE_TABPAGE)
- pp = &curtab->tp_prevdir;
+ acmd_fname = (char_u *)"tabpage";
else
- pp = &prev_dir;
- vim_free(*pp);
- *pp = pdir;
-
- post_chdir(scope);
-
- if (dir_differs)
- {
- if (scope == CDSCOPE_WINDOW)
- acmd_fname = (char_u *)"window";
- else if (scope == CDSCOPE_TABPAGE)
- acmd_fname = (char_u *)"tabpage";
- else
- acmd_fname = (char_u *)"global";
- apply_autocmds(EVENT_DIRCHANGED, acmd_fname, new_dir, FALSE,
- curbuf);
- }
- retval = TRUE;
+ acmd_fname = (char_u *)"global";
+ apply_autocmds(EVENT_DIRCHANGED, acmd_fname, new_dir, FALSE,
+ curbuf);
}
-
- return retval;
+ return TRUE;
}
/*
{
char_u old_dir[MAXPATHL];
char_u new_dir[MAXPATHL];
- int res;
if (mch_dirname(old_dir, MAXPATHL) != OK)
*old_dir = NUL;
if (pathcmp((char *)old_dir, (char *)new_dir, -1) == 0)
// nothing to do
- res = OK;
- else
- {
- res = mch_chdir((char *)new_dir) == 0 ? OK : FAIL;
+ return OK;
+
+ if (mch_chdir((char *)new_dir) != 0)
+ return FAIL;
- if (res == OK && trigger_autocmd != NULL)
- apply_autocmds(EVENT_DIRCHANGED, (char_u *)trigger_autocmd,
+ if (trigger_autocmd != NULL)
+ apply_autocmds(EVENT_DIRCHANGED, (char_u *)trigger_autocmd,
new_dir, FALSE, curbuf);
- }
- return res;
+ return OK;
}
#endif