ClassChange.st
changeset 1196 928f537ddeac
parent 1162 4af27057a3ce
child 1197 bc742b87f66d
--- 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 $'
 ! !