ZipArchive.st
changeset 628 27102a6bd3f7
parent 625 ff3efe3db50b
child 629 33fcaf60afa3
--- a/ZipArchive.st	Wed Apr 01 11:57:24 1998 +0200
+++ b/ZipArchive.st	Mon Apr 06 12:36:03 1998 +0200
@@ -13,12 +13,13 @@
 
 Object subclass:#ZipArchive
 	instanceVariableNames:'file mode archiveName firstEntry lastEntry'
-	classVariableNames:'ECREC_SIZE LREC_SIZE CREC_SIZE SIZE_CENTRAL_DIRECTORY
-		TOTAL_ENTRIES_CENTRAL_DIR C_COMPRESSED_SIZE
-		C_RELATIVE_OFFSET_LOCAL_HEADER C_FILENAME_LENGTH
-		C_UNCOMPRESSED_SIZE ZipFileFormatErrorSignal COMPR_STORED
-		COMPR_SHRUNK COMPR_REDUCED1 COMPR_REDUCED2 COMPR_REDUCED3
-		COMPR_REDUCED4 COMPR_IMPLODED COMPR_TOKENIZED COMPR_DEFLATED'
+	classVariableNames:'RecentlyUsedZipArchives ECREC_SIZE LREC_SIZE CREC_SIZE
+		SIZE_CENTRAL_DIRECTORY TOTAL_ENTRIES_CENTRAL_DIR
+		C_COMPRESSED_SIZE C_RELATIVE_OFFSET_LOCAL_HEADER
+		C_FILENAME_LENGTH C_UNCOMPRESSED_SIZE ZipFileFormatErrorSignal
+		COMPR_STORED COMPR_SHRUNK COMPR_REDUCED1 COMPR_REDUCED2
+		COMPR_REDUCED3 COMPR_REDUCED4 COMPR_IMPLODED COMPR_TOKENIZED
+		COMPR_DEFLATED'
 	poolDictionaries:''
 	category:'System-Support-FileFormats'
 !
@@ -73,9 +74,28 @@
 !
 
 oldFileNamed:name
-    ^ self new name:name mode:#read
+    |zar f|
+
+    f := name asFilename.
+    RecentlyUsedZipArchives isNil ifTrue:[
+        RecentlyUsedZipArchives := OrderedCollection new
+    ].
+    RecentlyUsedZipArchives keysAndValuesDo:[:i :z |
+        z name = name ifTrue:[
+            RecentlyUsedZipArchives removeIndex:i.
+            RecentlyUsedZipArchives addLast:z.
+            ^ z
+        ].
+    ].
+    zar := self new name:f mode:#read.
+    RecentlyUsedZipArchives add:zar.
+    [RecentlyUsedZipArchives size > 5] whileTrue:[
+        RecentlyUsedZipArchives
+    ].
+    ^ zar
 
     "Created: / 29.3.1998 / 17:46:09 / cg"
+    "Modified: / 6.4.1998 / 12:32:45 / cg"
 ! !
 
 !ZipArchive class methodsFor:'class initialization'!
@@ -179,6 +199,12 @@
 
     "Created: / 29.3.1998 / 20:09:27 / cg"
     "Modified: / 29.3.1998 / 20:10:21 / cg"
+!
+
+name
+    ^ archiveName
+
+    "Created: / 6.4.1998 / 10:47:11 / cg"
 ! !
 
 !ZipArchive methodsFor:'private'!
@@ -498,4 +524,9 @@
     "Created: / 29.3.1998 / 19:10:57 / cg"
 ! !
 
+!ZipArchive class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libbasic2/ZipArchive.st,v 1.4 1998-04-06 10:36:03 cg Exp $'
+! !
 ZipArchive initialize!