--- a/ClassChange.st Thu Jan 23 16:56:19 2003 +0100
+++ b/ClassChange.st Sun Jan 26 15:05:36 2003 +0100
@@ -64,6 +64,9 @@
changeClass
"the class of the change (nil if not present)"
+ |className|
+
+ className := self className.
className isNil ifTrue:[^ nil].
^ Smalltalk classNamed:className
!
@@ -96,7 +99,7 @@
className
"return the className of the change"
- ^ className
+ ^ self cutNameSpaceOf:className
"Modified: 15.7.1996 / 09:28:35 / cg"
!
@@ -115,7 +118,13 @@
apply
"apply the change"
- Class nameSpaceQuerySignal answer:(self nameSpace) do:[
+ |ns|
+
+ ns := Class nameSpaceQuerySignal isHandled
+ ifTrue:[ Class nameSpaceQuerySignal query ]
+ ifFalse:[ self nameSpace ].
+
+ Class nameSpaceQuerySignal answer:ns do:[
Parser evaluate:(self source)
].
!
@@ -134,6 +143,10 @@
"/ in a namespace
^ className upTo:$:.
].
+ (className includes:$.) ifTrue:[
+ "/ in a namespace
+ ^ className upTo:$..
+ ].
^ nil
! !
@@ -152,6 +165,16 @@
!ClassChange methodsFor:'queries'!
+cutNameSpaceOf:aString
+ (aString startsWith:'Kernel.') ifTrue:[
+ ^ aString copyFrom:'Kernel.' size+1
+ ].
+ (aString startsWith:'Core.') ifTrue:[
+ ^ aString copyFrom:'Core.' size+1
+ ].
+ ^ aString
+!
+
isClassChange
^ true
! !
@@ -159,5 +182,5 @@
!ClassChange class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/ClassChange.st,v 1.29 2002-09-10 11:53:27 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ClassChange.st,v 1.30 2003-01-26 14:05:19 cg Exp $'
! !