changed: #createStartupCodeFor:forStartOf:
authorfm
Mon, 26 Oct 2009 13:54:28 +0100
changeset 9081 d59a59877121
parent 9080 dca24ca8a31f
child 9082 d65ede3c6779
changed: #createStartupCodeFor:forStartOf:
CodeGeneratorTool.st
--- a/CodeGeneratorTool.st	Mon Oct 26 11:57:06 2009 +0100
+++ b/CodeGeneratorTool.st	Mon Oct 26 13:54:28 2009 +0100
@@ -113,10 +113,10 @@
     ^ self new createRedefinedInstanceCreationMethodsIn:aClass
 !
 
-createStartupCodeFor:aClass forStartOf:anApplicationClass
+createStartupCodeFor:aClass forStartOf:anApplicationClassOrNil
     "create standAloneStartup code"
 
-    ^ self new createStartupCodeFor:aClass forStartOf:anApplicationClass
+    ^ self new createStartupCodeFor:aClass forStartOf:anApplicationClassOrNil
 !
 
 createTestCaseSampleCodeFor:aClass
@@ -1431,27 +1431,39 @@
     "Created: / 11.10.2001 / 22:18:55 / cg"
 !
 
-createStartupCodeFor:aClass forStartOf:anApplicationClass
+createStartupCodeFor:aClass forStartOf:anApplicationClassOrNil
     "create startup code (main)"
 
-    |nonMetaClass metaClass className txt|
+    |nonMetaClass metaClass className source 
+     hasAplicationClass anApplicationClassNameOrStartupClassName|
 
     self startCollectChanges.
 
+    hasAplicationClass := anApplicationClassOrNil notNil.
     nonMetaClass := aClass theNonMetaclass.
     metaClass := aClass theMetaclass.
     className := nonMetaClass name.
 
     (metaClass includesSelector:#main:) ifFalse:[
-        txt :=
+
+        source := String streamContents:[:stream |
+            stream nextPutAll: 
 'main:argv
     self verboseInfo:''starting %1''.
 
-    %1 open.
+'.
+            hasAplicationClass ifTrue: [
+                stream nextPutAll: 
+'    %1 open.
 '.
-
+            ].
+        ].
+
+        anApplicationClassNameOrStartupClassName := hasAplicationClass 
+            ifTrue: [anApplicationClassOrNil name]
+            ifFalse: [className.].
         self
-            compile:(txt bindWith:anApplicationClass name)
+            compile:(source bindWith:anApplicationClassNameOrStartupClassName)
             forClass:metaClass 
             inCategory:'startup'.
     ].
@@ -2966,9 +2978,9 @@
 !CodeGeneratorTool class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/CodeGeneratorTool.st,v 1.72 2009-10-22 19:07:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/CodeGeneratorTool.st,v 1.73 2009-10-26 12:54:28 fm Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/CodeGeneratorTool.st,v 1.72 2009-10-22 19:07:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/CodeGeneratorTool.st,v 1.73 2009-10-26 12:54:28 fm Exp $'
 ! !