]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.139 v7.4.139
authorBram Moolenaar <Bram@vim.org>
Fri, 10 Jan 2014 14:53:13 +0000 (15:53 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 10 Jan 2014 14:53:13 +0000 (15:53 +0100)
Problem:    Crash when using :cd in autocommand. (François Ingelrest)
Solution:   Set w_localdir to NULL after freeing it. (Dominique Pelle)

src/ex_docmd.c
src/version.c
src/window.c

index bf5f81cca9d2113d785635ed08f553eb96f5a8c2..17c5606e6d83db78798e688e2a61da17f1dd5a3e 100644 (file)
@@ -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);
index 1fda7d5280e76d024017d80b49cc035c7da84bc1..d8c0123415a085ab4db484ad619da97d2a67d5e6 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    139,
 /**/
     138,
 /**/
index 48745f060157eca3137c23a756e2b463d38685fc..66cee28ceca917ec8eb1d9b8b397b75ffab979bb 100644 (file)
@@ -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++)