Mercurial > vim
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