summary refs log tree commit diff stats
path: root/lib/pure/os.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pure/os.nim')
-rwxr-xr-xlib/pure/os.nim9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/pure/os.nim b/lib/pure/os.nim
index 01daf5ad6..408fbd9d4 100755
--- a/lib/pure/os.nim
+++ b/lib/pure/os.nim
@@ -1103,8 +1103,15 @@ proc createDir*(dir: string) {.rtl, extern: "nos$1", tags: [FWriteDir].} =
   ## The full path is created. If this fails, `EOS` is raised. It does **not**
   ## fail if the path already exists because for most usages this does not 
   ## indicate an error.
+  var omitNext = false
+  when defined(doslike):
+    omitNext = isAbsolute(dir)
   for i in 1.. dir.len-1:
-    if dir[i] in {dirsep, altsep}: rawCreateDir(substr(dir, 0, i-1))
+    if dir[i] in {dirsep, altsep}:
+      if omitNext:
+        omitNext = false
+      else:
+        rawCreateDir(substr(dir, 0, i-1))
   rawCreateDir(dir)
 
 proc copyDir*(source, dest: string) {.rtl, extern: "nos$1",