diff options
-rw-r--r-- | lib/pure/os.nim | 4 | ||||
-rw-r--r-- | tests/stdlib/tos.nim | 9 |
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/pure/os.nim b/lib/pure/os.nim index a9183e1fa..6d1af04c8 100644 --- a/lib/pure/os.nim +++ b/lib/pure/os.nim @@ -33,8 +33,6 @@ else: import ospaths export ospaths -proc c_remove(filename: cstring): cint {. - importc: "remove", header: "<stdio.h>".} proc c_rename(oldname, newname: cstring): cint {. importc: "rename", header: "<stdio.h>".} proc c_system(cmd: cstring): cint {. @@ -652,7 +650,7 @@ proc tryRemoveFile*(file: string): bool {.rtl, extern: "nos$1", tags: [WriteDirE deleteFile(f) != 0: result = true else: - if c_remove(file) != 0'i32 and errno != ENOENT: + if unlink(file) != 0'i32 and errno != ENOENT: result = false proc removeFile*(file: string) {.rtl, extern: "nos$1", tags: [WriteDirEffect].} = diff --git a/tests/stdlib/tos.nim b/tests/stdlib/tos.nim index 2c0db6953..829e35c7b 100644 --- a/tests/stdlib/tos.nim +++ b/tests/stdlib/tos.nim @@ -39,6 +39,7 @@ false true true Raises +Raises true true true @@ -119,6 +120,14 @@ except IOError: echo "Raises" removeFile(dname) +# removeFile should not remove directory +createDir(dname) +try: + removeFile(dname) +except OSError: + echo "Raises" +removeDir(dname) + # test copyDir: createDir("a/b") open("a/b/file.txt", fmWrite).close |