Metaclass.st
changeset 8765 97227ad9480c
parent 8716 9fe96eaed619
child 9175 2d009bbc418b
--- a/Metaclass.st	Tue Mar 01 18:12:03 2005 +0100
+++ b/Metaclass.st	Tue Mar 01 18:58:09 2005 +0100
@@ -379,7 +379,12 @@
     "append an expression on aStream, which defines myself."
 
     |s owner ns nsName fullName forceNoNameSpace superNameWithoutNameSpacePrefix cls topOwner
-     superclass superclassNamespace|
+     superclass superclassNamespace nm useStoreString BOLD_ON BOLD_OFF|
+
+    syntaxHilighting ifTrue:[
+        BOLD_ON := [aStream bold].
+        BOLD_OFF := [aStream normal].
+    ].
 
     fullName := FileOutNameSpaceQuerySignal query == true.
     owner := aClass owningClass.
@@ -411,9 +416,9 @@
                     nsName := '''' , nsName , ''''
                 ].
                 aStream nextPutAll:'"{ NameSpace: '.
-                syntaxHilighting ifTrue:[aStream bold].
+                BOLD_ON value.
                 aStream nextPutAll:nsName.
-                syntaxHilighting ifTrue:[aStream normal].
+                BOLD_OFF value.
                 aStream nextPutAll:' }"'; cr; cr.
             ]
         ].
@@ -488,44 +493,52 @@
         ]
     ].
 
-    syntaxHilighting ifTrue:[aStream bold].
+    BOLD_ON value.
     aStream nextPutAll:s.   "/ superclass
-    syntaxHilighting ifTrue:[aStream normal].
+    BOLD_OFF value.
     aStream space.
     aClass basicFileOutInstvarTypeKeywordOn:aStream.
 
+    useStoreString := false.
     (fullName and:[owner isNil]) ifTrue:[
-        aStream nextPutAll:'#'''.
-        syntaxHilighting ifTrue:[aStream bold].
-        aStream nextPutAll:(aClass name).
-        syntaxHilighting ifTrue:[aStream normal].
+        nm := aClass name.
+        useStoreString := true.
+    ] ifFalse:[
+        nm := aClass nameWithoutPrefix.
+        nm isValidSmalltalkIdentifier ifFalse:[
+            useStoreString := true.
+        ].
+    ].
+    aStream nextPut:$#.
+    useStoreString ifTrue:[
         aStream nextPutAll:''''.
-    ] ifFalse:[
-        aStream nextPut:$#.
-        syntaxHilighting ifTrue:[aStream bold].
-        aStream nextPutAll:(aClass nameWithoutPrefix).
-        syntaxHilighting ifTrue:[aStream normal].
+    ].
+    BOLD_ON value.
+    aStream nextPutAll:nm.
+    BOLD_OFF value.
+    useStoreString ifTrue:[
+        aStream nextPutAll:''''.
     ].
 
     aStream crtab. 
     aStream nextPutAll:'instanceVariableNames:'''.
-    syntaxHilighting ifTrue:[aStream bold].
+    BOLD_ON value.
     aClass printInstVarNamesOn:aStream indent:16.
-    syntaxHilighting ifTrue:[aStream normal].
+    BOLD_OFF value.
     aStream nextPutAll:''''.
 
     aStream crtab.
     aStream nextPutAll:'classVariableNames:'''.
-    syntaxHilighting ifTrue:[aStream bold].
+    BOLD_ON value.
     aClass printClassVarNamesOn:aStream indent:16.
-    syntaxHilighting ifTrue:[aStream normal].
+    BOLD_OFF value.
     aStream nextPutAll:''''.
 
     aStream crtab.
     aStream nextPutAll:'poolDictionaries:'''.
-    syntaxHilighting ifTrue:[aStream bold].
+    BOLD_ON value.
     aClass printSharedPoolNamesOn:aStream indent:16.
-    syntaxHilighting ifTrue:[aStream normal].
+    BOLD_OFF value.
     aStream nextPutAll:''''.
 
     aStream crtab.
@@ -541,14 +554,14 @@
     ] ifFalse:[
         "/ a private class
         aStream nextPutAll:'privateIn:'.
-        syntaxHilighting ifTrue:[aStream bold].
+        BOLD_ON value.
         fullName ifTrue:[
             s := owner name.
         ] ifFalse:[
             s := owner nameWithoutNameSpacePrefix.
         ].
         aStream nextPutAll:s.
-        syntaxHilighting ifTrue:[aStream normal].
+        BOLD_OFF value.
     ].
     aStream cr
 
@@ -805,7 +818,7 @@
 !Metaclass class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.191 2005-01-27 10:29:56 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.192 2005-03-01 17:58:09 cg Exp $'
 ! !
 
 Metaclass initialize!