[squeak-dev] The Trunk: Multilingual-mt.267.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 9 10:26:56 UTC 2022


Marcel Taeumel uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-mt.267.mcz

==================== Summary ====================

Name: Multilingual-mt.267
Author: mt
Time: 9 March 2022, 11:26:54.12999 am
UUID: 57708974-d740-2747-a900-f8c2a981c1f2
Ancestors: Multilingual-mt.266

Fixes latin-1 tables for EUC converters. Makes the CNGBTextConverter available under the more consistent name EUCCNTextConverter.

=============== Diff against Multilingual-mt.266 ===============

Item was changed:
+ EUCCNTextConverter subclass: #CNGBTextConverter
- EUCTextConverter subclass: #CNGBTextConverter
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Multilingual-TextConversion'!
- 
- !CNGBTextConverter commentStamp: '<historical>' prior: 0!
- Text converter for Simplified Chinese variation of EUC.  (Even though the name doesn't look so, it is what it is.)!

Item was removed:
- ----- Method: CNGBTextConverter class>>encodingNames (in category 'utilities') -----
- encodingNames 
- 
- 	^ #('gb2312' ) copy
- !

Item was removed:
- ----- Method: CNGBTextConverter>>languageEnvironment (in category 'private') -----
- languageEnvironment
- 
- 	^ SimplifiedChineseEnvironment.
- !

Item was removed:
- ----- Method: CNGBTextConverter>>leadingChar (in category 'private') -----
- leadingChar
- 
- 	^ GB2312 leadingChar
- !

Item was added:
+ EUCTextConverter subclass: #EUCCNTextConverter
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'Multilingual-TextConversion'!
+ 
+ !EUCCNTextConverter commentStamp: 'mt 3/9/2022 11:14' prior: 0!
+ Text converter for Simplified Chinese variation of EUC. !

Item was added:
+ ----- Method: EUCCNTextConverter class>>encodingNames (in category 'utilities') -----
+ encodingNames 
+ 
+ 	^ #('gb2312' 'euc-cn') copy!

Item was added:
+ ----- Method: EUCCNTextConverter>>languageEnvironment (in category 'private') -----
+ languageEnvironment
+ 
+ 	^ SimplifiedChineseEnvironment.
+ !

Item was added:
+ ----- Method: EUCCNTextConverter>>leadingChar (in category 'private') -----
+ leadingChar
+ 
+ 	^ GB2312 leadingChar
+ !

Item was added:
+ ----- Method: EUCTextConverter class>>initializeLatin1MapAndEncodings (in category 'class initialization') -----
+ initializeLatin1MapAndEncodings
+ 	
+ 	latin1Map := ByteArray new: 256 withAll: 1.
+ 	latin1Encodings := Array new: 256 withAll: nil.
+ 	0 to: 127 do: [:i | latin1Map at: i+1 put: 0].!

Item was changed:
  ----- Method: EUCTextConverter>>nextPut:toStream: (in category 'conversion') -----
  nextPut: aCharacter toStream: aStream 
  	| charCode leadingChar nonUnicodeChar |
  	aStream isBinary ifTrue: [^aCharacter storeBinaryOn: aStream].
  	charCode := aCharacter charCode.
  	leadingChar := aCharacter leadingChar.
  	(leadingChar = 0 and: [ charCode < 256 ]) ifTrue: [
  		(latin1Encodings at: charCode + 1)
+ 			ifNil: [ (latin1Map at: charCode + 1) = 0 "Really no translation needed."
+ 				ifTrue: [ aStream basicNextPut: aCharacter ]
+ 				ifFalse: [ UndefinedConversion signalFor: charCode toEncoding: self ] ]
- 			ifNil: [ aStream basicNextPut: aCharacter ]
  			ifNotNil: [ :encodedString | aStream basicNextPutAll: encodedString ].
  		^aCharacter ].
  	aCharacter isTraditionalDomestic
  		ifFalse: [ nonUnicodeChar := self nonUnicodeClass charFromUnicode: charCode ]
  		ifTrue: [ nonUnicodeChar := Character value: charCode ].
  	nonUnicodeChar ifNotNil: [
  		charCode := nonUnicodeChar charCode.
  		aStream
  			basicNextPut: (Character value: charCode // 94 + 161);
  			basicNextPut: (Character value: charCode \\ 94 + 161) ].
  	^aCharacter
  !

Item was changed:
+ (PackageInfo named: 'Multilingual') postscript: 'EUCTextConverter withAllSubclassesDo: [:ea | ea initializeTables].'!
- (PackageInfo named: 'Multilingual') postscript: 'KOI8TextConverter withAllSubclassesDo: [:ea | ea initializeTables].'!



More information about the Squeak-dev mailing list