--- a/ExternalStream.st Tue Mar 20 14:14:03 2007 +0100
+++ b/ExternalStream.st Tue Mar 20 20:29:47 2007 +0100
@@ -208,14 +208,11 @@
#endif
#ifdef WIN32
-//# define __HANDLEVal(o) (HFILE)(__externalAddressVal(o))
-int _rtl_read();
-int _rtl_write();
-
-int _rtl_read();
-int _rtl_write();
# ifdef __BORLANDC__
+ int _rtl_read();
+ int _rtl_write();
+
# define READ(ret,f, cp, n) \
{ int __res;\
HANDLE h; \
@@ -237,26 +234,38 @@
# else /* MSC */
# define READ(ret,f, cp, n) \
{ int __res;\
+ int fd; \
HANDLE h; \
- h = _get_osfhandle(fileno(f)); \
- if (ioctlsocket((SOCKET)h,FIONREAD,&__res)==0) \
- (ret) = __STX_WSA_NOINT_CALL4("recv", recv, h, (cp), (n), 0);\
+ fd = fileno(f); \
+ if (ioctlsocket((SOCKET)fd,FIONREAD,&__res)==0) \
+ (ret) = __STX_WSA_NOINT_CALL4("recv", recv, fd, (cp), (n), 0);\
else { \
- (ret) = __STX_API_NOINT_CALL5("ReadFile", ReadFile, h, (cp), (n), &__res, 0);\
- if (ret) \
- ret = __res; \
+ h = _get_osfhandle(fd); \
+ if (ioctlsocket((SOCKET)h,FIONREAD,&__res)==0) \
+ (ret) = __STX_WSA_NOINT_CALL4("recv", recv, h, (cp), (n), 0);\
+ else { \
+ (ret) = __STX_API_NOINT_CALL5("ReadFile", ReadFile, h, (cp), (n), &__res, 0);\
+ if (ret) \
+ ret = __res; \
+ } \
} \
}
# define WRITE(ret,f, cp, n) \
{ int __res;\
+ int fd; \
HANDLE h; \
- h = _get_osfhandle(fileno(f)); \
- if (ioctlsocket((SOCKET)h,FIONREAD,&__res)==0) \
- (ret) = __STX_WSA_NOINT_CALL4("send", send, h, (cp), (n), 0);\
+ fd = fileno(f); \
+ if (ioctlsocket((SOCKET)fd,FIONREAD,&__res)==0) \
+ (ret) = __STX_WSA_NOINT_CALL4("send", send, fd, (cp), (n), 0);\
else {\
- (ret) = __STX_API_NOINT_CALL5("WriteFile", WriteFile, h, (cp), (n), &__res, 0);\
- if (ret) \
- ret = __res; \
+ h = _get_osfhandle(fd); \
+ if (ioctlsocket((SOCKET)h,FIONREAD,&__res)==0) \
+ (ret) = __STX_WSA_NOINT_CALL4("send", send, h, (cp), (n), 0);\
+ else {\
+ (ret) = __STX_API_NOINT_CALL5("WriteFile", WriteFile, h, (cp), (n), &__res, 0);\
+ if (ret) \
+ ret = __res; \
+ } \
} \
}
# endif /* MSC */
@@ -5902,7 +5911,7 @@
!ExternalStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.305 2007-03-15 17:34:28 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.306 2007-03-20 19:29:47 cg Exp $'
! !
ExternalStream initialize!