diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 91f5124de9..f4129019ab 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -4368,8 +4368,22 @@ do_ecmd( if (p_im) need_start_insertmode = TRUE; - /* Change directories when the 'acd' option is set. */ - DO_AUTOCHDIR +#ifdef FEAT_AUTOCHDIR + /* Change directories when the 'acd' option is set and we aren't already in + * that directory (should already be done above). Expect getcwd() to be + * faster than calling shorten_fnames() unnecessarily. */ + if (p_acd && curbuf->b_ffname != NULL) + { + char_u curdir[MAXPATHL]; + char_u filedir[MAXPATHL]; + + vim_strncpy(filedir, curbuf->b_ffname, MAXPATHL - 1); + *gettail_sep(filedir) = NUL; + if (mch_dirname(curdir, MAXPATHL) != FAIL + && vim_fnamecmp(curdir, filedir) != 0) + do_autochdir(); + } +#endif #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) if (curbuf->b_ffname != NULL) diff --git a/src/version.c b/src/version.c index d3670bcdaa..c24843ffa5 100644 --- a/src/version.c +++ b/src/version.c @@ -771,6 +771,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1461, /**/ 1460, /**/