--- a/Smalltalk.st Thu Dec 02 00:00:29 1999 +0100
+++ b/Smalltalk.st Thu Dec 02 01:18:40 1999 +0100
@@ -3210,7 +3210,7 @@
nil uses the value from SilentLoading."
|shortName longName libName newClass ok wasLazy wasSilent sharedLibExtension inStream mgr fn
- packageDir i|
+ packageDir packageFile i bos|
wasLazy := Compiler compileLazy:loadLazy.
beSilent notNil ifTrue:[
@@ -3229,9 +3229,7 @@
shortName := self fileNameForClass:aClassName.
package notNil ifTrue:[
packageDir := package asString.
- (i := packageDir indexOf:$:) ~~ 0 ifTrue:[
- packageDir := packageDir copyFrom:i + 1.
- ]
+ packageDir := packageDir copyReplaceAll:$: with:$/.
].
Class packageQuerySignal answer:package
@@ -3308,11 +3306,36 @@
in a package subdir of the source-directory ...
"
ok ifFalse:[
- packageDir notNil ifTrue:[
- (ok := self fileIn:(packageDir , '/' , shortName , '.cls') lazy:loadLazy silent:beSilent)
+ (packageDir notNil and:[BinaryObjectStorage notNil]) ifTrue:[
+ packageFile := self getPackageFileName:(packageDir , '/classes/' , shortName , '.cls').
+ packageFile isNil ifTrue:[
+ packageFile := (packageDir , '/classes/' , shortName , '.cls').
+ ].
+ (ok := self fileIn:packageFile lazy:loadLazy silent:beSilent)
ifFalse:[
shortName ~= aClassName ifTrue:[
- ok := self fileIn:(packageDir , '/' , longName , '.cls') lazy:loadLazy silent:beSilent
+ packageFile := self getPackageFileName:(packageDir , '/classes/' , longName , '.cls').
+ packageFile isNil ifTrue:[
+ packageFile := (packageDir , '/classes/' , longName , '.cls').
+ ].
+ ok := self fileIn:packageFile lazy:loadLazy silent:beSilent
+ ]
+ ].
+
+ zarFn := self getPackageFileName:(packageDir , '/classes.zip').
+ zarFn notNil ifTrue:[
+ zar := ZipArchive oldFileNamed:zarFn.
+ zar notNil ifTrue:[
+ entry := zar extract:(shortName , '.cls').
+ (entry isNil and:[shortName ~= longName]) ifTrue:[
+ entry := zar extract:(longName , '.cls').
+ ].
+ entry notNil ifTrue:[
+ bos := BinaryObjectStorage onOld:(entry asByteArray readStream).
+ bos next.
+ bos close.
+ ok := true
+ ].
]
]
]
@@ -3350,26 +3373,49 @@
"
ok ifFalse:[
packageDir notNil ifTrue:[
- fn := packageDir , '/' , shortName , '.st'.
- (ok := self fileIn:fn lazy:loadLazy silent:beSilent)
+ packageFile := self getPackageFileName:(packageDir , '/source/' , shortName , '.st').
+ packageFile isNil ifTrue:[
+ packageFile := (packageDir , '/source/' , shortName , '.st').
+ ].
+ (ok := self fileIn:packageFile lazy:loadLazy silent:beSilent)
ifFalse:[
shortName ~= aClassName ifTrue:[
- fn := packageDir , '/' , longName , '.st'.
- ok := self fileIn:fn lazy:loadLazy silent:beSilent
+ packageFile := self getPackageFileName:(packageDir , '/source/' , longName , '.st').
+ packageFile isNil ifTrue:[
+ packageFile := (packageDir , '/source/' , longName , '.st').
+ ].
+ ok := self fileIn:packageFile lazy:loadLazy silent:beSilent
].
ok ifFalse:[
- "
- ... and in the standard source-directory
- "
- fn := 'source/' , packageDir , '/' , shortName , '.st'.
- (ok := self fileIn:fn lazy:loadLazy silent:beSilent)
+
+ packageFile := self getPackageFileName:(packageDir , '/' , shortName , '.st').
+ packageFile isNil ifTrue:[
+ packageFile := (packageDir , '/' , shortName , '.st').
+ ].
+ (ok := self fileIn:packageFile lazy:loadLazy silent:beSilent)
ifFalse:[
shortName ~= aClassName ifTrue:[
- fn := 'source/' , packageDir , '/' , longName , '.st'.
- ok := self fileIn:fn lazy:loadLazy silent:beSilent
+ packageFile := self getPackageFileName:(packageDir , '/' , longName , '.st').
+ packageFile isNil ifTrue:[
+ packageFile := (packageDir , '/' , longName , '.st').
+ ].
+ ok := self fileIn:packageFile lazy:loadLazy silent:beSilent
+ ].
+ ok ifFalse:[
+ "
+ ... and in the standard source-directory
+ "
+ fn := 'source/' , packageDir , '/' , shortName , '.st'.
+ (ok := self fileIn:fn lazy:loadLazy silent:beSilent)
+ ifFalse:[
+ shortName ~= aClassName ifTrue:[
+ fn := 'source/' , packageDir , '/' , longName , '.st'.
+ ok := self fileIn:fn lazy:loadLazy silent:beSilent
+ ]
+ ]
]
- ]
- ]
+ ].
+ ].
].
]
].
@@ -3379,8 +3425,11 @@
"
ok ifFalse:[
packageDir notNil ifTrue:[
- zarFn := packageDir asFilename withSuffix:'zip'.
- zarFn := self getSourceFileName:zarFn.
+ zarFn := self getPackageFileName:(packageDir , '/source.zip').
+ zarFn isNil ifTrue:[
+ zarFn := packageDir asFilename withSuffix:'zip'.
+ zarFn := self getSourceFileName:zarFn.
+ ].
zarFn notNil ifTrue:[
zar := ZipArchive oldFileNamed:zarFn.
zar notNil ifTrue:[
@@ -3866,7 +3915,9 @@
PackagePath isNil ifTrue:[
PackagePath := self constructPathFor:PackageDirName.
(p := OperatingSystem getEnvironment:'STX_PACKAGEDIR') notNil ifTrue:[
- PackagePath addFirst:p.
+ (PackagePath includes:p) ifFalse:[
+ PackagePath addFirst:p.
+ ]
]
].
@@ -3874,6 +3925,7 @@
"
Smalltalk getPackageFileName:'stx/libview/resources/normal.style'
+ Smalltalk getPackageFileName:'stx/libview/source.zip'
"
!
@@ -5078,5 +5130,5 @@
!Smalltalk class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.379 1999-12-01 23:00:29 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.380 1999-12-02 00:18:40 cg Exp $'
! !