--- a/ExternalStream.st Thu Aug 03 01:07:04 2000 +0200
+++ b/ExternalStream.st Thu Aug 03 01:10:29 2000 +0200
@@ -2265,26 +2265,47 @@
closeFile
"low level close - may be redefined in subclasses"
+ |fp|
+
%{
- OBJ fp;
-
if ((fp = __INST(filePointer)) != nil) {
- FILEPOINTER f;
-
- __INST(filePointer) = nil;
- f = __FILEVal(fp);
- if (@global(ExternalStream:FileOpenTrace) == true) {
- fprintf(stderr, "fclose [ExternalStream] %x\n", f);
- }
- __BEGIN_INTERRUPTABLE__
+ FILEPOINTER f;
+
+ __INST(filePointer) = nil;
+ f = __FILEVal(fp);
+ if (@global(ExternalStream:FileOpenTrace) == true) {
+ fprintf(stderr, "fclose [ExternalStream] %x\n", f);
+ }
+ __BEGIN_INTERRUPTABLE__
#ifdef WIN32
- __STX_C_CALL1((void*)fclose, (void*)f);
+ __STX_C_CALL1((void*)fclose, (void*)f);
#else
- fclose(f);
+ fclose(f);
#endif
- __END_INTERRUPTABLE__
+ __END_INTERRUPTABLE__
}
-%}
+ RETURN (self);
+%}.
+ "/ fallback for rel5
+
+ fp := filePointer.
+ fp notNil ifTrue:[
+ filePointer := nil.
+ self closeFile:fp
+ ]
+!
+
+closeFile:filePointer
+ "for rel5 only"
+
+ self primitiveFailed
+
+
+
+
+
+
+
!
disposed
@@ -5619,6 +5640,6 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.218 2000-07-03 13:07:40 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.219 2000-08-02 23:10:29 cg Exp $'
! !
ExternalStream initialize!