[squeak-dev] The Trunk: Multilingual-nice.237.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Apr 6 17:38:16 UTC 2018


Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.237.mcz

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

Name: Multilingual-nice.237
Author: nice
Time: 6 April 2018, 7:37:57.89255 pm
UUID: 08e8ac08-7ec9-9f43-a965-11b791a7cfb4
Ancestors: Multilingual-tonyg.236

Add some fixes required for the Japanese locale to function properly.

>From http://bugs.squeak.org/view.php?id=7864

Note:
- I have replace the patch of copy by a patch of postCopy which is the correct way to do it in modern Squeak.
- i have not integrated the crossedX patch yet because I need to understand the bug first, so I am waiting for feedback

=============== Diff against Multilingual-tonyg.236 ===============

Item was changed:
  ----- Method: JapaneseEnvironment class>>clipboardInterpreterClass (in category 'subclass responsibilities') -----
  clipboardInterpreterClass
  	| platformName osVersion |
+ 	platformName := Smalltalk platformName.
- 	platformName := Smalltalk  platformName.
  	osVersion := Smalltalk osVersion.
  	(platformName = 'Win32' and: [osVersion = 'CE']) 
  		ifTrue: [^NoConversionClipboardInterpreter].
+ 	platformName = 'Win32' ifTrue: [^UTF8ClipboardInterpreter].
- 	platformName = 'Win32' ifTrue: [^WinShiftJISClipboardInterpreter].
  	platformName = 'Mac OS' ifTrue: [^MacShiftJISClipboardInterpreter].
  	^platformName = 'unix' 
  		ifTrue: 
  			[(ShiftJISTextConverter encodingNames includes: X11Encoding getEncoding) 
  				ifTrue: [MacShiftJISClipboardInterpreter]
  				ifFalse: [UnixJPClipboardInterpreter]]
  		ifFalse: [ NoConversionClipboardInterpreter ]!

Item was changed:
  ----- Method: JapaneseEnvironment class>>systemConverterClass (in category 'subclass responsibilities') -----
  systemConverterClass
  	| platformName osVersion encoding |
  	platformName := Smalltalk platformName.
  	osVersion := Smalltalk osVersion.
+ 	platformName = 'Win32'
- 	(platformName = 'Win32' and: [osVersion = 'CE']) 
  		ifTrue: [^UTF8TextConverter].
+ 	platformName = 'ZaurusOS'
- 	(#('Win32' 'ZaurusOS') includes: platformName) 
  		ifTrue: [^ShiftJISTextConverter].
  	platformName = 'Mac OS' 
  		ifTrue: 
  			[^('10*' match: osVersion) 
  				ifTrue: [UTF8TextConverter]
  				ifFalse: [ShiftJISTextConverter]].
  	platformName = 'unix' 
  		ifTrue: 
  			[encoding := X11Encoding encoding.
  			encoding ifNil: [^EUCJPTextConverter].
  			(encoding = 'utf-8') 
  				ifTrue: [^UTF8TextConverter].				
  			(encoding = 'shiftjis' or: [ encoding = 'sjis' ]) 
  				ifTrue: [^ShiftJISTextConverter].				
  			^EUCJPTextConverter].
  	^MacRomanTextConverter!

Item was added:
+ ----- Method: LanguageEnvironment class>>isAlphaNumeric: (in category 'accessing') -----
+ isAlphaNumeric: char
+ 
+ 	^ self charsetClass isAlphaNumeric: char.
+ !

Item was added:
+ ----- Method: LanguageEnvironment class>>toCasefold: (in category 'casing') -----
+ toCasefold: aWideString
+ 	^self charsetClass toCasefold: aWideString!

Item was added:
+ ----- Method: LanguageEnvironment class>>toLowercase: (in category 'casing') -----
+ toLowercase: aWideString
+ 	^self charsetClass toLowercase: aWideString!

Item was added:
+ ----- Method: LanguageEnvironment class>>toLowercaseCode: (in category 'casing') -----
+ toLowercaseCode: integerValue
+ 	^self charsetClass toLowercaseCode: integerValue!

Item was added:
+ ----- Method: LanguageEnvironment class>>toUppercase: (in category 'casing') -----
+ toUppercase: aWideString
+ 	^self charsetClass toUppercase: aWideString!

Item was added:
+ ----- Method: LanguageEnvironment class>>toUppercaseCode: (in category 'casing') -----
+ toUppercaseCode: integerValue
+ 	^self charsetClass toUppercaseCode: integerValue!

Item was changed:
  ----- Method: StrikeFontSet>>postCopy (in category 'copying') -----
  postCopy
  	super postCopy.
  	self reset.
+ 	fontArray := fontArray collect: #copy
- 	fontArray := fontArray copy
  !

Item was changed:
  ----- Method: UTF32JPInputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
  nextCharFrom: sensor firstEvt: evtBuf 
  	| keyValue mark |
  	keyValue := evtBuf at: 6.
+ 	keyValue = 0 ifTrue: [keyValue := evtBuf at: 3].
  	mark := self japaneseSpecialMark: keyValue.
  	mark notNil
  		ifTrue: [^ mark].
  	keyValue < 256
  		ifTrue: [^ (Character value: keyValue) squeakToIso].
  	^ Character leadingChar: JapaneseEnvironment leadingChar code: keyValue!



More information about the Squeak-dev mailing list