ChangesBrowser.st
changeset 1427 0b2794583306
parent 1425 443eb4286f66
child 1428 180d03d00db4
--- a/ChangesBrowser.st	Wed Jan 28 00:30:33 1998 +0100
+++ b/ChangesBrowser.st	Wed Jan 28 13:22:25 1998 +0100
@@ -620,55 +620,59 @@
 
     nm := self classNameOfChange:changeNr.
     nm notNil ifTrue:[
-	|cls|
-
-	cls := Smalltalk at:(nm asSymbol) ifAbsent:[].
-	cls notNil ifTrue:[
-	    cls isLoaded ifFalse:[
-		cls autoload
-	    ]
-	]
+        |cls|
+
+        cls := Smalltalk at:(nm asSymbol) ifAbsent:[].
+        cls notNil ifTrue:[
+            cls isLoaded ifFalse:[
+                cls autoload
+            ]
+        ]
     ].
 
     changeNrProcessed := changeNr.
 
     applyAction := [
-	|sig|
-
-	(skipSignal notNil) ifTrue:[
-	    sig := skipSignal
-	] ifFalse:[
-	    sig := Object abortSignal
-	].
-	sig catch:[
-	    |reader doItChunk methodsForChunk|
-
-	    "/ a followup methodsFor: chunk ...
-	    (changeIsFollowupMethodChange at:changeNr) ifTrue:[
-		methodsForChunk := (changeChunks at:changeNr).
-	    ] ifFalse:[
-		doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
-		doItChunk notEmpty ifTrue:[
-		    Compiler evaluate:doItChunk notifying:self.
-		] ifFalse:[
-		    methodsForChunk := aStream nextChunk.   "/ the real one
-		]
-	    ].
-	    methodsForChunk notNil ifTrue:[
-		reader := Compiler evaluate:methodsForChunk notifying:self.
-		reader fileInFrom:aStream notifying:self passChunk:false single:true.
-	    ]
-	].
-	changeNrProcessed := nil.
+        |sig|
+
+        (skipSignal notNil) ifTrue:[
+            sig := skipSignal
+        ] ifFalse:[
+            sig := Object abortSignal
+        ].
+        sig catch:[
+            |reader doItChunk methodsForChunk|
+
+            "/ a followup methodsFor: chunk ...
+            (changeIsFollowupMethodChange at:changeNr) ifTrue:[
+                methodsForChunk := (changeChunks at:changeNr).
+            ] ifFalse:[
+                doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
+                doItChunk notEmpty ifTrue:[
+                    Compiler evaluate:doItChunk notifying:self.
+                ] ifFalse:[
+                    methodsForChunk := aStream nextChunk.   "/ the real one
+                ]
+            ].
+            methodsForChunk notNil ifTrue:[
+                Class methodRedefinitionSignal handle:[:ex |
+                    ex proceedWith:#keep
+                ] do:[
+                    reader := Compiler evaluate:methodsForChunk notifying:self.
+                    reader fileInFrom:aStream notifying:self passChunk:false single:true.
+                ]
+            ]
+        ].
+        changeNrProcessed := nil.
     ].
 
     "/
     "/ if I am showing the changes file, dont update it
     "/
     changeFileName = ObjectMemory nameForChanges ifTrue:[
-	Class withoutUpdatingChangesDo:applyAction
+        Class withoutUpdatingChangesDo:applyAction
     ] ifFalse:[
-	applyAction value
+        applyAction value
     ].
     aStream close
 
@@ -2655,5 +2659,5 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.122 1998-01-27 18:42:27 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.123 1998-01-28 12:22:25 cg Exp $'
 ! !