Win32OperatingSystem.st
changeset 18954 813f1c2c49ca
parent 18951 221159378a9f
child 18958 e35ab14763b6
child 18962 29c5db48dd57
--- a/Win32OperatingSystem.st	Tue Nov 24 12:16:43 2015 +0100
+++ b/Win32OperatingSystem.st	Wed Nov 25 19:42:31 2015 +0100
@@ -278,15 +278,15 @@
 #  define _FCNTL_H_INCLUDED_
 # endif
 
-/* # define PROCESSDEBUGWIN32     /* */
-/* # define PROCESS1DEBUGWIN32    /* */
-/* # define PROCESS2DEBUGWIN32    /* */
-/* # define PROCESSDEBUG_CHILDPROCESSWAIT    /* */
-/* # define SELECTDEBUGWIN32     /* */
-/* # define SELECT1DEBUGWIN32    /* */
-/* # define SELECT2DEBUGWIN32    /* */
-/* # define WAITDEBUGWIN32       /* */
-/* # define SIGNALDEBUGWIN32     /* */
+// # define PROCESSDEBUGWIN32
+// # define PROCESS1DEBUGWIN32
+// # define PROCESS2DEBUGWIN32
+// # define PROCESSDEBUG_CHILDPROCESSWAIT
+// # define SELECTDEBUGWIN32
+// # define SELECT1DEBUGWIN32
+// # define SELECT2DEBUGWIN32
+// # define WAITDEBUGWIN32
+// # define SIGNALDEBUGWIN32
 
 # undef INT
 # undef UINT
