only raise LineTooLongError if handled; otherwise silently continue
reading the long line.
--- a/ExtStream.st Thu Aug 12 12:33:40 1999 +0200
+++ b/ExtStream.st Tue Aug 17 12:15:45 1999 +0200
@@ -1516,8 +1516,8 @@
"report an error, that the stream is already opened"
^ self class openErrorSignal
- raiseRequestWith:self
- errorString:(self class name , ' is already open')
+ raiseRequestWith:self
+ errorString:(self class name , ' is already open')
"Modified: / 8.5.1999 / 20:12:30 / cg"
!
@@ -1528,9 +1528,9 @@
"report an error, that the stream is in binary mode"
^ self invalidModeSignal
- raiseRequestWith:self
- errorString:(self class name , ' is in binary mode')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is in binary mode')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:43 / cg"
!
@@ -1541,9 +1541,9 @@
"report an error, that the stream is not in binary mode"
^ self invalidModeSignal
- raiseRequestWith:self
- errorString:(self class name , ' is not in binary mode')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is not in binary mode')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:40 / cg"
!
@@ -1554,9 +1554,9 @@
"report an error, that the stream is not in buffered mode"
^ StreamErrorSignal
- raiseRequestWith:self
- errorString:(self class name , ' is unbuffered - operation not allowed')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is unbuffered - operation not allowed')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:36 / cg"
!
@@ -1567,9 +1567,9 @@
"report an error, that the stream has not been opened"
^ StreamNotOpenSignal
- raiseRequestWith:self
- errorString:(self class name , ' not open')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' not open')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:33 / cg"
!
@@ -1580,9 +1580,9 @@
"report an error, that the stream is a readOnly stream"
^ self invalidWriteSignal
- raiseWith:self
- errorString:(self class name , ' is readonly')
- "/ in:thisContext sender
+ raiseWith:self
+ errorString:(self class name , ' is readonly')
+ "/ in:thisContext sender
"Modified: / 30.7.1999 / 17:08:19 / cg"
!
@@ -1593,9 +1593,9 @@
"report an error, that some unsupported operation was attempted"
^ self invalidOperationSignal
- raiseRequestWith:self
- errorString:'unsupported operation'
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:'unsupported operation'
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:24 / cg"
!
@@ -1606,9 +1606,9 @@
"report an error, that the stream is a writeOnly stream"
^ self invalidReadSignal
- raiseRequestWith:self
- errorString:(self class name , ' is writeonly')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is writeonly')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:20 / cg"
!
@@ -1621,9 +1621,9 @@
which is no longer available and has been mounted soft)"
^ StreamIOErrorSignal
- raiseRequestWith:self
- errorString:('I/O error: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('I/O error: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:16 / cg"
!
@@ -1649,9 +1649,9 @@
"report an error, that the open failed"
^ self class openErrorSignal
- raiseRequestWith:self
- errorString:('error on open: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('error on open: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 28.1.1998 / 14:37:42 / stefan"
"Modified: / 8.5.1999 / 20:12:12 / cg"
@@ -1663,9 +1663,9 @@
"report an error, that some read error occured"
^ ReadErrorSignal
- raiseRequestWith:self
- errorString:('read error: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('read error: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:00 / cg"
!
@@ -1676,9 +1676,9 @@
"report an error, that some write error occured"
^ WriteErrorSignal
- raiseRequestWith:self
- errorString:('write error: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('write error: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:09 / cg"
! !
@@ -1890,9 +1890,12 @@
"/ concatenation in your exception handler (the receiver and the partial
"/ line are passed as parameter)
- ^ LineTooLongErrorSignal
- raiseRequestWith:(Array with:self with:line)
- errorString:('line too long read error')
+ LineTooLongErrorSignal isHandled ifTrue:[
+ ^ LineTooLongErrorSignal
+ raiseRequestWith:(Array with:self with:line)
+ errorString:('line too long read error')
+ ].
+ ^ line , self nextLine
].
hitEOF ifTrue:[^ self pastEnd].
@@ -2580,28 +2583,28 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
&& (__INST(mode) != @symbol(writeonly))) {
- f = __FILEVal(fp);
-
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTE__(ret, f, &byte, _buffered);
- if (ret > 0) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 1);
- }
- RETURN (__MKSMALLINT(byte));
- }
-
- if (ret == 0) {
- __INST(hitEOF) = true;
- } else /* ret < 0 */ {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- }
+ f = __FILEVal(fp);
+
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTE__(ret, f, &byte, _buffered);
+ if (ret > 0) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 1);
+ }
+ RETURN (__MKSMALLINT(byte));
+ }
+
+ if (ret == 0) {
+ __INST(hitEOF) = true;
+ } else /* ret < 0 */ {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2747,64 +2750,64 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- int value;
- union {
- unsigned char buffer[4];
- int intVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 4, _buffered);
-
- if (ret == 4) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ int value;
+ union {
+ unsigned char buffer[4];
+ int intVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 4, _buffered);
+
+ if (ret == 4) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = (u.buffer[0] & 0xFF);
- value = (value << 8) | (u.buffer[1] & 0xFF);
- value = (value << 8) | (u.buffer[2] & 0xFF);
- value = (value << 8) | (u.buffer[3] & 0xFF);
+ value = (u.buffer[0] & 0xFF);
+ value = (value << 8) | (u.buffer[1] & 0xFF);
+ value = (value << 8) | (u.buffer[2] & 0xFF);
+ value = (value << 8) | (u.buffer[3] & 0xFF);
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = (u.buffer[3] & 0xFF);
- value = (value << 8) | (u.buffer[2] & 0xFF);
- value = (value << 8) | (u.buffer[1] & 0xFF);
- value = (value << 8) | (u.buffer[0] & 0xFF);
+ value = (u.buffer[3] & 0xFF);
+ value = (value << 8) | (u.buffer[2] & 0xFF);
+ value = (value << 8) | (u.buffer[1] & 0xFF);
+ value = (value << 8) | (u.buffer[0] & 0xFF);
#endif
- }
+ }
#ifdef alpha64
- RETURN ( __MKSMALLINT(value));
+ RETURN ( __MKSMALLINT(value));
#else
- if ((value >= _MIN_INT) && (value <= _MAX_INT)) {
- RETURN ( __MKSMALLINT(value));
- }
- RETURN ( __MKLARGEINT(value) );
+ if ((value >= _MIN_INT) && (value <= _MAX_INT)) {
+ RETURN ( __MKSMALLINT(value));
+ }
+ RETURN ( __MKLARGEINT(value) );
#endif
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2826,51 +2829,51 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- short value;
- union {
- unsigned char buffer[2];
- short shortVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 2, _buffered);
-
- if (ret == 2) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ short value;
+ union {
+ unsigned char buffer[2];
+ short shortVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 2, _buffered);
+
+ if (ret == 2) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = ((u.buffer[0] & 0xFF) << 8) | (u.buffer[1] & 0xFF);
+ value = ((u.buffer[0] & 0xFF) << 8) | (u.buffer[1] & 0xFF);
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = ((u.buffer[1] & 0xFF) << 8) | (u.buffer[0] & 0xFF);
+ value = ((u.buffer[1] & 0xFF) << 8) | (u.buffer[0] & 0xFF);
#endif
- }
- RETURN (__MKSMALLINT(value));
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+ RETURN (__MKSMALLINT(value));
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2892,65 +2895,65 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- unsigned INT value;
- union {
- unsigned char buffer[4];
- unsigned int intVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 4, _buffered);
-
- if (ret == 4) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ unsigned INT value;
+ union {
+ unsigned char buffer[4];
+ unsigned int intVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 4, _buffered);
+
+ if (ret == 4) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = u.buffer[0];
- value = (value << 8) | u.buffer[1];
- value = (value << 8) | u.buffer[2];
- value = (value << 8) | u.buffer[3];
+ value = u.buffer[0];
+ value = (value << 8) | u.buffer[1];
+ value = (value << 8) | u.buffer[2];
+ value = (value << 8) | u.buffer[3];
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = u.buffer[3];
- value = (value << 8) | u.buffer[2];
- value = (value << 8) | u.buffer[1];
- value = (value << 8) | u.buffer[0];
+ value = u.buffer[3];
+ value = (value << 8) | u.buffer[2];
+ value = (value << 8) | u.buffer[1];
+ value = (value << 8) | u.buffer[0];
#endif
- }
+ }
#ifdef alpha64
- value &= 0xFFFFFFFF;
- RETURN (__MKSMALLINT(value));
+ value &= 0xFFFFFFFF;
+ RETURN (__MKSMALLINT(value));
#else
- if (value <= _MAX_INT) {
- RETURN (__MKSMALLINT(value));
- }
- RETURN (__MKULARGEINT(value) );
+ if (value <= _MAX_INT) {
+ RETURN (__MKSMALLINT(value));
+ }
+ RETURN (__MKULARGEINT(value) );
#endif
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2971,51 +2974,51 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- unsigned int value;
- union {
- unsigned char buffer[2];
- unsigned short shortVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 2, _buffered);
-
- if (ret == 2) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ unsigned int value;
+ union {
+ unsigned char buffer[2];
+ unsigned short shortVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 2, _buffered);
+
+ if (ret == 2) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = (u.buffer[0] << 8) | u.buffer[1];
+ value = (u.buffer[0] << 8) | u.buffer[1];
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = (u.buffer[1] << 8) | u.buffer[0];
+ value = (u.buffer[1] << 8) | u.buffer[0];
#endif
- }
- RETURN (__MKSMALLINT(value));
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+ RETURN (__MKSMALLINT(value));
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -3176,8 +3179,8 @@
%{
int num;
union {
- char bytes[4];
- int intVal;
+ char bytes[4];
+ int intVal;
} u;
FILEPOINTER f;
int cnt, _buffered;
@@ -3185,62 +3188,62 @@
__INST(lastErrorNumber) = nil;
if (__isSmallInteger(aNumber)) {
- num = __intVal(aNumber);
+ num = __intVal(aNumber);
} else {
#ifdef alpha64
- goto badArg;
+ goto badArg;
#else
- num = __longIntVal(aNumber);
- if (num == 0) {
- num = __signedLongIntVal(aNumber);
- if (num == 0) {
- /* bad arg or out-of-range integer
- * (handled by the fallBack code)
- */
- goto badArg;
- }
- }
+ num = __longIntVal(aNumber);
+ if (num == 0) {
+ num = __signedLongIntVal(aNumber);
+ if (num == 0) {
+ /* bad arg or out-of-range integer
+ * (handled by the fallBack code)
+ */
+ goto badArg;
+ }
+ }
#endif
}
if (((fp = __INST(filePointer)) != nil)
&& (__INST(mode) != @symbol(readonly))
) {
- if (msbFlag == true) {
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- u.intVal = num;
+ u.intVal = num;
#else
- u.bytes[0] = (num >> 24) & 0xFF;
- u.bytes[1] = (num >> 16) & 0xFF;
- u.bytes[2] = (num >> 8) & 0xFF;
- u.bytes[3] = num & 0xFF;
+ u.bytes[0] = (num >> 24) & 0xFF;
+ u.bytes[1] = (num >> 16) & 0xFF;
+ u.bytes[2] = (num >> 8) & 0xFF;
+ u.bytes[3] = num & 0xFF;
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- u.intVal = num;
+ u.intVal = num;
#else
- u.bytes[3] = (num >> 24) & 0xFF;
- u.bytes[2] = (num >> 16) & 0xFF;
- u.bytes[1] = (num >> 8) & 0xFF;
- u.bytes[0] = num & 0xFF;
+ u.bytes[3] = (num >> 24) & 0xFF;
+ u.bytes[2] = (num >> 16) & 0xFF;
+ u.bytes[1] = (num >> 8) & 0xFF;
+ u.bytes[0] = num & 0xFF;
#endif
- }
-
- f = __FILEVal(fp);
- if (_buffered = (__INST(buffered) == true)) {
- __WRITING__(f)
- }
- __WRITEBYTES__(cnt, f, u.bytes, 4, _buffered);
-
- if (cnt == 4) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
- }
- RETURN ( self );
- }
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ }
+
+ f = __FILEVal(fp);
+ if (_buffered = (__INST(buffered) == true)) {
+ __WRITING__(f)
+ }
+ __WRITEBYTES__(cnt, f, u.bytes, 4, _buffered);
+
+ if (cnt == 4) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
+ }
+ RETURN ( self );
+ }
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
}
badArg: ;
%}.
@@ -3249,7 +3252,7 @@
lastErrorNumber notNil ifTrue:[self writeError. ^ self].
aNumber isInteger ifTrue:[
- ^ super nextPutLong:aNumber MSB:msbFlag
+ ^ super nextPutLong:aNumber MSB:msbFlag
].
self argumentMustBeInteger
!
@@ -3263,8 +3266,8 @@
%{
int num;
union {
- char bytes[2];
- short shortVal;
+ char bytes[2];
+ short shortVal;
} u;
FILEPOINTER f;
@@ -3273,41 +3276,41 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(readonly))
- && __isSmallInteger(aNumber)
+ && (__INST(mode) != @symbol(readonly))
+ && __isSmallInteger(aNumber)
) {
- num = __intVal(aNumber);
- if (msbFlag == true) {
+ num = __intVal(aNumber);
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- u.shortVal = num;
+ u.shortVal = num;
#else
- u.bytes[0] = (num >> 8) & 0xFF;
- u.bytes[1] = num & 0xFF;
+ u.bytes[0] = (num >> 8) & 0xFF;
+ u.bytes[1] = num & 0xFF;
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- u.shortVal = num;
+ u.shortVal = num;
#else
- u.bytes[1] = (num >> 8) & 0xFF;
- u.bytes[0] = num & 0xFF;
+ u.bytes[1] = (num >> 8) & 0xFF;
+ u.bytes[0] = num & 0xFF;
#endif
- }
-
- f = __FILEVal(fp);
- if (_buffered = (__INST(buffered) == true)) {
- __WRITING__(f)
- }
- __WRITEBYTES__(cnt, f, u.bytes, 2, _buffered);
-
- if (cnt == 2) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
- }
- RETURN ( self );
- }
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ }
+
+ f = __FILEVal(fp);
+ if (_buffered = (__INST(buffered) == true)) {
+ __WRITING__(f)
+ }
+ __WRITEBYTES__(cnt, f, u.bytes, 2, _buffered);
+
+ if (cnt == 2) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
+ }
+ RETURN ( self );
+ }
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
}
%}.
lastErrorNumber notNil ifTrue:[^ self writeError. ^ self].
@@ -3340,26 +3343,26 @@
if (__isSmallInteger(aFileDescriptor)
&& (__qClass(openmode)== @global(String))) {
- f = (FILEPOINTER) fdopen(__intVal(aFileDescriptor), (char *)__stringVal(openmode));
- if (f == NULL) {
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- __INST(position) = nil;
- } else {
- __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
- __INST(position) = __MKSMALLINT(1);
- retVal = self;
- }
+ f = (FILEPOINTER) fdopen(__intVal(aFileDescriptor), (char *)__stringVal(openmode));
+ if (f == NULL) {
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ __INST(position) = nil;
+ } else {
+ __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
+ __INST(position) = __MKSMALLINT(1);
+ retVal = self;
+ }
}
%}.
retVal notNil ifTrue:[
- buffered := true. "default is buffered"
- Lobby register:self
+ buffered := true. "default is buffered"
+ Lobby register:self
].
lastErrorNumber notNil ifTrue:[
- "
- the open failed for some reason ...
- "
- ^ self openError
+ "
+ the open failed for some reason ...
+ "
+ ^ self openError
].
^ retVal
!
@@ -3376,24 +3379,24 @@
OBJ fp;
if (__isString(aPath)) {
- __BEGIN_INTERRUPTABLE__
- do {
- f = fopen((char *) __stringVal(aPath), (char *) __stringVal(mode));
- } while ((f == NULL) && (errno == EINTR));
- __END_INTERRUPTABLE__
- if (f == NULL) {
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else {
- __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
- ok = true;
- }
+ __BEGIN_INTERRUPTABLE__
+ do {
+ f = fopen((char *) __stringVal(aPath), (char *) __stringVal(mode));
+ } while ((f == NULL) && (errno == EINTR));
+ __END_INTERRUPTABLE__
+ if (f == NULL) {
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else {
+ __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
+ ok = true;
+ }
}
%}.
ok ifFalse:[
- "
- the open failed for some reason ...
- "
- ^ self openError
+ "
+ the open failed for some reason ...
+ "
+ ^ self openError
].
position := 1.
Lobby register:self.
@@ -4867,6 +4870,6 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.196 1999-08-04 14:12:48 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.197 1999-08-17 10:15:44 cg Exp $'
! !
ExternalStream initialize!
--- a/ExtStream_win32.st Thu Aug 12 12:33:40 1999 +0200
+++ b/ExtStream_win32.st Tue Aug 17 12:15:45 1999 +0200
@@ -2211,9 +2211,12 @@
"/ concatenation in your exception handler (the receiver and the partial
"/ line are passed as parameter)
- ^ LineTooLongErrorSignal
- raiseRequestWith:(Array with:self with:line)
- errorString:('line too long read error')
+ LineTooLongErrorSignal isHandled ifTrue:[
+ ^ LineTooLongErrorSignal
+ raiseRequestWith:(Array with:self with:line)
+ errorString:('line too long read error')
+ ].
+ ^ line , self nextLine
].
hitEOF ifTrue:[^ self pastEnd].
@@ -5051,6 +5054,6 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream_win32.st,v 1.13 1999-07-10 10:39:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream_win32.st,v 1.14 1999-08-17 10:15:45 cg Exp $'
! !
ExternalStream initialize!
--- a/ExternalStream.st Thu Aug 12 12:33:40 1999 +0200
+++ b/ExternalStream.st Tue Aug 17 12:15:45 1999 +0200
@@ -1516,8 +1516,8 @@
"report an error, that the stream is already opened"
^ self class openErrorSignal
- raiseRequestWith:self
- errorString:(self class name , ' is already open')
+ raiseRequestWith:self
+ errorString:(self class name , ' is already open')
"Modified: / 8.5.1999 / 20:12:30 / cg"
!
@@ -1528,9 +1528,9 @@
"report an error, that the stream is in binary mode"
^ self invalidModeSignal
- raiseRequestWith:self
- errorString:(self class name , ' is in binary mode')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is in binary mode')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:43 / cg"
!
@@ -1541,9 +1541,9 @@
"report an error, that the stream is not in binary mode"
^ self invalidModeSignal
- raiseRequestWith:self
- errorString:(self class name , ' is not in binary mode')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is not in binary mode')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:40 / cg"
!
@@ -1554,9 +1554,9 @@
"report an error, that the stream is not in buffered mode"
^ StreamErrorSignal
- raiseRequestWith:self
- errorString:(self class name , ' is unbuffered - operation not allowed')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is unbuffered - operation not allowed')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:36 / cg"
!
@@ -1567,9 +1567,9 @@
"report an error, that the stream has not been opened"
^ StreamNotOpenSignal
- raiseRequestWith:self
- errorString:(self class name , ' not open')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' not open')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:33 / cg"
!
@@ -1580,9 +1580,9 @@
"report an error, that the stream is a readOnly stream"
^ self invalidWriteSignal
- raiseWith:self
- errorString:(self class name , ' is readonly')
- "/ in:thisContext sender
+ raiseWith:self
+ errorString:(self class name , ' is readonly')
+ "/ in:thisContext sender
"Modified: / 30.7.1999 / 17:08:19 / cg"
!
@@ -1593,9 +1593,9 @@
"report an error, that some unsupported operation was attempted"
^ self invalidOperationSignal
- raiseRequestWith:self
- errorString:'unsupported operation'
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:'unsupported operation'
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:24 / cg"
!
@@ -1606,9 +1606,9 @@
"report an error, that the stream is a writeOnly stream"
^ self invalidReadSignal
- raiseRequestWith:self
- errorString:(self class name , ' is writeonly')
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:(self class name , ' is writeonly')
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:20 / cg"
!
@@ -1621,9 +1621,9 @@
which is no longer available and has been mounted soft)"
^ StreamIOErrorSignal
- raiseRequestWith:self
- errorString:('I/O error: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('I/O error: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:16 / cg"
!
@@ -1649,9 +1649,9 @@
"report an error, that the open failed"
^ self class openErrorSignal
- raiseRequestWith:self
- errorString:('error on open: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('error on open: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 28.1.1998 / 14:37:42 / stefan"
"Modified: / 8.5.1999 / 20:12:12 / cg"
@@ -1663,9 +1663,9 @@
"report an error, that some read error occured"
^ ReadErrorSignal
- raiseRequestWith:self
- errorString:('read error: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('read error: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:00 / cg"
!
@@ -1676,9 +1676,9 @@
"report an error, that some write error occured"
^ WriteErrorSignal
- raiseRequestWith:self
- errorString:('write error: ' , self lastErrorString)
- "/ in:thisContext sender
+ raiseRequestWith:self
+ errorString:('write error: ' , self lastErrorString)
+ "/ in:thisContext sender
"Modified: / 8.5.1999 / 20:12:09 / cg"
! !
@@ -1890,9 +1890,12 @@
"/ concatenation in your exception handler (the receiver and the partial
"/ line are passed as parameter)
- ^ LineTooLongErrorSignal
- raiseRequestWith:(Array with:self with:line)
- errorString:('line too long read error')
+ LineTooLongErrorSignal isHandled ifTrue:[
+ ^ LineTooLongErrorSignal
+ raiseRequestWith:(Array with:self with:line)
+ errorString:('line too long read error')
+ ].
+ ^ line , self nextLine
].
hitEOF ifTrue:[^ self pastEnd].
@@ -2580,28 +2583,28 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
&& (__INST(mode) != @symbol(writeonly))) {
- f = __FILEVal(fp);
-
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTE__(ret, f, &byte, _buffered);
- if (ret > 0) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 1);
- }
- RETURN (__MKSMALLINT(byte));
- }
-
- if (ret == 0) {
- __INST(hitEOF) = true;
- } else /* ret < 0 */ {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- }
+ f = __FILEVal(fp);
+
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTE__(ret, f, &byte, _buffered);
+ if (ret > 0) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 1);
+ }
+ RETURN (__MKSMALLINT(byte));
+ }
+
+ if (ret == 0) {
+ __INST(hitEOF) = true;
+ } else /* ret < 0 */ {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2747,64 +2750,64 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- int value;
- union {
- unsigned char buffer[4];
- int intVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 4, _buffered);
-
- if (ret == 4) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ int value;
+ union {
+ unsigned char buffer[4];
+ int intVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 4, _buffered);
+
+ if (ret == 4) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = (u.buffer[0] & 0xFF);
- value = (value << 8) | (u.buffer[1] & 0xFF);
- value = (value << 8) | (u.buffer[2] & 0xFF);
- value = (value << 8) | (u.buffer[3] & 0xFF);
+ value = (u.buffer[0] & 0xFF);
+ value = (value << 8) | (u.buffer[1] & 0xFF);
+ value = (value << 8) | (u.buffer[2] & 0xFF);
+ value = (value << 8) | (u.buffer[3] & 0xFF);
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = (u.buffer[3] & 0xFF);
- value = (value << 8) | (u.buffer[2] & 0xFF);
- value = (value << 8) | (u.buffer[1] & 0xFF);
- value = (value << 8) | (u.buffer[0] & 0xFF);
+ value = (u.buffer[3] & 0xFF);
+ value = (value << 8) | (u.buffer[2] & 0xFF);
+ value = (value << 8) | (u.buffer[1] & 0xFF);
+ value = (value << 8) | (u.buffer[0] & 0xFF);
#endif
- }
+ }
#ifdef alpha64
- RETURN ( __MKSMALLINT(value));
+ RETURN ( __MKSMALLINT(value));
#else
- if ((value >= _MIN_INT) && (value <= _MAX_INT)) {
- RETURN ( __MKSMALLINT(value));
- }
- RETURN ( __MKLARGEINT(value) );
+ if ((value >= _MIN_INT) && (value <= _MAX_INT)) {
+ RETURN ( __MKSMALLINT(value));
+ }
+ RETURN ( __MKLARGEINT(value) );
#endif
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2826,51 +2829,51 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- short value;
- union {
- unsigned char buffer[2];
- short shortVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 2, _buffered);
-
- if (ret == 2) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ short value;
+ union {
+ unsigned char buffer[2];
+ short shortVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 2, _buffered);
+
+ if (ret == 2) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = ((u.buffer[0] & 0xFF) << 8) | (u.buffer[1] & 0xFF);
+ value = ((u.buffer[0] & 0xFF) << 8) | (u.buffer[1] & 0xFF);
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = ((u.buffer[1] & 0xFF) << 8) | (u.buffer[0] & 0xFF);
+ value = ((u.buffer[1] & 0xFF) << 8) | (u.buffer[0] & 0xFF);
#endif
- }
- RETURN (__MKSMALLINT(value));
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+ RETURN (__MKSMALLINT(value));
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2892,65 +2895,65 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- unsigned INT value;
- union {
- unsigned char buffer[4];
- unsigned int intVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 4, _buffered);
-
- if (ret == 4) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ unsigned INT value;
+ union {
+ unsigned char buffer[4];
+ unsigned int intVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 4, _buffered);
+
+ if (ret == 4) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = u.buffer[0];
- value = (value << 8) | u.buffer[1];
- value = (value << 8) | u.buffer[2];
- value = (value << 8) | u.buffer[3];
+ value = u.buffer[0];
+ value = (value << 8) | u.buffer[1];
+ value = (value << 8) | u.buffer[2];
+ value = (value << 8) | u.buffer[3];
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.intVal;
+ value = u.intVal;
#else
- value = u.buffer[3];
- value = (value << 8) | u.buffer[2];
- value = (value << 8) | u.buffer[1];
- value = (value << 8) | u.buffer[0];
+ value = u.buffer[3];
+ value = (value << 8) | u.buffer[2];
+ value = (value << 8) | u.buffer[1];
+ value = (value << 8) | u.buffer[0];
#endif
- }
+ }
#ifdef alpha64
- value &= 0xFFFFFFFF;
- RETURN (__MKSMALLINT(value));
+ value &= 0xFFFFFFFF;
+ RETURN (__MKSMALLINT(value));
#else
- if (value <= _MAX_INT) {
- RETURN (__MKSMALLINT(value));
- }
- RETURN (__MKULARGEINT(value) );
+ if (value <= _MAX_INT) {
+ RETURN (__MKSMALLINT(value));
+ }
+ RETURN (__MKULARGEINT(value) );
#endif
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -2971,51 +2974,51 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(writeonly))
+ && (__INST(mode) != @symbol(writeonly))
) {
- FILEPOINTER f;
- int ret, _buffered;
- unsigned int value;
- union {
- unsigned char buffer[2];
- unsigned short shortVal;
- } u;
-
- f = __FILEVal(fp);
- _buffered = (__INST(buffered) == true);
- if (_buffered) {
- __READING__(f)
- }
- __READBYTES__(ret, f, u.buffer, 2, _buffered);
-
- if (ret == 2) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
- }
- if (msbFlag == true) {
+ FILEPOINTER f;
+ int ret, _buffered;
+ unsigned int value;
+ union {
+ unsigned char buffer[2];
+ unsigned short shortVal;
+ } u;
+
+ f = __FILEVal(fp);
+ _buffered = (__INST(buffered) == true);
+ if (_buffered) {
+ __READING__(f)
+ }
+ __READBYTES__(ret, f, u.buffer, 2, _buffered);
+
+ if (ret == 2) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
+ }
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = (u.buffer[0] << 8) | u.buffer[1];
+ value = (u.buffer[0] << 8) | u.buffer[1];
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- value = u.shortVal;
+ value = u.shortVal;
#else
- value = (u.buffer[1] << 8) | u.buffer[0];
+ value = (u.buffer[1] << 8) | u.buffer[0];
#endif
- }
- RETURN (__MKSMALLINT(value));
- }
-
- if (ret < 0) {
- __INST(position) = nil;
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else /* ret == 0 */ {
- __INST(hitEOF) = true;
- }
+ }
+ RETURN (__MKSMALLINT(value));
+ }
+
+ if (ret < 0) {
+ __INST(position) = nil;
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else /* ret == 0 */ {
+ __INST(hitEOF) = true;
+ }
}
%}.
hitEOF ifTrue:[^ self pastEnd].
@@ -3176,8 +3179,8 @@
%{
int num;
union {
- char bytes[4];
- int intVal;
+ char bytes[4];
+ int intVal;
} u;
FILEPOINTER f;
int cnt, _buffered;
@@ -3185,62 +3188,62 @@
__INST(lastErrorNumber) = nil;
if (__isSmallInteger(aNumber)) {
- num = __intVal(aNumber);
+ num = __intVal(aNumber);
} else {
#ifdef alpha64
- goto badArg;
+ goto badArg;
#else
- num = __longIntVal(aNumber);
- if (num == 0) {
- num = __signedLongIntVal(aNumber);
- if (num == 0) {
- /* bad arg or out-of-range integer
- * (handled by the fallBack code)
- */
- goto badArg;
- }
- }
+ num = __longIntVal(aNumber);
+ if (num == 0) {
+ num = __signedLongIntVal(aNumber);
+ if (num == 0) {
+ /* bad arg or out-of-range integer
+ * (handled by the fallBack code)
+ */
+ goto badArg;
+ }
+ }
#endif
}
if (((fp = __INST(filePointer)) != nil)
&& (__INST(mode) != @symbol(readonly))
) {
- if (msbFlag == true) {
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- u.intVal = num;
+ u.intVal = num;
#else
- u.bytes[0] = (num >> 24) & 0xFF;
- u.bytes[1] = (num >> 16) & 0xFF;
- u.bytes[2] = (num >> 8) & 0xFF;
- u.bytes[3] = num & 0xFF;
+ u.bytes[0] = (num >> 24) & 0xFF;
+ u.bytes[1] = (num >> 16) & 0xFF;
+ u.bytes[2] = (num >> 8) & 0xFF;
+ u.bytes[3] = num & 0xFF;
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- u.intVal = num;
+ u.intVal = num;
#else
- u.bytes[3] = (num >> 24) & 0xFF;
- u.bytes[2] = (num >> 16) & 0xFF;
- u.bytes[1] = (num >> 8) & 0xFF;
- u.bytes[0] = num & 0xFF;
+ u.bytes[3] = (num >> 24) & 0xFF;
+ u.bytes[2] = (num >> 16) & 0xFF;
+ u.bytes[1] = (num >> 8) & 0xFF;
+ u.bytes[0] = num & 0xFF;
#endif
- }
-
- f = __FILEVal(fp);
- if (_buffered = (__INST(buffered) == true)) {
- __WRITING__(f)
- }
- __WRITEBYTES__(cnt, f, u.bytes, 4, _buffered);
-
- if (cnt == 4) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
- }
- RETURN ( self );
- }
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ }
+
+ f = __FILEVal(fp);
+ if (_buffered = (__INST(buffered) == true)) {
+ __WRITING__(f)
+ }
+ __WRITEBYTES__(cnt, f, u.bytes, 4, _buffered);
+
+ if (cnt == 4) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 4);
+ }
+ RETURN ( self );
+ }
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
}
badArg: ;
%}.
@@ -3249,7 +3252,7 @@
lastErrorNumber notNil ifTrue:[self writeError. ^ self].
aNumber isInteger ifTrue:[
- ^ super nextPutLong:aNumber MSB:msbFlag
+ ^ super nextPutLong:aNumber MSB:msbFlag
].
self argumentMustBeInteger
!
@@ -3263,8 +3266,8 @@
%{
int num;
union {
- char bytes[2];
- short shortVal;
+ char bytes[2];
+ short shortVal;
} u;
FILEPOINTER f;
@@ -3273,41 +3276,41 @@
__INST(lastErrorNumber) = nil;
if (((fp = __INST(filePointer)) != nil)
- && (__INST(mode) != @symbol(readonly))
- && __isSmallInteger(aNumber)
+ && (__INST(mode) != @symbol(readonly))
+ && __isSmallInteger(aNumber)
) {
- num = __intVal(aNumber);
- if (msbFlag == true) {
+ num = __intVal(aNumber);
+ if (msbFlag == true) {
#if defined(__MSBFIRST)
- u.shortVal = num;
+ u.shortVal = num;
#else
- u.bytes[0] = (num >> 8) & 0xFF;
- u.bytes[1] = num & 0xFF;
+ u.bytes[0] = (num >> 8) & 0xFF;
+ u.bytes[1] = num & 0xFF;
#endif
- } else {
+ } else {
#if defined(__LSBFIRST)
- u.shortVal = num;
+ u.shortVal = num;
#else
- u.bytes[1] = (num >> 8) & 0xFF;
- u.bytes[0] = num & 0xFF;
+ u.bytes[1] = (num >> 8) & 0xFF;
+ u.bytes[0] = num & 0xFF;
#endif
- }
-
- f = __FILEVal(fp);
- if (_buffered = (__INST(buffered) == true)) {
- __WRITING__(f)
- }
- __WRITEBYTES__(cnt, f, u.bytes, 2, _buffered);
-
- if (cnt == 2) {
- OBJ pos;
-
- if ((pos = __INST(position)) != nil) {
- __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
- }
- RETURN ( self );
- }
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ }
+
+ f = __FILEVal(fp);
+ if (_buffered = (__INST(buffered) == true)) {
+ __WRITING__(f)
+ }
+ __WRITEBYTES__(cnt, f, u.bytes, 2, _buffered);
+
+ if (cnt == 2) {
+ OBJ pos;
+
+ if ((pos = __INST(position)) != nil) {
+ __INST(position) = __MKSMALLINT(__intVal(pos) + 2);
+ }
+ RETURN ( self );
+ }
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
}
%}.
lastErrorNumber notNil ifTrue:[^ self writeError. ^ self].
@@ -3340,26 +3343,26 @@
if (__isSmallInteger(aFileDescriptor)
&& (__qClass(openmode)== @global(String))) {
- f = (FILEPOINTER) fdopen(__intVal(aFileDescriptor), (char *)__stringVal(openmode));
- if (f == NULL) {
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- __INST(position) = nil;
- } else {
- __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
- __INST(position) = __MKSMALLINT(1);
- retVal = self;
- }
+ f = (FILEPOINTER) fdopen(__intVal(aFileDescriptor), (char *)__stringVal(openmode));
+ if (f == NULL) {
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ __INST(position) = nil;
+ } else {
+ __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
+ __INST(position) = __MKSMALLINT(1);
+ retVal = self;
+ }
}
%}.
retVal notNil ifTrue:[
- buffered := true. "default is buffered"
- Lobby register:self
+ buffered := true. "default is buffered"
+ Lobby register:self
].
lastErrorNumber notNil ifTrue:[
- "
- the open failed for some reason ...
- "
- ^ self openError
+ "
+ the open failed for some reason ...
+ "
+ ^ self openError
].
^ retVal
!
@@ -3376,24 +3379,24 @@
OBJ fp;
if (__isString(aPath)) {
- __BEGIN_INTERRUPTABLE__
- do {
- f = fopen((char *) __stringVal(aPath), (char *) __stringVal(mode));
- } while ((f == NULL) && (errno == EINTR));
- __END_INTERRUPTABLE__
- if (f == NULL) {
- __INST(lastErrorNumber) = __MKSMALLINT(errno);
- } else {
- __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
- ok = true;
- }
+ __BEGIN_INTERRUPTABLE__
+ do {
+ f = fopen((char *) __stringVal(aPath), (char *) __stringVal(mode));
+ } while ((f == NULL) && (errno == EINTR));
+ __END_INTERRUPTABLE__
+ if (f == NULL) {
+ __INST(lastErrorNumber) = __MKSMALLINT(errno);
+ } else {
+ __INST(filePointer) = fp = __MKFILEPOINTER(f); __STORE(self, fp);
+ ok = true;
+ }
}
%}.
ok ifFalse:[
- "
- the open failed for some reason ...
- "
- ^ self openError
+ "
+ the open failed for some reason ...
+ "
+ ^ self openError
].
position := 1.
Lobby register:self.
@@ -4867,6 +4870,6 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.196 1999-08-04 14:12:48 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.197 1999-08-17 10:15:44 cg Exp $'
! !
ExternalStream initialize!
--- a/ExternalStream_win32.st Thu Aug 12 12:33:40 1999 +0200
+++ b/ExternalStream_win32.st Tue Aug 17 12:15:45 1999 +0200
@@ -2211,9 +2211,12 @@
"/ concatenation in your exception handler (the receiver and the partial
"/ line are passed as parameter)
- ^ LineTooLongErrorSignal
- raiseRequestWith:(Array with:self with:line)
- errorString:('line too long read error')
+ LineTooLongErrorSignal isHandled ifTrue:[
+ ^ LineTooLongErrorSignal
+ raiseRequestWith:(Array with:self with:line)
+ errorString:('line too long read error')
+ ].
+ ^ line , self nextLine
].
hitEOF ifTrue:[^ self pastEnd].
@@ -5051,6 +5054,6 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExternalStream_win32.st,v 1.13 1999-07-10 10:39:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExternalStream_win32.st,v 1.14 1999-08-17 10:15:45 cg Exp $'
! !
ExternalStream initialize!