FileStream.st
changeset 7091 b399f3d19084
parent 7053 13e04c48e23c
child 7100 7cabf9fc8fd4
--- a/FileStream.st	Sun Mar 02 19:47:23 2003 +0100
+++ b/FileStream.st	Sun Mar 02 20:19:58 2003 +0100
@@ -269,19 +269,21 @@
 
 initialize
     OpenErrorSignal isNil ifTrue:[
-	"/
-	"/ this is temporary - for now allow an openError to
-	"/ be unhandled and proceed by returning a nil from the
-	"/ stream creation method.
-	"/ In the future, this will be a hard signal.
-	"/
-	OpenErrorSignal := QuerySignal new.
-	OpenErrorSignal parent:(super openErrorSignal) mayProceed:true.
-	OpenErrorSignal nameClass:self message:#openErrorSignal.
-	OpenErrorSignal notifierString:'open error'.
+        "/
+        "/ this is temporary - for now allow an openError to
+        "/ be unhandled and proceed by returning a nil from the
+        "/ stream creation method.
+        "/ In the future, this will be a hard signal.
+        "/
+        OpenErrorSignal := QuerySignal new.
+        OpenErrorSignal parent:(super openErrorSignal) mayProceed:true.
+        OpenErrorSignal nameClass:self message:#openErrorSignal.
+        OpenErrorSignal notifierString:'open error'.
+"/        OpenErrorSignal defaultAnswer:['OpenError from:' errorPrintCR.
+"/                                       thisContext fullPrintAll. nil].
 
-	UserInitiatedFileSaveQuerySignal := QuerySignal new defaultAnswer:true.
-	UserInitiatedFileSaveQuerySignal nameClass:self message:#userInitiatedFileSaveQuerySignal.
+        UserInitiatedFileSaveQuerySignal := QuerySignal new defaultAnswer:true.
+        UserInitiatedFileSaveQuerySignal nameClass:self message:#userInitiatedFileSaveQuerySignal.
     ]
 
     "Modified: 8.10.1997 / 11:56:39 / cg"
@@ -325,13 +327,11 @@
      already exist, create it.
      The file is opened for read/write access."
 
-    |stream|
+    [
+        ^ self oldFileNamed:filename.
+    ] on:self openErrorSignal do:[:ex| ].
 
-    stream := self oldFileNamed:filename.
-    stream isNil ifTrue:[
-	stream := self newFileNamed:filename
-    ].
-    ^ stream
+    ^ self newFileNamed:filename
 !
 
 fileNamed:filename in:aDirectory
@@ -339,13 +339,11 @@
      already exist, create it.
      The file is opened for read/write access."
 
-    |stream|
+    [
+        ^ self oldFileNamed:filename in:aDirectory.
+    ] on:self openErrorSignal do:[:ex| ].
 
-    stream := self oldFileNamed:filename in:aDirectory.
-    stream isNil ifTrue:[
-	stream := self newFileNamed:filename in:aDirectory
-    ].
-    ^ stream
+    ^ self newFileNamed:filename in:aDirectory
 !
 
 newFileForWritingNamed:filename
@@ -402,7 +400,9 @@
 
     |newStream|
 
-    (OperatingSystem isReadable:filename) ifFalse:[^nil].
+"/ We can do the following, but is is an extra OS-systemcall:
+"/    (OperatingSystem isReadable:filename) ifFalse:[^ self new openError].
+
     newStream := self new pathName:filename.
     newStream readwrite.
     newStream openForReadWrite isNil ifTrue:[^nil].
@@ -435,7 +435,8 @@
 
     |newStream|
 
-    (OperatingSystem isReadable:filename) ifFalse:[^nil].
+"/ We can do the following, but is is an extra OS-systemcall:
+"/    (OperatingSystem isReadable:filename) ifFalse:[^ self new openError].
 
     newStream := self new pathName:filename.
     newStream openForReading isNil ifTrue:[^nil].
@@ -494,13 +495,15 @@
 write:filename mode:modeSymbol
     "return a writable FileStream for the file named filename, aString.
      The modeSymbol controls how the file is opened; currently supported are:
-	#append
+        #append
     "
 
     modeSymbol == #append ifTrue:[
-	^ self appendingOldFileNamed:filename
+        ^ self appendingOldFileNamed:filename
     ].
-    self halt:'unsupported mode'.
+    "/ self openErrorSignal is a Notification. This will change..
+    "/ We want to raise a real error here
+    super openErrorSignal raiseRequestErrorString:' - unsupported mode'.
     ^ nil
 !
 
@@ -633,8 +636,11 @@
     "/ Sorry about that.
     "/
     LastErrorNumber := lastErrorNumber.
-    super openError.
-    ^ nil
+    ^ super openError.
+
+    "
+        '/dasGIBtEsbeStimmtNiChT' asFilename readStream
+    "
 ! !
 
 !FileStream methodsFor:'instance release'!
@@ -1363,7 +1369,7 @@
 !FileStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.90 2003-02-25 10:16:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.91 2003-03-02 19:19:58 stefan Exp $'
 ! !
 
 FileStream initialize!