Levente Uzonyi uploaded a new version of Multilingual to project The Trunk: http://source.squeak.org/trunk/Multilingual-ul.151.mcz
==================== Summary ====================
Name: Multilingual-ul.151 Author: ul Time: 22 May 2011, 10:12:27.443 pm UUID: e47408e2-bdb2-ab44-83f0-82ba2d25b64d Ancestors: Multilingual-ul.150
All TextConverters pass the line end conversion test.
=============== Diff against Multilingual-ul.150 ===============
Item was changed: ----- Method: CompoundTextConverter>>nextPut:toStream: (in category 'conversion') ----- nextPut: aCharacter toStream: aStream
+ | charCode leadingChar class | - | ascii leadingChar class | aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream]. aCharacter isTraditionalDomestic ifFalse: [ class := (EncodedCharSet charsetAt: aCharacter leadingChar) traditionalCharsetClass. + charCode := (class charFromUnicode: aCharacter asUnicode) charCode. - ascii := (class charFromUnicode: aCharacter asUnicode) charCode. leadingChar := class leadingChar. ] ifTrue: [ + charCode := aCharacter charCode. - ascii := aCharacter charCode. leadingChar := aCharacter leadingChar. ]. + charCode < 256 ifTrue: [ + (latin1Encodings at: charCode + 1) + ifNil: [ aStream basicNextPut: aCharacter ] + ifNotNil: [ :encodedString | aStream basicNextPutAll: encodedString ]. + ^aCharacter ]. + self + nextPutValue: charCode + toStream: aStream + withShiftSequenceIfNeededForLeadingChar: leadingChar. - - self nextPutValue: ascii toStream: aStream withShiftSequenceIfNeededForLeadingChar: leadingChar. ^aCharacter !
Item was changed: ----- Method: EUCTextConverter>>nextPut:toStream: (in category 'conversion') ----- nextPut: aCharacter toStream: aStream + | charCode leadingChar nonUnicodeChar | - | value leadingChar nonUnicodeChar value1 value2 | aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream]. + charCode := aCharacter charCode. - value := aCharacter charCode. leadingChar := aCharacter leadingChar. + (leadingChar = 0 and: [ charCode < 256 ]) ifTrue: [ + (latin1Encodings at: charCode + 1) + ifNil: [ aStream basicNextPut: aCharacter ] + ifNotNil: [ :encodedString | aStream basicNextPutAll: encodedString ]. + ^aCharacter ]. + aCharacter isTraditionalDomestic + ifFalse: [ nonUnicodeChar := self nonUnicodeClass charFromUnicode: charCode ] + ifTrue: [ nonUnicodeChar := Character value: charCode ]. - (leadingChar = 0 and: [value < 128]) ifTrue: [ - ^aStream basicNextPut: (Character value: value). - ]. - - (128 <= value and: [value < 256]) ifTrue: [^ aStream]. - aCharacter isTraditionalDomestic ifFalse: [ - nonUnicodeChar := self nonUnicodeClass charFromUnicode: value. - ] ifTrue: [ - nonUnicodeChar :=(Character value: value) - ]. nonUnicodeChar ifNotNil: [ + charCode := nonUnicodeChar charCode. + aStream + basicNextPut: (Character value: charCode // 94 + 161); + basicNextPut: (Character value: charCode \ 94 + 161) ]. - value := nonUnicodeChar charCode. - value1 := value // 94 + 161. - value2 := value \ 94 + 161. - aStream basicNextPut: (Character value: value1). - aStream basicNextPut: (Character value: value2). - ]. ^aCharacter !
Item was changed: ----- Method: ShiftJISTextConverter>>nextPut:toStream: (in category 'conversion') ----- + nextPut: aCharacter toStream: aStream + + | charCode leadingChar aChar | - nextPut: aCharacter toStream: aStream - | value leadingChar aChar | aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream]. + aChar := aCharacter. + charCode := aCharacter charCode. + aChar isTraditionalDomestic ifFalse: [ + (16rFF61 <= charCode and: [charCode <= 16rFF9F]) ifTrue: [ + ^aStream basicNextPut: (self sjisKatakanaFor: charCode) ]. + aChar := (JISX0208 charFromUnicode: charCode) ifNil: [ + ^aCharacter "an error or nil may be better" ]. + charCode := aChar charCode ]. + (leadingChar := aChar leadingChar) = 0 ifTrue: [ + charCode < 256 ifTrue: [ + (latin1Encodings at: charCode + 1) + ifNil: [ aStream basicNextPut: aChar ] + ifNotNil: [ :encodedString | aStream basicNextPutAll: encodedString ]. + ^aChar ]. + ^aStream basicNextPut: aChar ]. + leadingChar = self leadingChar ifTrue: [ - aCharacter isTraditionalDomestic ifTrue: [ - aChar := aCharacter. - value := aCharacter charCode. - ] ifFalse: [ - value := aCharacter charCode. - (16rFF61 <= value and: [value <= 16rFF9F]) ifTrue: [ - ^aStream basicNextPut: (self sjisKatakanaFor: value). - ]. - aChar := JISX0208 charFromUnicode: value. - aChar ifNil: [^ aStream]. - value := aChar charCode. - ]. - leadingChar := aChar leadingChar. - leadingChar = 0 ifTrue: [ - ^aStream basicNextPut: (Character value: value). - ]. - leadingChar == self leadingChar ifTrue: [ | upper lower | + upper := charCode // 94 + 33. + lower := charCode \ 94 + 33. - upper := value // 94 + 33. - lower := value \ 94 + 33. upper \ 2 = 1 ifTrue: [ upper := upper + 1 / 2 + 112. lower := lower + 31 ] ifFalse: [ upper := upper / 2 + 112. lower := lower + 125 ]. upper >= 160 ifTrue: [upper := upper + 64]. lower >= 127 ifTrue: [lower := lower + 1]. + aStream + basicNextPut: (Character value: upper); + basicNextPut: (Character value: lower) ]. + ^aChar - aStream basicNextPut: (Character value: upper). - aStream basicNextPut: (Character value: lower). - ]. - ^aCharacter !
packages@lists.squeakfoundation.org