--- a/ChangesBrowser.st Mon Jan 12 15:25:18 2015 +0100
+++ b/ChangesBrowser.st Mon Jan 12 22:17:09 2015 +0100
@@ -1759,12 +1759,15 @@
"if we apply multiple changes, and an error occurs,
ask the user if all operations should be aborted..."
multipleApply := (lastNr - changeNr) > 1.
-
- changeNr to:lastNr do:[:changeNr |
- changeListView setSelection:changeNr.
- self applyChange:changeNr
- ].
- self autoSelect:self numberOfChanges.
+ AbortAllOperationRequest handle:[:ex |
+ ex return
+ ] do:[
+ changeNr to:lastNr do:[:changeNr |
+ changeListView setSelection:changeNr.
+ self applyChange:changeNr
+ ].
+ self autoSelect:self numberOfChanges.
+ ]
]
"Modified: 21.1.1997 / 22:25:29 / cg"
@@ -6245,7 +6248,7 @@
processNonMethodChunk
|s changeClass sel cls p rec clsName ownerTree ownerName
- m nameAndClass|
+ m nameAndClass args instVarsArg classVarsArg categoryArg|
(chunkText startsWith:'''---- snap') ifTrue:[
self processSnapshotChunk.
@@ -6271,6 +6274,7 @@
p isMessage ifTrue:[
sel := p selector.
rec := p receiver.
+ args := p args.
]
] ifFalse:[
sel := nil.
@@ -6301,19 +6305,20 @@
(changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
changeDelta := '?'
] ifFalse:[
- (changeClass comment = (p args at:1) evaluate) ifTrue:[
+ (changeClass comment = (args at:1) evaluate) ifTrue:[
changeDelta := '='.
]
]
].
- sel := nil.
+ "/ sel := nil.
+ ^ self.
].
(sel == #removeSelector:) ifTrue:[
nameAndClass := self extractClassAndClassNameFromParseTree:rec.
clsName := nameAndClass key. changeClass := nameAndClass value.
- sel := (p args at:1) evaluate.
+ sel := (args at:1) evaluate.
changeClassNames at:changeClassNames size put:clsName.
autoCompare value ifTrue:[
@@ -6329,7 +6334,8 @@
].
changeType := '(remove)'.
changeString := self contractClass:clsName selector:sel to:maxLen.
- sel := nil.
+ "/ sel := nil.
+ ^ self.
].
(p notNil
@@ -6357,6 +6363,7 @@
]
]
].
+ ^ self.
].
(sel == #privacy:) ifTrue:[
sel := (rec args at:1) evaluate.
@@ -6370,18 +6377,19 @@
changeDelta := ' '
]
].
+ ^ self.
].
sel := nil.
].
(Class definitionSelectors includes:sel) ifTrue:[
changeType := '(class definition)'.
- clsName := (p args at:1) evaluate.
+ clsName := (args at:1) evaluate.
changeClassNames at:changeClassNames size put:clsName.
"/ is it a private-class ?
('*privateIn:' match:sel) ifTrue:[
- ownerTree := p args last.
+ ownerTree := args last.
ownerName := ownerTree name asString.
clsName := ownerName , '::' , clsName
].
@@ -6411,19 +6419,28 @@
and:[p receiver isConstant not
and:[cls superclass name = p receiver name]]
]) ifTrue:[
- cls instanceVariableString asCollectionOfWords = (p args at:2) evaluate asCollectionOfWords ifTrue:[
- cls classVariableString asCollectionOfWords = (p args at:3) evaluate asCollectionOfWords ifTrue:[
- (p args at:4) evaluate isEmpty ifTrue:[
- cls definitionSelector = (sel , 'category:')
- ifTrue:[
- "/ ST/V, VAge or Dolphin definition
+ (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
+ ifTrue:[
+ "/ VSE definition message
+ instVarsArg := ''.
+ classVarsArg := (args at:2) evaluate.
+ categoryArg := (args at:4) evaluate.
+ ] ifFalse:[
+ instVarsArg := (args at:2) evaluate.
+ classVarsArg := (args at:3) evaluate.
+ categoryArg := (args at:5) evaluate.
+ ].
+ cls instanceVariableString asCollectionOfWords = instVarsArg asCollectionOfWords ifTrue:[
+ cls classVariableString asCollectionOfWords = classVarsArg asCollectionOfWords ifTrue:[
+ cls definitionSelector = (sel , 'category:')
+ ifTrue:[
+ "/ ST/V, VAge or Dolphin definition
+ changeDelta := '='.
+ ] ifFalse:[
+ cls category = categoryArg ifTrue:[
changeDelta := '='.
] ifFalse:[
- cls category = (p args at:5) evaluate ifTrue:[
- changeDelta := '='.
- ] ifFalse:[
- changeType := '(class category change)'.
- ]
+ changeType := '(class category change)'.
]
]
]
@@ -6432,36 +6449,39 @@
]
]
].
- sel := nil.
- ] ifFalse:[
- (#(
- #'primitiveDefinitions:'
- #'primitiveFunctions:'
- #'primitiveVariables:'
- ) includes:sel) ifTrue:[
- changeType := '(class definition)'.
- clsName := rec name.
- ] ifFalse:[
- ((sel == #instanceVariableNames:)
- and:[rec isMessage
- and:[rec selector == #class]]) ifTrue:[
- clsName := rec receiver name.
- changeClass := (self nameSpaceForApply) classNamed:clsName.
- changeType := '(class definition)'.
- changeClassNames at:changeClassNames size put:clsName.
-
- autoCompare value ifTrue:[
- changeClass isNil ifTrue:[
- changeDelta := '?'.
- ] ifFalse:[
- s := (p args at:1) evaluate.
- s = changeClass class instanceVariableString ifTrue:[
- changeDelta := '='.
- ]
- ]
- ].
+ "/ sel := nil.
+ ^ self.
+ ].
+
+ (#(
+ #'primitiveDefinitions:'
+ #'primitiveFunctions:'
+ #'primitiveVariables:'
+ ) includes:sel) ifTrue:[
+ changeType := '(class definition)'.
+ clsName := rec name.
+ ^ self.
+ ].
+
+ ((sel == #instanceVariableNames:)
+ and:[rec isMessage
+ and:[rec selector == #class]]) ifTrue:[
+ clsName := rec receiver name.
+ changeClass := (self nameSpaceForApply) classNamed:clsName.
+ changeType := '(class definition)'.
+ changeClassNames at:changeClassNames size put:clsName.
+
+ autoCompare value ifTrue:[
+ changeClass isNil ifTrue:[
+ changeDelta := '?'.
+ ] ifFalse:[
+ s := (p args at:1) evaluate.
+ s = changeClass class instanceVariableString ifTrue:[
+ changeDelta := '='.
+ ]
]
- ]
+ ].
+ ^ self.
].
"Modified: / 14-08-2010 / 12:54:24 / cg"
@@ -6528,10 +6548,10 @@
!ChangesBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.465 2015-01-04 19:00:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.466 2015-01-12 21:17:09 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.465 2015-01-04 19:00:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.466 2015-01-12 21:17:09 cg Exp $'
! !