FileStream.st
changeset 6333 9682533bce75
parent 6267 10016cc16511
child 6339 5b07b084a2fc
--- 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!