--- a/ExternalStream.st Fri May 23 21:42:31 2014 +0200
+++ b/ExternalStream.st Mon May 26 20:25:27 2014 +0200
@@ -299,7 +299,7 @@
} else { \
for (;;) { \
CLEAR_ERRNO; \
- READ(ret, f, buf, 1, handleType); \
+ READ((ret), f, buf, 1, handleType); \
if ((ret) >= 0 || __threadErrno != EINTR) \
break; \
} \
@@ -343,7 +343,7 @@
(ret) = 1; \
} else { \
CLEAR_ERRNO; \
- READ(ret, f, (buf)+__offs, (cnt)-__offs, handleType); \
+ READ((ret), f, (buf)+__offs, (cnt)-__offs, handleType); \
if ((ret) <= 0) { \
if ((ret) < 0 && __threadErrno == EINTR) { \
continue; \
@@ -380,8 +380,7 @@
} \
(buf)[__offs++] = (ret); \
} \
- if (__offs > 0) \
- (ret) = __offs; \
+ (ret) = __offs; \
} else { \
while (__offs < (cnt)) { \
OBJ rA = __INST(readAhead); \
@@ -397,25 +396,27 @@
int res = 0; \
if ((handleType == @symbol(socketFilePointer) && (ioctlsocket((SOCKET)_get_osfhandle(fileno(f)),FIONREAD,&res), 1)) \
|| (handleType == @symbol(socketHandle) && (ioctlsocket((SOCKET)(f), FIONREAD, &res), 1)) \
- || (handleType == @symbol(pipeFilePointer) && (PeekNamedPipe((HANDLE)_get_osfhandle(fileno(f)),0, 0,0,&res,0)), 1)) { \
+ || (handleType == @symbol(pipeFilePointer) && (PeekNamedPipe((HANDLE)_get_osfhandle(fileno(f)),0, 0,0,&res,0), 1))) { \
if (res > 0) { \
if (res > ((cnt)-__offs)) \
res = (cnt)-__offs; \
- READ(ret, f, (buf)+__offs, res, handleType); \
+ READ((ret), f, (buf)+__offs, res, handleType); \
} else { \
(ret) = 0; \
break; \
} \
} else { \
- READ(ret, f, (buf)+__offs, (cnt)-__offs, handleType); \
+ READ((ret), f, (buf)+__offs, (cnt)-__offs, handleType); \
} \
} \
- if ((ret) < 0 && __threadErrno == EINTR) \
- continue; \
+ if ((ret) <= 0) { \
+ if (ret < 0 && __threadErrno == EINTR) \
+ continue; \
+ break; \
+ } \
__offs += (ret); \
} \
- if (__offs > 0) \
- (ret) = __offs; \
+ (ret) = __offs; \
} \
}
@@ -464,7 +465,7 @@
l = (cnt)-__offs; \
if ( l > IO_BUFFER_SIZE) \
l = IO_BUFFER_SIZE; \
- READ(ret,f, __buf, l, handleType); \
+ READ((ret),f, __buf, l, handleType); \
if ((ret) <= 0) { \
if ((ret) < 0 && __threadErrno == EINTR) { \
continue; \
@@ -537,13 +538,13 @@
|| (handleType == @symbol(pipeFilePointer) && (PeekNamedPipe((HANDLE)_get_osfhandle(fileno(f)),0,0,0,&res,0), 1))) { \
if (res > 0) { \
if (res > l) res = l; \
- READ(ret, f, __buf, res, handleType); \
+ READ((ret), f, __buf, res, handleType); \
} else { \
(ret) = 0; \
break; \
} \
} else { \
- READ(ret, f, __buf, l, handleType); \
+ READ((ret), f, __buf, l, handleType); \
} \
if ((ret) < 0 && __threadErrno == EINTR) \
continue; \
@@ -5886,11 +5887,11 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.388 2014-05-22 12:24:44 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.389 2014-05-26 18:25:27 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.388 2014-05-22 12:24:44 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.389 2014-05-26 18:25:27 stefan Exp $'
! !