MIMETypes.st
changeset 1780 ba94d562efe8
parent 1779 c0bd3dcd9ee4
child 1783 faf721f692ae
--- a/MIMETypes.st	Mon May 19 22:29:50 2003 +0200
+++ b/MIMETypes.st	Tue May 20 12:01:53 2003 +0200
@@ -258,7 +258,7 @@
     ^ #(
         'tar'                   'application/x-tar'
         'gtar'                  'application/x-gtar'
-        'tgz'                   'application/x-tar-compressed'
+        ('tgz' 'tar.gz')        'application/x-tar-compressed'
         'zip'                   'application/x-zip-compressed'
         "/ 'zip'                   'application/zip'                   ???
         ('gz' 'z')              'application/x-gzip-compressed'
@@ -483,7 +483,7 @@
 mimeTypeForFilename:filenameArg
     "given a filename, return the mime-type or nil, if unknown"
 
-    |type filename lcFilename suff|
+    |type filename lcFilename suff suff2|
 
     filename := filenameArg asFilename.
 
@@ -507,11 +507,26 @@
     type isNil ifTrue:[
         suff := filename suffix.
         suff size ~~ 0 ifTrue:[
-            ^ self mimeTypeForSuffix:suff
+            "/ sigh - special code for multiple-suffices...
+            "/ .tar.gz -> tgz
+            suff2 := filename withoutSuffix suffix.
+            suff2 size > 0 ifTrue:[
+                type := self mimeTypeForSuffix:(suff2 , '.' , suff).
+            ].
+            type isNil ifTrue:[
+                type := self mimeTypeForSuffix:suff
+            ].
         ]
     ].
 
     ^ type
+
+    "
+     self mimeTypeForFilename:'foo.gz'
+     self mimeTypeForFilename:'foo.tar'
+     self mimeTypeForFilename:'foo.tgz'
+     self mimeTypeForFilename:'foo.tar.gz'
+    "
 !
 
 mimeTypeForFilename:filename put:mimeType
@@ -824,7 +839,7 @@
 !MIMETypes class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/MIMETypes.st,v 1.56 2003-05-19 20:29:50 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/MIMETypes.st,v 1.57 2003-05-20 10:01:53 cg Exp $'
 ! !
 
 MIMETypes initialize!