diff -r 4a7349aba15f -r 912e4845d386 CharacterEncoder.st --- a/CharacterEncoder.st Thu Jul 12 20:07:54 2012 +0200 +++ b/CharacterEncoder.st Fri Jul 13 14:46:09 2012 +0200 @@ -1,6 +1,6 @@ " COPYRIGHT (c) 2004 by eXept Software AG - All Rights Reserved + All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the @@ -12,55 +12,55 @@ "{ Package: 'stx:libbasic' }" Object subclass:#CharacterEncoder - instanceVariableNames:'' - classVariableNames:'EncoderClassesByName EncodersByName CachedEncoders LastEncoder - AccessLock NullEncoderInstance Jis7KanjiEscapeSequence - Jis7RomanEscapeSequence JisISO2022EscapeSequence - Jis7KanjiOldEscapeSequence' - poolDictionaries:'' - category:'Collections-Text-Encodings' + instanceVariableNames:'' + classVariableNames:'EncoderClassesByName EncodersByName CachedEncoders LastEncoder + AccessLock NullEncoderInstance Jis7KanjiEscapeSequence + Jis7RomanEscapeSequence JisISO2022EscapeSequence + Jis7KanjiOldEscapeSequence' + poolDictionaries:'' + category:'Collections-Text-Encodings' ! CharacterEncoder subclass:#CompoundEncoder - instanceVariableNames:'decoder encoder' - classVariableNames:'' - poolDictionaries:'' - privateIn:CharacterEncoder + instanceVariableNames:'decoder encoder' + classVariableNames:'' + poolDictionaries:'' + privateIn:CharacterEncoder ! CharacterEncoder subclass:#DefaultEncoder - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:CharacterEncoder + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + privateIn:CharacterEncoder ! CharacterEncoder subclass:#InverseEncoder - instanceVariableNames:'decoder' - classVariableNames:'' - poolDictionaries:'' - privateIn:CharacterEncoder + instanceVariableNames:'decoder' + classVariableNames:'' + poolDictionaries:'' + privateIn:CharacterEncoder ! CharacterEncoder subclass:#NullEncoder - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:CharacterEncoder + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + privateIn:CharacterEncoder ! CharacterEncoder subclass:#OtherEncoding - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:CharacterEncoder + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + privateIn:CharacterEncoder ! CharacterEncoder subclass:#TwoStepEncoder - instanceVariableNames:'encoder1 encoder2' - classVariableNames:'' - poolDictionaries:'' - privateIn:CharacterEncoder + instanceVariableNames:'encoder1 encoder2' + classVariableNames:'' + poolDictionaries:'' + privateIn:CharacterEncoder ! !CharacterEncoder class methodsFor:'documentation'! @@ -68,7 +68,7 @@ copyright " COPYRIGHT (c) 2004 by eXept Software AG - All Rights Reserved + All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the @@ -720,7 +720,7 @@ This happens to be the same as ISO2022-JP's escape sequence." Jis7KanjiEscapeSequence isNil ifTrue:[ - Jis7KanjiEscapeSequence := Character esc asString , '$B'. + Jis7KanjiEscapeSequence := Character esc asString , '$B'. ]. ^ Jis7KanjiEscapeSequence. @@ -741,7 +741,7 @@ "return the escape sequence used to switch to roman in jis7 encoded strings" Jis7RomanEscapeSequence isNil ifTrue:[ - Jis7RomanEscapeSequence := Character esc asString , '(J'. + Jis7RomanEscapeSequence := Character esc asString , '(J'. ]. ^ Jis7RomanEscapeSequence. @@ -753,7 +753,7 @@ "return the escape sequence used to switch to kanji in iso2022 encoded strings" JisISO2022EscapeSequence isNil ifTrue:[ - JisISO2022EscapeSequence := Character esc asString , '&@' , Character esc asString , '$B'. + JisISO2022EscapeSequence := Character esc asString , '&@' , Character esc asString , '$B'. ]. ^ JisISO2022EscapeSequence. ! ! @@ -781,8 +781,8 @@ ISO8859_1 encodeString:(ISO8859_1 decodeString:'hello') ISO8859_5 decodeString:(String - with:(Character value:16rE4) - with:(Character value:16rE0)) + with:(Character value:16rE4) + with:(Character value:16rE0)) " ! @@ -797,18 +797,18 @@ oldEncoding == newEncoding ifTrue:[^ codePoint]. oldEncoding == #'unicode' ifTrue:[ - newEncoding == #'iso8859-1' ifTrue:[ - codePoint <= 16rFF ifTrue:[ - ^ codePoint - ] - ] + newEncoding == #'iso8859-1' ifTrue:[ + codePoint <= 16rFF ifTrue:[ + ^ codePoint + ] + ] ]. newEncoding == #'unicode' ifTrue:[ - oldEncoding == #'iso8859-1' ifTrue:[ - codePoint <= 16rFF ifTrue:[ - ^ codePoint - ] - ] + oldEncoding == #'iso8859-1' ifTrue:[ + codePoint <= 16rFF ifTrue:[ + ^ codePoint + ] + ] ]. encoder := self encoderToEncodeFrom:oldEncoding into:newEncoding. ^ encoder encode:codePoint. @@ -835,18 +835,18 @@ oldEncoding == newEncoding ifTrue:[^ aString]. oldEncoding == #'unicode' ifTrue:[ - newEncoding == #'iso8859-1' ifTrue:[ - aString bitsPerCharacter == 8 ifTrue:[ - ^ aString - ] - ] + newEncoding == #'iso8859-1' ifTrue:[ + aString bitsPerCharacter == 8 ifTrue:[ + ^ aString + ] + ] ]. newEncoding == #'unicode' ifTrue:[ - oldEncoding == #'iso8859-1' ifTrue:[ - aString bitsPerCharacter == 8 ifTrue:[ - ^ aString - ] - ] + oldEncoding == #'iso8859-1' ifTrue:[ + aString bitsPerCharacter == 8 ifTrue:[ + ^ aString + ] + ] ]. encoder := self encoderToEncodeFrom:oldEncoding into:newEncoding. @@ -870,10 +870,10 @@ self initialize. self isAbstract ifFalse:[ - (self mapFileURL1_relativePathName notNil - or:[ self mapFileURL2_relativePathName notNil]) ifTrue:[ - self class removeSelector:#mapping. - ]. + (self mapFileURL1_relativePathName notNil + or:[ self mapFileURL2_relativePathName notNil]) ifTrue:[ + self class removeSelector:#mapping. + ]. ]. " @@ -914,7 +914,7 @@ rel := self mapFileURL1_relativePathName. rel isNil ifTrue:[ - ^ nil + ^ nil ]. ^ 'http://www.unicode.org/Public/MAPPINGS/' , rel ! @@ -926,7 +926,7 @@ rel := self mapFileURL2_relativePathName. rel isNil ifTrue:[ - ^ nil + ^ nil ]. ^ 'http://std.dkuug.dk/i18n/charmaps/' , rel ! ! @@ -1349,23 +1349,25 @@ sender := thisContext sender. ((sender selector == #encode:) or:[sender selector == #decode:]) ifFalse:[ - badCodePoint := sender methodHome argAt:1 + badCodePoint := sender methodHome argAt:1 ]. ^ (EncodingError new) - defaultValue:(self defaultEncoderValue); - parameter:badCodePoint; - messageText:'unrepresentable unicode'; - suspendedContext:sender; - raiseRequest + defaultValue:(self defaultEncoderValue); + parameter:badCodePoint; + messageText:'unrepresentable code (some character cannot be represented)'; + suspendedContext:sender; + raiseRequest + + "Modified: / 12-07-2012 / 20:36:37 / cg" ! ! !CharacterEncoder methodsFor:'printing'! printOn:aStream aStream - nextPutAll:(self nameOfDecodedCode); - nextPutAll:'->'; - nextPutAll:(self nameOfEncoding) + nextPutAll:(self nameOfDecodedCode); + nextPutAll:'->'; + nextPutAll:(self nameOfEncoding) ! ! !CharacterEncoder methodsFor:'private'! @@ -1434,9 +1436,9 @@ " A compoundEncoder uses two real encoders; to encode: - string -> decoder(encode) -> encoder -> result + string -> decoder(encode) -> encoder -> result to decode: - string -> encoder -> decoder -> result + string -> encoder -> decoder -> result |e| @@ -1478,8 +1480,8 @@ printOn:aStream aStream - nextPutAll:(decoder nameOfEncoding); - nextPutAll:'->'. + nextPutAll:(decoder nameOfEncoding); + nextPutAll:'->'. "/ nextPutAll:(decoder nameOfDecodedCode); "/ nextPutAll:'->'; "/ nextPutAll:(encoder nameOfEncoding) @@ -1531,9 +1533,9 @@ printOn:aStream aStream - nextPutAll:(decoder nameOfEncoding); - nextPutAll:'->'; - nextPutAll:(decoder nameOfDecodedCode) + nextPutAll:(decoder nameOfEncoding); + nextPutAll:'->'; + nextPutAll:(decoder nameOfDecodedCode) ! ! !CharacterEncoder::InverseEncoder methodsFor:'queries'! @@ -1594,9 +1596,9 @@ " A twoStepEncoder uses two real encoders; to encode: - string -> encoder1(encode) -> encoder2(encode) -> result + string -> encoder1(encode) -> encoder2(encode) -> result to decode: - string -> encoder2(decode) -> encoder1(decode) -> result + string -> encoder2(decode) -> encoder1(decode) -> result " ! ! @@ -1631,11 +1633,11 @@ printOn:aStream aStream - nextPutAll:(encoder1 nameOfDecodedCode); - nextPutAll:'->'; - nextPutAll:(encoder1 nameOfEncoding); - nextPutAll:'->'; - nextPutAll:(encoder2 nameOfEncoding) + nextPutAll:(encoder1 nameOfDecodedCode); + nextPutAll:'->'; + nextPutAll:(encoder1 nameOfEncoding); + nextPutAll:'->'; + nextPutAll:(encoder2 nameOfEncoding) ! ! !CharacterEncoder::TwoStepEncoder methodsFor:'queries'! @@ -1663,11 +1665,11 @@ !CharacterEncoder class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.117 2012-07-12 17:46:42 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.118 2012-07-13 12:46:09 cg Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.117 2012-07-12 17:46:42 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.118 2012-07-13 12:46:09 cg Exp $' ! ! CharacterEncoder initialize!