@@ -1754,854 +1754,872 @@
       int __eno = __unsignedLongIntVal(errNr);
 
       if (__isWIN32Error(__eno)) {
-	switch (__eno & 0xFFFF) {
-	    /*
-	     * WIN32 GetLastError returns
-	     */
-	    case ERROR_INVALID_FUNCTION:
-		sym = @symbol(ERROR_INVALID_FUNCTION);
-		typ = @symbol(illegalOperationSignal);
-		break;
-
-	    case ERROR_BAD_FORMAT:
-		sym = @symbol(ERROR_BAD_FORMAT);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_FILE_NOT_FOUND:
-		sym = @symbol(ERROR_FILE_NOT_FOUND);
-		typ = @symbol(nonexistentSignal);
-		break;
-
-	    case ERROR_PATH_NOT_FOUND:
-		sym = @symbol(ERROR_PATH_NOT_FOUND);
-		typ = @symbol(nonexistentSignal);
-		break;
-
-	    case ERROR_TOO_MANY_OPEN_FILES:
-		sym = @symbol(ERROR_TOO_MANY_OPEN_FILES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    /*
-	     * what a nice errorCode - thats the most "useful" one I ever
-	     * encountered ... (... those stupid micro-softies ...)
-	     */
-	    case ERROR_OPEN_FAILED:
-		sym = @symbol(ERROR_OPEN_FAILED);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_ACCESS_DENIED:
-		sym = @symbol(ERROR_ACCESS_DENIED);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_INVALID_HANDLE:
-		sym = @symbol(ERROR_INVALID_HANDLE);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_NOT_ENOUGH_MEMORY:
-		sym = @symbol(ERROR_NOT_ENOUGH_MEMORY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NO_SYSTEM_RESOURCES:
-		sym = @symbol(ERROR_NO_SYSTEM_RESOURCES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NONPAGED_SYSTEM_RESOURCES:
-		sym = @symbol(ERROR_NONPAGED_SYSTEM_RESOURCES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_PAGED_SYSTEM_RESOURCES:
-		sym = @symbol(ERROR_PAGED_SYSTEM_RESOURCES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_INVALID_ACCESS:
-		sym = @symbol(ERROR_INVALID_ACCESS);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_INVALID_DATA:
-		sym = @symbol(ERROR_INVALID_DATA);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_INVALID_NAME:
-		sym = @symbol(ERROR_INVALID_NAME);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_ARENA_TRASHED:
-		sym = @symbol(ERROR_ARENA_TRASHED);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_OUTOFMEMORY:
-		sym = @symbol(ERROR_OUTOFMEMORY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_BROKEN_PIPE:
-		sym = @symbol(ERROR_BROKEN_PIPE);
-		typ = @symbol(peerFaultSignal);
-		break;
-
-	    case ERROR_GEN_FAILURE:
-		sym = @symbol(ERROR_GEN_FAILURE);
-		break;
-
-	    case ERROR_WRITE_PROTECT:
-		sym = @symbol(ERROR_WRITE_PROTECT);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_WRITE_FAULT:
-		sym = @symbol(ERROR_WRITE_FAULT);
-		typ = @symbol(transferFaultSignal);
-		break;
-
-	    case ERROR_READ_FAULT:
-		sym = @symbol(ERROR_READ_FAULT);
-		typ = @symbol(transferFaultSignal);
-		break;
-
-	    case ERROR_HANDLE_DISK_FULL:
-		sym = @symbol(ERROR_HANDLE_DISK_FULL);
-		typ = @symbol(volumeFullSignal);
-		break;
-
-	    case ERROR_DISK_FULL:
-		sym = @symbol(ERROR_DISK_FULL);
-		typ = @symbol(volumeFullSignal);
-		break;
-
-	    case ERROR_SHARING_VIOLATION:
-		sym = @symbol(ERROR_SHARING_VIOLATION);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_LOCK_VIOLATION:
-		sym = @symbol(ERROR_LOCK_VIOLATION);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_INVALID_PARAMETER:
-		sym = @symbol(ERROR_INVALID_PARAMETER);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_NET_WRITE_FAULT:
-		sym = @symbol(ERROR_NET_WRITE_FAULT);
-		typ = @symbol(transferFaultSignal);
-		break;
-
-	    case ERROR_NOT_SUPPORTED:
-		sym = @symbol(ERROR_NOT_SUPPORTED);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_REM_NOT_LIST:
-		sym = @symbol(ERROR_REM_NOT_LIST);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NETWORK_ACCESS_DENIED:
-		sym = @symbol(ERROR_NETWORK_ACCESS_DENIED);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_DUP_NAME:
-		sym = @symbol(ERROR_DUP_NAME);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_BAD_NETPATH:
-		sym = @symbol(ERROR_BAD_NETPATH);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NETWORK_BUSY:
-		sym = @symbol(ERROR_NETWORK_BUSY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_DRIVE_LOCKED:
-		sym = @symbol(ERROR_DRIVE_LOCKED);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_INVALID_DRIVE:
-		sym = @symbol(ERROR_INVALID_DRIVE);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_WRONG_DISK:
-		sym = @symbol(ERROR_WRONG_DISK);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_CURRENT_DIRECTORY:
-		sym = @symbol(ERROR_CURRENT_DIRECTORY);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    /*
-	     * what a nice errorCode - thats the most "useful" one I ever
-	     * encountered ... (... those stupid micro-softies ...)
-	     */
-	    case ERROR_CANNOT_MAKE:
-		sym = @symbol(ERROR_CANNOT_MAKE);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_NO_MORE_FILES:
-		sym = @symbol(ERROR_NO_MORE_FILES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NOT_READY:
-		sym = @symbol(ERROR_NOT_READY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NOT_DOS_DISK:
-		sym = @symbol(ERROR_NOT_DOS_DISK);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_OUT_OF_PAPER:
-		sym = @symbol(ERROR_OUT_OF_PAPER);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_PRINTQ_FULL:
-		sym = @symbol(ERROR_PRINTQ_FULL);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_FILE_EXISTS:
-		sym = @symbol(ERROR_FILE_EXISTS);
-		typ = @symbol(existingReferentSignal);
-		break;
-
-	    default:
-		break;
-	}
+        switch (__eno & 0xFFFF) {
+            /*
+             * WIN32 GetLastError returns
+             */
+            case ERROR_INVALID_FUNCTION:
+                sym = @symbol(ERROR_INVALID_FUNCTION);
+                typ = @symbol(illegalOperationSignal);
+                break;
+
+            case ERROR_BAD_FORMAT:
+                sym = @symbol(ERROR_BAD_FORMAT);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_FILE_NOT_FOUND:
+                sym = @symbol(ERROR_FILE_NOT_FOUND);
+                typ = @symbol(nonexistentSignal);
+                break;
+
+            case ERROR_PATH_NOT_FOUND:
+                sym = @symbol(ERROR_PATH_NOT_FOUND);
+                typ = @symbol(nonexistentSignal);
+                break;
+
+            case ERROR_TOO_MANY_OPEN_FILES:
+                sym = @symbol(ERROR_TOO_MANY_OPEN_FILES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            /*
+             * what a nice errorCode - thats the most "useful" one I ever
+             * encountered ... (... those stupid micro-softies ...)
+             */
+            case ERROR_OPEN_FAILED:
+                sym = @symbol(ERROR_OPEN_FAILED);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_ACCESS_DENIED:
+                sym = @symbol(ERROR_ACCESS_DENIED);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_INVALID_HANDLE:
+                sym = @symbol(ERROR_INVALID_HANDLE);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_NOT_ENOUGH_MEMORY:
+                sym = @symbol(ERROR_NOT_ENOUGH_MEMORY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NO_SYSTEM_RESOURCES:
+                sym = @symbol(ERROR_NO_SYSTEM_RESOURCES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NONPAGED_SYSTEM_RESOURCES:
+                sym = @symbol(ERROR_NONPAGED_SYSTEM_RESOURCES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_PAGED_SYSTEM_RESOURCES:
+                sym = @symbol(ERROR_PAGED_SYSTEM_RESOURCES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_INVALID_ACCESS:
+                sym = @symbol(ERROR_INVALID_ACCESS);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_INVALID_DATA:
+                sym = @symbol(ERROR_INVALID_DATA);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_INVALID_NAME:
+                sym = @symbol(ERROR_INVALID_NAME);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_ARENA_TRASHED:
+                sym = @symbol(ERROR_ARENA_TRASHED);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_OUTOFMEMORY:
+                sym = @symbol(ERROR_OUTOFMEMORY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_BROKEN_PIPE:
+                sym = @symbol(ERROR_BROKEN_PIPE);
+                typ = @symbol(peerFaultSignal);
+                break;
+
+            case ERROR_GEN_FAILURE:
+                sym = @symbol(ERROR_GEN_FAILURE);
+                break;
+
+            case ERROR_WRITE_PROTECT:
+                sym = @symbol(ERROR_WRITE_PROTECT);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_WRITE_FAULT:
+                sym = @symbol(ERROR_WRITE_FAULT);
+                typ = @symbol(transferFaultSignal);
+                break;
+
+            case ERROR_READ_FAULT:
+                sym = @symbol(ERROR_READ_FAULT);
+                typ = @symbol(transferFaultSignal);
+                break;
+
+            case ERROR_HANDLE_DISK_FULL:
+                sym = @symbol(ERROR_HANDLE_DISK_FULL);
+                typ = @symbol(volumeFullSignal);
+                break;
+
+            case ERROR_DISK_FULL:
+                sym = @symbol(ERROR_DISK_FULL);
+                typ = @symbol(volumeFullSignal);
+                break;
+
+            case ERROR_SHARING_VIOLATION:
+                sym = @symbol(ERROR_SHARING_VIOLATION);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_LOCK_VIOLATION:
+                sym = @symbol(ERROR_LOCK_VIOLATION);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_INVALID_PARAMETER:
+                sym = @symbol(ERROR_INVALID_PARAMETER);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_NET_WRITE_FAULT:
+                sym = @symbol(ERROR_NET_WRITE_FAULT);
+                typ = @symbol(transferFaultSignal);
+                break;
+
+            case ERROR_NOT_SUPPORTED:
+                sym = @symbol(ERROR_NOT_SUPPORTED);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_REM_NOT_LIST:
+                sym = @symbol(ERROR_REM_NOT_LIST);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NETWORK_ACCESS_DENIED:
+                sym = @symbol(ERROR_NETWORK_ACCESS_DENIED);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_DUP_NAME:
+                sym = @symbol(ERROR_DUP_NAME);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_BAD_NETPATH:
+                sym = @symbol(ERROR_BAD_NETPATH);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NETWORK_BUSY:
+                sym = @symbol(ERROR_NETWORK_BUSY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_DRIVE_LOCKED:
+                sym = @symbol(ERROR_DRIVE_LOCKED);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_INVALID_DRIVE:
+                sym = @symbol(ERROR_INVALID_DRIVE);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_WRONG_DISK:
+                sym = @symbol(ERROR_WRONG_DISK);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_CURRENT_DIRECTORY:
+                sym = @symbol(ERROR_CURRENT_DIRECTORY);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            /*
+             * what a nice errorCode - thats the most "useful" one I ever
+             * encountered ... (... those stupid micro-softies ...)
+             */
+            case ERROR_CANNOT_MAKE:
+                sym = @symbol(ERROR_CANNOT_MAKE);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_NO_MORE_FILES:
+                sym = @symbol(ERROR_NO_MORE_FILES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NOT_READY:
+                sym = @symbol(ERROR_NOT_READY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NOT_DOS_DISK:
+                sym = @symbol(ERROR_NOT_DOS_DISK);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_OUT_OF_PAPER:
+                sym = @symbol(ERROR_OUT_OF_PAPER);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_PRINTQ_FULL:
+                sym = @symbol(ERROR_PRINTQ_FULL);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_FILE_EXISTS:
+                sym = @symbol(ERROR_FILE_EXISTS);
+                typ = @symbol(existingReferentSignal);
+                break;
+
+            default:
+                break;
+        }
       } else {
-	switch (__eno) {
-	    /*
-	     * POSIX errnos - these should be defined
-	     */
+        switch (__eno) {
+            /*
+             * POSIX errnos - these should be defined
+             */
 #ifdef EPERM
-	    case EPERM:
-		sym = @symbol(EPERM);
-		typ = @symbol(noPermissionsSignal);
-		break;
+            case EPERM:
+                sym = @symbol(EPERM);
+                typ = @symbol(noPermissionsSignal);
+                break;
 #endif
 #ifdef ENOENT
-	    case ENOENT:
-		sym = @symbol(ENOENT);
-		typ = @symbol(nonexistentSignal);
-		break;
+            case ENOENT:
+                sym = @symbol(ENOENT);
+                typ = @symbol(nonexistentSignal);
+                break;
 #endif
 #ifdef ESRCH
-	    case ESRCH:
-		sym = @symbol(ESRCH);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case ESRCH:
+                sym = @symbol(ESRCH);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef EINTR
-	    case EINTR:
-		sym = @symbol(EINTR);
-		typ = @symbol(transientErrorSignal);
-		break;
+            case EINTR:
+                sym = @symbol(EINTR);
+                typ = @symbol(transientErrorSignal);
+                break;
 #endif
 #ifdef EIO
-	    case EIO:
-		sym = @symbol(EIO);
-		typ = @symbol(transferFaultSignal);
-		break;
+            case EIO:
+                sym = @symbol(EIO);
+                typ = @symbol(transferFaultSignal);
+                break;
 #endif
 #ifdef ENXIO
-	    case ENXIO:
-		sym = @symbol(ENXIO);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case ENXIO:
+                sym = @symbol(ENXIO);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef E2BIG
-	    case E2BIG:
-		sym = @symbol(E2BIG);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case E2BIG:
+                sym = @symbol(E2BIG);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef ENOEXEC
-	    case ENOEXEC:
-		sym = @symbol(ENOEXEC);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOEXEC:
+                sym = @symbol(ENOEXEC);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EBADF
-	    case EBADF:
-		sym = @symbol(EBADF);
-		typ = @symbol(badAccessorSignal);
-		break;
+            case EBADF:
+                sym = @symbol(EBADF);
+                typ = @symbol(badAccessorSignal);
+                break;
 #endif
 #ifdef ECHILD
-	    case ECHILD:
-		sym = @symbol(ECHILD);
-		typ = @symbol(informationSignal);
-		break;
+            case ECHILD:
+                sym = @symbol(ECHILD);
+                typ = @symbol(informationSignal);
+                break;
 #endif
 #if !defined(EWOULDBLOCK) && defined(EAGAIN) && (EWOULDBLOCK != EAGAIN)
-	    case EAGAIN:
-		sym = @symbol(EAGAIN);
-		typ = @symbol(notReadySignal);
-		break;
+            case EAGAIN:
+                sym = @symbol(EAGAIN);
+                typ = @symbol(notReadySignal);
+                break;
 #endif
 #ifdef ENOMEM
-	    case ENOMEM:
-		sym = @symbol(ENOMEM);
-		typ = @symbol(noMemorySignal);
-		break;
+            case ENOMEM:
+                sym = @symbol(ENOMEM);
+                typ = @symbol(noMemorySignal);
+                break;
 #endif
 #ifdef EACCES
-	    case EACCES:
-		sym = @symbol(EACCES);
-		typ = @symbol(noPermissionsSignal);
-		break;
+            case EACCES:
+                sym = @symbol(EACCES);
+                typ = @symbol(noPermissionsSignal);
+                break;
 #endif
 #ifdef EFAULT
-	    case EFAULT:
-		sym = @symbol(EFAULT);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case EFAULT:
+                sym = @symbol(EFAULT);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef EBUSY
-	    case EBUSY:
-		sym = @symbol(EBUSY);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case EBUSY:
+                sym = @symbol(EBUSY);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef EEXIST
-	    case EEXIST:
-		sym = @symbol(EEXIST);
-		typ = @symbol(existingReferentSignal);
-		break;
+            case EEXIST:
+                sym = @symbol(EEXIST);
+                typ = @symbol(existingReferentSignal);
+                break;
 #endif
 #ifdef EXDEV
-	    case EXDEV:
-		sym = @symbol(EXDEV);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case EXDEV:
+                sym = @symbol(EXDEV);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef ENODEV
-	    case ENODEV:
-		sym = @symbol(ENODEV);
-		typ = @symbol(inaccessibleSignal);
-		break;
+            case ENODEV:
+                sym = @symbol(ENODEV);
+                typ = @symbol(inaccessibleSignal);
+                break;
 #endif
 #ifdef ENOTDIR
-	    case ENOTDIR:
-		sym = @symbol(ENOTDIR);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOTDIR:
+                sym = @symbol(ENOTDIR);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EISDIR
-	    case EISDIR:
-		sym = @symbol(EISDIR);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case EISDIR:
+                sym = @symbol(EISDIR);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EINVAL
-	    case EINVAL:
-		sym = @symbol(EINVAL);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case EINVAL:
+                sym = @symbol(EINVAL);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef ENFILE
-	    case ENFILE:
-		sym = @symbol(ENFILE);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case ENFILE:
+                sym = @symbol(ENFILE);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef EMFILE
-	    case EMFILE:
-		sym = @symbol(EMFILE);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case EMFILE:
+                sym = @symbol(EMFILE);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ENOTTY
-	    case ENOTTY:
-		sym = @symbol(ENOTTY);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOTTY:
+                sym = @symbol(ENOTTY);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EFBIG
-	    case EFBIG:
-		sym = @symbol(EFBIG);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case EFBIG:
+                sym = @symbol(EFBIG);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ENOSPC
-	    case ENOSPC:
-		sym = @symbol(ENOSPC);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case ENOSPC:
+                sym = @symbol(ENOSPC);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ESPIPE
-	    case ESPIPE:
-		sym = @symbol(ESPIPE);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ESPIPE:
+                sym = @symbol(ESPIPE);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EROFS
-	    case EROFS:
-		sym = @symbol(EROFS);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case EROFS:
+                sym = @symbol(EROFS);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EMLINK
-	    case EMLINK:
-		sym = @symbol(EMLINK);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case EMLINK:
+                sym = @symbol(EMLINK);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef EPIPE
-	    case EPIPE:
-		sym = @symbol(EPIPE);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case EPIPE:
+                sym = @symbol(EPIPE);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef EDOM
-	    case EDOM:
-		sym = @symbol(EDOM);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case EDOM:
+                sym = @symbol(EDOM);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef ERANGE
-	    case ERANGE:
-		sym = @symbol(ERANGE);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case ERANGE:
+                sym = @symbol(ERANGE);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef EDEADLK
 # if EDEADLK != EWOULDBLOCK
-	    case EDEADLK:
-		sym = @symbol(EDEADLK);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case EDEADLK:
+                sym = @symbol(EDEADLK);
+                typ = @symbol(noResourcesSignal);
+                break;
 # endif
 #endif
 #ifdef ENAMETOOLONG
-	    case ENAMETOOLONG:
-		sym = @symbol(ENAMETOOLONG);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case ENAMETOOLONG:
+                sym = @symbol(ENAMETOOLONG);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef ENOLCK
-	    case ENOLCK:
-		sym = @symbol(ENOLCK);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOLCK:
+                sym = @symbol(ENOLCK);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef ENOSYS
-	    case ENOSYS:
-		sym = @symbol(ENOSYS);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOSYS:
+                sym = @symbol(ENOSYS);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
-	    case ENOTEMPTY:
-		sym = @symbol(ENOTEMPTY);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case ENOTEMPTY:
+                sym = @symbol(ENOTEMPTY);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef EILSEQ
-	    case EILSEQ:
-		sym = @symbol(EILSEQ);
-		typ = @symbol(transferFaultSignal);
-		break;
-#endif
-	    /*
-	     * XPG3 errnos - defined on most systems
-	     */
+            case EILSEQ:
+                sym = @symbol(EILSEQ);
+                typ = @symbol(transferFaultSignal);
+                break;
+#endif
+            /*
+             * XPG3 errnos - defined on most systems
+             */
 #ifdef ENOTBLK
-	    case ENOTBLK:
-		sym = @symbol(ENOTBLK);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case ENOTBLK:
+                sym = @symbol(ENOTBLK);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef ETXTBSY
-	    case ETXTBSY:
-		sym = @symbol(ETXTBSY);
-		typ = @symbol(inaccessibleSignal);
-		break;
-#endif
-	    /*
-	     * some others
-	     */
+            case ETXTBSY:
+                sym = @symbol(ETXTBSY);
+                typ = @symbol(inaccessibleSignal);
+                break;
+#endif
+            /*
+             * some others
+             */
 #ifdef EWOULDBLOCK
-	    case EWOULDBLOCK:
-		sym = @symbol(EWOULDBLOCK);
-		typ = @symbol(notReadySignal);
-		break;
+            case EWOULDBLOCK:
+                sym = @symbol(EWOULDBLOCK);
+                typ = @symbol(notReadySignal);
+                break;
 #endif
 #ifdef ENOMSG
-	    case ENOMSG:
-		sym = @symbol(ENOMSG);
-		typ = @symbol(noDataSignal);
-		break;
+            case ENOMSG:
+                sym = @symbol(ENOMSG);
+                typ = @symbol(noDataSignal);
+                break;
 #endif
 #ifdef ELOOP
-	    case ELOOP:
-		sym = @symbol(ELOOP);
-		typ = @symbol(rangeErrorSignal);
-		break;
-#endif
-
-	    /*
-	     * some stream errors
-	     */
+            case ELOOP:
+                sym = @symbol(ELOOP);
+                typ = @symbol(rangeErrorSignal);
+                break;
+#endif
+
+            /*
+             * some stream errors
+             */
 #ifdef ETIME
-	    case ETIME:
-		sym = @symbol(ETIME);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ETIME:
+                sym = @symbol(ETIME);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ENOSR
-	    case ENOSR:
-		sym = @symbol(ENOSR);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case ENOSR:
+                sym = @symbol(ENOSR);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ENOSTR
-	    case ENOSTR:
-		sym = @symbol(ENOSTR);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case ENOSTR:
+                sym = @symbol(ENOSTR);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef ECOMM
-	    case ECOMM:
-		sym = @symbol(ECOMM);
-		typ = @symbol(transferFaultSignal);
-		break;
+            case ECOMM:
+                sym = @symbol(ECOMM);
+                typ = @symbol(transferFaultSignal);
+                break;
 #endif
 #ifdef EPROTO
-	    case EPROTO:
-		sym = @symbol(EPROTO);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-#endif
-	    /*
-	     * nfs errors
-	     */
+            case EPROTO:
+                sym = @symbol(EPROTO);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+#endif
+            /*
+             * nfs errors
+             */
 #ifdef ESTALE
-	    case ESTALE:
-		sym = @symbol(ESTALE);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case ESTALE:
+                sym = @symbol(ESTALE);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef EREMOTE
-	    case EREMOTE:
-		sym = @symbol(EREMOTE);
-		typ = @symbol(rangeErrorSignal);
-		break;
-#endif
-	    /*
-	     * some networking errors
-	     */
+            case EREMOTE:
+                sym = @symbol(EREMOTE);
+                typ = @symbol(rangeErrorSignal);
+                break;
+#endif
+            /*
+             * some networking errors
+             */
 #ifdef EINPROGRESS
-	    case EINPROGRESS:
-		sym = @symbol(EINPROGRESS);
-		typ = @symbol(operationStartedSignal);
-		break;
+            case EINPROGRESS:
+                sym = @symbol(EINPROGRESS);
+                typ = @symbol(operationStartedSignal);
+                break;
 #endif
 #ifdef EALREADY
-	    case EALREADY:
-		sym = @symbol(EALREADY);
-		typ = @symbol(operationStartedSignal);
-		break;
+            case EALREADY:
+                sym = @symbol(EALREADY);
+                typ = @symbol(operationStartedSignal);
+                break;
 #endif
 #ifdef ENOTSOCK
-	    case ENOTSOCK:
-		sym = @symbol(ENOTSOCK);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOTSOCK:
+                sym = @symbol(ENOTSOCK);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EDESTADDRREQ
-	    case EDESTADDRREQ:
-		sym = @symbol(EDESTADDRREQ);
-		typ = @symbol(underspecifiedSignal);
-		break;
+            case EDESTADDRREQ:
+                sym = @symbol(EDESTADDRREQ);
+                typ = @symbol(underspecifiedSignal);
+                break;
 #endif
 #ifdef EMSGSIZE
-	    case EMSGSIZE:
-		sym = @symbol(EMSGSIZE);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case EMSGSIZE:
+                sym = @symbol(EMSGSIZE);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef EPROTOTYPE
-	    case EPROTOTYPE:
-		sym = @symbol(EPROTOTYPE);
-		typ = @symbol(wrongSubtypeForOperationSignal);
-		break;
+            case EPROTOTYPE:
+                sym = @symbol(EPROTOTYPE);
+                typ = @symbol(wrongSubtypeForOperationSignal);
+                break;
 #endif
 #ifdef ENOPROTOOPT
-	    case ENOPROTOOPT:
-		sym = @symbol(ENOPROTOOPT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case ENOPROTOOPT:
+                sym = @symbol(ENOPROTOOPT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EPROTONOSUPPORT
-	    case EPROTONOSUPPORT:
-		sym = @symbol(EPROTONOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case EPROTONOSUPPORT:
+                sym = @symbol(EPROTONOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef ESOCKTNOSUPPORT
-	    case ESOCKTNOSUPPORT:
-		sym = @symbol(ESOCKTNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case ESOCKTNOSUPPORT:
+                sym = @symbol(ESOCKTNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EOPNOTSUPP
-	    case EOPNOTSUPP:
-		sym = @symbol(EOPNOTSUPP);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case EOPNOTSUPP:
+                sym = @symbol(EOPNOTSUPP);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EPFNOSUPPORT
-	    case EPFNOSUPPORT:
-		sym = @symbol(EPFNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case EPFNOSUPPORT:
+                sym = @symbol(EPFNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EAFNOSUPPORT
-	    case EAFNOSUPPORT:
-		sym = @symbol(EAFNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case EAFNOSUPPORT:
+                sym = @symbol(EAFNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EADDRINUSE
-	    case EADDRINUSE:
-		sym = @symbol(EADDRINUSE);
-		typ = @symbol(existingReferentSignal);
-		break;
+            case EADDRINUSE:
+                sym = @symbol(EADDRINUSE);
+                typ = @symbol(existingReferentSignal);
+                break;
 #endif
 #ifdef WSAEADDRINUSE
-	    case WSAEADDRINUSE:
-		sym = @symbol(WSAEADDRINUSE);
-		typ = @symbol(existingReferentSignal);
-		break;
+            case WSAEADDRINUSE:
+                sym = @symbol(WSAEADDRINUSE);
+                typ = @symbol(existingReferentSignal);
+                break;
 #endif
 
 #ifdef EADDRNOTAVAIL
-	    case EADDRNOTAVAIL:
-		sym = @symbol(EADDRNOTAVAIL);
-		typ = @symbol(noPermissionsSignal);
-		break;
+            case EADDRNOTAVAIL:
+                sym = @symbol(EADDRNOTAVAIL);
+                typ = @symbol(noPermissionsSignal);
+                break;
 #endif
 #ifdef ETIMEDOUT
-	    case ETIMEDOUT:
-		sym = @symbol(ETIMEDOUT);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ETIMEDOUT:
+                sym = @symbol(ETIMEDOUT);
+                typ = @symbol(peerFaultSignal);
+                break;
+#endif
+#ifdef WSAETIMEDOUT
+            case WSAETIMEDOUT:
+                sym = @symbol(ETIMEDOUT);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ECONNREFUSED
-	    case ECONNREFUSED:
-		sym = @symbol(ECONNREFUSED);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ECONNREFUSED:
+                sym = @symbol(ECONNREFUSED);
+                typ = @symbol(peerFaultSignal);
+                break;
+#endif
+#ifdef WSAECONNREFUSED
+            case WSAECONNREFUSED:
+                sym = @symbol(ECONNREFUSED);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ENETDOWN
-	    case ENETDOWN:
-		sym = @symbol(ENETDOWN);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ENETDOWN:
+                sym = @symbol(ENETDOWN);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ENETUNREACH
-	    case ENETUNREACH:
-		sym = @symbol(ENETUNREACH);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ENETUNREACH:
+                sym = @symbol(ENETUNREACH);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ENETRESET
-	    case ENETRESET:
-		sym = @symbol(ENETRESET);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ENETRESET:
+                sym = @symbol(ENETRESET);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ECONNABORTED
-	    case ECONNABORTED:
-		sym = @symbol(ECONNABORTED);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ECONNABORTED:
+                sym = @symbol(ECONNABORTED);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ECONNRESET
-	    case ECONNRESET:
-		sym = @symbol(ECONNRESET);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ECONNRESET:
+                sym = @symbol(ECONNRESET);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef EISCONN
-	    case EISCONN:
-		sym = @symbol(EISCONN);
-		typ = @symbol(unpreparedOperationSignal);
-		break;
+            case EISCONN:
+                sym = @symbol(EISCONN);
+                typ = @symbol(unpreparedOperationSignal);
+                break;
 #endif
 #ifdef ENOTCONN
-	    case ENOTCONN:
-		sym = @symbol(ENOTCONN);
-		typ = @symbol(unpreparedOperationSignal);
-		break;
+            case ENOTCONN:
+                sym = @symbol(ENOTCONN);
+                typ = @symbol(unpreparedOperationSignal);
+                break;
 #endif
 #ifdef ESHUTDOWN
-	    case ESHUTDOWN:
-		sym = @symbol(ESHUTDOWN);
-		typ = @symbol(unpreparedOperationSignal);
-		break;
+            case ESHUTDOWN:
+                sym = @symbol(ESHUTDOWN);
+                typ = @symbol(unpreparedOperationSignal);
+                break;
 #endif
 #ifdef EHOSTDOWN
-	    case EHOSTDOWN:
-		sym = @symbol(EHOSTDOWN);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case EHOSTDOWN:
+                sym = @symbol(EHOSTDOWN);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef EHOSTUNREACH
-	    case EHOSTUNREACH:
-		sym = @symbol(EHOSTUNREACH);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case EHOSTUNREACH:
+                sym = @symbol(EHOSTUNREACH);
+                typ = @symbol(peerFaultSignal);
+                break;
+#endif
+#ifdef WSAHOSTUNREACH
+            case WSAHOSTUNREACH:
+                sym = @symbol(EHOSTUNREACH);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 
 #ifdef WSAEFAULT
-	    case WSAEFAULT:
-		sym = @symbol(WSAEFAULT);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case WSAEFAULT:
+                sym = @symbol(WSAEFAULT);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef WSAEINTR
-	    case WSAEINTR:
-		sym = @symbol(WSAEINTR);
-		typ = @symbol(transientErrorSignal);
-		break;
+            case WSAEINTR:
+                sym = @symbol(WSAEINTR);
+                typ = @symbol(transientErrorSignal);
+                break;
 #endif
 #ifdef WSAEBADF
-	    case WSAEBADF:
-		sym = @symbol(WSAEBADF);
-		typ = @symbol(badAccessorSignal);
-		break;
+            case WSAEBADF:
+                sym = @symbol(WSAEBADF);
+                typ = @symbol(badAccessorSignal);
+                break;
 #endif
 #ifdef WSAEACCES
-	    case WSAEACCES:
-		sym = @symbol(WSAEACCES);
-		typ = @symbol(badAccessorSignal);
-		break;
+            case WSAEACCES:
+                sym = @symbol(WSAEACCES);
+                typ = @symbol(badAccessorSignal);
+                break;
 #endif
 #ifdef WSAEINVAL
-	    case WSAEINVAL:
-		sym = @symbol(WSAEINVAL);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case WSAEINVAL:
+                sym = @symbol(WSAEINVAL);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef WSAEMFILE
-	    case WSAEMFILE:
-		sym = @symbol(WSAEMFILE);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case WSAEMFILE:
+                sym = @symbol(WSAEMFILE);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef WSAEWOULDBLOCK
-	    case WSAEWOULDBLOCK:
-		sym = @symbol(WSAEWOULDBLOCK);
-		typ = @symbol(notReadySignal);
-		break;
+            case WSAEWOULDBLOCK:
+                sym = @symbol(WSAEWOULDBLOCK);
+                typ = @symbol(notReadySignal);
+                break;
 #endif
 #ifdef WSAEINPROGRESS
-	    case WSAEINPROGRESS:
-		sym = @symbol(WSAEINPROGRESS);
-		typ = @symbol(operationStartedSignal);
-		break;
+            case WSAEINPROGRESS:
+                sym = @symbol(WSAEINPROGRESS);
+                typ = @symbol(operationStartedSignal);
+                break;
 #endif
 #ifdef WSAEALREADY
-	    case WSAEALREADY:
-		sym = @symbol(WSAEALREADY);
-		typ = @symbol(operationStartedSignal);
-		break;
+            case WSAEALREADY:
+                sym = @symbol(WSAEALREADY);
+                typ = @symbol(operationStartedSignal);
+                break;
 #endif
 #ifdef WSAENOTSOCK
-	    case WSAENOTSOCK:
-		sym = @symbol(WSAENOTSOCK);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case WSAENOTSOCK:
+                sym = @symbol(WSAENOTSOCK);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef WSAEPROTONOSUPPORT
-	    case WSAEPROTONOSUPPORT:
-		sym = @symbol(WSAEPROTONOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case WSAEPROTONOSUPPORT:
+                sym = @symbol(WSAEPROTONOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef WSAESOCKTNOSUPPORT
-	    case WSAESOCKTNOSUPPORT:
-		sym = @symbol(WSAESOCKTNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case WSAESOCKTNOSUPPORT:
+                sym = @symbol(WSAESOCKTNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef E_NOINTERFACE
-	    case E_NOINTERFACE:
-		sym = @symbol(E_NOINTERFACE);
-		typ = @symbol(noInterfaceSignal);
-		break;
+            case E_NOINTERFACE:
+                sym = @symbol(E_NOINTERFACE);
+                typ = @symbol(noInterfaceSignal);
+                break;
 #endif
 #ifdef CO_E_NOTINITIALIZED
-	    case CO_E_NOTINITIALIZED:
-		sym = @symbol(CO_E_NOTINITIALIZED);
-		typ = @symbol(coNotInitializedSignal);
-		break;
+            case CO_E_NOTINITIALIZED:
+                sym = @symbol(CO_E_NOTINITIALIZED);
+                typ = @symbol(coNotInitializedSignal);
+                break;
 #endif
 #ifdef REGDB_E_CLASSNOTREG
-	    case REGDB_E_CLASSNOTREG:
-		sym = @symbol(REGDB_E_CLASSNOTREG);
-		typ = @symbol(classNotRegisteredSignal);
-		break;
+            case REGDB_E_CLASSNOTREG:
+                sym = @symbol(REGDB_E_CLASSNOTREG);
+                typ = @symbol(classNotRegisteredSignal);
+                break;
 #endif
 #ifdef CLASS_E_NOAGGREGATION
-	    case CLASS_E_NOAGGREGATION:
-		sym = @symbol(CLASS_E_NOAGGREGATION);
-		typ = @symbol(noAggregationSignal);
-		break;
+            case CLASS_E_NOAGGREGATION:
+                sym = @symbol(CLASS_E_NOAGGREGATION);
+                typ = @symbol(noAggregationSignal);
+                break;
 #endif
 #ifdef DISP_E_UNKNOWNNAME
-	    case DISP_E_UNKNOWNNAME:
-		sym = @symbol(DISP_E_UNKNOWNNAME);
-		typ = @symbol(unknownNameSignal);
-		break;
+            case DISP_E_UNKNOWNNAME:
+                sym = @symbol(DISP_E_UNKNOWNNAME);
+                typ = @symbol(unknownNameSignal);
+                break;
 #endif
 #ifdef OLEOBJ_E_NOVERBS
-	    case OLEOBJ_E_NOVERBS:
-		sym = @symbol(OLEOBJ_E_NOVERBS);
-		typ = @symbol(noVerbsSignal);
-		break;
-#endif
-
-	    default:
-		break;
-	}
+            case OLEOBJ_E_NOVERBS:
+                sym = @symbol(OLEOBJ_E_NOVERBS);
+                typ = @symbol(noVerbsSignal);
+                break;
+#endif
+
+            default:
+                break;
+        }
       }
     }
 %}.
     holder := OSErrorHolder new.
     sym isNil ifTrue:[
-	sym := #ERROR_OTHER.
-	errNr notNil ifTrue:[
-	    "keep symbols as symbols"
-	    holder parameter:(errNr isString ifTrue:[errNr] ifFalse:[errNr asString]).
-	].
+        sym := #ERROR_OTHER.
+        errNr notNil ifTrue:[
+            "keep symbols as symbols"
+            holder parameter:(errNr isString ifTrue:[errNr] ifFalse:[errNr asString]).
+        ].
     ].
     holder errorSymbol:sym errorCategory:(typ ? #defaultOsErrorSignal).
     ^ holder
@@ -2632,212 +2650,212 @@
      */
 #ifdef ERROR_INVALID_FUNCTION
     if (sym == @symbol(ERROR_INVALID_FUNCTION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_FUNCTION)) );
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_FUNCTION)) );
     }
 #endif
 #ifdef ERROR_BAD_FORMAT
     if (sym == @symbol(ERROR_BAD_FORMAT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_FORMAT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_FORMAT)));
     }
 #endif
 #ifdef ERROR_FILE_NOT_FOUND
     if (sym == @symbol(ERROR_FILE_NOT_FOUND)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_FILE_NOT_FOUND)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_FILE_NOT_FOUND)));
     }
 #endif
 #ifdef ERROR_PATH_NOT_FOUND
     if (sym == @symbol(ERROR_PATH_NOT_FOUND)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PATH_NOT_FOUND)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PATH_NOT_FOUND)));
     }
 #endif
 #ifdef ERROR_TOO_MANY_OPEN_FILES
     if (sym == @symbol(ERROR_TOO_MANY_OPEN_FILES)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_TOO_MANY_OPEN_FILES)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_TOO_MANY_OPEN_FILES)));
     }
 #endif
 #ifdef ERROR_OPEN_FAILED
     if (sym == @symbol(ERROR_OPEN_FAILED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OPEN_FAILED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OPEN_FAILED)));
     }
 #endif
 #ifdef ERROR_ACCESS_DENIED
     if (sym == @symbol(ERROR_ACCESS_DENIED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ACCESS_DENIED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ACCESS_DENIED)));
     }
 #endif
 #ifdef ERROR_INVALID_HANDLE
     if (sym == @symbol(ERROR_INVALID_HANDLE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_HANDLE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_HANDLE)));
     }
 #endif
 #ifdef ERROR_NOT_ENOUGH_MEMORY
     if (sym == @symbol(ERROR_NOT_ENOUGH_MEMORY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_ENOUGH_MEMORY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_ENOUGH_MEMORY)));
     }
 #endif
 #ifdef ERROR_NO_SYSTEM_RESOURCES
     if (sym == @symbol(ERROR_NO_SYSTEM_RESOURCES)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_SYSTEM_RESOURCES)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_SYSTEM_RESOURCES)));
     }
 #endif
 #ifdef ERROR_INVALID_ACCESS
     if (sym == @symbol(ERROR_INVALID_ACCESS)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_ACCESS)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_ACCESS)));
     }
 #endif
 #ifdef ERROR_INVALID_DATA
     if (sym == @symbol(ERROR_INVALID_DATA)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DATA)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DATA)));
     }
 #endif
 #ifdef ERROR_INVALID_NAME
     if (sym == @symbol(ERROR_INVALID_NAME)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_NAME)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_NAME)));
     }
 #endif
 #ifdef ERROR_ARENA_TRASHED
     if (sym == @symbol(ERROR_ARENA_TRASHED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ARENA_TRASHED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ARENA_TRASHED)));
     }
 #endif
 #ifdef ERROR_OUTOFMEMORY
     if (sym == @symbol(ERROR_OUTOFMEMORY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUTOFMEMORY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUTOFMEMORY)));
     }
 #endif
 #ifdef ERROR_BROKEN_PIPE
     if (sym == @symbol(ERROR_BROKEN_PIPE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BROKEN_PIPE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BROKEN_PIPE)));
     }
 #endif
 #ifdef ERROR_GEN_FAILURE
     if (sym == @symbol(ERROR_GEN_FAILURE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_GEN_FAILURE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_GEN_FAILURE)));
     }
 #endif
 #ifdef ERROR_WRITE_PROTECT
     if (sym == @symbol(ERROR_WRITE_PROTECT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_PROTECT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_PROTECT)));
     }
 #endif
 #ifdef ERROR_WRITE_FAULT
     if (sym == @symbol(ERROR_WRITE_FAULT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_FAULT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_FAULT)));
     }
 #endif
 #ifdef ERROR_READ_FAULT
     if (sym == @symbol(ERROR_READ_FAULT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_READ_FAULT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_READ_FAULT)));
     }
 #endif
 #ifdef ERROR_HANDLE_DISK_FULL
     if (sym == @symbol(ERROR_HANDLE_DISK_FULL)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_HANDLE_DISK_FULL)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_HANDLE_DISK_FULL)));
     }
 #endif
 #ifdef ERROR_DISK_FULL
     if (sym == @symbol(ERROR_DISK_FULL)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DISK_FULL)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DISK_FULL)));
     }
 #endif
 #ifdef ERROR_ERROR_SHARING_VIOLATION
     if (sym == @symbol(ERROR_ERROR_SHARING_VIOLATION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ERROR_SHARING_VIOLATION)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ERROR_SHARING_VIOLATION)));
     }
 #endif
 #ifdef ERROR_LOCK_VIOLATION
     if (sym == @symbol(ERROR_LOCK_VIOLATION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_LOCK_VIOLATION)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_LOCK_VIOLATION)));
     }
 #endif
 #ifdef ERROR_INVALID_PARAMETER
     if (sym == @symbol(ERROR_INVALID_PARAMETER)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_PARAMETER)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_PARAMETER)));
     }
 #endif
 #ifdef ERROR_NET_WRITE_FAULT
     if (sym == @symbol(ERROR_NET_WRITE_FAULT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NET_WRITE_FAULT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NET_WRITE_FAULT)));
     }
 #endif
 #ifdef ERROR_NOT_SUPPORTED
     if (sym == @symbol(ERROR_NOT_SUPPORTED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_SUPPORTED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_SUPPORTED)));
     }
 #endif
 #ifdef ERROR_REM_NOT_LIST
     if (sym == @symbol(ERROR_REM_NOT_LIST)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_REM_NOT_LIST)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_REM_NOT_LIST)));
     }
 #endif
 #ifdef ERROR_NETWORK_ACCESS_DENIED
     if (sym == @symbol(ERROR_NETWORK_ACCESS_DENIED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_ACCESS_DENIED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_ACCESS_DENIED)));
     }
 #endif
 #ifdef ERROR_DUP_NAME
     if (sym == @symbol(ERROR_DUP_NAME)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DUP_NAME)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DUP_NAME)));
     }
 #endif
 #ifdef ERROR_BAD_NETPATH
     if (sym == @symbol(ERROR_BAD_NETPATH)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_NETPATH)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_NETPATH)));
     }
 #endif
 #ifdef ERROR_NETWORK_BUSY
     if (sym == @symbol(ERROR_NETWORK_BUSY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_BUSY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_BUSY)));
     }
 #endif
 #ifdef ERROR_DRIVE_LOCKED
     if (sym == @symbol(ERROR_DRIVE_LOCKED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DRIVE_LOCKED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DRIVE_LOCKED)));
     }
 #endif
 #ifdef ERROR_INVALID_DRIVE
     if (sym == @symbol(ERROR_INVALID_DRIVE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DRIVE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DRIVE)));
     }
 #endif
 #ifdef ERROR_WRONG_DISK
     if (sym == @symbol(ERROR_WRONG_DISK)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRONG_DISK)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRONG_DISK)));
     }
 #endif
 #ifdef ERROR_CURRENT_DIRECTORY
     if (sym == @symbol(ERROR_CURRENT_DIRECTORY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CURRENT_DIRECTORY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CURRENT_DIRECTORY)));
     }
 #endif
 #ifdef ERROR_CANNOT_MAKE
     if (sym == @symbol(ERROR_CANNOT_MAKE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CANNOT_MAKE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CANNOT_MAKE)));
     }
 #endif
 #ifdef ERROR_NO_MORE_FILES
     if (sym == @symbol(ERROR_NO_MORE_FILES)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_MORE_FILES)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_MORE_FILES)));
     }
 #endif
 #ifdef ERROR_NOT_READY
     if (sym == @symbol(ERROR_NOT_READY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_READY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_READY)));
     }
 #endif
 #ifdef ERROR_NOT_DOS_DISK
     if (sym == @symbol(ERROR_NOT_DOS_DISK)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_DOS_DISK)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_DOS_DISK)));
     }
 #endif
 #ifdef ERROR_OUT_OF_PAPER
     if (sym == @symbol(ERROR_OUT_OF_PAPER)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUT_OF_PAPER)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUT_OF_PAPER)));
     }
 #endif
 #ifdef ERROR_PRINTQ_FULL
     if (sym == @symbol(ERROR_PRINTQ_FULL)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PRINTQ_FULL)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PRINTQ_FULL)));
     }
 #endif
 
