Marcel Taeumel uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-mt.800.mcz
==================== Summary ====================
Name: Monticello-mt.800
Author: mt
Time: 4 October 2023, 5:10:04.725674 pm
UUID: 03143750-1ae2-e846-95e0-37c48100f5cb
Ancestors: Monticello-mt.799
Okay. Class-side instance variables are tricky... :-)
=============== Diff against Monticello-mt.799 ===============
Item was changed:
(PackageInfo named: 'Monticello') postscript: '"Adds support for protocol renaming"
+ MCWorkingCopy registerForNotifications.'!
- MCPackageManager registerForNotifications.'!
Marcel Taeumel uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-mt.799.mcz
==================== Summary ====================
Name: Monticello-mt.799
Author: mt
Time: 4 October 2023, 4:52:45.444674 pm
UUID: fb40fd0e-cbbe-be48-82d8-485abe894d2d
Ancestors: Monticello-mt.798
Mixed up class-side and instance-side...
=============== Diff against Monticello-mt.798 ===============
Item was changed:
(PackageInfo named: 'Monticello') postscript: '"Adds support for protocol renaming"
+ MCPackageManager registerForNotifications.'!
- MCWorkingCopy allManagers do: [:ea | ea registerForNotifications].'!
Eliot Miranda uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-eem.1052.mcz
==================== Summary ====================
Name: Collections-eem.1052
Author: eem
Time: 2 October 2023, 1:47:24.151227 pm
UUID: abb5904d-b4af-4ad7-a655-85dab6ff4cc1
Ancestors: Collections-mt.1051
Dual of Kernel-eem.1528.
allLiteralsDo: and literalEqual: belong in Kernel, not in Collections. Rename Array & LookupKey's literals category to move it to Kernel.
=============== Diff against Collections-mt.1051 ===============
Item was removed:
- ----- Method: Array>>allLiteralsDo: (in category 'literals') -----
- allLiteralsDo: aBlock
-
- "I am a literal."
- aBlock value: self.
-
- "All my elements are literals."
- self do: [:each | each allLiteralsDo: aBlock].!
Item was removed:
- ----- Method: Array>>literalEqual: (in category 'literals') -----
- literalEqual: other
-
- self class == other class ifFalse: [^ false].
- self size = other size ifFalse: [^ false].
- self with: other do: [:e1 :e2 |
- (e1 literalEqual: e2) ifFalse: [^ false]].
- ^ true!
Item was removed:
- ----- Method: LookupKey>>allLiteralsDo: (in category 'literals') -----
- allLiteralsDo: aBlock
- "Treat myself or my key as literal. Do not treat any value (i.e., in Association or Binding) as literal to avoid decending too thoroughly. As a consequence, for example, classes have to be resolved to their class bindings or class names before using them as input in this interface."
-
- aBlock value: self.
- self key allLiteralsDo: aBlock.!
Item was removed:
- ----- Method: LookupKey>>literalEqual: (in category 'literals') -----
- literalEqual: otherLiteral
- "Answer true if the receiver and otherLiteral represent the same literal.
-
- By default, all lookup keys (such as variable bindings) are literally equal only if identical. This is how variable sharing works, by preserving identity and changing only the value.
-
- Override if you want to be more flexible such as in class bindings."
-
- ^ self == otherLiteral!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1528.mcz
==================== Summary ====================
Name: Kernel-eem.1528
Author: eem
Time: 2 October 2023, 1:46:30.854649 pm
UUID: 2d331a30-1cdc-4e20-9f8e-491cf19b43c2
Ancestors: Kernel-mt.1527
allLiteralsDo: and literalEqual: belong in Kernel, not in Collections. Rename Array & LookupKey's literals category to move it to Kernel.
=============== Diff against Kernel-mt.1527 ===============
Item was added:
+ ----- Method: Array>>allLiteralsDo: (in category '*Kernel-literals') -----
+ allLiteralsDo: aBlock
+
+ "I am a literal."
+ aBlock value: self.
+
+ "All my elements are literals."
+ self do: [:each | each allLiteralsDo: aBlock].!
Item was added:
+ ----- Method: Array>>literalEqual: (in category '*Kernel-literals') -----
+ literalEqual: other
+
+ self class == other class ifFalse: [^ false].
+ self size = other size ifFalse: [^ false].
+ self with: other do: [:e1 :e2 |
+ (e1 literalEqual: e2) ifFalse: [^ false]].
+ ^ true!
Item was added:
+ ----- Method: LookupKey>>allLiteralsDo: (in category '*Kernel-literals') -----
+ allLiteralsDo: aBlock
+ "Treat myself or my key as literal. Do not treat any value (i.e., in Association or Binding) as literal to avoid decending too thoroughly. As a consequence, for example, classes have to be resolved to their class bindings or class names before using them as input in this interface."
+
+ aBlock value: self.
+ self key allLiteralsDo: aBlock.!
Item was added:
+ ----- Method: LookupKey>>literalEqual: (in category '*Kernel-literals') -----
+ literalEqual: otherLiteral
+ "Answer true if the receiver and otherLiteral represent the same literal.
+
+ By default, all lookup keys (such as variable bindings) are literally equal only if identical. This is how variable sharing works, by preserving identity and changing only the value.
+
+ Override if you want to be more flexible such as in class bindings."
+
+ ^ self == otherLiteral!
Vanessa Freudenberg uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-codefrau.1426.mcz
==================== Summary ====================
Name: System-codefrau.1426
Author: codefrau
Time: 1 October 2023, 4:04:12.738176 pm
UUID: f273b150-371e-4001-930f-282781df8d59
Ancestors: System-mt.1425
Make copy/paste work again on VMs without an ExtendedClipboardInterface.
=============== Diff against System-mt.1425 ===============
Item was changed:
----- Method: Clipboard>>clipboardText (in category 'accessing') -----
clipboardText
+ "Answer the text currently in the (system) clipboard. To preserve image-specific formatting, answer the text from an in-image buffer UNLESS that buffer differs from what is in the system clipboard. Also use that buffer if the system clipboard got cleared by some other application."
- "Answer the text currently in the (system) clipboard. To preserve image-specifc formatting, simply answer the text from an in-image buffer UNLESS that buffer differs from what is in the system clipboard. Also use that buffer if the sytem clipboard got cleared by some other application."
| systemContents needsDecoding stringOrText |
needsDecoding := false.
+ systemContents := (self extended ifNotNil: [:extClipboard | extClipboard readTextClipboardData])
- systemContents := ExtendedClipboardInterface current readTextClipboardData
ifNil: [needsDecoding := true.
self primitiveClipboardText "old primitive"].
stringOrText := systemContents withSqueakLineEndings.
(stringOrText isEmpty or: [stringOrText asString = contents asString])
ifTrue: [^ contents].
^ needsDecoding
ifFalse: [stringOrText asText]
ifTrue: [ | decodedString | "from old primitive"
decodedString := self interpreter fromSystemClipboard: stringOrText asString.
decodedString = contents asString
ifTrue: [contents]
ifFalse: [decodedString asText]].!
Item was changed:
----- Method: Clipboard>>clipboardText:notifyWith: (in category 'accessing') -----
clipboardText: stringOrText notifyWith: anObject
"Set the contents of the (system) clipboard. anObject can be used as a marker for the source of the clipboard change, the default value is nil. Try to use the extended interface so that, e.g., rich text can be encoded and transported to other applications."
| newContents |
newContents := stringOrText asText.
self noteRecentClipping: newContents.
contents := newContents. "Preserve in-image attributes. See #clipboardText."
+ (self extended ifNil: [false] ifNotNil: [:extClipboard | extClipboard clipboardText: newContents])
- (ExtendedClipboardInterface current clipboardText: newContents)
ifFalse: [ | string |
"Extended interface failed. Use old primitive and plain text with system-specific encoding."
string := newContents asString.
string := self interpreter toSystemClipboard: string.
self primitiveClipboardText: string].
self triggerEvent: #contentChanged withArguments: { newContents. anObject }.!