]> gitweb.factorcode.org Git - factor.git/commitdiff
io: error stream combinators
authorJoe Groff <arcata@gmail.com>
Tue, 18 Oct 2011 21:28:41 +0000 (14:28 -0700)
committerJoe Groff <arcata@gmail.com>
Tue, 18 Oct 2011 22:13:33 +0000 (15:13 -0700)
* with-error-stream(*)
* with-output+error-stream(*) -- sets output and error stream to same stream
* with-output>error -- sets output stream to error stream for scope
* with-input-output+error-streams(*) -- like with-streams, but sets output and error to same stream

core/io/io.factor

index ae7235f5b6b6c967b55e51f7cf68a403c6ff1cc4..e7e16371ad27657168e567938f74ef13cb13c734 100644 (file)
@@ -62,6 +62,21 @@ SYMBOL: error-stream
 : with-output-stream ( stream quot -- )
     [ with-output-stream* ] curry with-disposal ; inline
 
+: with-error-stream* ( stream quot -- )
+    error-stream swap with-variable ; inline
+
+: with-error-stream ( stream quot -- )
+    [ with-error-stream* ] curry with-disposal ; inline
+
+: with-output+error-stream* ( stream quot -- )
+    [ dup ] dip [ with-error-stream* ] curry with-output-stream* ; inline
+
+: with-output+error-stream ( stream quot -- )
+    [ with-output+error-stream* ] curry with-disposal ; inline
+
+: with-output>error ( quot -- )
+    error-stream get swap with-output-stream* ; inline
+
 : with-streams* ( input output quot -- )
     swapd [ with-output-stream* ] curry with-input-stream* ; inline
 
@@ -71,6 +86,12 @@ SYMBOL: error-stream
     #! buffer before closing the FD.
     swapd [ with-output-stream ] curry with-input-stream ; inline
 
+: with-input-output+error-streams* ( input output+error quot -- )
+    swapd [ with-output+error-stream* ] curry with-input-stream* ; inline
+
+: with-input-output+error-streams ( input output+error quot -- )
+    swapd [ with-output+error-stream ] curry with-input-stream ; inline
+
 : print ( str -- ) output-stream get stream-print ; inline
 
 : bl ( -- ) " " write ;