@@ -2846,229 +2864,229 @@
      */
 #ifdef EPERM
     if (sym == @symbol(EPERM)) {
-	RETURN ( __mkSmallInteger(EPERM) );
+        RETURN ( __mkSmallInteger(EPERM) );
     }
 #endif
 
 #ifdef ENOENT
     if (sym == @symbol(ENOENT)) {
-	RETURN ( __mkSmallInteger(ENOENT) );
+        RETURN ( __mkSmallInteger(ENOENT) );
     }
 #endif
 
 #ifdef ESRCH
     if (sym == @symbol(ESRCH)) {
-	RETURN ( __mkSmallInteger(ESRCH) );
+        RETURN ( __mkSmallInteger(ESRCH) );
     }
 #endif
 
 #ifdef EINTR
     if (sym == @symbol(EINTR)) {
-	RETURN ( __mkSmallInteger(EINTR) );
+        RETURN ( __mkSmallInteger(EINTR) );
     }
 #endif
 
 #ifdef EIO
     if (sym == @symbol(EIO)) {
-	RETURN ( __mkSmallInteger(EIO) );
+        RETURN ( __mkSmallInteger(EIO) );
     }
 #endif
 
 #ifdef ENXIO
     if (sym == @symbol(ENXIO)) {
-	RETURN ( __mkSmallInteger(ENXIO) );
+        RETURN ( __mkSmallInteger(ENXIO) );
     }
 #endif
 
 #ifdef E2BIG
     if (sym == @symbol(E2BIG)) {
-	RETURN ( __mkSmallInteger(E2BIG) );
+        RETURN ( __mkSmallInteger(E2BIG) );
     }
 #endif
 
 #ifdef ENOEXEC
     if (sym == @symbol(ENOEXEC)) {
-	RETURN ( __mkSmallInteger(ENOEXEC) );
+        RETURN ( __mkSmallInteger(ENOEXEC) );
     }
 #endif
 
 #ifdef EBADF
     if (sym == @symbol(EBADF)) {
-	RETURN ( __mkSmallInteger(EBADF) );
+        RETURN ( __mkSmallInteger(EBADF) );
     }
 #endif
 
 #ifdef ECHILD
     if (sym == @symbol(ECHILD)) {
-	RETURN ( __mkSmallInteger(ECHILD) );
+        RETURN ( __mkSmallInteger(ECHILD) );
     }
 #endif
 
 #if defined(EAGAIN)
     if (sym == @symbol(EAGAIN)) {
-	RETURN ( __mkSmallInteger(EAGAIN) );
+        RETURN ( __mkSmallInteger(EAGAIN) );
     }
 #endif
 
 #ifdef ENOMEM
     if (sym == @symbol(ENOMEM)) {
-	RETURN ( __mkSmallInteger(ENOMEM) );
+        RETURN ( __mkSmallInteger(ENOMEM) );
     }
 #endif
 
 #ifdef EACCES
     if (sym == @symbol(EACCES)) {
-	RETURN ( __mkSmallInteger(EACCES) );
+        RETURN ( __mkSmallInteger(EACCES) );
     }
 #endif
 
 #ifdef EFAULT
     if (sym == @symbol(EFAULT)) {
-	RETURN ( __mkSmallInteger(EFAULT) );
+        RETURN ( __mkSmallInteger(EFAULT) );
     }
 #endif
 
 #ifdef EBUSY
     if (sym == @symbol(EBUSY)) {
-	RETURN ( __mkSmallInteger(EBUSY) );
+        RETURN ( __mkSmallInteger(EBUSY) );
     }
 #endif
 
 #ifdef EXDEV
     if (sym == @symbol(EXDEV)) {
-	RETURN ( __mkSmallInteger(EXDEV) );
+        RETURN ( __mkSmallInteger(EXDEV) );
     }
 #endif
 
 #ifdef ENODEV
     if (sym == @symbol(ENODEV)) {
-	RETURN ( __mkSmallInteger(ENODEV) );
+        RETURN ( __mkSmallInteger(ENODEV) );
     }
 #endif
 
 #ifdef ENOTDIR
     if (sym == @symbol(ENOTDIR)) {
-	RETURN ( __mkSmallInteger(ENOTDIR) );
+        RETURN ( __mkSmallInteger(ENOTDIR) );
     }
 #endif
 
 #ifdef EISDIR
     if (sym == @symbol(EISDIR)) {
-	RETURN ( __mkSmallInteger(EISDIR) );
+        RETURN ( __mkSmallInteger(EISDIR) );
     }
 #endif
 
 #ifdef EINVAL
     if (sym == @symbol(EINVAL)) {
-	RETURN ( __mkSmallInteger(EINVAL) );
+        RETURN ( __mkSmallInteger(EINVAL) );
     }
 #endif
 
 #ifdef ENFILE
     if (sym == @symbol(ENFILE)) {
-	RETURN ( __mkSmallInteger(ENFILE) );
+        RETURN ( __mkSmallInteger(ENFILE) );
     }
 #endif
 
 #ifdef EMFILE
     if (sym == @symbol(EMFILE)) {
-	RETURN ( __mkSmallInteger(EMFILE) );
+        RETURN ( __mkSmallInteger(EMFILE) );
     }
 #endif
 
 #ifdef ENOTTY
     if (sym == @symbol(ENOTTY)) {
-	RETURN ( __mkSmallInteger(ENOTTY) );
+        RETURN ( __mkSmallInteger(ENOTTY) );
     }
 #endif
 
 #ifdef EFBIG
     if (sym == @symbol(EFBIG)) {
-	RETURN ( __mkSmallInteger(EFBIG) );
+        RETURN ( __mkSmallInteger(EFBIG) );
     }
 #endif
 
 #ifdef ENOSPC
     if (sym == @symbol(ENOSPC)) {
-	RETURN ( __mkSmallInteger(ENOSPC) );
+        RETURN ( __mkSmallInteger(ENOSPC) );
     }
 #endif
 
 #ifdef ESPIPE
     if (sym == @symbol(ESPIPE)) {
-	RETURN ( __mkSmallInteger(ESPIPE) );
+        RETURN ( __mkSmallInteger(ESPIPE) );
     }
 #endif
 
 #ifdef EROFS
     if (sym == @symbol(EROFS)) {
-	RETURN ( __mkSmallInteger(EROFS) );
+        RETURN ( __mkSmallInteger(EROFS) );
     }
 #endif
 
 #ifdef EMLINK
     if (sym == @symbol(EMLINK)) {
-	RETURN ( __mkSmallInteger(EMLINK) );
+        RETURN ( __mkSmallInteger(EMLINK) );
     }
 #endif
 
 #ifdef EPIPE
     if (sym == @symbol(EPIPE)) {
-	RETURN ( __mkSmallInteger(EPIPE) );
+        RETURN ( __mkSmallInteger(EPIPE) );
     }
 #endif
 
 #ifdef EDOM
     if (sym == @symbol(EDOM)) {
-	RETURN ( __mkSmallInteger(EDOM) );
+        RETURN ( __mkSmallInteger(EDOM) );
     }
 #endif
 
 #ifdef ERANGE
     if (sym == @symbol(ERANGE)) {
-	RETURN ( __mkSmallInteger(ERANGE) );
+        RETURN ( __mkSmallInteger(ERANGE) );
     }
 #endif
 
 #ifdef EDEADLK
     if (sym == @symbol(EDEADLK)) {
-	RETURN ( __mkSmallInteger(EDEADLK) );
+        RETURN ( __mkSmallInteger(EDEADLK) );
     }
 #endif
 
 #ifdef ENAMETOOLONG
     if (sym == @symbol(ENAMETOOLONG)) {
-	RETURN ( __mkSmallInteger(ENAMETOOLONG) );
+        RETURN ( __mkSmallInteger(ENAMETOOLONG) );
     }
 #endif
 
 #ifdef ENOLCK
     if (sym == @symbol(ENOLCK)) {
-	RETURN ( __mkSmallInteger(ENOLCK) );
+        RETURN ( __mkSmallInteger(ENOLCK) );
     }
 #endif
 
 #ifdef ENOSYS
     if (sym == @symbol(ENOSYS)) {
-	RETURN ( __mkSmallInteger(ENOSYS) );
+        RETURN ( __mkSmallInteger(ENOSYS) );
     }
 #endif
 
 #ifdef ENOTEMPTY
     if (sym == @symbol(ENOTEMPTY)) {
-	RETURN ( __mkSmallInteger(ENOTEMPTY) );
+        RETURN ( __mkSmallInteger(ENOTEMPTY) );
     }
 #endif
 
 #ifdef EEXIST
     if (sym == @symbol(EEXIST)) {
-	RETURN ( __mkSmallInteger(EEXIST) );
+        RETURN ( __mkSmallInteger(EEXIST) );
     }
 #endif
 
 #ifdef EILSEQ
     if (sym == @symbol(EILSEQ)) {
-	RETURN ( __mkSmallInteger(EILSEQ) );
+        RETURN ( __mkSmallInteger(EILSEQ) );
     }
 #endif
 
