diff options
-rw-r--r-- | sysif.c | 3 | ||||
-rw-r--r-- | txr.1 | 15 |
2 files changed, 12 insertions, 6 deletions
@@ -339,6 +339,7 @@ static val mkdir_nothrow_exists(val path, val mode) ret = num(errno); break; case EEXIST: + ret = nil; #if HAVE_SYS_STAT { struct stat st; @@ -384,7 +385,7 @@ static val ensure_dir(val path, val mode) partial_path, sep, pop(&split_path), nao); } - if (ret != t) { + if (integerp(ret)) { int eno = c_num(ret); uw_throwf(errno_to_file_error(eno), lit("ensure-dir: ~a: ~d/~s"), path, ret, @@ -57494,13 +57494,18 @@ are subject to the system The function .code ensure-dir -is similar to -.code mkdir -except that it attempts to create all the missing parent directories -as necessary, and does not throw an error if +also creates a directory named +.metn path . +Unlike +.codn mkdir , +it also attempt to create all the necessary parent directories, +and does not throw an error if .meta path refers to an existing object, if that object is a directory or a symbolic -link to a directory. +link to a directory. Rather, in that case it returns +.code nil +instead of +.codn t . .coNP Function @ chdir .synb |