EncodedStream.st
branchjv
changeset 18768 99079a967eb0
parent 18192 32a7c53ef4d0
parent 18763 3c3396b65a02
child 18883 765cf9dca720
--- a/EncodedStream.st	Fri Sep 25 22:01:07 2015 +0100
+++ b/EncodedStream.st	Sat Sep 26 06:57:11 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