ChangesBrowser.st
changeset 4632 c16dc83e3972
parent 4599 9a95e5ae08ad
child 4699 393443e15c9b
--- a/ChangesBrowser.st	Sun Mar 02 19:25:31 2003 +0100
+++ b/ChangesBrowser.st	Sun Mar 02 19:27:53 2003 +0100
@@ -688,19 +688,15 @@
 !ChangesBrowser class methodsFor:'utilities'!
 
 isXMLFile:aFilename
-    |stream|
-
-    stream := aFilename asFilename readStream.
+    |stream first|
+
+    stream := aFilename asFilename readStreamOrNil.
     stream isNil ifTrue:[^ false].
 
     stream skipSeparators.
-    stream peek == $< ifTrue:[
-        "/ assume, its an xml file
-        stream close.
-        ^ true
-    ].
+    first := stream peek.
     stream close.
-    ^ false
+    ^ first == $<
 ! !
 
 !ChangesBrowser methodsFor:'aspects'!
@@ -2186,7 +2182,7 @@
     |aStream|
 
     (changeNr between:1 and:changePositions size) ifFalse:[^ nil].
-    aStream := FileStream readonlyFileNamed:changeFileName.
+    aStream := changeFileName asFilename readStreamOrNil.
     aStream isNil ifTrue:[^ nil].
     aStream position1Based:(changePositions at:changeNr).
     ^ aStream
@@ -2276,7 +2272,7 @@
     ].
 
     f := changeFileName asFilename.
-    aStream :=  f readStream.
+    aStream :=  f readStreamOrNil.
     aStream isNil ifTrue:[^ nil].
 
     i := f info.
@@ -2824,16 +2820,14 @@
 
     tempfile := Filename newTemporaryIn:nil.
     tempfile exists ifTrue:[tempfile remove].
-
-    outStream := tempfile writeStream.
-    outStream isNil ifTrue:[
-        self warn:'cannot create temporary file in current directory.'.
+    [
+        outStream := tempfile writeStream.
+        inStream := changeFileName asFilename readStreamOrNil.
+    ] on:FileStream openErrorSignal do:[:ex|
+        self warn:'cannot create temp file in current directory.'.
         ^ false
     ].
 
-    inStream := FileStream readonlyFileNamed:changeFileName.
-    inStream isNil ifTrue:[^ false].
-
     self withCursor:(Cursor write) do:[
         |excla sawExcla done first chunk
          nChanges "{Class:SmallInteger}" |
@@ -2843,7 +2837,6 @@
             tempfile exists ifTrue:[tempfile remove].
             ^ false
         ] do:[
-
             excla := inStream class chunkSeparator.
             nChanges := self numberOfChanges.
 
@@ -2934,15 +2927,11 @@
         self error:'empty chunk - should not happen'.
     ].
 
-    outStream := FileStream oldFileNamed:fileName.
-    outStream isNil ifTrue:[
-        outStream isNil ifTrue:[
-            outStream := FileStream newFileNamed:fileName.
-            outStream isNil ifTrue:[
-                self warn:'cannot update file ''%1''' with:fileName.
-                ^ false
-            ]
-        ]
+    [
+        outStream := fileName asFilename readWriteStream.
+    ] on:FileStream openErrorSignal do:[:ex|
+        self warn:'cannot update file ''%1''' with:fileName.
+        ^ false
     ].
 
     outStream setToEnd.
@@ -3464,7 +3453,7 @@
     |lbl aStream searchIndex anyMore deleteSet index  
      str snapshotProto snapshotPrefix snapshotNameIndex fileName|
 
-    aStream := FileStream readonlyFileNamed:changeFileName.
+    aStream := changeFileName asFilename readStreamOrNil.
     aStream isNil ifTrue:[^ self].
 
     aClassNameOrNil isNil ifTrue:[
@@ -5466,5 +5455,5 @@
 !ChangesBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.288 2003-02-25 11:48:10 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.289 2003-03-02 18:27:53 stefan Exp $'
 ! !