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

commits at source.squeak.org commits at source.squeak.org
Mon Dec 9 14:07:35 UTC 2019


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

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

Name: Multilingual-nice.248
Author: nice
Time: 9 December 2019, 3:07:24.38758 pm
UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
Ancestors: Multilingual-mt.247

Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...

It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.

While at it, nuke unused Current class var.

You can check current keyborad interpreter with:

	ActiveHand keyboardInterpreter.

You can reset it with:

	LanguageEnvironment clearDefault.
	HandMorph clearInterpreters.
	ActiveHand keyboardInterpreter.

If you don't do it manually, it should be reset at next image startup.

Note:
Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.

=============== Diff against Multilingual-mt.247 ===============

Item was changed:
  Object subclass: #LanguageEnvironment
  	instanceVariableNames: 'id'
+ 	classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
- 	classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
  	poolDictionaries: ''
  	category: 'Multilingual-Languages'!
  
  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.
  
    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.
  
    When we talk about the interface with the ou   t   s   i   d   e       o   f       t   h   e       S   q   u   e   a   k       w   o   r   l   d   ,       t   h   e   r   e       a   r   e       t   h   r   e   e       d   i   f   f   e   r   e   n   t       "   c   h   a   n   n   e   l   s   "   ;       t   h   e       k   e   y   b   o   a   r   d       i   n   p   u   t   ,       c   l   i   p   b   o   a   r   d       o   u   t   p   u   t       a   n   d       i   n   p   u   t   ,       a   n   d       f   i   l   e   n   a   m   e   .           O   n       a       n   o   t   -   t   o   -   u   n   c   o   m   m   o   n       s   y   s   t   e   m       s   u   c   h       a   s       a       U   n   i   x       s   y   s   t   e   m       l   o   c   a   l   i   z   e   d       t   o       J   a   p   a   n   ,       a   l   l       o   f       t   h   e   s   e       t   h   r   e   e       c   a   n       h   a   v   e       (   a   n   d       d   o   e   s       h  
  a   v   e   )       d   i   f   f   e   r   e   n   t       e   n   c   o   d   i   n   g   s   .           S   o       w   e       n   e   e   d       t   o       m   a   n   a   g   e       t   h   e   m       s   e   p   a   r   a   t   e   l   y   .           N   o   t   e       t   h   a   t       t   h   e       e   n   c   o   d   i   n   g       i   n       a       f   i   l   e       c   a   n       b   e       a   n   y   t   h   i   n   g   .           W   h   i   l   e       i   t       i   s       n   i   c   e       t   o       p   r   o   v   i   d   e       a       s   u   g   g   e   s   t   e   d       g   u   e   s   s       f   o   r       t   h   i   s       '   d   e   f   a   u   l   t       s   y   s   t   e   m       f   i   l   e       c   o   n   t   e   n   t       e   n   c   o   d   i   n   g   '   ,       i   t       i   s       n   o   t       c   r   i   t   i   c   a   l   .   
     
             R   e   n   d   e   r   i   n   g       s   u   p   p   o   r   t       i   s       l   i   m   i   t   e   d       b   a   s   i   c       L   -   t   o   -   R       r   e   n   d   e   r   i   n   g       s   o       f   a   r   .           B   u   t       y   o   u       c   a   n       p   r   o   v   i   d   e       d   i   f   f   e   r   e   n   t       l   i   n   e   -   w   r   a   p       r   u   l   e   ,       a   t       l   e   a   s   t   .   
     !

Item was changed:
  ----- Method: LanguageEnvironment class>>win32VMUsesUnicode (in category 'private') -----
  win32VMUsesUnicode
  	| buildDate ind date vmHead |
  	vmHead := Smalltalk vmVersion.
  	vmHead ifNil: [^ false].
+ 	(vmHead beginsWith: 'Open Smalltalk')
+ 		ifTrue: [ ^ true ].
  	buildDate := Smalltalk buildDate.
  	buildDate ifNil: [^ false].
  	ind := buildDate indexOfSubCollection: 'on'.
  	date := Date readFromString: (buildDate copyFrom: ind+3 to: buildDate size).
  	(vmHead beginsWith: 'Croquet') ifTrue: [
  		^ date >= (Date readFromString: '1 Feb 2007')
  	].
  	(vmHead beginsWith: 'Squeak') ifTrue: [
  		^ date >= (Date readFromString: '5 June 2007')
  	].
  	^ false.
  
  "LanguageEnvironment win32VMUsesUnicode"!



More information about the Squeak-dev mailing list