summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ex_docmd.c47
-rw-r--r--src/misc2.c16
-rw-r--r--src/version.c2
3 files changed, 30 insertions, 35 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 64dcd7e2b..d8adf85bc 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7358,7 +7358,8 @@ changedir_func(
{
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;
@@ -7415,38 +7416,32 @@ changedir_func(
{
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;
}
/*
diff --git a/src/misc2.c b/src/misc2.c
index b6d5e066c..fac836fb7 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1903,7 +1903,6 @@ vim_chdirfile(char_u *fname, char *trigger_autocmd)
{
char_u old_dir[MAXPATHL];
char_u new_dir[MAXPATHL];
- int res;
if (mch_dirname(old_dir, MAXPATHL) != OK)
*old_dir = NUL;
@@ -1913,16 +1912,15 @@ vim_chdirfile(char_u *fname, char *trigger_autocmd)
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
diff --git a/src/version.c b/src/version.c
index b96637f15..f1014b3fe 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4283,
+/**/
4282,
/**/
4281,