changeset 5306:2374a05efe20 v7.4.006

updated for version 7.4.006 Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett) Solution: Remove the trailing slash. (lcd)
author Bram Moolenaar <bram@vim.org>
date Thu, 22 Aug 2013 12:06:55 +0200
parents ae6c19fb32e1
children f38e25b8dfbb
files src/eval.c src/version.c
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -14292,6 +14292,10 @@ f_mkdir(argvars, rettv)
 	return;
 
     dir = get_tv_string_buf(&argvars[0], buf);
+    if (*gettail(dir) == NUL)
+	/* remove trailing slashes */
+	*gettail_sep(dir) = NUL;
+
     if (argvars[1].v_type != VAR_UNKNOWN)
     {
 	if (argvars[2].v_type != VAR_UNKNOWN)
@@ -14299,7 +14303,7 @@ f_mkdir(argvars, rettv)
 	if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
 	    mkdir_recurse(dir, prot);
     }
-    rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
+    rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
 }
 #endif
 
--- a/src/version.c
+++ b/src/version.c
@@ -728,6 +728,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    6,
+/**/
     5,
 /**/
     4,