ExtStream.st
changeset 1304 60d726d6d526
parent 1295 83f594f05c52
child 1305 0f1786242c30
--- a/ExtStream.st	Fri Apr 26 09:12:36 1996 +0200
+++ b/ExtStream.st	Fri Apr 26 09:36:28 1996 +0200
@@ -999,6 +999,7 @@
 
 		__BEGIN_INTERRUPTABLE__
 
+		errno = 0;
 		if (__INST(buffered) == true) {
 		    __WRITING__(f)
 		    cnt = fwrite(cp, 1, len, f);
@@ -1166,6 +1167,7 @@
 
 	    __BEGIN_INTERRUPTABLE__
 	    do {
+		errno = 0;
 		cp = fgets(buffer, sizeof(buffer)-1, f);
 	    } while ((cp == NULL) && (errno == EINTR));
 	    buffer[sizeof(buffer)-1] = '\0';
@@ -1297,6 +1299,7 @@
 
 	    __BEGIN_INTERRUPTABLE__
 	    do {
+		errno = 0;
 		ret = ioctl(fileno(f), ioNum);
 	    } while ((ret < 0) && (errno == EINTR));
 	    __END_INTERRUPTABLE__
@@ -1342,6 +1345,7 @@
 
 	    __BEGIN_INTERRUPTABLE__
 	    do {
+		errno = 0;
 		if (__isSmallInteger(arg)) {
 		    ret = ioctl(fileno(f), ioNum, __intVal(arg));
 		} else {
@@ -1466,6 +1470,7 @@
 
         __BEGIN_INTERRUPTABLE__
         do {
+	    errno = 0;
             if (__INST(buffered) == false) {
                 cnt = read(fileno(f), &byte, 1);
             } else {
@@ -2026,6 +2031,7 @@
 		cnt = fwrite(&c, 1, 1, f);
 	    } else {
 		do {
+	    	    errno = 0;
 		    cnt = write(fileno(f), &c, 1);
 		} while ((cnt < 0) && (errno == EINTR));
 	    }
@@ -2105,11 +2111,13 @@
 		    /* do not handle interrupts here.
 		     * fwrite is not ineterruot capable!
 		     */
+	    	    errno = 0;
 		    __WRITING__(f)
 		    cnt = fwrite(cp, 1, cnt, f);
 		} else {
 		    for (;;) {
 			cp = (char *)__InstPtr(anObject) + nInstBytes + offs;
+	    	        errno = 0;
 			ret = write(fileno(f), cp, cnt);
 			if (ret < 0) {
 			    if (errno == EINTR) {
@@ -2193,10 +2201,12 @@
 	__BEGIN_INTERRUPTABLE__
 
 	if (__INST(buffered) == true) {
+	    errno = 0;
 	    __WRITING__(f)
 	    cnt = fwrite(bytes, 1, 4, f);
 	} else {
 	    do {
+	    	errno = 0;
 		cnt = write(fileno(f), bytes, 4);
 	    } while ((cnt < 0) && (errno == EINTR));
 	}
@@ -2259,11 +2269,13 @@
         __BEGIN_INTERRUPTABLE__
 
         if (__INST(buffered) == true) {
+	    errno = 0;
             __WRITING__(f)
             cnt = fwrite(bytes, 1, 2, f);
         } else {
             int offs = 0;
             do {
+	        errno = 0;
                 cnt = write(fileno(f), bytes+offs, 2-offs);
                 if (cnt > 0)
                     offs += cnt;
@@ -2485,6 +2497,7 @@
             __READING__(f)
 
             do {
+	        errno = 0;
                 c = getc(f);
             } while ((c < 0) && (errno == EINTR));
             __END_INTERRUPTABLE__
@@ -2557,6 +2570,7 @@
          */
         for (;;) {
             do {
+	        errno = 0;
                 ch = getc(f);
             } while ((ch < 0) && (errno == EINTR));
 
@@ -2583,6 +2597,7 @@
         len = 0;
         for (;;) {
             do {
+	        errno = 0;
                 ch = getc(f);
             } while ((ch < 0) && (errno == EINTR));
             if (ch < 0) {
@@ -2673,6 +2688,7 @@
 
         __BEGIN_INTERRUPTABLE__
         do {
+	    errno = 0;
             c = getc(f);
         } while ((c < 0) && (errno == EINTR));
         __END_INTERRUPTABLE__
@@ -2743,6 +2759,7 @@
 
         __BEGIN_INTERRUPTABLE__
         do {
+	    errno = 0;
             c = getc(f);
         } while (c < 0 && (errno == EINTR));
         __END_INTERRUPTABLE__
@@ -2767,6 +2784,7 @@
                 if (c == '!') {
                     __BEGIN_INTERRUPTABLE__
                     do {
+	    	        errno = 0;
                         c = getc(f);
                     } while (c < 0 && (errno == EINTR));
                     __END_INTERRUPTABLE__
@@ -2855,7 +2873,6 @@
             __READING__(f)
 
             for (;;) {
-                errno = 0;
                 do {
                     errno = 0;
                     if (__INST(buffered) == false) {
@@ -2926,9 +2943,9 @@
 
         __READING__(f)
 
-        errno = 0;
         __BEGIN_INTERRUPTABLE__
         do {
+            errno = 0;
             c = getc(f);
         } while ((c < 0) && (errno == EINTR));
         __END_INTERRUPTABLE__
@@ -2984,6 +3001,7 @@
             
             __READING__(f)
 
+            errno = 0;
             __BEGIN_INTERRUPTABLE__
             if (fgets(buffer, sizeof(buffer)-1, f) != NULL) {
                 __END_INTERRUPTABLE__
@@ -3027,6 +3045,7 @@
             __BEGIN_INTERRUPTABLE__
             while (1) {
                 do {
+		    errno = 0;
                     c = getc(f);
                 } while ((c < 0) && (errno == EINTR));
 
@@ -3088,6 +3107,7 @@
                 
 
                 do {
+		    errno = 0;
                     c = getc(f);
                 } while ((c < 0) && (errno == EINTR));
 
@@ -3155,6 +3175,7 @@
         __BEGIN_INTERRUPTABLE__
         while (1) {
             do {
+		errno = 0;
                 c = getc(f);
             } while ((c < 0) && (errno == EINTR));
 
@@ -3289,6 +3310,7 @@
 
 	__BEGIN_INTERRUPTABLE__
 	do {
+	    errno = 0;
 	    c = getc(f);
 	} while ((c < 0) && (errno == EINTR) && (clearerr(f), 1));
 	__END_INTERRUPTABLE__
@@ -3498,10 +3520,12 @@
 	    __BEGIN_INTERRUPTABLE__
 
 	    if (__INST(buffered) == true) {
+	        errno = 0;
 		__WRITING__(f)
 		cnt = fwrite(cp, 1, len, f);
 	    } else {
 		do {
+	            errno = 0;
 		    cnt = write(fileno(f), cp, len);
 		} while ((cnt < 0) && (errno == EINTR));
 	    }
@@ -3549,10 +3573,12 @@
 		    __WRITING__(f)
 
 		    do {
+	                errno = 0;
 			cnt = fwrite(&c, 1, 1, f);
 		    } while ((cnt != 1) && (errno == EINTR));
 		} else {
 		    do {
+	                errno = 0;
 			cnt = write(fileno(f), &c, 1);
 		    } while ((cnt != 1) && (errno == EINTR));
 		}
@@ -3639,6 +3665,7 @@
                  */
                 do {
                     cp = __ByteArrayInstPtr(aCollection)->ba_element + offs;
+	            errno = 0;
                     cc = write(fileno(f), cp, rest);
                     if (cc > 0) {
                         cnt += cc;
@@ -3653,6 +3680,7 @@
                 } while (rest);
             } else {
                 __BEGIN_INTERRUPTABLE__
+	        errno = 0;
                 __WRITING__(f)
                 cnt = fwrite(cp, 1, len, f);
                 __END_INTERRUPTABLE__
@@ -3734,10 +3762,12 @@
 		__BEGIN_INTERRUPTABLE__
 
 		if (__INST(buffered) == true) {
+	            errno = 0;
 		    __WRITING__(f)
 		    cnt = fwrite(cp+index1-1, 1, len, f);
 		} else {
 		    do {
+	                errno = 0;
 			cp = __ByteArrayInstPtr(aCollection)->ba_element + offs;
 			cnt = write(fileno(f), cp+offs, len);
 		    } while ((cnt < 0) && (errno == EINTR));
@@ -3782,6 +3812,6 @@
 !ExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.99 1996-04-25 17:02:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.100 1996-04-26 07:36:28 cg Exp $'
 ! !
 ExternalStream initialize!