#REFACTORING
authorStefan Vogel <sv@exept.de>
Thu, 24 Sep 2015 15:22:09 +0200
changeset 18763 3c3396b65a02
parent 18762 4b2d5801f66c
child 18764 9c2d1deb0b90
#REFACTORING class: EncodedStream added: #stream:encoding: changed: #decodedStreamFor:
EncodedStream.st
--- a/EncodedStream.st	Thu Sep 24 15:21:41 2015 +0200
+++ b/EncodedStream.st	Thu Sep 24 15:22:09 2015 +0200
@@ -57,6 +57,18 @@
      s := EncodedStream stream:Transcript encoder:(CharacterEncoder encoderToEncodeFrom:#utf8 into:#unicode).
      s nextPutAll:('öäü' utf8Encoded)
     "
+!
+
+stream:streamArg encoding:encodingSymbol
+    ^ self stream:streamArg encoder:(CharacterEncoder encoderFor:encodingSymbol)
+
+    "
+     |baseStream s|
+     baseStream := '' readWriteStream.
+     s := EncodedStream stream:baseStream encoding:#utf8.
+     s nextPutAll:'öäü'.
+     baseStream reset; contents.
+    "
 ! !
 
 !EncodedStream class methodsFor:'Compatibility-VW5.4'!
@@ -74,16 +86,11 @@
      and return an appropriate encoded string, which does the decoding
      on the fly. Used mostly to read UTF8 files (source code)"
 
-    |encodingSymbol decoder decodedStream|
+    |encodingSymbol decodedStream|
 
     aStream inputStream isPositionable ifTrue:[
         encodingSymbol := CharacterEncoder guessEncodingOfStream:aStream inputStream.
-        decoder := CharacterEncoder encoderFor:encodingSymbol.
-        decoder isNil ifTrue:[
-            "/ ascii or iso8895-1
-            ^ aStream
-        ].
-        decodedStream := self stream:aStream encoder:decoder.
+        decodedStream := self stream:aStream encoding:encodingSymbol.
         "JV@2012-03-27: NO, DO NOT CHANGE POSITION!! Caller might be interested
                         in all data!!!!!!"
         "/decodedStream skipEncodingChunk.
@@ -585,11 +592,11 @@
 !EncodedStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/EncodedStream.st,v 1.41 2015-03-26 16:20:12 cg Exp $'
+    ^ '$Header$'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/EncodedStream.st,v 1.41 2015-03-26 16:20:12 cg Exp $'
+    ^ '$Header$'
 !
 
 version_SVN