--- a/Unix.st Tue Aug 05 16:07:50 1997 +0200
+++ b/Unix.st Tue Aug 05 16:09:39 1997 +0200
@@ -464,15 +464,15 @@
* explicit add of those we know to have ...
*/
#ifdef __osf__
-# define TIME_T time_t
-# define OFF_T off_t
+# define TIME_T time_t
+# define OFF_T off_t
#endif
#ifndef TIME_T
-# define TIME_T long
+# define TIME_T long
#endif
#ifndef OFF_T
-# define OFF_T long
+# define OFF_T long
#endif
%}
@@ -4707,7 +4707,7 @@
} while ((ret < 0) && (errno == EINTR));
__END_INTERRUPTABLE__
if (ret < 0) {
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
RETURN (false);
}
RETURN ( ret ? false : true );
@@ -4794,7 +4794,7 @@
mtime = __MKUINT(buf.st_mtime);
ctime = __MKUINT(buf.st_ctime);
if ((ret = readlink((char *) __stringVal(aPathName), pathBuffer, sizeof(pathBuffer))) < 0) {
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
RETURN ( nil );
}
pathBuffer[ret] = '\0'; /* readlink does not 0-terminate */
@@ -5818,7 +5818,7 @@
#ifndef MSDOS_LIKE
if (__bothSmallInteger(signalNumber, processId)) {
if (kill(__intVal(processId), __intVal(signalNumber)) < 0) {
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
RETURN ( false );
}
RETURN ( true );
@@ -7294,7 +7294,7 @@
if (address != (void *)-1) {
RETURN (__MKEXTERNALBYTES(addr));
}
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
RETURN (nil);
}
#endif
@@ -7320,7 +7320,7 @@
if (rslt != -1) {
RETURN (true);
}
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
RETURN (false);
}
#endif
@@ -7345,7 +7345,7 @@
if (rslt != -1) {
RETURN (__MKSMALLINT(rslt));
}
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
RETURN (nil);
}
#endif
@@ -8685,12 +8685,17 @@
}
} else {
if (ret < 0) {
- if (errno != EINTR) {
+ if (errno == EINTR) {
+ errno = 0;
+ @global(OperatingSystem:LastErrorNumber) = nil;
+ } else {
if (@global(InfoPrinting) == true) {
fprintf(stderr, "OS [info]: select errno = %d\n", errno);
}
- OperatingSystem_LastErrorNumber = __MKSMALLINT(errno);
+ @global(OperatingSystem:LastErrorNumber) = __MKSMALLINT(errno);
}
+ } else {
+ @global(OperatingSystem:LastErrorNumber) = nil;
}
}
@@ -9013,6 +9018,6 @@
!OperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.237 1997-07-28 18:56:30 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/Unix.st,v 1.238 1997-08-05 14:09:39 cg Exp $'
! !
OperatingSystem initialize!