diff options
-rw-r--r-- | src/stable/sio.cpp | 6 | ||||
-rw-r--r-- | src/stable/sio.h | 7 | ||||
-rw-r--r-- | src/stable/stdstream.cpp | 7 | ||||
-rw-r--r-- | src/stable/stdstream.h | 12 | ||||
-rw-r--r-- | src/tests/print.cpp | 2 |
5 files changed, 26 insertions, 8 deletions
diff --git a/src/stable/sio.cpp b/src/stable/sio.cpp index 66db152..8ecb4ad 100644 --- a/src/stable/sio.cpp +++ b/src/stable/sio.cpp | |||
@@ -6,9 +6,13 @@ | |||
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include "bu/sio.h" | 8 | #include "bu/sio.h" |
9 | #include "bu/streamstack.h" | ||
10 | #include "bu/stdstream.h" | ||
9 | 11 | ||
10 | Bu::StdStream Bu::sioRaw; | 12 | Bu::StreamStack Bu::sioRaw( new Bu::StdStream() ); |
11 | Bu::Formatter Bu::sio( Bu::sioRaw ); | 13 | Bu::Formatter Bu::sio( Bu::sioRaw ); |
14 | Bu::StreamStack Bu::serrRaw( new Bu::StdStream( Bu::StdStream::StdError ) ); | ||
15 | Bu::Formatter Bu::serr( Bu::serrRaw ); | ||
12 | 16 | ||
13 | class PrintEndAction : public Bu::String::FormatProxyEndAction | 17 | class PrintEndAction : public Bu::String::FormatProxyEndAction |
14 | { | 18 | { |
diff --git a/src/stable/sio.h b/src/stable/sio.h index d9761b2..2d4a104 100644 --- a/src/stable/sio.h +++ b/src/stable/sio.h | |||
@@ -8,13 +8,16 @@ | |||
8 | #ifndef BU_SIO_H | 8 | #ifndef BU_SIO_H |
9 | #define BU_SIO_H | 9 | #define BU_SIO_H |
10 | 10 | ||
11 | #include "bu/stdstream.h" | ||
12 | #include "bu/formatter.h" | 11 | #include "bu/formatter.h" |
13 | 12 | ||
14 | namespace Bu | 13 | namespace Bu |
15 | { | 14 | { |
16 | extern Bu::StdStream sioRaw; | 15 | class StreamStack; |
16 | |||
17 | extern Bu::StreamStack sioRaw; | ||
17 | extern Bu::Formatter sio; | 18 | extern Bu::Formatter sio; |
19 | extern Bu::StreamStack serrRaw; | ||
20 | extern Bu::Formatter serr; | ||
18 | 21 | ||
19 | Bu::String::FormatProxy print( Bu::Stream &s, const Bu::String &str ); | 22 | Bu::String::FormatProxy print( Bu::Stream &s, const Bu::String &str ); |
20 | Bu::String::FormatProxy print( const Bu::String &str ); | 23 | Bu::String::FormatProxy print( const Bu::String &str ); |
diff --git a/src/stable/stdstream.cpp b/src/stable/stdstream.cpp index 9bc22f2..25ad8d4 100644 --- a/src/stable/stdstream.cpp +++ b/src/stable/stdstream.cpp | |||
@@ -8,7 +8,8 @@ | |||
8 | #include <stdio.h> | 8 | #include <stdio.h> |
9 | #include "bu/stdstream.h" | 9 | #include "bu/stdstream.h" |
10 | 10 | ||
11 | Bu::StdStream::StdStream() | 11 | Bu::StdStream::StdStream( OutMode eOut ) : |
12 | eOut( eOut ) | ||
12 | { | 13 | { |
13 | } | 14 | } |
14 | 15 | ||
@@ -27,7 +28,7 @@ Bu::size Bu::StdStream::read( void *pBuf, Bu::size nBytes ) | |||
27 | 28 | ||
28 | Bu::size Bu::StdStream::write( const void *pBuf, Bu::size nBytes ) | 29 | Bu::size Bu::StdStream::write( const void *pBuf, Bu::size nBytes ) |
29 | { | 30 | { |
30 | return fwrite( pBuf, 1, nBytes, stdout ); | 31 | return fwrite( pBuf, 1, nBytes, eOut==StdOut?stdout:stderr ); |
31 | } | 32 | } |
32 | 33 | ||
33 | Bu::size Bu::StdStream::tell() | 34 | Bu::size Bu::StdStream::tell() |
@@ -59,7 +60,7 @@ bool Bu::StdStream::isOpen() | |||
59 | 60 | ||
60 | void Bu::StdStream::flush() | 61 | void Bu::StdStream::flush() |
61 | { | 62 | { |
62 | fflush( stdout ); | 63 | fflush( eOut==StdOut?stdout:stderr ); |
63 | } | 64 | } |
64 | 65 | ||
65 | bool Bu::StdStream::canRead() | 66 | bool Bu::StdStream::canRead() |
diff --git a/src/stable/stdstream.h b/src/stable/stdstream.h index c3ab153..d71d95d 100644 --- a/src/stable/stdstream.h +++ b/src/stable/stdstream.h | |||
@@ -19,7 +19,12 @@ namespace Bu | |||
19 | class StdStream : public Stream | 19 | class StdStream : public Stream |
20 | { | 20 | { |
21 | public: | 21 | public: |
22 | StdStream(); | 22 | enum OutMode |
23 | { | ||
24 | StdOut, | ||
25 | StdError | ||
26 | }; | ||
27 | StdStream( OutMode eOut=StdOut ); | ||
23 | virtual ~StdStream(); | 28 | virtual ~StdStream(); |
24 | 29 | ||
25 | virtual void close(); | 30 | virtual void close(); |
@@ -43,7 +48,10 @@ namespace Bu | |||
43 | virtual void setSize( size iSize ); | 48 | virtual void setSize( size iSize ); |
44 | virtual size getSize() const; | 49 | virtual size getSize() const; |
45 | virtual size getBlockSize() const; | 50 | virtual size getBlockSize() const; |
46 | virtual Bu::String getLocation() const; | 51 | virtual Bu::String getLocation() const; |
52 | |||
53 | private: | ||
54 | OutMode eOut; | ||
47 | }; | 55 | }; |
48 | } | 56 | } |
49 | 57 | ||
diff --git a/src/tests/print.cpp b/src/tests/print.cpp index 7d55554..7a2fab2 100644 --- a/src/tests/print.cpp +++ b/src/tests/print.cpp | |||
@@ -8,6 +8,8 @@ int main() | |||
8 | arg("totally").arg( 47.2 ); | 8 | arg("totally").arg( 47.2 ); |
9 | Bu::println("This is unsubstituted?"); | 9 | Bu::println("This is unsubstituted?"); |
10 | 10 | ||
11 | Bu::serr << "This is error text." << Bu::serr.nl; | ||
12 | |||
11 | return 0; | 13 | return 0; |
12 | } | 14 | } |
13 | 15 | ||