[squeak-dev] The Inbox: Multilingual-ul.145.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue May 17 15:40:13 UTC 2011
A new version of Multilingual was added to project The Inbox:
http://source.squeak.org/inbox/Multilingual-ul.145.mcz
==================== Summary ====================
Name: Multilingual-ul.145
Author: ul
Time: 17 May 2011, 5:27:25.14 pm
UUID: 2c9cec36-7131-3547-8e1d-89f34263b8af
Ancestors: Multilingual-ul.144
Ensure that #nextPut:toStream: always returns it's first argument like all other #nextPut: variants.
=============== Diff against Multilingual-ul.144 ===============
Item was changed:
----- Method: ByteTextConverter>>nextPut:toStream: (in category 'conversion') -----
nextPut: aCharacter toStream: aStream
| charCode |
+ aStream isBinary ifTrue: [ ^aCharacter storeBinaryOn: aStream ].
- aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
(charCode := aCharacter charCode) < 256
ifFalse: [ aStream basicNextPut: (Character value: (self encode: charCode)) ]
ifTrue: [
(latin1Encodings at: charCode + 1)
ifNil: [ aStream basicNextPut: aCharacter ]
ifNotNil: [ :encodedString | aStream basicNextPutAll: encodedString ] ].
+ ^aCharacter!
- ^aStream!
Item was changed:
----- Method: CompoundTextConverter>>nextPut:toStream: (in category 'conversion') -----
nextPut: aCharacter toStream: aStream
| ascii leadingChar class |
aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
aCharacter isTraditionalDomestic ifFalse: [
class := (EncodedCharSet charsetAt: aCharacter leadingChar) traditionalCharsetClass.
ascii := (class charFromUnicode: aCharacter asUnicode) charCode.
leadingChar := class leadingChar.
] ifTrue: [
ascii := aCharacter charCode.
leadingChar := aCharacter leadingChar.
].
self nextPutValue: ascii toStream: aStream withShiftSequenceIfNeededForLeadingChar: leadingChar.
+ ^aCharacter
!
Item was changed:
----- Method: EUCTextConverter>>nextPut:toStream: (in category 'conversion') -----
nextPut: aCharacter toStream: aStream
| value leadingChar nonUnicodeChar value1 value2 |
aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
value := aCharacter charCode.
leadingChar := aCharacter leadingChar.
(leadingChar = 0 and: [value < 128]) ifTrue: [
+ ^aStream basicNextPut: (Character value: value).
- aStream basicNextPut: (Character value: value).
- ^ aStream
].
(128 <= value and: [value < 256]) ifTrue: [^ aStream].
aCharacter isTraditionalDomestic ifFalse: [
nonUnicodeChar := self nonUnicodeClass charFromUnicode: value.
] ifTrue: [
nonUnicodeChar :=(Character value: value)
].
nonUnicodeChar ifNotNil: [
value := nonUnicodeChar charCode.
value1 := value // 94 + 161.
value2 := value \\ 94 + 161.
aStream basicNextPut: (Character value: value1).
aStream basicNextPut: (Character value: value2).
+ ].
+ ^aCharacter
- ^ aStream
- ]
!
Item was changed:
----- Method: ShiftJISTextConverter>>nextPut:toStream: (in category 'conversion') -----
nextPut: aCharacter toStream: aStream
| value leadingChar aChar |
aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
aCharacter isTraditionalDomestic ifTrue: [
aChar := aCharacter.
value := aCharacter charCode.
] ifFalse: [
value := aCharacter charCode.
(16rFF61 <= value and: [value <= 16rFF9F]) ifTrue: [
+ ^aStream basicNextPut: (self sjisKatakanaFor: value).
- aStream basicNextPut: (self sjisKatakanaFor: value).
- ^ aStream
].
aChar := JISX0208 charFromUnicode: value.
aChar ifNil: [^ aStream].
value := aChar charCode.
].
leadingChar := aChar leadingChar.
leadingChar = 0 ifTrue: [
+ ^aStream basicNextPut: (Character value: value).
- aStream basicNextPut: (Character value: value).
- ^ aStream.
].
leadingChar == self leadingChar ifTrue: [
| upper lower |
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).
aStream basicNextPut: (Character value: lower).
- ^ aStream
].
+ ^aCharacter
!
Item was changed:
----- Method: UTF16TextConverter>>nextPut:toStream: (in category 'conversion') -----
nextPut: aCharacter toStream: aStream
| v low high |
aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
(self useByteOrderMark and: [byteOrderMarkDone isNil]) ifTrue: [
self next16BitValue: (16rFEFF) toStream: aStream.
byteOrderMarkDone := true.
].
v := aCharacter charCode.
v > 16rFFFF ifFalse: [
self next16BitValue: v toStream: aStream.
- ^ self.
] ifTrue: [
v := v - 16r10000.
low := (v \\ 16r400) + 16rDC00.
high := (v // 16r400) + 16rD800.
self next16BitValue: high toStream: aStream.
self next16BitValue: low toStream: aStream.
+ ].
+ ^aCharacter.
+ !
- ]!
Item was changed:
----- Method: UTF8TextConverter>>nextPut:toStream: (in category 'conversion') -----
nextPut: aCharacter toStream: aStream
| nBytes mask shift ucs2code |
+ aStream isBinary ifTrue: [ ^aCharacter storeBinaryOn: aStream ].
+ ucs2code := aCharacter asUnicode ifNil: [ ^aCharacter ].
- aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
- ucs2code := aCharacter asUnicode ifNil: [ ^aStream ].
ucs2code < 256 ifTrue: [
(latin1Encodings at: ucs2code + 1)
ifNil: [ aStream basicNextPut: aCharacter ]
ifNotNil: [ :encodedString | aStream basicNextPutAll: encodedString ].
+ ^aCharacter ].
- ^aStream ].
nBytes := ucs2code highBit + 3 // 5.
mask := #[128 192 224 240 248 252 254 255] at: nBytes.
shift := nBytes - 1 * -6.
aStream basicNextPut: (Character value: (ucs2code bitShift: shift) + mask).
+ 2 to: nBytes do: [ :i |
- 2 to: nBytes do: [:i |
shift := shift + 6.
+ aStream basicNextPut: (
+ Character value: ((ucs2code bitShift: shift) bitAnd: 63) + 128) ].
+ ^aCharacter.
- aStream basicNextPut: (Character value: ((ucs2code bitShift: shift) bitAnd: 63) + 128).
- ].
-
- ^ aStream.
!
More information about the Squeak-dev
mailing list
|