--- a/PositionableStream.st Fri Oct 15 01:51:54 1999 +0200
+++ b/PositionableStream.st Sat Oct 16 13:13:09 1999 +0200
@@ -423,7 +423,22 @@
"file in from the receiver, i.e. read chunks and evaluate them -
return the value of the last chunk."
- ^ self fileInNotifying:(SourceFileLoader on:self) passChunk:true
+ |oldPath val|
+
+ self isFileStream ifFalse:[
+ ^ self fileInNotifying:(SourceFileLoader on:self) passChunk:true.
+ ].
+
+ [
+ oldPath := Smalltalk systemPath.
+ Smalltalk systemPath:(oldPath copy addFirst:(self pathName asFilename directoryName); yourself).
+ val := self fileInNotifying:(SourceFileLoader on:self) passChunk:true.
+ ] valueNowOrOnUnwindDo:[
+ Smalltalk systemPath:oldPath.
+ ].
+ ^ val
+
+ "Modified: / 16.10.1999 / 12:25:27 / cg"
!
fileInNextChunkNotifying:someone
@@ -1019,6 +1034,6 @@
!PositionableStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.84 1999-09-20 07:56:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.85 1999-10-16 11:12:51 cg Exp $'
! !
PositionableStream initialize!
--- a/Project.st Fri Oct 15 01:51:54 1999 +0200
+++ b/Project.st Sat Oct 16 13:13:09 1999 +0200
@@ -20,15 +20,15 @@
category:'System-Support'
!
-Object subclass:#ClassInfo
- instanceVariableNames:'conditionForInclusion className classFileName'
+Object subclass:#MethodInfo
+ instanceVariableNames:'conditionForInclusion methodName className fileName'
classVariableNames:''
poolDictionaries:''
privateIn:Project
!
-Object subclass:#MethodInfo
- instanceVariableNames:'conditionForInclusion methodName className fileName'
+Object subclass:#ClassInfo
+ instanceVariableNames:'conditionForInclusion className classFileName'
classVariableNames:''
poolDictionaries:''
privateIn:Project
@@ -109,113 +109,117 @@
] ifFalse:[
AllProjects do:[:p | packages at:p package asSymbol put:p].
].
- Smalltalk allClassesDo:[:aClass |
- |packageID prj classFilename pkgInfo revInfo
- repositoryPath dir module lib nm|
-
- aClass isMeta ifFalse:[
- (aClass isNamespace not or:[aClass == Smalltalk]) ifTrue:[
- (Smalltalk at:aClass name) == aClass ifFalse:[
- Transcript showCR:'skipping obsolete/removed class: ' , aClass name.
- ] ifTrue:[
- packageID := aClass package asSymbol.
- (packages includesKey:packageID) ifFalse:[
-
- "/ a new one ...
-
- prj := self new.
- prj package:packageID.
- prj directory:'???'.
- prj repositoryModule:'unknown'.
- prj repositoryDirectory:'unknown'.
-
- nm := 'unknown'.
-
- pkgInfo := aClass packageSourceCodeInfo.
- pkgInfo notNil ifTrue:[
- module := pkgInfo at:#module ifAbsent:nil.
- module notNil ifTrue:[
- prj repositoryModule:module
- ].
- dir := pkgInfo at:#directory ifAbsent:nil.
- dir notNil ifTrue:[
- prj repositoryDirectory:dir
- ].
- lib := pkgInfo at:#library ifAbsent:nil.
- lib notNil ifTrue:[
- prj type:#library.
- ].
- prj isLoaded:true.
- ].
-
- nm := (module ? 'unknown')
- , ':'
- , (dir ? (lib ? 'unknown')).
-
- prj name:nm.
- AllProjects add:prj.
- packages at:packageID put:prj.
- ] ifTrue:[
- prj := packages at:packageID.
- prj addClass:aClass.
- ].
- ].
- ].
- ].
- ].
-
- Method allSubInstancesDo:[:aMethod |
- |packageID prj who mthdClass|
-
- who := aMethod who.
- who notNil ifTrue:[ "/ skip unbound methods ...
- packageID := aMethod package asSymbol.
- (packages includesKey:packageID) ifFalse:[
- "/ a new one ...
- prj := self new.
- "/ prj name:libName.
- prj package:packageID.
- prj type:#library.
- prj directory:'???'.
- prj repositoryModule:'stx'.
- prj repositoryDirectory:'???'.
- prj isLoaded:true.
- AllProjects add:prj.
- packages at:packageID put:prj.
- ] ifTrue:[
- "/ see if the methods class is in the project;
- "/ if so, remove any patch-entry for this method.
- prj := packages at:packageID.
- ((prj classes includes:who methodClass)
- or:[prj classes includes:who methodClass name]) ifTrue:[
- prj removeMethod:aMethod.
- ]
- ]
- ]
- ].
-
- "/ 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
+"/ Smalltalk allClassesDo:[:aClass |
+"/ |packageID prj classFilename pkgInfo revInfo
+"/ repositoryPath dir module lib nm|
+"/
+"/ aClass isMeta ifFalse:[
+"/ (aClass isNamespace not or:[aClass == Smalltalk]) ifTrue:[
+"/ (Smalltalk at:aClass name) == aClass ifFalse:[
+"/ Transcript showCR:'skipping obsolete/removed class: ' , aClass name.
+"/ ] ifTrue:[
+"/ packageID := aClass package asSymbol.
+"/ (packages includesKey:packageID) ifFalse:[
+"/
+"/ "/ a new one ...
+"/
+"/ prj := self new.
+"/ prj package:packageID.
+"/ prj directory:'???'.
+"/ prj repositoryModule:'unknown'.
+"/ prj repositoryDirectory:'unknown'.
+"/
+"/ nm := 'unknown'.
+"/
+"/ pkgInfo := aClass packageSourceCodeInfo.
+"/ pkgInfo notNil ifTrue:[
+"/ module := pkgInfo at:#module ifAbsent:nil.
+"/ module notNil ifTrue:[
+"/ prj repositoryModule:module
+"/ ].
+"/ dir := pkgInfo at:#directory ifAbsent:nil.
+"/ dir notNil ifTrue:[
+"/ prj repositoryDirectory:dir
+"/ ].
+"/ lib := pkgInfo at:#library ifAbsent:nil.
+"/ lib notNil ifTrue:[
+"/ prj type:#library.
+"/ ].
+"/ prj isLoaded:true.
+"/ ].
+"/
+"/ nm := (module ? 'unknown')
+"/ , ':'
+"/ , (dir ? (lib ? 'unknown')).
+"/
+"/ prj name:nm.
+"/ AllProjects add:prj.
+"/ packages at:packageID put:prj.
+"/ ] ifTrue:[
+"/ prj := packages at:packageID.
+"/ prj addClass:aClass.
+"/ ].
+"/ ].
+"/ ].
+"/ ].
+"/ ].
+"/
+"/ Method allSubInstancesDo:[:aMethod |
+"/ |packageID prj who mthdClass|
+"/
+"/ who := aMethod who.
+"/ who notNil ifTrue:[ "/ skip unbound methods ...
+"/ packageID := aMethod package asSymbol.
+"/ (packages includesKey:packageID) ifFalse:[
+"/ "/ a new one ...
+"/ prj := self new.
+"/ "/ prj name:libName.
+"/ prj package:packageID.
+"/ prj type:#library.
+"/ prj directory:'???'.
+"/ prj repositoryModule:'stx'.
+"/ prj repositoryDirectory:'???'.
+"/ prj isLoaded:true.
+"/ AllProjects add:prj.
+"/ packages at:packageID put:prj.
+"/ ] ifTrue:[
+"/ "/ see if the methods class is in the project;
+"/ "/ if so, remove any patch-entry for this method.
+"/ prj := packages at:packageID.
+"/ ((prj classes includes:who methodClass)
+"/ or:[prj classes includes:who methodClass name]) ifTrue:[
+"/ prj removeMethod:aMethod.
+"/ ]
+"/ ]
+"/ ]
+"/ ].
+"/
+"/ "/ 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|
"/
@@ -264,7 +268,7 @@
self initKnownProjects
"
- "Modified: / 23.3.1999 / 14:20:12 / cg"
+ "Modified: / 16.10.1999 / 13:10:37 / cg"
!
initialize
@@ -3218,56 +3222,6 @@
"Modified: 14.2.1997 / 15:38:47 / cg"
! !
-!Project::ClassInfo methodsFor:'accessing'!
-
-classFileName
- "return the value of the instance variable 'classFileName' (automatically generated)"
-
- ^ classFileName!
-
-classFileName:something
- "set the value of the instance variable 'classFileName' (automatically generated)"
-
- classFileName := something.!
-
-className
- "return the value of the instance variable 'className' (automatically generated)"
-
- ^ className!
-
-className:something
- "set the value of the instance variable 'className' (automatically generated)"
-
- className := something.!
-
-conditionForInclusion
- "return the value of the instance variable 'conditionForInclusion' (automatically generated)"
-
- ^ conditionForInclusion!
-
-conditionForInclusion:something
- "set the value of the instance variable 'conditionForInclusion' (automatically generated)"
-
- conditionForInclusion := something.! !
-
-!Project::ClassInfo methodsFor:'printing & storing'!
-
-displayString
- ^ 'ClassInfo: ' , className
-! !
-
-!Project::ClassInfo methodsFor:'queries'!
-
-theClass
- |cls|
-
- cls := Smalltalk classNamed:className.
- cls isNil ifTrue:[ ^ nil].
- ^ cls
-
- "Created: / 26.9.1999 / 13:39:00 / cg"
-! !
-
!Project::MethodInfo methodsFor:'accessing'!
className
@@ -3337,9 +3291,59 @@
"Created: / 26.9.1999 / 13:39:07 / cg"
! !
+!Project::ClassInfo methodsFor:'accessing'!
+
+classFileName
+ "return the value of the instance variable 'classFileName' (automatically generated)"
+
+ ^ classFileName!
+
+classFileName:something
+ "set the value of the instance variable 'classFileName' (automatically generated)"
+
+ classFileName := something.!
+
+className
+ "return the value of the instance variable 'className' (automatically generated)"
+
+ ^ className!
+
+className:something
+ "set the value of the instance variable 'className' (automatically generated)"
+
+ className := something.!
+
+conditionForInclusion
+ "return the value of the instance variable 'conditionForInclusion' (automatically generated)"
+
+ ^ conditionForInclusion!
+
+conditionForInclusion:something
+ "set the value of the instance variable 'conditionForInclusion' (automatically generated)"
+
+ conditionForInclusion := something.! !
+
+!Project::ClassInfo methodsFor:'printing & storing'!
+
+displayString
+ ^ 'ClassInfo: ' , className
+! !
+
+!Project::ClassInfo methodsFor:'queries'!
+
+theClass
+ |cls|
+
+ cls := Smalltalk classNamed:className.
+ cls isNil ifTrue:[ ^ nil].
+ ^ cls
+
+ "Created: / 26.9.1999 / 13:39:00 / cg"
+! !
+
!Project class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.127 1999-10-13 15:04:18 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.128 1999-10-16 11:13:09 cg Exp $'
! !
Project initialize!