@@ -3077,13 +3095,13 @@
      */
 #ifdef ENOTBLK
     if (sym == @symbol(ENOTBLK)) {
-	RETURN ( __mkSmallInteger(ENOTBLK) );
+        RETURN ( __mkSmallInteger(ENOTBLK) );
     }
 #endif
 
 #ifdef ETXTBSY
     if (sym == @symbol(ETXTBSY)) {
-	RETURN ( __mkSmallInteger(ETXTBSY) );
+        RETURN ( __mkSmallInteger(ETXTBSY) );
     }
 #endif
 
@@ -3092,19 +3110,19 @@
      */
 #ifdef EWOULDBLOCK
     if (sym == @symbol(EWOULDBLOCK)) {
-	RETURN ( __mkSmallInteger(EWOULDBLOCK) );
+        RETURN ( __mkSmallInteger(EWOULDBLOCK) );
     }
 #endif
 
 #ifdef ENOMSG
     if (sym == @symbol(ENOMSG)) {
-	RETURN ( __mkSmallInteger(ENOMSG) );
+        RETURN ( __mkSmallInteger(ENOMSG) );
     }
 #endif
 
 #ifdef ELOOP
     if (sym == @symbol(ELOOP)) {
-	RETURN ( __mkSmallInteger(ELOOP) );
+        RETURN ( __mkSmallInteger(ELOOP) );
     }
 #endif
 
