summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-x.gitignore1
-rwxr-xr-xlib/pure/os.nim9
2 files changed, 9 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 81bfbad89..c6300504c 100755
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,7 @@ compiler/c2nim/nimcache
 compiler/pas2nim/nimcache
 misc
 doc/*.html
+doc/*.pdf
 doc/*.idx
 /web/upload
 koch
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",