UnixOperatingSystem.st
changeset 3558 5a6c4b491b95
parent 3556 03e4132de6da
child 3561 9a117ea69e2f
--- a/UnixOperatingSystem.st	Fri Jun 12 16:28:46 1998 +0200
+++ b/UnixOperatingSystem.st	Fri Jun 12 16:31:54 1998 +0200
@@ -2437,499 +2437,503 @@
     OBJ eno = errNr;
 
     if (__isSmallInteger(eno)) {
-	switch (__intVal(eno)) {
-	    /*
-	     * POSIX errnos - these should be defined
-	     */
+        switch (__intVal(eno)) {
+            /*
+             * POSIX errnos - these should be defined
+             */
 #ifdef EPERM
-	    case EPERM:
-		msg = "Operation not permitted";
-		sym = @symbol(EPERM);
-		break;
+            case EPERM:
+                msg = "Operation not permitted";
+                sym = @symbol(EPERM);
+                break;
 #endif
 #ifdef ENOENT
-	    case ENOENT:
-		msg = "No such file or directory";
-		sym = @symbol(ENOENT);
-		break;
+            case ENOENT:
+                msg = "No such file or directory";
+                sym = @symbol(ENOENT);
+                break;
 #endif
 #ifdef ESRCH
-	    case ESRCH:
-		msg = "No such process";
-		sym = @symbol(ESRCH);
-		break;
+            case ESRCH:
+                msg = "No such process";
+                sym = @symbol(ESRCH);
+                break;
 #endif
 #ifdef EINTR
-	    case EINTR:
-		msg = "Interrupted system call";
-		sym = @symbol(EINTR);
-		break;
+            case EINTR:
+                msg = "Interrupted system call";
+                sym = @symbol(EINTR);
+                break;
 #endif
 #ifdef EIO
-	    case EIO:
-		msg = "I/O error";
-		sym = @symbol(EIO);
-		break;
+            case EIO:
+                msg = "I/O error";
+                sym = @symbol(EIO);
+                break;
 #endif
 #ifdef ENXIO
-	    case ENXIO:
-		msg = "No such device or address";
-		sym = @symbol(ENXIO);
-		break;
+            case ENXIO:
+                msg = "No such device or address";
+                sym = @symbol(ENXIO);
+                break;
 #endif
 #ifdef E2BIG
-	    case E2BIG:
-		msg = "Arg list too long";
-		sym = @symbol(E2BIG);
-		break;
+            case E2BIG:
+                msg = "Arg list too long";
+                sym = @symbol(E2BIG);
+                break;
 #endif
 #ifdef ENOEXEC
-	    case ENOEXEC:
-		msg = "Exec format error";
-		sym = @symbol(ENOEXEC);
-		break;
+            case ENOEXEC:
+                msg = "Exec format error";
+                sym = @symbol(ENOEXEC);
+                break;
 #endif
 #ifdef EBADF
-	    case EBADF:
-		msg = "Bad file number";
-		sym = @symbol(EBADF);
-		break;
+            case EBADF:
+                msg = "Bad file number";
+                sym = @symbol(EBADF);
+                break;
 #endif
 #ifdef ECHILD
-	    case ECHILD:
-		msg = "No child processes";
-		sym = @symbol(ECHILD);
-		break;
+            case ECHILD:
+                msg = "No child processes";
+                sym = @symbol(ECHILD);
+                break;
 #endif
 #if !defined(EWOULDBLOCK) && defined(EAGAIN) && (EWOULDBLOCK != EAGAIN)
-	    case EAGAIN:
-		msg = "Try again";
-		sym = @symbol(EAGAIN);
-		break;
+            case EAGAIN:
+                msg = "Try again";
+                sym = @symbol(EAGAIN);
+                break;
 #endif
 #ifdef ENOMEM
-	    case ENOMEM:
-		msg = "Out of memory";
-		sym = @symbol(ENOMEM);
-		break;
+            case ENOMEM:
+                msg = "Out of memory";
+                sym = @symbol(ENOMEM);
+                break;
 #endif
 #ifdef EACCES
-	    case EACCES:
-		msg = "Permission denied";
-		sym = @symbol(EACCES);
-		break;
+            case EACCES:
+                msg = "Permission denied";
+                sym = @symbol(EACCES);
+                break;
 #endif
 #ifdef EFAULT
-	    case EFAULT:
-		msg = "Bad address";
-		sym = @symbol(EFAULT);
-		break;
+            case EFAULT:
+                msg = "Bad address";
+                sym = @symbol(EFAULT);
+                break;
 #endif
 #ifdef EBUSY
-	    case EBUSY:
-		msg = "Device or resource busy";
-		sym = @symbol(EBUSY);
-		break;
+            case EBUSY:
+                msg = "Device or resource busy";
+                sym = @symbol(EBUSY);
+                break;
 #endif
 #ifdef EEXIST
-	    case EEXIST:
-		msg = "File exists";
-		sym = @symbol(EEXIST);
-		break;
+            case EEXIST:
+                msg = "File exists";
+                sym = @symbol(EEXIST);
+                break;
 #endif
 #ifdef EXDEV
-	    case EXDEV:
-		msg = "Cross-device link";
-		sym = @symbol(EXDEV);
-		break;
+            case EXDEV:
+                msg = "Cross-device link";
+                sym = @symbol(EXDEV);
+                break;
 #endif
 #ifdef ENODEV
-	    case ENODEV:
-		msg = "No such device";
-		sym = @symbol(ENODEV);
-		break;
+            case ENODEV:
+                msg = "No such device";
+                sym = @symbol(ENODEV);
+                break;
 #endif
 #ifdef ENOTDIR
-	    case ENOTDIR:
-		msg = "Not a directory";
-		sym = @symbol(ENOTDIR);
-		break;
+            case ENOTDIR:
+                msg = "Not a directory";
+                sym = @symbol(ENOTDIR);
+                break;
 #endif
 #ifdef EISDIR
-	    case EISDIR:
-		msg = "Is a directory";
-		sym = @symbol(EISDIR);
-		break;
+            case EISDIR:
+                msg = "Is a directory";
+                sym = @symbol(EISDIR);
+                break;
 #endif
 #ifdef EINVAL
-	    case EINVAL:
-		msg = "Invalid argument";
-		sym = @symbol(EINVAL);
-		break;
+            case EINVAL:
+                msg = "Invalid argument";
+                sym = @symbol(EINVAL);
+                break;
 #endif
 #ifdef ENFILE
-	    case ENFILE:
-		msg = "File table overflow";
-		sym = @symbol(ENFILE);
-		break;
+            case ENFILE:
+                msg = "File table overflow";
+                sym = @symbol(ENFILE);
+                break;
 #endif
 #ifdef EMFILE
-	    case EMFILE:
-		msg = "Too many open files";
-		sym = @symbol(EMFILE);
-		break;
+            case EMFILE:
+                msg = "Too many open files";
+                sym = @symbol(EMFILE);
+                break;
 #endif
 #ifdef ENOTTY
-	    case ENOTTY:
-		msg = "Not a typewriter";
-		sym = @symbol(ENOTTY);
-		break;
+            case ENOTTY:
+                msg = "Not a typewriter";
+                sym = @symbol(ENOTTY);
+                break;
 #endif
 #ifdef EFBIG
-	    case EFBIG:
-		msg = "File too large";
-		sym = @symbol(EFBIG);
-		break;
+            case EFBIG:
+                msg = "File too large";
+                sym = @symbol(EFBIG);
+                break;
 #endif
 #ifdef ENOSPC
-	    case ENOSPC:
-		msg = "No space left on device";
-		sym = @symbol(ENOSPC);
-		break;
+            case ENOSPC:
+                msg = "No space left on device";
+                sym = @symbol(ENOSPC);
+                break;
 #endif
 #ifdef ESPIPE
-	    case ESPIPE:
-		msg = "Illegal seek";
-		sym = @symbol(ESPIPE);
-		break;
+            case ESPIPE:
+                msg = "Illegal seek";
+                sym = @symbol(ESPIPE);
+                break;
 #endif
 #ifdef EROFS
-	    case EROFS:
-		msg = "Read-only file system";
-		sym = @symbol(EROFS);
-		break;
+            case EROFS:
+                msg = "Read-only file system";
+                sym = @symbol(EROFS);
+                break;
 #endif
 #ifdef EMLINK
-	    case EMLINK:
-		msg = "Too many links";
-		sym = @symbol(EMLINK);
-		break;
+            case EMLINK:
+                msg = "Too many links";
+                sym = @symbol(EMLINK);
+                break;
 #endif
 #ifdef EPIPE
-	    case EPIPE:
-		msg = "Broken pipe";
-		sym = @symbol(EPIPE);
-		break;
+            case EPIPE:
+                msg = "Broken pipe";
+                sym = @symbol(EPIPE);
+                break;
 #endif
 #ifdef EDOM
-	    case EDOM:
-		msg = "Math argument out of domain";
-		sym = @symbol(EDOM);
-		break;
+            case EDOM:
+                msg = "Math argument out of domain";
+                sym = @symbol(EDOM);
+                break;
 #endif
 #ifdef ERANGE
-	    case ERANGE:
-		msg = "Math result not representable";
-		sym = @symbol(ERANGE);
-		break;
+            case ERANGE:
+                msg = "Math result not representable";
+                sym = @symbol(ERANGE);
+                break;
 #endif
 #ifdef EDEADLK
 # if EDEADLK != EWOULDBLOCK
-	    case EDEADLK:
-		msg = "Resource deadlock would occur";
-		sym = @symbol(EDEADLK);
-		break;
+            case EDEADLK:
+                msg = "Resource deadlock would occur";
+                sym = @symbol(EDEADLK);
+                break;
 # endif
 #endif
 #ifdef ENAMETOOLONG
-	    case ENAMETOOLONG:
-		msg = "File name too long";
-		sym = @symbol(ENAMETOOLONG);
-		break;
+            case ENAMETOOLONG:
+                msg = "File name too long";
+                sym = @symbol(ENAMETOOLONG);
+                break;
 #endif
 #ifdef ENOLCK
-	    case ENOLCK:
-		msg = "No record locks available";
-		sym = @symbol(ENOLCK);
-		break;
+            case ENOLCK:
+                msg = "No record locks available";
+                sym = @symbol(ENOLCK);
+                break;
 #endif
 #ifdef ENOSYS
-	    case ENOSYS:
-		msg = "Function not implemented";
-		sym = @symbol(ENOSYS);
-		break;
+            case ENOSYS:
+                msg = "Function not implemented";
+                sym = @symbol(ENOSYS);
+                break;
 #endif
 #if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
-	    case ENOTEMPTY:
-		msg = "Directory not empty";
-		sym = @symbol(ENOTEMPTY);
-		break;
+            case ENOTEMPTY:
+                msg = "Directory not empty";
+                sym = @symbol(ENOTEMPTY);
+                break;
 #endif
 #ifdef EILSEQ
-	    case EILSEQ:
-		msg = "Illegal byte sequence";
-		sym = @symbol(EILSEQ);
-		break;
-#endif
-	    /*
-	     * XPG3 errnos - defined on most systems
-	     */
+            case EILSEQ:
+                msg = "Illegal byte sequence";
+                sym = @symbol(EILSEQ);
+                break;
+#endif
+            /*
+             * XPG3 errnos - defined on most systems
+             */
 #ifdef ENOTBLK
-	    case ENOTBLK:
-		msg = "Block device required";
-		sym = @symbol(ENOTBLK);
-		break;
+            case ENOTBLK:
+                msg = "Block device required";
+                sym = @symbol(ENOTBLK);
+                break;
 #endif
 #ifdef ETXTBSY
-	    case ETXTBSY:
-		msg = "Text file busy";
-		sym = @symbol(ETXTBSY);
-		break;
-#endif
-	    /*
-	     * some others
-	     */
+            case ETXTBSY:
+                msg = "Text file busy";
+                sym = @symbol(ETXTBSY);
+                break;
+#endif
+            /*
+             * some others
+             */
 #ifdef EWOULDBLOCK
-	    case EWOULDBLOCK:
-		msg = "Operation would block";
-		sym = @symbol(EWOULDBLOCK);
-		break;
+            case EWOULDBLOCK:
+# if defined(EAGAIN) && (EWOULDBLOCK == EAGAIN)
+                msg = "Operation would block / No more processes";
+# else
+                msg = "Operation would block";
+# endif
+                sym = @symbol(EWOULDBLOCK);
+                break;
 #endif
 #ifdef ENOMSG
-	    case ENOMSG:
-		msg = "No message of desired type";
-		sym = @symbol(ENOMSG);
-		break;
+            case ENOMSG:
+                msg = "No message of desired type";
+                sym = @symbol(ENOMSG);
+                break;
 #endif
 #ifdef ELOOP
-	    case ELOOP:
-		msg = "Too many levels of symbolic links";
-		sym = @symbol(ELOOP);
-		break;
-#endif
-
-	    /*
-	     * some stream errors
-	     */
+            case ELOOP:
+                msg = "Too many levels of symbolic links";
+                sym = @symbol(ELOOP);
+                break;
+#endif
+
+            /*
+             * some stream errors
+             */
 #ifdef ETIME
-	    case ETIME:
-		msg = "Timer expired";
-		sym = @symbol(ETIME);
-		break;
+            case ETIME:
+                msg = "Timer expired";
+                sym = @symbol(ETIME);
+                break;
 #endif
 #ifdef ENOSR
-	    case ENOSR:
-		msg = "Out of streams resources";
-		sym = @symbol(ENOSR);
-		break;
+            case ENOSR:
+                msg = "Out of streams resources";
+                sym = @symbol(ENOSR);
+                break;
 #endif
 #ifdef ENOSTR
-	    case ENOSTR:
-		msg = "Device not a stream";
-		sym = @symbol(ENOSTR);
-		break;
+            case ENOSTR:
+                msg = "Device not a stream";
+                sym = @symbol(ENOSTR);
+                break;
 #endif
 #ifdef ECOMM
-	    case ECOMM:
-		msg = "Communication error on send";
-		sym = @symbol(ECOMM);
-		break;
+            case ECOMM:
+                msg = "Communication error on send";
+                sym = @symbol(ECOMM);
+                break;
 #endif
 #ifdef EPROTO
-	    case EPROTO:
-		msg = "Protocol error";
-		sym = @symbol(EPROTO);
-		break;
-#endif
-	    /*
-	     * nfs errors
-	     */
+            case EPROTO:
+                msg = "Protocol error";
+                sym = @symbol(EPROTO);
+                break;
+#endif
+            /*
+             * nfs errors
+             */
 #ifdef ESTALE
-	    case ESTALE:
-		msg = "Stale NFS file handle";
-		sym = @symbol(ESTALE);
-		break;
+            case ESTALE:
+                msg = "Stale NFS file handle";
+                sym = @symbol(ESTALE);
+                break;
 #endif
 #ifdef EREMOTE
-	    case EREMOTE:
-		msg = "Too many levels of remote in path";
-		sym = @symbol(EREMOTE);
-		break;
-#endif
-	    /*
-	     * some networking errors
-	     */
+            case EREMOTE:
+                msg = "Too many levels of remote in path";
+                sym = @symbol(EREMOTE);
+                break;
+#endif
+            /*
+             * some networking errors
+             */
 #ifdef EINPROGRESS
-	    case EINPROGRESS:
-		msg = "Operation now in progress";
-		sym = @symbol(EINPROGRESS);
-		break;
+            case EINPROGRESS:
+                msg = "Operation now in progress";
+                sym = @symbol(EINPROGRESS);
+                break;
 #endif
 #ifdef EALREADY
-	    case EALREADY:
-		msg = "Operation already in progress";
-		sym = @symbol(EALREADY);
-		break;
+            case EALREADY:
+                msg = "Operation already in progress";
+                sym = @symbol(EALREADY);
+                break;
 #endif
 #ifdef ENOTSOCK
-	    case ENOTSOCK:
-		msg = "Socket operation on non-socket";
-		sym = @symbol(ENOTSOCK);
-		break;
+            case ENOTSOCK:
+                msg = "Socket operation on non-socket";
+                sym = @symbol(ENOTSOCK);
+                break;
 #endif
 #ifdef EDESTADDRREQ
-	    case EDESTADDRREQ:
-		msg = "Destination address required";
-		sym = @symbol(EDESTADDRREQ);
-		break;
+            case EDESTADDRREQ:
+                msg = "Destination address required";
+                sym = @symbol(EDESTADDRREQ);
+                break;
 #endif
 #ifdef EMSGSIZE
-	    case EMSGSIZE:
-		msg = "Message too long";
-		sym = @symbol(EMSGSIZE);
-		break;
+            case EMSGSIZE:
+                msg = "Message too long";
+                sym = @symbol(EMSGSIZE);
+                break;
 #endif
 #ifdef EPROTOTYPE
-	    case EPROTOTYPE:
-		msg = "Protocol wrong type for socket";
-		sym = @symbol(EPROTOTYPE);
-		break;
+            case EPROTOTYPE:
+                msg = "Protocol wrong type for socket";
+                sym = @symbol(EPROTOTYPE);
+                break;
 #endif
 #ifdef ENOPROTOOPT
-	    case ENOPROTOOPT:
-		msg = "Protocol not available";
-		sym = @symbol(ENOPROTOOPT);
-		break;
+            case ENOPROTOOPT:
+                msg = "Protocol not available";
+                sym = @symbol(ENOPROTOOPT);
+                break;
 #endif
 #ifdef EPROTONOSUPPORT
-	    case EPROTONOSUPPORT:
-		msg = "Protocol not supported";
-		sym = @symbol(EPROTONOSUPPORT);
-		break;
+            case EPROTONOSUPPORT:
+                msg = "Protocol not supported";
+                sym = @symbol(EPROTONOSUPPORT);
+                break;
 #endif
 #ifdef ESOCKTNOSUPPORT
-	    case ESOCKTNOSUPPORT:
-		msg = "Socket type not supported";
-		sym = @symbol(ESOCKTNOSUPPORT);
-		break;
+            case ESOCKTNOSUPPORT:
+                msg = "Socket type not supported";
+                sym = @symbol(ESOCKTNOSUPPORT);
+                break;
 #endif
 #ifdef EOPNOTSUPP
-	    case EOPNOTSUPP:
-		msg = "Operation not supported on socket";
-		sym = @symbol(EOPNOTSUPP);
-		break;
+            case EOPNOTSUPP:
+                msg = "Operation not supported on socket";
+                sym = @symbol(EOPNOTSUPP);
+                break;
 #endif
 #ifdef EPFNOSUPPORT
-	    case EPFNOSUPPORT:
-		msg = "Protocol family not supported";
-		sym = @symbol(EPFNOSUPPORT);
-		break;
+            case EPFNOSUPPORT:
+                msg = "Protocol family not supported";
+                sym = @symbol(EPFNOSUPPORT);
+                break;
 #endif
 #ifdef EAFNOSUPPORT
-	    case EAFNOSUPPORT:
-		msg = "Address family not supported by protocol family";
-		sym = @symbol(EAFNOSUPPORT);
-		break;
+            case EAFNOSUPPORT:
+                msg = "Address family not supported by protocol family";
+                sym = @symbol(EAFNOSUPPORT);
+                break;
 #endif
 #ifdef EADDRINUSE
-	    case EADDRINUSE:
-		msg = "Address already in use";
-		sym = @symbol(EADDRINUSE);
-		break;
+            case EADDRINUSE:
+                msg = "Address already in use";
+                sym = @symbol(EADDRINUSE);
+                break;
 #endif
 #ifdef EADDRNOTAVAIL
-	    case EADDRNOTAVAIL:
-		msg = "Can\'t assign requested address";
-		sym = @symbol(EADDRNOTAVAIL);
-		break;
+            case EADDRNOTAVAIL:
+                msg = "Can\'t assign requested address";
+                sym = @symbol(EADDRNOTAVAIL);
+                break;
 #endif
 #ifdef ETIMEDOUT
-	    case ETIMEDOUT:
-		msg = "Connection timed out";
-		sym = @symbol(ETIMEDOUT);
-		break;
+            case ETIMEDOUT:
+                msg = "Connection timed out";
+                sym = @symbol(ETIMEDOUT);
+                break;
 #endif
 #ifdef ECONNREFUSED
-	    case ECONNREFUSED:
-		msg = "Connection refused";
-		sym = @symbol(ECONNREFUSED);
-		break;
+            case ECONNREFUSED:
+                msg = "Connection refused";
+                sym = @symbol(ECONNREFUSED);
+                break;
 #endif
 #ifdef ENETDOWN
-	    case ENETDOWN:
-		msg = "Network is down";
-		sym = @symbol(ENETDOWN);
-		break;
+            case ENETDOWN:
+                msg = "Network is down";
+                sym = @symbol(ENETDOWN);
+                break;
 #endif
 #ifdef ENETUNREACH
-	    case ENETUNREACH:
-		msg = "Network is unreachable";
-		sym = @symbol(ENETUNREACH);
-		break;
+            case ENETUNREACH:
+                msg = "Network is unreachable";
+                sym = @symbol(ENETUNREACH);
+                break;
 #endif
 #ifdef ENETRESET
-	    case ENETRESET:
-		msg = "Network dropped conn due to reset";
-		sym = @symbol(ENETRESET);
-		break;
+            case ENETRESET:
+                msg = "Network dropped conn due to reset";
+                sym = @symbol(ENETRESET);
+                break;
 #endif
 #ifdef ECONNABORTED
-	    case ECONNABORTED:
-		msg = "Software caused connection abort";
-		sym = @symbol(ECONNABORTED);
-		break;
+            case ECONNABORTED:
+                msg = "Software caused connection abort";
+                sym = @symbol(ECONNABORTED);
+                break;
 #endif
 #ifdef ECONNRESET
-	    case ECONNRESET:
-		msg = "Connection reset by peer";
-		sym = @symbol(ECONNRESET);
-		break;
+            case ECONNRESET:
+                msg = "Connection reset by peer";
+                sym = @symbol(ECONNRESET);
+                break;
 #endif
 #ifdef EISCONN
-	    case EISCONN:
-		msg = "Socket is already connected";
-		sym = @symbol(EISCONN);
-		break;
+            case EISCONN:
+                msg = "Socket is already connected";
+                sym = @symbol(EISCONN);
+                break;
 #endif
 #ifdef ENOTCONN
-	    case ENOTCONN:
-		msg = "Socket is not connected";
-		sym = @symbol(ENOTCONN);
-		break;
+            case ENOTCONN:
+                msg = "Socket is not connected";
+                sym = @symbol(ENOTCONN);
+                break;
 #endif
 #ifdef ESHUTDOWN
-	    case ESHUTDOWN:
-		msg = "Can't send after socket shutdown";
-		sym = @symbol(ESHUTDOWN);
-		break;
+            case ESHUTDOWN:
+                msg = "Can't send after socket shutdown";
+                sym = @symbol(ESHUTDOWN);
+                break;
 #endif
 #ifdef EHOSTDOWN
-	    case EHOSTDOWN:
-		msg = "Host is down";
-		sym = @symbol(EHOSTDOWN);
-		break;
+            case EHOSTDOWN:
+                msg = "Host is down";
+                sym = @symbol(EHOSTDOWN);
+                break;
 #endif
 #ifdef EHOSTUNREACH
-	    case EHOSTUNREACH:
-		msg = "No route to host";
-		sym = @symbol(EHOSTUNREACH);
-		break;
-#endif
-
-	    default:
-		{
-		    __BEGIN_PROTECT_REGISTERS__
-		    sprintf(buffer, "ErrorNr: %d", __intVal(eno));
-		    __END_PROTECT_REGISTERS__
-		}
-		msg = buffer;
-		sym = @symbol(ERROR_OTHER);
-		break;
-	}
-	text = __MKSTRING(msg);
+            case EHOSTUNREACH:
+                msg = "No route to host";
+                sym = @symbol(EHOSTUNREACH);
+                break;
+#endif
+
+            default:
+                {
+                    __BEGIN_PROTECT_REGISTERS__
+                    sprintf(buffer, "ErrorNr: %d", __intVal(eno));
+                    __END_PROTECT_REGISTERS__
+                }
+                msg = buffer;
+                sym = @symbol(ERROR_OTHER);
+                break;
+        }
+        text = __MKSTRING(msg);
     } else {
-	text = nil;
-	sym = nil;
+        text = nil;
+        sym = nil;
     }
 %}.
     ^ Array with:sym with:text
@@ -6783,6 +6787,14 @@
 
 ! !
 
+!UnixOperatingSystem class methodsFor:'private'!
+
+osProcessStatusClass
+    ^ OSProcessStatus
+
+    "Created: / 12.6.1998 / 16:30:43 / cg"
+! !
+
 !UnixOperatingSystem class methodsFor:'shared memory access'!
 
 shmAttach:id address:addr flags:flags
@@ -8446,6 +8458,6 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.20 1998-06-11 20:48:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.21 1998-06-12 14:31:54 cg Exp $'
 ! !
 UnixOperatingSystem initialize!