@@ -3113,31 +3131,31 @@
      */
 #ifdef ETIME
     if (sym == @symbol(ETIME)) {
-	RETURN ( __mkSmallInteger(ETIME) );
+        RETURN ( __mkSmallInteger(ETIME) );
     }
 #endif
 
 #ifdef ENOSR
     if (sym == @symbol(ENOSR)) {
-	RETURN ( __mkSmallInteger(ENOSR) );
+        RETURN ( __mkSmallInteger(ENOSR) );
     }
 #endif
 
 #ifdef ENOSTR
     if (sym == @symbol(ENOSTR)) {
-	RETURN ( __mkSmallInteger(ENOSTR) );
+        RETURN ( __mkSmallInteger(ENOSTR) );
     }
 #endif
 
 #ifdef ECOMM
     if (sym == @symbol(ECOMM)) {
-	RETURN ( __mkSmallInteger(ECOMM) );
+        RETURN ( __mkSmallInteger(ECOMM) );
     }
 #endif
 
 #ifdef EPROTO
     if (sym == @symbol(EPROTO)) {
-	RETURN ( __mkSmallInteger(EPROTO) );
+        RETURN ( __mkSmallInteger(EPROTO) );
     }
 #endif
 
@@ -3146,13 +3164,13 @@
      */
 #ifdef ESTALE
     if (sym == @symbol(ESTALE)) {
-	RETURN ( __mkSmallInteger(ESTALE) );
+        RETURN ( __mkSmallInteger(ESTALE) );
     }
 #endif
 
 #ifdef EREMOTE
     if (sym == @symbol(EREMOTE)) {
-	RETURN ( __mkSmallInteger(EREMOTE) );
+        RETURN ( __mkSmallInteger(EREMOTE) );
     }
 #endif
 
