--- a/NewChangesBrowser.st Thu Aug 18 02:27:46 2011 +0200
+++ b/NewChangesBrowser.st Thu Aug 18 09:50:25 2011 +0200
@@ -873,7 +873,6 @@
#(Menu
(
(MenuItem
- activeHelpKey: file
label: 'File'
translateLabel: true
submenu:
@@ -991,7 +990,6 @@
)
)
(MenuItem
- activeHelpKey: edit
label: 'Delete'
translateLabel: true
submenu:
@@ -1058,7 +1056,6 @@
)
)
(MenuItem
- activeHelpKey: test
label: 'Search'
translateLabel: true
submenu:
@@ -1094,7 +1091,6 @@
)
)
(MenuItem
- activeHelpKey: test
label: 'Test'
translateLabel: true
submenu:
@@ -1113,7 +1109,6 @@
)
)
(MenuItem
- activeHelpKey: settings
label: 'Settings'
translateLabel: true
submenu:
@@ -1217,7 +1212,6 @@
)
)
(MenuItem
- activeHelpKey: help
label: 'MENU_Help'
translateLabel: true
startGroup: conditionalRight
@@ -2112,6 +2106,34 @@
Processor addTimedBlock:autoUpdateBlock afterSeconds:5.
!
+classNameAndClassFromNode:aTreeNode
+ |rcvr className changeClass|
+
+ rcvr := aTreeNode receiver.
+ rcvr isUnaryMessage ifTrue:[
+ self assert:(rcvr selector = 'class').
+
+ className := rcvr receiver name.
+ SourceCodeManagerError
+ handle:[:ex | ]
+ do:[ changeClass := (Smalltalk classNamed:className) class ].
+ className := className , ' class'.
+ ^ className -> changeClass
+ ].
+
+ (rcvr type == #Nil) ifTrue:[
+ ^ 'nil' -> nil
+ ].
+
+ className := rcvr name.
+ SourceCodeManagerError
+ handle:[:ex | ]
+ do:[ changeClass := Smalltalk classNamed:className ].
+ ^ className -> changeClass
+
+ "Created: / 18-08-2011 / 09:38:37 / cg"
+!
+
classNameOfChange:aChange
"returns the classname of aChange
(for classChanges (i.e. xxx class), the non-metaClassName (i.e. xxx) is returned)"
@@ -2705,7 +2727,7 @@
"reads the changes file, creates a list of header-lines (changeChunks)
and a list of chunk-positions (changePositions).
Starting with 2.10.3, the entries are multi-col entries;
- the cols are:
+ the cols are:
1 delta (only if comparing)
'+' -> new method (w.r.t. current state)
'-' -> removed method (w.r.t. current state)
@@ -2766,7 +2788,7 @@
[aStream atEnd] whileFalse:[
|change changeDelta changeString changeType changeCategory
- line s l changeClass sawExcla category className selector
+ line s l classAndName changeClass sawExcla category className selector
chunkText chunkPos sel oldValue|
change := Change new.
@@ -2857,14 +2879,8 @@
sel := p selector.
].
(sel == #removeSelector:) ifTrue:[
- p receiver isUnaryMessage ifTrue:[
- cls := p receiver receiver name.
- changeClass := (Smalltalk classNamed:cls) class.
- cls := cls , ' class'.
- ] ifFalse:[
- cls := p receiver name.
- changeClass := (Smalltalk classNamed:cls)
- ].
+ classAndName := self classNameAndClassFromNode:p.
+ cls := classAndName key. changeClass := classAndName value.
sel := (p args at:1) evaluate.
DeltaInfoColumn ifTrue:[
@@ -2885,14 +2901,8 @@
and:[p isMessage
and:[p receiver isMessage
and:[p receiver selector == #compiledMethodAt:]]]]) ifTrue:[
- p receiver receiver isUnaryMessage ifTrue:[
- cls := p receiver receiver receiver name.
- changeClass := (Smalltalk classNamed:cls) class.
- cls := cls , ' class'.
- ] ifFalse:[
- cls := p receiver receiver name.
- changeClass := (Smalltalk classNamed:cls)
- ].
+ classAndName := self classNameAndClassFromNode:p receiver.
+ cls := classAndName key. changeClass := classAndName value.
(sel == #category:) ifTrue:[
sel := (p receiver args at:1) evaluate.
changeType := '(category change)'.
@@ -2936,19 +2946,8 @@
(p notNil and:[p ~~ #Error]) ifTrue:[
sel := p selector.
(sel == #methodsFor:) ifTrue:[
- p receiver isUnaryMessage ifTrue:[
- className := p receiver receiver name.
- changeClass := (Smalltalk classNamed:className) class.
- className := className , ' class'.
- ] ifFalse:[
- (p receiver type == #Nil)
- ifTrue:
- [className := 'nil'.
- changeClass := nil]
- ifFalse:
- [className := p receiver name.
- changeClass := Smalltalk classNamed:className]
- ].
+ classAndName := self classNameAndClassFromNode:p.
+ className := classAndName key. changeClass := classAndName value.
category := (p args at:1) evaluate.
].
].
@@ -3010,11 +3009,7 @@
DeltaInfoColumn ifTrue:[
changeClass isNil ifFalse:[
- changeClass isMeta ifTrue:[
- cls := changeClass soleInstance
- ] ifFalse:[
- cls := changeClass
- ].
+ cls := changeClass theNonMetaclass
].
(changeClass isNil or:[cls isLoaded not]) ifTrue:[
@@ -3084,8 +3079,8 @@
self checkIfFileHasChanged.
- "Modified: / 30-07-1998 / 11:39:58 / cg"
"Modified: / 16-11-2010 / 15:52:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-08-2011 / 09:45:23 / cg"
!
selectorOfMethodChange:aChange
@@ -3887,5 +3882,5 @@
!NewChangesBrowser class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/NewChangesBrowser.st,v 1.33 2011-07-07 13:22:36 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/NewChangesBrowser.st,v 1.34 2011-08-18 07:50:25 cg Exp $'
! !