Filename.st
changeset 6753 1a4a541850f2
parent 6729 ce3a5460987a
child 6771 997fec197366
--- a/Filename.st	Tue Sep 10 17:29:35 2002 +0200
+++ b/Filename.st	Wed Sep 11 19:28:21 2002 +0200
@@ -3250,10 +3250,10 @@
      or the contents is unknown.
      This is done using some heuristics, and may need some improvement"
 
-    |type buffer s n suffix idx idx2 baseNm|
+    |type buffer s size suffix idx idx2 baseNm|
 
     self isDirectory ifTrue:[
-        ^ 'nil'
+        ^ nil
     ].
     (type := self type) == #characterSpecial ifTrue:[
         ^ nil
@@ -3276,7 +3276,7 @@
     s := self readStream.
     s isNil ifTrue:[^ nil].
 
-    n := s nextBytes:buffer size into:buffer.
+    size := s nextBytes:buffer size into:buffer.
     s close.
     buffer := buffer asLowercase.
 
@@ -3327,12 +3327,17 @@
             ^ 'text/html'
         ]
     ].
-        
+
+    [size ~~ 0 and:[(buffer at:size) isPrintable]] whileTrue:[size := size - 1].
+
+    size == 0 ifTrue:[
+        ^ 'text/plain'
+    ].
     ^ nil
 
     "
-     'Makefile' asFilename mimeTypeOfContents 
-     '.' asFilename mimeTypeOfContents       
+     'Makefile' asFilename mimeTypeOfContents     
+     '.' asFilename mimeTypeOfContents            
      '/dev/null' asFilename mimeTypeOfContents 
      '/tmp/.X11-unix/X0' asFilename mimeTypeOfContents 
      'smalltalk.rc' asFilename mimeTypeOfContents    
@@ -4344,6 +4349,6 @@
 !Filename class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.220 2002-08-22 15:41:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.221 2002-09-11 17:28:21 penk Exp $'
 ! !
 Filename initialize!