@@ -3161,157 +3179,162 @@
      */
 #ifdef EINPROGRESS
     if (sym == @symbol(EINPROGRESS)) {
-	RETURN ( __mkSmallInteger(EINPROGRESS) );
+        RETURN ( __mkSmallInteger(EINPROGRESS) );
     }
 #endif
 
 #ifdef EALREADY
     if (sym == @symbol(EALREADY)) {
-	RETURN ( __mkSmallInteger(EALREADY) );
+        RETURN ( __mkSmallInteger(EALREADY) );
     }
 #endif
 
 #ifdef ENOTSOCK
     if (sym == @symbol(ENOTSOCK)) {
-	RETURN ( __mkSmallInteger(ENOTSOCK) );
+        RETURN ( __mkSmallInteger(ENOTSOCK) );
     }
 #endif
 
 #ifdef EDESTADDRREQ
     if (sym == @symbol(EDESTADDRREQ)) {
-	RETURN ( __mkSmallInteger(EDESTADDRREQ) );
+        RETURN ( __mkSmallInteger(EDESTADDRREQ) );
     }
 #endif
 
 #ifdef EMSGSIZE
     if (sym == @symbol(EMSGSIZE)) {
-	RETURN ( __mkSmallInteger(EMSGSIZE) );
+        RETURN ( __mkSmallInteger(EMSGSIZE) );
     }
 #endif
 
 #ifdef EPROTOTYPE
     if (sym == @symbol(EPROTOTYPE)) {
-	RETURN ( __mkSmallInteger(EPROTOTYPE) );
+        RETURN ( __mkSmallInteger(EPROTOTYPE) );
     }
 #endif
 
 #ifdef ENOPROTOOPT
     if (sym == @symbol(ENOPROTOOPT)) {
-	RETURN ( __mkSmallInteger(ENOPROTOOPT) );
+        RETURN ( __mkSmallInteger(ENOPROTOOPT) );
     }
 #endif
 
 #ifdef EPROTONOSUPPORT
     if (sym == @symbol(EPROTONOSUPPORT)) {
-	RETURN ( __mkSmallInteger(EPROTONOSUPPORT) );
+        RETURN ( __mkSmallInteger(EPROTONOSUPPORT) );
     }
 #endif
 
 #ifdef ESOCKTNOSUPPORT
     if (sym == @symbol(ESOCKTNOSUPPORT)) {
-	RETURN ( __mkSmallInteger(ESOCKTNOSUPPORT) );
+        RETURN ( __mkSmallInteger(ESOCKTNOSUPPORT) );
     }
 #endif
 
 #ifdef EOPNOTSUPP
     if (sym == @symbol(EOPNOTSUPP)) {
-	RETURN ( __mkSmallInteger(EOPNOTSUPP) );
+        RETURN ( __mkSmallInteger(EOPNOTSUPP) );
     }
 #endif
 
 #ifdef EPFNOSUPPORT
     if (sym == @symbol(EPFNOSUPPORT)) {
-	RETURN ( __mkSmallInteger(EPFNOSUPPORT) );
+        RETURN ( __mkSmallInteger(EPFNOSUPPORT) );
     }
 #endif
 
 #ifdef EAFNOSUPPORT
     if (sym == @symbol(EAFNOSUPPORT)) {
-	RETURN ( __mkSmallInteger(EAFNOSUPPORT) );
+        RETURN ( __mkSmallInteger(EAFNOSUPPORT) );
     }
 #endif
 
 #ifdef EADDRINUSE
     if (sym == @symbol(EADDRINUSE)) {
-	RETURN ( __mkSmallInteger(EADDRINUSE) );
+        RETURN ( __mkSmallInteger(EADDRINUSE) );
     }
 #endif
 
 #ifdef EADDRNOTAVAIL
     if (sym == @symbol(EADDRNOTAVAIL)) {
-	RETURN ( __mkSmallInteger(EADDRNOTAVAIL) );
+        RETURN ( __mkSmallInteger(EADDRNOTAVAIL) );
     }
 #endif
 
 #ifdef ETIMEDOUT
     if (sym == @symbol(ETIMEDOUT)) {
-	RETURN ( __mkSmallInteger(ETIMEDOUT) );
+        RETURN ( __mkSmallInteger(ETIMEDOUT) );
+    }
+#endif
+#ifdef WSAETIMEDOUT
+    if (sym == @symbol(ETIMEDOUT)) {
+        RETURN ( __mkSmallInteger(WSAETIMEDOUT) );
     }
 #endif
 
 #ifdef ECONNREFUSED
     if (sym == @symbol(ECONNREFUSED)) {
-	RETURN ( __mkSmallInteger(ECONNREFUSED) );
+        RETURN ( __mkSmallInteger(ECONNREFUSED) );
     }
 #endif
 
 #ifdef ENETDOWN
     if (sym == @symbol(ENETDOWN)) {
-	RETURN ( __mkSmallInteger(ENETDOWN) );
+        RETURN ( __mkSmallInteger(ENETDOWN) );
     }
 #endif
 
 #ifdef ENETUNREACH
     if (sym == @symbol(ENETUNREACH)) {
-	RETURN ( __mkSmallInteger(ENETUNREACH) );
+        RETURN ( __mkSmallInteger(ENETUNREACH) );
     }
 #endif
 
 #ifdef ENETRESET
     if (sym == @symbol(ENETRESET)) {
-	RETURN ( __mkSmallInteger(ENETRESET) );
+        RETURN ( __mkSmallInteger(ENETRESET) );
     }
 #endif
 
 #ifdef ECONNABORTED
     if (sym == @symbol(ECONNABORTED)) {
-	RETURN ( __mkSmallInteger(ECONNABORTED) );
+        RETURN ( __mkSmallInteger(ECONNABORTED) );
     }
 #endif
 
 #ifdef ECONNRESET
     if (sym == @symbol(ECONNRESET)) {
-	RETURN ( __mkSmallInteger(ECONNRESET) );
+        RETURN ( __mkSmallInteger(ECONNRESET) );
     }
 #endif
 
 #ifdef EISCONN
     if (sym == @symbol(EISCONN)) {
-	RETURN ( __mkSmallInteger(EISCONN) );
+        RETURN ( __mkSmallInteger(EISCONN) );
     }
 #endif
 
 #ifdef ENOTCONN
     if (sym == @symbol(ENOTCONN)) {
-	RETURN ( __mkSmallInteger(ENOTCONN) );
+        RETURN ( __mkSmallInteger(ENOTCONN) );
     }
 #endif
 
 #ifdef ESHUTDOWN
     if (sym == @symbol(ESHUTDOWN)) {
-	RETURN ( __mkSmallInteger(ESHUTDOWN) );
+        RETURN ( __mkSmallInteger(ESHUTDOWN) );
     }
 #endif
 
 #ifdef EHOSTDOWN
     if (sym == @symbol(EHOSTDOWN)) {
-	RETURN ( __mkSmallInteger(EHOSTDOWN) );
+        RETURN ( __mkSmallInteger(EHOSTDOWN) );
     }
 #endif
 
 #ifdef EHOSTUNREACH
     if (sym == @symbol(EHOSTUNREACH)) {
-	RETURN ( __mkSmallInteger(EHOSTUNREACH) );
+        RETURN ( __mkSmallInteger(EHOSTUNREACH) );
     }
 #endif
     /*
@@ -3319,92 +3342,92 @@
      */
 #ifdef WSAEINTR
     if (sym == @symbol(WSAEINTR)) {
-	RETURN ( __mkSmallInteger(WSAEINTR) );
+        RETURN ( __mkSmallInteger(WSAEINTR) );
     }
 #endif
 #ifdef WSAEBADF
     if (sym == @symbol(WSAEBADF)) {
-	RETURN ( __mkSmallInteger(WSAEBADF) );
+        RETURN ( __mkSmallInteger(WSAEBADF) );
     }
 #endif
 #ifdef WSAEACCESS
     if (sym == @symbol(WSAEACCESS)) {
-	RETURN ( __mkSmallInteger(WSAEACCESS) );
+        RETURN ( __mkSmallInteger(WSAEACCESS) );
     }
 #endif
 #ifdef WSAEFAULT
     if (sym == @symbol(WSAEFAULT)) {
-	RETURN ( __mkSmallInteger(WSAEFAULT) );
+        RETURN ( __mkSmallInteger(WSAEFAULT) );
     }
 #endif
 #ifdef WSAEINVAL
     if (sym == @symbol(WSAEINVAL)) {
-	RETURN ( __mkSmallInteger(WSAEINVAL) );
+        RETURN ( __mkSmallInteger(WSAEINVAL) );
     }
 #endif
 #ifdef WSAEMFILE
     if (sym == @symbol(WSAEMFILE)) {
-	RETURN ( __mkSmallInteger(WSAEMFILE) );
+        RETURN ( __mkSmallInteger(WSAEMFILE) );
     }
 #endif
 #ifdef WSAEWOULDBLOCK
     if (sym == @symbol(WSAEWOULDBLOCK)) {
-	RETURN ( __mkSmallInteger(WSAEWOULDBLOCK) );
+        RETURN ( __mkSmallInteger(WSAEWOULDBLOCK) );
     }
 #endif
 #ifdef WSAEINPROGRESS
     if (sym == @symbol(WSAEINPROGRESS)) {
-	RETURN ( __mkSmallInteger(WSAEINPROGRESS) );
+        RETURN ( __mkSmallInteger(WSAEINPROGRESS) );
     }
 #endif
 #ifdef WSAEALREADY
     if (sym == @symbol(WSAEALREADY)) {
-	RETURN ( __mkSmallInteger(WSAEALREADY) );
+        RETURN ( __mkSmallInteger(WSAEALREADY) );
     }
 #endif
 #ifdef WSAENOTSOCK
     if (sym == @symbol(WSAENOTSOCK)) {
-	RETURN ( __mkSmallInteger(WSAENOTSOCK) );
+        RETURN ( __mkSmallInteger(WSAENOTSOCK) );
     }
 #endif
 #ifdef WSAEPROTONOSUPPORT
     if (sym == @symbol(WSAEPROTONOSUPPORT)) {
-	RETURN ( __mkSmallInteger(WSAEPROTONOSUPPORT) );
+        RETURN ( __mkSmallInteger(WSAEPROTONOSUPPORT) );
     }
 #endif
 #ifdef WSAESOCKTNOSUPPORT
     if (sym == @symbol(WSAESOCKTNOSUPPORT)) {
-	RETURN ( __mkSmallInteger(WSAESOCKTNOSUPPORT) );
+        RETURN ( __mkSmallInteger(WSAESOCKTNOSUPPORT) );
     }
 #endif
 #ifdef E_NOINTERFACE
     if (sym == @symbol(E_NOINTERFACE)) {
-	RETURN ( __MKUINT(E_NOINTERFACE) );
+        RETURN ( __MKUINT(E_NOINTERFACE) );
     }
 #endif
 #ifdef CO_E_NOTINITIALIZED
     if (sym == @symbol(CO_E_NOTINITIALIZED)) {
-	RETURN ( __MKUINT(CO_E_NOTINITIALIZED) );
+        RETURN ( __MKUINT(CO_E_NOTINITIALIZED) );
     }
 #endif
 #ifdef REGDB_E_CLASSNOTREG
     if (sym == @symbol(REGDB_E_CLASSNOTREG)) {
-	RETURN ( __MKUINT(REGDB_E_CLASSNOTREG) );
+        RETURN ( __MKUINT(REGDB_E_CLASSNOTREG) );
     }
 #endif
 #ifdef CLASS_E_NOAGGREGATION
     if (sym == @symbol(CLASS_E_NOAGGREGATION)) {
-	RETURN ( __MKUINT(CLASS_E_NOAGGREGATION) );
+        RETURN ( __MKUINT(CLASS_E_NOAGGREGATION) );
     }
 #endif
 #ifdef DISP_E_UNKNOWNNAME
     if (sym == @symbol(DISP_E_UNKNOWNNAME)) {
-	RETURN ( __MKUINT(DISP_E_UNKNOWNNAME) );
+        RETURN ( __MKUINT(DISP_E_UNKNOWNNAME) );
     }
 #endif
 #ifdef OLEOBJ_E_NOVERBS
     if (sym == @symbol(OLEOBJ_E_NOVERBS)) {
-	RETURN ( __MKUINT(OLEOBJ_E_NOVERBS) );
+        RETURN ( __MKUINT(OLEOBJ_E_NOVERBS) );
     }
 #endif
 
