@@ -14292,18 +14292,23 @@ f_mkdir(argvars, rettv)
1429214292 return;
1429314293
1429414294 dir = get_tv_string_buf(&argvars[0], buf);
14295- if (*gettail(dir) == NUL)
14296- /* remove trailing slashes */
14297- *gettail_sep(dir) = NUL;
14298-
14299- if (argvars[1].v_type != VAR_UNKNOWN)
14295+ if (*dir == NUL)
14296+ rettv->vval.v_number = FAIL;
14297+ else
1430014298 {
14301- if (argvars[2].v_type != VAR_UNKNOWN)
14302- prot = get_tv_number_chk(&argvars[2], NULL);
14303- if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
14304- mkdir_recurse(dir, prot);
14299+ if (*gettail(dir) == NUL)
14300+ /* remove trailing slashes */
14301+ *gettail_sep(dir) = NUL;
14302+
14303+ if (argvars[1].v_type != VAR_UNKNOWN)
14304+ {
14305+ if (argvars[2].v_type != VAR_UNKNOWN)
14306+ prot = get_tv_number_chk(&argvars[2], NULL);
14307+ if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
14308+ mkdir_recurse(dir, prot);
14309+ }
14310+ rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
1430514311 }
14306- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
1430714312}
1430814313#endif
1430914314
0 commit comments