summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/pure/os.nim4
-rw-r--r--tests/stdlib/tos.nim9
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