ChangesBrowser.st
changeset 15087 90d8b9febd7a
parent 15082 e188631fbd28
child 15090 27f730f4fd5b
--- 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 $'
 ! !