--- a/Class.st Fri Sep 17 15:37:50 1999 +0200
+++ b/Class.st Fri Sep 17 15:46:08 1999 +0200
@@ -3718,7 +3718,7 @@
sourceStreamFor:source
"return an open stream on a sourcefile, nil if that is not available"
- |owner fileName aStream mgr validated guessedFileName|
+ |owner fileName aStream mgr validated guessedFileName sep mod dir|
(owner := self owningClass) notNil ifTrue:[^ owner sourceStreamFor:source].
validated := false.
@@ -3772,22 +3772,30 @@
"/ standard places
mgr notNil ifTrue:[
- classFilename isNil ifTrue:[
- classFilename := guessedFileName := (Smalltalk fileNameForClass:self) , '.st'.
+ sep := self package indexOfAny:'/\:'.
+ sep ~~ 0 ifTrue:[
+ mod := package copyTo:sep - 1.
+ dir := package copyFrom:sep + 1.
+ aStream := mgr streamForClass:nil fileName:source revision:nil directory:dir module:mod cache:true.
].
- source asFilename baseName = classFilename asFilename baseName ifTrue:[
- aStream := mgr getSourceStreamFor:self.
- aStream notNil ifTrue:[
- (self validateSourceStream:aStream) ifFalse:[
- ('Class [info]: repositories source for `'
- , (self isMeta ifTrue:[self soleInstance name]
- ifFalse:[name])
- , ''' is invalid.') infoPrintCR.
- aStream close.
- aStream := nil
- ] ifTrue:[
- validated := true.
- ].
+ aStream isNil ifTrue:[
+ classFilename isNil ifTrue:[
+ classFilename := guessedFileName := (Smalltalk fileNameForClass:self) , '.st'.
+ ].
+ source asFilename baseName = classFilename asFilename baseName ifTrue:[
+ aStream := mgr getSourceStreamFor:self.
+ ]
+ ].
+ aStream notNil ifTrue:[
+ (self validateSourceStream:aStream) ifFalse:[
+ ('Class [info]: repositories source for `'
+ , (self isMeta ifTrue:[self soleInstance name]
+ ifFalse:[name])
+ , ''' is invalid.') infoPrintCR.
+ aStream close.
+ aStream := nil
+ ] ifTrue:[
+ validated := true.
].
].
@@ -3985,5 +3993,5 @@
!Class class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.355 1999-09-17 11:34:48 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.356 1999-09-17 13:46:08 cg Exp $'
! !