3770 "/ the source for my class, and return an open stream on it. |
3770 "/ the source for my class, and return an open stream on it. |
3771 "/ if that one does not know about the source, look in |
3771 "/ if that one does not know about the source, look in |
3772 "/ standard places |
3772 "/ standard places |
3773 |
3773 |
3774 mgr notNil ifTrue:[ |
3774 mgr notNil ifTrue:[ |
3775 classFilename isNil ifTrue:[ |
3775 sep := self package indexOfAny:'/\:'. |
3776 classFilename := guessedFileName := (Smalltalk fileNameForClass:self) , '.st'. |
3776 sep ~~ 0 ifTrue:[ |
|
3777 mod := package copyTo:sep - 1. |
|
3778 dir := package copyFrom:sep + 1. |
|
3779 aStream := mgr streamForClass:nil fileName:source revision:nil directory:dir module:mod cache:true. |
3777 ]. |
3780 ]. |
3778 source asFilename baseName = classFilename asFilename baseName ifTrue:[ |
3781 aStream isNil ifTrue:[ |
3779 aStream := mgr getSourceStreamFor:self. |
3782 classFilename isNil ifTrue:[ |
3780 aStream notNil ifTrue:[ |
3783 classFilename := guessedFileName := (Smalltalk fileNameForClass:self) , '.st'. |
3781 (self validateSourceStream:aStream) ifFalse:[ |
3784 ]. |
3782 ('Class [info]: repositories source for `' |
3785 source asFilename baseName = classFilename asFilename baseName ifTrue:[ |
3783 , (self isMeta ifTrue:[self soleInstance name] |
3786 aStream := mgr getSourceStreamFor:self. |
3784 ifFalse:[name]) |
3787 ] |
3785 , ''' is invalid.') infoPrintCR. |
3788 ]. |
3786 aStream close. |
3789 aStream notNil ifTrue:[ |
3787 aStream := nil |
3790 (self validateSourceStream:aStream) ifFalse:[ |
3788 ] ifTrue:[ |
3791 ('Class [info]: repositories source for `' |
3789 validated := true. |
3792 , (self isMeta ifTrue:[self soleInstance name] |
3790 ]. |
3793 ifFalse:[name]) |
|
3794 , ''' is invalid.') infoPrintCR. |
|
3795 aStream close. |
|
3796 aStream := nil |
|
3797 ] ifTrue:[ |
|
3798 validated := true. |
3791 ]. |
3799 ]. |
3792 ]. |
3800 ]. |
3793 |
3801 |
3794 aStream isNil ifTrue:[ |
3802 aStream isNil ifTrue:[ |
3795 aStream := self localSourceStreamFor:source. |
3803 aStream := self localSourceStreamFor:source. |