summary refs log tree commit diff stats
path: root/lib/system/sysio.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-09-14 11:27:14 +0200
committerAraq <rumpf_a@web.de>2014-09-14 11:27:14 +0200
commit05f09fafcffb8578b03fb719e7f8f0cdbae7ed99 (patch)
treeb2541e03fa1b7e22e54dfe14b268173a997a0447 /lib/system/sysio.nim
parent838871b4d9ce4c6117ce8c8ec7aec744fcd5a264 (diff)
downloadNim-05f09fafcffb8578b03fb719e7f8f0cdbae7ed99.tar.gz
fixed 'system.open' bug
Diffstat (limited to 'lib/system/sysio.nim')
-rw-r--r--lib/system/sysio.nim14
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/system/sysio.nim b/lib/system/sysio.nim
index 56de5e6e8..7908fbe4d 100644
--- a/lib/system/sysio.nim
+++ b/lib/system/sysio.nim
@@ -215,13 +215,13 @@ proc open(f: var File, filename: string,
           mode: FileMode = fmRead,
           bufSize: int = -1): bool =
   var p: pointer = fopen(filename, FormatOpen[mode])
-  result = (p != nil)
-  f = cast[File](p)
-  if bufSize > 0 and bufSize <= high(cint).int:
-    if setvbuf(f, nil, IOFBF, bufSize.cint) != 0'i32:
-      sysFatal(OutOfMemError, "out of memory")
-  elif bufSize == 0:
-    discard setvbuf(f, nil, IONBF, 0)
+  if p != nil:
+    result = true
+    f = cast[File](p)
+    if bufSize > 0 and bufSize <= high(cint).int:
+      discard setvbuf(f, nil, IOFBF, bufSize.cint)
+    elif bufSize == 0:
+      discard setvbuf(f, nil, IONBF, 0)
 
 proc reopen(f: File, filename: string, mode: FileMode = fmRead): bool = 
   var p: pointer = freopen(filename, FormatOpen[mode], f)