--- a/FileStream.st Mon Dec 17 16:37:01 2001 +0100
+++ b/FileStream.st Tue Dec 18 11:33:15 2001 +0100
@@ -178,28 +178,6 @@
// extern long lseek();
-# define SEEK(ret,f,nP,buffered) \
- if (buffered) { \
- ret = STX_C_CALL3( "fseek", fseek, f, nP, SEEK_SET); \
- } else { \
- OBJ rA = __INST(readAhead); \
- if (rA != nil) { \
- __INST(readAhead) = nil; \
- } \
- ret = STX_C_CALL3( "lseek", lseek, fileno(f), nP, SEEK_SET); \
- }
-
-# define TOEND(ret,f,buffered) \
- if (buffered) { \
- ret = STX_C_CALL3( "fseek", fseek, f, 0L, SEEK_END); \
- } else { \
- OBJ rA = __INST(readAhead); \
- if (rA != nil) { \
- __INST(readAhead) = nil; \
- } \
- ret = STX_C_CALL3( "lseek", lseek, fileno(f), 0L, SEEK_END); \
- }
-
#endif /* WIN32 */
/*
@@ -644,15 +622,24 @@
#ifdef WIN32
__threadErrno = 0;
if (__INST(buffered) == true) {
+# if 0
currentPosition = STX_C_CALL1( "ftell", ftell, f);
+# else
+ currentPosition = ftell(f);
+# endif
} else {
OBJ rA = __INST(readAhead);
+ long offs = 0L;
+
if (rA != nil) {
__INST(readAhead) = nil;
- currentPosition = STX_C_CALL3( "lseek", lseek, fileno(f), -1L, SEEK_CUR);
- } else {
- currentPosition = STX_C_CALL3( "lseek", lseek, fileno(f), 0L, SEEK_CUR);
+ offs = -1L;
}
+# if 0
+ currentPosition = STX_C_CALL3( "lseek", lseek, fileno(f), offs, SEEK_CUR);
+# else
+ currentPosition = lseek(fileno(f), offs, SEEK_CUR);
+# endif
}
#else
if (__INST(buffered) == true) {
@@ -702,7 +689,13 @@
do {
#ifdef WIN32
- SEEK(ret,f,nP,__INST(buffered) == true);
+ __threadErrno = 0;
+ if (__INST(buffered) == true) {
+ ret = STX_C_CALL3( "fseek", fseek, f, nP, SEEK_SET);
+ } else {
+ __INST(readAhead) = nil;
+ ret = STX_C_CALL3( "lseek", lseek, fileno(f), nP, SEEK_SET);
+ }
#else
if (__INST(buffered) == true) {
ret = fseek(f, nP, SEEK_SET);
@@ -758,7 +751,13 @@
__INST(position) = nil;
do {
#ifdef WIN32
- TOEND(ret,f,__INST(buffered) == true);
+ __threadErrno = 0;
+ if (__INST(buffered) == true) {
+ ret = STX_C_CALL3( "fseek", fseek, f, 0L, SEEK_END);
+ } else {
+ __INST(readAhead) = nil;
+ ret = STX_C_CALL3( "lseek", lseek, fileno(f), 0L, SEEK_END);
+ }
#else
if (__INST(buffered) == true) {
ret = fseek(f, 0L, SEEK_END);
@@ -1313,6 +1312,6 @@
!FileStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.79 2001-12-10 16:29:17 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/FileStream.st,v 1.80 2001-12-18 10:33:15 cg Exp $'
! !
FileStream initialize!