ExternalStream.st
changeset 5417 0478ac31e042
parent 5414 8557e4e71e51
child 5420 cec8306dff39
--- a/ExternalStream.st	Sat Jun 24 12:57:35 2000 +0200
+++ b/ExternalStream.st	Sun Jun 25 20:37:27 2000 +0200
@@ -5334,48 +5334,62 @@
 
     __INST(lastErrorNumber) = nil;
     if (((fp = __INST(filePointer)) != nil) 
-	&& (__INST(mode) != @symbol(readonly))
+        && (__INST(mode) != @symbol(readonly))
     ) {
-	if (__INST(binary) != true) {
-	    if (__isCharacter(aCharacter)) {
-		c = __intVal(__characterVal(aCharacter)) & 0xFF;
+        if (__INST(binary) != true) {
+            if (__isCharacter(aCharacter)) {
+                c = __intVal(__characterVal(aCharacter)) & 0xFF;
     doWrite:
-		f = __FILEVal(fp);
-
-
-		if (_buffered = (__INST(buffered) == true)) {
-		    __WRITING__(f)
-		}
+                f = __FILEVal(fp);
+
+
+                if (_buffered = (__INST(buffered) == true)) {
+                    __WRITING__(f)
+                }
 #ifdef WIN32
-		if ((f == stdout) || (f == stderr)) {
-		    cnt = fwrite(&c, 1, 1, f);
-		} else 
+                if ((f == stdout) || (f == stderr)) {
+                    cnt = fwrite(&c, 1, 1, f);
+                } else 
 #endif
-		{
-		    __WRITEBYTE__(cnt, f, &c, _buffered);
-		}
-		if (cnt == 1) {
-		    pos = __INST(position);
-		    if (pos != nil) {
-			__INST(position) = __MKSMALLINT(__intVal(pos) + 1);
-		    }
-		    RETURN ( self );
-		}
-		__INST(lastErrorNumber) = __MKSMALLINT(__threadErrno);
-	    }
-	} else {
-	    if (__isSmallInteger(aCharacter)) {
-		c = __intVal(aCharacter);
-		goto doWrite;
-	    }
-	}
+                {
+                    __WRITEBYTE__(cnt, f, &c, _buffered);
+                }
+                if (cnt == 1) {
+                    pos = __INST(position);
+                    if (pos != nil) {
+                        __INST(position) = __MKSMALLINT(__intVal(pos) + 1);
+                    }
+                    RETURN ( self );
+                }
+                __INST(lastErrorNumber) = __MKSMALLINT(__threadErrno);
+            }
+        } else {
+            if (__isSmallInteger(aCharacter)) {
+                c = __intVal(aCharacter);
+                goto doWrite;
+            }
+        }
     }
 %}.
     lastErrorNumber notNil ifTrue:[self writeError. ^ self].
     filePointer isNil ifTrue:[self errorNotOpen. ^ self].
     (mode == #readonly) ifTrue:[self errorReadOnly. ^ self].
-    binary ifFalse:[self argumentMustBeCharacter. ^ self].
-    self argumentMustBeInteger.
+    binary == true ifFalse:[
+        aCharacter isCharacter ifFalse:[
+            self argumentMustBeCharacter. 
+            ^ self.
+        ]
+    ] ifTrue:[
+        aCharacter isInteger ifFalse:[
+            self argumentMustBeInteger.
+            ^ self.
+        ].
+    ].
+    "/ migration support
+    self 
+        nextPutByte:aCharacter asInteger
+        toFile:filePointer
+        
 !
 
 nextPutAll:aCollection
@@ -5542,11 +5556,19 @@
 %}.
     lastErrorNumber notNil ifTrue:[^ self writeError].
     ^ super nextPutAll:aCollection startingAt:start to:stop
+!
+
+nextPutByte:aByte toFile:filePointer
+    "for migration to rel5 only"
+
+    self primitiveFailed
+
+
 ! !
 
 !ExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.212 2000-06-24 10:45:06 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.213 2000-06-25 18:37:27 cg Exp $'
 ! !
 ExternalStream initialize!