ChangeSet.st
changeset 2894 ccd13e91583d
parent 2893 5dfcb7f9f0da
child 2902 f6fce7bb1c55
--- a/ChangeSet.st	Tue Jul 31 16:42:45 2012 +0200
+++ b/ChangeSet.st	Tue Jul 31 17:32:19 2012 +0200
@@ -382,43 +382,51 @@
     ^ changeSet
 !
 
-fromFile:aFilename
-    |mime stream nm|
-
-    nm := aFilename asFilename asAbsoluteFilename pathName.
-    mime := MIMETypes mimeTypeForFilename:aFilename.
+fromFile:filenameOrString
+    |filename mime stream changeSet|
+
+    filename := filenameOrString asFilename.
+
+    mime := MIMETypes mimeTypeForFilename:filename.
     mime isNil ifTrue:[
-        mime := aFilename asFilename mimeTypeOfContents.
+        mime := filename mimeTypeOfContents.
         mime isNil ifTrue:[
-            self error:'unknown MIME type for file'.
+            "/ self error:'unknown MIME type for file' mayProceed:true.
+
+            "/ assume chunk format
+            mime := 'text/plain'.
         ].
     ].
 
     [
-        stream := aFilename asFilename readStream.
+        stream := filename readStream.
         mime = 'text/xml' ifTrue:[
-            ^ (self fromXMLStream:stream) name: nm; yourself.
-        ].
-        mime = 'application/x-smalltalk-source-sif' ifTrue:[
-            ^ (self fromSIFStream:stream) name: nm; yourself
-        ].
-        mime = 'application/x-smalltalk-dolphin-package' ifTrue:[
-            ^ (self fromDolphinPACStream:stream) name: nm; yourself
-        ].            
-        stream := EncodedStream decodedStreamFor:stream.
-        ^ (self fromStream:stream) name: nm; yourself
+            changeSet := self fromXMLStream:stream.
+        ] ifFalse:[
+            mime = 'application/x-smalltalk-source-sif' ifTrue:[
+                changeSet := self fromSIFStream:stream.
+            ] ifFalse:[
+                mime = 'application/x-smalltalk-dolphin-package' ifTrue:[
+                    changeSet := self fromDolphinPACStream:stream.
+                ] ifFalse:[            
+                    stream := EncodedStream decodedStreamFor:stream.
+                    changeSet := self fromStream:stream.
+                ]
+            ]
+        ]
     ] ensure:[
         stream notNil ifTrue:[stream close].
     ].
+    changeSet name: filename baseName.
+    ^ changeSet
 
     "
-     ChangeSet fromFile:('changes')
-     ChangeSet fromFile:('patches')
+     ChangeSet fromFile: 'st.chg'
+     ChangeSet fromFile: 'patches'
     "
 
     "Created: / 16-02-1998 / 12:19:34 / cg"
-    "Modified: / 14-12-1999 / 15:23:16 / cg"
-    "Modified: / 16-03-2012 / 15:46:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 28-07-2012 / 09:41:40 / cg"
 !
 
 fromFileOrDirectory: fileOrDirectory
@@ -699,7 +707,7 @@
 !ChangeSet class methodsFor:'others'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.195 2012-07-31 14:42:45 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.196 2012-07-31 15:32:19 vrany Exp $'
 ! !
 
 !ChangeSet class methodsFor:'queries'!
@@ -4046,7 +4054,7 @@
 !ChangeSet class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.195 2012-07-31 14:42:45 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.196 2012-07-31 15:32:19 vrany Exp $'
 !
 
 version_SVN