SplittingWriteStream.st
changeset 3532 d4d9fa6ab6cf
parent 3470 850093c8df57
child 4275 f19e46851a8e
--- a/SplittingWriteStream.st	Fri Mar 13 11:37:49 2015 +0100
+++ b/SplittingWriteStream.st	Fri Mar 13 13:38:16 2015 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "{ Package: 'stx:libbasic2' }"
 
 "{ NameSpace: Smalltalk }"
@@ -90,6 +92,30 @@
 
 ! !
 
+!SplittingWriteStream methodsFor:'redirect messages'!
+
+doesNotUnderstand:aMessage
+    "if my superclass implements the message, it can be forwarded to both streams."
+
+    (outStream2 class canUnderstand:aMessage selector) ifTrue:[
+        aMessage sendTo:outStream1.
+        ^ aMessage sendTo:outStream2.
+    ].
+    ^ super doesNotUnderstand:aMessage.
+
+    "
+        |sp s1 s2|
+
+        s1 := TextStream on:''.
+        s2 := TextStream on:''.
+
+        sp := SplittingWriteStream on:s1 and:s2.
+
+        sp nextPutAllText:('ABC' allBold); closeRun.
+        s2 contents inspect.
+    "
+! !
+
 !SplittingWriteStream methodsFor:'writing'!
 
 clear
@@ -139,6 +165,6 @@
 !SplittingWriteStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/SplittingWriteStream.st,v 1.4 2015-01-27 13:54:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/SplittingWriteStream.st,v 1.5 2015-03-13 12:38:16 stefan Exp $'
 ! !