diff -r ca2c2f7ec69c -r feb18acac2b2 Project.st --- a/Project.st Sat Jan 22 17:42:15 2000 +0100 +++ b/Project.st Sat Jan 22 18:52:11 2000 +0100 @@ -1128,7 +1128,14 @@ package:self package revision:nil ] ifFalse:[ - Smalltalk fileIn:clsFilename + Object errorSignal handle:[:ex | + self warn:'error during fileIn: ' , ex errorString + ] do:[ + Class packageQuerySignal answer:packageName do:[ + clsFilename fileIn. + "/ Smalltalk fileIn:clsFilename + ] + ] ] ] ] ifFalse:[ @@ -1354,9 +1361,11 @@ s tab. s nextPutLine:(self package storeString). defNS := self defaultNameSpace. - (defNS ~~ Smalltalk) ifTrue:[ + (defNS notNil and:[defNS ~~ Smalltalk]) ifTrue:[ s nextPutAll:'nameSpace'. s tab. s nextPutLine:(defNS name storeString). + ] ifFalse:[ + defNS := nil. ]. s nextPutAll:' @@ -1494,19 +1503,41 @@ s nextPutLine:'#( \'. "/ find the longest className (for layout only) - maxLen := classes inject:0 into:[:maxSoFar :aClass | + maxLen := classes inject:0 into:[:maxSoFar :aClassOrName | |clsName| - clsName := aClass name. + aClassOrName isBehavior ifTrue:[ + clsName := aClassOrName name. + ] ifFalse:[ + clsName := aClassOrName. + defNS notNil ifTrue:[ + (clsName startsWith:(defNS name , '::')) ifFalse:[ + clsName := (defNS name , '::' , clsName) + ] + ]. + clsName := clsName asSymbol. + ]. maxSoFar max:clsName storeString size ]. - classes do:[:aClass | + classes do:[:aClassOrName | |clsInfo clsName fileName cond| - clsInfo := self classInfoFor:aClass. - - clsName := aClass name. + aClassOrName isBehavior ifTrue:[ + clsName := aClassOrName name. + ] ifFalse:[ + clsName := aClassOrName. + defNS notNil ifTrue:[ + (clsName startsWith:(defNS name , '::')) ifFalse:[ + clsName := (defNS name , '::' , clsName) + ] + ]. + clsName := clsName asSymbol. + ]. + clsInfo := self classInfoFor:clsName. + clsInfo isNil ifTrue:[ + clsInfo := self classInfoFor:aClassOrName. + ]. fileName := clsInfo classFileName. fileName = (clsName , '.st') ifTrue:[ fileName := nil @@ -1643,13 +1674,13 @@ ! classesInOrderFor:whatMsg - |classes numBad firstBad msg| - - classes := self classes. + |classesOrNames classes numBad firstBad msg| + + classesOrNames := self classes. numBad := 0. firstBad := nil. - classes := classes collect:[:clsOrSymbol | |cls| + classes := classesOrNames collect:[:clsOrSymbol | |cls| clsOrSymbol isBehavior ifFalse:[ cls := Smalltalk at:clsOrSymbol asSymbol. cls isNil ifTrue:[ @@ -1657,7 +1688,7 @@ firstBad := firstBad ? clsOrSymbol. ] ifFalse:[ cls isLoaded ifFalse:[ - cls autoLoad. + cls := cls autoLoad. cls isLoaded ifFalse:[ cls := nil ] @@ -1669,14 +1700,15 @@ ] ]. numBad ~~ 0 ifTrue:[ - msg := 'Cannot ' , whatMsg. - msg := msg , 'Reason: Class ''' , firstBad asText allBold + msg := 'Cannot determine load/compile order when about to ' , whatMsg. + msg := msg , '\Reason: Class ''' , firstBad asText allBold , ''' is not loaded.'. numBad ~~ 1 ifTrue:[ msg := msg , '\(' , (numBad-1) printString , ' more unloaded classes were found)' ]. + msg := msg , '\\You will have to manually load the classes or edit the project file.'. self warn:msg withCRs. - ^ nil. + ^ classesOrNames. ]. "/ to not list private classes @@ -3547,6 +3579,6 @@ !Project class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.144 2000-01-19 15:59:59 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.145 2000-01-22 17:52:11 cg Exp $' ! ! Project initialize!