@@ -11433,190 +11456,207 @@
     int *pcntR = &cntR, *pcntW = &cntW, *pcntE = &cntE;
     fd_set readFds;
     fd_set writeFds;
+    fd_set exceptFds;
     int hasSockets;
     int hasPipes;
     int pass = 1;       // perform up to 2 passes
 
     if (readableResultFdArray != nil) {
-	if (! __isArrayLike(readableResultFdArray)) {
-	    goto fail;
-	}
-	resultSizeReadable = __arraySize(readableResultFdArray);
+        if (! __isArrayLike(readableResultFdArray)) {
+            goto fail;
+        }
+        resultSizeReadable = __arraySize(readableResultFdArray);
     }
     if (writableResultFdArray != nil) {
-	if (! __isArrayLike(writableResultFdArray)) {
-	    goto fail;
-	}
-	resultSizeWritable = __arraySize(writableResultFdArray);
-	if (readableResultFdArray == writableResultFdArray) {
-	    // allow common result set for read/write/except
-	    pcntW = &cntR;
-	}
+        if (! __isArrayLike(writableResultFdArray)) {
+            goto fail;
+        }
+        resultSizeWritable = __arraySize(writableResultFdArray);
+        if (readableResultFdArray == writableResultFdArray) {
+            // allow common result set for read/write/except
+            pcntW = &cntR;
+        }
     }
     if (exceptionResultFdArray != nil) {
-	if (! __isArrayLike(exceptionResultFdArray)) {
-	    goto fail;
-	}
-	resultSizeException = __arraySize(exceptionResultFdArray);
-	if (exceptionResultFdArray == readableResultFdArray) {
-	    // allow common result set for read/write/except
-	    pcntE = &cntR;
-	} else if (exceptionResultFdArray == writableResultFdArray) {
-	    pcntE = &cntW;
-	}
+        if (! __isArrayLike(exceptionResultFdArray)) {
+            goto fail;
+        }
+        resultSizeException = __arraySize(exceptionResultFdArray);
+        if (exceptionResultFdArray == readableResultFdArray) {
+            // allow common result set for read/write/except
+            pcntE = &cntR;
+        } else if (exceptionResultFdArray == writableResultFdArray) {
+            pcntE = &cntW;
+        }
     }
 
     if (__isNonNilObject(readFdArray)) {
-	if (! __isArrayLike(readFdArray)) goto fail;
-	readCount = __arraySize(readFdArray);
+        if (! __isArrayLike(readFdArray)) goto fail;
+        readCount = __arraySize(readFdArray);
     } else {
-	readCount = 0;
+        readCount = 0;
     }
 
     if (__isNonNilObject(writeFdArray)) {
-	if (! __isArrayLike(writeFdArray)) goto fail;
-	writeCount = __arraySize(writeFdArray);
+        if (! __isArrayLike(writeFdArray)) goto fail;
+        writeCount = __arraySize(writeFdArray);
     } else {
-	writeCount = 0;
+        writeCount = 0;
     }
 
     if (__isNonNilObject(exceptFdArray)) {
-	if (! __isArrayLike(exceptFdArray)) goto fail;
-	exceptCount = __arraySize(exceptFdArray);
+        if (! __isArrayLike(exceptFdArray)) goto fail;
+        exceptCount = __arraySize(exceptFdArray);
     } else {
-	exceptCount = 0;
+        exceptCount = 0;
     }
 
 pollAgain:
     FD_ZERO(&readFds);
     FD_ZERO(&writeFds);
+    FD_ZERO(&exceptFds);
     numHandles = hasSockets = hasPipes = 0;
 
     for (i = 0; (i < readCount) && (numHandles < MAXHANDLE); i++) {
-	OBJ fd = __arrayVal(readFdArray)[i];
-
-	if (fd != nil) {
-	    if (__Class(fd) == @global(Win32SocketHandle)) {
-		FD_SET (_HANDLEVal(fd), &readFds);
-		hasSockets++;
-	    } else if (__isSmallInteger(fd)) {
-		DWORD canRead;
-		if (PeekNamedPipe(_get_osfhandle(__intVal(fd)), 0, 0, 0, &canRead, 0)) {
-		    if (canRead > 0) {
-			if (*pcntR < resultSizeReadable) {
-			    __arrayVal(readableResultFdArray)[*pcntR] = fd;
-			}
-			(*pcntR)++; cntAll++;
-		    }
-		} else {
-		    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
-		    RETURN (__mkSmallInteger(-1));
-		}
-		hasPipes++;
-	    } else {
-		hArray  [numHandles] = _HANDLEVal(fd);
-		retArray[numHandles] = i;
-		++numHandles;
-	    }
-	}
+        OBJ fd = __arrayVal(readFdArray)[i];
+
+        if (fd != nil) {
+            if (__Class(fd) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fd), &readFds);
+                hasSockets++;
+            } else if (__isSmallInteger(fd)) {
+                DWORD canRead;
+                if (PeekNamedPipe(_get_osfhandle(__intVal(fd)), 0, 0, 0, &canRead, 0)) {
+                    if (canRead > 0) {
+                        if (*pcntR < resultSizeReadable) {
+                            __arrayVal(readableResultFdArray)[*pcntR] = fd;
+                        }
+                        (*pcntR)++; cntAll++;
+                    }
+                } else {
+                    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+                    RETURN (__mkSmallInteger(-1));
+                }
+                hasPipes++;
+            } else {
+                hArray  [numHandles] = _HANDLEVal(fd);
+                retArray[numHandles] = i;
+                ++numHandles;
+            }
+        }
     }
 
     for (i = 0; (i < writeCount) && (numHandles < MAXHANDLE); i++) {
-	OBJ fd = __arrayVal(writeFdArray)[i];
-
-	if (fd != nil) {
-	    if (__Class(fd) == @global(Win32SocketHandle)) {
-		FD_SET (_HANDLEVal(fd), &writeFds);
-		hasSockets++;
-	    } else if (__isSmallInteger(fd)) {
-		// kludge: assume that pipes can alway be written
-	       if (*pcntW < resultSizeWritable) {
-		    __arrayVal(writableResultFdArray)[*pcntW] = fd;
-		}
-		(*pcntW)++; cntAll++;
-		// there is no pipe to check
-	    } else {
-		hArray  [numHandles] = _HANDLEVal(fd);
-		retArray[numHandles] = i + 10000;
-		++numHandles;
-	    }
-	}
+        OBJ fd = __arrayVal(writeFdArray)[i];
+
+        if (fd != nil) {
+            if (__Class(fd) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fd), &writeFds);
+                hasSockets++;
+            } else if (__isSmallInteger(fd)) {
+                // kludge: assume that pipes can alway be written
+               if (*pcntW < resultSizeWritable) {
+                    __arrayVal(writableResultFdArray)[*pcntW] = fd;
+                }
+                (*pcntW)++; cntAll++;
+                // there is no pipe to check
+            } else {
+                hArray  [numHandles] = _HANDLEVal(fd);
+                retArray[numHandles] = i + 10000;
+                ++numHandles;
+            }
+        }
     }
 
     for (i = 0; (i < exceptCount) && (numHandles < MAXHANDLE); i++) {
-	OBJ fd = __arrayVal(exceptFdArray)[i];
-
-	if (fd != nil) {
-	    if (__isExternalAddressLike(fd)) {
-		hArray  [numHandles] = _HANDLEVal(fd);
-		retArray[numHandles] = i + 20000;
-		++numHandles;
-	    }
-	}
+        OBJ fdOrPid = __arrayVal(exceptFdArray)[i];
+
+        if (fdOrPid != nil) {
+            if (__Class(fdOrPid) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fdOrPid), &exceptFds);
+                hasSockets++;
+            } else if (__isExternalAddressLike(fdOrPid)) {
+                // a PID
+                hArray  [numHandles] = _HANDLEVal(fdOrPid);
+                retArray[numHandles] = i + 20000;
+                ++numHandles;
+            }
+        }
     }
 
     if (hasSockets) {
-	struct timeval tv = {0, 0};
-	int nReady;
+        struct timeval tv = {0, 0};
+        int nReady;
 
 #ifdef SELECT3DEBUGWIN32
-	console_printf("select hasSockets = %d\n", hasSockets);
-#endif
-	nReady = select(1 , &readFds, &writeFds, NULL, &tv);  // first parameter to select is ignored in windows
-	if (nReady < 0) {
+        console_printf("select hasSockets = %d\n", hasSockets);
+#endif
+        nReady = select(1 , &readFds, &writeFds, &exceptFds, &tv);  // first parameter to select is ignored in windows
+        if (nReady < 0) {
 #ifdef SELECTDEBUGWIN32
-	    console_printf("error in select %d %d\n", nReady, GetLastError());
-#endif
-	    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
-	    RETURN (__mkSmallInteger(-1));
-	}
-	if (nReady > 0) {
+            console_printf("error in select %d %d\n", nReady, GetLastError());
+#endif
+            @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+            RETURN (__mkSmallInteger(-1));
+        }
+        if (nReady > 0) {
 #ifdef SELECT3DEBUGWIN32
-	    console_printf("select nReady %d of %d\n", nReady, hasSockets);
-#endif
-	    for (i = 0; i < readCount; i++) {
-		OBJ fd = __arrayVal(readFdArray)[i];
-		if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &readFds)) {
-		    if (*pcntR < resultSizeReadable) {
-			__arrayVal(readableResultFdArray)[*pcntR] = fd;
-			__STORE(readableResultFdArray, fd);
-		    }
-		    (*pcntR)++; cntAll++;
-		}
-	    }
-	    for (i = 0; i < writeCount; i++) {
-		OBJ fd = __arrayVal(writeFdArray)[i];
-		if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &writeFds)) {
-		    if (*pcntW < resultSizeWritable) {
-			__arrayVal(writableResultFdArray)[*pcntW] = fd;
-			__STORE(writableResultFdArray, fd);
-		    }
-		    (*pcntW)++; cntAll++;
-		}
-	    }
-	}
+            console_printf("select nReady %d of %d\n", nReady, hasSockets);
+#endif
+            for (i = 0; i < readCount; i++) {
+                OBJ fd = __arrayVal(readFdArray)[i];
+                if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &readFds)) {
+                    if (*pcntR < resultSizeReadable) {
+                        __arrayVal(readableResultFdArray)[*pcntR] = fd;
+                        __STORE(readableResultFdArray, fd);
+                    }
+                    (*pcntR)++; cntAll++;
+                }
+            }
+            for (i = 0; i < writeCount; i++) {
+                OBJ fd = __arrayVal(writeFdArray)[i];
+                if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &writeFds)) {
+                    if (*pcntW < resultSizeWritable) {
+                        __arrayVal(writableResultFdArray)[*pcntW] = fd;
+                        __STORE(writableResultFdArray, fd);
+                    }
+                    (*pcntW)++; cntAll++;
+                }
+            }
+            for (i = 0; i < exceptCount; i++) {
+                OBJ fd = __arrayVal(exceptFdArray)[i];
+                if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &exceptFds)) {
+                    if (*pcntE < resultSizeException) {
+                        __arrayVal(exceptionResultFdArray)[*pcntE] = fd;
+                        __STORE(exceptionResultFdArray, fd);
+                    }
+                    (*pcntE)++; cntAll++;
+                }
+            }
+
+        }
     }
     if (pass > 1)       // perform maximum 2 passes
