Marcel Taeumel uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-mt.249.mcz
==================== Summary ====================
Name: Multilingual-mt.249
Author: mt
Time: 11 December 2019, 10:37:52.537197 am
UUID: 861aff74-4c07-b14a-bab9-8fc8a89bfaa8
Ancestors: Multilingual-nice.248
Complements Multilingual-nice.248 by resetting the language environment. Avoid having to restart the image after updating on Windows machines. No harm done for other platforms.
=============== Diff against Multilingual-nice.248 ===============
Item was changed:
+ (PackageInfo named: 'Multilingual') postscript: 'LanguageEnvironment clearDefault.
+ HandMorph clearInterpreters.'!
- (PackageInfo named: 'Multilingual') postscript: '"Initialize the tables in all TextConverters that support it."
- TextConverter allSubclassesDo: [ :each | [ each initializeTables ] ifError: [] ]'!
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ct.924.mcz
==================== Summary ====================
Name: Tools-ct.924
Author: ct
Time: 7 December 2019, 5:03:02.396431 pm
UUID: 0db76606-63d7-4a4a-94fd-99fe4a088304
Ancestors: Tools-mt.922
Fix a bug ProcessBrowser >> #selectedClass in case of no context selection
=============== Diff against Tools-mt.922 ===============
Item was changed:
----- Method: ProcessBrowser>>selectedClass (in category 'accessing') -----
selectedClass
"Answer the class in which the currently selected context's method was
found."
^ selectedClass
+ ifNil: [
+ selectedContext ifNil: [^ nil].
+ selectedClass := selectedContext receiver
- ifNil: [selectedClass := selectedContext receiver
ifNil: [selectedSelector := selectedContext method selector.
selectedContext method methodClass]
ifNotNil: [selectedContext methodClass]]!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.1606.mcz
==================== Summary ====================
Name: Morphic-ct.1606
Author: ct
Time: 7 December 2019, 4:53:17.106431 pm
UUID: 83ec1d59-dfa2-ca40-806d-809e76232100
Ancestors: Morphic-mt.1604
Restore original selection interval after any kind of do-it.
This is important if you print-it the following and skip the compiler hint:
| x |
x.
2
Before this commit, the answer was displayed just after x, not at the end of the snippet.
=============== Diff against Morphic-mt.1604 ===============
Item was changed:
----- Method: TextEditor>>evaluateSelectionAndDo: (in category 'do-its') -----
evaluateSelectionAndDo: aBlock
"Treat the current selection as an expression; evaluate it and invoke aBlock with the result."
+ | selectionInterval result rcvr ctxt |
- | result rcvr ctxt |
self lineSelectAndEmptyCheck: [^ nil].
+ selectionInterval := self selectionInterval.
(model respondsTo: #evaluateExpression:) ifTrue: [
^ aBlock value: (model perform: #evaluateExpression: with: self selection)].
(model respondsTo: #doItReceiver)
ifTrue: [ rcvr := model doItReceiver.
ctxt := model doItContext]
ifFalse: [rcvr := ctxt := nil].
result := [
rcvr class evaluatorClass new
evaluate: self selectionAsStream
in: ctxt
to: rcvr
environment: (model environment ifNil: [Smalltalk globals])
notifying: self
ifFail: [morph flash. ^ nil]
logged: true.
]
on: OutOfScopeNotification
do: [ :ex | ex resume: true].
+ self selectInterval: selectionInterval.
+
-
(model respondsTo: #expressionEvaluated:result:) ifTrue: [
model perform: #expressionEvaluated:result: with: self selection with: result].
^aBlock value: result!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ct.1605.mcz
==================== Summary ====================
Name: Morphic-ct.1605
Author: ct
Time: 7 December 2019, 4:21:04.854219 pm
UUID: 3c7d5454-0b60-2a47-91fd-51d333eeeb3b
Ancestors: Morphic-mt.1604
Delete dialog windows if curtailed
This can happen when the user debugs its invocation and then abandons the debugger, but also in the following example:
[self inform: 'Carpe Squeak!'] valueWithin: 2 seconds onTimeout: []
Imho, it would be a bad idea to keep such a dialog window open if nothing will happen after you react on it.
=============== Diff against Morphic-mt.1604 ===============
Item was changed:
----- Method: DialogWindow>>debugInvocation (in category 'running') -----
debugInvocation
+ Processor activeProcess
- [Processor activeProcess
debug: self findInvocationContext
+ title: 'Dialog invocation'!
- title: 'Dialog invocation']
- ifCurtailed: [self closeDialog].!
Item was changed:
----- Method: DialogWindow>>getUserResponse (in category 'running') -----
getUserResponse
| hand world |
self message ifEmpty: [messageMorph delete]. "Do not waste space."
self paneMorph submorphs
ifEmpty: ["Do not waste space and avoid strange button-row wraps."
self paneMorph delete.
self buttonRowMorph wrapDirection: #none].
hand := self currentHand.
world := self currentWorld.
self fullBounds.
self moveToPreferredPosition.
self openInWorld: world.
hand showTemporaryCursor: nil. "Since we are out of context, reset the cursor."
hand keyboardFocus in: [:priorKeyboardFocus |
hand mouseFocus in: [:priorMouseFocus |
self exclusive ifTrue: [hand newMouseFocus: self].
hand newKeyboardFocus: self.
+ [[self isInWorld] whileTrue: [world doOneSubCycle]]
+ ifCurtailed: [self abandon].
- [self isInWorld] whileTrue:[world doOneSubCycle].
hand newKeyboardFocus: priorKeyboardFocus.
hand newMouseFocus: priorMouseFocus]].
^ result!
Marcel Taeumel uploaded a new version of Help-Squeak-Project to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-Project-mt.74.mcz
==================== Summary ====================
Name: Help-Squeak-Project-mt.74
Author: mt
Time: 10 December 2019, 2:56:28.555884 pm
UUID: 1db43f82-6031-1246-b0e0-82527bf11d7f
Ancestors: Help-Squeak-Project-ct.73, Help-Squeak-Project-ct.72
Merges Help-Squeak-Project-ct.73, Help-Squeak-Project-ct.72, which fixes some help texts.
=============== Diff against Help-Squeak-Project-ct.73 ===============
Item was changed:
----- Method: SqueakProjectHelp class>>squeakResourcesOnline (in category 'pages') -----
squeakResourcesOnline
- <generated>
"This method was automatically generated. Edit it using:"
"SqueakProjectHelp edit: #squeakResourcesOnline"
^(HelpTopic
title: 'Squeak Resources Online'
contents:
+ 'Web sites
- 'Squeak web sites
- Main Squeak site http://www.squeak.org
- Weekly Squeak http://news.squeak.org
- Downloads for many versions http://squeak.org/downloads
+ Main site of Squeak
+ http://www.squeak.org
+ Weekly Squeak
+ http://news.squeak.org
+ Downloads for many versions
+ http://www.squeak.org/downloads
+ Main site of OpenSmalltalk VM
+ https://github.com/OpenSmalltalk/opensmalltalk-vm
- Squeak-dev - The main Squeak mailing list
- Join the mailing list to take part in the community. Subscribe to the mail server or read on a forum.
- http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev
- http://forum.world.st/Squeak-Dev-f45488.html
+ Mailing lists
- Squeak-Beginners - The place to ask even the most basic questions
- http://lists.squeakfoundation.org/mailman/listinfo/beginners
- http://forum.world.st/Squeak-Beginners-f107673.html
+ beginners
+ This is the place to ask even the most basic questions. Don''t be afraid. Just ask. The community will help you get started with Squeak.
+ http://lists.squeakfoundation.org/mailman/listinfo/beginners
+ http://forum.world.st/Squeak-Beginners-f107673.html
+
+ squeak-dev
+ This is the main Squeak mailing list. Join that list to be part in the community. Subscribe to the mail server or read on a forum.
+ http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev
+ http://forum.world.st/Squeak-Dev-f45488.html
+
+ vm-beginners
+ This is the entry point for people who want to learn more about how Squeak runs on your operating system. You may ask even basic questions. :-)
+ http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
+ http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html
+
+ vm-dev
+ This is the place where discussions about the OpenSmalltalk virtual machine happen. Join that list the be a part of the community.
+ http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
+ http://forum.world.st/Squeak-VM-f104410.html
+
+ Books
+
Squeak By Example
+ A beginners textbook, based on Squeak 3.9 and so a little out of date in some visual aspects and some details. Still a valuable resource. The content is maintained in github at
- A beginners textbook, based on Squeak 3.9 and so a little out of date in some visual aspects and some details. Still a valuable resource. The content is maintained in github at
https://github.com/SquareBracketAssociates/SqueakByExample-english
but a prepared and ready to read pdf version can be found at
https://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context…
+
+ Other books
+ Many books about Squeak and Smalltalk in general have been made available and are hosted at
- Many books about Squeak and Smalltalk in general have been made available and are hosted at
http://stephane.ducasse.free.fr/FreeBooks.html!!
+ ]style[(11 19 2 21 1 15 22 1 27 2 31 32 49 2 13 1 1 11 135 2 60 2 51 2 10 2 132 61 2 44 2 14 145 63 2 58 2 6 134 57 2 44 2 5 2 17 2 177 66 62 87 2 11 94 46)b,I0i,I0,Rhttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.org;,I0,I0i,…
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText)
- ]style[(17 16 31 14 32 27 29 1 42 102 61 1 44 2 66 60 1 51 2 18 177 66 62 87 93 46)b,I0i,I0,I0i,I0,I0i,I0,,b,,Rhttp://lists.squeakfoundation.org/mailman/li…!!' readStream nextChunkText)
key: #squeakResourcesOnline;
shouldStyle: false;
yourself!
Item was added:
+ SqueakToolsHelp subclass: #SqueakToolsVersionsBrowserHelp
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Help-Squeak-Project'!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>bookName (in category 'accessing') -----
+ bookName
+ <generated>
+ ^'Versions Browser'!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>comparingVersions (in category 'pages') -----
+ comparingVersions
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #comparingVersions"
+ ^(HelpTopic
+ title: 'Comparing versions'
+ contents:
+ 'The code pane shows the source for the selected version. If "diffing" is in effect, then differences betwen the selected version and the version before it are pointed out in the pane. Turn diffing on and off by choosing "toggle diffing" from the list pane menu, or hitting the "diffs" button, or hitting cmd-D when the cursor is over the list pane.
+
+ To get a comparison between the selected version and the current version, choose "compare to current" from the list pane menu or hit the "compare to current" button. (This is meaningless if the current version is selected, and is unnecessary if you''''re interested in diffs from between the current version and the next-most-recent version, since the standard in-pane "diff" feature will give you that.)
+
+ You can also compare the selected version with any other version using the "compare to version..." menu choice.!!
+ ]style[(13 337 19 496)b,,b,!!' readStream nextChunkText)
+ key: #comparingVersions;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>defaultPage (in category 'accessing') -----
+ defaultPage
+
+ ^ #versionsBrowser!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>notes (in category 'pages') -----
+ notes
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #notes"
+ ^(HelpTopic
+ title: 'Notes'
+ contents:
+ 'If further versions of the method in question have been submitted elsewhere since you launched a particular Versions Browser, it will still stay nicely up-to-date if you''re in Morphic and have asked that smart updating be maintained; if you''re in mvc or in morphic but with smart-updating turned off, a versions browser is only brought up to date when you activate its window (and when you issue "revert" from within it, of course,) and you can also use the "update list" command to make certain the versions list is up to date.
+
+ The annotation pane in versions browsers shows information about the current version of the method in the image, not about the selected version.!!
+ ]style[(530 19 50 7 68),b,,i,!!' readStream nextChunkText)
+ key: #notes;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>pages (in category 'accessing') -----
+ pages
+ <generated>
+ ^ #(versionsBrowser comparingVersions revertVersion privacyFeatures notes)!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>privacyFeatures (in category 'pages') -----
+ privacyFeatures
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #privacyFeatures"
+ ^(HelpTopic
+ title: 'Privacy features'
+ contents:
+ 'To have the selected method deleted from the current change set permanently, hit the "remove from changes" button, or choose the corresponding command in the list pane menu. This is useful if you''ve put debugging code into a method, and now want to strip it out and cleanse your current change set of all memory of the excursion.!!
+ ]style[(35 294)b,!!' readStream nextChunkText)
+ key: #privacyFeatures;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>revertVersion (in category 'pages') -----
+ revertVersion
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #revertVersion"
+ ^(HelpTopic
+ title: 'Reverting versions'
+ contents:
+ 'To revert to an earlier version, select it (in the list pane) and then do any of the following:
+ * Choose "revert to this version" from the list pane menu;
+ * Hit the "revert" button;
+ * Type ENTER in the code pane;
+ * Type cmd-s (alt-s) in the code pane.!!
+ ]style[(32 64 155)b,,I1!!' readStream nextChunkText)
+ key: #revertVersion;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>versionsBrowser (in category 'pages') -----
+ versionsBrowser
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #versionsBrowser"
+ ^(HelpTopic
+ title: 'What is a Versions Browser'
+ contents:
+ 'The VersionsBrowser is a window that shows all implementations of a method or a class comment that have been ever installed in past or present. Inter alia, it allows you to compare certain versions or revert earlier versions.
+
+ Each entry in the list pane represents a version of the source code for the same method; the topmost entry is the current version, the next entry is the next most recent, etc.!!
+ ]style[(4 15 208 175)f1b,Rcode://VersionsBrowser browseMethod: VersionsBrowser >> #compareToOtherVersion;b,f1,!!' readStream nextChunkText)
+ key: #versionsBrowser;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: VersionsBrowser>>offerVersionsHelp (in category '*Help-Squeak-Project') -----
+ offerVersionsHelp
+
+ ^ HelpBrowser openOn: SqueakToolsVersionsBrowserHelp!
Marcel Taeumel uploaded a new version of Help-Squeak-Project to project The Trunk:
http://source.squeak.org/trunk/Help-Squeak-Project-ct.72.mcz
==================== Summary ====================
Name: Help-Squeak-Project-ct.72
Author: ct
Time: 15 November 2019, 7:19:49.347005 pm
UUID: 4fd12cfe-84a9-ef46-bb9b-127004798eea
Ancestors: Help-Squeak-Project-mt.69
Migrates VersionsBrowser>>versionsHelpString into a HelpTopic class
Depends on Collections-ct.861.
=============== Diff against Help-Squeak-Project-mt.69 ===============
Item was added:
+ SqueakToolsHelp subclass: #SqueakToolsVersionsBrowserHelp
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Help-Squeak-Project'!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>bookName (in category 'accessing') -----
+ bookName
+ <generated>
+ ^'Versions Browser'!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>comparingVersions (in category 'pages') -----
+ comparingVersions
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #comparingVersions"
+ ^(HelpTopic
+ title: 'Comparing versions'
+ contents:
+ 'The code pane shows the source for the selected version. If "diffing" is in effect, then differences betwen the selected version and the version before it are pointed out in the pane. Turn diffing on and off by choosing "toggle diffing" from the list pane menu, or hitting the "diffs" button, or hitting cmd-D when the cursor is over the list pane.
+
+ To get a comparison between the selected version and the current version, choose "compare to current" from the list pane menu or hit the "compare to current" button. (This is meaningless if the current version is selected, and is unnecessary if you''''re interested in diffs from between the current version and the next-most-recent version, since the standard in-pane "diff" feature will give you that.)
+
+ You can also compare the selected version with any other version using the "compare to version..." menu choice.!!
+ ]style[(13 337 19 496)b,,b,!!' readStream nextChunkText)
+ key: #comparingVersions;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>defaultPage (in category 'accessing') -----
+ defaultPage
+
+ ^ #versionsBrowser!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>notes (in category 'pages') -----
+ notes
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #notes"
+ ^(HelpTopic
+ title: 'Notes'
+ contents:
+ 'If further versions of the method in question have been submitted elsewhere since you launched a particular Versions Browser, it will still stay nicely up-to-date if you''re in Morphic and have asked that smart updating be maintained; if you''re in mvc or in morphic but with smart-updating turned off, a versions browser is only brought up to date when you activate its window (and when you issue "revert" from within it, of course,) and you can also use the "update list" command to make certain the versions list is up to date.
+
+ The annotation pane in versions browsers shows information about the current version of the method in the image, not about the selected version.!!
+ ]style[(530 19 50 7 68),b,,i,!!' readStream nextChunkText)
+ key: #notes;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>pages (in category 'accessing') -----
+ pages
+ <generated>
+ ^ #(versionsBrowser comparingVersions revertVersion privacyFeatures notes)!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>privacyFeatures (in category 'pages') -----
+ privacyFeatures
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #privacyFeatures"
+ ^(HelpTopic
+ title: 'Privacy features'
+ contents:
+ 'To have the selected method deleted from the current change set permanently, hit the "remove from changes" button, or choose the corresponding command in the list pane menu. This is useful if you''ve put debugging code into a method, and now want to strip it out and cleanse your current change set of all memory of the excursion.!!
+ ]style[(35 294)b,!!' readStream nextChunkText)
+ key: #privacyFeatures;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>revertVersion (in category 'pages') -----
+ revertVersion
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #revertVersion"
+ ^(HelpTopic
+ title: 'Reverting versions'
+ contents:
+ 'To revert to an earlier version, select it (in the list pane) and then do any of the following:
+ * Choose "revert to this version" from the list pane menu;
+ * Hit the "revert" button;
+ * Type ENTER in the code pane;
+ * Type cmd-s (alt-s) in the code pane.!!
+ ]style[(32 64 155)b,,I1!!' readStream nextChunkText)
+ key: #revertVersion;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: SqueakToolsVersionsBrowserHelp class>>versionsBrowser (in category 'pages') -----
+ versionsBrowser
+ <generated>
+ "This method was automatically generated. Edit it using:"
+ "SqueakToolsVersionsBrowserHelp edit: #versionsBrowser"
+ ^(HelpTopic
+ title: 'What is a Versions Browser'
+ contents:
+ 'The VersionsBrowser is a window that shows all implementations of a method or a class comment that have been ever installed in past or present. Inter alia, it allows you to compare certain versions or revert earlier versions.
+
+ Each entry in the list pane represents a version of the source code for the same method; the topmost entry is the current version, the next entry is the next most recent, etc.!!
+ ]style[(4 15 208 175)f1b,Rcode://VersionsBrowser browseMethod: VersionsBrowser >> #compareToOtherVersion;b,f1,!!' readStream nextChunkText)
+ key: #versionsBrowser;
+ shouldStyle: false;
+ yourself!
Item was added:
+ ----- Method: VersionsBrowser>>offerVersionsHelp (in category '*Help-Squeak-Project') -----
+ offerVersionsHelp
+
+ ^ HelpBrowser openOn: SqueakToolsVersionsBrowserHelp!
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 outside of the Squeak world, there are three different "channels"; the keyboard input, clipboard output and input, and filename. On a not-to-uncommon system such as a Unix system localized to Japan, all of these three can have (and does h
ave) different encodings. So we need to manage them separately. Note that the encoding in a file can be anything. While it is nice to provide a suggested guess for this 'default system file content encoding', it is not critical.
Rendering support is limited basic L-to-R rendering so far. But you can provide different line-wrap rule, at least.
!
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"!