[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