From: Bram Moolenaar Date: Fri, 10 Jan 2014 14:53:13 +0000 (+0100) Subject: updated for version 7.4.139 X-Git-Tag: v7.4.139 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bd2dc34774c3753b2953a3bffaf35d5793d2575c;p=vim updated for version 7.4.139 Problem: Crash when using :cd in autocommand. (François Ingelrest) Solution: Set w_localdir to NULL after freeing it. (Dominique Pelle) --- diff --git a/src/ex_docmd.c b/src/ex_docmd.c index bf5f81cca..17c5606e6 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -8228,6 +8228,7 @@ post_chdir(local) int local; { vim_free(curwin->w_localdir); + curwin->w_localdir = NULL; if (local) { /* If still in global directory, need to remember current @@ -8244,7 +8245,6 @@ post_chdir(local) * name. */ vim_free(globaldir); globaldir = NULL; - curwin->w_localdir = NULL; } shorten_fnames(TRUE); diff --git a/src/version.c b/src/version.c index 1fda7d528..d8c012341 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 139, /**/ 138, /**/ diff --git a/src/window.c b/src/window.c index 48745f060..66cee28ce 100644 --- a/src/window.c +++ b/src/window.c @@ -1216,8 +1216,8 @@ win_init(newp, oldp, flags) else copy_loclist(oldp, newp); #endif - if (oldp->w_localdir != NULL) - newp->w_localdir = vim_strsave(oldp->w_localdir); + newp->w_localdir = (oldp->w_localdir == NULL) + ? NULL : vim_strsave(oldp->w_localdir); /* copy tagstack and folds */ for (i = 0; i < oldp->w_tagstacklen; i++)