# HG changeset patch # User Claus Gittinger # Date 937568206 -7200 # Node ID b642ad29477a9e861ffea5d73fa458a4f1aafef3 # Parent 062aa9dc0f3d7dbee3487a78bc9b7f73bbbafe65 scan loaded modules for directory-ames diff -r 062aa9dc0f3d -r b642ad29477a Project.st --- a/Project.st Fri Sep 17 13:36:14 1999 +0200 +++ b/Project.st Fri Sep 17 13:36:46 1999 +0200 @@ -102,7 +102,7 @@ |packages anyUnloaded| - packages := IdentitySet new. + packages := Dictionary new. AllProjects isNil ifTrue:[ AllProjects := OrderedCollection new. @@ -116,8 +116,7 @@ aClass isMeta ifFalse:[ (aClass isNamespace not or:[aClass == Smalltalk]) ifTrue:[ packageID := aClass package asSymbol. - (packages includes:packageID) ifFalse:[ - packages add:packageID. + (packages includesKey:packageID) ifFalse:[ "/ a new one ... @@ -152,6 +151,7 @@ prj name:nm. AllProjects add:prj. + packages at:packageID put:prj. ]. ]. ]. @@ -160,11 +160,9 @@ |packageID prj who mthdClass| packageID := aMethod package asSymbol. - (packages includes:packageID) ifFalse:[ + (packages includesKey:packageID) ifFalse:[ who := aMethod who. who notNil ifTrue:[ "/ skip unbound methods ... - packages add:packageID. - "/ a new one ... prj := self new. "/ prj name:libName. @@ -175,9 +173,32 @@ prj repositoryDirectory:'???'. prj isLoaded:true. AllProjects add:prj. + packages at:packageID put:prj. ] ] ]. + + "/ walk over binary modules, to find out directory names ... + + ObjectFileLoader loadedObjectHandles do:[:h | + |cls prj mDir| + + cls := h classes firstIfEmpty:nil. + cls notNil ifTrue:[ + prj := packages at:cls package ifAbsent:nil. + prj notNil ifTrue:[ + mDir := h pathName asFilename directory pathName. + prj directory = '???' ifTrue:[ + prj directory:mDir + ] ifFalse:[ + prj directory ~= mDir ifTrue:[ + ('Project [warning]: conflicting project directories for ' , cls package) infoPrintCR. + ] + ] + ] + ]. + ]. + self changed:#allProjects "/ |stx p| @@ -2098,6 +2119,6 @@ !Project class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.93 1999-09-17 10:58:30 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.94 1999-09-17 11:36:46 cg Exp $' ! ! Project initialize!