r5408: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 30 Jul 2003 22:31:14 +0000 (22:31 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Wed, 30 Jul 2003 22:31:14 +0000 (22:31 +0000)
io.lisp

diff --git a/io.lisp b/io.lisp
index 19002048f5d5554f406ddab4355b58d13f8a2ffe..9c591c7ca368558de15c90e67e47f52fc0fd59dd 100644 (file)
--- a/io.lisp
+++ b/io.lisp
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: io.lisp,v 1.12 2003/07/30 17:32:26 kevin Exp $
+;;;; $Id: io.lisp,v 1.13 2003/07/30 22:23:25 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
   #-allegro (write-string (write-to-string n) s))
 
 
+#+openmcl
+(defun open-device-stream (path direction)
+  (let* ((mode (ecase direction
+                (:input #$O_RDONLY)
+                (:output #$O_WRONLY)
+                (:io #$O_RDWR)))
+        (fd (ccl::fd-open (ccl::native-translated-namestring path) mode)))
+    (if (< fd 0)
+       (ccl::signal-file-error fd path)
+       (ccl::make-fd-stream fd :direction direction))))
+
+
 (defun null-output-stream ()
+  #-openmcl
+  (when (probe-file #p"/dev/null")
+    (open #p"/dev/null" :direction :output :if-exists :overwrite))
+  #+openmcl
   (when (probe-file #p"/dev/null")
-    (open #p"/dev/null" :direction :output :if-exists :overwrite)))
+    (open-device-stream #p"/dev/null" :output))  
+  )