From d61f335fee3359131969c1bd2342cfedbda47d3f Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 18 Oct 2011 14:28:41 -0700 Subject: [PATCH] io: error stream combinators * 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 | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/io/io.factor b/core/io/io.factor index ae7235f5b6..e7e16371ad 100644 --- a/core/io/io.factor +++ b/core/io/io.factor @@ -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 ;