The Trunk: Multilingual-nice.237.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Multilingual-nice.237.mcz

commits-2
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!