diff -r 642ad83732c9 -r 99079a967eb0 EncodedStream.st --- 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