-	goto done;
+        goto done;
 
     if (cntAll) {
-	// check for other handles and return immediately, no timeout
-	t = 0;
+        // check for other handles and return immediately, no timeout
+        t = 0;
     } else {
-	if (__isSmallInteger(millis)) {
-	    t = __intVal(millis);
-
-	    if (t <= 0 && numHandles == 0) {
-		RETURN (__mkSmallInteger(0));
-	    }
-	} else {
-	    t = INFINITE;
-	}
+        if (__isSmallInteger(millis)) {
+            t = __intVal(millis);
+
+            if (t <= 0 && numHandles == 0) {
+                RETURN (__mkSmallInteger(0));
+            }
+        } else {
+            t = INFINITE;
+        }
     }
 
     if (numHandles == 0 && t == 0) {
-	// nothing to do and no wait
-	goto done;
+        // nothing to do and no wait
+        goto done;
     }
 
 #ifdef SELECT3DEBUGWIN32
@@ -11627,105 +11667,105 @@
 
     if (res == WAIT_TIMEOUT) {
 #ifdef SELECT3DEBUGWIN32
-	console_printf("- timeOut; ret nil\n" );
-#endif
-	if (t != 0 && (hasSockets || hasPipes)) {
-	    // if not a single handle is ready, poll sockets an pipes again
-	    pass = 2;
-	    goto pollAgain;
-	}
-	goto done;
+        console_printf("- timeOut; ret nil\n" );
+#endif
+        if (t != 0 && (hasSockets || hasPipes)) {
+            // if not a single handle is ready, poll sockets an pipes again
+            pass = 2;
+            goto pollAgain;
+        }
+        goto done;
     }
 
     if (res == WAIT_FAILED) {
 #ifdef SELECT2DEBUGWIN32
-	console_printf("- error %d (last %d); ret -1\n", __threadErrno, GetLastError());
-#endif
-	if (__threadErrno == EINTR) {
-	    @global(LastErrorNumber) = nil;
-	    RETURN (__mkSmallInteger(0));
-	} else {
-	    if (@global(InfoPrinting) == true) {
+        console_printf("- error %d (last %d); ret -1\n", __threadErrno, GetLastError());
+#endif
+        if (__threadErrno == EINTR) {
+            @global(LastErrorNumber) = nil;
+            RETURN (__mkSmallInteger(0));
+        } else {
+            if (@global(InfoPrinting) == true) {
 //                console_fprintf(stderr, "Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
-		console_printf("Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
-	    }
-	    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
-	    RETURN (__mkSmallInteger(-1));
-	}
+                console_printf("Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
+            }
+            @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+            RETURN (__mkSmallInteger(-1));
+        }
     }
 
     if (numHandles) {
-	if (res == numHandles) {
-	    // vmwait() added an IRQ event to the handles, and this one has been triggered
-	    if (1 /* @global(InfoPrinting) == true */) {
-		console_fprintf(stderr, "Win32OS [info]: plugIn event has been handled\n");
-	    }
-	    goto done;
-	}
-	if ((res < 0) || (res >= numHandles)) {
-	    console_printf("- res=%d error1 %d\n", res, GetLastError());
-	    goto done;
-	}
-
-	idx = retArray[res];
-	cntAll++;
+        if (res == numHandles) {
+            // vmwait() added an IRQ event to the handles, and this one has been triggered
+            if (1 /* @global(InfoPrinting) == true */) {
+                console_fprintf(stderr, "Win32OS [info]: plugIn event has been handled\n");
+            }
+            goto done;
+        }
+        if ((res < 0) || (res >= numHandles)) {
+            console_printf("- res=%d error1 %d\n", res, GetLastError());
+            goto done;
+        }
+
+        idx = retArray[res];
+        cntAll++;
 
 #ifdef SELECTDEBUGWIN32
-	console_printf("wait Handles res %d idx %d numHandles %d --- ", res, idx, numHandles);
-#endif
-	if (idx < 10000) {
-	    if (*pcntR < resultSizeReadable) {
-		OBJ temp = __arrayVal(readFdArray)[idx];
-		__arrayVal(readableResultFdArray)[*pcntR] = temp;
-		__STORE(readableResultFdArray, temp);
+        console_printf("wait Handles res %d idx %d numHandles %d --- ", res, idx, numHandles);
+#endif
+        if (idx < 10000) {
+            if (*pcntR < resultSizeReadable) {
+                OBJ temp = __arrayVal(readFdArray)[idx];
+                __arrayVal(readableResultFdArray)[*pcntR] = temp;
+                __STORE(readableResultFdArray, temp);
 #ifdef SELECTDEBUGWIN32
-		console_printf("read ready: %x\n", __externalAddressVal(temp));
-#endif
-		(*pcntR)++;
-	    }
-	} else if (idx < 20000) {
-	    if (*pcntW < resultSizeWritable) {
-		OBJ temp = __arrayVal(writeFdArray)[idx-10000];
-		__arrayVal(writableResultFdArray)[*pcntW] = temp;
-		__STORE(writableResultFdArray, temp);
+                console_printf("read ready: %x\n", __externalAddressVal(temp));
+#endif
+                (*pcntR)++;
+            }
+        } else if (idx < 20000) {
+            if (*pcntW < resultSizeWritable) {
+                OBJ temp = __arrayVal(writeFdArray)[idx-10000];
+                __arrayVal(writableResultFdArray)[*pcntW] = temp;
+                __STORE(writableResultFdArray, temp);
 #ifdef SELECTDEBUGWIN32
-		console_printf("write ready: %x\n", temp);
-#endif
-		(*pcntW)++;
-	    }
-	} else {
-	    if (*pcntE < resultSizeException) {
-		OBJ temp = __arrayVal(exceptFdArray)[idx-20000];
-		__arrayVal(exceptionResultFdArray)[*pcntE] = temp;
-		__STORE(exceptionResultFdArray, temp);
+                console_printf("write ready: %x\n", temp);
+#endif
+                (*pcntW)++;
+            }
+        } else {
+            if (*pcntE < resultSizeException) {
+                OBJ temp = __arrayVal(exceptFdArray)[idx-20000];
+                __arrayVal(exceptionResultFdArray)[*pcntE] = temp;
+                __STORE(exceptionResultFdArray, temp);
 #ifdef SELECTDEBUGWIN32
-		console_printf("except ready: %x\n", temp);
-#endif
-		(*pcntE)++;
-	    }
+                console_printf("except ready: %x\n", temp);
+#endif
+                (*pcntE)++;
+            }
 #ifdef SELECTDEBUGWIN32
-	    else
-		console_printf("cntE: %d, resultSizeException: %d\n", *pcntE, resultSizeException);
-#endif
-	}
+            else
+                console_printf("cntE: %d, resultSizeException: %d\n", *pcntE, resultSizeException);
+#endif
+        }
     }
     if (t != 0 && (hasSockets || hasPipes)) {
-	// back after timeout, maybe some sockets or pipes die wake up
-	// in the meantime?
-	pass = 2;
-	goto pollAgain;
+        // back after timeout, maybe some sockets or pipes did wake up
+        // in the meantime?
+        pass = 2;
+        goto pollAgain;
     }
 
 done:
     /* add a delimiter */
     if (*pcntR < resultSizeReadable) {
-	__arrayVal(readableResultFdArray)[*pcntR] = nil;
+        __arrayVal(readableResultFdArray)[*pcntR] = nil;
     }
     if (*pcntW < resultSizeWritable) {
-	__arrayVal(writableResultFdArray)[*pcntW] = nil;
+        __arrayVal(writableResultFdArray)[*pcntW] = nil;
     }
     if (*pcntE < resultSizeException) {
-	__arrayVal(exceptionResultFdArray)[*pcntE] = nil;
+        __arrayVal(exceptionResultFdArray)[*pcntE] = nil;
     }
 
     @global(LastErrorNumber) = nil;