Win32OperatingSystem.st
changeset 25184 5b1c5f143284
parent 25139 ee3a1332f546
child 25200 7f7b644443df
--- a/Win32OperatingSystem.st	Mon Jan 06 16:02:42 2020 +0100
+++ b/Win32OperatingSystem.st	Thu Jan 09 13:09:27 2020 +0100
@@ -3,7 +3,7 @@
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
  COPYRIGHT (c) 1998-2004 by eXept Software AG
-	      All Rights Reserved
+              All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -17,232 +17,232 @@
 "{ NameSpace: Smalltalk }"
 
 AbstractOperatingSystem subclass:#Win32OperatingSystem
-	instanceVariableNames:''
-	classVariableNames:'CurrentDirectory DomainName HostName LastOsTimeHi LastOsTimeLow
-		LastTimeInfo LastTimeInfoIsLocal'
-	poolDictionaries:'Win32Constants'
-	category:'OS-Windows'
+        instanceVariableNames:''
+        classVariableNames:'CurrentDirectory DomainName HostName LastOsTimeHi LastOsTimeLow
+                LastTimeInfo LastTimeInfoIsLocal'
+        poolDictionaries:'Win32Constants'
+        category:'OS-Windows'
 !
 
 ByteArray variableByteSubclass:#DevModeStructure
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 ByteArray variableByteSubclass:#DocInfoStructure
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#FileStatusInfo
-	instanceVariableNames:'type mode uid gid size id accessed modified created statusChanged
-		sourcePath linkTargetPath fullPathName alternativePathName'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'type mode uid gid size id accessed modified created statusChanged
+                sourcePath linkTargetPath fullPathName alternativePathName'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#OSProcessDescriptor
-	instanceVariableNames:'pid parentPid commandLine'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'pid parentPid commandLine'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#OSProcessStatus
-	instanceVariableNames:'pid status code core'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'pid status code core'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 SharedPool subclass:#PECOFFConstants
-	instanceVariableNames:''
-	classVariableNames:'PE_Signature_OFFSET_OFFSET PE_Signature COFF_HEADER_SIZE
-		COFF_HEADER_Machine_OFFSET IMAGE_FILE_MACHINE_UNKNOWN
-		IMAGE_FILE_MACHINE_AM33 IMAGE_FILE_MACHINE_AMD64
-		IMAGE_FILE_MACHINE_ARM IMAGE_FILE_MACHINE_ARMNT
-		IMAGE_FILE_MACHINE_ARM64 IMAGE_FILE_MACHINE_EBC
-		IMAGE_FILE_MACHINE_I386 IMAGE_FILE_MACHINE_IA64
-		IMAGE_FILE_MACHINE_M32R IMAGE_FILE_MACHINE_MIPS16
-		IMAGE_FILE_MACHINE_MIPSFPU IMAGE_FILE_MACHINE_MIPSFPU16
-		IMAGE_FILE_MACHINE_POWERPC IMAGE_FILE_MACHINE_POWEPCFP
-		IMAGE_FILE_MACHINE_R4000 IMAGE_FILE_MACHINE_SH3
-		IMAGE_FILE_MACHINE_SH3DSP IMAGE_FILE_MACHINE_SH4
-		IMAGE_FILE_MACHINE_SH5 IMAGE_FILE_MACHINE_THUMB
-		IMAGE_FILE_MACHINE_WCEMIPSV2'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:'PE_Signature_OFFSET_OFFSET PE_Signature COFF_HEADER_SIZE
+                COFF_HEADER_Machine_OFFSET IMAGE_FILE_MACHINE_UNKNOWN
+                IMAGE_FILE_MACHINE_AM33 IMAGE_FILE_MACHINE_AMD64
+                IMAGE_FILE_MACHINE_ARM IMAGE_FILE_MACHINE_ARMNT
+                IMAGE_FILE_MACHINE_ARM64 IMAGE_FILE_MACHINE_EBC
+                IMAGE_FILE_MACHINE_I386 IMAGE_FILE_MACHINE_IA64
+                IMAGE_FILE_MACHINE_M32R IMAGE_FILE_MACHINE_MIPS16
+                IMAGE_FILE_MACHINE_MIPSFPU IMAGE_FILE_MACHINE_MIPSFPU16
+                IMAGE_FILE_MACHINE_POWERPC IMAGE_FILE_MACHINE_POWEPCFP
+                IMAGE_FILE_MACHINE_R4000 IMAGE_FILE_MACHINE_SH3
+                IMAGE_FILE_MACHINE_SH3DSP IMAGE_FILE_MACHINE_SH4
+                IMAGE_FILE_MACHINE_SH5 IMAGE_FILE_MACHINE_THUMB
+                IMAGE_FILE_MACHINE_WCEMIPSV2'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#PECOFFFileHeader
-	instanceVariableNames:'file data'
-	classVariableNames:''
-	poolDictionaries:'Win32OperatingSystem::PECOFFConstants'
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'file data'
+        classVariableNames:''
+        poolDictionaries:'Win32OperatingSystem::PECOFFConstants'
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#PerformanceData
-	instanceVariableNames:'objectArray perfTime perfFreq perfTime100nSec'
-	classVariableNames:'CounterIndexTextDictionary HelpIndexTextDictionary
-		PerformanceText'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'objectArray perfTime perfFreq perfTime100nSec'
+        classVariableNames:'CounterIndexTextDictionary HelpIndexTextDictionary
+                PerformanceText'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#Abstract
-	instanceVariableNames:'lastData lastTimestamp cachedResults'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:'lastData lastTimestamp cachedResults'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 Win32OperatingSystem::PerformanceData::Abstract subclass:#DiskIO
-	instanceVariableNames:''
-	classVariableNames:'TheOneAndOnlyInstance'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:''
+        classVariableNames:'TheOneAndOnlyInstance'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 Win32OperatingSystem::PerformanceData::Abstract subclass:#Global
-	instanceVariableNames:''
-	classVariableNames:'TheOneAndOnlyInstance'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:''
+        classVariableNames:'TheOneAndOnlyInstance'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 Win32OperatingSystem::PerformanceData::Abstract subclass:#Memory
-	instanceVariableNames:''
-	classVariableNames:'TheOneAndOnlyInstance'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:''
+        classVariableNames:'TheOneAndOnlyInstance'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 Win32OperatingSystem::PerformanceData::Abstract subclass:#Network
-	instanceVariableNames:''
-	classVariableNames:'TheOneAndOnlyInstance'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:''
+        classVariableNames:'TheOneAndOnlyInstance'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 Win32OperatingSystem::PerformanceData::Abstract subclass:#Process
-	instanceVariableNames:''
-	classVariableNames:'TheOneAndOnlyInstance'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:''
+        classVariableNames:'TheOneAndOnlyInstance'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 Win32OperatingSystem::PerformanceData::Abstract subclass:#Processor
-	instanceVariableNames:''
-	classVariableNames:'TheOneAndOnlyInstance'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::PerformanceData
+        instanceVariableNames:''
+        classVariableNames:'TheOneAndOnlyInstance'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::PerformanceData
 !
 
 ByteArray variableByteSubclass:#PrinterInfo2Structure
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#RegistryEntry
-	instanceVariableNames:'path handle isNew'
-	classVariableNames:'Lobby HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE
-		HKEY_USERS HKEY_PERFORMANCE_DATA HKEY_CURRENT_CONFIG
-		HKEY_DYN_DATA HKEY_PERFORMANCE_TEXT HKEY_PERFORMANCE_NLSTEXT'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'path handle isNew'
+        classVariableNames:'Lobby HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE
+                HKEY_USERS HKEY_PERFORMANCE_DATA HKEY_CURRENT_CONFIG
+                HKEY_DYN_DATA HKEY_PERFORMANCE_TEXT HKEY_PERFORMANCE_NLSTEXT'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 ByteArray variableByteSubclass:#TextMetricsStructure
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32Handle subclass:#Win32ChangeNotificationHandle
-	instanceVariableNames:''
-	classVariableNames:'Lobby'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:'Lobby'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32Handle subclass:#Win32IOHandle
-	instanceVariableNames:''
-	classVariableNames:'Lobby'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:'Lobby'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32OperatingSystem::Win32IOHandle subclass:#Win32FileHandle
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32Handle subclass:#Win32MutexHandle
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32Handle subclass:#Win32NetworkResourceHandle
-	instanceVariableNames:''
-	classVariableNames:'ScopeMappingTable TypeMappingTable DisplayTypeMappingTable
-		UsageMappingTable'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:'ScopeMappingTable TypeMappingTable DisplayTypeMappingTable
+                UsageMappingTable'
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Object subclass:#NetworkResource
-	instanceVariableNames:'scope type usage displayType remoteName localName provider
-		comment'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem::Win32NetworkResourceHandle
+        instanceVariableNames:'scope type usage displayType remoteName localName provider
+                comment'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem::Win32NetworkResourceHandle
 !
 
 Win32Handle subclass:#Win32PrinterHandle
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32Handle subclass:#Win32ProcessHandle
-	instanceVariableNames:'pid'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'pid'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32OperatingSystem::Win32IOHandle subclass:#Win32SerialPortHandle
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 Win32OperatingSystem::Win32IOHandle subclass:#Win32SocketHandle
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 ByteArray variableByteSubclass:#WinPointStructure
-	instanceVariableNames:''
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:''
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:Win32OperatingSystem
 !
 
 !Win32OperatingSystem primitiveDefinitions!
@@ -590,20 +590,20 @@
     int i, len;
 
     if (__isStringLike(string)) {
-	len = __stringSize(string);
-	if (len > bufferSize) len = bufferSize;
-	for (i=0; i<len; i++) {
-	    buffer[i] = __stringVal(string)[i];
-	}
+        len = __stringSize(string);
+        if (len > bufferSize) len = bufferSize;
+        for (i=0; i<len; i++) {
+            buffer[i] = __stringVal(string)[i];
+        }
     } else if (__isUnicode16String(string)) {
-	len = __unicode16StringSize(string);
-	if (len > bufferSize) len = bufferSize;
-	for (i=0; i<len; i++) {
-	    buffer[i] = __unicode16StringVal(string)[i];
-	}
+        len = __unicode16StringSize(string);
+        if (len > bufferSize) len = bufferSize;
+        for (i=0; i<len; i++) {
+            buffer[i] = __unicode16StringVal(string)[i];
+        }
     } else {
-	buffer[0] = 0;
-	return(-1);
+        buffer[0] = 0;
+        return(-1);
     }
     buffer[len] = 0;
     return(len);
@@ -626,43 +626,43 @@
     tv.tv_usec = 0;
 
     if (readMode) {
-	n = select (1 , &fds, NULL, NULL, &tv);  // first parameter to select is ignored in windows
+        n = select (1 , &fds, NULL, NULL, &tv);  // first parameter to select is ignored in windows
     } else {
-	n = select (1, NULL, &fds, NULL, &tv);
+        n = select (1, NULL, &fds, NULL, &tv);
     }
 
     if (n == 0) {
-	return (0);
+        return (0);
     }
 
     if (n > 0) {
-	return (FD_ISSET(handle, &fds) ? 1 : 0);
+        return (FD_ISSET(handle, &fds) ? 1 : 0);
     }
 
     winErrNo = WSAGetLastError();
     switch (winErrNo) {
-	case WSAENOTSOCK:
-	    if (readMode) {
-		DWORD  w = 0;
-
-		if (PeekNamedPipe (handle, 0, 0, 0, & w, 0)) {
-		    return (w > 0);
-		}
+        case WSAENOTSOCK:
+            if (readMode) {
+                DWORD  w = 0;
+
+                if (PeekNamedPipe (handle, 0, 0, 0, & w, 0)) {
+                    return (w > 0);
+                }
 #if 0
-		console_fprintf(stderr, "_canAccessIOWithoutBlocking non Socket\n");
-#endif
-		return (-1);
-	    }
-	    /* in writeMode we return always true for none-sockets */
-	    return (1);
-
-	case WSAEINPROGRESS:
-	case WSAEWOULDBLOCK:
-	    return (0);
-
-	default:
-	    console_fprintf(stderr, "_canAccessIOWithoutBlocking -> %d (0x%x)\n", winErrNo, winErrNo);
-	    return (-1);
+                console_fprintf(stderr, "_canAccessIOWithoutBlocking non Socket\n");
+#endif
+                return (-1);
+            }
+            /* in writeMode we return always true for none-sockets */
+            return (1);
+
+        case WSAEINPROGRESS:
+        case WSAEWOULDBLOCK:
+            return (0);
+
+        default:
+            console_fprintf(stderr, "_canAccessIOWithoutBlocking -> %d (0x%x)\n", winErrNo, winErrNo);
+            return (-1);
     }
 
     /* not reached */
@@ -684,7 +684,7 @@
     FARPROC entry;
 
     if (*pLibHandle == NULL) {
-	*pLibHandle = LoadLibrary(libraryName);
+        *pLibHandle = LoadLibrary(libraryName);
     }
     entry = GetProcAddress(*pLibHandle, functionName);
     return entry;
@@ -747,11 +747,11 @@
     return(__MKINT(lTime));
 #else
     if (lTime >= (LONGLONG)11644473600000L) {
-	lTime -= (LONGLONG)11644473600000L;  // the number of millis from 1.1.1601 to 1.1.1970
-	return(__MKLARGEINT64(1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
+        lTime -= (LONGLONG)11644473600000L;  // the number of millis from 1.1.1601 to 1.1.1970
+        return(__MKLARGEINT64(1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
     } else {
-	lTime = (LONGLONG)11644473600000L - lTime;
-	return(__MKLARGEINT64(-1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
+        lTime = (LONGLONG)11644473600000L - lTime;
+        return(__MKLARGEINT64(-1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
     }
 #endif
 }
@@ -770,13 +770,13 @@
     return(__MKINT(lTime));
 #else
     if (lTime >= (LONGLONG)11644473600000000L) {
-	lTime -= (LONGLONG)11644473600000000L;  // the number of 100nanos from 1.1.1601 to 1.1.1970
-	lTime *= 100;                           // convert multiple of 100ns to nanoseconds
-	return(__MKLARGEINT64(1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
+        lTime -= (LONGLONG)11644473600000000L;  // the number of 100nanos from 1.1.1601 to 1.1.1970
+        lTime *= 100;                           // convert multiple of 100ns to nanoseconds
+        return(__MKLARGEINT64(1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
     } else {
-	lTime = (LONGLONG)11644473600000000L - lTime;
-	lTime *= 100;                           // convert multiple of 100ns to nanoseconds
-	return(__MKLARGEINT64(-1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
+        lTime = (LONGLONG)11644473600000000L - lTime;
+        lTime *= 100;                           // convert multiple of 100ns to nanoseconds
+        return(__MKLARGEINT64(-1, (unsigned INT)(lTime & 0xFFFFFFFF), (unsigned INT)(lTime >> 32)));
     }
 #endif
 }
@@ -790,7 +790,7 @@
     UINT hi = __unsignedLongIntVal(tHigh);
 
     if (hi == 0 && !__isSmallInteger(tHigh))
-	return(0);      // conversion error
+        return(0);      // conversion error
 
     lTime = ((LONGLONG)hi << 32) + (LONGLONG)low;
     lTime = lTime * 10000;      // convert to multiple of 100ns
@@ -811,7 +811,7 @@
     UINT hi = __unsignedLongIntVal(tHigh);
 
     if (hi == 0 && !__isSmallInteger(tHigh))
-	return(0);      // conversion error
+        return(0);      // conversion error
 
     lTime = ((LONGLONG)hi << 32) + (LONGLONG)low;
     lTime += (LONGLONG)11644473600000L;  // rebias to 1.1.1601
@@ -830,57 +830,57 @@
 
     // console_printf(">OSVersion\n");
     if (! haveVersion) {
-	int winVer;
-	DWORD vsn;
-
-	vsn = GetVersion();
-	winVer = LOWORD(vsn);
-	verMinor = HIBYTE(winVer);
-	verMajor = LOBYTE(winVer);
-
-	if (HIWORD(vsn) & 0x8000) {
-	    system = "win95";
-	} else {
-	    if ((verMajor > 5) || ((verMajor == 5) && (verMinor >= 1))) {
-		system = "xp";
-		if (verMajor >= 6) {
-		    system = "vista";
-		    if ((verMajor > 6) || (verMinor >= 1)) {
-			system = "win7";
-			if ((verMajor > 6) || (verMinor >= 2)) {
-			    system = "win8";
-			    // console_printf(">win8\n");
-			    {
-				static HINSTANCE libHandle = NULL;
-
-				FARPROC RtlGetVersion = __get_functionAddress(&libHandle, "ntdll.DLL", "RtlGetVersion");
-				OSVERSIONINFOEXW osInfo;
-
-				if (NULL != RtlGetVersion) {
-				    osInfo.dwOSVersionInfoSize = sizeof(osInfo);
-				    RtlGetVersion(&osInfo);
-				    verMajor = osInfo.dwMajorVersion;
-				    verMinor = osInfo.dwMinorVersion;
-				    if (verMajor >= 10) {
-					system = "win10";
-				    } else {
-					if (verMajor == 6) {
-					    if (verMinor == 3) {
-						system = "win8.1";
-					    }
-					}
-				    }
-				}
-			    }
-			    // console_printf("<win8\n");
-			}
-		    }
-		}
-	    } else {
-		system = "nt";
-	    }
-	}
-	haveVersion = 1;
+        int winVer;
+        DWORD vsn;
+
+        vsn = GetVersion();
+        winVer = LOWORD(vsn);
+        verMinor = HIBYTE(winVer);
+        verMajor = LOBYTE(winVer);
+
+        if (HIWORD(vsn) & 0x8000) {
+            system = "win95";
+        } else {
+            if ((verMajor > 5) || ((verMajor == 5) && (verMinor >= 1))) {
+                system = "xp";
+                if (verMajor >= 6) {
+                    system = "vista";
+                    if ((verMajor > 6) || (verMinor >= 1)) {
+                        system = "win7";
+                        if ((verMajor > 6) || (verMinor >= 2)) {
+                            system = "win8";
+                            // console_printf(">win8\n");
+                            {
+                                static HINSTANCE libHandle = NULL;
+
+                                FARPROC RtlGetVersion = __get_functionAddress(&libHandle, "ntdll.DLL", "RtlGetVersion");
+                                OSVERSIONINFOEXW osInfo;
+
+                                if (NULL != RtlGetVersion) {
+                                    osInfo.dwOSVersionInfoSize = sizeof(osInfo);
+                                    RtlGetVersion(&osInfo);
+                                    verMajor = osInfo.dwMajorVersion;
+                                    verMinor = osInfo.dwMinorVersion;
+                                    if (verMajor >= 10) {
+                                        system = "win10";
+                                    } else {
+                                        if (verMajor == 6) {
+                                            if (verMinor == 3) {
+                                                system = "win8.1";
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                            // console_printf("<win8\n");
+                        }
+                    }
+                }
+            } else {
+                system = "nt";
+            }
+        }
+        haveVersion = 1;
     }
     // console_printf("<OSVersion %s\n", system);
     *pMajor = verMajor;
@@ -899,7 +899,7 @@
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
  COPYRIGHT (c) 1998-2004 by eXept Software AG
-	      All Rights Reserved
+              All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -931,90 +931,90 @@
 
     [Class variables:]
 
-	HostName        <String>        remembered hostname
-
-	DomainName      <String>        remembered domainname
-
-	CurrentDirectory <String>       remembered currentDirectories path
+        HostName        <String>        remembered hostname
+
+        DomainName      <String>        remembered domainname
+
+        CurrentDirectory <String>       remembered currentDirectories path
 
     [author:]
-	Claus Gittinger (initial version & cleanup)
-	Manfred Dierolf (many features)
+        Claus Gittinger (initial version & cleanup)
+        Manfred Dierolf (many features)
 
     [see also:]
-	OSProcessStatus
-	Filename Date Time
-	ExternalStream FileStream PipeStream Socket
+        OSProcessStatus
+        Filename Date Time
+        ExternalStream FileStream PipeStream Socket
 "
 !
 
 examples
 "
   various queries
-								[exBegin]
+                                                                [exBegin]
     Transcript
-	showCR:'hello ' , (OperatingSystem getLoginName)
-								[exEnd]
-
-								[exBegin]
+        showCR:'hello ' , (OperatingSystem getLoginName)
+                                                                [exEnd]
+
+                                                                [exBegin]
     OperatingSystem isUNIXlike ifTrue:[
-	Transcript showCR:'this is some UNIX-like OS'
+        Transcript showCR:'this is some UNIX-like OS'
     ] ifFalse:[
-	Transcript showCR:'this OS is not UNIX-like'
+        Transcript showCR:'this OS is not UNIX-like'
     ]
-								[exEnd]
-
-								[exBegin]
+                                                                [exEnd]
+
+                                                                [exBegin]
     Transcript
-	showCR:'this machine is called ' , OperatingSystem getHostName
-								[exEnd]
-
-								[exBegin]
+        showCR:'this machine is called ' , OperatingSystem getHostName
+                                                                [exEnd]
+
+                                                                [exBegin]
     Transcript
-	showCR:('this machine is in the '
-	       , OperatingSystem getDomainName
-	       , ' domain')
-								[exEnd]
-
-								[exBegin]
+        showCR:('this machine is in the '
+               , OperatingSystem getDomainName
+               , ' domain')
+                                                                [exEnd]
+
+                                                                [exBegin]
     Transcript
-	showCR:('this machine''s CPU is a '
-	       , OperatingSystem getCPUType
-	       )
-								[exEnd]
-
-								[exBegin]
+        showCR:('this machine''s CPU is a '
+               , OperatingSystem getCPUType
+               )
+                                                                [exEnd]
+
+                                                                [exBegin]
     Transcript showCR:'executing ls command ...'.
     OperatingSystem executeCommand:'ls'.
     Transcript showCR:'... done.'.
-								[exEnd]
+                                                                [exEnd]
 
   locking a file
   (should be executed on two running smalltalks - not in two threads):
-								[exBegin]
+                                                                [exBegin]
     |f|
 
     f := 'testFile' asFilename readWriteStream.
 
     10 timesRepeat:[
-	'about to lock ...' printCR.
-	[
-	  OperatingSystem
-	    lockFD:(f fileDescriptor)
-	    shared:false
-	    blocking:false
-	] whileFalse:[
-	    'process ' print. OperatingSystem getProcessId print. ' is waiting' printCR.
-	    Delay waitForSeconds:1
-	].
-	'LOCKED ...' printCR.
-	Delay waitForSeconds:10.
-	'unlock ...' printCR.
-	(OperatingSystem
-	    unlockFD:(f fileDescriptor)) printCR.
-	Delay waitForSeconds:3.
+        'about to lock ...' printCR.
+        [
+          OperatingSystem
+            lockFD:(f fileDescriptor)
+            shared:false
+            blocking:false
+        ] whileFalse:[
+            'process ' print. OperatingSystem getProcessId print. ' is waiting' printCR.
+            Delay waitForSeconds:1
+        ].
+        'LOCKED ...' printCR.
+        Delay waitForSeconds:10.
+        'unlock ...' printCR.
+        (OperatingSystem
+            unlockFD:(f fileDescriptor)) printCR.
+        Delay waitForSeconds:3.
     ]
-								[exBegin]
+                                                                [exBegin]
 "
 ! !
 
@@ -1026,16 +1026,16 @@
 
     if( ! coInitialized ) {
 
-	hres = CoInitializeEx(NULL, COINIT_MULTITHREADED);
-	if (! SUCCEEDED(hres)) {
-	    console_fprintf(stderr, "OperatingSystem [info]: Could not open the COM library hres = %08x\n", hres );
-	    goto error;
-	}
-	coInitialized = 1;
+        hres = CoInitializeEx(NULL, COINIT_MULTITHREADED);
+        if (! SUCCEEDED(hres)) {
+            console_fprintf(stderr, "OperatingSystem [info]: Could not open the COM library hres = %08x\n", hres );
+            goto error;
+        }
+        coInitialized = 1;
 
 #ifdef COM_DEBUG
 
-	console_fprintf(stderr, "OperatingSystem [info]: COM initialized\n" );
+        console_fprintf(stderr, "OperatingSystem [info]: COM initialized\n" );
 #endif
     }
     RETURN (self );
@@ -1062,12 +1062,12 @@
 
     "/ attention: must be ok to be called twice during startup.
     PipeFailed isNil ifTrue:[
-	ObjectMemory addDependent:self.
-	HostName := nil.
-	DomainName := nil.
-	LastErrorNumber := nil.
-	PipeFailed := false.
-	self coInitialize.
+        ObjectMemory addDependent:self.
+        HostName := nil.
+        DomainName := nil.
+        LastErrorNumber := nil.
+        PipeFailed := false.
+        self coInitialize.
     ].
 
     "Modified: 13.9.1997 / 10:47:32 / cg"
@@ -1077,14 +1077,14 @@
     "catch image restart and flush some cached data"
 
     something == #earlyRestart ifTrue:[
-	"
-	 flush cached data
-	"
-	HostName := nil.
-	DomainName := nil.
-	LastErrorNumber := nil.
-	PipeFailed := false.
-	self coInitialize.
+        "
+         flush cached data
+        "
+        HostName := nil.
+        DomainName := nil.
+        LastErrorNumber := nil.
+        PipeFailed := false.
+        self coInitialize.
     ]
 
     "Modified: 22.4.1996 / 13:10:43 / cg"
@@ -1678,7 +1678,7 @@
 
     lp = __win32_getLogFilename();
     if (lp) {
-	ret = __MKSTRING(lp);
+        ret = __MKSTRING(lp);
     }
 %}.
     ^ ret
@@ -1696,16 +1696,16 @@
     |logFilePath|
 
     aFilenameOrNil notNil ifTrue:[
-	logFilePath := aFilenameOrNil asFilename pathName
+        logFilePath := aFilenameOrNil asFilename pathName
     ].
 
 %{
     extern void __win32_setLogFile();
 
     if (__isStringLike(logFilePath)) {
-	__win32_setLogFile(__stringVal(logFilePath));
+        __win32_setLogFile(__stringVal(logFilePath));
     } else {
-	__win32_setLogFile( NULL );
+        __win32_setLogFile( NULL );
     }
 %}
 
@@ -1741,7 +1741,7 @@
 
     result := self primCloseClipboard.
     result ifFalse: [
-	self error:'Clipboard close failed'
+        self error:'Clipboard close failed'
     ].
     ^ result
 
@@ -1749,11 +1749,11 @@
 !
 
 emptyClipboard
-	"Private - empty the clipboard. Note: it must be opened first."
+        "Private - empty the clipboard. Note: it must be opened first."
     | result |
     result := self primEmptyClipboard.
     result ifFalse: [
-	self error:'Clipboard empty failed'
+        self error:'Clipboard empty failed'
     ].
     ^result
 
@@ -1786,7 +1786,7 @@
 
     result := self primOpenClipboard: aHwnd.
     result ifFalse: [
-	self error:'Clipboard open failed'
+        self error:'Clipboard open failed'
     ].
     ^ result
 
@@ -1858,7 +1858,7 @@
     self closeClipboard
 
     "
-	Win32OperatingSystem setBitmapToClipboard: Image fromUser
+        Win32OperatingSystem setBitmapToClipboard: Image fromUser
     "
 
     "Modified (format): / 03-08-2018 / 11:24:11 / Stefan Vogel"
@@ -1869,7 +1869,7 @@
 
     result := self primSetClipboardData: aCfConstant hMem: aMemHandle address.
     result = 0 ifTrue: [
-	self error:'Set clipboard data failed'
+        self error:'Set clipboard data failed'
     ].
     ^ result.
 
@@ -1896,47 +1896,47 @@
     int    __modeBits = 0;
 
     if (__fileAttr & FILE_ATTRIBUTE_DIRECTORY) {
-	type = @symbol(directory);
-	__modeBits = 0777;   /* executable and WRITABLE - refer to comment in #isWritable: */
+        type = @symbol(directory);
+        __modeBits = 0777;   /* executable and WRITABLE - refer to comment in #isWritable: */
     } else if (__fileAttr & FILE_ATTRIBUTE_REPARSE_POINT) {
-	type = @symbol(symbolicLink);
-	__modeBits = 0777;   /* even in UNIX symlinks have 0777 */
+        type = @symbol(symbolicLink);
+        __modeBits = 0777;   /* even in UNIX symlinks have 0777 */
     } else {
-	type = @symbol(regular);
-	if (__fileAttr & FILE_ATTRIBUTE_READONLY) {
-	    __modeBits = 0444;
-	} else {
-	    __modeBits = 0666;
-	}
+        type = @symbol(regular);
+        if (__fileAttr & FILE_ATTRIBUTE_READONLY) {
+            __modeBits = 0444;
+        } else {
+            __modeBits = 0666;
+        }
     }
     modeBits = __mkSmallInteger(__modeBits);
 
 %}.
     osCrtTime isNil
-	ifTrue: [crtTime := Timestamp now]
-	ifFalse:[crtTime := Timestamp new fromOSTime:(osCrtTime "- OperatingSystem osTimeOf19700101 -- already done")].
+        ifTrue: [crtTime := Timestamp now]
+        ifFalse:[crtTime := Timestamp new fromOSTime:(osCrtTime "- OperatingSystem osTimeOf19700101 -- already done")].
 
     osAccTime isNil
-	ifTrue: [accTime := Timestamp now]
-	ifFalse:[accTime := Timestamp new fromOSTime:(osAccTime "- OperatingSystem osTimeOf19700101 -- already done")].
+        ifTrue: [accTime := Timestamp now]
+        ifFalse:[accTime := Timestamp new fromOSTime:(osAccTime "- OperatingSystem osTimeOf19700101 -- already done")].
 
     osModTime isNil
-	ifTrue: [modTime := accTime]
-	ifFalse:[modTime := Timestamp new fromOSTime:(osModTime "- OperatingSystem osTimeOf19700101 -- already done")].
+        ifTrue: [modTime := accTime]
+        ifFalse:[modTime := Timestamp new fromOSTime:(osModTime "- OperatingSystem osTimeOf19700101 -- already done")].
 
     ^ FileStatusInfo
-		type:type
-		mode:modeBits
-		uid:nil
-		gid:nil
-		size:fileSize
-		id:0
-		accessed:accTime
-		modified:modTime
-		created:crtTime
-		sourcePath:osPathname
-		fullName:nil
-		alternativeName:nil.
+                type:type
+                mode:modeBits
+                uid:nil
+                gid:nil
+                size:fileSize
+                id:0
+                accessed:accTime
+                modified:modTime
+                created:crtTime
+                sourcePath:osPathname
+                fullName:nil
+                alternativeName:nil.
 !
 
 nextLinkInfoFrom:aDirectoryStream dirPointer:dirPointer
@@ -1950,47 +1950,47 @@
 
     if ((dirPointer != nil)
     && __isExternalAddressLike(dirPointer)) {
-	// __INST(lastErrorNumber) = nil;
-	HANDLE d = _HANDLEVal(dirPointer);
-
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    rslt = (int)(STX_API_NOINT_CALL2( "FindNextFileW", FindNextFileW, d, &data ));
-	} while ((rslt < 0) && (__threadErrno == EINTR));
-
-	if (rslt > 0) {
-	    fileSize  = __MKLARGEINT64(1, (unsigned INT)data.nFileSizeLow, (unsigned INT)data.nFileSizeHigh);
-	    osPathname = __mkStringOrU16String_maxlen( data.cFileName, MAXPATHLEN );
-	    osFileAttributes = __mkSmallInteger( data.dwFileAttributes );
-
-	    osCrtTime = FileTimeToOsTime1970(&data.ftCreationTime);
-	    osAccTime = FileTimeToOsTime1970(&data.ftLastAccessTime);
-	    osModTime = FileTimeToOsTime1970(&data.ftLastWriteTime);
-	} else {
-	    // we signal end-of-directory through a nil osPathName
-	    if (__threadErrno != __WIN32_ERR(ERROR_NO_MORE_FILES))
-		error = __mkSmallInteger( __threadErrno );
-	}
+        // __INST(lastErrorNumber) = nil;
+        HANDLE d = _HANDLEVal(dirPointer);
+
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            rslt = (int)(STX_API_NOINT_CALL2( "FindNextFileW", FindNextFileW, d, &data ));
+        } while ((rslt < 0) && (__threadErrno == EINTR));
+
+        if (rslt > 0) {
+            fileSize  = __MKLARGEINT64(1, (unsigned INT)data.nFileSizeLow, (unsigned INT)data.nFileSizeHigh);
+            osPathname = __mkStringOrU16String_maxlen( data.cFileName, MAXPATHLEN );
+            osFileAttributes = __mkSmallInteger( data.dwFileAttributes );
+
+            osCrtTime = FileTimeToOsTime1970(&data.ftCreationTime);
+            osAccTime = FileTimeToOsTime1970(&data.ftLastAccessTime);
+            osModTime = FileTimeToOsTime1970(&data.ftLastWriteTime);
+        } else {
+            // we signal end-of-directory through a nil osPathName
+            if (__threadErrno != __WIN32_ERR(ERROR_NO_MORE_FILES))
+                error = __mkSmallInteger( __threadErrno );
+        }
     }
 %}.
     error notNil ifTrue:[
-	^ StreamIOError newException
-	    errorCode:error;
-	    osErrorHolder:(OperatingSystem errorHolderForNumber:error);
-	    parameter:aDirectoryStream;
-	    raiseRequest
+        ^ StreamIOError newException
+            errorCode:error;
+            osErrorHolder:(OperatingSystem errorHolderForNumber:error);
+            parameter:aDirectoryStream;
+            raiseRequest
     ].
 
     osPathname isNil ifTrue:[^ nil].
 
     ^ self
-	linkInfoFor:osPathname
-	fileSize:fileSize
-	fileAttributes:osFileAttributes
-	osCrtTime:osCrtTime
-	osAccTime:osAccTime
-	osModTime:osModTime
+        linkInfoFor:osPathname
+        fileSize:fileSize
+        fileAttributes:osFileAttributes
+        osCrtTime:osCrtTime
+        osAccTime:osAccTime
+        osModTime:osModTime
 
     "Modified: / 13-08-2019 / 17:37:39 / Stefan Vogel"
 ! !
@@ -2029,890 +2029,890 @@
       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 - that's 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: // 53
-		sym = @symbol(ERROR_BAD_NETPATH);
-		typ = @symbol(peerFaultSignal);
-		break;
-
-	    case ERROR_NETWORK_BUSY: // 54
-		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;
-
-	    case ERROR_ALREADY_EXISTS:
-		sym = @symbol(ERROR_ALREADY_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 - that's 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: // 53
+                sym = @symbol(ERROR_BAD_NETPATH);
+                typ = @symbol(peerFaultSignal);
+                break;
+
+            case ERROR_NETWORK_BUSY: // 54
+                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;
+
+            case ERROR_ALREADY_EXISTS:
+                sym = @symbol(ERROR_ALREADY_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;
+            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;
+            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;
+            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;
+            case OLEOBJ_E_NOVERBS:
+                sym = @symbol(OLEOBJ_E_NOVERBS);
+                typ = @symbol(noVerbsSignal);
+                break;
 #endif
 #ifdef RPC_S_INVALID_NET_ADDR
-	    case RPC_S_INVALID_NET_ADDR:
-		sym = @symbol(RPC_S_INVALID_NET_ADDR);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case RPC_S_INVALID_NET_ADDR:
+                sym = @symbol(RPC_S_INVALID_NET_ADDR);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ERROR_BAD_NETPATH
-	    case ERROR_BAD_NETPATH: // 53
-		sym = @symbol(ERROR_BAD_NETPATH);
-		typ = @symbol(peerFaultSignal);
-		break;
-#endif
-
-
-	    default:
-		break;
-	}
+            case ERROR_BAD_NETPATH: // 53
+                sym = @symbol(ERROR_BAD_NETPATH);
+                typ = @symbol(peerFaultSignal);
+                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 errorNumber:errNr errorSymbol:sym errorCategory:typ.
     ^ holder
@@ -2944,222 +2944,222 @@
      */
 #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_SHARING_VIOLATION
     if (sym == @symbol(ERROR_SHARING_VIOLATION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_SHARING_VIOLATION)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(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_FILE_EXISTS
     if (sym == @symbol(ERROR_FILE_EXISTS)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_FILE_EXISTS)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_FILE_EXISTS)));
     }
 #endif
 #ifdef ERROR_ALREADY_EXISTS
     if (sym == @symbol(ERROR_FILE_EXISTS)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ALREADY_EXISTS)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ALREADY_EXISTS)));
     }
 #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
 
@@ -3168,229 +3168,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
 
@@ -3399,13 +3399,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
 
@@ -3414,19 +3414,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
 
@@ -3435,31 +3435,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
 
@@ -3468,13 +3468,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
 
@@ -3483,162 +3483,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) );
+        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
     /*
@@ -3646,92 +3646,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
 
@@ -3778,8 +3778,8 @@
     |shell args wDir cmdName path commandString|
 
     aCommandString isNonByteCollection ifTrue:[
-	"easy: the caller does not want a shell to be executed"
-	^ Array with:aCommandString first with:(aCommandString asStringWith:' ') with:nil.
+        "easy: the caller does not want a shell to be executed"
+        ^ Array with:aCommandString first with:(aCommandString asStringWith:' ') with:nil.
     ].
 
     "/
@@ -3805,58 +3805,58 @@
     cmdName := (aCommandString ? '') withoutSeparators.
 
     (cmdName isEmpty or:[cmdName includesAny:'<>|&']) ifFalse:[
-	"/ test whether the command is a plain executable;
-	"/ if so, no shell is required
-	|index file suffix|
-
-	cmdName first = $" ifTrue:[
-	    index := cmdName indexOf:$" startingAt:2.
-	] ifFalse:[
-	    index := 1.
-	].
-	index := cmdName indexOfSeparatorStartingAt:index.
-	index ~~ 0 ifTrue:[
-	    cmdName := cmdName copyFrom:1 to:(index-1).
-	    args := cmdName copyFrom:(index+1).
-	] ifFalse:[
-	    args := ''.
-	].
-
-	(cmdName first = $" and:[cmdName last = $"]) ifTrue:[
-	    cmdName := (cmdName copyFrom:2 to:cmdName size - 1) withoutSeparators.
-	].
-	file := cmdName asFilename.
-	file suffix isEmpty ifTrue:[
-	    file := file withSuffix:'exe'.
-	].
-	path := file fullAlternativePathName.
-	(OperatingSystem getBinaryType:path) notNil ifTrue:[
-	    "/ is an executable, no shell required
-	    ^ Array with:path with:aCommandString with:nil.
+        "/ test whether the command is a plain executable;
+        "/ if so, no shell is required
+        |index file suffix|
+
+        cmdName first = $" ifTrue:[
+            index := cmdName indexOf:$" startingAt:2.
+        ] ifFalse:[
+            index := 1.
+        ].
+        index := cmdName indexOfSeparatorStartingAt:index.
+        index ~~ 0 ifTrue:[
+            cmdName := cmdName copyFrom:1 to:(index-1).
+            args := cmdName copyFrom:(index+1).
+        ] ifFalse:[
+            args := ''.
+        ].
+
+        (cmdName first = $" and:[cmdName last = $"]) ifTrue:[
+            cmdName := (cmdName copyFrom:2 to:cmdName size - 1) withoutSeparators.
+        ].
+        file := cmdName asFilename.
+        file suffix isEmpty ifTrue:[
+            file := file withSuffix:'exe'.
+        ].
+        path := file fullAlternativePathName.
+        (OperatingSystem getBinaryType:path) notNil ifTrue:[
+            "/ is an executable, no shell required
+            ^ Array with:path with:aCommandString with:nil.
 "/                ^ Array with:path with:(path, ' ', args).
-	].
-	path := self pathOfCommand:cmdName.
-	(path notNil and:[(OperatingSystem getBinaryType:path) notNil]) ifTrue:[
-	    "/ is an executable, no shell required
-	    ^ Array with:path with:aCommandString with:nil.
+        ].
+        path := self pathOfCommand:cmdName.
+        (path notNil and:[(OperatingSystem getBinaryType:path) notNil]) ifTrue:[
+            "/ is an executable, no shell required
+            ^ Array with:path with:aCommandString with:nil.
 "/                ^ Array with:path with:(path, ' ', args).
-	].
+        ].
     ].
 
     "when we come here, we need to pass the command to cmd.exe"
     shell := self getEnvironment:'COMSPEC'.
     shell isNil ifTrue:[
-	wDir := self getWindowsSystemDirectory asFilename.
-	shell := #('cmd.exe' 'command.com') detect:[:eachCommand|
-			(wDir / eachCommand) isExecutableProgram
-		    ] ifNone:[
-			self error:'no cmd.exe available'.
-		    ].
-	shell := (wDir / shell) pathName.
+        wDir := self getWindowsSystemDirectory asFilename.
+        shell := #('cmd.exe' 'command.com') detect:[:eachCommand|
+                        (wDir / eachCommand) isExecutableProgram
+                    ] ifNone:[
+                        self error:'no cmd.exe available'.
+                    ].
+        shell := (wDir / shell) pathName.
     ].
 
     cmdName isEmpty ifTrue:[
-	^ Array with:shell with:'' with:nil.
+        ^ Array with:shell with:'' with:nil.
     ].
 
     commandString := aCommandString.
@@ -3887,72 +3887,72 @@
 !
 
 exec:aCommandPath withArguments:argString environment:environment fileDescriptors:fdArray fork:doFork
-	newPgrp:newPgrp inDirectory:aDirectory
-	showWindow:showWindowBooleanOrNil
+        newPgrp:newPgrp inDirectory:aDirectory
+        showWindow:showWindowBooleanOrNil
 
     "Internal lowLevel entry for combined fork & exec for WIN32
 
      If fork is false (chain a command):
-	 execute the OS command specified by the argument, aCommandPath, with
-	 arguments in argArray (no arguments, if nil).
-	 If successful, this method does not return and smalltalk is gone.
-	 If not successful, it does return.
-	 Normal use is with forkForCommand.
+         execute the OS command specified by the argument, aCommandPath, with
+         arguments in argArray (no arguments, if nil).
+         If successful, this method does not return and smalltalk is gone.
+         If not successful, it does return.
+         Normal use is with forkForCommand.
 
      If fork is true (subprocess command execution):
-	fork a child to do the above.
-	The Win32ProcessHandle of the child process is returned; nil if the fork failed.
+        fork a child to do the above.
+        The Win32ProcessHandle of the child process is returned; nil if the fork failed.
 
      fdArray contains the filedescriptors, to be used for the child (if fork is true).
-	fdArray[1] = 15 -> use fd 15 as stdin.
-	If an element of the array is set to nil, the corresponding filedescriptor
-	will be closed for the child.
-	fdArray[0] == StdIn for child
-	fdArray[1] == StdOut for child
-	fdArray[2] == StdErr for child
+        fdArray[1] = 15 -> use fd 15 as stdin.
+        If an element of the array is set to nil, the corresponding filedescriptor
+        will be closed for the child.
+        fdArray[0] == StdIn for child
+        fdArray[1] == StdOut for child
+        fdArray[2] == StdErr for child
 
      NOTE that in WIN32 the fds are HANDLES.
 
      If newPgrp is true, the subprocess will be established in a new process group.
-	The processgroup will be equal to id.
-	newPgrp is not used on WIN32 and VMS systems.
+        The processgroup will be equal to id.
+        newPgrp is not used on WIN32 and VMS systems.
 
      showWindowOrBoolean may be:
-	true  - a window is shown on start of the command
-	false - the command window is hidden
-	nil   - the nCmdShown parameter of the commans's winmain function determins,
-		if a window is shown.
-	#default
-	      - same as nil
+        true  - a window is shown on start of the command
+        false - the command window is hidden
+        nil   - the nCmdShown parameter of the commans's winmain function determins,
+                if a window is shown.
+        #default
+              - same as nil
     "
 
     |dirPath handle|
 
     aDirectory notNil ifTrue:[
-	dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
-	dirPath isEmpty ifTrue:[
-	    dirPath := nil
-	] ifFalse:[
-	    (dirPath endsWith:':') ifTrue:[
-		dirPath := dirPath , '\'.
-	    ].
-	].
+        dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
+        dirPath isEmpty ifTrue:[
+            dirPath := nil
+        ] ifFalse:[
+            (dirPath endsWith:':') ifTrue:[
+                dirPath := dirPath , '\'.
+            ].
+        ].
     ].
 
     handle := self
-	primExec:aCommandPath
-	commandLine:argString
-	environment:environment
-	fileDescriptors:fdArray
-	fork:doFork
-	newPgrp:newPgrp
-	inPath:dirPath
-	createFlags:nil
-	inheritHandles:true
-	showWindow:showWindowBooleanOrNil.
+        primExec:aCommandPath
+        commandLine:argString
+        environment:environment
+        fileDescriptors:fdArray
+        fork:doFork
+        newPgrp:newPgrp
+        inPath:dirPath
+        createFlags:nil
+        inheritHandles:true
+        showWindow:showWindowBooleanOrNil.
 
     handle notNil ifTrue:[
-	handle registerForFinalization.
+        handle registerForFinalization.
     ].
 
 "/ 'created ' print. cmdLine print. ' -> ' print. rslt printCR.
@@ -3973,32 +3973,32 @@
     INT status = -1;
 
     if (__isExternalAddressLike(aProcessId)) {
-	HANDLE handle = _HANDLEVal(aProcessId);
-	if (handle) {
+        HANDLE handle = _HANDLEVal(aProcessId);
+        if (handle) {
 #ifdef DO_WRAP_CALLS
-	    do {
-		__threadErrno = 0;
-		endStatus = (INT)STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, handle, INFINITE);
-	    } while ((endStatus < 0) && (__threadErrno == EINTR));
-#else
-	    endStatus = (INT)WaitForSingleObject(handle , INFINITE);
-#endif
-	    if (endStatus != WAIT_FAILED) {
-		if (GetExitCodeProcess(handle,&endStatus)) {
-		    status = endStatus;
+            do {
+                __threadErrno = 0;
+                endStatus = (INT)STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, handle, INFINITE);
+            } while ((endStatus < 0) && (__threadErrno == EINTR));
+#else
+            endStatus = (INT)WaitForSingleObject(handle , INFINITE);
+#endif
+            if (endStatus != WAIT_FAILED) {
+                if (GetExitCodeProcess(handle,&endStatus)) {
+                    status = endStatus;
 #ifdef PROCESSDEBUGWIN32
-		    if (flag_PROCESSDEBUGWIN32) {
-			console_fprintf(stderr, "getexitcode status = %d\n",status);
-		    }
-		} else {
-		    if (flag_PROCESSDEBUGWIN32) {
-			console_fprintf(stderr, "getexitcode failed.\n");
-		    }
-#endif
-		}
-	    }
-	}
-	RETURN ( __mkSmallInteger(status));
+                    if (flag_PROCESSDEBUGWIN32) {
+                        console_fprintf(stderr, "getexitcode status = %d\n",status);
+                    }
+                } else {
+                    if (flag_PROCESSDEBUGWIN32) {
+                        console_fprintf(stderr, "getexitcode failed.\n");
+                    }
+#endif
+                }
+            }
+        }
+        RETURN ( __mkSmallInteger(status));
     }
 %}.
     self primitiveFailed
@@ -4013,54 +4013,54 @@
 
     cmdFile := aCommand asFilename.
     cmdFile isAbsolute ifTrue:[
-	cmdFile isExecutableProgram ifTrue:[
-	    ^ aCommand
-	].
-	^ nil
+        cmdFile isExecutableProgram ifTrue:[
+            ^ aCommand
+        ].
+        ^ nil
     ].
 
     (aCommand includes:Filename separator) ifTrue:[
-	path := Filename currentDirectory construct:aCommand.
-	path isExecutableProgram ifTrue:[
-	    ^ path pathName.
-	].
-	^ nil
+        path := Filename currentDirectory construct:aCommand.
+        path isExecutableProgram ifTrue:[
+            ^ path pathName.
+        ].
+        ^ nil
     ].
 
     "search in all directories of PATH.
      If there no extension, add the known extensions."
     path := (self getEnvironment:'PATH') ? ''.
     rpath := self registryEntry
-		    key: 'HKEY_CURRENT_USER\Environment'
-		    valueNamed:'PATH'.
+                    key: 'HKEY_CURRENT_USER\Environment'
+                    valueNamed:'PATH'.
     rpath notNil ifTrue:[
-	path := path , self pathSeparator , rpath
+        path := path , self pathSeparator , rpath
     ].
     path := '.;', path.
     hasSuffix := cmdFile suffix notEmpty.
 
     (path asCollectionOfSubstringsSeparatedBy:self pathSeparator) do:[:eachDirectory |
-	|file|
-
-	eachDirectory isEmpty ifTrue:[
-	    file := cmdFile
-	] ifFalse:[
-	    file := eachDirectory asFilename construct:aCommand.
-	].
-	hasSuffix ifTrue:[
-	    file isExecutableProgram ifTrue:[
-		^ file pathName.
-	    ].
-	] ifFalse:[
-	    self executableFileExtensions do:[:ext |
-		|fExt|
-
-		fExt := file withSuffix:ext.
-		fExt isExecutableProgram ifTrue:[
-		    ^ fExt pathName.
-		].
-	    ].
-	].
+        |file|
+
+        eachDirectory isEmpty ifTrue:[
+            file := cmdFile
+        ] ifFalse:[
+            file := eachDirectory asFilename construct:aCommand.
+        ].
+        hasSuffix ifTrue:[
+            file isExecutableProgram ifTrue:[
+                ^ file pathName.
+            ].
+        ] ifFalse:[
+            self executableFileExtensions do:[:ext |
+                |fExt|
+
+                fExt := file withSuffix:ext.
+                fExt isExecutableProgram ifTrue:[
+                    ^ fExt pathName.
+                ].
+            ].
+        ].
     ].
     ^ nil
 
@@ -4123,10 +4123,10 @@
         envString16 :=
             Unicode16String streamContents:[:s |
                 newEnv keysSorted do:[:k |
-                    s nextPutAll:k; nextPutAll:'='; nextPutAll:(newEnv at:k).
-                    s nextPut:(Character value:0).
+                    s nextPutAll:k; nextPut:$=; nextPutAll:(newEnv at:k).
+                    s nextPut:(Character codePoint:0).
                 ].
-                s nextPut:(Character value:0).
+                s nextPut:(Character codePoint:0).
             ].
     ].
 
@@ -4142,7 +4142,6 @@
     /*
      * CreateProcess supports 32767 characters/bytes including all variables and values
      * so take a good average for its arguments 4096
-     * ATTENTION this value is also used hardcoded in the following code to check the length
      */
     #define MAX_WPATH 4096
     wchar_t cmdPathW[MAX_WPATH];
@@ -4179,7 +4178,7 @@
         // #commandPathUni16
         if (commandPathUni16 != nil) {
             l = __unicode16StringSize(commandPathUni16);
-            if (l >= MAX_WPATH) { // >= need 1 space for terminator
+            if (l >= sizeof(cmdPathW)) { // >= need 1 space for terminator
 # ifdef PROCESSDEBUGWIN32
                 if (flag_PROCESSDEBUGWIN32) {
                     console_fprintf(stderr, "argument #commandPathUni16 is to long\n");
@@ -4196,7 +4195,7 @@
 
         // commandLineUni16
         l = __unicode16StringSize(commandLineUni16);
-        if (l >= MAX_WPATH) { // >= need 1 space for terminator
+        if (l >= sizeof(cmdLineW)) { // >= need 1 space for terminator
 # ifdef PROCESSDEBUGWIN32
             if (flag_PROCESSDEBUGWIN32) {
                 console_fprintf(stderr, "argument #commandLineUni16 is to long\n");
@@ -4213,7 +4212,7 @@
         // #dirNameUni16
         if (__isUnicode16String(dirNameUni16)) {
             l = __unicode16StringSize(dirNameUni16);
-            if (l >= MAX_WPATH) { // >= need 1 space for terminator
+            if (l >= sizeof(dirNameW)) { // >= need 1 space for terminator
 # ifdef PROCESSDEBUGWIN32
                 if (flag_PROCESSDEBUGWIN32) {
                     console_fprintf(stderr, "argument #dirNameUni16 is to long\n");
@@ -4477,42 +4476,42 @@
     args:args
 
     "
-	try executing binary with the highest privileges it can obtain.
-	this has been implement, because a normal user (from user group, not admin group)
-	could not write to its own HKEY_CURRENT_USER registry by Win32OperatingSystem registryEntry.
-	but calling a corresponding *.reg file like the following examples, did the trick (even without UAC prompt)
-
-	self
-	    primShellExecuteUacElevated:'regedit' asUnicode16String
-	    args:'/s C:\users\test\desktop\add.reg' asUnicode16String
+        try executing binary with the highest privileges it can obtain.
+        this has been implement, because a normal user (from user group, not admin group)
+        could not write to its own HKEY_CURRENT_USER registry by Win32OperatingSystem registryEntry.
+        but calling a corresponding *.reg file like the following examples, did the trick (even without UAC prompt)
+
+        self
+            primShellExecuteUacElevated:'regedit' asUnicode16String
+            args:'/s C:\users\test\desktop\add.reg' asUnicode16String
     "
 
 %{
     int result;
 
     if (!__isUnicode16String(binary)) {
-	RETURN (false);
+        RETURN (false);
     };
 
     if (!__isUnicode16String(args)) {
-	RETURN (false);
+        RETURN (false);
     };
 
     result = (int)ShellExecuteW(
-	NULL,
-	// The "runas" verb is important because that's what
-	// internally triggers windows to open up a UAC prompt.
-	// windows does not always open the UAC prompt,
-	// if not the #binary will executed UAC elevated
-	L"runas",
-	__unicode16StringVal(binary),
-	__unicode16StringVal(args),
-	NULL,
-	SW_SHOWNORMAL
+        NULL,
+        // The "runas" verb is important because that's what
+        // internally triggers windows to open up a UAC prompt.
+        // windows does not always open the UAC prompt,
+        // if not the #binary will executed UAC elevated
+        L"runas",
+        __unicode16StringVal(binary),
+        __unicode16StringVal(args),
+        NULL,
+        SW_SHOWNORMAL
     );
 
     if (result <= 32) {
-	RETURN (false);
+        RETURN (false);
     }
 
     RETURN (true);
@@ -4655,19 +4654,19 @@
     args:args
 
     "
-	try executing binary with the highest privileges it can obtain.
-	this has been implement, because a normal user (from user group, not admin group)
-	could not write to its own HKEY_CURRENT_USER registry by Win32OperatingSystem registryEntry.
-	but calling a corresponding *.reg file like the following examples, did the trick (even without UAC prompt)
-
-	self
-	    shellExecuteUacElevated:'regedit'
-	    args:'/s C:\users\test\desktop\add.reg'
+        try executing binary with the highest privileges it can obtain.
+        this has been implement, because a normal user (from user group, not admin group)
+        could not write to its own HKEY_CURRENT_USER registry by Win32OperatingSystem registryEntry.
+        but calling a corresponding *.reg file like the following examples, did the trick (even without UAC prompt)
+
+        self
+            shellExecuteUacElevated:'regedit'
+            args:'/s C:\users\test\desktop\add.reg'
     "
 
     ^ self
-	primShellExecuteUacElevated:binary asUnicode16String
-	args:args asUnicode16String
+        primShellExecuteUacElevated:binary asUnicode16String
+        args:args asUnicode16String
 
     "Created: / 05-11-2018 / 13:58:29 / sr"
 !
@@ -4697,32 +4696,32 @@
     shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
 
     (in := anExternalInStream) isNil ifTrue:[
-	nullStream := Filename nullDevice readWriteStream.
-	in := nullStream.
+        nullStream := Filename nullDevice readWriteStream.
+        in := nullStream.
     ].
     (out := anExternalOutStream) isNil ifTrue:[
-	nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
-	out := nullStream.
+        nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
+        out := nullStream.
     ].
     (err := anExternalErrStream) isNil ifTrue:[
-	err := out
+        err := out
     ].
 
     rslt := self
-	exec:(shellAndArgs at:1)
-	withArguments:(shellAndArgs at:2)
-	environment:anEvironmentDictionary
-	fileDescriptors:(Array with:in fileHandle
-			       with:out fileHandle
-			       with:err fileHandle
-			       with:(anAuxiliaryStream notNil ifTrue:[anAuxiliaryStream fileHandle] ifFalse:[nil]))
-	fork:true
-	newPgrp:newPgrp
-	inDirectory:dir
-	showWindow:(showWindowBooleanOrNil ? (shellAndArgs at:3)).
+        exec:(shellAndArgs at:1)
+        withArguments:(shellAndArgs at:2)
+        environment:anEvironmentDictionary
+        fileDescriptors:(Array with:in fileHandle
+                               with:out fileHandle
+                               with:err fileHandle
+                               with:(anAuxiliaryStream notNil ifTrue:[anAuxiliaryStream fileHandle] ifFalse:[nil]))
+        fork:true
+        newPgrp:newPgrp
+        inDirectory:dir
+        showWindow:(showWindowBooleanOrNil ? (shellAndArgs at:3)).
 
     nullStream notNil ifTrue:[
-	nullStream close.
+        nullStream close.
     ].
     ^ rslt
 
@@ -4748,7 +4747,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-	 Processor monitorPid:pid action:[:OSstatus | sema signal ].
+         Processor monitorPid:pid action:[:OSstatus | sema signal ].
      ].
      in close.
      out close.
@@ -4763,10 +4762,10 @@
      sema := Semaphore new.
 
      Processor
-	    monitor:[
-		pid := OperatingSystem startProcess:'dir > out 2>err'
-	    ]
-	    action:[:osStatus | sema signal ].
+            monitor:[
+                pid := OperatingSystem startProcess:'dir > out 2>err'
+            ]
+            action:[:osStatus | sema signal ].
 
      sema wait.
      Transcript showCR:'finished'
@@ -4778,10 +4777,10 @@
      sema := Semaphore new.
 
      Processor
-	    monitor:[
-		pid := OperatingSystem startProcess:'(echo 1 & stx --eval "Delay waitForSeconds:100" & dir) >out' withCRs
-	    ]
-	    action:[:osStatus | sema signal ].
+            monitor:[
+                pid := OperatingSystem startProcess:'(echo 1 & stx --eval "Delay waitForSeconds:100" & dir) >out' withCRs
+            ]
+            action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:5.
      OperatingSystem terminateProcessGroup:pid.
@@ -4794,10 +4793,10 @@
      sema := Semaphore new.
 
      Processor
-	    monitor:[
-		pid := OperatingSystem startProcess:{ 'C:\Users\cg\work\stx\projects\smalltalk\stx.com' . '--eval' . '"Delay waitForSeconds:100"' }
-	    ]
-	    action:[:osStatus | sema signal ].
+            monitor:[
+                pid := OperatingSystem startProcess:{ 'C:\Users\cg\work\stx\projects\smalltalk\stx.com' . '--eval' . '"Delay waitForSeconds:100"' }
+            ]
+            action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:5.
      OperatingSystem terminateProcess:pid.
@@ -4835,46 +4834,46 @@
 
     if (__isStringLike(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    char _aPathName[MAXPATHLEN];
-
-	    strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	    do {
-		// do not cast to INT - will loose sign bit then!
-		success = (int)STX_API_NOINT_CALL1( "DeleteFileA", DeleteFileA, _aPathName);
-	    } while (!success && (__threadErrno == EINTR));
-	}
-#else
-	success = DeleteFileA((char *)__stringVal(fullPathName));
-	if (!success) __threadErrno = __WIN32_ERR(GetLastError());
+        {
+            char _aPathName[MAXPATHLEN];
+
+            strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+            do {
+                // do not cast to INT - will loose sign bit then!
+                success = (int)STX_API_NOINT_CALL1( "DeleteFileA", DeleteFileA, _aPathName);
+            } while (!success && (__threadErrno == EINTR));
+        }
+#else
+        success = DeleteFileA((char *)__stringVal(fullPathName));
+        if (!success) __threadErrno = __WIN32_ERR(GetLastError());
 #endif
     } else if (__isUnicode16String(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    wchar_t _wPathName[MAXPATHLEN+1];
-
-	    _makeWchar(fullPathName, _wPathName, sizeof(_wPathName));
-	    do {
-		// do not cast to INT - will loose sign bit then!
-		success = (int)(STX_API_NOINT_CALL1( "DeleteFileW", DeleteFileW, _wPathName));
-	    } while (!success && (__threadErrno == EINTR));
-	}
-#else
-	success = DeleteFileW((wchar_t *)__unicode16StringVal(fullPathName));
-	if (!success) __threadErrno = __WIN32_ERR(GetLastError());
+        {
+            wchar_t _wPathName[MAXPATHLEN+1];
+
+            _makeWchar(fullPathName, _wPathName, sizeof(_wPathName));
+            do {
+                // do not cast to INT - will loose sign bit then!
+                success = (int)(STX_API_NOINT_CALL1( "DeleteFileW", DeleteFileW, _wPathName));
+            } while (!success && (__threadErrno == EINTR));
+        }
+#else
+        success = DeleteFileW((wchar_t *)__unicode16StringVal(fullPathName));
+        if (!success) __threadErrno = __WIN32_ERR(GetLastError());
 #endif
     }
 
     if (success) {
-	RETURN (nil);
+        RETURN (nil);
     }
 
     error = __mkSmallInteger(__threadErrno);
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
 
     ^ self primitiveFailed
@@ -4885,12 +4884,12 @@
 
 %{
     if (__isSmallInteger(anIntegerOrHandle)) {
-	close(__intVal(anIntegerOrHandle));
-	RETURN(self);
+        close(__intVal(anIntegerOrHandle));
+        RETURN(self);
     }
     if (__isExternalAddressLike(anIntegerOrHandle)) {
        if (!CloseHandle( _HANDLEVal(anIntegerOrHandle))) {
-	   console_fprintf( stderr, "Win32OS [warning]: Could not close handle : %x\n", _HANDLEVal(anIntegerOrHandle));
+           console_fprintf( stderr, "Win32OS [warning]: Could not close handle : %x\n", _HANDLEVal(anIntegerOrHandle));
        }
        RETURN(self);
     }
@@ -4919,17 +4918,17 @@
     sa.bInheritHandle = FALSE;
 
     if (__isStringLike(aPathName)) {
-	success = CreateDirectoryA(__stringVal(aPathName), &sa);
+        success = CreateDirectoryA(__stringVal(aPathName), &sa);
     } else if (__isUnicode16String(aPathName)) {
-	wchar_t _wPathName[MAXPATHLEN+1];
-
-	_makeWchar(aPathName, _wPathName, sizeof(_wPathName));
-	success = CreateDirectoryW(_wPathName, &sa);
+        wchar_t _wPathName[MAXPATHLEN+1];
+
+        _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+        success = CreateDirectoryW(_wPathName, &sa);
     } else
-	goto err;
+        goto err;
 
     if (success == TRUE) {
-	RETURN (nil);
+        RETURN (nil);
     }
 
     error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
@@ -4938,8 +4937,8 @@
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
 
     ^ self primitiveFailed
@@ -4965,7 +4964,7 @@
      Return nil if successful, an OsErrorHolder if not."
 
     (self executeCommand:('mklink/h "%1" "%2"' bindWith:newPath with:oldPath)) ifFalse:[
-	^ OSErrorHolder errorSymbol:'mklink/h failed' errorCategory:nil.
+        ^ OSErrorHolder errorSymbol:'mklink/h failed' errorCategory:nil.
     ].
     ^ nil.
 
@@ -4983,11 +4982,11 @@
 
     dirFlag := ''.
     (self isDirectory:oldPath) ifTrue:[
-	dirFlag := '/d'.
+        dirFlag := '/d'.
     ].
 
     (self executeCommand:('mklink %3 "%1" "%2"' bindWith:newPath with:oldPath with:dirFlag)) ifFalse:[
-	^ OSErrorHolder errorSymbol:'mklink failed' errorCategory:nil.
+        ^ OSErrorHolder errorSymbol:'mklink failed' errorCategory:nil.
     ].
     ^ nil.
 
@@ -5019,32 +5018,32 @@
     char szGotPath[MAXPATHLEN];
 
     if (! __isStringLike(aPathName)) {
-	console_fprintf(stderr, "OperatingSystem [info]: invalid argument\n");
-	goto error;
+        console_fprintf(stderr, "OperatingSystem [info]: invalid argument\n");
+        goto error;
     }
 
     if( ! coInitialized ) {
-	console_fprintf(stderr, "OperatingSystem [info]: com not initialized\n");
-	goto error;
+        console_fprintf(stderr, "OperatingSystem [info]: com not initialized\n");
+        goto error;
     }
 
     if ( ipShellLink == NULL ) {
-	hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
-				&IID_IShellLink, (LPVOID *)&ipShellLink);
-	if (! SUCCEEDED(hres)) {
-	    console_fprintf(stderr, "OperatingSystem [info]: CoCreateInstance Error - hres = %08x\n", hres);
-	    ipShellLink = NULL;
-	    goto error;
-	}
-
-	hres = ipShellLink->lpVtbl->QueryInterface( ipShellLink, &IID_IPersistFile, (void **)&ipPersistFile );
-	if (! SUCCEEDED(hres)) {
-	    console_fprintf(stderr, "OperatingSystem [info]: QueryInterface Error - hres = %08x\n", hres);
-	    ipShellLink->lpVtbl->Release(ipShellLink);
-	    ipShellLink   = NULL;
-	    ipPersistFile = NULL;
-	    goto error;
-	}
+        hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
+                                &IID_IShellLink, (LPVOID *)&ipShellLink);
+        if (! SUCCEEDED(hres)) {
+            console_fprintf(stderr, "OperatingSystem [info]: CoCreateInstance Error - hres = %08x\n", hres);
+            ipShellLink = NULL;
+            goto error;
+        }
+
+        hres = ipShellLink->lpVtbl->QueryInterface( ipShellLink, &IID_IPersistFile, (void **)&ipPersistFile );
+        if (! SUCCEEDED(hres)) {
+            console_fprintf(stderr, "OperatingSystem [info]: QueryInterface Error - hres = %08x\n", hres);
+            ipShellLink->lpVtbl->Release(ipShellLink);
+            ipShellLink   = NULL;
+            ipPersistFile = NULL;
+            goto error;
+        }
     }
 
     MultiByteToWideChar(CP_ACP, 0, __stringVal(aPathName), -1, wsz, MAXPATHLEN);
@@ -5052,18 +5051,18 @@
     hres = ipPersistFile->lpVtbl->Load(ipPersistFile, wsz, STGM_READ);
 
     if (SUCCEEDED(hres)) {
-	hres = ipShellLink->lpVtbl->GetPath(ipShellLink, szGotPath, MAXPATHLEN,
-		    (WIN32_FIND_DATA *)&wfd, 0 /* SLGP_SHORTPATH */ );
-	if (SUCCEEDED(hres)) {
-	    resolvedPath = __MKSTRING(szGotPath);
-	} else {
+        hres = ipShellLink->lpVtbl->GetPath(ipShellLink, szGotPath, MAXPATHLEN,
+                    (WIN32_FIND_DATA *)&wfd, 0 /* SLGP_SHORTPATH */ );
+        if (SUCCEEDED(hres)) {
+            resolvedPath = __MKSTRING(szGotPath);
+        } else {
 #ifdef COM_DEBUG
-	    console_fprintf(stderr, "OperatingSystem [info]: GetPath failed - hres = %08x\n", hres );
-#endif
-	}
+            console_fprintf(stderr, "OperatingSystem [info]: GetPath failed - hres = %08x\n", hres );
+#endif
+        }
     } else {
 #ifdef COM_DEBUG
-	console_fprintf(stderr, "OperatingSystem [info]: Load failed - hres = %08x\n", hres );
+        console_fprintf(stderr, "OperatingSystem [info]: Load failed - hres = %08x\n", hres );
 #endif
     }
     /* ipPersistFile->lpVtbl->Release(ipPersistFile);  */
@@ -5104,19 +5103,19 @@
     DWORD access, share, create, attr;
 
     if (__isStringLike(pathName)) {
-	name = __stringVal(pathName);
+        name = __stringVal(pathName);
     } else if (__isUnicode16String(pathName)) {
-	_makeWchar(pathName, _wPathName, sizeof(_wPathName));
+        _makeWchar(pathName, _wPathName, sizeof(_wPathName));
     } else {
-	fileHandle = nil;
-	argumentError = @symbol(badPathName);
-	goto badArgument;
+        fileHandle = nil;
+        argumentError = @symbol(badPathName);
+        goto badArgument;
     }
 
     if (! __isArrayLike(attributeSpec)) {
-	fileHandle = nil;
-	argumentError = @symbol(badAttributeSpec);
-	goto badArgument;
+        fileHandle = nil;
+        argumentError = @symbol(badAttributeSpec);
+        goto badArgument;
     }
     ap = __ArrayInstPtr(attributeSpec)->a_element;
     numAttrib = __arraySize(attributeSpec);
@@ -5127,79 +5126,79 @@
     attr = 0;
 
     for (i=0; i<numAttrib;i++) {
-	OBJ attrSym = ap[i];
-
-	if (attrSym == @symbol(FILE_SHARE_READ)) {
-	    share |= FILE_SHARE_READ;
-	} else if (attrSym == @symbol(FILE_SHARE_WRITE)) {
-	    share |= FILE_SHARE_WRITE;
-
-	} else if (attrSym == @symbol(GENERIC_READ)) {
-	    access |= GENERIC_READ;
-	} else if (attrSym == @symbol(GENERIC_WRITE)) {
-	    access |= GENERIC_WRITE;
-
-	} else if (attrSym == @symbol(CREATE_NEW)) {
-	    create |= CREATE_NEW;
-	} else if (attrSym == @symbol(CREATE_ALWAYS)) {
-	    create |= CREATE_ALWAYS;
-	} else if (attrSym == @symbol(OPEN_EXISTING)) {
-	    create |= OPEN_EXISTING;
-	} else if (attrSym == @symbol(OPEN_ALWAYS)) {
-	    create |= OPEN_ALWAYS;
-	} else if (attrSym == @symbol(TRUNCATE_EXISTING)) {
-	    create |= TRUNCATE_EXISTING;
-
-	} else if (attrSym == @symbol(FILE_ATTRIBUTE_HIDDEN)) {
-	    attr |= FILE_ATTRIBUTE_HIDDEN;
-	} else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
-	    attr |= FILE_ATTRIBUTE_READONLY;
-	} else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
-	    attr |= FILE_ATTRIBUTE_READONLY;
-	} else if (attrSym == @symbol(FILE_FLAG_WRITE_THROUGH)) {
-	    attr |= FILE_FLAG_WRITE_THROUGH;
-	} else if (attrSym == @symbol(FILE_FLAG_SEQUENTIAL_SCAN)) {
-	    attr |= FILE_FLAG_SEQUENTIAL_SCAN;
-	} else if (attrSym == @symbol(FILE_FLAG_DELETE_ON_CLOSE)) {
-	    attr |= FILE_FLAG_DELETE_ON_CLOSE;
-	} else {
-	    console_fprintf(stderr, "Win32OS [warning]: unsupported open mode\n");
-	}
+        OBJ attrSym = ap[i];
+
+        if (attrSym == @symbol(FILE_SHARE_READ)) {
+            share |= FILE_SHARE_READ;
+        } else if (attrSym == @symbol(FILE_SHARE_WRITE)) {
+            share |= FILE_SHARE_WRITE;
+
+        } else if (attrSym == @symbol(GENERIC_READ)) {
+            access |= GENERIC_READ;
+        } else if (attrSym == @symbol(GENERIC_WRITE)) {
+            access |= GENERIC_WRITE;
+
+        } else if (attrSym == @symbol(CREATE_NEW)) {
+            create |= CREATE_NEW;
+        } else if (attrSym == @symbol(CREATE_ALWAYS)) {
+            create |= CREATE_ALWAYS;
+        } else if (attrSym == @symbol(OPEN_EXISTING)) {
+            create |= OPEN_EXISTING;
+        } else if (attrSym == @symbol(OPEN_ALWAYS)) {
+            create |= OPEN_ALWAYS;
+        } else if (attrSym == @symbol(TRUNCATE_EXISTING)) {
+            create |= TRUNCATE_EXISTING;
+
+        } else if (attrSym == @symbol(FILE_ATTRIBUTE_HIDDEN)) {
+            attr |= FILE_ATTRIBUTE_HIDDEN;
+        } else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
+            attr |= FILE_ATTRIBUTE_READONLY;
+        } else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
+            attr |= FILE_ATTRIBUTE_READONLY;
+        } else if (attrSym == @symbol(FILE_FLAG_WRITE_THROUGH)) {
+            attr |= FILE_FLAG_WRITE_THROUGH;
+        } else if (attrSym == @symbol(FILE_FLAG_SEQUENTIAL_SCAN)) {
+            attr |= FILE_FLAG_SEQUENTIAL_SCAN;
+        } else if (attrSym == @symbol(FILE_FLAG_DELETE_ON_CLOSE)) {
+            attr |= FILE_FLAG_DELETE_ON_CLOSE;
+        } else {
+            console_fprintf(stderr, "Win32OS [warning]: unsupported open mode\n");
+        }
     }
     if (create == 0) {
-	fileHandle = nil;
-	argumentError = @symbol(missingCreateMode);
-	goto badArgument;
+        fileHandle = nil;
+        argumentError = @symbol(missingCreateMode);
+        goto badArgument;
     }
 #ifdef PROCESSDEBUGWIN32
     if (flag_PROCESSDEBUGWIN32) {
-	console_fprintf(stderr, "name:<%s> access:%x share:%x create:%x attr:%x\n",
-			name, access, share, create, attr);
+        console_fprintf(stderr, "name:<%s> access:%x share:%x create:%x attr:%x\n",
+                        name, access, share, create, attr);
     }
 #endif
     if (__isStringLike(pathName)) {
-	h = CreateFileA(name, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
+        h = CreateFileA(name, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
     } else {
-	h = CreateFileW(_wPathName, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
+        h = CreateFileW(_wPathName, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
     }
 
     if (h != INVALID_HANDLE_VALUE) {
-	__externalAddressVal(fileHandle) = (void *)h;
+        __externalAddressVal(fileHandle) = (void *)h;
     } else {
-	fileHandle = nil;
-	errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+        fileHandle = nil;
+        errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
     }
 
 badArgument: ;
 %}.
     fileHandle notNil ifTrue:[
-	fileHandle registerForFinalization.
-	^ fileHandle.
+        fileHandle registerForFinalization.
+        ^ fileHandle.
     ].
     errorNumber isNil ifTrue:[
-	self error:'invalid argument(s): ', argumentError.
+        self error:'invalid argument(s): ', argumentError.
     ] ifFalse:[
-	(self errorHolderForNumber:errorNumber) reportError
+        (self errorHolderForNumber:errorNumber) reportError
     ].
 !
 
@@ -5247,46 +5246,46 @@
 
     if (__isStringLike(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    char _aPathName[MAXPATHLEN];
-
-	    strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	    do {
-		// do not cast to INT - will loose sign bit then!
-		success = (int)STX_API_NOINT_CALL1( "RemoveDirectoryA", RemoveDirectoryA, _aPathName);
-	    } while ((success < 0) && (__threadErrno == EINTR));
-	}
-#else
-	success = RemoveDirectoryA((char *)__stringVal(fullPathName));
-	if (!success) __threadErrno = __WIN32_ERR(GetLastError());
+        {
+            char _aPathName[MAXPATHLEN];
+
+            strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+            do {
+                // do not cast to INT - will loose sign bit then!
+                success = (int)STX_API_NOINT_CALL1( "RemoveDirectoryA", RemoveDirectoryA, _aPathName);
+            } while ((success < 0) && (__threadErrno == EINTR));
+        }
+#else
+        success = RemoveDirectoryA((char *)__stringVal(fullPathName));
+        if (!success) __threadErrno = __WIN32_ERR(GetLastError());
 #endif
     } else if (__isUnicode16String(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    wchar_t _wPathName[MAXPATHLEN+1];
-
-	    _makeWchar(fullPathName, _wPathName, sizeof(_wPathName));
-	    do {
-		// do not cast to INT - will loose sign bit then!
-		success = (int)STX_API_NOINT_CALL1( "RemoveDirectoryW", RemoveDirectoryW, _wPathName);
-	    } while ((success < 0) && (__threadErrno == EINTR));
-	}
-#else
-	success = RemoveDirectoryW((wchar_t *)__unicode16StringVal(fullPathName));
-	if (!success) __threadErrno = __WIN32_ERR(GetLastError());
+        {
+            wchar_t _wPathName[MAXPATHLEN+1];
+
+            _makeWchar(fullPathName, _wPathName, sizeof(_wPathName));
+            do {
+                // do not cast to INT - will loose sign bit then!
+                success = (int)STX_API_NOINT_CALL1( "RemoveDirectoryW", RemoveDirectoryW, _wPathName);
+            } while ((success < 0) && (__threadErrno == EINTR));
+        }
+#else
+        success = RemoveDirectoryW((wchar_t *)__unicode16StringVal(fullPathName));
+        if (!success) __threadErrno = __WIN32_ERR(GetLastError());
 #endif
     }
 
     if (success == TRUE) {
-	RETURN (nil);
+        RETURN (nil);
     }
 
     error = __mkSmallInteger(__threadErrno);
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
 
     "/
@@ -5312,37 +5311,37 @@
     retryCtr := 10.
 
     [
-	|linkInfo|
-
-	lastErrorHolder := self basicRemoveFile:fullPathName.
-	lastErrorHolder isNil ifTrue:[
-	    "succesfully removed"
-	    ^ nil
-	].
-
-	retryCtr := retryCtr - 1.
-
-	linkInfo := self linkInfoOf:fullPathName.
-	(linkInfo isNil             "/ file does not exist
-	 or:[linkInfo isDirectory   "/ cannot remove directory
-	 or:[(self isWritable:fullPathName) not]]) ifTrue:[
-	    "when the file is not writable, we know defintely,
-	     that the remove fails - no need to retry"
-	    ^ lastErrorHolder
-	].
-
-	Transcript showCR:('error caught while removing %1: %2'
-			    bindWith:fullPathName with:lastErrorHolder).
-
-	Delay waitForSeconds:0.1.
+        |linkInfo|
+
+        lastErrorHolder := self basicRemoveFile:fullPathName.
+        lastErrorHolder isNil ifTrue:[
+            "succesfully removed"
+            ^ nil
+        ].
+
+        retryCtr := retryCtr - 1.
+
+        linkInfo := self linkInfoOf:fullPathName.
+        (linkInfo isNil             "/ file does not exist
+         or:[linkInfo isDirectory   "/ cannot remove directory
+         or:[(self isWritable:fullPathName) not]]) ifTrue:[
+            "when the file is not writable, we know defintely,
+             that the remove fails - no need to retry"
+            ^ lastErrorHolder
+        ].
+
+        Transcript showCR:('error caught while removing %1: %2'
+                            bindWith:fullPathName with:lastErrorHolder).
+
+        Delay waitForSeconds:0.1.
     ] doWhile:[retryCtr > 0].
 
     ^ lastErrorHolder.
 
     "
-	self removeFile:'c:\windows'
-	self removeFile:'CVS'
-	self removeFile:'.....xxxxx.....Murks'
+        self removeFile:'c:\windows'
+        self removeFile:'CVS'
+        self removeFile:'.....xxxxx.....Murks'
     "
 !
 
@@ -5361,42 +5360,42 @@
 
     if (__isStringLike(oldPath) && __isStringLike(newPath)) {
 #ifdef DO_WRAP_CALLS
-	char _oldPath[MAXPATHLEN], _newPath[MAXPATHLEN];
-
-	strncpy(_oldPath, __stringVal(oldPath), MAXPATHLEN-1); _oldPath[MAXPATHLEN-1] = '\0';
-	strncpy(_newPath, __stringVal(newPath), MAXPATHLEN-1); _newPath[MAXPATHLEN-1] = '\0';
-
-	do {
-	    success = STX_API_NOINT_CALL2("MoveFileA", MoveFileA, _oldPath, _newPath);
-	} while (success < 0 && __threadErrno == EINTR);
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    success = MoveFileA((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
-	} while (success < 0 && __threadErrno == EINTR);
-	__END_INTERRUPTABLE__
+        char _oldPath[MAXPATHLEN], _newPath[MAXPATHLEN];
+
+        strncpy(_oldPath, __stringVal(oldPath), MAXPATHLEN-1); _oldPath[MAXPATHLEN-1] = '\0';
+        strncpy(_newPath, __stringVal(newPath), MAXPATHLEN-1); _newPath[MAXPATHLEN-1] = '\0';
+
+        do {
+            success = STX_API_NOINT_CALL2("MoveFileA", MoveFileA, _oldPath, _newPath);
+        } while (success < 0 && __threadErrno == EINTR);
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            success = MoveFileA((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+        } while (success < 0 && __threadErrno == EINTR);
+        __END_INTERRUPTABLE__
 #endif
     } else {
-	wchar_t _oldPathW[MAXPATHLEN], _newPathW[MAXPATHLEN];
-
-	if (_makeWchar(oldPath, _oldPathW, sizeof(_oldPathW)) < 0
-	    || _makeWchar(newPath, _newPathW, sizeof(_newPathW)) < 0) {
-	    goto err;
-	}
+        wchar_t _oldPathW[MAXPATHLEN], _newPathW[MAXPATHLEN];
+
+        if (_makeWchar(oldPath, _oldPathW, sizeof(_oldPathW)) < 0
+            || _makeWchar(newPath, _newPathW, sizeof(_newPathW)) < 0) {
+            goto err;
+        }
 #ifdef DO_WRAP_CALLS
-	do {
-	    success = STX_API_NOINT_CALL2( "MoveFileW", MoveFileW, _oldPathW, _newPathW);
-	} while (success < 0 && __threadErrno == EINTR);
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    success = MoveFileW(_oldPathW, _newPathW);
-	} while (success < 0 && __threadErrno == EINTR);
-	__END_INTERRUPTABLE__
+        do {
+            success = STX_API_NOINT_CALL2( "MoveFileW", MoveFileW, _oldPathW, _newPathW);
+        } while (success < 0 && __threadErrno == EINTR);
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            success = MoveFileW(_oldPathW, _newPathW);
+        } while (success < 0 && __threadErrno == EINTR);
+        __END_INTERRUPTABLE__
 #endif
     }
     if (success > 0) {
-	RETURN (nil);
+        RETURN (nil);
     }
     error = __mkSmallInteger(__threadErrno);
 
@@ -5404,8 +5403,8 @@
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
 
     ^ self primitiveFailed
@@ -5465,43 +5464,43 @@
 #   endif
 
     if (aSymbol == @symbol(readUser)) {
-	RETURN ( __mkSmallInteger(S_IRUSR) );
+        RETURN ( __mkSmallInteger(S_IRUSR) );
     }
     if (aSymbol == @symbol(writeUser)) {
-	RETURN ( __mkSmallInteger(S_IWUSR) );
+        RETURN ( __mkSmallInteger(S_IWUSR) );
     }
     if (aSymbol == @symbol(executeUser)) {
-	RETURN ( __mkSmallInteger(S_IXUSR) );
+        RETURN ( __mkSmallInteger(S_IXUSR) );
     }
     if (aSymbol == @symbol(readGroup)) {
-	RETURN ( __mkSmallInteger(S_IRGRP) );
+        RETURN ( __mkSmallInteger(S_IRGRP) );
     }
     if (aSymbol == @symbol(writeGroup)) {
-	RETURN ( __mkSmallInteger(S_IWGRP) );
+        RETURN ( __mkSmallInteger(S_IWGRP) );
     }
     if (aSymbol == @symbol(executeGroup)) {
-	RETURN ( __mkSmallInteger(S_IXGRP) );
+        RETURN ( __mkSmallInteger(S_IXGRP) );
     }
     if (aSymbol == @symbol(readOthers)) {
-	RETURN ( __mkSmallInteger(S_IROTH) );
+        RETURN ( __mkSmallInteger(S_IROTH) );
     }
     if (aSymbol == @symbol(writeOthers)) {
-	RETURN ( __mkSmallInteger(S_IWOTH) );
+        RETURN ( __mkSmallInteger(S_IWOTH) );
     }
     if (aSymbol == @symbol(executeOthers)) {
-	RETURN ( __mkSmallInteger(S_IXOTH) );
+        RETURN ( __mkSmallInteger(S_IXOTH) );
     }
 
     // These are not defined for Win32 - simply ignore them
     // (but handle them for UNIX compatibility
     if (aSymbol == @symbol(setUid)) {
-	RETURN ( __mkSmallInteger(0) );
+        RETURN ( __mkSmallInteger(0) );
     }
     if (aSymbol == @symbol(setGid)) {
-	RETURN ( __mkSmallInteger(0) );
+        RETURN ( __mkSmallInteger(0) );
     }
     if (aSymbol == @symbol(removeOnlyByOwner)) {
-	RETURN ( __mkSmallInteger(0) );
+        RETURN ( __mkSmallInteger(0) );
     }
 
 %}.
@@ -5520,7 +5519,7 @@
 
     "
      this could have been implemented as:
-	(self infoOf:aPathName) at:#mode
+        (self infoOf:aPathName) at:#mode
      but for huge directory searches the code below is faster
     "
 
@@ -5532,61 +5531,61 @@
 
     if (__isStringLike(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	char _aPathName[MAXPATHLEN];
-
-	strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = STX_C_NOINT_CALL2( "_stat", _stat, _aPathName, &buf);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    __threadErrno = 0;
-	    ret = _stat( (char *)__stringVal(aPathName), &buf);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-	__END_INTERRUPTABLE__
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
+        char _aPathName[MAXPATHLEN];
+
+        strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = STX_C_NOINT_CALL2( "_stat", _stat, _aPathName, &buf);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            __threadErrno = 0;
+            ret = _stat( (char *)__stringVal(aPathName), &buf);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+        __END_INTERRUPTABLE__
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else if (__isUnicode16String(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	char _wPathName[MAXPATHLEN];
-
-	_makeWchar(aPathName, _wPathName, sizeof(_wPathName));
-
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = STX_C_NOINT_CALL2( "_wstat", _wstat, _wPathName, &buf);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    __threadErrno = 0;
-	    ret = _wstat((char *)__unicode16StringVal(aPathName), &buf);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-	__END_INTERRUPTABLE__
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
+        char _wPathName[MAXPATHLEN];
+
+        _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = STX_C_NOINT_CALL2( "_wstat", _wstat, _wPathName, &buf);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            __threadErrno = 0;
+            ret = _wstat((char *)__unicode16StringVal(aPathName), &buf);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+        __END_INTERRUPTABLE__
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else
-	goto out;
+        goto out;
 
     if (ret >= 0) {
-	RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
+        RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
     }
     error = __mkSmallInteger(__threadErrno);
 out:;
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
 
     ^ self primitiveFailed
@@ -5608,7 +5607,7 @@
 
     "
      this could have been implemented as:
-	(self infoOf:aPathName) at:#mode
+        (self infoOf:aPathName) at:#mode
      but for huge directory searches the code below is faster
     "
 
@@ -5620,45 +5619,45 @@
 
     if (__isSmallInteger(aFileDescriptor)) {
 #ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = STX_C_NOINT_CALL2( "fstat", fstat, __smallIntegerVal(aFileDescriptor), &buf);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = fstat( __smallIntegerVal(aFileDescriptor), &buf);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-	__END_INTERRUPTABLE__
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = STX_C_NOINT_CALL2( "fstat", fstat, __smallIntegerVal(aFileDescriptor), &buf);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = fstat( __smallIntegerVal(aFileDescriptor), &buf);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+        __END_INTERRUPTABLE__
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else
-	goto out;
+        goto out;
 
     if (ret >= 0) {
-	RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
+        RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
     }
     error = __mkSmallInteger(__threadErrno);
 out:;
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
     ^ self primitiveFailed
 
    "
     'c:\windows' asFilename readingFileDo:[:s|
-	(OperatingSystem accessModeOfFd:s fileDescriptor) printStringRadix:8.
+        (OperatingSystem accessModeOfFd:s fileDescriptor) printStringRadix:8.
     ].
     'Make.proto' asFilename readingFileDo:[:s|
-	(OperatingSystem accessModeOfFd:s fileDescriptor) printStringRadix:8.
+        (OperatingSystem accessModeOfFd:s fileDescriptor) printStringRadix:8.
     ].
     (OperatingSystem changeAccessModeOf:'Make.proto' to:8r644)
    "
@@ -5676,55 +5675,55 @@
     int ret;
 
     if (__isSmallInteger(modeBits)) {
-	if (__isStringLike(aPathName)) {
+        if (__isStringLike(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	    int _chmod();
-	    char _aPathName[MAXPATHLEN];
-
-	    strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	    do {
-		// do not cast to INT - will loose sign bit then!
-		ret = STX_C_NOINT_CALL2( "_chmod", _chmod, _aPathName, __intVal(modeBits));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	    __BEGIN_INTERRUPTABLE__
-	    do {
-		ret = _chmod((char *)__stringVal(aPathName), __intVal(modeBits));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	    __END_INTERRUPTABLE__
-#endif
-	} else if (__isUnicode16String(aPathName)) {
+            int _chmod();
+            char _aPathName[MAXPATHLEN];
+
+            strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+            do {
+                // do not cast to INT - will loose sign bit then!
+                ret = STX_C_NOINT_CALL2( "_chmod", _chmod, _aPathName, __intVal(modeBits));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+            __BEGIN_INTERRUPTABLE__
+            do {
+                ret = _chmod((char *)__stringVal(aPathName), __intVal(modeBits));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+            __END_INTERRUPTABLE__
+#endif
+        } else if (__isUnicode16String(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	    int _wchmod();
-	    char _wPathName[MAXPATHLEN];
-
-	    _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
-	    do {
-		// do not cast to INT - will loose sign bit then!
-		ret = STX_C_NOINT_CALL2( "_wchmod", _wchmod, _wPathName, __intVal(modeBits));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	    __BEGIN_INTERRUPTABLE__
-	    do {
-		ret = _chmod((wchar_t *)__unicode16StringVal(fullPathName), __intVal(modeBits));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	    __END_INTERRUPTABLE__
-#endif
-	} else
-	    goto out;
-
-	if (ret >= 0) {
-	    RETURN (nil);
-	}
-
-	error = __mkSmallInteger(__threadErrno);
+            int _wchmod();
+            char _wPathName[MAXPATHLEN];
+
+            _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+            do {
+                // do not cast to INT - will loose sign bit then!
+                ret = STX_C_NOINT_CALL2( "_wchmod", _wchmod, _wPathName, __intVal(modeBits));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+            __BEGIN_INTERRUPTABLE__
+            do {
+                ret = _chmod((wchar_t *)__unicode16StringVal(fullPathName), __intVal(modeBits));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+            __END_INTERRUPTABLE__
+#endif
+        } else
+            goto out;
+
+        if (ret >= 0) {
+            RETURN (nil);
+        }
+
+        error = __mkSmallInteger(__threadErrno);
     }
 out:;
 %}.
 
     error notNil ifTrue:[
-	LastErrorNumber := error.
-	^ self errorHolderForNumber:error.
+        LastErrorNumber := error.
+        ^ self errorHolderForNumber:error.
     ].
 
     ^ self primitiveFailed:#argumentError
@@ -5747,7 +5746,7 @@
     attr := self primGetFileAttributes:aPathName.
     ^ attr notNil
       and:[(attr bitTest:FILE_ATTRIBUTE_HIDDEN) not      "already unset"
-	   or:[self primSetFileAttributes:aPathName to:(attr bitClear:FILE_ATTRIBUTE_HIDDEN)]].
+           or:[self primSetFileAttributes:aPathName to:(attr bitClear:FILE_ATTRIBUTE_HIDDEN)]].
 
     "Created: / 29-07-2010 / 11:31:55 / sr"
     "Modified: / 12-02-2019 / 12:48:51 / Stefan Vogel"
@@ -5761,10 +5760,10 @@
     attr := self primGetFileAttributes:aPathName.
     ^ attr notNil
       and:[(attr bitTest:FILE_ATTRIBUTE_HIDDEN)  "already set"
-	   or:[self primSetFileAttributes:aPathName to:(attr bitOr:FILE_ATTRIBUTE_HIDDEN)]].
-
-    "
-	self setHidden:'murks'
+           or:[self primSetFileAttributes:aPathName to:(attr bitOr:FILE_ATTRIBUTE_HIDDEN)]].
+
+    "
+        self setHidden:'murks'
     "
 
     "Modified: / 29-07-2010 / 11:32:26 / sr"
@@ -5780,7 +5779,7 @@
     attr := self primGetFileAttributes:aPathName.
     ^ attr notNil
       and:[(attr bitTest:FILE_ATTRIBUTE_TEMPORARY)  "already set"
-	   or:[self primSetFileAttributes:aPathName to:(attr bitOr:FILE_ATTRIBUTE_TEMPORARY)]].
+           or:[self primSetFileAttributes:aPathName to:(attr bitOr:FILE_ATTRIBUTE_TEMPORARY)]].
 
     "Modified: / 12-02-2019 / 12:49:29 / Stefan Vogel"
 ! !
@@ -5806,14 +5805,14 @@
 
     if (__isExternalAddressLike(openFilenameStructureExternalAddress)
      || __isExternalBytesLike(openFilenameStructureExternalAddress)){
-	__address = __externalAddressVal(openFilenameStructureExternalAddress);
-	__rslt = __STX_API_CALL1( "GetOpenFileNameA", (void *)GetOpenFileNameA, __address);
-
-	if (__rslt == TRUE) {
-	    rslt = true;
-	} else {
-	    rslt = false;
-	}
+        __address = __externalAddressVal(openFilenameStructureExternalAddress);
+        __rslt = __STX_API_CALL1( "GetOpenFileNameA", (void *)GetOpenFileNameA, __address);
+
+        if (__rslt == TRUE) {
+            rslt = true;
+        } else {
+            rslt = false;
+        }
     }
 %}.
     rslt isNil ifTrue:[ self primitiveFailed ].
@@ -5836,14 +5835,14 @@
 
     if (__isExternalAddressLike(openFilenameStructureExternalAddress)
      || __isExternalBytesLike(openFilenameStructureExternalAddress)){
-	__address = __externalAddressVal(openFilenameStructureExternalAddress);
-	__rslt = __STX_API_CALL1( "GetSaveFileName", (void *)GetSaveFileName, __address);
-
-	if (__rslt == TRUE) {
-	    rslt = true;
-	} else {
-	    rslt = false;
-	}
+        __address = __externalAddressVal(openFilenameStructureExternalAddress);
+        __rslt = __STX_API_CALL1( "GetSaveFileName", (void *)GetSaveFileName, __address);
+
+        if (__rslt == TRUE) {
+            rslt = true;
+        } else {
+            rslt = false;
+        }
     }
 %}.
     rslt isNil ifTrue:[ self primitiveFailed ].
@@ -5871,27 +5870,27 @@
     |names n "{ Class: SmallInteger }" |
 
     names := pathName
-		asCollectionOfSubstringsSeparatedBy:self fileSeparator.
+                asCollectionOfSubstringsSeparatedBy:self fileSeparator.
     names := names asOrderedCollection.
     "
      cut off initial double-slashes
     "
     [names startsWith:#('' '')] whileTrue:[
-	names removeFirst.
+        names removeFirst.
     ].
     "
      cut off double-slashes at end
     "
     [names endsWith:#('')] whileTrue:[
-	names removeLast.
+        names removeLast.
     ].
     "
      cut off current-dir at beginning
     "
     n := names size.
     [(n >= 2) and:[names startsWith:#('.')]] whileTrue:[
-	names removeFirst.
-	n := n - 1.
+        names removeFirst.
+        n := n - 1.
     ].
 
     "
@@ -5900,14 +5899,14 @@
     [(n > 2)
      and:[(names endsWith:#('..'))
      and:[((names at:(n - 1)) startsWith:'.') not ]]] whileTrue:[
-	names removeLast; removeLast.
-	n := n - 2.
+        names removeLast; removeLast.
+        n := n - 2.
     ].
 
     ^ names asStringWith:self fileSeparator
-		    from:1
-		    to:n
-		    compressTabs:false final:nil
+                    from:1
+                    to:n
+                    compressTabs:false final:nil
 
     "
      OperatingSystem compressPath:'.\..'
@@ -5931,15 +5930,15 @@
     OBJ data;
 
     if (__isByteArrayLike(aByteArray) && __isStringLike(which)) {
-	// be careful: fileInfo points into aByteArray!
-	// Beware of garbage collection after VerQueryValue()!
-	// We use a fixed max size of 1000 bytes here.
-	data = __BYTEARRAY_UNINITIALIZED_NEW_INT(1000);
-	if (VerQueryValue(__byteArrayVal(aByteArray), __stringVal(which), (LPVOID) &fileInfo, &uLen) == FALSE) {
-	    RETURN (nil);
-	}
-	memcpy(__byteArrayVal(data), fileInfo, min(1000, uLen));
-	RETURN (data);
+        // be careful: fileInfo points into aByteArray!
+        // Beware of garbage collection after VerQueryValue()!
+        // We use a fixed max size of 1000 bytes here.
+        data = __BYTEARRAY_UNINITIALIZED_NEW_INT(1000);
+        if (VerQueryValue(__byteArrayVal(aByteArray), __stringVal(which), (LPVOID) &fileInfo, &uLen) == FALSE) {
+            RETURN (nil);
+        }
+        memcpy(__byteArrayVal(data), fileInfo, min(1000, uLen));
+        RETURN (data);
     }
 badArgument: ;
 %}.
@@ -5947,8 +5946,8 @@
 
     "
       100000 timesRepeat:[
-	   OperatingSystem getFileInfos:#('ProductVersion' 'CompanyName' 'FileDescription' 'FileVersion' 'ProductName')
-			   fromFile:'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
+           OperatingSystem getFileInfos:#('ProductVersion' 'CompanyName' 'FileDescription' 'FileVersion' 'ProductName')
+                           fromFile:'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
       ].
     "
 
@@ -5987,58 +5986,58 @@
     DWORD binaryType;
 
     if (__isStringLike(aPathName)) {
-	ok = GetBinaryTypeA(__stringVal(aPathName), &binaryType);
+        ok = GetBinaryTypeA(__stringVal(aPathName), &binaryType);
     } else if (__isUnicode16String(aPathName)) {
-	/* Unicode strings are not 0-terminated */
-	wchar_t path[MAX_PATH+1];
-	int pathLen = __unicode16StringSize(aPathName);
-
-	if (pathLen > MAX_PATH) goto badArgument;
-
-	memcpy(path, __unicode16StringVal(aPathName), pathLen*2);
-	path[pathLen] = 0;
-	ok = GetBinaryTypeW(path, &binaryType);
+        /* Unicode strings are not 0-terminated */
+        wchar_t path[MAX_PATH+1];
+        int pathLen = __unicode16StringSize(aPathName);
+
+        if (pathLen > MAX_PATH) goto badArgument;
+
+        memcpy(path, __unicode16StringVal(aPathName), pathLen*2);
+        path[pathLen] = 0;
+        ok = GetBinaryTypeW(path, &binaryType);
     } else {
-	goto badArgument;
+        goto badArgument;
     }
 
     if (ok) {
-	OBJ typeSymbol = nil;
-
-	switch (binaryType) {
-	    case SCS_32BIT_BINARY:
-		// A 32bit Windows-based application
-		typeSymbol = @symbol(BINARY_32BIT);
-		break;
-	    case SCS_64BIT_BINARY:
-		// A 64bit Windows-based application.
-		typeSymbol = @symbol(BINARY_64BIT);
-		break;
-	    case SCS_DOS_BINARY:
-		// An MSDOS based application
-		typeSymbol = @symbol(BINARY_DOS);
-		break;
-	    case SCS_OS216_BINARY:
-		// A 16bit OS/2-based application
-		typeSymbol = @symbol(BINARY_OS2_16BIT);
-		break;
-	    case SCS_PIF_BINARY:
-		// A PIF file that executes an MS-DOS – based application
-		typeSymbol = @symbol(BINARY_PIF);
-		break;
-	    case SCS_POSIX_BINARY:
-		// A POSIX based application
-		typeSymbol = @symbol(BINARY_POSIX);
-		break;
-	    case SCS_WOW_BINARY:
-		// A 16-bit Windows-based application
-		typeSymbol = @symbol(BINARY_WOW16);
-		break;
-	    default:
-		typeSymbol = @symbol(other);
-		break;
-	}
-	RETURN (typeSymbol);
+        OBJ typeSymbol = nil;
+
+        switch (binaryType) {
+            case SCS_32BIT_BINARY:
+                // A 32bit Windows-based application
+                typeSymbol = @symbol(BINARY_32BIT);
+                break;
+            case SCS_64BIT_BINARY:
+                // A 64bit Windows-based application.
+                typeSymbol = @symbol(BINARY_64BIT);
+                break;
+            case SCS_DOS_BINARY:
+                // An MSDOS based application
+                typeSymbol = @symbol(BINARY_DOS);
+                break;
+            case SCS_OS216_BINARY:
+                // A 16bit OS/2-based application
+                typeSymbol = @symbol(BINARY_OS2_16BIT);
+                break;
+            case SCS_PIF_BINARY:
+                // A PIF file that executes an MS-DOS – based application
+                typeSymbol = @symbol(BINARY_PIF);
+                break;
+            case SCS_POSIX_BINARY:
+                // A POSIX based application
+                typeSymbol = @symbol(BINARY_POSIX);
+                break;
+            case SCS_WOW_BINARY:
+                // A 16-bit Windows-based application
+                typeSymbol = @symbol(BINARY_WOW16);
+                break;
+            default:
+                typeSymbol = @symbol(other);
+                break;
+        }
+        RETURN (typeSymbol);
     }
     RETURN (nil);
 
@@ -6061,7 +6060,7 @@
 
     ret = GetCurrentDirectoryW(MAXPATHLEN, _aPathName);
     if (ret == 0) {
-	__threadErrno = __WIN32_ERR(GetLastError());
+        __threadErrno = __WIN32_ERR(GetLastError());
     }
     RETURN(__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
 %}.
@@ -6073,8 +6072,8 @@
 
 getDiskInfoOf:volumeNameArg
     "returns a dictionary filled with any of:
-	freeBytes
-	totalBytes
+        freeBytes
+        totalBytes
      and possibly additional (OS-specific) information"
 
     |volumeName info ok sectorsPerCluster bytesPerSector freeClusters totalClusters
@@ -6082,11 +6081,11 @@
 
     volumeName := volumeNameArg.
     (volumeName endsWith:$\) ifFalse:[
-	volumeName := volumeName , '\'
+        volumeName := volumeName , '\'
     ].
 %{
     typedef BOOL (WINAPI *P_GDFSE)(LPCTSTR, PULARGE_INTEGER,
-				   PULARGE_INTEGER, PULARGE_INTEGER);
+                                   PULARGE_INTEGER, PULARGE_INTEGER);
     P_GDFSE pGetDiskFreeSpaceEx = NULL;
 
     DWORD __sectorsPerCluster, __bytesPerSector, __freeClusters, __totalClusters;
@@ -6094,62 +6093,62 @@
     unsigned __int64 i64FreeBytesForUsersQuota, i64TotalBytes, i64FreeBytes;
 
     if (__isStringLike(volumeName) || __isSymbol(volumeName)) {
-	 /*
-	  *  Use GetDiskFreeSpaceEx if available; otherwise, use GetDiskFreeSpace.
-	  *  Notice that GetDiskFreeSpace does not work correctly under win2k,
-	  *  and GetDiskFreeSpaceEx is not avail. for all win versions (can microsoft ever do something right ?).
-	  */
-	pGetDiskFreeSpaceEx = (P_GDFSE)GetProcAddress (
-					    GetModuleHandle ("kernel32.dll"),
-					    "GetDiskFreeSpaceExA");
-	if (pGetDiskFreeSpaceEx) {
-	    fResult = pGetDiskFreeSpaceEx (__stringVal(volumeName),
-				 (PULARGE_INTEGER)&i64FreeBytesForUsersQuota,
-				 (PULARGE_INTEGER)&i64TotalBytes,
-				 (PULARGE_INTEGER)&i64FreeBytes);
-	    if (fResult) {
-		freeBytesForUsersQuota = __MKUINT64(&i64FreeBytesForUsersQuota);
-		totalBytes = __MKUINT64(&i64TotalBytes);
-		freeBytes = __MKUINT64(&i64FreeBytes);
-	    }
-	}
-	fResult = GetDiskFreeSpace(__stringVal(volumeName),
-			     &__sectorsPerCluster,
-			     &__bytesPerSector,
-			     &__freeClusters,
-			     &__totalClusters);
-	if (fResult) {
-	    sectorsPerCluster = __MKUINT(__sectorsPerCluster);
-	    bytesPerSector = __MKUINT(__bytesPerSector);
-	    freeClusters = __MKUINT(__freeClusters);
-	    totalClusters = __MKUINT(__totalClusters);
-	}
-	switch (GetDriveType(__stringVal(volumeName))) {
-	    case DRIVE_REMOVABLE:
-		type = @symbol(removable); break;
-	    case DRIVE_FIXED:
-		type = @symbol(fixed); break;
-	    case DRIVE_REMOTE:
-		type = @symbol(network); break;
-	    case DRIVE_CDROM:
-		type = @symbol(cdrom); break;
-	    case DRIVE_RAMDISK:
-		type = @symbol(ramdisk); break;
-	    case DRIVE_UNKNOWN:
-	    default:
-		break;
-	}
-	if (fResult) {
-	    ok = true;
-	} else {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	}
+         /*
+          *  Use GetDiskFreeSpaceEx if available; otherwise, use GetDiskFreeSpace.
+          *  Notice that GetDiskFreeSpace does not work correctly under win2k,
+          *  and GetDiskFreeSpaceEx is not avail. for all win versions (can microsoft ever do something right ?).
+          */
+        pGetDiskFreeSpaceEx = (P_GDFSE)GetProcAddress (
+                                            GetModuleHandle ("kernel32.dll"),
+                                            "GetDiskFreeSpaceExA");
+        if (pGetDiskFreeSpaceEx) {
+            fResult = pGetDiskFreeSpaceEx (__stringVal(volumeName),
+                                 (PULARGE_INTEGER)&i64FreeBytesForUsersQuota,
+                                 (PULARGE_INTEGER)&i64TotalBytes,
+                                 (PULARGE_INTEGER)&i64FreeBytes);
+            if (fResult) {
+                freeBytesForUsersQuota = __MKUINT64(&i64FreeBytesForUsersQuota);
+                totalBytes = __MKUINT64(&i64TotalBytes);
+                freeBytes = __MKUINT64(&i64FreeBytes);
+            }
+        }
+        fResult = GetDiskFreeSpace(__stringVal(volumeName),
+                             &__sectorsPerCluster,
+                             &__bytesPerSector,
+                             &__freeClusters,
+                             &__totalClusters);
+        if (fResult) {
+            sectorsPerCluster = __MKUINT(__sectorsPerCluster);
+            bytesPerSector = __MKUINT(__bytesPerSector);
+            freeClusters = __MKUINT(__freeClusters);
+            totalClusters = __MKUINT(__totalClusters);
+        }
+        switch (GetDriveType(__stringVal(volumeName))) {
+            case DRIVE_REMOVABLE:
+                type = @symbol(removable); break;
+            case DRIVE_FIXED:
+                type = @symbol(fixed); break;
+            case DRIVE_REMOTE:
+                type = @symbol(network); break;
+            case DRIVE_CDROM:
+                type = @symbol(cdrom); break;
+            case DRIVE_RAMDISK:
+                type = @symbol(ramdisk); break;
+            case DRIVE_UNKNOWN:
+            default:
+                break;
+        }
+        if (fResult) {
+            ok = true;
+        } else {
+            __threadErrno = __WIN32_ERR(GetLastError());
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+        }
     }
 %}.
     ok == true ifFalse:[
-	self primitiveFailed.
-	^ self
+        self primitiveFailed.
+        ^ self
     ].
 
     info := IdentityDictionary new.
@@ -6159,14 +6158,14 @@
     info at:#totalClusters put:totalClusters.
 
     info at:#freeBytes put:(freeBytes notNil
-				ifTrue:[freeBytes]
-				ifFalse:[freeClusters * sectorsPerCluster * bytesPerSector]).
+                                ifTrue:[freeBytes]
+                                ifFalse:[freeClusters * sectorsPerCluster * bytesPerSector]).
     info at:#totalBytes put:(totalBytes notNil
-				ifTrue:[totalBytes]
-				ifFalse:[totalClusters * sectorsPerCluster * bytesPerSector]).
+                                ifTrue:[totalBytes]
+                                ifFalse:[totalClusters * sectorsPerCluster * bytesPerSector]).
     info at:#freeBytesForUsersQuota put:freeBytesForUsersQuota.
     type notNil ifTrue:[
-	info at:#type put:type
+        info at:#type put:type
     ].
     ^ info
 
@@ -6208,13 +6207,13 @@
 
 getDriveType:aPathName
     "returns:
-	0 -> Unknown
-	1 -> Invalid
-	2 -> removable
-	3 -> fixed
-	4 -> remote
-	5 -> cdrom
-	6 -> ramdisk.
+        0 -> Unknown
+        1 -> Invalid
+        2 -> removable
+        3 -> fixed
+        4 -> remote
+        5 -> cdrom
+        6 -> ramdisk.
     This is a stupid interface - do not use."
 
 %{
@@ -6223,18 +6222,18 @@
 
     if (_makeWchar(aPathName, _aPathName, sizeof(_aPathName)) > 0) {
 #ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_API_NOINT_CALL1( "GetDriveTypeW", GetDriveTypeW, _aPathName));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	ret = GetDriveTypeW(_aPathName);
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
-#endif
-	RETURN (__MKSMALLINT(ret));
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_API_NOINT_CALL1( "GetDriveTypeW", GetDriveTypeW, _aPathName));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        ret = GetDriveTypeW(_aPathName);
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
+#endif
+        RETURN (__MKSMALLINT(ret));
     }
 %}.
     ^ self primitiveFailed
@@ -6254,7 +6253,7 @@
 
     bytes := self getFileVersionInfoOf:(filename asFilename osName).
     bytes isEmptyOrNil ifTrue:[
-	^ Dictionary new.
+        ^ Dictionary new.
     ].
 
     self extractVersionValue:'\' from:bytes.
@@ -6262,13 +6261,13 @@
     lang := vfi unsignedInt16At:1.
     codePage := vfi unsignedInt16At:3.
     stringFileInfoBase := '\StringFileInfo\%1%2\'
-			       bindWith:(lang hexPrintString:4)
-			       with:(codePage hexPrintString:4).
+                               bindWith:(lang hexPrintString:4)
+                               with:(codePage hexPrintString:4).
     ^ Dictionary withKeys:infoKeys valueBlock:[:eachKey|
-	    |sfi|
-	    sfi := self extractVersionValue:(stringFileInfoBase, eachKey) from:bytes.
-	    sfi zeroByteStringAt:1 maximumSize:999
-	 ].
+            |sfi|
+            sfi := self extractVersionValue:(stringFileInfoBase, eachKey) from:bytes.
+            sfi zeroByteStringAt:1 maximumSize:999
+         ].
 
     "
      self getFileInfos:#('ProductVersion' 'CompanyName' 'FileDescription' 'FileVersion' 'ProductName') fromFile:'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
@@ -6289,24 +6288,24 @@
     DWORD dummy;
 
     if (__isStringLike(aPathName)) {
-	sz = GetFileVersionInfoSizeA(__stringVal(aPathName), &dummy);
+        sz = GetFileVersionInfoSizeA(__stringVal(aPathName), &dummy);
     } else if (__isUnicode16String(aPathName)) {
-	sz = GetFileVersionInfoSizeW(__unicode16StringVal(aPathName), &dummy);
+        sz = GetFileVersionInfoSizeW(__unicode16StringVal(aPathName), &dummy);
     } else {
-	goto badArgument;
+        goto badArgument;
     }
 
     if (sz > 0) {
-	OBJ versionData;
-
-	versionData = __BYTEARRAY_UNINITIALIZED_NEW_INT(sz);
-	if (versionData == nil) {
-	    RETURN (nil);
-	}
-	if (GetFileVersionInfo(__stringVal(aPathName), 0, sz, __ByteArrayInstPtr(versionData)->ba_element) == FALSE) {
-	    RETURN (nil);
-	}
-	RETURN (versionData);
+        OBJ versionData;
+
+        versionData = __BYTEARRAY_UNINITIALIZED_NEW_INT(sz);
+        if (versionData == nil) {
+            RETURN (nil);
+        }
+        if (GetFileVersionInfo(__stringVal(aPathName), 0, sz, __ByteArrayInstPtr(versionData)->ba_element) == FALSE) {
+            RETURN (nil);
+        }
+        RETURN (versionData);
     }
     RETURN (nil);
 badArgument: ;
@@ -6326,18 +6325,18 @@
 
     if (_makeWchar(aPathName, _aPathName, sizeof(_aPathName)) > 0) {
 #ifdef DO_WRAP_CALLS
-	 do {
-	     __threadErrno = 0;
-	     // do not cast to INT - will loose sign bit then!
-	     ret = (int)(STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW, _aPathName, _aPathName, MAXPATHLEN));
-	 } while ((ret == 0) && (__threadErrno == EINTR));
-#else
-	 ret = GetLongPathNameW(_aPathName, _aPathName, MAXPATHLEN);
-	 if (ret == 0) {
-	     __threadErrno = __WIN32_ERR(GetLastError());
-	 }
-#endif
-	 RETURN (__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
+         do {
+             __threadErrno = 0;
+             // do not cast to INT - will loose sign bit then!
+             ret = (int)(STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW, _aPathName, _aPathName, MAXPATHLEN));
+         } while ((ret == 0) && (__threadErrno == EINTR));
+#else
+         ret = GetLongPathNameW(_aPathName, _aPathName, MAXPATHLEN);
+         if (ret == 0) {
+             __threadErrno = __WIN32_ERR(GetLastError());
+         }
+#endif
+         RETURN (__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
     }
 %}.
     ^ self primitiveFailed
@@ -6362,9 +6361,9 @@
 
      The info object returned is OS-specific, however it responds to at
      least
-	#isFor32BitArchitecture
-	#isFor64BitArchitecture ... returns true, if the given object is for
-				     32bit, 64bit architecture respectively
+        #isFor32BitArchitecture
+        #isFor64BitArchitecture ... returns true, if the given object is for
+                                     32bit, 64bit architecture respectively
     "
     ^ PECOFFFileHeader fromFile: aStringOrFilename
 
@@ -6380,18 +6379,18 @@
 
     if (_makeWchar(aPathName, _aPathName, sizeof(_aPathName)) > 0) {
 #ifdef DO_WRAP_CALLS
-	 do {
-	     __threadErrno = 0;
-	     // do not cast to INT - will loose sign bit then!
-	     ret = (int)(STX_API_NOINT_CALL3( "GetShortPathNameW", GetShortPathNameW, _aPathName, _aPathName, MAXPATHLEN));
-	 } while ((ret == 0) && (__threadErrno == EINTR));
-#else
-	 ret = GetShortPathNameW(_aPathName, _aPathName, MAXPATHLEN);
-	 if (ret == 0) {
-	     __threadErrno = __WIN32_ERR(GetLastError());
-	 }
-#endif
-	 RETURN (__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
+         do {
+             __threadErrno = 0;
+             // do not cast to INT - will loose sign bit then!
+             ret = (int)(STX_API_NOINT_CALL3( "GetShortPathNameW", GetShortPathNameW, _aPathName, _aPathName, MAXPATHLEN));
+         } while ((ret == 0) && (__threadErrno == EINTR));
+#else
+         ret = GetShortPathNameW(_aPathName, _aPathName, MAXPATHLEN);
+         if (ret == 0) {
+             __threadErrno = __WIN32_ERR(GetLastError());
+         }
+#endif
+         RETURN (__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
      }
 %}.
     ^ self primitiveFailed
@@ -6418,30 +6417,30 @@
     //    GetSystemWow64DirectoryW(&fileTime);
     // can be called directly.
     {
-	typedef unsigned int (WINAPI *P_GetSystemWow64DirectoryW)(LPTSTR, unsigned int);
-	static P_GetSystemWow64DirectoryW pGetSystemWow64DirectoryW = NULL;
-	static int didCheck = 0;
-
-	if (pGetSystemWow64DirectoryW == NULL) {
-	    if (!didCheck) {
-		pGetSystemWow64DirectoryW =
-		    (P_GetSystemWow64DirectoryW)
-			GetProcAddress ( GetModuleHandle ("kernel32.dll"),
-					 "GetSystemWow64DirectoryW");
-
-		didCheck = 1;
-	    }
-	}
-
-	if (pGetSystemWow64DirectoryW != NULL) {
-	    __rslt = (*pGetSystemWow64DirectoryW)(buffer, MAXPATHLEN);
-	}
+        typedef unsigned int (WINAPI *P_GetSystemWow64DirectoryW)(LPTSTR, unsigned int);
+        static P_GetSystemWow64DirectoryW pGetSystemWow64DirectoryW = NULL;
+        static int didCheck = 0;
+
+        if (pGetSystemWow64DirectoryW == NULL) {
+            if (!didCheck) {
+                pGetSystemWow64DirectoryW =
+                    (P_GetSystemWow64DirectoryW)
+                        GetProcAddress ( GetModuleHandle ("kernel32.dll"),
+                                         "GetSystemWow64DirectoryW");
+
+                didCheck = 1;
+            }
+        }
+
+        if (pGetSystemWow64DirectoryW != NULL) {
+            __rslt = (*pGetSystemWow64DirectoryW)(buffer, MAXPATHLEN);
+        }
     }
 #else
     __rslt = GetSystemWow64DirectoryW(buffer, MAXPATHLEN);
 #endif
     if (__rslt != 0) {
-	rslt = __mkStringOrU16String_maxlen(buffer, MAXPATHLEN);
+        rslt = __mkStringOrU16String_maxlen(buffer, MAXPATHLEN);
     }
 %}.
     ^ rslt
@@ -6467,16 +6466,16 @@
     "return some object filled with info for the file 'aPathName';
      the info (for which corresponding access methods are understood by
      the returned object) is:
-	 type            - a symbol giving the files type
-	 mode            - numeric access mode
-	 uid             - owners user id
-	 gid             - owners group id
-	 size            - files size
-	 id              - files number (i.e. inode number)
-	 accessed        - last access time (as Timestamp)
-	 modified        - last modification time (as Timestamp)
-	 statusChanged   - last status change time (as Timestamp)
-	 alternativeName - (windows only:) the MSDOS name of the file
+         type            - a symbol giving the files type
+         mode            - numeric access mode
+         uid             - owners user id
+         gid             - owners group id
+         size            - files size
+         id              - files number (i.e. inode number)
+         accessed        - last access time (as Timestamp)
+         modified        - last modification time (as Timestamp)
+         statusChanged   - last status change time (as Timestamp)
+         alternativeName - (windows only:) the MSDOS name of the file
 
      Some of the fields may be returned as nil on systems which do not provide
      all of the information.
@@ -6490,10 +6489,10 @@
 
     info := self linkInfoOf:aPathName.
     (info notNil and:[info isSymbolicLink]) ifTrue:[
-	target := info path.
-	target notNil ifTrue:[
-	    ^ self linkInfoOf:target.
-	]
+        target := info path.
+        target notNil ifTrue:[
+            ^ self linkInfoOf:target.
+        ]
     ].
     ^ info
 
@@ -6522,42 +6521,42 @@
 
     if (__isStringLike(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	char _aPathName[MAXPATHLEN];
-
-	strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName));
-	} while ((ret == INVALID_FILE_ATTRIBUTES) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesA((char *) __stringVal(aPathName));
-	if (ret == INVALID_FILE_ATTRIBUTES) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
+        char _aPathName[MAXPATHLEN];
+
+        strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName));
+        } while ((ret == INVALID_FILE_ATTRIBUTES) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesA((char *) __stringVal(aPathName));
+        if (ret == INVALID_FILE_ATTRIBUTES) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else if (__isUnicode16String(aPathName)) {
-	wchar_t _wPathName[MAXPATHLEN+1];
-
-	_makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+        wchar_t _wPathName[MAXPATHLEN+1];
+
+        _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
 #ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName));
-	} while ((ret == INVALID_FILE_ATTRIBUTES) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesW(_wPathName);
-	if (ret == INVALID_FILE_ATTRIBUTES) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName));
+        } while ((ret == INVALID_FILE_ATTRIBUTES) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesW(_wPathName);
+        if (ret == INVALID_FILE_ATTRIBUTES) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else
-	goto err;
+        goto err;
 
     if (ret == INVALID_FILE_ATTRIBUTES) {
-	@global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	RETURN ( false );
+        @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+        RETURN ( false );
     }
     RETURN ( (ret & FILE_ATTRIBUTE_DIRECTORY) ? true : false);
 err:;
@@ -6565,7 +6564,7 @@
     ^ self primitiveFailed
 
     "an alternative implementation would be:
-	^ (self infoOf:aPathName) type == #directory
+        ^ (self infoOf:aPathName) type == #directory
     "
     "
      self isDirectory:'c:\bbbbbb'
@@ -6653,8 +6652,8 @@
 
     attr := self primGetFileAttributes:aPathName.
     attr notNil ifTrue:[
-	^ (attr bitAnd: (FILE_ATTRIBUTE_DIRECTORY bitOr: FILE_ATTRIBUTE_READONLY ))
-	    ~~ FILE_ATTRIBUTE_READONLY
+        ^ (attr bitAnd: (FILE_ATTRIBUTE_DIRECTORY bitOr: FILE_ATTRIBUTE_READONLY ))
+            ~~ FILE_ATTRIBUTE_READONLY
     ].
     ^ false
 
@@ -6669,16 +6668,16 @@
     "return some object filled with info for the file 'aPathName';
      the info (for which corresponding access methods are understood by
      the returned object) is:
-	 type            - a symbol giving the files type
-	 mode            - numeric access mode
-	 uid             - owners user id
-	 gid             - owners group id
-	 size            - files size
-	 id              - files number (i.e. inode number)
-	 accessed        - last access time (as Timestamp)
-	 modified        - last modification time (as Timestamp)
-	 statusChanged   - last status change time (as Timestamp)
-	 alternativeName - (windows only:) the MSDOS name of the file
+         type            - a symbol giving the files type
+         mode            - numeric access mode
+         uid             - owners user id
+         gid             - owners group id
+         size            - files size
+         id              - files number (i.e. inode number)
+         accessed        - last access time (as Timestamp)
+         modified        - last modification time (as Timestamp)
+         statusChanged   - last status change time (as Timestamp)
+         alternativeName - (windows only:) the MSDOS name of the file
 
      Some of the fields may be returned as nil on systems which do not provide
      all of the information.
@@ -6705,28 +6704,28 @@
     wchar_t _wPathName[MAXPATHLEN+1];
 
     if (_makeWchar(aPathName, _wPathName, sizeof(_wPathName)) < 0)
-	goto badArgument;
+        goto badArgument;
 
 #ifdef DO_WRAP_CALLS
     {
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    result = (int)(STX_API_NOINT_CALL3( "GetFileAttributesExW", GetFileAttributesExW, _wPathName, GetFileExInfoStandard, &fileAttributeData));
-	} while (!result && (__threadErrno == EINTR));
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            result = (int)(STX_API_NOINT_CALL3( "GetFileAttributesExW", GetFileAttributesExW, _wPathName, GetFileExInfoStandard, &fileAttributeData));
+        } while (!result && (__threadErrno == EINTR));
     }
 #else
     result = GetFileAttributesExW(_wPathName, GetFileExInfoStandard, &fileAttributeData);
     if (!result) {
-	__threadErrno = __WIN32_ERR(GetLastError());
+        __threadErrno = __WIN32_ERR(GetLastError());
     }
 #endif
 
     if (!result) {
-	@global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+        @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
     } else {
-	id = __mkSmallInteger(0);   /* could get it by opening ... */
-	size = __MKLARGEINT64(1, (unsigned INT)fileAttributeData.nFileSizeLow, (unsigned INT)fileAttributeData.nFileSizeHigh);
+        id = __mkSmallInteger(0);   /* could get it by opening ... */
+        size = __MKLARGEINT64(1, (unsigned INT)fileAttributeData.nFileSizeLow, (unsigned INT)fileAttributeData.nFileSizeHigh);
 
 //        if (fileAttributeData.cFileName[0] != '\0') {
 //            bcopy(fileAttributeData.cFileName, fileNameBuffer, MAXPATHLEN*sizeof(wchar_t));
@@ -6740,79 +6739,79 @@
 //            alternativeName = __mkStringOrU16String_maxlen(alternativeFileNameBuffer, 14); /* DOS name */
 //        }
 
-	/*
-	 * simulate access bits
-	 */
-	if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
-	    modeBits = 0444;
-	} else {
-	    modeBits = 0666;
-	}
-
-	if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
-	    type = @symbol(directory);
-	    modeBits = 0777;   /* executable and WRITABLE - refer to comment in #isWritable: */
-	} else if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
-	    type = @symbol(symbolicLink);
-	    modeBits = 0777;   /* even in UNIX symlinks have 0777 */
-	} else {
-	    type = @symbol(regular);
-	}
-
-	mode = __mkSmallInteger(modeBits);
-
-	cOsTime = FileTimeToOsTime1970(&fileAttributeData.ftCreationTime);
-	aOsTime = FileTimeToOsTime1970(&fileAttributeData.ftLastAccessTime);
-	mOsTime = FileTimeToOsTime1970(&fileAttributeData.ftLastWriteTime);
+        /*
+         * simulate access bits
+         */
+        if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
+            modeBits = 0444;
+        } else {
+            modeBits = 0666;
+        }
+
+        if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+            type = @symbol(directory);
+            modeBits = 0777;   /* executable and WRITABLE - refer to comment in #isWritable: */
+        } else if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
+            type = @symbol(symbolicLink);
+            modeBits = 0777;   /* even in UNIX symlinks have 0777 */
+        } else {
+            type = @symbol(regular);
+        }
+
+        mode = __mkSmallInteger(modeBits);
+
+        cOsTime = FileTimeToOsTime1970(&fileAttributeData.ftCreationTime);
+        aOsTime = FileTimeToOsTime1970(&fileAttributeData.ftLastAccessTime);
+        mOsTime = FileTimeToOsTime1970(&fileAttributeData.ftLastWriteTime);
     }
 
   badArgument: ;
 %}.
 
     (aPathName endsWith:'.lnk') ifTrue:[
-	type := #symbolicLink.
-	"/ now done lazily in FileStatusInfo, when the path is accessed
-	"/ path := self getLinkTarget:aPathName.
+        type := #symbolicLink.
+        "/ now done lazily in FileStatusInfo, when the path is accessed
+        "/ path := self getLinkTarget:aPathName.
     ].
 
     mode isNil ifTrue:[
-	(self isDirectory:aPathName) ifTrue:[
-	    "/ the code above fails for root directories (these do not exist).
-	    "/ simulate here
-	    mode := 8r777.
-	    type := #directory.
-	    uid := gid := 0.
-	    size := 0.
-	    id := 0.
-	    atime := mtime := ctime := Timestamp now.
-	].
+        (self isDirectory:aPathName) ifTrue:[
+            "/ the code above fails for root directories (these do not exist).
+            "/ simulate here
+            mode := 8r777.
+            type := #directory.
+            uid := gid := 0.
+            size := 0.
+            id := 0.
+            atime := mtime := ctime := Timestamp now.
+        ].
     ].
     mode notNil ifTrue:[
-	atime isNil ifTrue:[
-	    "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
-	    "/ aOsTime := aOsTime - self osTimeOf19700101. -- already done
-	    atime := Timestamp new fromOSTime:aOsTime.
-	].
-	mtime isNil ifTrue:[
-	    "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
-	    "/ mOsTime := mOsTime - self osTimeOf19700101. -- already done
-	    mtime := Timestamp new fromOSTime:mOsTime.
-	].
-	ctime isNil ifTrue:[
-	    "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
-	    "/ cOsTime := cOsTime - self osTimeOf19700101. -- already done
-	    ctime := Timestamp new fromOSTime:cOsTime.
-	].
-
-	info := FileStatusInfo
-		    type:type mode:mode
-		    uid:uid gid:gid
-		    size:size
-		    id:id
-		    accessed:atime modified:mtime created:ctime
-		    sourcePath:aPathName
-		    fullName:fileName alternativeName:alternativeName.
-	^ info
+        atime isNil ifTrue:[
+            "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
+            "/ aOsTime := aOsTime - self osTimeOf19700101. -- already done
+            atime := Timestamp new fromOSTime:aOsTime.
+        ].
+        mtime isNil ifTrue:[
+            "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
+            "/ mOsTime := mOsTime - self osTimeOf19700101. -- already done
+            mtime := Timestamp new fromOSTime:mOsTime.
+        ].
+        ctime isNil ifTrue:[
+            "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
+            "/ cOsTime := cOsTime - self osTimeOf19700101. -- already done
+            ctime := Timestamp new fromOSTime:cOsTime.
+        ].
+
+        info := FileStatusInfo
+                    type:type mode:mode
+                    uid:uid gid:gid
+                    size:size
+                    id:id
+                    accessed:atime modified:mtime created:ctime
+                    sourcePath:aPathName
+                    fullName:fileName alternativeName:alternativeName.
+        ^ info
    ].
    ^ nil
 
@@ -6833,8 +6832,8 @@
      Returns nil if no mimeType for the given suffix is known."
 
     ^ RegistryEntry
-	stringValueFor:'Content Type'
-	atKey:('HKEY_CLASSES_ROOT\.' , aFileSuffix)
+        stringValueFor:'Content Type'
+        atKey:('HKEY_CLASSES_ROOT\.' , aFileSuffix)
 
     "
      self mimeTypeForSuffix:'au'
@@ -6879,20 +6878,20 @@
     path := self primPathNameOf:pathName.
 
     path isNil ifTrue:[
-	(self isValidPath:pathName) ifFalse:[
-	    p := pathName.
-	    [(p size > 1)
-	     and:[p endsWith:(self fileSeparator)]
-	    ] whileTrue:[
-		p := p copyButLast:1.
-	    ].
-	    ^ p
-	].
-
-	"/
-	"/ return the original - there is nothing else can we do
-	"/
-	path := self compressPath:pathName
+        (self isValidPath:pathName) ifFalse:[
+            p := pathName.
+            [(p size > 1)
+             and:[p endsWith:(self fileSeparator)]
+            ] whileTrue:[
+                p := p copyButLast:1.
+            ].
+            ^ p
+        ].
+
+        "/
+        "/ return the original - there is nothing else can we do
+        "/
+        path := self compressPath:pathName
     ].
     ^ path.
 
@@ -6923,54 +6922,54 @@
 
     if (__isStringLike(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	char _aPathName[MAXPATHLEN];
-
-	strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesA((char *) __stringVal(aPathName));
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
-#endif
-	if (ret >= 0) {
-	    RETURN ( __mkSmallInteger(ret) );
-	}
-	__threadErrno = __WIN32_ERR(GetLastError());
-	RETURN (nil);
+        char _aPathName[MAXPATHLEN];
+
+        strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesA((char *) __stringVal(aPathName));
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
+#endif
+        if (ret >= 0) {
+            RETURN ( __mkSmallInteger(ret) );
+        }
+        __threadErrno = __WIN32_ERR(GetLastError());
+        RETURN (nil);
     }
 
     if (__isUnicode16String(aPathName)) {
-	wchar_t _wPathName[MAXPATHLEN+1];
-
-	_makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+        wchar_t _wPathName[MAXPATHLEN+1];
+
+        _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
 
 #ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesW(_wPathName);
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
-#endif
-	if (ret >= 0) {
-	    RETURN ( __mkSmallInteger(ret) );
-	}
-	__threadErrno = __WIN32_ERR(GetLastError());
-	RETURN (nil);
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesW(_wPathName);
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
+#endif
+        if (ret >= 0) {
+            RETURN ( __mkSmallInteger(ret) );
+        }
+        __threadErrno = __WIN32_ERR(GetLastError());
+        RETURN (nil);
     }
 %}.
     (aPathName isString and:[aPathName isUnicode32String]) ifTrue:[
-	"/ WIN32 only support 16 bit (wide) strings
-	^ self primGetFileAttributes:aPathName asUnicode16String
+        "/ WIN32 only support 16 bit (wide) strings
+        ^ self primGetFileAttributes:aPathName asUnicode16String
     ].
 
     ^ self primitiveFailed
@@ -7002,7 +7001,7 @@
 
     len = GetModuleFileNameW(0, name, MAX_PATH);
     if (len <= 0) {
-	RETURN(nil);
+        RETURN(nil);
     }
     RETURN(__MKU16STRING_MAXLEN(name, len));
 %}
@@ -7022,86 +7021,86 @@
 
 %{
     if (__isStringLike(aPathName)) {
-	char nameBuffer[MAXPATHLEN + 1];
-	char nameBuffer2[MAXPATHLEN + 1];
-	char *returnedName = NULL;
-	int rslt;
+        char nameBuffer[MAXPATHLEN + 1];
+        char nameBuffer2[MAXPATHLEN + 1];
+        char *returnedName = NULL;
+        int rslt;
 
 #ifdef DO_WRAP_CALLS
-	char _aPathName[MAXPATHLEN+1];
-
-	strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    rslt = (int)(STX_API_NOINT_CALL4( "GetFullPathNameA", GetFullPathNameA, _aPathName, MAXPATHLEN, nameBuffer, NULL));
-	} while ((rslt < 0) && (__threadErrno == EINTR));
-#else
-	rslt = GetFullPathNameA(__stringVal(aPathName), MAXPATHLEN, nameBuffer, NULL);
-#endif
-	returnedName = nameBuffer;
-
-	if (rslt > 0) {
+        char _aPathName[MAXPATHLEN+1];
+
+        strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            rslt = (int)(STX_API_NOINT_CALL4( "GetFullPathNameA", GetFullPathNameA, _aPathName, MAXPATHLEN, nameBuffer, NULL));
+        } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+        rslt = GetFullPathNameA(__stringVal(aPathName), MAXPATHLEN, nameBuffer, NULL);
+#endif
+        returnedName = nameBuffer;
+
+        if (rslt > 0) {
 #ifdef DO_WRAP_CALLS
-	    do {
-		__threadErrno = 0;
-		// do not cast to INT - will loose sign bit then!
-		rslt = (int)(STX_API_NOINT_CALL3( "GetLongPathNameA", GetLongPathNameA, nameBuffer, nameBuffer2, MAXPATHLEN));
-	    } while ((rslt < 0) && (__threadErrno == EINTR));
-#else
-	    rslt = GetLongPathNameA(nameBuffer, nameBuffer2, MAXPATHLEN);
-#endif
-	    returnedName = nameBuffer2;
-	}
-	if (rslt > 0) {
-	    RETURN ( __MKSTRING(returnedName) );
-	}
-	__threadErrno = __WIN32_ERR(GetLastError());
-	RETURN (nil);
+            do {
+                __threadErrno = 0;
+                // do not cast to INT - will loose sign bit then!
+                rslt = (int)(STX_API_NOINT_CALL3( "GetLongPathNameA", GetLongPathNameA, nameBuffer, nameBuffer2, MAXPATHLEN));
+            } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+            rslt = GetLongPathNameA(nameBuffer, nameBuffer2, MAXPATHLEN);
+#endif
+            returnedName = nameBuffer2;
+        }
+        if (rslt > 0) {
+            RETURN ( __MKSTRING(returnedName) );
+        }
+        __threadErrno = __WIN32_ERR(GetLastError());
+        RETURN (nil);
     }
     if (__isUnicode16String(aPathName)) {
-	wchar_t nameBuffer[MAXPATHLEN + 1];
-	wchar_t nameBuffer2[MAXPATHLEN + 1];
-	wchar_t *returnedName = NULL;
-	int rslt;
-	wchar_t _wPathName[MAXPATHLEN+1];
-
-	_makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+        wchar_t nameBuffer[MAXPATHLEN + 1];
+        wchar_t nameBuffer2[MAXPATHLEN + 1];
+        wchar_t *returnedName = NULL;
+        int rslt;
+        wchar_t _wPathName[MAXPATHLEN+1];
+
+        _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
 
 #ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    rslt = (int)(STX_API_NOINT_CALL4( "GetFullPathNameW", GetFullPathNameW, _wPathName, MAXPATHLEN, nameBuffer, NULL));
-	} while ((rslt < 0) && (__threadErrno == EINTR));
-#else
-	rslt = GetFullPathNameW(_wPathName, MAXPATHLEN, nameBuffer, NULL);
-#endif
-
-	returnedName = nameBuffer;
-
-	if (rslt > 0) {
+        do {
+            __threadErrno = 0;
+            rslt = (int)(STX_API_NOINT_CALL4( "GetFullPathNameW", GetFullPathNameW, _wPathName, MAXPATHLEN, nameBuffer, NULL));
+        } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+        rslt = GetFullPathNameW(_wPathName, MAXPATHLEN, nameBuffer, NULL);
+#endif
+
+        returnedName = nameBuffer;
+
+        if (rslt > 0) {
 
 #ifdef DO_WRAP_CALLS
-	    do {
-		__threadErrno = 0;
-		rslt = (int)(STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW, nameBuffer, nameBuffer2, MAXPATHLEN));
-	    } while ((rslt < 0) && (__threadErrno == EINTR));
-#else
-	    rslt = GetLongPathNameW(nameBuffer, nameBuffer2, MAXPATHLEN);
-#endif
-	    returnedName = nameBuffer2;
-	}
-	if (rslt > 0) {
-	    RETURN (__mkStringOrU16String_maxlen(returnedName, MAXPATHLEN));
-	}
-	__threadErrno = __WIN32_ERR(GetLastError());
-	RETURN (nil);
+            do {
+                __threadErrno = 0;
+                rslt = (int)(STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW, nameBuffer, nameBuffer2, MAXPATHLEN));
+            } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+            rslt = GetLongPathNameW(nameBuffer, nameBuffer2, MAXPATHLEN);
+#endif
+            returnedName = nameBuffer2;
+        }
+        if (rslt > 0) {
+            RETURN (__mkStringOrU16String_maxlen(returnedName, MAXPATHLEN));
+        }
+        __threadErrno = __WIN32_ERR(GetLastError());
+        RETURN (nil);
     }
     error = @symbol(argument);     // argument is not a string or unicode16string
 %}.
 
     error notNil ifTrue:[
-	self primitiveFailed:error.
+        self primitiveFailed:error.
     ].
     ^ nil
 
@@ -7139,51 +7138,51 @@
     int ret;
 
     if (__isSmallInteger(anInteger)) {
-	if (__isStringLike(aPathName)) {
+        if (__isStringLike(aPathName)) {
 #ifdef DO_WRAP_CALLS
-	    char _aPathName[MAXPATHLEN];
-
-	    strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-	    do {
-		__threadErrno = 0;
-		// do not cast to INT - will loose sign bit then!
-		ret = (int)(STX_API_NOINT_CALL2( "SetFileAttributesA", SetFileAttributesA, _aPathName, __intVal(anInteger)));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	    ret = SetFileAttributesA((char *) __stringVal(aPathName), __intVal(anInteger));
-	    if (ret < 0) {
-		__threadErrno = __WIN32_ERR(GetLastError());
-	    }
-#endif
-	    if (ret >= 0) {
-		RETURN ( true );
-	    }
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	    RETURN (false);
-	}
-
-	if (__isUnicode16String(aPathName)) {
-	    wchar_t _wPathName[MAXPATHLEN+1];
-
-	    _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
+            char _aPathName[MAXPATHLEN];
+
+            strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+            do {
+                __threadErrno = 0;
+                // do not cast to INT - will loose sign bit then!
+                ret = (int)(STX_API_NOINT_CALL2( "SetFileAttributesA", SetFileAttributesA, _aPathName, __intVal(anInteger)));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+            ret = SetFileAttributesA((char *) __stringVal(aPathName), __intVal(anInteger));
+            if (ret < 0) {
+                __threadErrno = __WIN32_ERR(GetLastError());
+            }
+#endif
+            if (ret >= 0) {
+                RETURN ( true );
+            }
+            __threadErrno = __WIN32_ERR(GetLastError());
+            RETURN (false);
+        }
+
+        if (__isUnicode16String(aPathName)) {
+            wchar_t _wPathName[MAXPATHLEN+1];
+
+            _makeWchar(aPathName, _wPathName, sizeof(_wPathName));
 #ifdef DO_WRAP_CALLS
-	    do {
-		__threadErrno = 0;
-		// do not cast to INT - will loose sign bit then!
-		ret = (int)(STX_API_NOINT_CALL2( "SetFileAttributesW", SetFileAttributesW, _wPathName, __intVal(anInteger)));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	    ret = SetFileAttributesW(_wPathName, __intVal(anInteger));
-	    if (ret < 0) {
-		__threadErrno = __WIN32_ERR(GetLastError());
-	    }
-#endif
-	    if (ret >= 0) {
-		RETURN ( true );
-	    }
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	    RETURN (false);
-	}
+            do {
+                __threadErrno = 0;
+                // do not cast to INT - will loose sign bit then!
+                ret = (int)(STX_API_NOINT_CALL2( "SetFileAttributesW", SetFileAttributesW, _wPathName, __intVal(anInteger)));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+            ret = SetFileAttributesW(_wPathName, __intVal(anInteger));
+            if (ret < 0) {
+                __threadErrno = __WIN32_ERR(GetLastError());
+            }
+#endif
+            if (ret >= 0) {
+                RETURN ( true );
+            }
+            __threadErrno = __WIN32_ERR(GetLastError());
+            RETURN (false);
+        }
     }
 %}.
     ^ self primitiveFailed
@@ -7191,9 +7190,9 @@
 
 setCurrentDirectory:pathName
     pathName bitsPerCharacter == 16 ifTrue:[
-	self primSetCurrentDirectoryW:(pathName copyWith:(Character value:0))
+        self primSetCurrentDirectoryW:pathName asUnicode16StringZ.
     ] ifFalse:[
-	self primSetCurrentDirectoryA:pathName
+        self primSetCurrentDirectoryA:pathName
     ].
 
     "
@@ -7209,7 +7208,7 @@
      For nonexistent files, nil is returned."
 
     "could be implemented as:
-	(self infoOf:aPathName) accessed
+        (self infoOf:aPathName) accessed
     "
     | i|
 
@@ -7227,7 +7226,7 @@
      For nonexistent files, nil is returned."
 
     "could be implemented as:
-	(self infoOf:aPathName) modified
+        (self infoOf:aPathName) modified
     "
 
     | i|
@@ -7250,7 +7249,7 @@
 
     "
      this could have been implemented as:
-	(self infoOf:aPathName) type
+        (self infoOf:aPathName) type
     "
 
     i := self infoOf:aPathName.
@@ -7267,31 +7266,31 @@
 
 volumeLabelOf: aFilenameOrString
 
-	"Answer the volume label of the disk containing aFilenameOrString."
+        "Answer the volume label of the disk containing aFilenameOrString."
 
     | volName |
 
     volName := String new: 255.
     ( self
-	getVolumeInformation: aFilenameOrString asFilename volume, '\'
-	name: volName
-	nameSize: volName size
-	serialNumber: nil
-	maximumComponentLength: nil
-	fileSystemFlags: nil
-	fileSystemName: nil
-	fileSystemNameSize: 0 )
-	    ifFalse: [
-		Transcript showCR:'GetVolumeInformation error'.
-		^ ''
-	].
+        getVolumeInformation: aFilenameOrString asFilename volume, '\'
+        name: volName
+        nameSize: volName size
+        serialNumber: nil
+        maximumComponentLength: nil
+        fileSystemFlags: nil
+        fileSystemName: nil
+        fileSystemNameSize: 0 )
+            ifFalse: [
+                Transcript showCR:'GetVolumeInformation error'.
+                ^ ''
+        ].
     ^ volName copyUpTo: Character null
 
     "
-	self volumeLabelOf: 'C:\pepe.pep'
-	self volumeLabelOf: 'C:'
-	self volumeLabelOf: 'C:\\'
-	self volumeLabelOf: 'C:\'
+        self volumeLabelOf: 'C:\pepe.pep'
+        self volumeLabelOf: 'C:'
+        self volumeLabelOf: 'C:\\'
+        self volumeLabelOf: 'C:\'
 
     "
 !
@@ -7304,7 +7303,7 @@
 
     aPathString size < 2 ifTrue:[^ ''].
     (aPathString at:2) == $: ifTrue:[
-	^ (aPathString at:1) asString.
+        ^ (aPathString at:1) asString.
     ].
     ^ ''
 ! !
@@ -7321,11 +7320,11 @@
      html documents, pdf documents etc."
 
     Error
-	handle:[:ex |
-	    Dialog warn:'Shell execution failed'
-	] do:[
-	    self openApplicationForDocument:aFilenameOrString operation:#open
-	]
+        handle:[:ex |
+            Dialog warn:'Shell execution failed'
+        ] do:[
+            self openApplicationForDocument:aFilenameOrString operation:#open
+        ]
 
     "
      self openDocumentationFilename: 'C:\WINDOWS\Help\clipbrd.chm' asFilename
@@ -7393,8 +7392,8 @@
 
 %{
     while(1) {
-	console_printf("blocking...");
-	Sleep(50);
+        console_printf("blocking...");
+        Sleep(50);
     }
 %}.
     "
@@ -7408,8 +7407,8 @@
 
 %{
     while(1) {
-	console_printf("blocking...");
-	STX_API_CALL1("Sleep", Sleep, 50);
+        console_printf("blocking...");
+        STX_API_CALL1("Sleep", Sleep, 50);
     }
 %}.
     "
@@ -7426,8 +7425,8 @@
     int ret;
 
     do {
-	// do not cast to INT - will loose sign bit then!
-	ret = (int)(STX_API_NOINT_CALL1("Sleep", Sleep, 60000));
+        // do not cast to INT - will loose sign bit then!
+        ret = (int)(STX_API_NOINT_CALL1("Sleep", Sleep, 60000));
     } while (ret < 0 && __threadErrno == EINTR);
 %}.
     "
@@ -7444,8 +7443,8 @@
     int ret;
 
     do {
-	// do not cast to INT - will loose sign bit then!
-	ret = STX_API_CALL1("Sleep", Sleep, 60000);
+        // do not cast to INT - will loose sign bit then!
+        ret = STX_API_CALL1("Sleep", Sleep, 60000);
     } while (ret < 0 && __threadErrno == EINTR);
 %}.
     "
@@ -7467,8 +7466,8 @@
 
     if (__isSmallInteger(signalNumber)) {
 #ifdef SIG_DFL
-	signal(__intVal(signalNumber), SIG_DFL);
-	RETURN (self);
+        signal(__intVal(signalNumber), SIG_DFL);
+        RETURN (self);
 #endif
     }
 %}.
@@ -7511,14 +7510,14 @@
 %{  /* NOCONTEXT */
 
     if (__isSmallInteger(signalNumber)) {
-	int sigNo = __intVal(signalNumber);
-
-	if (sigNo == 0) {
-	    RETURN (self);
-	}
+        int sigNo = __intVal(signalNumber);
+
+        if (sigNo == 0) {
+            RETURN (self);
+        }
 #ifdef SIG_IGN
-	signal(sigNo, SIG_IGN);
-	RETURN (self);
+        signal(sigNo, SIG_IGN);
+        RETURN (self);
 #endif
     }
 %}.
@@ -7539,8 +7538,8 @@
 disableTimer
     "disable timer interrupts.
      WARNING:
-	the system will not operate correctly with timer interrupts
-	disabled, because no scheduling or timeouts are possible."
+        the system will not operate correctly with timer interrupts
+        disabled, because no scheduling or timeouts are possible."
 
 %{  /* NOCONTEXT */
 
@@ -7663,121 +7662,121 @@
      &&  (sigNr <= SIG_LIMIT)
 #endif
     ) {
-	/*
-	 * standard signals are forced into standard handlers
-	 * - all others go into general signalInterrupt
-	 */
+        /*
+         * standard signals are forced into standard handlers
+         * - all others go into general signalInterrupt
+         */
 #if defined(SIGPOLL) && defined(SIGIO)
-	if (sigNr == SIGPOLL)
-	    sigNr = SIGIO;
-#endif
-	switch (sigNr) {
-	    case 0:
-		/* enabling a non-supported signal */
-		RETURN (self);
+        if (sigNr == SIGPOLL)
+            sigNr = SIGIO;
+#endif
+        switch (sigNr) {
+            case 0:
+                /* enabling a non-supported signal */
+                RETURN (self);
 
 #ifdef SIGBREAK
-	    case SIGBREAK:
+            case SIGBREAK:
 #endif
 #ifdef SIGINT
-	    case SIGINT:
+            case SIGINT:
 #endif
 #ifdef SIGQUIT
-	    case SIGQUIT:
+            case SIGQUIT:
 #endif
 #ifdef SIGNALDEBUGWIN32
-		console_printf("ConsoleSignal %d\n",sigNr);
-#endif
-		SetConsoleCtrlHandler((PHANDLER_ROUTINE)__signalUserInterruptWIN32,TRUE);
-		RETURN (self);
+                console_printf("ConsoleSignal %d\n",sigNr);
+#endif
+                SetConsoleCtrlHandler((PHANDLER_ROUTINE)__signalUserInterruptWIN32,TRUE);
+                RETURN (self);
 #ifdef SIGFPE
-	    case SIGFPE:
-		handler = __signalFpExceptionInterrupt;
-		break;
+            case SIGFPE:
+                handler = __signalFpExceptionInterrupt;
+                break;
 #endif
 
 #ifdef SIGPIPE
-	    case SIGPIPE:
-		handler = __signalPIPEInterrupt;
-		break;
+            case SIGPIPE:
+                handler = __signalPIPEInterrupt;
+                break;
 #endif
 #ifdef SIGBUS
-	    case SIGBUS:
-		handler = __signalBUSInterrupt;
-		break;
+            case SIGBUS:
+                handler = __signalBUSInterrupt;
+                break;
 #endif
 #ifdef SIGSEGV
-	    case SIGSEGV:
-		handler = __signalSEGVInterrupt;
-		break;
+            case SIGSEGV:
+                handler = __signalSEGVInterrupt;
+                break;
 #endif
 #ifdef SIGILL
-	    case SIGILL:
-		handler = __signalTrapInterrupt;
-		break;
+            case SIGILL:
+                handler = __signalTrapInterrupt;
+                break;
 #endif
 #ifdef SIGEMT
-	    case SIGEMT:
-		handler = __signalTrapInterrupt;
-		break;
+            case SIGEMT:
+                handler = __signalTrapInterrupt;
+                break;
 #endif
 #ifdef SIGIO
-	    case SIGIO:
-		handler = __signalIoInterrupt;
-		break;
+            case SIGIO:
+                handler = __signalIoInterrupt;
+                break;
 #endif
 
 #ifdef CHILD_SIGNAL
-	    case CHILD_SIGNAL:
-		handler = __signalChildInterrupt;
-		break;
-#endif
-
-	    default:
-		handler = __signalInterrupt;
-		break;
-	}
-
-	{
+            case CHILD_SIGNAL:
+                handler = __signalChildInterrupt;
+                break;
+#endif
+
+            default:
+                handler = __signalInterrupt;
+                break;
+        }
+
+        {
 #ifdef HAS_SIGACTION
-	    struct sigaction act;
-
-	    /*
-	     * Do not add SA_RESTART here. A signal can cause a
-	     * thread switch, another thread can do a garbage collect
-	     * and restarted system calls may write into old
-	     * (collected) addresses.
-	     */
-
-	    act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
-	    sigemptyset(&act.sa_mask);
-	    act.sa_handler = handler;
-	    sigaction(sigNr, &act, 0);
+            struct sigaction act;
+
+            /*
+             * Do not add SA_RESTART here. A signal can cause a
+             * thread switch, another thread can do a garbage collect
+             * and restarted system calls may write into old
+             * (collected) addresses.
+             */
+
+            act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
+            sigemptyset(&act.sa_mask);
+            act.sa_handler = handler;
+            sigaction(sigNr, &act, 0);
 #else
 # ifdef HAS_SIGVEC
-	    struct sigvec vec;
-
-	    vec.sv_flags = SV_INTERRUPT;
-	    sigemptyset(&vec.sv_mask);
-	    vec.sv_handler = handler;
-	    sigvec(sigNr, &vec, NULL);
+            struct sigvec vec;
+
+            vec.sv_flags = SV_INTERRUPT;
+            sigemptyset(&vec.sv_mask);
+            vec.sv_handler = handler;
+            sigvec(sigNr, &vec, NULL);
 # else
 #  ifdef WIN32
 #   ifdef SIGNALDEBUGWIN32
-	    console_printf("signal %d can't change handler\n",sigNr);
+            console_printf("signal %d can't change handler\n",sigNr);
 #   endif
 #  else
-	    (void) signal(sigNr, handler);
+            (void) signal(sigNr, handler);
 #  endif
 # endif
 #endif
-	}
-
-	/*
-	 * maybe, we should Return the old enable-status
-	 * as boolean here ...
-	 */
-	RETURN (self);
+        }
+
+        /*
+         * maybe, we should Return the old enable-status
+         * as boolean here ...
+         */
+        RETURN (self);
     }
 %}.
 
@@ -7795,8 +7794,8 @@
     extern void __win32SetTimer();
 
     if (__isSmallInteger(milliSeconds)) {
-	__win32SetTimer( __intVal(milliSeconds) );
-	RETURN (true);
+        __win32SetTimer( __intVal(milliSeconds) );
+        RETURN (true);
     }
 %}.
     ^ false
@@ -7816,8 +7815,8 @@
      The process terminates immediately and has no chance to perform any cleanup actions.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you have to fetch the processes exitstatus with
-	      OperatingSystem>>getStatusOfProcess:aProcessId."
+              you have to fetch the processes exitstatus with
+              OperatingSystem>>getStatusOfProcess:aProcessId."
 
     self killProcess:processHandleOrPid exitCode:0.
 
@@ -7830,20 +7829,20 @@
 
 %{
     if (__isExternalAddressLike(processHandleOrPid) ) {
-	HANDLE hProcess = _HANDLEVal(processHandleOrPid);
-
-	if (hProcess != 0) {
-	    TerminateProcess( hProcess, __intVal(exitCode) );
-	}
-	RETURN( self );
+        HANDLE hProcess = _HANDLEVal(processHandleOrPid);
+
+        if (hProcess != 0) {
+            TerminateProcess( hProcess, __intVal(exitCode) );
+        }
+        RETURN( self );
     } else if( __isSmallInteger(processHandleOrPid) ) {
-	HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, __smallIntegerVal(processHandleOrPid));
-
-	if( hProcess != 0 ) {
-	    TerminateProcess( hProcess, __intVal(exitCode) );
-	    CloseHandle(hProcess);
-	}
-	RETURN( self );
+        HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, __smallIntegerVal(processHandleOrPid));
+
+        if( hProcess != 0 ) {
+            TerminateProcess( hProcess, __intVal(exitCode) );
+            CloseHandle(hProcess);
+        }
+        RETURN( self );
     }
 %}.
     self primitiveFailed:#invalidParameter.
@@ -7858,15 +7857,15 @@
      Here we kill any offspring of the process identified by processGroupHandleOrPid.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you have to fetch the processes exitstatus with
-	      OperatingSystem>>getStatusOfProcess:aProcessId."
+              you have to fetch the processes exitstatus with
+              OperatingSystem>>getStatusOfProcess:aProcessId."
 
     | pid processList groupsToTerminate anyMore |
 
     processGroupHandleOrPid isInteger ifTrue:[
-	pid := processGroupHandleOrPid
+        pid := processGroupHandleOrPid
     ] ifFalse:[
-	pid := processGroupHandleOrPid pid.
+        pid := processGroupHandleOrPid pid.
     ].
     groupsToTerminate := Set with:pid.
     processList := self getAllProcesses asSet.
@@ -7874,21 +7873,21 @@
     "/ Transcript show:'terminate group '; showCR:pid.
     anyMore := true.
     [anyMore] whileTrue:[
-	anyMore := false.
-	processList doWithExit:[:anOSProcess :exit |
-	    |pid|
-
-	    (groupsToTerminate includes:anOSProcess parentPid) ifTrue:[
-		pid := anOSProcess pid.
-		groupsToTerminate add:pid.
-		"/ Transcript show:'terminate '; showCR:pid.
-		self killProcess:pid.
-		processList remove:anOSProcess.
-		anyMore := true.
-		"/ need to restart: we have removed an element inside the loop
-		exit value:nil
-	    ].
-	].
+        anyMore := false.
+        processList doWithExit:[:anOSProcess :exit |
+            |pid|
+
+            (groupsToTerminate includes:anOSProcess parentPid) ifTrue:[
+                pid := anOSProcess pid.
+                groupsToTerminate add:pid.
+                "/ Transcript show:'terminate '; showCR:pid.
+                self killProcess:pid.
+                processList remove:anOSProcess.
+                anyMore := true.
+                "/ need to restart: we have removed an element inside the loop
+                exit value:nil
+            ].
+        ].
     ].
 
     "Modified: / 03-08-2018 / 09:58:21 / Stefan Vogel"
@@ -7950,9 +7949,9 @@
      Do not confuse UNIX signals with Smalltalk-Signals.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you may have to fetch the processes exitstatus with
-	      OperatingSystem>>getStatusOfProcess:aProcessId
-	      if the signal terminates that process."
+              you may have to fetch the processes exitstatus with
+              OperatingSystem>>getStatusOfProcess:aProcessId
+              if the signal terminates that process."
 
     "/
     "/ either invalid argument (non-integers)
@@ -7968,9 +7967,9 @@
      Do not confuse UNIX signals with Smalltalk-Signals.
 
      WARNING: in order to avoid zombie processes (on unix),
-	      you may have to fetch the processes exitstatus with
-	      OperatingSystem>>getStatusOfProcess:aProcessId
-	      if the signal terminates that process."
+              you may have to fetch the processes exitstatus with
+              OperatingSystem>>getStatusOfProcess:aProcessId
+              if the signal terminates that process."
 
     "/
     "/ either invalid argument (non-integers)
@@ -7991,12 +7990,12 @@
     parentPerPid := Dictionary new.
     childrenPerPid := Dictionary new.
     allProcesses do:[:each |
-	|eachPid eachParentPid|
-
-	eachPid := each pid.
-	eachParentPid := each parentPid.
-	parentPerPid at:eachPid put:eachParentPid.
-	(childrenPerPid at:eachParentPid ifAbsentPut:[Set new]) add:eachPid
+        |eachPid eachParentPid|
+
+        eachPid := each pid.
+        eachParentPid := each parentPid.
+        parentPerPid at:eachPid put:eachParentPid.
+        (childrenPerPid at:eachParentPid ifAbsentPut:[Set new]) add:eachPid
     ].
 
     toTerminate := OrderedCollection new.
@@ -8006,17 +8005,17 @@
 
     toDo := OrderedCollection with:pid.
     [toDo notEmpty] whileTrue:[
-	someParentPid := toDo removeFirst.
-	(childrenPerPid at:someParentPid ifAbsent:#()) do:[:eachChildPid |
-	    (alreadyIncluded includes:eachChildPid) ifFalse:[
-		toTerminate addFirst:eachChildPid.
-		alreadyIncluded add:eachChildPid.
-	    ]
-	].
+        someParentPid := toDo removeFirst.
+        (childrenPerPid at:someParentPid ifAbsent:#()) do:[:eachChildPid |
+            (alreadyIncluded includes:eachChildPid) ifFalse:[
+                toTerminate addFirst:eachChildPid.
+                alreadyIncluded add:eachChildPid.
+            ]
+        ].
     ].
 
     toTerminate do:[:eachPid |
-	self terminateProcess:eachPid
+        self terminateProcess:eachPid
     ].
 
     "Modified: / 14-05-2019 / 14:48:01 / Maren"
@@ -8026,15 +8025,15 @@
     "terminate a process.
 
      ATTENTION WIN32:
-	 Under unix, we have terminateProcess, which does a soft
-	 terminate (giving the process a chance to cleanup) and
-	 killProcess, which does a hard terminate.
-	 Under WIN32, both (currently) use the TerminateProcess
-	 function, which unconditionally causes a process to exit.
-	 I.e. under WIN32, the process has no chance to perform cleanup.
-	 Use it only in extreme circumstances. The state of
-	 global data maintained by dynamic-link libraries (DLLs)
-	 may be compromised if TerminateProcess is used.
+         Under unix, we have terminateProcess, which does a soft
+         terminate (giving the process a chance to cleanup) and
+         killProcess, which does a hard terminate.
+         Under WIN32, both (currently) use the TerminateProcess
+         function, which unconditionally causes a process to exit.
+         I.e. under WIN32, the process has no chance to perform cleanup.
+         Use it only in extreme circumstances. The state of
+         global data maintained by dynamic-link libraries (DLLs)
+         may be compromised if TerminateProcess is used.
 
      TODO: send a WM_QUIT instead, to allow for proper shutdown."
 
@@ -8045,15 +8044,15 @@
     "terminate a process.
 
      ATTENTION WIN32:
-	 Under unix, we have terminateProcess, which does a soft
-	 terminate (giving the process a chance to cleanup) and
-	 killProcess, which does a hard terminate.
-	 Under WIN32, both (currently) use the TerminateProcess
-	 function, which unconditionally causes a process to exit.
-	 I.e. under WIN32, the process has no chance to perform cleanup.
-	 Use it only in extreme circumstances. The state of
-	 global data maintained by dynamic-link libraries (DLLs)
-	 may be compromised if TerminateProcess is used.
+         Under unix, we have terminateProcess, which does a soft
+         terminate (giving the process a chance to cleanup) and
+         killProcess, which does a hard terminate.
+         Under WIN32, both (currently) use the TerminateProcess
+         function, which unconditionally causes a process to exit.
+         I.e. under WIN32, the process has no chance to perform cleanup.
+         Use it only in extreme circumstances. The state of
+         global data maintained by dynamic-link libraries (DLLs)
+         may be compromised if TerminateProcess is used.
 
      TODO: send a WM_QUIT instead, to allow for proper shutdown."
 
@@ -8068,15 +8067,15 @@
     "terminate a process group (that is all subprocesses of a process).
 
      ATTENTION WIN32:
-	 Under unix, we have terminateProcess, which does a soft
-	 terminate (giving the process a chance to cleanup) and
-	 killProcess, which does a hard terminate.
-	 Under WIN32, both (currently) use the TerminateProcess
-	 function, which unconditionally causes a process to exit.
-	 I.e. under WIN32, the process has no chance to perform cleanup.
-	 Use it only in extreme circumstances. The state of
-	 global data maintained by dynamic-link libraries (DLLs)
-	 may be compromised if TerminateProcess is used.
+         Under unix, we have terminateProcess, which does a soft
+         terminate (giving the process a chance to cleanup) and
+         killProcess, which does a hard terminate.
+         Under WIN32, both (currently) use the TerminateProcess
+         function, which unconditionally causes a process to exit.
+         I.e. under WIN32, the process has no chance to perform cleanup.
+         Use it only in extreme circumstances. The state of
+         global data maintained by dynamic-link libraries (DLLs)
+         may be compromised if TerminateProcess is used.
      TODO: send a WM_QUIT instead, to allow for proper shutdown."
 
     self killProcessGroup:processGroupHandleOrPid.
@@ -8109,8 +8108,8 @@
     sa.bInheritHandle = FALSE;
 
     if( ! CreatePipe( &pipeRead, &pipeWrite, &sa, 0 ) ) {
-	@global(LastErrorNumber) = error = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
-	goto out;
+        @global(LastErrorNumber) = error = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+        goto out;
     }
 
 #if 1
@@ -8122,8 +8121,8 @@
      */
 # ifdef PROCESSDEBUGWIN32
     if (flag_PROCESSDEBUGWIN32) {
-	console_printf("piperead %x\n",pipeRead);
-	console_printf("pipewrite %x\n",pipeWrite);
+        console_printf("piperead %x\n",pipeRead);
+        console_printf("pipewrite %x\n",pipeWrite);
     }
 # endif
     fd1 = __mkSmallInteger(_open_osfhandle(pipeRead, O_BINARY));
@@ -8132,9 +8131,9 @@
 out:;
 %}.
     (fd1 notNil and:[fd2 notNil]) ifTrue:[
-	(fd1 ~~ -1 and:[fd2 ~~ -1]) ifTrue:[
-	    ^ Array with:fd1 with:fd2.
-	].
+        (fd1 ~~ -1 and:[fd2 ~~ -1]) ifTrue:[
+            ^ Array with:fd1 with:fd2.
+        ].
     ].
 
     ^ nil
@@ -8148,12 +8147,12 @@
     HANDLE __pid;
 
     if (!__isExternalAddressLike(pid) || (__pid = _HANDLEVal(pid)) == 0) {
-	RETURN(self);
+        RETURN(self);
     }
 
 #ifdef PROCESSDEBUGWIN32
     if (flag_PROCESSDEBUGWIN32) {
-	console_printf("Close ProcessHandle %x\n", __pid);
+        console_printf("Close ProcessHandle %x\n", __pid);
     }
 #endif
     CloseHandle(__pid);
@@ -8172,18 +8171,18 @@
     spaceForTargetHandle := ExternalLong unprotectedNew.
     hMe := self getCurrentProcess.
     rslt := self
-		primDuplicateHandle_hSourcProcessHandle:hMe
-		hSourceHandle:aHandle
-		hTargetProcesshandle:targetProcessHandle ? hMe
-		lpTargetHandle:spaceForTargetHandle
-		dwDesiredAccess:0
-		bInheritHandle:false
-		dwOptions:2 "DUPLICATE_SAME_ACCESS".
+                primDuplicateHandle_hSourcProcessHandle:hMe
+                hSourceHandle:aHandle
+                hTargetProcesshandle:targetProcessHandle ? hMe
+                lpTargetHandle:spaceForTargetHandle
+                dwDesiredAccess:0
+                bInheritHandle:false
+                dwOptions:2 "DUPLICATE_SAME_ACCESS".
 
     rslt ifFalse:[
-	spaceForTargetHandle free.
-	self primitiveFailed:self primGetLastError.
-	^ nil
+        spaceForTargetHandle free.
+        self primitiveFailed:self primGetLastError.
+        ^ nil
     ].
 
     addr := spaceForTargetHandle value.
@@ -8198,15 +8197,15 @@
     outputTo:output
 
     "
-	|output|
-
-	output := '' writeStream.
-
-	self
-	    executePowershellCommands:(Array with:'dir')
-	    outputTo:output.
-
-	output contents inspect.
+        |output|
+
+        output := '' writeStream.
+
+        self
+            executePowershellCommands:(Array with:'dir')
+            outputTo:output.
+
+        output contents inspect.
     "
 
     |input|
@@ -8215,14 +8214,14 @@
     input nextPutAll:'powershell -noprofile -noninteractive "'.
 
     someCommands do:[:eachCommand |
-	input nextPutAll:((eachCommand subStrings:$") asStringWith:'\"').
+        input nextPutAll:((eachCommand subStrings:$") asStringWith:'\"').
     ].
 
     input nextPutAll:'"'.
 
     OperatingSystem
-	executeCommand:input contents
-	outputTo:output.
+        executeCommand:input contents
+        outputTo:output.
 
     "Created: / 14-11-2019 / 13:31:43 / Stefan Reise"
 !
@@ -8242,20 +8241,20 @@
     hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
     if( hProcessSnap != INVALID_HANDLE_VALUE ) {
-	pe32.dwSize = sizeof(PROCESSENTRY32);
-	Process32First( hProcessSnap, & pe32 );
-
-	do {
-	    st_perProc = __SSEND0(@global(Win32OperatingSystem::OSProcessDescriptor), @symbol(new), 0);
-	    f = __MKSTRING(pe32.szExeFile);
-	    __SSEND1(st_perProc, @symbol(commandLine:), 0, f );
-	    __SSEND1(st_perProc, @symbol(pid:), 0, __mkSmallInteger(pe32.th32ProcessID) );
-	    __SSEND1(st_perProc, @symbol(parentPid:), 0, __mkSmallInteger(pe32.th32ParentProcessID) );
-
-	    __SSEND1(list, @symbol(add:), 0, st_perProc );
-	}
-	while(Process32Next(hProcessSnap,&pe32));
-	CloseHandle( hProcessSnap );
+        pe32.dwSize = sizeof(PROCESSENTRY32);
+        Process32First( hProcessSnap, & pe32 );
+
+        do {
+            st_perProc = __SSEND0(@global(Win32OperatingSystem::OSProcessDescriptor), @symbol(new), 0);
+            f = __MKSTRING(pe32.szExeFile);
+            __SSEND1(st_perProc, @symbol(commandLine:), 0, f );
+            __SSEND1(st_perProc, @symbol(pid:), 0, __mkSmallInteger(pe32.th32ProcessID) );
+            __SSEND1(st_perProc, @symbol(parentPid:), 0, __mkSmallInteger(pe32.th32ParentProcessID) );
+
+            __SSEND1(list, @symbol(add:), 0, st_perProc );
+        }
+        while(Process32Next(hProcessSnap,&pe32));
+        CloseHandle( hProcessSnap );
     }
 
 #endif  /* TLHELP32_H_INCLUDE */
@@ -8276,8 +8275,8 @@
 
 getPrivateProfileString:appNameString key:keyNameString default:defaultString fileName:fileName
     ^ self
-	getProfileString:appNameString key:keyNameString default:defaultString
-	fileName:fileName private:true
+        getProfileString:appNameString key:keyNameString default:defaultString
+        fileName:fileName private:true
 
     "Modified: / 27-07-2006 / 11:57:03 / fm"
 !
@@ -8295,40 +8294,40 @@
     OBJ retVal;
 
     if (__isStringLike(appNameString)) {
-	__appNameString = __stringVal(appNameString);
+        __appNameString = __stringVal(appNameString);
     } else if (appNameString != nil)
-	goto primitiveFail;
+        goto primitiveFail;
 
     if (__isStringLike(keyNameString)) {
-	__keyNameString = __stringVal(keyNameString);
+        __keyNameString = __stringVal(keyNameString);
     } else if (keyNameString != nil)
-	goto primitiveFail;
+        goto primitiveFail;
 
     if (__isStringLike(defaultString)) {
-	__defaultString = __stringVal(defaultString);
+        __defaultString = __stringVal(defaultString);
     } else if (defaultString != nil)
-	goto primitiveFail;
+        goto primitiveFail;
 
     do {
-	nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
-	if (nChars >= 0) {
-	    if (nChars != bufferSize-1) {
-		retVal = __MKSTRING_L(usedBuffer, nChars);
-		if (usedBuffer != quickBuffer) free(usedBuffer);
-		RETURN (retVal);
-	    }
-
-	    {
-		/* use a bigger buffer */
-		char *newBuffer;
-		int newBufferSize = bufferSize * 2;
-
-		newBuffer = (char *)malloc( newBufferSize );
-		if (usedBuffer != quickBuffer) free(usedBuffer);
-		usedBuffer = newBuffer;
-		bufferSize = newBufferSize;
-	    }
-	}
+        nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
+        if (nChars >= 0) {
+            if (nChars != bufferSize-1) {
+                retVal = __MKSTRING_L(usedBuffer, nChars);
+                if (usedBuffer != quickBuffer) free(usedBuffer);
+                RETURN (retVal);
+            }
+
+            {
+                /* use a bigger buffer */
+                char *newBuffer;
+                int newBufferSize = bufferSize * 2;
+
+                newBuffer = (char *)malloc( newBufferSize );
+                if (usedBuffer != quickBuffer) free(usedBuffer);
+                usedBuffer = newBuffer;
+                bufferSize = newBufferSize;
+            }
+        }
 
     } while (nChars > 0);
     RETURN (nil);
@@ -8353,49 +8352,49 @@
     OBJ retVal;
 
     if (__isStringLike(appNameString)) {
-	__appNameString = __stringVal(appNameString);
+        __appNameString = __stringVal(appNameString);
     } else if (appNameString != nil)
-	goto primitiveFail;
+        goto primitiveFail;
 
     if (__isStringLike(keyNameString)) {
-	__keyNameString = __stringVal(keyNameString);
+        __keyNameString = __stringVal(keyNameString);
     } else if (keyNameString != nil)
-	goto primitiveFail;
+        goto primitiveFail;
 
     if (__isStringLike(defaultString)) {
-	__defaultString = __stringVal(defaultString);
+        __defaultString = __stringVal(defaultString);
     } else if (defaultString != nil)
-	goto primitiveFail;
+        goto primitiveFail;
 
     if (private == true) {
-	if (! __isStringLike(fileName)) goto primitiveFail;
-	__fileName = __stringVal(fileName);
+        if (! __isStringLike(fileName)) goto primitiveFail;
+        __fileName = __stringVal(fileName);
     }
 
     do {
-	if (private == true) {
-	    nChars = GetPrivateProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize, __fileName);
-	} else {
-	    nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
-	}
-	if (nChars >= 0) {
-	    if (nChars != bufferSize-1) {
-		retVal = __MKSTRING_L(usedBuffer, nChars);
-		if (usedBuffer != quickBuffer) free(usedBuffer);
-		RETURN (retVal);
-	    }
-
-	    {
-		/* use a bigger buffer */
-		char *newBuffer;
-		int newBufferSize = bufferSize * 2;
-
-		newBuffer = (char *)malloc( newBufferSize );
-		if (usedBuffer != quickBuffer) free(usedBuffer);
-		usedBuffer = newBuffer;
-		bufferSize = newBufferSize;
-	    }
-	}
+        if (private == true) {
+            nChars = GetPrivateProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize, __fileName);
+        } else {
+            nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
+        }
+        if (nChars >= 0) {
+            if (nChars != bufferSize-1) {
+                retVal = __MKSTRING_L(usedBuffer, nChars);
+                if (usedBuffer != quickBuffer) free(usedBuffer);
+                RETURN (retVal);
+            }
+
+            {
+                /* use a bigger buffer */
+                char *newBuffer;
+                int newBufferSize = bufferSize * 2;
+
+                newBuffer = (char *)malloc( newBufferSize );
+                if (usedBuffer != quickBuffer) free(usedBuffer);
+                usedBuffer = newBuffer;
+                bufferSize = newBufferSize;
+            }
+        }
 
     } while (nChars > 0);
     RETURN (nil);
@@ -8425,7 +8424,7 @@
 
     newHandle := self duplicateHandle:anExternalAddress to:nil.
     newHandle isNil ifTrue:[
-	^ false.
+        ^ false.
     ].
 "/    self closeHandle:newHandle.
     ^ true.
@@ -8442,7 +8441,7 @@
 
     "
      self
-	playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
+        playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
     "
 
     "Created: / 06-11-2007 / 00:46:57 / cg"
@@ -8460,8 +8459,8 @@
 
     "
      self
-	playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
-	mode:1
+        playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
+        mode:1
     "
 
     "Modified: / 06-11-2007 / 00:46:27 / cg"
@@ -8496,7 +8495,7 @@
     "/ <apicall: dword "GetLastError" () module: "kernel32.dll" >
 
     "
-	self primGetLastError
+        self primGetLastError
     "
 !
 
@@ -8505,8 +8504,8 @@
 
 %{  /* NOCONTEXT */
     if (__isSmallInteger(i)) {
-	SetLastError(__intVal(i));
-	RETURN(self);
+        SetLastError(__intVal(i));
+        RETURN(self);
     }
 %}.
    "/ <apicall: void "SetLastError" (dword) module: "kernel32.dll" >
@@ -8523,10 +8522,10 @@
      && __isString(keyName)
      && __isString(profString)
      && __isString(fnString)) {
-	BOOL ret;
-
-	ret = WritePrivateProfileStringA(__stringVal(appName), __stringVal(keyName), __stringVal(profString), __stringVal(fnString));
-	RETURN( ret == 0 ? false : true);
+        BOOL ret;
+
+        ret = WritePrivateProfileStringA(__stringVal(appName), __stringVal(keyName), __stringVal(profString), __stringVal(fnString));
+        RETURN( ret == 0 ? false : true);
     }
 %}.
 
@@ -8553,8 +8552,8 @@
      therefor we have to remove this environment attribute as early as possible"
 
     OperatingSystem
-	setEnvironment:'__COMPAT_LAYER'
-	to:''
+        setEnvironment:'__COMPAT_LAYER'
+        to:''
 
     "Created: / 19-11-2019 / 17:22:15 / Stefan Reise"
 !
@@ -8609,8 +8608,8 @@
     lastErrorCode := handleAndLastErrorCode second.
     "/  self assert: lastErrorCode == 0.
     ^ handle isNil
-	or:[lastErrorCode == 183 "ERROR_ALREADY_EXISTS"
-	    or:[ lastErrorCode == 5 "ERROR_ACCESS_DENIED"]]
+        or:[lastErrorCode == 183 "ERROR_ALREADY_EXISTS"
+            or:[ lastErrorCode == 5 "ERROR_ACCESS_DENIED"]]
 
     "Modified: / 03-08-2010 / 16:59:41 / cg"
 !
@@ -8646,25 +8645,25 @@
 %{
     if (__isString(lpName)
      && ((bInitialOwner == true) || (bInitialOwner == false))) {
-	void *c_descr = NULL;
-	char *c_name;
-	HANDLE c_handle;
-
-	c_name = __stringVal(lpName);
-
-	if (lpSecurityDescriptor != nil) {
-	    if (__isExternalAddressLike(lpSecurityDescriptor)
-	     || __isExternalBytesLike(lpSecurityDescriptor) ) {
-		c_descr = __externalAddressVal(lpSecurityDescriptor);
-	    } else
-		goto badArg;
-	}
-	c_handle = CreateMutexA(c_descr, bInitialOwner == true, c_name);
-	if (c_handle == NULL) {
-	    RETURN(nil);
-	}
-	__externalAddressVal(handle) = c_handle;
-	RETURN(handle);
+        void *c_descr = NULL;
+        char *c_name;
+        HANDLE c_handle;
+
+        c_name = __stringVal(lpName);
+
+        if (lpSecurityDescriptor != nil) {
+            if (__isExternalAddressLike(lpSecurityDescriptor)
+             || __isExternalBytesLike(lpSecurityDescriptor) ) {
+                c_descr = __externalAddressVal(lpSecurityDescriptor);
+            } else
+                goto badArg;
+        }
+        c_handle = CreateMutexA(c_descr, bInitialOwner == true, c_name);
+        if (c_handle == NULL) {
+            RETURN(nil);
+        }
+        __externalAddressVal(handle) = c_handle;
+        RETURN(handle);
     }
     badArg: ;
 %}.
@@ -8685,25 +8684,25 @@
 %{
     if (__isString(lpName)
      && ((bInitialOwner == true) || (bInitialOwner == false))) {
-	DWORD c_dwDesiredAccess = 0;
-	char *c_name;
-	BOOL c_initialOwner = (bInitialOwner == true);
-	HANDLE c_handle;
-
-	c_name = __stringVal(lpName);
-
-	if (dwDesiredAccess != nil) {
-	    if (! __isSmallInteger(dwDesiredAccess)) {
-		goto badArg;
-	    }
-	    c_dwDesiredAccess = __intVal(dwDesiredAccess);
-	}
-	c_handle = OpenMutexA(c_dwDesiredAccess, c_initialOwner, c_name);
-	if (c_handle == NULL) {
-	    RETURN(nil);
-	}
-	__externalAddressVal(handle) = c_handle;
-	RETURN(handle);
+        DWORD c_dwDesiredAccess = 0;
+        char *c_name;
+        BOOL c_initialOwner = (bInitialOwner == true);
+        HANDLE c_handle;
+
+        c_name = __stringVal(lpName);
+
+        if (dwDesiredAccess != nil) {
+            if (! __isSmallInteger(dwDesiredAccess)) {
+                goto badArg;
+            }
+            c_dwDesiredAccess = __intVal(dwDesiredAccess);
+        }
+        c_handle = OpenMutexA(c_dwDesiredAccess, c_initialOwner, c_name);
+        if (c_handle == NULL) {
+            RETURN(nil);
+        }
+        __externalAddressVal(handle) = c_handle;
+        RETURN(handle);
     }
     badArg: ;
 %}.
@@ -8719,11 +8718,11 @@
 %{
     if (__isExternalAddressLike(hMutex)
      || __isExternalBytesLike(hMutex) ) {
-	HANDLE _handle = _HANDLEVal(hMutex);
-	BOOL _ret;
-
-	_ret = ReleaseMutex(_handle);
-	RETURN(_ret == 0 ? false : true);
+        HANDLE _handle = _HANDLEVal(hMutex);
+        BOOL _ret;
+
+        _ret = ReleaseMutex(_handle);
+        RETURN(_ret == 0 ? false : true);
     }
 %}.
     "/ <apicall: bool "ReleaseMutex" (handle) module: "kernel32.dll" >
@@ -8739,15 +8738,15 @@
 %{
     if (__isExternalAddressLike(handle)
      || __isExternalBytesLike(handle) ) {
-	HANDLE _handle = _HANDLEVal(handle);
-
-	if (__isSmallInteger(dwMilliseconds)) {
-	    DWORD _millis = __intVal(dwMilliseconds);
-	    DWORD _ret;
-
-	    _ret = ReleaseMutex(_handle);
-	    RETURN( __mkSmallInteger(_ret));
-	}
+        HANDLE _handle = _HANDLEVal(handle);
+
+        if (__isSmallInteger(dwMilliseconds)) {
+            DWORD _millis = __intVal(dwMilliseconds);
+            DWORD _ret;
+
+            _ret = ReleaseMutex(_handle);
+            RETURN( __mkSmallInteger(_ret));
+        }
     }
 %}.
     "/ <apicall: dword "WaitForSingleObject" (handle dword) module: "kernel32.dll" >
@@ -8762,8 +8761,8 @@
     | released|
 
     hMutex isNil ifTrue:[
-	Transcript showCR: 'hMutex is nil - cannot release'.
-	^ false
+        Transcript showCR: 'hMutex is nil - cannot release'.
+        ^ false
     ].
     released := self primReleaseMutex: hMutex.
     released ifFalse:[Transcript showCR: 'Release Mutex failed'.].
@@ -8779,8 +8778,8 @@
 
     hMutex := self openMutexNamed: name.
     hMutex isNil ifTrue:[
-	Transcript showCR: 'Cannot release Mutex named: "', name printString,'"'.
-	^ false
+        Transcript showCR: 'Cannot release Mutex named: "', name printString,'"'.
+        ^ false
     ].
     ^ self releaseMutex: hMutex.
 
@@ -8813,39 +8812,39 @@
 %{
     if (__isString(aDirectoryPathName)
      && __isSmallInteger(changeFlags)) {
-	char *__dirName = __stringVal(aDirectoryPathName);
-	INT __flags = __intVal(changeFlags);
-	HANDLE __changeHandle;
-
-	__changeHandle = FindFirstChangeNotification(__dirName, FALSE, __flags);
-	if (__changeHandle == INVALID_HANDLE_VALUE) {
-	    console_printf("failed to create handle\n");
-	} else {
-	    __externalAddressVal(handle) = __changeHandle;
-	    RETURN (handle);
-	}
+        char *__dirName = __stringVal(aDirectoryPathName);
+        INT __flags = __intVal(changeFlags);
+        HANDLE __changeHandle;
+
+        __changeHandle = FindFirstChangeNotification(__dirName, FALSE, __flags);
+        if (__changeHandle == INVALID_HANDLE_VALUE) {
+            console_printf("failed to create handle\n");
+        } else {
+            __externalAddressVal(handle) = __changeHandle;
+            RETURN (handle);
+        }
     }
 %}.
     self primitiveFailed
 
     "
-	|h|
-
-	[
-	    h := OperatingSystem createChangeNotificationHandleFor:'.'
-		flags:(FILE_NOTIFY_CHANGE_FILE_NAME  |
-		       FILE_NOTIFY_CHANGE_DIR_NAME |
-		       FILE_NOTIFY_CHANGE_ATTRIBUTES |
-		       FILE_NOTIFY_CHANGE_SIZE |
-		       FILE_NOTIFY_CHANGE_LAST_WRITE).
-	    Transcript showCR:'waiting...'.
-	    OperatingSystem waitForSingleObject:h withTimeout:1000.
-	    Transcript showCR:'got a change...'.
-	    h close.
-	] fork.
-	Delay waitForSeconds:0.25.
-	Transcript showCR:'changing...'.
-	'./bla' asFilename contents:'hello'.
+        |h|
+
+        [
+            h := OperatingSystem createChangeNotificationHandleFor:'.'
+                flags:(FILE_NOTIFY_CHANGE_FILE_NAME  |
+                       FILE_NOTIFY_CHANGE_DIR_NAME |
+                       FILE_NOTIFY_CHANGE_ATTRIBUTES |
+                       FILE_NOTIFY_CHANGE_SIZE |
+                       FILE_NOTIFY_CHANGE_LAST_WRITE).
+            Transcript showCR:'waiting...'.
+            OperatingSystem waitForSingleObject:h withTimeout:1000.
+            Transcript showCR:'got a change...'.
+            h close.
+        ] fork.
+        Delay waitForSeconds:0.25.
+        Transcript showCR:'changing...'.
+        './bla' asFilename contents:'hello'.
 
     "
 ! !
@@ -8865,76 +8864,82 @@
 expandEnvironmentStrings:aString
     "expand the environmentStrings (e.g. %ProgramFiles%) in aString.
      Typical are:
-	HOMEDRIVE, HOMEPATH, JAVA_HOME, ProgramFiles, ProgramFiles(x86), TMP and TEMP"
-
-    |count resultString resultCount|
-
+        HOMEDRIVE, HOMEPATH, JAVA_HOME, ProgramFiles, ProgramFiles(x86), TMP and TEMP"
+
+    |count nullTerminatedUnicodeString resultString resultCount|
+
+    nullTerminatedUnicodeString := aString asUnicode16StringZ.
     count := aString size + 128.
     [
-	aString isWideString ifTrue:[
-	    resultString := Unicode16String new:count.
-	    resultCount := self primExpandEnvironmentStringsW:aString into:resultString size:count.
-	] ifFalse:[
-	    resultString := String new:count.
-	    resultCount := self primExpandEnvironmentStringsA:aString into:resultString size:count.
-	].
-	resultCount <= count ifTrue:[
-	    true
-	] ifFalse:[
-	    "resultString was too small. resultCount is the required buffer size"
-	    count := resultCount.
-	    false
-	].
+        "always use #primExpandEnvironmentStringsW.
+         We do not know in advance if the result will be unicode."
+        resultString := Unicode16String new:count.
+        resultCount := self primExpandEnvironmentStringsW:nullTerminatedUnicodeString into:resultString size:count.
+        resultCount <= count ifTrue:[
+            true
+        ] ifFalse:[
+            "resultString was too small. resultCount is the required buffer size"
+            count := resultCount.
+            false
+        ].
     ] whileFalse.
+
+    resultCount == 0 ifTrue:[
+        ^ ''.   "/ error
+    ].
+    aString isWideString ifFalse:[
+        resultString := resultString asSingleByteStringIfPossible.
+    ].
     ^ resultString copyTo:resultCount-1.
 
-
     "
      self expandEnvironmentStrings:'%ProgramFiles%\test\x'
      self expandEnvironmentStrings:'%ProgramFiles%\test\x' asUnicode16String
      self expandEnvironmentStrings:'%ProgramFiles%\nodejs'
      self expandEnvironmentStrings:'%HOMEDRIVE%%HOMEPATH%\test\x'
+     self expandEnvironmentStrings:'%ProgramData%\test\xkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEND'
+     self expandEnvironmentStrings:'%ProgramData%\test\xkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEND' asUnicodeString
     "
 !
 
 getDomainName
     "return the DNS domain this host is in.
      Notice:
-	not all systems support this; on some, 'unknown' is returned."
+        not all systems support this; on some, 'unknown' is returned."
 
     |domainName idx hostName|
 
     DomainName notNil ifTrue:[
-	^ DomainName
+        ^ DomainName
     ].
 
     "/ sometimes, we can extract the domainName from the hostName ...
     hostName := self getHostName.
     hostName notEmptyOrNil ifTrue:[
-	idx := hostName indexOf:$..
-	idx ~~ 0 ifTrue:[
-	    domainName := hostName copyFrom:idx+1.
-	]
+        idx := hostName indexOf:$..
+        idx ~~ 0 ifTrue:[
+            domainName := hostName copyFrom:idx+1.
+        ]
     ].
 
     domainName isNil ifTrue:[
-	domainName := self getEnvironment:'DOMAIN'.
-	domainName isNil ifTrue:[
-	    domainName := self getEnvironment:'DOMAINNAME'.
-	].
-
-	domainName isNil ifTrue:[
-	    "/ ok, search the registry ...
-	    "/ under NT and later, it is found there ...
-	    domainName := RegistryEntry
-			    key:'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'
-			    valueNamed:'Domain'.
-	].
-
-	domainName isNil ifTrue:[
-	    ^ 'unknown'.
-	].
-	DomainName := domainName.     "cache only, if it is fixed"
+        domainName := self getEnvironment:'DOMAIN'.
+        domainName isNil ifTrue:[
+            domainName := self getEnvironment:'DOMAINNAME'.
+        ].
+
+        domainName isNil ifTrue:[
+            "/ ok, search the registry ...
+            "/ under NT and later, it is found there ...
+            domainName := RegistryEntry
+                            key:'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'
+                            valueNamed:'Domain'.
+        ].
+
+        domainName isNil ifTrue:[
+            ^ 'unknown'.
+        ].
+        DomainName := domainName.     "cache only, if it is fixed"
     ].
     ^ domainName
 
@@ -8965,26 +8970,26 @@
 
     lpvEnv = GetEnvironmentStringsW();
     if (lpvEnv != NULL) {
-	static struct inlineCache add = _ILC1;
-	LPWSTR cp = lpvEnv;
-
-	while (*cp) {
-	    assocString = __MKU16STRING(cp);
-	    (*add.ilc_func)(strings, @symbol(add:), nil, &add, assocString);
-	    cp += wcslen(cp) + 1;
-	}
+        static struct inlineCache add = _ILC1;
+        LPWSTR cp = lpvEnv;
+
+        while (*cp) {
+            assocString = __MKU16STRING(cp);
+            (*add.ilc_func)(strings, @symbol(add:), nil, &add, assocString);
+            cp += wcslen(cp) + 1;
+        }
     }
 %}.
 
     envDict := Dictionary new.
     strings do:[:each |
-	|idx key value|
-
-	idx := each indexOf:$= startingAt:2.
-	self assert:(idx ~~ 0).
-	key := each copyTo:idx-1.
-	value := each copyFrom:idx+1.
-	envDict at:key put:value.
+        |idx key value|
+
+        idx := each indexOf:$= startingAt:2.
+        self assert:(idx ~~ 0).
+        key := each copyTo:idx-1.
+        value := each copyFrom:idx+1.
+        envDict at:key put:value.
     ].
     ^ envDict
 
@@ -9007,37 +9012,37 @@
     int i, len;
 
     if (__isStringLike(aStringOrSymbol)) {
-	len = __stringSize(aStringOrSymbol);
-	if (len >= ENV_BUFSIZE)
-	    goto badArgument;
-	for (i=0; i<len; i++) {
-	    _varName[i] = __stringVal(aStringOrSymbol)[i];
-	}
+        len = __stringSize(aStringOrSymbol);
+        if (len >= ENV_BUFSIZE)
+            goto badArgument;
+        for (i=0; i<len; i++) {
+            _varName[i] = __stringVal(aStringOrSymbol)[i];
+        }
     } else if (__isUnicode16String(aStringOrSymbol)) {
-	len = __unicode16StringSize(aStringOrSymbol);
-	if (len >= ENV_BUFSIZE)
-	    goto badArgument;
-	for (i=0; i<len; i++) {
-	    _varName[i] = __unicode16StringVal(aStringOrSymbol)[i];
-	}
+        len = __unicode16StringSize(aStringOrSymbol);
+        if (len >= ENV_BUFSIZE)
+            goto badArgument;
+        for (i=0; i<len; i++) {
+            _varName[i] = __unicode16StringVal(aStringOrSymbol)[i];
+        }
     } else {
-	goto badArgument;
+        goto badArgument;
     }
     _varName[len] = 0;
 
     nNeeded = GetEnvironmentVariableW(_varName, buff, ENV_BUFSIZE);
     // console_printf("getenv() -> %d\n", nNeeded);
     if (nNeeded > ENV_BUFSIZE) {
-	WCHAR *buff2;
-
-	buff2 = (WCHAR *)malloc((nNeeded+1) * sizeof(WCHAR));
-	nNeeded2 = GetEnvironmentVariableW(_varName, buff2, nNeeded);
-	// console_printf("getenv again -> %d\n", nNeeded2);
-	ret = __mkStringOrU16String_maxlen(buff2, nNeeded2);
-	free(buff2);
+        WCHAR *buff2;
+
+        buff2 = (WCHAR *)malloc((nNeeded+1) * sizeof(WCHAR));
+        nNeeded2 = GetEnvironmentVariableW(_varName, buff2, nNeeded);
+        // console_printf("getenv again -> %d\n", nNeeded2);
+        ret = __mkStringOrU16String_maxlen(buff2, nNeeded2);
+        free(buff2);
     } else if (nNeeded > 0) {
-	ret = __mkStringOrU16String_maxlen(buff, nNeeded);
-	// console_printf("getenv() -> %"_lx_"\n", (INT)ret);
+        ret = __mkStringOrU16String_maxlen(buff, nNeeded);
+        // console_printf("getenv() -> %"_lx_"\n", (INT)ret);
     }
     RETURN (ret);
 
@@ -9077,11 +9082,11 @@
     // Note: GetComputerNameExA can fail in certain locales!
 #if defined(__MINGW32__)
     if (GetComputerNameA(bufferA, &buffSize) == TRUE) {
-	RETURN(__MKSTRING_L(bufferA, buffSize));
+        RETURN(__MKSTRING_L(bufferA, buffSize));
     }
 #else
     if (GetComputerNameExW(ComputerNameDnsFullyQualified, buffer, &buffSize) == TRUE) {
-	RETURN(__mkStringOrU16String_maxlen(buffer, buffSize));
+        RETURN(__mkStringOrU16String_maxlen(buffer, buffSize));
     }
 #endif
 %}.
@@ -9099,14 +9104,14 @@
 
     lang := self getEnvironment:'LANG'.
     (lang isNil or:[lang = 'default']) ifTrue:[
-	"/ ok, search the registry ...
-	"/ under XP, it is found there ...
-	lang := RegistryEntry
-		    stringValueFor:'sLanguage'
-		    atKey:'HKEY_CURRENT_USER\Control Panel\International'.
-	lang notNil ifTrue:[
-	    lang := self mapLanguage:lang.
-	].
+        "/ ok, search the registry ...
+        "/ under XP, it is found there ...
+        lang := RegistryEntry
+                    stringValueFor:'sLanguage'
+                    atKey:'HKEY_CURRENT_USER\Control Panel\International'.
+        lang notNil ifTrue:[
+            lang := self mapLanguage:lang.
+        ].
     ].
     ^ lang
 
@@ -9120,28 +9125,28 @@
     "return a dictionary filled with values from the locale information;
      Not all fields may be present, depending on the OS's setup and capabilities.
      Possible fields are:
-	decimalPoint                    <String>
-	thousandsSep                    <String>
-	internationalCurrencySymbol     <String>
-	currencySymbol                  <String>
-	monetaryDecimalPoint            <String>
-	monetaryThousandsSeparator      <String>
-	positiveSign                    <String>
-	negativeSign                    <String>
-	internationalFractionalDigits   <Integer>
-	fractionalDigits                <Integer>
-	positiveSignPrecedesCurrencySymbol      <Boolean>
-	negativeSignPrecedesCurrencySymbol      <Boolean>
-	positiveSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
-	negativeSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
-	positiveSignPosition                            <Symbol>
-							one of: #parenthesesAround,
-								#signPrecedes,
-								#signSuceeds,
-								#signPrecedesCurrencySymbol,
-								#signSuceedsCurrencySymbol
-
-	negativeSignPosition                            <like above>
+        decimalPoint                    <String>
+        thousandsSep                    <String>
+        internationalCurrencySymbol     <String>
+        currencySymbol                  <String>
+        monetaryDecimalPoint            <String>
+        monetaryThousandsSeparator      <String>
+        positiveSign                    <String>
+        negativeSign                    <String>
+        internationalFractionalDigits   <Integer>
+        fractionalDigits                <Integer>
+        positiveSignPrecedesCurrencySymbol      <Boolean>
+        negativeSignPrecedesCurrencySymbol      <Boolean>
+        positiveSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
+        negativeSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
+        positiveSignPosition                            <Symbol>
+                                                        one of: #parenthesesAround,
+                                                                #signPrecedes,
+                                                                #signSuceeds,
+                                                                #signPrecedesCurrencySymbol,
+                                                                #signSuceedsCurrencySymbol
+
+        negativeSignPosition                            <like above>
 
      it is up to the application to deal with undefined values.
 
@@ -9152,9 +9157,9 @@
     |info val|
 
     LocaleInfo notNil ifTrue:[
-	"/ return the internal info; useful on systems which do not
-	"/ support this.
-	^ LocaleInfo
+        "/ return the internal info; useful on systems which do not
+        "/ support this.
+        ^ LocaleInfo
     ].
 
     info := IdentityDictionary new.
@@ -9175,31 +9180,31 @@
     int   csNegSepBySpace;      /* money: 1 if currency symbol should be separated by a space from a negative value; 0 if no space */
     int   csPosSignPosition;    /* money: 0: ()'s around the value & currency symbol */
     int   csNegSignPosition;    /*        1: sign precedes the value & currency symbol */
-				/*        2: sign succeeds the value & currency symbol */
-				/*        3: sign immediately precedes the currency symbol */
-				/*        4: sign immediately suceeds the currency symbol */
+                                /*        2: sign succeeds the value & currency symbol */
+                                /*        3: sign immediately precedes the currency symbol */
+                                /*        4: sign immediately suceeds the currency symbol */
 
 #if defined(HAS_LOCALECONV)
     struct lconv *conf;
 
     conf = localeconv();
     if (conf) {
-	decimalPoint = conf->decimal_point;
-	thousandsSep = conf->thousands_sep;
-	intCurrencySymbol = conf->int_curr_symbol;
-	currencySymbol = conf->currency_symbol;
-	monDecimalPoint = conf->mon_decimal_point;
-	monThousandsSep = conf->mon_thousands_sep;
-	positiveSign = conf->positive_sign;
-	negativeSign = conf->negative_sign;
-	intFractDigits = conf->int_frac_digits;
-	fractDigits = conf->frac_digits;
-	csPosPrecedes = conf->p_cs_precedes;
-	csNegPrecedes = conf->n_cs_precedes;
-	csPosSepBySpace = conf->p_sep_by_space;
-	csNegSepBySpace = conf->n_sep_by_space;
-	csPosSignPosition = conf->p_sign_posn;
-	csNegSignPosition = conf->n_sign_posn;
+        decimalPoint = conf->decimal_point;
+        thousandsSep = conf->thousands_sep;
+        intCurrencySymbol = conf->int_curr_symbol;
+        currencySymbol = conf->currency_symbol;
+        monDecimalPoint = conf->mon_decimal_point;
+        monThousandsSep = conf->mon_thousands_sep;
+        positiveSign = conf->positive_sign;
+        negativeSign = conf->negative_sign;
+        intFractDigits = conf->int_frac_digits;
+        fractDigits = conf->frac_digits;
+        csPosPrecedes = conf->p_cs_precedes;
+        csNegPrecedes = conf->n_cs_precedes;
+        csPosSepBySpace = conf->p_sep_by_space;
+        csNegSepBySpace = conf->n_sep_by_space;
+        csPosSignPosition = conf->p_sign_posn;
+        csNegSignPosition = conf->n_sign_posn;
     }
 #else
     decimalPoint = (char *)0;
@@ -9220,129 +9225,129 @@
     csNegSignPosition = -1;
 #endif
     if (decimalPoint) {
-	val = __MKSTRING(decimalPoint);
-	__AT_PUT_(info, @symbol(decimalPoint), val);
+        val = __MKSTRING(decimalPoint);
+        __AT_PUT_(info, @symbol(decimalPoint), val);
     }
     if (thousandsSep) {
-	val = __MKSTRING(thousandsSep);
-	__AT_PUT_(info, @symbol(thousandsSeparator), val);
+        val = __MKSTRING(thousandsSep);
+        __AT_PUT_(info, @symbol(thousandsSeparator), val);
     }
     if (intCurrencySymbol) {
-	val = __MKSTRING(intCurrencySymbol);
-	__AT_PUT_(info, @symbol(internationCurrencySymbol), val);
+        val = __MKSTRING(intCurrencySymbol);
+        __AT_PUT_(info, @symbol(internationCurrencySymbol), val);
     }
     if (currencySymbol) {
-	val = __MKSTRING(currencySymbol);
-	__AT_PUT_(info, @symbol(currencySymbol), val);
+        val = __MKSTRING(currencySymbol);
+        __AT_PUT_(info, @symbol(currencySymbol), val);
     }
     if (monDecimalPoint) {
-	val = __MKSTRING(monDecimalPoint);
-	__AT_PUT_(info, @symbol(monetaryDecimalPoint), val);
+        val = __MKSTRING(monDecimalPoint);
+        __AT_PUT_(info, @symbol(monetaryDecimalPoint), val);
     }
     if (monThousandsSep) {
-	val = __MKSTRING(monThousandsSep);
-	__AT_PUT_(info, @symbol(monetaryThousandsSeparator), val);
+        val = __MKSTRING(monThousandsSep);
+        __AT_PUT_(info, @symbol(monetaryThousandsSeparator), val);
     }
     if (positiveSign) {
-	val = __MKSTRING(positiveSign);
-	__AT_PUT_(info, @symbol(positiveSign), val);
+        val = __MKSTRING(positiveSign);
+        __AT_PUT_(info, @symbol(positiveSign), val);
     }
     if (negativeSign) {
-	val = __MKSTRING(negativeSign);
-	__AT_PUT_(info, @symbol(negativeSign), val);
+        val = __MKSTRING(negativeSign);
+        __AT_PUT_(info, @symbol(negativeSign), val);
     }
     if (intFractDigits >= 0) {
-	__AT_PUT_(info, @symbol(internationalFractionalDigits),  __mkSmallInteger(intFractDigits));
+        __AT_PUT_(info, @symbol(internationalFractionalDigits),  __mkSmallInteger(intFractDigits));
     }
     if (fractDigits >= 0) {
-	__AT_PUT_(info, @symbol(fractionalDigits),  __mkSmallInteger(fractDigits));
+        __AT_PUT_(info, @symbol(fractionalDigits),  __mkSmallInteger(fractDigits));
     }
     if (csPosPrecedes >= 0) {
-	if (csPosPrecedes == 0) {
-	    val = false;
-	} else {
-	    val = true;
-	}
-	__AT_PUT_(info, @symbol(positiveSignPrecedesCurrencySymbol), val );
+        if (csPosPrecedes == 0) {
+            val = false;
+        } else {
+            val = true;
+        }
+        __AT_PUT_(info, @symbol(positiveSignPrecedesCurrencySymbol), val );
     }
     if (csNegPrecedes >= 0) {
-	if (csNegPrecedes == 0) {
-	    val = false;
-	} else {
-	    val = true;
-	}
-	__AT_PUT_(info, @symbol(negativeSignPrecedesCurrencySymbol), val );
+        if (csNegPrecedes == 0) {
+            val = false;
+        } else {
+            val = true;
+        }
+        __AT_PUT_(info, @symbol(negativeSignPrecedesCurrencySymbol), val );
     }
     if (csPosSepBySpace >= 0) {
-	if (csPosSepBySpace == 0) {
-	    val = false;
-	} else {
-	    val = true;
-	}
-	__AT_PUT_(info, @symbol(positiveSignSeparatedBySpaceFromCurrencySymbol), val);
+        if (csPosSepBySpace == 0) {
+            val = false;
+        } else {
+            val = true;
+        }
+        __AT_PUT_(info, @symbol(positiveSignSeparatedBySpaceFromCurrencySymbol), val);
     }
     if (csNegSepBySpace >= 0) {
-	if (csNegSepBySpace == 0) {
-	    val = false;
-	} else {
-	    val = true;
-	}
-	__AT_PUT_(info, @symbol(negativeSignSeparatedBySpaceFromCurrencySymbol), val);
+        if (csNegSepBySpace == 0) {
+            val = false;
+        } else {
+            val = true;
+        }
+        __AT_PUT_(info, @symbol(negativeSignSeparatedBySpaceFromCurrencySymbol), val);
     }
     switch (csPosSignPosition) {
-	case 0:
-	    val = @symbol(parenthesesAround);
-	    break;
-
-	case 1:
-	    val = @symbol(signPrecedes);
-	    break;
-
-	case 2:
-	    val = @symbol(signSuceeds);
-	    break;
-
-	case 3:
-	    val = @symbol(signPrecedesCurrencySymbol);
-	    break;
-
-	case 4:
-	    val = @symbol(signSuceedsCurrencySymbol);
-	    break;
-
-	default:
-	    val = nil;
+        case 0:
+            val = @symbol(parenthesesAround);
+            break;
+
+        case 1:
+            val = @symbol(signPrecedes);
+            break;
+
+        case 2:
+            val = @symbol(signSuceeds);
+            break;
+
+        case 3:
+            val = @symbol(signPrecedesCurrencySymbol);
+            break;
+
+        case 4:
+            val = @symbol(signSuceedsCurrencySymbol);
+            break;
+
+        default:
+            val = nil;
     }
     if (val != nil) {
-	__AT_PUT_(info, @symbol(positiveSignPosition), val);
+        __AT_PUT_(info, @symbol(positiveSignPosition), val);
     }
 
     switch (csNegSignPosition) {
-	case 0:
-	    val = @symbol(parenthesesAround);
-	    break;
-
-	case 1:
-	    val = @symbol(signPrecedes);
-	    break;
-
-	case 2:
-	    val = @symbol(signSuceeds);
-	    break;
-
-	case 3:
-	    val = @symbol(signPrecedesCurrencySymbol);
-	    break;
-
-	case 4:
-	    val = @symbol(signSuceedsCurrencySymbol);
-	    break;
-
-	default:
-	    val = nil;
+        case 0:
+            val = @symbol(parenthesesAround);
+            break;
+
+        case 1:
+            val = @symbol(signPrecedes);
+            break;
+
+        case 2:
+            val = @symbol(signSuceeds);
+            break;
+
+        case 3:
+            val = @symbol(signPrecedesCurrencySymbol);
+            break;
+
+        case 4:
+            val = @symbol(signSuceedsCurrencySymbol);
+            break;
+
+        default:
+            val = nil;
     }
     if (val != nil) {
-	__AT_PUT_(info, @symbol(negativeSignPosition), val);
+        __AT_PUT_(info, @symbol(negativeSignPosition), val);
     }
 %}.
     ^ info
@@ -9356,8 +9361,8 @@
 
 getNetworkAddresses
     "return a dictionary filled with
-	key -> name of interface
-	value -> the network adsress (as SocketAddress)
+        key -> name of interface
+        value -> the network adsress (as SocketAddress)
      for each interface
     "
 
@@ -9378,21 +9383,21 @@
     DWORD dwStatus;
 
     dwStatus = GetAdaptersInfo(
-			    AdapterInfo,                 // [out] buffer to receive data
-			    &dwBufLen);                  // [in] size of receive data buffer
+                            AdapterInfo,                 // [out] buffer to receive data
+                            &dwBufLen);                  // [in] size of receive data buffer
     if (dwStatus == ERROR_SUCCESS) {
-	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
-	unsigned char *bP;
-	int nA = 0;
-
-	bP = __byteArrayVal(rawData);
-	do {
-	    name = __MKSTRING(pAdapterInfo->AdapterName);
-	    description = __MKSTRING(pAdapterInfo->Description);
-	    macAddress = __MKBYTEARRAY(pAdapterInfo->Address, 6);
-	    ipAddress = __MKSTRING(pAdapterInfo->IpAddressList.IpAddress.String);
-	    ipAddressMask = __MKSTRING(pAdapterInfo->IpAddressList.IpMask.String);
-	    entry = __ARRAY_NEW_INT(5);
+        PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
+        unsigned char *bP;
+        int nA = 0;
+
+        bP = __byteArrayVal(rawData);
+        do {
+            name = __MKSTRING(pAdapterInfo->AdapterName);
+            description = __MKSTRING(pAdapterInfo->Description);
+            macAddress = __MKBYTEARRAY(pAdapterInfo->Address, 6);
+            ipAddress = __MKSTRING(pAdapterInfo->IpAddressList.IpAddress.String);
+            ipAddressMask = __MKSTRING(pAdapterInfo->IpAddressList.IpMask.String);
+            entry = __ARRAY_NEW_INT(5);
 
 /*
  * back to ST/X's String definition
@@ -9403,35 +9408,35 @@
 # ifdef __DEF_String
 #  define Context __DEF_Context
 # endif
-	    __ArrayInstPtr(entry)->a_element[0] = name; __STORE(entry, name);
-	    __ArrayInstPtr(entry)->a_element[1] = description; __STORE(entry, description);
-	    __ArrayInstPtr(entry)->a_element[2] = macAddress; __STORE(entry, macAddress);
-	    __ArrayInstPtr(entry)->a_element[3] = ipAddress; __STORE(entry, ipAddress);
-	    __ArrayInstPtr(entry)->a_element[4] = ipAddressMask; __STORE(entry, ipAddressMask);
-
-	    __ArrayInstPtr(rawData)->a_element[nA] = entry; __STORE(rawData, entry);
-	    nA++;
-	    pAdapterInfo = pAdapterInfo->Next;
-	} while(pAdapterInfo);
-	nAdapters = __mkSmallInteger(nA);
+            __ArrayInstPtr(entry)->a_element[0] = name; __STORE(entry, name);
+            __ArrayInstPtr(entry)->a_element[1] = description; __STORE(entry, description);
+            __ArrayInstPtr(entry)->a_element[2] = macAddress; __STORE(entry, macAddress);
+            __ArrayInstPtr(entry)->a_element[3] = ipAddress; __STORE(entry, ipAddress);
+            __ArrayInstPtr(entry)->a_element[4] = ipAddressMask; __STORE(entry, ipAddressMask);
+
+            __ArrayInstPtr(rawData)->a_element[nA] = entry; __STORE(rawData, entry);
+            nA++;
+            pAdapterInfo = pAdapterInfo->Next;
+        } while(pAdapterInfo);
+        nAdapters = __mkSmallInteger(nA);
     }
 %}.
     "Keep the order as returned by the OS"
     info := OrderedDictionary new:nAdapters ? 0.
     nAdapters notNil ifTrue:[
-	1 to:nAdapters do:[:i |
-	    |entry name description macAddr ipAddr|
-
-	    entry := rawData at:i.
-	    name := entry at:1.
-	    "/ description := entry at:2.
-	    ipAddr := entry at:4.
-	    ipAddr := IPSocketAddress addressString:ipAddr.
-	    "take the first name"
-	    (ipAddr hostAddress contains:[:b| b ~~ 0]) ifTrue:[
-		info at:name ifAbsentPut:ipAddr.
-	    ]
-	].
+        1 to:nAdapters do:[:i |
+            |entry name description macAddr ipAddr|
+
+            entry := rawData at:i.
+            name := entry at:1.
+            "/ description := entry at:2.
+            ipAddr := entry at:4.
+            ipAddr := IPSocketAddress addressString:ipAddr.
+            "take the first name"
+            (ipAddr hostAddress contains:[:b| b ~~ 0]) ifTrue:[
+                info at:name ifAbsentPut:ipAddr.
+            ]
+        ].
     ].
     ^ info
 
@@ -9442,8 +9447,8 @@
 
 getNetworkMACAddresses
     "return a dictionary filled with
-	key -> name of interface
-	value -> the MAC adress (as ByteArray)
+        key -> name of interface
+        value -> the MAC adress (as ByteArray)
      for each interface
     "
 
@@ -9464,21 +9469,21 @@
     DWORD dwStatus;
 
     dwStatus = GetAdaptersInfo(
-			    AdapterInfo,                 // [out] buffer to receive data
-			    &dwBufLen);                  // [in] size of receive data buffer
+                            AdapterInfo,                 // [out] buffer to receive data
+                            &dwBufLen);                  // [in] size of receive data buffer
     if (dwStatus == ERROR_SUCCESS) {
-	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
-	unsigned char *bP;
-	int nA = 0;
-
-	bP = __byteArrayVal(rawData);
-	do {
-	    name = __MKSTRING(pAdapterInfo->AdapterName);
-	    description = __MKSTRING(pAdapterInfo->Description);
-	    macAddress = __MKBYTEARRAY(pAdapterInfo->Address, 6);
-	    ipAddress = __MKSTRING(pAdapterInfo->IpAddressList.IpAddress.String);
-	    ipAddressMask = __MKSTRING(pAdapterInfo->IpAddressList.IpMask.String);
-	    entry = __ARRAY_NEW_INT(5);
+        PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
+        unsigned char *bP;
+        int nA = 0;
+
+        bP = __byteArrayVal(rawData);
+        do {
+            name = __MKSTRING(pAdapterInfo->AdapterName);
+            description = __MKSTRING(pAdapterInfo->Description);
+            macAddress = __MKBYTEARRAY(pAdapterInfo->Address, 6);
+            ipAddress = __MKSTRING(pAdapterInfo->IpAddressList.IpAddress.String);
+            ipAddressMask = __MKSTRING(pAdapterInfo->IpAddressList.IpMask.String);
+            entry = __ARRAY_NEW_INT(5);
 
 /*
  * back to ST/X's String definition
@@ -9489,32 +9494,32 @@
 # ifdef __DEF_String
 #  define Context __DEF_Context
 # endif
-	    __ArrayInstPtr(entry)->a_element[0] = name; __STORE(entry, name);
-	    __ArrayInstPtr(entry)->a_element[1] = description; __STORE(entry, description);
-	    __ArrayInstPtr(entry)->a_element[2] = macAddress; __STORE(entry, macAddress);
-	    __ArrayInstPtr(entry)->a_element[3] = ipAddress; __STORE(entry, ipAddress);
-	    __ArrayInstPtr(entry)->a_element[4] = ipAddressMask; __STORE(entry, ipAddressMask);
-
-	    __ArrayInstPtr(rawData)->a_element[nA] = entry; __STORE(rawData, entry);
-	    nA++;
-	    pAdapterInfo = pAdapterInfo->Next;
-	} while(pAdapterInfo);
-	nAdapters = __mkSmallInteger(nA);
+            __ArrayInstPtr(entry)->a_element[0] = name; __STORE(entry, name);
+            __ArrayInstPtr(entry)->a_element[1] = description; __STORE(entry, description);
+            __ArrayInstPtr(entry)->a_element[2] = macAddress; __STORE(entry, macAddress);
+            __ArrayInstPtr(entry)->a_element[3] = ipAddress; __STORE(entry, ipAddress);
+            __ArrayInstPtr(entry)->a_element[4] = ipAddressMask; __STORE(entry, ipAddressMask);
+
+            __ArrayInstPtr(rawData)->a_element[nA] = entry; __STORE(rawData, entry);
+            nA++;
+            pAdapterInfo = pAdapterInfo->Next;
+        } while(pAdapterInfo);
+        nAdapters = __mkSmallInteger(nA);
     }
 %}.
     "Keep the order as reurned by the OS"
     info := OrderedDictionary new:nAdapters ? 0.
     nAdapters notNil ifTrue:[
-	1 to:nAdapters do:[:i |
-	    |entry name description macAddr ipAddr|
-
-	    entry := rawData at:i.
-	    name := entry at:1.
-	    "/ description := entry at:2.
-	    macAddr := entry at:3.
-	    "/ ipAddr := entry at:4.
-	    info at:name put:macAddr.
-	].
+        1 to:nAdapters do:[:i |
+            |entry name description macAddr ipAddr|
+
+            entry := rawData at:i.
+            name := entry at:1.
+            "/ description := entry at:2.
+            macAddr := entry at:3.
+            "/ ipAddr := entry at:4.
+            info at:name put:macAddr.
+        ].
     ].
     ^ info
 
@@ -9527,14 +9532,14 @@
     "answer the number of physical processors in the system"
 
 %{
-	SYSTEM_INFO sInfo;
-	GetSystemInfo(&sInfo);
-
-	return __mkSmallInteger(sInfo.dwNumberOfProcessors);
-%}.
-
-    "
-	self getNumberOfProcessors
+        SYSTEM_INFO sInfo;
+        GetSystemInfo(&sInfo);
+
+        return __mkSmallInteger(sInfo.dwNumberOfProcessors);
+%}.
+
+    "
+        self getNumberOfProcessors
     "
 !
 
@@ -9560,7 +9565,7 @@
     "if supported by the OS, return the systemID;
      a unique per machine identification.
      WARNING:
-	not all systems support this; on some, 'unknown' is returned."
+        not all systems support this; on some, 'unknown' is returned."
 
     |regKey systemId|
 
@@ -9576,32 +9581,32 @@
 #endif
 #if defined(HAS_SYSINFO) && defined(SI_HW_SERIAL)
     {
-	char buffer[128];
-
-	buffer[0] = 0;
-	if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
-	    buffer[127] = 0;
-	    if (strlen(buffer) > 0) {
-		RETURN(__MKSTRING(buffer));
-	    }
-	}
+        char buffer[128];
+
+        buffer[0] = 0;
+        if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
+            buffer[127] = 0;
+            if (strlen(buffer) > 0) {
+                RETURN(__MKSTRING(buffer));
+            }
+        }
     }
 #endif
 %}.
 
     regKey := self registryEntry
-	key:'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'.
+        key:'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'.
 
     regKey notNil ifTrue:[
-	systemId := regKey valueNamed:'ProductId'.
-	systemId isNil ifTrue:[
-	    regKey close.
-	    regKey := self registryEntry
-		key:'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
-		flags:#KEY_WOW64_64KEY createIfAbsent:false.
-	    systemId := regKey valueNamed:'ProductId'.
-	].
-	regKey close.
+        systemId := regKey valueNamed:'ProductId'.
+        systemId isNil ifTrue:[
+            regKey close.
+            regKey := self registryEntry
+                key:'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
+                flags:#KEY_WOW64_64KEY createIfAbsent:false.
+            systemId := regKey valueNamed:'ProductId'.
+        ].
+        regKey close.
     ].
 
     ^ systemId ? 'unknown'
@@ -9626,25 +9631,25 @@
        This method is mainly provided to augment error reports with some system
        information.
        (in case of system/version specific OS errors, conditional workarounds and patches
-	may be based upon this info).
+        may be based upon this info).
        Your application should NOT depend upon this in any way.
 
      The returned info may (or may not) contain:
-	#system -> some operating system identification (irix, Linux, nt, win32s ...)
-	#version -> OS version (some os version identification)
-	#release -> OS release (3.5, 1.2.1 ...)
-	#node   -> some host identification (hostname)
-	#domain  -> domain name (hosts domain)
-	#machine -> type of machine (i586, mips ...)
+        #system -> some operating system identification (irix, Linux, nt, win32s ...)
+        #version -> OS version (some os version identification)
+        #release -> OS release (3.5, 1.2.1 ...)
+        #node   -> some host identification (hostname)
+        #domain  -> domain name (hosts domain)
+        #machine -> type of machine (i586, mips ...)
 
      win32:
-	#physicalRam -> total amount of physical memory
-	#freeRam -> amount of free memory
-	#swapSize -> size of swapSpace (page file)
-	#freeSwap -> free bytes in swapSpace
-	#virtualRam -> total amount of virtual memory
-	#freeVirtual -> amount of free virtual memory
-	#memoryLoad -> percentage of memory usage (useless)
+        #physicalRam -> total amount of physical memory
+        #freeRam -> amount of free memory
+        #swapSize -> size of swapSpace (page file)
+        #freeSwap -> free bytes in swapSpace
+        #virtualRam -> total amount of virtual memory
+        #freeVirtual -> amount of free virtual memory
+        #memoryLoad -> percentage of memory usage (useless)
     "
 
     |sys node rel ver minorVer majorVer mach dom info arch
@@ -9695,211 +9700,211 @@
 #endif
     {
 #ifdef PROCESSOR_ARCHITECTURE_INTEL
-	case PROCESSOR_ARCHITECTURE_INTEL:
-	    arch = @symbol(intel);
-	    break;
+        case PROCESSOR_ARCHITECTURE_INTEL:
+            arch = @symbol(intel);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_AMD64
-	case PROCESSOR_ARCHITECTURE_AMD64:
-	    arch = @symbol(x64);
-	    break;
+        case PROCESSOR_ARCHITECTURE_AMD64:
+            arch = @symbol(x64);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_MIPS
-	case PROCESSOR_ARCHITECTURE_MIPS:
-	    arch = @symbol(mips);
-	    break;
+        case PROCESSOR_ARCHITECTURE_MIPS:
+            arch = @symbol(mips);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_ALPHA
-	case PROCESSOR_ARCHITECTURE_ALPHA:
-	    arch = @symbol(alpha);
-	    break;
+        case PROCESSOR_ARCHITECTURE_ALPHA:
+            arch = @symbol(alpha);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_ALPHA64
-	case PROCESSOR_ARCHITECTURE_ALPHA64:
-	    arch = @symbol(alpha64);
-	    break;
+        case PROCESSOR_ARCHITECTURE_ALPHA64:
+            arch = @symbol(alpha64);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_PPC
-	case PROCESSOR_ARCHITECTURE_PPC:
-	    arch = @symbol(ppc);
-	    break;
+        case PROCESSOR_ARCHITECTURE_PPC:
+            arch = @symbol(ppc);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_ARM
-	case PROCESSOR_ARCHITECTURE_ARM:
-	    arch = @symbol(arm);
-	    break;
+        case PROCESSOR_ARCHITECTURE_ARM:
+            arch = @symbol(arm);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_ARM64
-	case PROCESSOR_ARCHITECTURE_ARM64:
-	    arch = @symbol(arm64);
-	    break;
+        case PROCESSOR_ARCHITECTURE_ARM64:
+            arch = @symbol(arm64);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_SHX
-	case PROCESSOR_ARCHITECTURE_SHX:
-	    arch = @symbol(shx);
-	    break;
+        case PROCESSOR_ARCHITECTURE_SHX:
+            arch = @symbol(shx);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_IA64
-	case PROCESSOR_ARCHITECTURE_IA64:
-	    arch = @symbol(ia64);
-	    break;
+        case PROCESSOR_ARCHITECTURE_IA64:
+            arch = @symbol(ia64);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_MSIL
-	case PROCESSOR_ARCHITECTURE_MSIL:
-	    arch = @symbol(msil);
-	    break;
+        case PROCESSOR_ARCHITECTURE_MSIL:
+            arch = @symbol(msil);
+            break;
 #endif
 #ifdef PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
-	case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
-	    arch = @symbol(ia32_on_win64);
-	    break;
-#endif
-	default:
-	    arch = @symbol(unknown);
-	    break;
+        case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
+            arch = @symbol(ia32_on_win64);
+            break;
+#endif
+        default:
+            arch = @symbol(unknown);
+            break;
     }
 
     switch (sysInfo.dwProcessorType) {
 #ifdef PROCESSOR_INTEL_386
-	case PROCESSOR_INTEL_386:
-	    mach = @symbol(i386);
-	    break;
+        case PROCESSOR_INTEL_386:
+            mach = @symbol(i386);
+            break;
 #endif
 #ifdef PROCESSOR_INTEL_486
-	case PROCESSOR_INTEL_486:
-	    mach = @symbol(i486);
-	    break;
+        case PROCESSOR_INTEL_486:
+            mach = @symbol(i486);
+            break;
 #endif
 #ifdef PROCESSOR_INTEL_PENTIUM
-	case PROCESSOR_INTEL_PENTIUM:
-	    mach = @symbol(i586);
-	    break;
+        case PROCESSOR_INTEL_PENTIUM:
+            mach = @symbol(i586);
+            break;
 #endif
 #ifdef PROCESSOR_INTEL_860
-	case PROCESSOR_INTEL_860:
-	    mach = @symbol(i860);
-	    break;
+        case PROCESSOR_INTEL_860:
+            mach = @symbol(i860);
+            break;
 #endif
 #ifdef PROCESSOR_INTEL_IA64
-	case PROCESSOR_INTEL_IA64:
-	    mach = @symbol(ia64);
-	    break;
+        case PROCESSOR_INTEL_IA64:
+            mach = @symbol(ia64);
+            break;
 #endif
 #ifdef PROCESSOR_AMD_X8664
-	case PROCESSOR_AMD_X8664:
-	    mach = @symbol(x86_64);
-	    break;
+        case PROCESSOR_AMD_X8664:
+            mach = @symbol(x86_64);
+            break;
 #endif
 #ifdef PROCESSOR_MIPS_R2000
-	case PROCESSOR_MIPS_R2000:
-	    mach = @symbol(r2000);
-	    break;
+        case PROCESSOR_MIPS_R2000:
+            mach = @symbol(r2000);
+            break;
 #endif
 #ifdef PROCESSOR_MIPS_R3000
-	case PROCESSOR_MIPS_R3000:
-	    mach = @symbol(r3000);
-	    break;
+        case PROCESSOR_MIPS_R3000:
+            mach = @symbol(r3000);
+            break;
 #endif
 #ifdef PROCESSOR_MIPS_R4000
-	case PROCESSOR_MIPS_R4000:
-	    mach = @symbol(r4000);
-	    break;
+        case PROCESSOR_MIPS_R4000:
+            mach = @symbol(r4000);
+            break;
 #endif
 #ifdef PROCESSOR_ALPHA_21064
-	case PROCESSOR_ALPHA_21064:
-	    mach = @symbol(alpha21064);
-	    break;
+        case PROCESSOR_ALPHA_21064:
+            mach = @symbol(alpha21064);
+            break;
 #endif
 #ifdef PROCESSOR_ARM720
-	case PROCESSOR_ARM720:
-	    mach = @symbol(arm720);
-	    break;
+        case PROCESSOR_ARM720:
+            mach = @symbol(arm720);
+            break;
 #endif
 #ifdef PROCESSOR_ARM820
-	case PROCESSOR_ARM820:
-	    mach = @symbol(arm820);
-	    break;
+        case PROCESSOR_ARM820:
+            mach = @symbol(arm820);
+            break;
 #endif
 #ifdef PROCESSOR_ARM920
-	case PROCESSOR_ARM920:
-	    mach = @symbol(arm920);
-	    break;
+        case PROCESSOR_ARM920:
+            mach = @symbol(arm920);
+            break;
 #endif
 #ifdef PROCESSOR_ARM_7TDMI
-	case PROCESSOR_ARM_7TDMI:
-	    mach = @symbol(arm70001);
-	    break;
+        case PROCESSOR_ARM_7TDMI:
+            mach = @symbol(arm70001);
+            break;
 #endif
 #ifdef PROCESSOR_STRONGARM
-	case PROCESSOR_STRONGARM:
-	    mach = @symbol(strongarm);
-	    break;
+        case PROCESSOR_STRONGARM:
+            mach = @symbol(strongarm);
+            break;
 #endif
 #ifdef PROCESSOR_PPC_601
-	case PROCESSOR_PPC_601:
-	    mach = @symbol(ppc601);
-	    break;
+        case PROCESSOR_PPC_601:
+            mach = @symbol(ppc601);
+            break;
 #endif
 #ifdef PROCESSOR_PPC_603
-	case PROCESSOR_PPC_603:
-	    mach = @symbol(ppc603);
-	    break;
+        case PROCESSOR_PPC_603:
+            mach = @symbol(ppc603);
+            break;
 #endif
 #ifdef PROCESSOR_PPC_604
-	case PROCESSOR_PPC_604:
-	    mach = @symbol(ppc604);
-	    break;
+        case PROCESSOR_PPC_604:
+            mach = @symbol(ppc604);
+            break;
 #endif
 #ifdef PROCESSOR_PPC_620
-	case PROCESSOR_PPC_620:
-	    mach = @symbol(ppc620);
-	    break;
+        case PROCESSOR_PPC_620:
+            mach = @symbol(ppc620);
+            break;
 #endif
 #ifdef PROCESSOR_HITACHI_SH3
-	case PROCESSOR_HITACHI_SH3:
-	    mach = @symbol(sh3);
-	    break;
+        case PROCESSOR_HITACHI_SH3:
+            mach = @symbol(sh3);
+            break;
 #endif
 #ifdef PROCESSOR_HITACHI_SH3E
-	case PROCESSOR_HITACHI_SH3E:
-	    mach = @symbol(sh3e);
-	    break;
+        case PROCESSOR_HITACHI_SH3E:
+            mach = @symbol(sh3e);
+            break;
 #endif
 #ifdef PROCESSOR_HITACHI_SH4
-	case PROCESSOR_HITACHI_SH4:
-	    mach = @symbol(sh4);
-	    break;
+        case PROCESSOR_HITACHI_SH4:
+            mach = @symbol(sh4);
+            break;
 #endif
 #ifdef PROCESSOR_MOTOROLA_821
-	case PROCESSOR_MOTOROLA_821:
-	    mach = @symbol(mc821);
-	    break;
+        case PROCESSOR_MOTOROLA_821:
+            mach = @symbol(mc821);
+            break;
 #endif
 #ifdef PROCESSOR_SHx_SH3
-	case PROCESSOR_SHx_SH3:
-	    mach = @symbol(shx_sh3);
-	    break;
+        case PROCESSOR_SHx_SH3:
+            mach = @symbol(shx_sh3);
+            break;
 #endif
 #ifdef PROCESSOR_SHx_SH4
-	case PROCESSOR_SHx_SH4:
-	    mach = @symbol(shx_sh4);
-	    break;
-#endif
-
-	default:
-	    sprintf(vsnBuffer, "%d", sysInfo.dwProcessorType);
-	    mach =  __MKSTRING(vsnBuffer);
-	    break;
+        case PROCESSOR_SHx_SH4:
+            mach = @symbol(shx_sh4);
+            break;
+#endif
+
+        default:
+            sprintf(vsnBuffer, "%d", sysInfo.dwProcessorType);
+            mach =  __MKSTRING(vsnBuffer);
+            break;
     }
 
     pageSize = __MKUINT(sysInfo.dwPageSize);
     numberOfCPUs = __MKUINT(sysInfo.dwNumberOfProcessors);
 %}.
     node isNil ifTrue:[
-	node := self getHostName.
+        node := self getHostName.
     ].
     dom isNil ifTrue:[
-	dom := self getDomainName.
+        dom := self getDomainName.
     ].
 
     info := IdentityDictionary new.
@@ -9972,7 +9977,7 @@
     wchar_t buffer[MAXPATHLEN+1];
 
     if (GetWindowsDirectoryW(buffer, MAXPATHLEN)) {
-	RETURN (__mkStringOrU16String_maxlen(buffer, MAXPATHLEN));
+        RETURN (__mkStringOrU16String_maxlen(buffer, MAXPATHLEN));
     }
 %}.
     ^ nil
@@ -9993,7 +9998,7 @@
     wchar_t buffer[MAXPATHLEN+1];
 
     if (GetSystemDirectoryW(buffer, MAXPATHLEN)) {
-	RETURN (__mkStringOrU16String_maxlen(buffer, MAXPATHLEN));
+        RETURN (__mkStringOrU16String_maxlen(buffer, MAXPATHLEN));
     }
 %}.
     ^ nil
@@ -10055,45 +10060,45 @@
     DWORD exitCode;
 
     if (__isExternalAddressLike(processHandleOrPid) ) {
-	processHandle = _HANDLEVal(processHandleOrPid);
-	if (processHandle == 0) {
-	    RETURN(false);
-	    // error = @symbol(invalidParameter);
-	    // goto out;
-	}
+        processHandle = _HANDLEVal(processHandleOrPid);
+        if (processHandle == 0) {
+            RETURN(false);
+            // error = @symbol(invalidParameter);
+            // goto out;
+        }
     } else if( __isSmallInteger(processHandleOrPid) ) {
-	// assume, that synchronize needs less privilege...
-	processHandle = processHandleToClose = OpenProcess(SYNCHRONIZE, FALSE, __smallIntegerVal(processHandleOrPid));
-	if (!processHandle) {
-	    goto checkError;
-	}
+        // assume, that synchronize needs less privilege...
+        processHandle = processHandleToClose = OpenProcess(SYNCHRONIZE, FALSE, __smallIntegerVal(processHandleOrPid));
+        if (!processHandle) {
+            goto checkError;
+        }
     } else {
-	error = @symbol(invalidParameter);
-	goto out;
+        error = @symbol(invalidParameter);
+        goto out;
     }
 
     /* check if the handle still refers to a running process */
     if (GetExitCodeProcess(processHandle, &exitCode) != 0) {
-	if (processHandleToClose != 0)
-	    CloseHandle(processHandleToClose);
-	if (exitCode == STILL_ACTIVE) {
-	    RETURN(true);
-	} else {
-	    RETURN(false);
-	}
+        if (processHandleToClose != 0)
+            CloseHandle(processHandleToClose);
+        if (exitCode == STILL_ACTIVE) {
+            RETURN(true);
+        } else {
+            RETURN(false);
+        }
     } else if (processHandleToClose != 0) {
-	CloseHandle(processHandleToClose);
+        CloseHandle(processHandleToClose);
     }
 
 checkError:
     err = GetLastError();
     // we do not have access to the process (so pid does exist ;-))
     if (err == ERROR_ACCESS_DENIED) {
-	RETURN(true);
+        RETURN(true);
     }
     // pid does not exist
     if (err == ERROR_INVALID_PARAMETER) {
-	RETURN(false);
+        RETURN(false);
     }
 
     // any other error - raise signal
@@ -10181,11 +10186,11 @@
 maxFileNameLength
     "return the max number of characters in a filename.
      CAVEAT:
-	 Actually, the following is somewhat wrong - some systems
-	 support different sizes, depending on the volume.
-	 We return a somewhat conservative number here.
-	 Another entry, to query for volume specific max
-	 will be added in the future."
+         Actually, the following is somewhat wrong - some systems
+         support different sizes, depending on the volume.
+         We return a somewhat conservative number here.
+         Another entry, to query for volume specific max
+         will be added in the future."
 
 %{  /* NOCONTEXT */
 
@@ -10218,9 +10223,9 @@
 
     osVersion := OperatingSystem osVersion.
     ^ 'Windows ',
-	(#('2000' 'XP' 'Server2003' 'VISTA' '7' '8' '8.1' '10')
-	    at: (#('5.0' '5.1' '5.2' '6.0' '6.1' '6.2' '6.3' '10.0') indexOf:osVersion)
-	    ifAbsent:osVersion).
+        (#('2000' 'XP' 'Server2003' 'VISTA' '7' '8' '8.1' '10')
+            at: (#('5.0' '5.1' '5.2' '6.0' '6.1' '6.2' '6.3' '10.0') indexOf:osVersion)
+            ifAbsent:osVersion).
 
     "
      self osName
@@ -10261,11 +10266,11 @@
 
 randomBytesInto:bufferOrInteger
     "If bufferOrInteger is a String or a ByteArray,
-	fill a given buffer with random bytes from the RtlGenRandom function
-	and answer the buffer.
+        fill a given buffer with random bytes from the RtlGenRandom function
+        and answer the buffer.
 
      If bufferOrInteger is a SmallInteger,
-	return this many bytes (max 4 for 32-bit ST or 8 for 64-bit ST) as a SmallInteger.
+        return this many bytes (max 4 for 32-bit ST or 8 for 64-bit ST) as a SmallInteger.
 
      Return nil on error (and raise PrimitiveFailure).
 
@@ -10283,39 +10288,39 @@
     unsigned INT __localBuffer = 0;
 
     if (__isSmallInteger(bufferOrInteger)) {
-	__useLocalBuffer = 1;
-	__buffer = (unsigned char *)&__localBuffer;
-	__bufferSize = __smallIntegerVal(bufferOrInteger);
-	if (__bufferSize > sizeof(INT))
-	    __bufferSize = sizeof(INT);
+        __useLocalBuffer = 1;
+        __buffer = (unsigned char *)&__localBuffer;
+        __bufferSize = __smallIntegerVal(bufferOrInteger);
+        if (__bufferSize > sizeof(INT))
+            __bufferSize = sizeof(INT);
     } else if (__isString(bufferOrInteger)) {
-	__buffer = __stringVal(bufferOrInteger);
-	__bufferSize = __stringSize(bufferOrInteger);
+        __buffer = __stringVal(bufferOrInteger);
+        __bufferSize = __stringSize(bufferOrInteger);
     } else if (__isByteArray(bufferOrInteger)) {
-	__buffer = __byteArrayVal(bufferOrInteger);
-	__bufferSize = __byteArraySize(bufferOrInteger);
+        __buffer = __byteArrayVal(bufferOrInteger);
+        __bufferSize = __byteArraySize(bufferOrInteger);
     } else {
-	goto error;
+        goto error;
     }
 
     if (P_RtlGenRandom == 0) {
-	HINSTANCE hAdvapi32 = LoadLibrary("advapi32.dll");
-	// console_printf("hAdvapi32: %x\n", hAdvapi32);
-	if (hAdvapi32) {
-	    P_RtlGenRandom = (BOOL (__stdcall *)(PVOID , ULONG))
-				GetProcAddress(hAdvapi32,
-				"SystemFunction036");
-	    // console_printf("P_RtlGenRandom: %x\n", P_RtlGenRandom);
-	    if (P_RtlGenRandom == 0) {
-		goto error;
-	    }
-	}
+        HINSTANCE hAdvapi32 = LoadLibrary("advapi32.dll");
+        // console_printf("hAdvapi32: %x\n", hAdvapi32);
+        if (hAdvapi32) {
+            P_RtlGenRandom = (BOOL (__stdcall *)(PVOID , ULONG))
+                                GetProcAddress(hAdvapi32,
+                                "SystemFunction036");
+            // console_printf("P_RtlGenRandom: %x\n", P_RtlGenRandom);
+            if (P_RtlGenRandom == 0) {
+                goto error;
+            }
+        }
     }
     if ((*P_RtlGenRandom)(__buffer, __bufferSize)) {
-	if (__useLocalBuffer) {
-	    RETURN(__mkSmallInteger(__localBuffer & _MAX_INT));
-	}
-	RETURN (bufferOrInteger);
+        if (__useLocalBuffer) {
+            RETURN(__mkSmallInteger(__localBuffer & _MAX_INT));
+        }
+        RETURN (bufferOrInteger);
     }
 error: ;
 %}.
@@ -10341,9 +10346,9 @@
 
     if (__isStringLike(aStringOrSymbol)
      && __isStringLike(newValueString) ) {
-	if (SetEnvironmentVariable(__stringVal(aStringOrSymbol), __stringVal(newValueString)) != 0) {
-	    RETURN(self);
-	}
+        if (SetEnvironmentVariable(__stringVal(aStringOrSymbol), __stringVal(newValueString)) != 0) {
+            RETURN(self);
+        }
     }
 %}.
     self primitiveFailed
@@ -10464,25 +10469,25 @@
     int nProcSpace = 512;
 
     while (moreNeeded) {
-	processes = (DWORD*)malloc(nProcSpace*sizeof(DWORD));
-	if (! EnumProcesses( processes, (nProcSpace*sizeof(DWORD)), &cbNeeded ) ) {
-	    goto failed;
-	}
-	moreNeeded = (cbNeeded == (nProcSpace*sizeof(DWORD)));
-	if (moreNeeded) {
-	    // returned exactly the size I gave it; maybe there are more
-	    nProcSpace *= 2;
-	    free (processes);
-	}
+        processes = (DWORD*)malloc(nProcSpace*sizeof(DWORD));
+        if (! EnumProcesses( processes, (nProcSpace*sizeof(DWORD)), &cbNeeded ) ) {
+            goto failed;
+        }
+        moreNeeded = (cbNeeded == (nProcSpace*sizeof(DWORD)));
+        if (moreNeeded) {
+            // returned exactly the size I gave it; maybe there are more
+            nProcSpace *= 2;
+            free (processes);
+        }
     }
     // Calculate how many process identifiers were returned.
     nProcesses = cbNeeded / sizeof(DWORD);
     pidArray = __ARRAY_NEW_INT(nProcesses);
     if (pidArray != nil) {
-	for (i=0; i<nProcesses; i++) {
-	    __ArrayInstPtr(pidArray)->a_element[i] = __mkSmallInteger(processes[i]);
-	}
-	RETURN ( pidArray );
+        for (i=0; i<nProcesses; i++) {
+            __ArrayInstPtr(pidArray)->a_element[i] = __mkSmallInteger(processes[i]);
+        }
+        RETURN ( pidArray );
     }
 failed: ;
 #endif
@@ -10498,13 +10503,13 @@
     pPath := super defaultPackagePath.
     pkgDirPath := self stxPackageDirPath.
     pkgDirPath notNil ifTrue:[
-	"/ and also add the packageDirPath from the registry ...
-	dirs := pkgDirPath asCollectionOfSubstringsSeparatedBy:$;.
-	dirs do:[:aDir |
-	    (pPath includes:aDir) ifFalse:[
-		pPath add:aDir.
-	    ]
-	]
+        "/ and also add the packageDirPath from the registry ...
+        dirs := pkgDirPath asCollectionOfSubstringsSeparatedBy:$;.
+        dirs do:[:aDir |
+            (pPath includes:aDir) ifFalse:[
+                pPath add:aDir.
+            ]
+        ]
     ] ifFalse:[
 "/        #(
 "/            '\smalltalk'
@@ -10527,10 +10532,10 @@
     "/ under windows, the commandName includes the path - good.
     p := Smalltalk commandName.
     p notNil ifTrue:[
-	p := p asFilename directory constructString:'packages'.
-	(pPath includes:p) ifFalse:[
-	    pPath add:p.
-	]
+        p := p asFilename directory constructString:'packages'.
+        (pPath includes:p) ifFalse:[
+            pPath add:p.
+        ]
     ].
     pPath := pPath select:[:p | p asFilename exists].
     ^ pPath
@@ -10550,10 +10555,10 @@
 
     libDirPath := self stxLibDirPath.
     libDirPath notNil ifTrue:[
-	"/ and also add the libDirPath from the registry ...
-	(sysPath includes:libDirPath) ifFalse:[
-	    sysPath add:libDirPath
-	].
+        "/ and also add the libDirPath from the registry ...
+        (sysPath includes:libDirPath) ifFalse:[
+            sysPath add:libDirPath
+        ].
     ].
 "/    #(
 "/        '\programs\eXept\smalltalk'
@@ -10586,8 +10591,8 @@
     "ask the registry for the binary directory"
 
     ^ RegistryEntry
-	    key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString
-	    valueNamed:'BinDir'.
+            key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString
+            valueNamed:'BinDir'.
 
     "
      OperatingSystem stxBinDirPath
@@ -10600,17 +10605,17 @@
     "ask the registry for the lib directory"
 
     (Array
-	with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString)
-	with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'))
+        with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString)
+        with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'))
     do:[:eachKeyToTry |
-	|k p|
-
-	k := RegistryEntry key:eachKeyToTry.
-	k notNil ifTrue:[
-	    p := k valueNamed:'LibDir'.
-	    k close.
-	    ^ p
-	].
+        |k p|
+
+        k := RegistryEntry key:eachKeyToTry.
+        k notNil ifTrue:[
+            p := k valueNamed:'LibDir'.
+            k close.
+            ^ p
+        ].
     ].
     ^ nil
 
@@ -10625,8 +10630,8 @@
     "ask the registry for the package directory"
 
     ^ RegistryEntry
-	key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString
-	valueNamed:'PackageDirPath'.
+        key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString
+        valueNamed:'PackageDirPath'.
 
     "
      OperatingSystem stxPackageDirPath
@@ -10703,22 +10708,22 @@
 #define DM_OUT_DEFAULT      DM_UPDATE
 "
     nBytesNeeded := self
-	   primDocumentProperties:nil
-	   hPrinter:hPrinter
-	   pDeviceName: deviceName
-	   pDevModeOutput:nil
-	   pDevModeInput:nil
-	   fMode:0.
+           primDocumentProperties:nil
+           hPrinter:hPrinter
+           pDeviceName: deviceName
+           pDevModeOutput:nil
+           pDevModeInput:nil
+           fMode:0.
 
     devModeOutput := DevModeStructure new:(nBytesNeeded * 2 "never trust MS !!").
 
     rslt := self
-	   primDocumentProperties:nil
-	   hPrinter:hPrinter
-	   pDeviceName: deviceName
-	   pDevModeOutput:devModeOutput
-	   pDevModeInput:pDevModeInputOrNil
-	   fMode:4+2.
+           primDocumentProperties:nil
+           hPrinter:hPrinter
+           pDeviceName: deviceName
+           pDevModeOutput:devModeOutput
+           pDevModeInput:pDevModeInputOrNil
+           fMode:4+2.
 
     ^ devModeOutput
 
@@ -10784,23 +10789,23 @@
 #define DM_OUT_DEFAULT      DM_UPDATE
 "
     nBytesNeeded := self
-	   primDocumentProperties:nil
-	   hPrinter:hPrinter
-	   pDeviceName: deviceName
-	   pDevModeOutput:nil
-	   pDevModeInput:nil
-	   fMode:0.
+           primDocumentProperties:nil
+           hPrinter:hPrinter
+           pDeviceName: deviceName
+           pDevModeOutput:nil
+           pDevModeInput:nil
+           fMode:0.
 
     nBytesNeeded < 0 ifTrue:[^nil].
     devModeOutput := DevModeStructure new:(nBytesNeeded * 2 "never trust MS !!").
 
     rslt := self
-	   primDocumentProperties:nil
-	   hPrinter:hPrinter
-	   pDeviceName: deviceName
-	   pDevModeOutput:devModeOutput
-	   pDevModeInput:nil
-	   fMode:2.
+           primDocumentProperties:nil
+           hPrinter:hPrinter
+           pDeviceName: deviceName
+           pDevModeOutput:devModeOutput
+           pDevModeInput:nil
+           fMode:2.
 
      ^ devModeOutput
 
@@ -10823,19 +10828,19 @@
      sizeBytesArray := ByteArray new:4.
 
      bytesNeeded := self
-		primGetPrinter:hPrinter
-		level:2
-		informationBuffer: nil
-		bufferSize: 0
-		bufferNeededSize:sizeBytesArray.
+                primGetPrinter:hPrinter
+                level:2
+                informationBuffer: nil
+                bufferSize: 0
+                bufferNeededSize:sizeBytesArray.
      bytesNeeded := sizeBytesArray longAt:1.
      informationBuffer := PrinterInfo2Structure new: bytesNeeded.
      rslt := self
-		primGetPrinter:hPrinter
-		level:2
-		informationBuffer:informationBuffer
-		bufferSize: bytesNeeded
-		bufferNeededSize:sizeBytesArray.
+                primGetPrinter:hPrinter
+                level:2
+                informationBuffer:informationBuffer
+                bufferSize: bytesNeeded
+                bufferNeededSize:sizeBytesArray.
      self closePrinter: printerName.
      ^informationBuffer
 
@@ -10855,47 +10860,47 @@
     printerNames := self getPrintersNames.
     collectedInfo := OrderedCollection new.
     printerNames do:[:eachName |
-	|fn vol attributes nm deviceInfo infoFields driverName|
-
-	attributes := Dictionary new.
-
-	fn := eachName asFilename.
-	vol := fn volume.
-	vol notEmptyOrNil ifTrue:[
-	    (vol startsWith:'\\') ifTrue:[
-		"/ a remote printer
-		attributes at:#isRemotePrinter put:true.
-		attributes at:#remotePrinterName put:(fn baseName).
-		attributes at:#remotePrinterHost put:(fn directoryName copyFrom:3).
-	    ] ifFalse:[
-		"/ some other printer
-	    ].
-	] ifFalse:[
-	    "/ some other printer
-	].
-
-	deviceInfo := self getProfileString:'PrinterPorts' key:eachName default:''.
-	"gives us smething like 'winspool,Ne00:,15,45',
-	 which is: driverName, deviceName, ? , ?"
-
-	infoFields := deviceInfo asCollectionOfSubstringsSeparatedBy:$,.
-	driverName := infoFields at:1.
-	2 to: infoFields size by:3 do:[:i |
-	    |medium longName|
-
-	    medium := infoFields at:i.
-	    longName := eachName ,',' , driverName , ',' , medium.
-	    attributes at:#driverName put:driverName.
-	    attributes at:#longName put:longName.
-	    attributes at:#medium put:medium.
-
-	    collectedInfo add:
-		(AbstractOperatingSystem::PrinterInfo new
-		    printerName:eachName
-		    attributes:attributes;
-		    setDocumentProperties;
-		    yourself)
-	].
+        |fn vol attributes nm deviceInfo infoFields driverName|
+
+        attributes := Dictionary new.
+
+        fn := eachName asFilename.
+        vol := fn volume.
+        vol notEmptyOrNil ifTrue:[
+            (vol startsWith:'\\') ifTrue:[
+                "/ a remote printer
+                attributes at:#isRemotePrinter put:true.
+                attributes at:#remotePrinterName put:(fn baseName).
+                attributes at:#remotePrinterHost put:(fn directoryName copyFrom:3).
+            ] ifFalse:[
+                "/ some other printer
+            ].
+        ] ifFalse:[
+            "/ some other printer
+        ].
+
+        deviceInfo := self getProfileString:'PrinterPorts' key:eachName default:''.
+        "gives us smething like 'winspool,Ne00:,15,45',
+         which is: driverName, deviceName, ? , ?"
+
+        infoFields := deviceInfo asCollectionOfSubstringsSeparatedBy:$,.
+        driverName := infoFields at:1.
+        2 to: infoFields size by:3 do:[:i |
+            |medium longName|
+
+            medium := infoFields at:i.
+            longName := eachName ,',' , driverName , ',' , medium.
+            attributes at:#driverName put:driverName.
+            attributes at:#longName put:longName.
+            attributes at:#medium put:medium.
+
+            collectedInfo add:
+                (AbstractOperatingSystem::PrinterInfo new
+                    printerName:eachName
+                    attributes:attributes;
+                    setDocumentProperties;
+                    yourself)
+        ].
     ].
     ^ collectedInfo
 
@@ -10913,7 +10918,7 @@
     |printerNames|
 
     printerNames := (self getProfileString:'PrinterPorts' key:nil default:'')
-		       asCollectionOfSubstringsSeparatedBy:(Character value:0).
+                       asCollectionOfSubstringsSeparatedBy:(Character value:0).
     printerNames := printerNames reject:[:nm | nm isEmpty].
     ^printerNames
 
@@ -11002,12 +11007,12 @@
 
      hPrinter := self openPrinter:'\\http://exept.exept.de:631\lj4' .
      rslt := self
-	    primDocumentProperties:nil
-	    hPrinter:hPrinter
-	    pDeviceName: '\\http://exept.exept.de:631\lj4'
-	    pDevModeOutput:nil
-	    pDevModeInput:nil
-	    fMode:0.
+            primDocumentProperties:nil
+            hPrinter:hPrinter
+            pDeviceName: '\\http://exept.exept.de:631\lj4'
+            pDevModeOutput:nil
+            pDevModeInput:nil
+            fMode:0.
 
      self halt.
     "
@@ -11024,12 +11029,12 @@
 
      hPrinter := self openPrinter:'\\http://exept.exept.de:631\lj4' .
      rslt := self
-	    primDocumentProperties:nil
-	    hPrinter:hPrinter
-	    pDeviceName: '\\http://exept.exept.de:631\lj4'
-	    pDevModeOutput:nil
-	    pDevModeInput:nil
-	    fMode:0.
+            primDocumentProperties:nil
+            hPrinter:hPrinter
+            pDeviceName: '\\http://exept.exept.de:631\lj4'
+            pDevModeOutput:nil
+            pDevModeInput:nil
+            fMode:0.
 
      self halt.
     "
@@ -11046,12 +11051,12 @@
 
      hPrinter := self openPrinter:'\\http://exept.exept.de:631\lj4' .
      rslt := self
-	    primDocumentProperties:nil
-	    hPrinter:hPrinter
-	    pDeviceName: '\\http://exept.exept.de:631\lj4'
-	    pDevModeOutput:nil
-	    pDevModeInput:nil
-	    fMode:0.
+            primDocumentProperties:nil
+            hPrinter:hPrinter
+            pDeviceName: '\\http://exept.exept.de:631\lj4'
+            pDevModeOutput:nil
+            pDevModeInput:nil
+            fMode:0.
 
      self halt.
     "
@@ -11080,20 +11085,20 @@
 
      sizeBytesArray := ByteArray new:4.
      ok := self
-		primGetPrinter:hPrinter
-		level:2
-		informationBuffer: nil
-		bufferSize: 0
-		bufferNeededSize:sizeBytesArray.
+                primGetPrinter:hPrinter
+                level:2
+                informationBuffer: nil
+                bufferSize: 0
+                bufferNeededSize:sizeBytesArray.
      bytesNeeded := sizeBytesArray longAt:1.
 
      informationBuffer := PrinterInfo2Structure new: bytesNeeded.
      rslt := self
-		primGetPrinter:hPrinter
-		level:2
-		informationBuffer:informationBuffer
-		bufferSize: bytesNeeded
-		bufferNeededSize:sizeBytesArray.
+                primGetPrinter:hPrinter
+                level:2
+                informationBuffer:informationBuffer
+                bufferSize: bytesNeeded
+                bufferNeededSize:sizeBytesArray.
      self assert: rslt.
      informationBuffer inspect.
      self closePrinter: printerName.
@@ -11223,9 +11228,9 @@
       'NON'     'no_NO'
       'NOR'     'no_NO'
      ) pairWiseDo:[:key :mappedValue|
-	key = windowsLanguageString ifTrue:[
-	    ^ mappedValue
-	]
+        key = windowsLanguageString ifTrue:[
+            ^ mappedValue
+        ]
     ].
 
     "no mapping"
@@ -11243,59 +11248,79 @@
 !
 
 primExpandEnvironmentStringsA:inString into:outString size:outBufferSize
+    "do not use - we do not know in advance whether the expansion will
+     result in a UnicodeString!!"
+
+    <resource: #obsolete>
 %{
     if (__isString(inString)
      && __isString(outString)
      && __isSmallInteger(outBufferSize)) {
-	unsigned long c_outBufferSize = __intVal(outBufferSize);
-
-	if (__stringSize(outString) <= c_outBufferSize) {
-	    unsigned long c_ret;
-
-	    c_ret = ExpandEnvironmentStringsA(__stringVal(inString), __stringVal(outString), c_outBufferSize);
-	    RETURN( __mkSmallInteger(c_ret) );
-	}
+        unsigned long c_outBufferSize = __intVal(outBufferSize);
+
+        if (__stringSize(outString) <= c_outBufferSize) {
+            unsigned long c_ret;
+
+            c_ret = ExpandEnvironmentStringsA(__stringVal(inString), __stringVal(outString), c_outBufferSize);
+            RETURN( __mkSmallInteger(c_ret) );
+        }
     }
 %}.
     "/ <apicall: ulongReturn "ExpandEnvironmentStringsA" (pointer pointer ulong) module: "kernel32.dll" >
     ^self primitiveFailed
 
     "
-	self primExpandEnvironmentStringsA:'%ProgramFiles%\test\x' into:(String new:256) inspect size:256
-    "
-!
-
-primExpandEnvironmentStringsW:inString into:outString size:outBuffer
-
-    <apicall: ulongReturn "ExpandEnvironmentStringsW" (pointer pointer ulong) module: "kernel32.dll" >
-    ^self primitiveFailed
-
-    "
-	self primExpandEnvironmentStringsW:'%ProgramFiles%\test\x' asUnicodeString into:(Unicode16String new:256) inspect size:256
+        self primExpandEnvironmentStringsA:'%ProgramFiles%\test\x' into:(String new:256) inspect size:256
+    "
+!
+
+primExpandEnvironmentStringsW:inString into:outString size:outBufferSize
+    "IMPORTANT: the inString must be 0-terminated!!
+     Be default ST-Unicode strings are not 0-terminated."
+%{
+    if (__isUnicode16String(inString)
+        && __isUnicode16String(outString)
+        && __isSmallInteger(outBufferSize)) {
+        unsigned long c_outBufferSize = __intVal(outBufferSize);
+
+        if (__unicode16StringSize(outString) <= c_outBufferSize) {
+            unsigned long c_ret;
+
+            c_ret = ExpandEnvironmentStringsW(__unicode16StringVal(inString), __unicode16StringVal(outString), c_outBufferSize);
+            RETURN( __mkSmallInteger(c_ret) );
+        }
+    }
+%}.
+    ^ self primitiveFailed
+
+"/     <apicall: ulongReturn "ExpandEnvironmentStringsW" (pointer pointer ulong) module: "kernel32.dll" >
+    "
+        self primExpandEnvironmentStringsW:'%ProgramFiles%\test\x' asUnicodeString into:(Unicode16String new:256) inspect size:256
+        self primExpandEnvironmentStringsW:'%ProgramData%\test\xkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' asUnicodeString into:(Unicode16String new:256) inspect size:256
     "
 ! !
 
 !Win32OperatingSystem class methodsFor:'regional settings'!
 
 country
-	"Answer the current system value for country."
+        "Answer the current system value for country."
 
     ^self queryNationalProfileString: 'iCountry' default: 0
 
     "
-	self country
+        self country
     "
 
     "Modified: / 22-12-2006 / 16:45:32 / User"
 !
 
 countryName
-	"Answer the current system value for country name."
+        "Answer the current system value for country name."
 
     ^self queryNationalProfileString: 'sCountry' default: 'Deutschland'
 
     "
-	self countryName
+        self countryName
     "
 
     "Modified: / 22-12-2006 / 16:45:32 / User"
@@ -11304,8 +11329,8 @@
 dateFormat
     "Answer the current system value for date format.
      Answer DfMDY = Month-Day-Year
-	    DfDMY = Day-Month-Year
-	    DfYMD = Year-Month-Day."
+            DfDMY = Day-Month-Year
+            DfYMD = Year-Month-Day."
 
     |separatorString code|
 
@@ -11327,49 +11352,49 @@
 !
 
 dateFormatCode
-	"Answer the current system value for date format.
-	 Answer DfMDY = Month-Day-Year = 0
-		DfDMY = Day-Month-Year = 1
-		DfYMD = Year-Month-Day = 2"
+        "Answer the current system value for date format.
+         Answer DfMDY = Month-Day-Year = 0
+                DfDMY = Day-Month-Year = 1
+                DfYMD = Year-Month-Day = 2"
 
     ^self queryNationalProfileInt: 'iDate' default: 0
 
     "
-	self dateFormatCode
+        self dateFormatCode
     "
 
     "Modified: / 22-12-2006 / 16:45:53 / User"
 !
 
 dateSeparator
-	"Answer the current system value for date separator."
+        "Answer the current system value for date separator."
 
     ^self queryNationalProfileString: 'sDate' default: '/'
 
     "
-	self dateSeparator
+        self dateSeparator
     "
 
     "Modified: / 22-12-2006 / 16:45:32 / User"
 !
 
 decimalSeparator
-	"Answer the current system value for decimal separator."
+        "Answer the current system value for decimal separator."
 
     ^self queryNationalProfileString: 'sDecimal' default: '.'
 
     "
-	self decimalSeparator
+        self decimalSeparator
     "
 
     "Created: / 22-12-2006 / 16:45:11 / User"
 !
 
 isDateFormatDMY
-	"Answer the current system value for date format.
-	 Answer DfMDY = Month-Day-Year
-		DfDMY = Day-Month-Year
-		DfYMD = Year-Month-Day."
+        "Answer the current system value for date format.
+         Answer DfMDY = Month-Day-Year
+                DfDMY = Day-Month-Year
+                DfYMD = Year-Month-Day."
 
     ^self dateFormatCode = 1
 
@@ -11377,10 +11402,10 @@
 !
 
 isDateFormatMDY
-	"Answer the current system value for date format.
-	 Answer DfMDY = Month-Day-Year
-		DfDMY = Day-Month-Year
-		DfYMD = Year-Month-Day."
+        "Answer the current system value for date format.
+         Answer DfMDY = Month-Day-Year
+                DfDMY = Day-Month-Year
+                DfYMD = Year-Month-Day."
 
     ^self dateFormatCode = 0
 
@@ -11388,10 +11413,10 @@
 !
 
 isDateFormatYMD
-	"Answer the current system value for date format.
-	 Answer DfMDY = Month-Day-Year
-		DfDMY = Day-Month-Year
-		DfYMD = Year-Month-Day."
+        "Answer the current system value for date format.
+         Answer DfMDY = Month-Day-Year
+                DfDMY = Day-Month-Year
+                DfYMD = Year-Month-Day."
 
     ^self dateFormatCode = 2
 
@@ -11399,7 +11424,7 @@
 !
 
 isTimeFormat12Hour
-	"Answer whether the current system time format is 12-hour."
+        "Answer whether the current system time format is 12-hour."
 
     ^self timeFormat = 0
 
@@ -11426,11 +11451,11 @@
 
     | answer |
     answer := self primGetProfileInt: 'Intl'
-	keyName: aKeyName
-	default: -1 asUnsigned32.
+        keyName: aKeyName
+        default: -1 asUnsigned32.
     ^answer = -1 asUnsigned32
-	ifTrue: [ defaultValue ]
-	ifFalse: [ answer ]
+        ifTrue: [ defaultValue ]
+        ifFalse: [ answer ]
 
 "
     self queryNationalProfileInt: 'iDate' default: 0
@@ -11440,43 +11465,43 @@
 !
 
 queryNationalProfileString: aKeyName default: defaultValue
-	"Answer the string value of key aKeyName in
-	the [Intl] application section of the WIN.INI profile file.
-	Answer defaultValue if aKeyName cannot be found."
+        "Answer the string value of key aKeyName in
+        the [Intl] application section of the WIN.INI profile file.
+        Answer defaultValue if aKeyName cannot be found."
     | extString result |
     extString := String new: 80.
     result := self primGetProfileString: 'Intl'
-	keyName: aKeyName
-	default: ''
-	returnedString: extString
-	size: extString size.
+        keyName: aKeyName
+        default: ''
+        returnedString: extString
+        size: extString size.
     ^result > 0
-	ifTrue: [extString copyFrom: 1 to: result]
-	ifFalse: [ defaultValue ]
+        ifTrue: [extString copyFrom: 1 to: result]
+        ifFalse: [ defaultValue ]
 
     "Created: / 22-12-2006 / 16:13:01 / User"
 !
 
 thousandsSeparator
-	"Answer the current system value
-	for the thousands separator."
+        "Answer the current system value
+        for the thousands separator."
 
     ^self queryNationalProfileString: 'sThousand' default: ','
 
     "
-	self thousandsSeparator
+        self thousandsSeparator
     "
 
     "Created: / 22-12-2006 / 16:46:50 / User"
 !
 
 timeFormat
-	"Answer the current system value for time format."
+        "Answer the current system value for time format."
 
     ^self queryNationalProfileInt: 'iTime' default: 0
 
     "
-	self timeFormat
+        self timeFormat
     "
 
     "Created: / 22-12-2006 / 16:48:27 / User"
@@ -11505,29 +11530,29 @@
      This looks for the files extension, and is typically used to present help-files,
      html documents, pdf documents etc.
      operationSymbol is one of:
-	open
-	edit
-	explore
-	print
+        open
+        edit
+        explore
+        print
     "
 
     |handle directoryName|
 
     "nil directory is the current directory"
     directoryStringOrFilenameOrNil notNil ifTrue:[
-	directoryName := directoryStringOrFilenameOrNil asFilename pathName.
+        directoryName := directoryStringOrFilenameOrNil asFilename pathName.
     ].
 
     handle := self
-	shellExecute:nil
-	lpOperation:operationSymbol
-	lpFile:fileOrUrl asString
-	lpParameters:nil
-	lpDirectory:directoryName
-	nShowCmd:#SW_SHOWNORMAL.
+        shellExecute:nil
+        lpOperation:operationSymbol
+        lpFile:fileOrUrl asString
+        lpParameters:nil
+        lpDirectory:directoryName
+        nShowCmd:#SW_SHOWNORMAL.
 
     handle notNil ifTrue:[
-	handle close.
+        handle close.
     ].
 
 
@@ -11568,16 +11593,16 @@
     "commands to try for speech output"
 
     ^ #(
-	"/ triples are:
-	"/      -command
-	"/      -commandline for default voice
-	"/      -commandline for specific voice
-	"/      -commandline for ssml voice
-	('powershell'
-	 'powershell -Command "Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SPeechSynthesizer).Speak(''%2'');"'
-	 'powershell -Command "Add-Type -AssemblyName System.Speech; $S=(New-Object System.Speech.Synthesis.SpeechSynthesizer);$S.SelectVoice("%1");$S.Speak(''%2'');"'
-	 'powershell -Command "Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SPeechSynthesizer).SpeakSsml(''%2'');"'
-	)
+        "/ triples are:
+        "/      -command
+        "/      -commandline for default voice
+        "/      -commandline for specific voice
+        "/      -commandline for ssml voice
+        ('powershell'
+         'powershell -Command "Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SPeechSynthesizer).Speak(''%2'');"'
+         'powershell -Command "Add-Type -AssemblyName System.Speech; $S=(New-Object System.Speech.Synthesis.SpeechSynthesizer);$S.SelectVoice("%1");$S.Speak(''%2'');"'
+         'powershell -Command "Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SPeechSynthesizer).SpeakSsml(''%2'');"'
+        )
     )
 
     "
@@ -11594,19 +11619,19 @@
 'powershell -Command "Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak(''hello'');"'
 
      OperatingSystem
-	executeCommand:
+        executeCommand:
 'powershell -Command "Add-Type -AssemblyName System.Speech;$S = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer;$S.voice;"'
-	outputTo:Transcript
+        outputTo:Transcript
 
      OperatingSystem
-	executeCommand:
+        executeCommand:
 'powershell -Command "Add-Type -AssemblyName System.Speech;$S = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer;$S.GetInstalledVoices();"'
-	outputTo:Transcript
+        outputTo:Transcript
 
      OperatingSystem
-	executeCommand:
+        executeCommand:
 'powershell -Command "Add-Type -AssemblyName System.Speech; foreach ($v in (New-Object System.Speech.Synthesis.SpeechSynthesizer).GetInstalledVoices() ){ Write-Host $v.name }"'
-	outputTo:Transcript
+        outputTo:Transcript
 END"
 ! !
 
@@ -11625,27 +11650,27 @@
      I added this in order to be able to shutdown w95 cleanly"
 
     confirmationMessageOrNil notNil ifTrue:[
-	(Dialog confirm:confirmationMessageOrNil) ifFalse:[
-	    ^ false
-	].
+        (Dialog confirm:confirmationMessageOrNil) ifFalse:[
+            ^ false
+        ].
     ].
 %{
     int flag;
 
     if (how == @symbol(shutdown)) {
-	flag = EWX_SHUTDOWN;
+        flag = EWX_SHUTDOWN;
     } else if (how == @symbol(reboot)) {
-	flag = EWX_REBOOT;
+        flag = EWX_REBOOT;
     } else if (how == @symbol(logoff)) {
-	flag = EWX_LOGOFF;
+        flag = EWX_LOGOFF;
     } else if (how == @symbol(forceShutdown)) {
-	flag = EWX_SHUTDOWN | EWX_FORCE;
+        flag = EWX_SHUTDOWN | EWX_FORCE;
     } else if (how == @symbol(forceReboot)) {
-	flag = EWX_REBOOT | EWX_FORCE;
+        flag = EWX_REBOOT | EWX_FORCE;
     } else if (how == @symbol(forceLogoff)) {
-	flag = EWX_LOGOFF | EWX_FORCE;
+        flag = EWX_LOGOFF | EWX_FORCE;
     } else {
-	RETURN (false);
+        RETURN (false);
     }
     RETURN ((ExitWindowsEx(flag, 0) == TRUE) ? true : false);
 %}
@@ -11665,58 +11690,58 @@
      && __bothSmallInteger(d, h)
      && __bothSmallInteger(min, s)
      && __isSmallInteger(millis)) {
-	SYSTEMTIME sysTime;
-	FILETIME fileTime;
-
-	sysTime.wHour = __intVal(h);
-	sysTime.wMinute = __intVal(min);
-	sysTime.wSecond = __intVal(s);
-	sysTime.wMilliseconds = __intVal(millis);
-
-	sysTime.wYear = __intVal(y);
-	sysTime.wMonth = __intVal(m);
-	sysTime.wDay = __intVal(d);
-
-	if (sysTime.wYear < 1602) goto outOfRange;   // not 1601 - so we don't have to care for timezone
-	if (sysTime.wYear > 9999) goto outOfRange;
-
-	if (utcBoolean != true) {
-	    // adjust for local time
-
-	    // TzSpecificLocalTimeToSystemTime() is not supported in Win2000
-	    // - but we do not support Win2k any longer as of 2014
+        SYSTEMTIME sysTime;
+        FILETIME fileTime;
+
+        sysTime.wHour = __intVal(h);
+        sysTime.wMinute = __intVal(min);
+        sysTime.wSecond = __intVal(s);
+        sysTime.wMilliseconds = __intVal(millis);
+
+        sysTime.wYear = __intVal(y);
+        sysTime.wMonth = __intVal(m);
+        sysTime.wDay = __intVal(d);
+
+        if (sysTime.wYear < 1602) goto outOfRange;   // not 1601 - so we don't have to care for timezone
+        if (sysTime.wYear > 9999) goto outOfRange;
+
+        if (utcBoolean != true) {
+            // adjust for local time
+
+            // TzSpecificLocalTimeToSystemTime() is not supported in Win2000
+            // - but we do not support Win2k any longer as of 2014
 #ifdef __BORLANDC__
-	    {
-		typedef BOOL (WINAPI *P_TzSpecificLocalTimeToSystemTime)(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME);
-		static P_TzSpecificLocalTimeToSystemTime pTzSpecificLocalTimeToSystemTime;
-
-		if (pTzSpecificLocalTimeToSystemTime == NULL) {
-		    pTzSpecificLocalTimeToSystemTime =
-			(P_TzSpecificLocalTimeToSystemTime)
-			    GetProcAddress ( GetModuleHandle ("kernel32.dll"),
-					     "TzSpecificLocalTimeToSystemTime");
-		}
-		if (!pTzSpecificLocalTimeToSystemTime(0, &sysTime, &sysTime))
-		    goto error;
-	    }
-#else
-	    if (!TzSpecificLocalTimeToSystemTime(0, &sysTime, &sysTime))
-		goto error;
-#endif
-	}
-
-	if (! SystemTimeToFileTime(&sysTime, &fileTime))
-	    goto error;
-
-	osTime = FileTimeToOsTime1970(&fileTime);
+            {
+                typedef BOOL (WINAPI *P_TzSpecificLocalTimeToSystemTime)(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME);
+                static P_TzSpecificLocalTimeToSystemTime pTzSpecificLocalTimeToSystemTime;
+
+                if (pTzSpecificLocalTimeToSystemTime == NULL) {
+                    pTzSpecificLocalTimeToSystemTime =
+                        (P_TzSpecificLocalTimeToSystemTime)
+                            GetProcAddress ( GetModuleHandle ("kernel32.dll"),
+                                             "TzSpecificLocalTimeToSystemTime");
+                }
+                if (!pTzSpecificLocalTimeToSystemTime(0, &sysTime, &sysTime))
+                    goto error;
+            }
+#else
+            if (!TzSpecificLocalTimeToSystemTime(0, &sysTime, &sysTime))
+                goto error;
+#endif
+        }
+
+        if (! SystemTimeToFileTime(&sysTime, &fileTime))
+            goto error;
+
+        osTime = FileTimeToOsTime1970(&fileTime);
     }
 outOfRange: ;
 error: ;
 %}.
     osTime notNil ifTrue:[
-	"/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
-	"/ ^ osTime - self osTimeOf19700101. -- already done
-	^ osTime
+        "/ rebias to 1970 by subtracting the number of millis from 1.1.1601 to 1.1.1970
+        "/ ^ osTime - self osTimeOf19700101. -- already done
+        ^ osTime
     ].
 
     "Error, some invalid date ot time"
@@ -11769,10 +11794,10 @@
     LONGLONG micros;
 
     if (! frequencyKnown) {
-	// get the high resolution counter's accuracy
-	QueryPerformanceFrequency(&ticksPerSecond);
-	frequencyKnown = 1;
-	divisor = ticksPerSecond / (LONGLONG)1000000;
+        // get the high resolution counter's accuracy
+        QueryPerformanceFrequency(&ticksPerSecond);
+        frequencyKnown = 1;
+        divisor = ticksPerSecond / (LONGLONG)1000000;
     }
 
     // what time is it?
@@ -11808,8 +11833,8 @@
      Use the millisecondTimeXXX:-methods to compare and add time deltas - these know about the wrap.
 
      BAD DESIGN:
-	This should be changed to return some instance of RelativeTime,
-	and these computations moved there.
+        This should be changed to return some instance of RelativeTime,
+        and these computations moved there.
 
      Don't use this method in application code since it is an internal (private)
      interface. For compatibility with ST-80, use Time millisecondClockValue.
@@ -11824,13 +11849,13 @@
 %}
 
     "
-	self getMillisecondTime
-
-	|t1 t2|
-	t1 := self getMillisecondTime.
-	Delay waitForSeconds:1.
-	t2 := self getMillisecondTime.
-	t2 - t1.
+        self getMillisecondTime
+
+        |t1 t2|
+        t1 := self getMillisecondTime.
+        Delay waitForSeconds:1.
+        t2 := self getMillisecondTime.
+        t2 - t1.
     "
 !
 
@@ -11849,10 +11874,10 @@
     LONGLONG nanos;
 
     if (! frequencyKnown) {
-	// get the high resolution counter's accuracy
-	QueryPerformanceFrequency(&ticksPerSecond);
-	frequencyKnown = 1;
-	divisor = ticksPerSecond / (LONGLONG)1000000000;
+        // get the high resolution counter's accuracy
+        QueryPerformanceFrequency(&ticksPerSecond);
+        frequencyKnown = 1;
+        divisor = ticksPerSecond / (LONGLONG)1000000000;
     }
 
     // what time is it?
@@ -11934,22 +11959,22 @@
     //    GetSystemTimePreciseAsFileTime(&fileTime);
     // is better.
     {
-	typedef VOID (WINAPI *P_GetSystemTimePreciseAsFileTime)(LPFILETIME);
-	static P_GetSystemTimePreciseAsFileTime pGetSystemTimePreciseAsFileTime = NULL;
-
-	if (pGetSystemTimePreciseAsFileTime == NULL) {
-	    pGetSystemTimePreciseAsFileTime =
-		(P_GetSystemTimePreciseAsFileTime)
-		    GetProcAddress ( GetModuleHandle ("kernel32.dll"),
-				     "GetSystemTimePreciseAsFileTime");
-
-	    if (pGetSystemTimePreciseAsFileTime == NULL) {
-		// use low resolution fallback
-		pGetSystemTimePreciseAsFileTime = GetSystemTimeAsFileTime;
-	    }
-	}
-
-	(*pGetSystemTimePreciseAsFileTime)(&fileTime);
+        typedef VOID (WINAPI *P_GetSystemTimePreciseAsFileTime)(LPFILETIME);
+        static P_GetSystemTimePreciseAsFileTime pGetSystemTimePreciseAsFileTime = NULL;
+
+        if (pGetSystemTimePreciseAsFileTime == NULL) {
+            pGetSystemTimePreciseAsFileTime =
+                (P_GetSystemTimePreciseAsFileTime)
+                    GetProcAddress ( GetModuleHandle ("kernel32.dll"),
+                                     "GetSystemTimePreciseAsFileTime");
+
+            if (pGetSystemTimePreciseAsFileTime == NULL) {
+                // use low resolution fallback
+                pGetSystemTimePreciseAsFileTime = GetSystemTimeAsFileTime;
+            }
+        }
+
+        (*pGetSystemTimePreciseAsFileTime)(&fileTime);
     }
 #endif
     nanosecondTime = FileTimeToNanosecondTime1970(&fileTime);
@@ -11995,55 +12020,55 @@
     WCHAR nm[33];
 
     if (anIntegerOrNil == nil) {
-	retVal = GetTimeZoneInformation(&tzInfo);
-	switch (retVal) {
-	    case TIME_ZONE_ID_STANDARD:
-	    case TIME_ZONE_ID_DAYLIGHT:
-	    case TIME_ZONE_ID_UNKNOWN:
-		break;
-
-	    default:
-	    case TIME_ZONE_ID_INVALID:
-		error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-		goto out;
-	}
+        retVal = GetTimeZoneInformation(&tzInfo);
+        switch (retVal) {
+            case TIME_ZONE_ID_STANDARD:
+            case TIME_ZONE_ID_DAYLIGHT:
+            case TIME_ZONE_ID_UNKNOWN:
+                break;
+
+            default:
+            case TIME_ZONE_ID_INVALID:
+                error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+                goto out;
+        }
     } else if (__isSmallInteger(anIntegerOrNil)) {
-	int year = __intVal(anIntegerOrNil);
+        int year = __intVal(anIntegerOrNil);
 #if defined(__BORLANDC__) || defined(__MINGW32__)
-	{
-	    typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
-					USHORT,
-					LPTIME_ZONE_INFORMATION, // - should be, but is not defined: PDYNAMIC_TIME_ZONE_INFORMATION,
-					LPTIME_ZONE_INFORMATION);
-	    static P_GetTimeZoneInformationForYear pGetTimeZoneInformationForYear;
-	    static int haveTriedToGet_P_GetTimeZoneInformationForYear = 0;
-
-	    if (! haveTriedToGet_P_GetTimeZoneInformationForYear) {
-		pGetTimeZoneInformationForYear =
-		    (P_GetTimeZoneInformationForYear)GetProcAddress(
-							GetModuleHandle("kernel32.dll"),
-							"GetTimeZoneInformationForYear");
-		haveTriedToGet_P_GetTimeZoneInformationForYear = 1;
-	    }
-	    if (pGetTimeZoneInformationForYear == NULL) {
-		error = __mkSmallInteger(@symbol(primitiveFailed));
-		goto out;
-	    } else {
-		if (!pGetTimeZoneInformationForYear(year, NULL, &tzInfo)) {
-		    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-		    goto out;
-		}
-	    }
-	}
-#else
-	if (!GetTimeZoneInformationForYear(year, NULL, &tzInfo)) {
-	    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-	    goto out;
-	}
+        {
+            typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
+                                        USHORT,
+                                        LPTIME_ZONE_INFORMATION, // - should be, but is not defined: PDYNAMIC_TIME_ZONE_INFORMATION,
+                                        LPTIME_ZONE_INFORMATION);
+            static P_GetTimeZoneInformationForYear pGetTimeZoneInformationForYear;
+            static int haveTriedToGet_P_GetTimeZoneInformationForYear = 0;
+
+            if (! haveTriedToGet_P_GetTimeZoneInformationForYear) {
+                pGetTimeZoneInformationForYear =
+                    (P_GetTimeZoneInformationForYear)GetProcAddress(
+                                                        GetModuleHandle("kernel32.dll"),
+                                                        "GetTimeZoneInformationForYear");
+                haveTriedToGet_P_GetTimeZoneInformationForYear = 1;
+            }
+            if (pGetTimeZoneInformationForYear == NULL) {
+                error = __mkSmallInteger(@symbol(primitiveFailed));
+                goto out;
+            } else {
+                if (!pGetTimeZoneInformationForYear(year, NULL, &tzInfo)) {
+                    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+                    goto out;
+                }
+            }
+        }
+#else
+        if (!GetTimeZoneInformationForYear(year, NULL, &tzInfo)) {
+            error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+            goto out;
+        }
 #endif
     } else {
-	error = @symbol(badArgument);
-	goto out;
+        error = @symbol(badArgument);
+        goto out;
     }
 
     bias = __mkSmallInteger(tzInfo.Bias);
@@ -12073,22 +12098,22 @@
 out:;
 %}.
     error notNil ifTrue:[
-	self primitiveFailed:error.
+        self primitiveFailed:error.
     ].
 
     info := self timeZoneInfoClass new.
     info
-	bias:bias
-	name:standardName standardBias:standardBias
-	daylightName:daylightName daylightBias:daylightBias.
+        bias:bias
+        name:standardName standardBias:standardBias
+        daylightName:daylightName daylightBias:daylightBias.
 
     standardDate_m ~~ 0 ifTrue:[
-	info standardYear:standardDate_y standardMonth:standardDate_m standardDay:standardDate_d
-	     standardWeekDay:standardDate_wd standardHour:standardDate_h standardMinute:standardDate_min.
+        info standardYear:standardDate_y standardMonth:standardDate_m standardDay:standardDate_d
+             standardWeekDay:standardDate_wd standardHour:standardDate_h standardMinute:standardDate_min.
     ].
     daylightDate_m ~~ 0 ifTrue:[
-	info daylightYear:daylightDate_y daylightMonth:daylightDate_m daylightDay:daylightDate_d
-	     daylightWeekDay:daylightDate_wd daylightHour:daylightDate_h daylightMinute:daylightDate_min.
+        info daylightYear:daylightDate_y daylightMonth:daylightDate_m daylightDay:daylightDate_d
+             daylightWeekDay:daylightDate_wd daylightHour:daylightDate_h daylightMinute:daylightDate_min.
     ].
 
     ^ info
@@ -12125,8 +12150,8 @@
 %{  /* NOCONTEXT */
 
     if (__isSmallInteger(numberOfSeconds)) {
-	sleep(__intVal(numberOfSeconds));
-	RETURN ( self );
+        sleep(__intVal(numberOfSeconds));
+        RETURN ( self );
     }
 %}.
     "
@@ -12157,117 +12182,117 @@
 
     /* try cache */
     {
-	OBJ lastOsTimeLow, lastOsTimeHi, lastTimeInfo;
-
-	lastOsTimeLow = @global(LastOsTimeLow);
-	lastOsTimeHi = @global(LastOsTimeHi);
-	if (__isInteger(lastOsTimeLow)
-	     && (__unsignedLongIntVal(lastOsTimeLow) == __unsignedLongIntVal(tLow))
-	     && lastOsTimeHi
-	     && (__unsignedLongIntVal(lastOsTimeHi) == __unsignedLongIntVal(tHigh))
-	     && (@global(LastTimeInfoIsLocal) == isLocalTime)
-	) {
-	    lastTimeInfo = @global(LastTimeInfo);
-	    if (lastTimeInfo != nil) {
-		RETURN (lastTimeInfo);
-	    }
-	}
+        OBJ lastOsTimeLow, lastOsTimeHi, lastTimeInfo;
+
+        lastOsTimeLow = @global(LastOsTimeLow);
+        lastOsTimeHi = @global(LastOsTimeHi);
+        if (__isInteger(lastOsTimeLow)
+             && (__unsignedLongIntVal(lastOsTimeLow) == __unsignedLongIntVal(tLow))
+             && lastOsTimeHi
+             && (__unsignedLongIntVal(lastOsTimeHi) == __unsignedLongIntVal(tHigh))
+             && (@global(LastTimeInfoIsLocal) == isLocalTime)
+        ) {
+            lastTimeInfo = @global(LastTimeInfo);
+            if (lastTimeInfo != nil) {
+                RETURN (lastTimeInfo);
+            }
+        }
     }
 
     if (!OsTime1970ToFileTime(tLow, tHigh, &fileTime))
-	goto out;
+        goto out;
     if (!FileTimeToSystemTime(&fileTime, &sysTime))
-	goto out;
+        goto out;
 
     if (isLocalTime == false) { // easy: UTC time
-	sysTimePtr = &sysTime;
-	utcOffset = __mkSmallInteger(0);
-	isDst = false;
+        sysTimePtr = &sysTime;
+        utcOffset = __mkSmallInteger(0);
+        isDst = false;
     } else {  // local time: have to convert and find out about DST
-	TIME_ZONE_INFORMATION tzInfo;
-	LONGLONG longTime;
-	SYSTEMTIME localSysTime;
-	FILETIME localFileTime;
-
-	sysTimePtr = &localSysTime;
-
-	if (!SystemTimeToTzSpecificLocalTime(NULL, &sysTime, &localSysTime))
-	    goto out;
-	if (!SystemTimeToFileTime(&localSysTime, &localFileTime))
-	    goto out;
-
-	// all the rest is computing the UTC offset and whether DST applies
-	longTime = ((LONGLONG)fileTime.dwHighDateTime << 32) + fileTime.dwLowDateTime;
-	longTime -= ((LONGLONG)localFileTime.dwHighDateTime << 32) + localFileTime.dwLowDateTime;
-
-	// utcOffset is the difference from UTC to local time including possible DST
-	_utcOffset = longTime / 10000000;
-	utcOffset = __mkSmallInteger(_utcOffset);
+        TIME_ZONE_INFORMATION tzInfo;
+        LONGLONG longTime;
+        SYSTEMTIME localSysTime;
+        FILETIME localFileTime;
+
+        sysTimePtr = &localSysTime;
+
+        if (!SystemTimeToTzSpecificLocalTime(NULL, &sysTime, &localSysTime))
+            goto out;
+        if (!SystemTimeToFileTime(&localSysTime, &localFileTime))
+            goto out;
+
+        // all the rest is computing the UTC offset and whether DST applies
+        longTime = ((LONGLONG)fileTime.dwHighDateTime << 32) + fileTime.dwLowDateTime;
+        longTime -= ((LONGLONG)localFileTime.dwHighDateTime << 32) + localFileTime.dwLowDateTime;
+
+        // utcOffset is the difference from UTC to local time including possible DST
+        _utcOffset = longTime / 10000000;
+        utcOffset = __mkSmallInteger(_utcOffset);
 
 # if defined(__BORLANDC__) || defined(__MINGW32__)
-	{
-	    typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
-					USHORT,
-					LPTIME_ZONE_INFORMATION, // - should be, but is not defined: PDYNAMIC_TIME_ZONE_INFORMATION,
-					LPTIME_ZONE_INFORMATION);
-	    static P_GetTimeZoneInformationForYear pGetTimeZoneInformationForYear;
-	    static int haveTriedToGet_P_GetTimeZoneInformationForYear = 0;
-
-	    if (! haveTriedToGet_P_GetTimeZoneInformationForYear) {
-		pGetTimeZoneInformationForYear =
-		    (P_GetTimeZoneInformationForYear)GetProcAddress(
-							GetModuleHandle("kernel32.dll"),
-							"GetTimeZoneInformationForYear");
-		haveTriedToGet_P_GetTimeZoneInformationForYear = 1;
-	    }
-	    if (pGetTimeZoneInformationForYear == NULL) {
-		// ignore this error and fall back to GetTimeZoneInformation()
-		reason = @symbol(NoGetTimeZoneInformationForYear);
-	    } else {
-		if (pGetTimeZoneInformationForYear(localSysTime.wYear, NULL, &tzInfo)) {
-		    _stdUtcOffset = (tzInfo.Bias + tzInfo.StandardBias) * 60;
-		    isDst = (_stdUtcOffset != _utcOffset) ? true : false;
-		} else {
-		    // ignore this error and fall back to GetTimeZoneInformation()
-		    reason = @symbol(GetTimeZoneInformationForYearFailed);
-		    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-		}
-	    }
-	}
+        {
+            typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
+                                        USHORT,
+                                        LPTIME_ZONE_INFORMATION, // - should be, but is not defined: PDYNAMIC_TIME_ZONE_INFORMATION,
+                                        LPTIME_ZONE_INFORMATION);
+            static P_GetTimeZoneInformationForYear pGetTimeZoneInformationForYear;
+            static int haveTriedToGet_P_GetTimeZoneInformationForYear = 0;
+
+            if (! haveTriedToGet_P_GetTimeZoneInformationForYear) {
+                pGetTimeZoneInformationForYear =
+                    (P_GetTimeZoneInformationForYear)GetProcAddress(
+                                                        GetModuleHandle("kernel32.dll"),
+                                                        "GetTimeZoneInformationForYear");
+                haveTriedToGet_P_GetTimeZoneInformationForYear = 1;
+            }
+            if (pGetTimeZoneInformationForYear == NULL) {
+                // ignore this error and fall back to GetTimeZoneInformation()
+                reason = @symbol(NoGetTimeZoneInformationForYear);
+            } else {
+                if (pGetTimeZoneInformationForYear(localSysTime.wYear, NULL, &tzInfo)) {
+                    _stdUtcOffset = (tzInfo.Bias + tzInfo.StandardBias) * 60;
+                    isDst = (_stdUtcOffset != _utcOffset) ? true : false;
+                } else {
+                    // ignore this error and fall back to GetTimeZoneInformation()
+                    reason = @symbol(GetTimeZoneInformationForYearFailed);
+                    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+                }
+            }
+        }
 # else
-	if (GetTimeZoneInformationForYear(localSysTime.wYear, NULL, &tzInfo)) {
-	    _stdUtcOffset = (tzInfo.Bias + tzInfo.StandardBias) * 60;
-	    isDst = (_stdUtcOffset != _utcOffset) ? true : false;
-	} else {
-	    // ignore this error and fall back to GetTimeZoneInformation()
-	    reason = @symbol(GetTimeZoneInformationForYearFailed);
-	    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-	}
-# endif
-	// this code is a fallback for WIN XP
-	if (isDst == nil) {
-	    DWORD retVal = GetTimeZoneInformation(&tzInfo);
-	    switch (retVal) {
-		case TIME_ZONE_ID_STANDARD:
-		case TIME_ZONE_ID_DAYLIGHT:
-		case TIME_ZONE_ID_UNKNOWN:
-		    // nonDstOffset is the difference from UTC to local time without DST
-		    _stdUtcOffset = (tzInfo.Bias + tzInfo.StandardBias) * 60;
-		    isDst = (_stdUtcOffset != _utcOffset) ? true : false;
-		    break;
-
-		// these are errors, which may occur, if the
-		// Windows OS has not been setupm correctly.
-		// We ignore these errors here, but we don't know if DST applies.
-		// Assume that there is no DST.
-		default:
-		case TIME_ZONE_ID_INVALID:
-		    isDst = false;
-		    reason = @symbol(TIME_ZONE_ID_INVALID);
-		    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-		    break;
-	    }
-	}  // End WINXP backward compatibility
+        if (GetTimeZoneInformationForYear(localSysTime.wYear, NULL, &tzInfo)) {
+            _stdUtcOffset = (tzInfo.Bias + tzInfo.StandardBias) * 60;
+            isDst = (_stdUtcOffset != _utcOffset) ? true : false;
+        } else {
+            // ignore this error and fall back to GetTimeZoneInformation()
+            reason = @symbol(GetTimeZoneInformationForYearFailed);
+            error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+        }
+# endif
+        // this code is a fallback for WIN XP
+        if (isDst == nil) {
+            DWORD retVal = GetTimeZoneInformation(&tzInfo);
+            switch (retVal) {
+                case TIME_ZONE_ID_STANDARD:
+                case TIME_ZONE_ID_DAYLIGHT:
+                case TIME_ZONE_ID_UNKNOWN:
+                    // nonDstOffset is the difference from UTC to local time without DST
+                    _stdUtcOffset = (tzInfo.Bias + tzInfo.StandardBias) * 60;
+                    isDst = (_stdUtcOffset != _utcOffset) ? true : false;
+                    break;
+
+                // these are errors, which may occur, if the
+                // Windows OS has not been setupm correctly.
+                // We ignore these errors here, but we don't know if DST applies.
+                // Assume that there is no DST.
+                default:
+                case TIME_ZONE_ID_INVALID:
+                    isDst = false;
+                    reason = @symbol(TIME_ZONE_ID_INVALID);
+                    error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+                    break;
+            }
+        }  // End WINXP backward compatibility
     }
 
     hour = __mkSmallInteger(sysTimePtr->wHour);
@@ -12286,22 +12311,22 @@
 "/    '--> REASON: ' errorPrint. reason errorPrintCR. '--> ERROR: ' errorPrint. error errorPrintCR.
 
     year isNil ifTrue:[
-	TimeConversionError raiseErrorString:' - out of range'.
+        TimeConversionError raiseErrorString:' - out of range'.
     ].
 
     info := self timeInfoClass new.
     info
-	year:year
-	month:month
-	day:day
-	hours:hour
-	minutes:minute
-	seconds:second
-	milliseconds:millis
-	utcOffset:utcOffset
-	dst:isDst
-	dayInYear:yDay
-	dayInWeek:weekDay.
+        year:year
+        month:month
+        day:day
+        hours:hour
+        minutes:minute
+        seconds:second
+        milliseconds:millis
+        utcOffset:utcOffset
+        dst:isDst
+        dayInYear:yDay
+        dayInWeek:weekDay.
 
     LastTimeInfo := info.
     LastOsTimeLow := tLow.
@@ -12338,13 +12363,13 @@
 
     appDataDirFromEnv := self getEnvironment:'APPDATA'.
     appDataDirFromEnv notNil ifTrue:[
-	^ appDataDirFromEnv , '\' , appName
+        ^ appDataDirFromEnv , '\' , appName
     ].
     appDataDirFromRegistry :=
-	self registryEntry key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
-			    valueNamed:'AppData'.
+        self registryEntry key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
+                            valueNamed:'AppData'.
     appDataDirFromRegistry notNil ifTrue:[
-	^ appDataDirFromRegistry , '\' , appName
+        ^ appDataDirFromRegistry , '\' , appName
     ].
     ^ super getApplicationDataDirectoryFor:appName
 
@@ -12364,15 +12389,15 @@
     |dir path|
 
     path := self registryEntry
-		    key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
-		    valueNamed:'Desktop'.
+                    key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
+                    valueNamed:'Desktop'.
 
     path isNil ifTrue:[
-	"Fallback"
-	dir := self getHomeDirectory.
-	dir isNil ifTrue:[ ^ nil ].
-
-	path := dir , '\Desktop'.
+        "Fallback"
+        dir := self getHomeDirectory.
+        dir isNil ifTrue:[ ^ nil ].
+
+        path := dir , '\Desktop'.
     ].
 
     (self isValidPath:path) ifFalse:[ ^ nil ].
@@ -12394,11 +12419,11 @@
     |dir|
 
     dir := self registryEntry
-		    key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
-		    valueNamed:'Personal'.
+                    key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
+                    valueNamed:'Personal'.
 
     dir isNil ifTrue:[
-	dir := self getHomeDirectory.
+        dir := self getHomeDirectory.
     ].
 
     ^ dir.
@@ -12449,11 +12474,11 @@
     info := self userInfoOf:userID.
     (info notNil
     and:[info includesKey:#gecos]) ifTrue:[
-	gecos := info at:#gecos.
-	(gecos includes:$,) ifTrue:[
-	    ^ gecos copyTo:(gecos indexOf:$,) - 1
-	].
-	^ gecos
+        gecos := info at:#gecos.
+        (gecos includes:$,) ifTrue:[
+            ^ gecos copyTo:(gecos indexOf:$,) - 1
+        ].
+        ^ gecos
     ].
     ^ self getUserNameFromID:userID
 
@@ -12501,7 +12526,7 @@
 
     dir := self getEnvironment:'USERPROFILE'.
     dir isNil ifTrue:[
-	dir := '.'.
+        dir := '.'.
     ].
     ^ dir.
 
@@ -12526,33 +12551,33 @@
     char *name = (char *)0;
 
     if (firstCall) {
-	DWORD nameSize = sizeof(cachedName);
-
-	if (GetUserName(cachedName, &nameSize) == TRUE) {
-	    name = cachedName;
-	    firstCall = 0;
-	}
+        DWORD nameSize = sizeof(cachedName);
+
+        if (GetUserName(cachedName, &nameSize) == TRUE) {
+            name = cachedName;
+            firstCall = 0;
+        }
     } else {
-	name = cachedName;
+        name = cachedName;
     }
 
     /*
      * try a few common environment variables ...
      */
     if (! name || (name[0] == 0) ) {
-	name = getenv("LOGIN");
-	if (! name || (name[0] == 0) ) {
-	    name = getenv("LOGNAME");
-	    if (! name || (name[0] == 0) ) {
-		name = getenv("USER");
-	    }
-	}
+        name = getenv("LOGIN");
+        if (! name || (name[0] == 0) ) {
+            name = getenv("LOGNAME");
+            if (! name || (name[0] == 0) ) {
+                name = getenv("USER");
+            }
+        }
     }
     /*
      * nope - I really font know who you are.
      */
     if (! name || (name[0] == 0) ) {
-	name = "you";
+        name = "you";
     }
 
     RETURN ( __MKSTRING(name) );
@@ -12583,7 +12608,7 @@
      This is the login name, not the fullName."
 
     aNumber == self getUserID ifTrue:[
-	^ self getLoginName
+        ^ self getLoginName
     ].
 
     ^ '? (' , aNumber printString , ')'
@@ -12608,30 +12633,30 @@
 
     h_Process = GetCurrentProcess();
     if (OpenProcessToken(h_Process,TOKEN_READ,&h_Token) == FALSE) {
-	console_printf("Error: Couldn't open the process token\n");
-	goto getOutOfHere;
+        console_printf("Error: Couldn't open the process token\n");
+        goto getOutOfHere;
     }
     if (GetTokenInformation(h_Token,TokenElevation,&t_TokenElevation,sizeof(t_TokenElevation),&dw_TokenLength) == FALSE) {
-	console_printf("Error: Couldn't retrieve the elevation right of the current process token\n");
-	CloseHandle(h_Token);
-	goto getOutOfHere;
+        console_printf("Error: Couldn't retrieve the elevation right of the current process token\n");
+        CloseHandle(h_Token);
+        goto getOutOfHere;
     }
     if (t_TokenElevation.TokenIsElevated != 0) {
-	if (GetTokenInformation(h_Token,TokenElevationType,&e_ElevationType,sizeof(e_ElevationType),&dw_TokenLength) == FALSE) {
-	    console_printf("Error: Couldn't retrieve the elevation token class\n");
-	    CloseHandle(h_Token);
-	    goto getOutOfHere;
-	} else {
-	    if (e_ElevationType == TokenElevationTypeFull || e_ElevationType == TokenElevationTypeDefault) {
-		CloseHandle(h_Token);
-		RETURN(true);
-	    }
-	    CloseHandle(h_Token);
-	    RETURN(false);
-	}
+        if (GetTokenInformation(h_Token,TokenElevationType,&e_ElevationType,sizeof(e_ElevationType),&dw_TokenLength) == FALSE) {
+            console_printf("Error: Couldn't retrieve the elevation token class\n");
+            CloseHandle(h_Token);
+            goto getOutOfHere;
+        } else {
+            if (e_ElevationType == TokenElevationTypeFull || e_ElevationType == TokenElevationTypeDefault) {
+                CloseHandle(h_Token);
+                RETURN(true);
+            }
+            CloseHandle(h_Token);
+            RETURN(false);
+        }
     } else {
-	CloseHandle(h_Token);
-	RETURN(false);
+        CloseHandle(h_Token);
+        RETURN(false);
     }
 getOutOfHere: ;
 %}.
@@ -12652,22 +12677,22 @@
 
     // Initialize SID.
     if( !AllocateAndInitializeSid( &NtAuthority,
-				   2,
-				   SECURITY_BUILTIN_DOMAIN_RID,
-				   DOMAIN_ALIAS_RID_ADMINS,
-				   0, 0, 0, 0, 0, 0,
-				   &AdministratorsGroup))
+                                   2,
+                                   SECURITY_BUILTIN_DOMAIN_RID,
+                                   DOMAIN_ALIAS_RID_ADMINS,
+                                   0, 0, 0, 0, 0, 0,
+                                   &AdministratorsGroup))
     {
-	// Initializing SID Failed.
-	RETURN( false );
+        // Initializing SID Failed.
+        RETURN( false );
     }
     // Check whether the token is present in admin group.
     if( !CheckTokenMembership( NULL,
-			       AdministratorsGroup,
-			       &IsInAdminGroup ))
+                               AdministratorsGroup,
+                               &IsInAdminGroup ))
     {
-	// Error occurred.
-	IsInAdminGroup = FALSE;
+        // Error occurred.
+        IsInAdminGroup = FALSE;
     }
     // Free SID and return.
     FreeSid(AdministratorsGroup);
@@ -12704,10 +12729,10 @@
     info := IdentityDictionary new.
     loginName := self getLoginName.
     (aNameOrID == self getUserID or:[aNameOrID = loginName]) ifTrue:[
-	userName := loginName.
-	info at:#dir put:self getHomeDirectory.
+        userName := loginName.
+        info at:#dir put:self getHomeDirectory.
     ] ifFalse:[
-	userName := 'unknown'.
+        userName := 'unknown'.
     ].
     info at:#name put:userName.
     "/ uid notNil ifTrue:[info at:#uid put:uid].
@@ -12750,69 +12775,69 @@
     DWORD exitCode;
 
     if (__isExternalAddressLike(pidToWait) ) {
-	HANDLE __pidToWait = _HANDLEVal(pidToWait);
+        HANDLE __pidToWait = _HANDLEVal(pidToWait);
 
 #ifdef PROCESSDEBUG_CHILDPROCESSWAIT
-	console_printf("childProcessWait %x b %d\n",__pidToWait,blocking==true);
-#endif
-
-	if (blocking == true) {
+        console_printf("childProcessWait %x b %d\n",__pidToWait,blocking==true);
+#endif
+
+        if (blocking == true) {
 #ifdef DO_WRAP_CALLS
-	    do {
-		__threadErrno = 0;
-		// do not cast to INT - will loose sign bit then!
-		endStatus = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, __pidToWait, INFINITE);
-	    } while ((endStatus < 0) && (__threadErrno == EINTR));
-#else
-	    endStatus = WaitForSingleObject(__pidToWait, INFINITE);
-	    if (endStatus < 0) {
-		__threadErrno = __WIN32_ERR(GetLastError());
-	    }
-#endif
-	    if (endStatus == WAIT_TIMEOUT) {
-		if (blocking==true)
-		    status = @symbol(timeout);
-		else {
-		    status = @symbol(continue);
+            do {
+                __threadErrno = 0;
+                // do not cast to INT - will loose sign bit then!
+                endStatus = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, __pidToWait, INFINITE);
+            } while ((endStatus < 0) && (__threadErrno == EINTR));
+#else
+            endStatus = WaitForSingleObject(__pidToWait, INFINITE);
+            if (endStatus < 0) {
+                __threadErrno = __WIN32_ERR(GetLastError());
+            }
+#endif
+            if (endStatus == WAIT_TIMEOUT) {
+                if (blocking==true)
+                    status = @symbol(timeout);
+                else {
+                    status = @symbol(continue);
 #ifdef PROCESSDEBUG_CHILDPROCESSWAIT
-		    console_printf("ret nil\n");
-#endif
-		    RETURN(nil);
-		}
-	    } else if (endStatus == WAIT_OBJECT_0) {
-
-	    }
-	}
+                    console_printf("ret nil\n");
+#endif
+                    RETURN(nil);
+                }
+            } else if (endStatus == WAIT_OBJECT_0) {
+
+            }
+        }
 
 #ifdef PROCESSDEBUG_CHILDPROCESSWAIT
-	console_printf("GetExitCodeProcess\n");
-#endif
-
-	if (GetExitCodeProcess(__pidToWait, &exitCode)) {
-	    if (exitCode == STILL_ACTIVE) {
+        console_printf("GetExitCodeProcess\n");
+#endif
+
+        if (GetExitCodeProcess(__pidToWait, &exitCode)) {
+            if (exitCode == STILL_ACTIVE) {
 #ifdef PROCESSDEBUG_CHILDPROCESSWAIT
-		console_printf("exitCode: STILL_ACTIVE\n");
-#endif
-		RETURN(nil);
-	    }
+                console_printf("exitCode: STILL_ACTIVE\n");
+#endif
+                RETURN(nil);
+            }
 #ifdef PROCESSDEBUG_CHILDPROCESSWAIT
-	    console_printf("exitCode %d\n", exitCode);
-#endif
-	    status = @symbol(exit);
-	    code = __mkSmallInteger(exitCode);
-	    core = false;
-	    pid = pidToWait;
-	} else {
-	    code = __mkSmallInteger(GetLastError());
+            console_printf("exitCode %d\n", exitCode);
+#endif
+            status = @symbol(exit);
+            code = __mkSmallInteger(exitCode);
+            core = false;
+            pid = pidToWait;
+        } else {
+            code = __mkSmallInteger(GetLastError());
 #ifdef PROCESSDEBUG_CHILDPROCESSWAIT
-	    console_printf("GetExitCodeProcess failed: error=%d\n", GetLastError());
-#endif
-	}
+            console_printf("GetExitCodeProcess failed: error=%d\n", GetLastError());
+#endif
+        }
     }
 %}.
 
     (status isNil or:[pid isNil]) ifTrue:[
-	^ self primitiveFailed:code
+        ^ self primitiveFailed:code
     ].
 
 "/ Transcript show:'pid: '; show:pid; show:' status: '; show:status;
@@ -12832,15 +12857,15 @@
     unsigned long bytes_available;
 
     if (__Class(fd) == @global(Win32SocketHandle)) {
-	if (ioctlsocket((SOCKET)_HANDLEVal(fd), FIONREAD, &bytes_available) == 0) {
-	    if (bytes_available > _MAX_INT) bytes_available = _MAX_INT;
-	    RETURN(__mkSmallInteger(bytes_available));
-	}
+        if (ioctlsocket((SOCKET)_HANDLEVal(fd), FIONREAD, &bytes_available) == 0) {
+            if (bytes_available > _MAX_INT) bytes_available = _MAX_INT;
+            RETURN(__mkSmallInteger(bytes_available));
+        }
     } else if (__isSmallInteger(fd)) {
-	if (PeekNamedPipe(_get_osfhandle(__intVal(fd)), NULL, 0, NULL, &bytes_available, NULL) != 0){
-	    if (bytes_available > _MAX_INT) bytes_available = _MAX_INT;
-	    RETURN(__mkSmallInteger(bytes_available));
-	}
+        if (PeekNamedPipe(_get_osfhandle(__intVal(fd)), NULL, 0, NULL, &bytes_available, NULL) != 0){
+            if (bytes_available > _MAX_INT) bytes_available = _MAX_INT;
+            RETURN(__mkSmallInteger(bytes_available));
+        }
     }
 %}.
 
@@ -12882,53 +12907,53 @@
     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:
@@ -12938,262 +12963,262 @@
     numHandles = numSockets = numPipes = 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);
-		numSockets++;
-	    } else if (__isSmallInteger(fd)) {
-		DWORD canRead = 0;
-		int res = PeekNamedPipe(_get_osfhandle(__intVal(fd)), 0, 0, 0, &canRead, 0);
-		// read would return immediately both on error or when there is data in the pipe
-		if (res == 0 || canRead > 0) {
-		    if (*pcntR < resultSizeReadable) {
-			__arrayVal(readableResultFdArray)[*pcntR] = fd;
-		    }
-		    (*pcntR)++; cntAll++;
-		}
-		numPipes++;
-		numPipes++;
-	    } 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);
+                numSockets++;
+            } else if (__isSmallInteger(fd)) {
+                DWORD canRead = 0;
+                int res = PeekNamedPipe(_get_osfhandle(__intVal(fd)), 0, 0, 0, &canRead, 0);
+                // read would return immediately both on error or when there is data in the pipe
+                if (res == 0 || canRead > 0) {
+                    if (*pcntR < resultSizeReadable) {
+                        __arrayVal(readableResultFdArray)[*pcntR] = fd;
+                    }
+                    (*pcntR)++; cntAll++;
+                }
+                numPipes++;
+                numPipes++;
+            } 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);
-		numSockets++;
-	    } 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);
+                numSockets++;
+            } 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 fdOrPid = __arrayVal(exceptFdArray)[i];
-
-	if (fdOrPid != nil) {
-	    if (__Class(fdOrPid) == @global(Win32SocketHandle)) {
-		FD_SET (_HANDLEVal(fdOrPid), &exceptFds);
-		numSockets++;
-	    } else if (__isExternalAddressLike(fdOrPid)) {
-		// a PID
-		hArray  [numHandles] = _HANDLEVal(fdOrPid);
-		retArray[numHandles] = i + 20000;
-		++numHandles;
-	    }
-	}
+        OBJ fdOrPid = __arrayVal(exceptFdArray)[i];
+
+        if (fdOrPid != nil) {
+            if (__Class(fdOrPid) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fdOrPid), &exceptFds);
+                numSockets++;
+            } else if (__isExternalAddressLike(fdOrPid)) {
+                // a PID
+                hArray  [numHandles] = _HANDLEVal(fdOrPid);
+                retArray[numHandles] = i + 20000;
+                ++numHandles;
+            }
+        }
     }
 
     // +++++ checking for Windows Handles +++++++++++++++++++++++++++++++++++++++++
     if (numHandles != 0) {
-	DWORD res;
-	int idx;
-	INT t;
-
-	if (numSockets || pass > 1) {
-	    // do not wait - wait when checking for sockets
-	    t = 0;
-	} else if (__isSmallInteger(millis)) {
-	    t = __intVal(millis);
-	} else {
-	    t = INFINITE;
-	}
+        DWORD res;
+        int idx;
+        INT t;
+
+        if (numSockets || pass > 1) {
+            // do not wait - wait when checking for sockets
+            t = 0;
+        } else if (__isSmallInteger(millis)) {
+            t = __intVal(millis);
+        } else {
+            t = INFINITE;
+        }
 
 #ifdef SELECT3DEBUGWIN32
-	console_printf("wait numhandles = %d timeout = %d\n", numHandles, t);
-#endif
-
-	res = __vmWait(numHandles, hArray, MAXHANDLE, (int)t);
-
-	if (res == WAIT_TIMEOUT) {
+        console_printf("wait numhandles = %d timeout = %d\n", numHandles, t);
+#endif
+
+        res = __vmWait(numHandles, hArray, MAXHANDLE, (int)t);
+
+        if (res == WAIT_TIMEOUT) {
 #ifdef SELECT3DEBUGWIN32
-	    console_printf("- timeOut" );
-#endif
-	    goto checkSockets;
-	}
-	if (res == __WAIT_INTERRUPTED) {
+            console_printf("- timeOut" );
+#endif
+            goto checkSockets;
+        }
+        if (res == __WAIT_INTERRUPTED) {
 #ifdef SELECT3DEBUGWIN32
-	    console_printf("- interrupted\n" );
-#endif
-	    goto done;
-	}
-
-	if (res == WAIT_FAILED) {
+            console_printf("- interrupted\n" );
+#endif
+            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));
-	    }
-	}
-
-	if ((res < 0) || (res >= 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");
-		}
-	    } else {
-		console_printf("- res=%d error1 %d\n", res, GetLastError());
-	    }
-	    goto done;
-	}
-
-	idx = retArray[res];
-	cntAll++;
+                    console_printf("Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
+                }
+                @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+                RETURN (__mkSmallInteger(-1));
+            }
+        }
+
+        if ((res < 0) || (res >= 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");
+                }
+            } else {
+                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
+        }
     }
 
 
 // ++++++++++ Check Sockets +++++++++++++++++++++++++++++++++++
 checkSockets:
     if (pass > 1)       // perform maximum 2 passes
-	goto done;
+        goto done;
 
     if (numSockets) {
-	struct timeval tv = {0, 0};
-	struct timeval *tvp = &tv;
-	int nReady;
-
-	// do not wait, if there are threads that can be resumed
-	if (!__vmTestIfAnyThreadMustBeResumed() && cntAll == 0) {
-	    // no ready handles found yet - do wait
-	    if (__isSmallInteger(millis)) {
-		tv.tv_usec = __intVal(millis) * 1000;
-	    } else {
-		// no timeout
-		tvp = 0;
-	    }
-	}
+        struct timeval tv = {0, 0};
+        struct timeval *tvp = &tv;
+        int nReady;
+
+        // do not wait, if there are threads that can be resumed
+        if (!__vmTestIfAnyThreadMustBeResumed() && cntAll == 0) {
+            // no ready handles found yet - do wait
+            if (__isSmallInteger(millis)) {
+                tv.tv_usec = __intVal(millis) * 1000;
+            } else {
+                // no timeout
+                tvp = 0;
+            }
+        }
 
 #ifdef SELECT3DEBUGWIN32
-	console_printf("select numSockets = %d\n", numSockets);
-#endif
-	nReady = select(1 , &readFds, &writeFds, &exceptFds, tvp);  // first parameter to select is ignored in windows
-	if (nReady < 0) {
+        console_printf("select numSockets = %d\n", numSockets);
+#endif
+        nReady = select(1 , &readFds, &writeFds, &exceptFds, tvp);  // 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, numSockets);
-#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 (tvp && tv.tv_usec != 0 && (numHandles != 0 || numPipes != 0)) {
-	    // back after timeout, maybe some handles or pipes did wake up
-	    // in the meantime?
-	    pass = 2;
-	    goto pollAgain;
-	}
+            console_printf("select nReady %d of %d\n", nReady, numSockets);
+#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 (tvp && tv.tv_usec != 0 && (numHandles != 0 || numPipes != 0)) {
+            // back after timeout, maybe some handles 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;
@@ -13241,59 +13266,59 @@
     INT i, count, hIdx;
 
     if (! __isArrayLike(fdOrHandleArray)) {
-	goto fail;
+        goto fail;
     }
     count = __arraySize(fdOrHandleArray);
 
     for (hIdx=0, i=0; i<count; i++) {
-	OBJ fdOrHandle = __ArrayInstPtr(fdOrHandleArray)->a_element[i];
-	HANDLE h;
-
-	if (fdOrHandle != nil) {
-	    if (__isExternalAddressLike(fdOrHandle)) {
-		h = _HANDLEVal(fdOrHandle);
-	    } else {
-		if (__isSmallInteger(fdOrHandle)) {
-		    h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
-		} else {
-		    goto fail;
-		}
-	    }
-	    hArray[hIdx] = h;
-	    idxArray[hIdx++] = i;
-	}
+        OBJ fdOrHandle = __ArrayInstPtr(fdOrHandleArray)->a_element[i];
+        HANDLE h;
+
+        if (fdOrHandle != nil) {
+            if (__isExternalAddressLike(fdOrHandle)) {
+                h = _HANDLEVal(fdOrHandle);
+            } else {
+                if (__isSmallInteger(fdOrHandle)) {
+                    h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
+                } else {
+                    goto fail;
+                }
+            }
+            hArray[hIdx] = h;
+            idxArray[hIdx++] = i;
+        }
     }
 
     if (__isSmallInteger(millis)) {
-	t = __intVal(millis);
+        t = __intVal(millis);
     } else {
-	t = INFINITE;
+        t = INFINITE;
     }
 
 #ifdef DO_WRAP_CALLS
     if (t != 0) {
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    res = STX_API_CALL4( "WaitForMultipleObjects", WaitForMultipleObjects, hIdx, hArray, FALSE, t);
-	} while ((res < 0) && (__threadErrno == EINTR));
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            res = STX_API_CALL4( "WaitForMultipleObjects", WaitForMultipleObjects, hIdx, hArray, FALSE, t);
+        } while ((res < 0) && (__threadErrno == EINTR));
     } else
 #endif
     {
-	res = WaitForMultipleObjects(hIdx, hArray, FALSE, t);
-	if (res < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
+        res = WaitForMultipleObjects(hIdx, hArray, FALSE, t);
+        if (res < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
     }
 
     if (res == WAIT_FAILED) {
-	RETURN (nil);
+        RETURN (nil);
     }
     if (res == WAIT_TIMEOUT) {
-	RETURN (nil);
+        RETURN (nil);
     }
     if ((res >= WAIT_OBJECT_0) && (res < (WAIT_OBJECT_0+hIdx))) {
-	RETURN (__arrayVal(fdOrHandleArray)[idxArray[res-WAIT_OBJECT_0]]);
+        RETURN (__arrayVal(fdOrHandleArray)[idxArray[res-WAIT_OBJECT_0]]);
     }
 
     RETURN (nil);
@@ -13318,38 +13343,38 @@
     HANDLE h = NULL;
 
     if (__isExternalAddressLike(fdOrHandle)) {
-	h = _HANDLEVal(fdOrHandle);
+        h = _HANDLEVal(fdOrHandle);
     } else {
-	if (__isSmallInteger(fdOrHandle)) {
-	    h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
-	} else {
-	    goto fail;
-	}
+        if (__isSmallInteger(fdOrHandle)) {
+            h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
+        } else {
+            goto fail;
+        }
     }
 
     if (__isSmallInteger(millis)) {
-	t = __intVal(millis);
+        t = __intVal(millis);
     } else {
-	t = INFINITE;
+        t = INFINITE;
     }
 
 #ifdef DO_WRAP_CALLS
     do {
-	__threadErrno = 0;
-	// do not cast to INT - will loose sign bit then!
-	res = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, h,  t);
+        __threadErrno = 0;
+        // do not cast to INT - will loose sign bit then!
+        res = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, h,  t);
     } while ((res < 0) && (__threadErrno == EINTR));
 #else
     res = WaitForSingleObject(h, t);
     if (res < 0) {
-	__threadErrno = __WIN32_ERR(GetLastError());
+        __threadErrno = __WIN32_ERR(GetLastError());
     }
 #endif
     if (res == WAIT_FAILED) {
-	RETURN (nil);
+        RETURN (nil);
     }
     if (res == WAIT_TIMEOUT) {
-	RETURN (nil);
+        RETURN (nil);
     }
 
     RETURN (fdOrHandle);
@@ -13544,11 +13569,11 @@
 
 type:t mode:m uid:u gid:g size:s id:i accessed:aT modified:mT created:cT sourcePath:lP fullName:fullName alternativeName:name2
     ^ self basicNew
-	type:t mode:m uid:u gid:g size:s
-	id:i accessed:aT modified:mT created:cT
-	sourcePath:lP
-	fullName:fullName
-	alternativeName:name2
+        type:t mode:m uid:u gid:g size:s
+        id:i accessed:aT modified:mT created:cT
+        sourcePath:lP
+        fullName:fullName
+        alternativeName:name2
 ! !
 
 !Win32OperatingSystem::FileStatusInfo methodsFor:'accessing'!
@@ -13569,18 +13594,18 @@
 
     path := self alternativePathName.
     path notNil ifTrue:[
-	idx := path lastIndexOf:$\ startingAt:path size-1.
-	idx ~~ 0 ifTrue:[
-	    path := path copyFrom:(idx+1).
-	].
+        idx := path lastIndexOf:$\ startingAt:path size-1.
+        idx ~~ 0 ifTrue:[
+            path := path copyFrom:(idx+1).
+        ].
     ].
 
     ^ path
 
     "
-	'C:\' asFilename info alternativeName
-	'C:\Dokumente und Einstellungen\' asFilename info alternativeName
-	'C:\Dokumente und Einstellungen' asFilename info alternativeName
+        'C:\' asFilename info alternativeName
+        'C:\Dokumente und Einstellungen\' asFilename info alternativeName
+        'C:\Dokumente und Einstellungen' asFilename info alternativeName
     "
 !
 
@@ -13590,14 +13615,14 @@
 
     "/ access lazily...
     alternativePathName isNil ifTrue:[
-	alternativePathName := (OperatingSystem getShortPathName:sourcePath) asSingleByteString.
+        alternativePathName := (OperatingSystem getShortPathName:sourcePath) asSingleByteString.
     ].
 
     ^ alternativePathName
 
     "
-	'C:\' asFilename info alternativePathName
-	'C:\Dokumente und Einstellungen' asFilename info alternativePathName
+        'C:\' asFilename info alternativePathName
+        'C:\Dokumente und Einstellungen' asFilename info alternativePathName
     "
 !
 
@@ -13621,18 +13646,18 @@
 
     path := self fullPathName.
     path notNil ifTrue:[
-	idx := path lastIndexOf:$\ startingAt:path size-1.
-	idx ~~ 0 ifTrue:[
-	    path := path copyFrom:(idx+1).
-	].
+        idx := path lastIndexOf:$\ startingAt:path size-1.
+        idx ~~ 0 ifTrue:[
+            path := path copyFrom:(idx+1).
+        ].
     ].
 
     ^ path
 
     "
-	'\' asFilename info fullName
-	'C:\' asFilename info fullName
-	'C:\Dokumente und Einstellungen' asFilename info fullName
+        '\' asFilename info fullName
+        'C:\' asFilename info fullName
+        'C:\Dokumente und Einstellungen' asFilename info fullName
     "
 !
 
@@ -13642,14 +13667,14 @@
 
     "/ access lazily...
     fullPathName isNil ifTrue:[
-	fullPathName := OperatingSystem getLongPathName:sourcePath.
+        fullPathName := OperatingSystem getLongPathName:sourcePath.
     ].
 
     ^ fullPathName
 
     "
-	'C:\' asFilename info fullPathName
-	'C:\Dokumente und Einstellungen' asFilename info fullPathName
+        'C:\' asFilename info fullPathName
+        'C:\Dokumente und Einstellungen' asFilename info fullPathName
     "
 !
 
@@ -13670,9 +13695,9 @@
 
     "/ access lazily...
     linkTargetPath isNil ifTrue:[
-	type == #symbolicLink ifTrue:[
-	    linkTargetPath := OperatingSystem getLinkTarget:sourcePath.
-	]
+        type == #symbolicLink ifTrue:[
+            linkTargetPath := OperatingSystem getLinkTarget:sourcePath.
+        ]
     ].
 
     ^ linkTargetPath
@@ -13923,9 +13948,9 @@
 
 isSpecialFile
     ^ (type ~~ #directory
-	and:[type ~~ #remoteDirectory
-	and:[type ~~ #regular
-	and:[type ~~ #symbolicLink
+        and:[type ~~ #remoteDirectory
+        and:[type ~~ #regular
+        and:[type ~~ #symbolicLink
     ]]])
 !
 
@@ -13977,20 +14002,20 @@
 
     [Instance variables:]
 
-	pid     <Integer>       OS-Process identifier
-
-	status  <Symbol>        either #exit #signal #stop #continue
-
-	code    <Integer>       either exitcode or signalnumber
-
-	core    <Boolean>       true if core has been dumped
+        pid     <Integer>       OS-Process identifier
+
+        status  <Symbol>        either #exit #signal #stop #continue
+
+        code    <Integer>       either exitcode or signalnumber
+
+        core    <Boolean>       true if core has been dumped
 
 
     [author:]
-	Stefan Vogel
+        Stefan Vogel
 
     [see also:]
-	OperatingSystem
+        OperatingSystem
 "
 ! !
 
@@ -14139,15 +14164,15 @@
     COFF machine type IDs.
 
     [author:]
-	Jan Vrany
+        Jan Vrany
 
     [instance variables:]
 
     [class variables:]
 
     [see also:]
-	Microsoft Portable Executable and Common Object File Format Specification,
-	section 6. Machine Types
+        Microsoft Portable Executable and Common Object File Format Specification,
+        section 6. Machine Types
 
 "
 ! !
@@ -14207,14 +14232,14 @@
     information about executables / .dlls on Windows
 
     [author:]
-	Jan Vrany <jan.vrany@fit.cvut.cz>
+        Jan Vrany <jan.vrany@fit.cvut.cz>
 
     [instance variables:]
 
     [class variables:]
 
     [see also:]
-	Microsoft Portable Executable and Common Object File Format Specification
+        Microsoft Portable Executable and Common Object File Format Specification
 
 "
 ! !
@@ -14244,24 +14269,24 @@
 initializeOnFile: aStringOrFilename
     file := aStringOrFilename asFilename.
     file exists ifFalse:[
-	self error:'Given file does not exist'.
-	^ nil
+        self error:'Given file does not exist'.
+        ^ nil
     ].
     file isRegularFile ifFalse:[
-	self error:'Given file is not a regular file'.
-	^ nil
+        self error:'Given file is not a regular file'.
+        ^ nil
     ].
     file readingFileDo:[ :s |
-	| sig |
-	s binary.
-	s position: PE_Signature_OFFSET_OFFSET.
-	s position: (s nextUnsignedLongMSB: false).
-	sig := s next: PE_Signature size.
-	sig = PE_Signature ifFalse:[
-	    self error: 'Given file is not a valid PE file (no valid PE signature found)'.
-	    ^ nil
-	].
-	data := s next: COFF_HEADER_SIZE
+        | sig |
+        s binary.
+        s position: PE_Signature_OFFSET_OFFSET.
+        s position: (s nextUnsignedLongMSB: false).
+        sig := s next: PE_Signature size.
+        sig = PE_Signature ifFalse:[
+            self error: 'Given file is not a valid PE file (no valid PE signature found)'.
+            ^ nil
+        ].
+        data := s next: COFF_HEADER_SIZE
     ].
 
     "Created: / 16-03-2015 / 14:34:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -14286,24 +14311,24 @@
 counterIndexTextDictionary
 
     "
-	self counterIndexTextDictionary
+        self counterIndexTextDictionary
     "
 
     CounterIndexTextDictionary isNil ifTrue:[
-	self synchronized:[
-	    CounterIndexTextDictionary isNil ifTrue:[
-		|performanceText counterIndexTextDictionary|
-
-		performanceText := self getPerformanceText valueNamed:'Counter'.
-		counterIndexTextDictionary := IdentityDictionary new.
-
-		1 to:performanceText size by:2 do:[:index|
-		    counterIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
-		].
-
-		CounterIndexTextDictionary := counterIndexTextDictionary.
-	    ].
-	].
+        self synchronized:[
+            CounterIndexTextDictionary isNil ifTrue:[
+                |performanceText counterIndexTextDictionary|
+
+                performanceText := self getPerformanceText valueNamed:'Counter'.
+                counterIndexTextDictionary := IdentityDictionary new.
+
+                1 to:performanceText size by:2 do:[:index|
+                    counterIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
+                ].
+
+                CounterIndexTextDictionary := counterIndexTextDictionary.
+            ].
+        ].
     ].
 
     ^ CounterIndexTextDictionary
@@ -14312,24 +14337,24 @@
 helpIndexTextDictionary
 
     "
-	self helpIndexTextDictionary
+        self helpIndexTextDictionary
     "
 
     HelpIndexTextDictionary isNil ifTrue:[
-	self synchronized:[
-	    HelpIndexTextDictionary isNil ifTrue:[
-		|performanceText helpIndexTextDictionary|
-
-		performanceText := self getPerformanceText valueNamed:'Help'.
-		helpIndexTextDictionary := IdentityDictionary new.
-
-		1 to:performanceText size by:2 do:[:index|
-		    helpIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
-		].
-
-		HelpIndexTextDictionary := helpIndexTextDictionary.
-	    ].
-	].
+        self synchronized:[
+            HelpIndexTextDictionary isNil ifTrue:[
+                |performanceText helpIndexTextDictionary|
+
+                performanceText := self getPerformanceText valueNamed:'Help'.
+                helpIndexTextDictionary := IdentityDictionary new.
+
+                1 to:performanceText size by:2 do:[:index|
+                    helpIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
+                ].
+
+                HelpIndexTextDictionary := helpIndexTextDictionary.
+            ].
+        ].
     ].
 
     ^ HelpIndexTextDictionary
@@ -14366,86 +14391,86 @@
 documentation
 
     "
-	VISTA:
-
-	Wer versucht unter Vista die Registy HKEY_PERFORMANCE_DATA abzufragen wird zunächst enttäuscht.
-	Die UAC UserAccessControl verhindern dies nämlich (selbs für den admin).
-
-	Um dies zu umgehen:
-
-	To turn off UAC
-
-	1. Click Start, and then click Control Panel.
-	2. In Control Panel, click User Accounts.
-	3. In the User Accounts window, click User Accounts.
-	4. In the User Accounts tasks window, click Turn User Account Control on or off.
-	5. If UAC is currently configured in Admin Approval Mode, the User Account Control message appears. Click Continue.
-	6. Clear the Use User Account Control (UAC) to help protect your computer check box, and then click OK.
-	7. Click Restart Now to apply the change right away, or click Restart Later and close the User Accounts tasks window.
+        VISTA:
+
+        Wer versucht unter Vista die Registy HKEY_PERFORMANCE_DATA abzufragen wird zunächst enttäuscht.
+        Die UAC UserAccessControl verhindern dies nämlich (selbs für den admin).
+
+        Um dies zu umgehen:
+
+        To turn off UAC
+
+        1. Click Start, and then click Control Panel.
+        2. In Control Panel, click User Accounts.
+        3. In the User Accounts window, click User Accounts.
+        4. In the User Accounts tasks window, click Turn User Account Control on or off.
+        5. If UAC is currently configured in Admin Approval Mode, the User Account Control message appears. Click Continue.
+        6. Clear the Use User Account Control (UAC) to help protect your computer check box, and then click OK.
+        7. Click Restart Now to apply the change right away, or click Restart Later and close the User Accounts tasks window.
     "
 !
 
 examples
 
     "
-	######################################### PRIMITIVE
-	self getUsedMemoryInPercentage.
-
-	self getPhysicalMemoryInKB.
-	self getPhysicalMemoryInMB.
-
-	self getFreePhysicalMemoryInKB.
-	self getFreePhysicalMemoryInMB.
-
-	self getPageFileSizeInKB.
-	self getPageFileSizeInMB.
-
-	self getFreePageFileSizeInKB.
-	self getFreePageFileSizeInMB.
-
-	self getVirtualMemoryInKB.
-	self getVirtualMemoryInMB.
-
-	######################################### REGISTRY
-	self helpIndexTextDictionary
-	self counterIndexTextDictionary
-
-	self global getCounterNameIndexArray.
-	self global getObjectNameIndexArray.
-
-	self processor getCounterNameIndexArray.
-	self processor processorUsage.
-	self processor processorUsageFromLast.
-	self processor interruptsPerSecond.
-	self processor interruptsPerSecondFromLast.
-
-	self process getCounterNameIndexArray.
-	self process processUsage.
-	self process processUsageFromLast.
-	self process runningProcesses.
-	self process runningProcessNameList.
-
-	self network getCounterNameIndexArray.
-	self network kBytesReceivedPerSecond.
-	self network kBytesReceivedPerSecondFromLast.
-	self network kBytesSentPerSecond.
-	self network kBytesSentPerSecondFromLast.
-
-	self memory getCounterNameIndexArray.
-	self memory availableMBytes.
-	self memory availableKBytes.
-
-	self diskIO getCounterNameIndexArray.
-	self diskIO diskSpaceFreeInMegaByte.
-	self diskIO diskQueueLength.
-	self diskIO diskTransfersPerSecond.
-	self diskIO diskTransfersPerSecondFromlast.
-	self diskIO diskReadsPerSecond.
-	self diskIO diskReadsPerSecondFromLast.
-	self diskIO diskWritesPerSecond.
-	self diskIO diskWritesPerSecondFromLast.
-	self diskIO diskBytesPerSecond.
-	self diskIO diskBytesPerSecondFromLast.
+        ######################################### PRIMITIVE
+        self getUsedMemoryInPercentage.
+
+        self getPhysicalMemoryInKB.
+        self getPhysicalMemoryInMB.
+
+        self getFreePhysicalMemoryInKB.
+        self getFreePhysicalMemoryInMB.
+
+        self getPageFileSizeInKB.
+        self getPageFileSizeInMB.
+
+        self getFreePageFileSizeInKB.
+        self getFreePageFileSizeInMB.
+
+        self getVirtualMemoryInKB.
+        self getVirtualMemoryInMB.
+
+        ######################################### REGISTRY
+        self helpIndexTextDictionary
+        self counterIndexTextDictionary
+
+        self global getCounterNameIndexArray.
+        self global getObjectNameIndexArray.
+
+        self processor getCounterNameIndexArray.
+        self processor processorUsage.
+        self processor processorUsageFromLast.
+        self processor interruptsPerSecond.
+        self processor interruptsPerSecondFromLast.
+
+        self process getCounterNameIndexArray.
+        self process processUsage.
+        self process processUsageFromLast.
+        self process runningProcesses.
+        self process runningProcessNameList.
+
+        self network getCounterNameIndexArray.
+        self network kBytesReceivedPerSecond.
+        self network kBytesReceivedPerSecondFromLast.
+        self network kBytesSentPerSecond.
+        self network kBytesSentPerSecondFromLast.
+
+        self memory getCounterNameIndexArray.
+        self memory availableMBytes.
+        self memory availableKBytes.
+
+        self diskIO getCounterNameIndexArray.
+        self diskIO diskSpaceFreeInMegaByte.
+        self diskIO diskQueueLength.
+        self diskIO diskTransfersPerSecond.
+        self diskIO diskTransfersPerSecondFromlast.
+        self diskIO diskReadsPerSecond.
+        self diskIO diskReadsPerSecondFromLast.
+        self diskIO diskWritesPerSecond.
+        self diskIO diskWritesPerSecondFromLast.
+        self diskIO diskBytesPerSecond.
+        self diskIO diskBytesPerSecondFromLast.
     "
 ! !
 
@@ -14454,7 +14479,7 @@
 initialize
 
     "
-	self initialize
+        self initialize
     "
 
     PerformanceText := CounterIndexTextDictionary := HelpIndexTextDictionary := nil.
@@ -14465,7 +14490,7 @@
 getPerformanceText
 
     PerformanceText isNil ifTrue:[
-	PerformanceText := Win32OperatingSystem registryEntry key:'HKEY_PERFORMANCE_TEXT'.
+        PerformanceText := Win32OperatingSystem registryEntry key:'HKEY_PERFORMANCE_TEXT'.
     ].
 
     ^ PerformanceText
@@ -14477,16 +14502,16 @@
     |ret|
 
     %{
-	MEMORYSTATUS mState;
-	GlobalMemoryStatus (&mState);
-
-	ret = __mkSmallInteger(mState.dwAvailPageFile / 1024);
+        MEMORYSTATUS mState;
+        GlobalMemoryStatus (&mState);
+
+        ret = __mkSmallInteger(mState.dwAvailPageFile / 1024);
     %}.
 
     ^ ret
 
     "
-	self getFreePageFileSizeInKB
+        self getFreePageFileSizeInKB
     "
 !
 
@@ -14494,7 +14519,7 @@
     ^ (self getFreePageFileSizeInKB / 1024) asInteger
 
     "
-	self getFreePageFileSizeInMB
+        self getFreePageFileSizeInMB
     "
 !
 
@@ -14502,16 +14527,16 @@
     |ret|
 
     %{
-	MEMORYSTATUS mState;
-	GlobalMemoryStatus (&mState);
-
-	ret = __mkSmallInteger(mState.dwAvailPhys / 1024);
+        MEMORYSTATUS mState;
+        GlobalMemoryStatus (&mState);
+
+        ret = __mkSmallInteger(mState.dwAvailPhys / 1024);
     %}.
 
     ^ ret
 
     "
-	self getFreePhysicalMemoryInKB
+        self getFreePhysicalMemoryInKB
     "
 !
 
@@ -14519,7 +14544,7 @@
     ^ (self getFreePhysicalMemoryInKB / 1024) asInteger
 
     "
-	self getFreePhysicalMemoryInMB
+        self getFreePhysicalMemoryInMB
     "
 !
 
@@ -14527,7 +14552,7 @@
     ^ self getPageFileSizeInMB * 1024
 
     "
-	self getPageFileSizeInKB
+        self getPageFileSizeInKB
     "
 !
 
@@ -14535,16 +14560,16 @@
     |ret|
 
     %{
-	SYSTEM_INFO sInfo;
-	GetSystemInfo(&sInfo);
-
-	ret = __mkSmallInteger(sInfo.dwPageSize);
+        SYSTEM_INFO sInfo;
+        GetSystemInfo(&sInfo);
+
+        ret = __mkSmallInteger(sInfo.dwPageSize);
     %}.
 
     ^ ret
 
     "
-	self getPageFileSizeInMB
+        self getPageFileSizeInMB
     "
 !
 
@@ -14552,16 +14577,16 @@
     |ret|
 
     %{
-	MEMORYSTATUS mState;
-	GlobalMemoryStatus (&mState);
-
-	ret = __mkSmallInteger(mState.dwTotalPhys / 1024);
+        MEMORYSTATUS mState;
+        GlobalMemoryStatus (&mState);
+
+        ret = __mkSmallInteger(mState.dwTotalPhys / 1024);
     %}.
 
     ^ ret
 
     "
-	self getPhysicalMemoryInKB
+        self getPhysicalMemoryInKB
     "
 !
 
@@ -14569,7 +14594,7 @@
     ^ (self getPhysicalMemoryInKB / 1024) asInteger
 
     "
-	self getPhysicalMemoryInMB
+        self getPhysicalMemoryInMB
     "
 !
 
@@ -14577,16 +14602,16 @@
     |ret|
 
     %{
-	MEMORYSTATUS mState;
-	GlobalMemoryStatus (&mState);
-
-	ret = __mkSmallInteger(mState.dwMemoryLoad);
+        MEMORYSTATUS mState;
+        GlobalMemoryStatus (&mState);
+
+        ret = __mkSmallInteger(mState.dwMemoryLoad);
     %}.
 
     ^ ret
 
     "
-	self getUsedMemoryInPercentage
+        self getUsedMemoryInPercentage
     "
 !
 
@@ -14594,16 +14619,16 @@
     |ret|
 
     %{
-	MEMORYSTATUS mState;
-	GlobalMemoryStatus (&mState);
-
-	ret = __mkSmallInteger(mState.dwTotalVirtual / 1024);
+        MEMORYSTATUS mState;
+        GlobalMemoryStatus (&mState);
+
+        ret = __mkSmallInteger(mState.dwTotalVirtual / 1024);
     %}.
 
     ^ ret
 
     "
-	self getVirtualMemoryInKB
+        self getVirtualMemoryInKB
     "
 !
 
@@ -14611,7 +14636,7 @@
     ^ (self getVirtualMemoryInKB / 1024) asInteger
 
     "
-	self getVirtualMemoryInMB
+        self getVirtualMemoryInMB
     "
 ! !
 
@@ -14681,157 +14706,157 @@
 
     //iterate all following objetcs
     for (objectIterator=0; objectIterator<numObjectTypes; objectIterator++) {
-	//add the st_perObject dictionary to st_objectArray
-	st_perObject = __SSEND0(@global(Dictionary), @symbol(new), 0);
-	__AT_PUT_(st_objectArray, __mkSmallInteger(objectIterator+1), st_perObject);
-
-	//get the object data
-	__AT_PUT_(st_perObject, @symbol(ObjectNameTitleIndex), __mkSmallInteger(perfObjectPtr->ObjectNameTitleIndex));
-	__AT_PUT_(st_perObject, @symbol(DetailLevel), __mkSmallInteger(perfObjectPtr->DetailLevel));
-	__AT_PUT_(st_perObject, @symbol(NumCounters), __mkSmallInteger(perfObjectPtr->NumCounters));
-	__AT_PUT_(st_perObject, @symbol(NumInstances), __mkSmallInteger(perfObjectPtr->NumInstances));
-
-	//setup counter array and initialize its pointer
-	st_counterArray = __ARRAY_NEW_INT(perfObjectPtr->NumCounters);
-	perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfObjectPtr + perfObjectPtr->HeaderLength);
-
-	//add the st_counterArray to st_perObject dictionary
-	__AT_PUT_(st_perObject, @symbol(Counters), st_counterArray);
-
-	//iterate all following counter definition
-	for (counterIterator=0; counterIterator<perfObjectPtr->NumCounters; counterIterator++) {
-	    //add the st_perCounter dictionary to st_counterArray
-	    st_perCounter = __SSEND0(@global(Dictionary), @symbol(new), 0);
-	    __AT_PUT_(st_counterArray, __mkSmallInteger(counterIterator+1), st_perCounter);
-
-	    //get the counter data
-	    __AT_PUT_(st_perCounter, @symbol(CounterNameTitleIndex), __mkSmallInteger(perfCounterPtr->CounterNameTitleIndex));
-	    __AT_PUT_(st_perCounter, @symbol(CounterTypeBits), __mkSmallInteger(perfCounterPtr->CounterType));
-	    __AT_PUT_(st_perCounter, @symbol(CounterSize), __mkSmallInteger(perfCounterPtr->CounterSize));
-	    __AT_PUT_(st_perCounter, @symbol(CounterOffset), __mkSmallInteger(perfCounterPtr->CounterOffset));
-
-	    //put the counter type size
-	    switch (perfCounterPtr->CounterType & PERF_SIZE_MASK) {
-		case PERF_SIZE_DWORD:
-		    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(DWORD));
-		    break;
-		case PERF_SIZE_LARGE:
-		    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(LARGE));
-		    break;
-		case PERF_SIZE_ZERO:
-		    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(ZERO));
-		    break;
-		case PERF_SIZE_VARIABLE_LEN:
-		    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(VARIABLE_LEN));
-		    break;
-	    }
-	    switch (perfCounterPtr->CounterType & PERF_TYPE_MASK) {
-		case PERF_TYPE_NUMBER:
-		    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(NUMBER));
-		    switch (perfCounterPtr->CounterType & PERF_NUMBERTYPE_MASK) {
-			case PERF_NUMBER_HEX:
-			    __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(HEX));
-			    break;
-			case PERF_NUMBER_DECIMAL:
-			    __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DECIMAL));
-			    break;
-			case PERF_NUMBER_DEC_1000:
-			    __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DEC_1000));
-			    break;
-		    }
-		    break;
-		case PERF_TYPE_COUNTER:
-		    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(COUNTER));
-		    switch (perfCounterPtr->CounterType & PERF_COUNTERTYPE_MASK) {
-			case PERF_COUNTER_VALUE:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(VALUE));
-			    break;
-			case PERF_COUNTER_RATE:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(RATE));
-			    break;
-			case PERF_COUNTER_FRACTION:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(FRACTION));
-			    break;
-			case PERF_COUNTER_BASE:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(BASE));
-			    break;
-			case PERF_COUNTER_ELAPSED:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(ELAPSED));
-			    break;
-			case PERF_COUNTER_QUEUELEN:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(QUEUELEN));
-			    break;
-			case PERF_COUNTER_HISTOGRAM:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(HISTOGRAM));
-			    break;
+        //add the st_perObject dictionary to st_objectArray
+        st_perObject = __SSEND0(@global(Dictionary), @symbol(new), 0);
+        __AT_PUT_(st_objectArray, __mkSmallInteger(objectIterator+1), st_perObject);
+
+        //get the object data
+        __AT_PUT_(st_perObject, @symbol(ObjectNameTitleIndex), __mkSmallInteger(perfObjectPtr->ObjectNameTitleIndex));
+        __AT_PUT_(st_perObject, @symbol(DetailLevel), __mkSmallInteger(perfObjectPtr->DetailLevel));
+        __AT_PUT_(st_perObject, @symbol(NumCounters), __mkSmallInteger(perfObjectPtr->NumCounters));
+        __AT_PUT_(st_perObject, @symbol(NumInstances), __mkSmallInteger(perfObjectPtr->NumInstances));
+
+        //setup counter array and initialize its pointer
+        st_counterArray = __ARRAY_NEW_INT(perfObjectPtr->NumCounters);
+        perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfObjectPtr + perfObjectPtr->HeaderLength);
+
+        //add the st_counterArray to st_perObject dictionary
+        __AT_PUT_(st_perObject, @symbol(Counters), st_counterArray);
+
+        //iterate all following counter definition
+        for (counterIterator=0; counterIterator<perfObjectPtr->NumCounters; counterIterator++) {
+            //add the st_perCounter dictionary to st_counterArray
+            st_perCounter = __SSEND0(@global(Dictionary), @symbol(new), 0);
+            __AT_PUT_(st_counterArray, __mkSmallInteger(counterIterator+1), st_perCounter);
+
+            //get the counter data
+            __AT_PUT_(st_perCounter, @symbol(CounterNameTitleIndex), __mkSmallInteger(perfCounterPtr->CounterNameTitleIndex));
+            __AT_PUT_(st_perCounter, @symbol(CounterTypeBits), __mkSmallInteger(perfCounterPtr->CounterType));
+            __AT_PUT_(st_perCounter, @symbol(CounterSize), __mkSmallInteger(perfCounterPtr->CounterSize));
+            __AT_PUT_(st_perCounter, @symbol(CounterOffset), __mkSmallInteger(perfCounterPtr->CounterOffset));
+
+            //put the counter type size
+            switch (perfCounterPtr->CounterType & PERF_SIZE_MASK) {
+                case PERF_SIZE_DWORD:
+                    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(DWORD));
+                    break;
+                case PERF_SIZE_LARGE:
+                    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(LARGE));
+                    break;
+                case PERF_SIZE_ZERO:
+                    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(ZERO));
+                    break;
+                case PERF_SIZE_VARIABLE_LEN:
+                    __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(VARIABLE_LEN));
+                    break;
+            }
+            switch (perfCounterPtr->CounterType & PERF_TYPE_MASK) {
+                case PERF_TYPE_NUMBER:
+                    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(NUMBER));
+                    switch (perfCounterPtr->CounterType & PERF_NUMBERTYPE_MASK) {
+                        case PERF_NUMBER_HEX:
+                            __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(HEX));
+                            break;
+                        case PERF_NUMBER_DECIMAL:
+                            __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DECIMAL));
+                            break;
+                        case PERF_NUMBER_DEC_1000:
+                            __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DEC_1000));
+                            break;
+                    }
+                    break;
+                case PERF_TYPE_COUNTER:
+                    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(COUNTER));
+                    switch (perfCounterPtr->CounterType & PERF_COUNTERTYPE_MASK) {
+                        case PERF_COUNTER_VALUE:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(VALUE));
+                            break;
+                        case PERF_COUNTER_RATE:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(RATE));
+                            break;
+                        case PERF_COUNTER_FRACTION:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(FRACTION));
+                            break;
+                        case PERF_COUNTER_BASE:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(BASE));
+                            break;
+                        case PERF_COUNTER_ELAPSED:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(ELAPSED));
+                            break;
+                        case PERF_COUNTER_QUEUELEN:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(QUEUELEN));
+                            break;
+                        case PERF_COUNTER_HISTOGRAM:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(HISTOGRAM));
+                            break;
 #ifdef PERF_COUNTER_PRECISION
-			case PERF_COUNTER_PRECISION:
-			    __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(PRECISION));
-			    break;
-#endif
-		    }
-		    break;
-		case PERF_TYPE_TEXT:
-		    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(TEXT));
-		    switch (perfCounterPtr->CounterType & PERF_TEXTTYPE_MASK) {
-			case PERF_TEXT_UNICODE:
-			    __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(UNICODE));
-			    break;
-			case PERF_TEXT_ASCII:
-			    __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(ASCII));
-			    break;
-		    }
-		    break;
-		case PERF_TYPE_ZERO:
-		    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(ZERO));
-		    break;
-	    }
-
-	    //setup the counter pointer to the next counter definition
-	    perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfCounterPtr + perfCounterPtr->ByteLength);
-	}
-
-	//goon dependent on the count of instances
-	if (perfObjectPtr->NumInstances < 1) {
-	    perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfCounterPtr);
-	    __AT_PUT_(st_perObject, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
-	} else {
-	    //setup the instance pointer to the end of all counters
-	    perfInstancePtr = (PERF_INSTANCE_DEFINITION *)(perfCounterPtr);
-
-	    //setup st_instanceArray and add it to st_perObject
-	    st_instanceArray = __ARRAY_NEW_INT(perfObjectPtr->NumInstances);
-	    __AT_PUT_(st_perObject, @symbol(Instances), st_instanceArray);
-
-	    //iterate the instances
-	    for (instanceIterator=0; instanceIterator<perfObjectPtr->NumInstances; instanceIterator++) {
-		//setup st_perInstance and add it to st_instanceArray
-		st_perInstance = __SSEND0(@global(Dictionary), @symbol(new), 0);
-		__AT_PUT_(st_instanceArray, __mkSmallInteger(instanceIterator+1), st_perInstance);
-
-		//get the instance data
-		__AT_PUT_(st_perInstance, @symbol(Name), __MKBYTEARRAY((wchar_t *)((BYTE *)perfInstancePtr + perfInstancePtr->NameOffset),perfInstancePtr->NameLength));
-		__AT_PUT_(st_perInstance, @symbol(ParentObjectTitleIndex), __mkSmallInteger(perfInstancePtr->ParentObjectTitleIndex));
-		__AT_PUT_(st_perInstance, @symbol(ParentObjectInstance), __mkSmallInteger(perfInstancePtr->ParentObjectInstance));
-		__AT_PUT_(st_perInstance, @symbol(NameOffset), __mkSmallInteger(perfInstancePtr->NameOffset));
-		__AT_PUT_(st_perInstance, @symbol(NameLength), __mkSmallInteger(perfInstancePtr->NameLength));
-
-		//setup the instance pointer to the its end
-		perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfInstancePtr + perfInstancePtr->ByteLength);
-
-		//setup the counter block pointer
-		perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfInstancePtr);
-
-		//get the instance raw data
-		__AT_PUT_(st_perInstance, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
-
-		//setup the instance pointer to the next instance
-		perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfCounterBlockPtr + perfCounterBlockPtr->ByteLength);
-	    }
-	}
-
-	//setup the object pointer to the next object
-	perfObjectPtr = (PERF_OBJECT_TYPE *)((char *)perfObjectPtr + perfObjectPtr->TotalByteLength);
+                        case PERF_COUNTER_PRECISION:
+                            __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(PRECISION));
+                            break;
+#endif
+                    }
+                    break;
+                case PERF_TYPE_TEXT:
+                    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(TEXT));
+                    switch (perfCounterPtr->CounterType & PERF_TEXTTYPE_MASK) {
+                        case PERF_TEXT_UNICODE:
+                            __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(UNICODE));
+                            break;
+                        case PERF_TEXT_ASCII:
+                            __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(ASCII));
+                            break;
+                    }
+                    break;
+                case PERF_TYPE_ZERO:
+                    __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(ZERO));
+                    break;
+            }
+
+            //setup the counter pointer to the next counter definition
+            perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfCounterPtr + perfCounterPtr->ByteLength);
+        }
+
+        //goon dependent on the count of instances
+        if (perfObjectPtr->NumInstances < 1) {
+            perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfCounterPtr);
+            __AT_PUT_(st_perObject, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
+        } else {
+            //setup the instance pointer to the end of all counters
+            perfInstancePtr = (PERF_INSTANCE_DEFINITION *)(perfCounterPtr);
+
+            //setup st_instanceArray and add it to st_perObject
+            st_instanceArray = __ARRAY_NEW_INT(perfObjectPtr->NumInstances);
+            __AT_PUT_(st_perObject, @symbol(Instances), st_instanceArray);
+
+            //iterate the instances
+            for (instanceIterator=0; instanceIterator<perfObjectPtr->NumInstances; instanceIterator++) {
+                //setup st_perInstance and add it to st_instanceArray
+                st_perInstance = __SSEND0(@global(Dictionary), @symbol(new), 0);
+                __AT_PUT_(st_instanceArray, __mkSmallInteger(instanceIterator+1), st_perInstance);
+
+                //get the instance data
+                __AT_PUT_(st_perInstance, @symbol(Name), __MKBYTEARRAY((wchar_t *)((BYTE *)perfInstancePtr + perfInstancePtr->NameOffset),perfInstancePtr->NameLength));
+                __AT_PUT_(st_perInstance, @symbol(ParentObjectTitleIndex), __mkSmallInteger(perfInstancePtr->ParentObjectTitleIndex));
+                __AT_PUT_(st_perInstance, @symbol(ParentObjectInstance), __mkSmallInteger(perfInstancePtr->ParentObjectInstance));
+                __AT_PUT_(st_perInstance, @symbol(NameOffset), __mkSmallInteger(perfInstancePtr->NameOffset));
+                __AT_PUT_(st_perInstance, @symbol(NameLength), __mkSmallInteger(perfInstancePtr->NameLength));
+
+                //setup the instance pointer to the its end
+                perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfInstancePtr + perfInstancePtr->ByteLength);
+
+                //setup the counter block pointer
+                perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfInstancePtr);
+
+                //get the instance raw data
+                __AT_PUT_(st_perInstance, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
+
+                //setup the instance pointer to the next instance
+                perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfCounterBlockPtr + perfCounterBlockPtr->ByteLength);
+            }
+        }
+
+        //setup the object pointer to the next object
+        perfObjectPtr = (PERF_OBJECT_TYPE *)((char *)perfObjectPtr + perfObjectPtr->TotalByteLength);
     }
 %}.
     objectArray := st_objectArray.
@@ -14840,61 +14865,61 @@
     perfTime100nSec := st_perfTime100nSec.
 
     getNameBlock := [:i|
-	self class counterIndexTextDictionary at:i ifAbsent:['<<no name>>'].
+        self class counterIndexTextDictionary at:i ifAbsent:['<<no name>>'].
     ].
 
     getCounterValueBlock := [:counter :rawData|
-	|offset counterValue|
-
-	offset := counter at:#CounterOffset.
-	offset >= rawData size ifTrue:[
-	    counterValue := nil.
-	] ifFalse:[
-	    (counter at:#SIZE) == #LARGE ifTrue:[
-		counterValue := rawData unsignedLongLongAt:offset + 1 bigEndian:false.
-	    ] ifFalse:[
-		(counter at:#SIZE) == #DWORD ifTrue:[
-		    counterValue := rawData unsignedLongAt:offset + 1 bigEndian:false.
-		] ifFalse:[
-		    self halt:'unhandled counter-size; please check'.
-		].
-	    ].
-	].
-
-	counterValue
+        |offset counterValue|
+
+        offset := counter at:#CounterOffset.
+        offset >= rawData size ifTrue:[
+            counterValue := nil.
+        ] ifFalse:[
+            (counter at:#SIZE) == #LARGE ifTrue:[
+                counterValue := rawData unsignedLongLongAt:offset + 1 bigEndian:false.
+            ] ifFalse:[
+                (counter at:#SIZE) == #DWORD ifTrue:[
+                    counterValue := rawData unsignedLongAt:offset + 1 bigEndian:false.
+                ] ifFalse:[
+                    self halt:'unhandled counter-size; please check'.
+                ].
+            ].
+        ].
+
+        counterValue
     ].
 
     objectArray do:[:anObject|
-	"setup the object name"
-	anObject at:#ObjectNameTitle put:(getNameBlock value:(anObject at:#ObjectNameTitleIndex)).
-
-	"setup the name and a counter value array to each counter"
-	(anObject at:#Counters) do:[:aCounter|
-	    aCounter at:#CounterNameTitle put:(getNameBlock value:(aCounter at:#CounterNameTitleIndex)).
-	    aCounter at:#CounterValueArray put:OrderedCollection new.
-	].
-
-	(anObject at:#NumInstances) < 1 ifTrue:[
-	    |rawData|
-
-	    rawData := anObject at:#RawData.
-
-	    (anObject at:#Counters) do:[:aCounter|
-		(aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
-	    ].
-	] ifFalse:[
-	    (anObject at:#Instances) do:[:anInstance|
-		|rawData|
-
-		rawData := anInstance at:#RawData.
-
-		anInstance at:#Name put:((Unicode16String fromBytes:(anInstance at:#Name) copy swapBytes) copyButLast:1).
-
-		(anObject at:#Counters) do:[:aCounter|
-		    (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
-		].
-	    ].
-	].
+        "setup the object name"
+        anObject at:#ObjectNameTitle put:(getNameBlock value:(anObject at:#ObjectNameTitleIndex)).
+
+        "setup the name and a counter value array to each counter"
+        (anObject at:#Counters) do:[:aCounter|
+            aCounter at:#CounterNameTitle put:(getNameBlock value:(aCounter at:#CounterNameTitleIndex)).
+            aCounter at:#CounterValueArray put:OrderedCollection new.
+        ].
+
+        (anObject at:#NumInstances) < 1 ifTrue:[
+            |rawData|
+
+            rawData := anObject at:#RawData.
+
+            (anObject at:#Counters) do:[:aCounter|
+                (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
+            ].
+        ] ifFalse:[
+            (anObject at:#Instances) do:[:anInstance|
+                |rawData|
+
+                rawData := anInstance at:#RawData.
+
+                anInstance at:#Name put:((Unicode16String fromBytes:(anInstance at:#Name) copy swapBytes) copyButLast:1).
+
+                (anObject at:#Counters) do:[:aCounter|
+                    (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
+                ].
+            ].
+        ].
     ].
 
     ^ self
@@ -14905,7 +14930,7 @@
 cachedResults
 
     cachedResults isNil ifTrue:[
-	cachedResults := IdentityDictionary new.
+        cachedResults := IdentityDictionary new.
     ].
 
     ^ cachedResults
@@ -14932,8 +14957,8 @@
 aliveTime
 
     "
-	returns the time a data stays alive, in milliseconds
-	before we push a new call and overwrite the data
+        returns the time a data stays alive, in milliseconds
+        before we push a new call and overwrite the data
     "
 
     ^ self subclassResponsibility
@@ -14956,18 +14981,18 @@
 data
 
     self synchronized:[
-	|lastTS|
-
-	lastTS := self lastTimestamp.
-	lastTS isNil ifTrue:[
-	    ^ self dataBasic
-	] ifFalse:[
-	    Timestamp now asMilliseconds - lastTS >= self aliveTime ifTrue:[
-		^ self dataBasic
-	    ] ifFalse:[
-		^ self lastData
-	    ].
-	].
+        |lastTS|
+
+        lastTS := self lastTimestamp.
+        lastTS isNil ifTrue:[
+            ^ self dataBasic
+        ] ifFalse:[
+            Timestamp now asMilliseconds - lastTS >= self aliveTime ifTrue:[
+                ^ self dataBasic
+            ] ifFalse:[
+                ^ self lastData
+            ].
+        ].
     ].
 !
 
@@ -14991,21 +15016,21 @@
     |index objectArray object debugBlock|
 
     debugBlock := [:obj|
-		      ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
-		  ].
+                      ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
+                  ].
 
     objectArray := self data objectArray.
     index := self indexedNameNumbered.
 
     index == 0 ifTrue:[
-	object := objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
+        object := objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
     ] ifFalse:[
-	object := objectArray detect:[:el| (el at:#ObjectNameTitleIndex) == index]
-			      ifNone:[self error:'counter not found'].
+        object := objectArray detect:[:el| (el at:#ObjectNameTitleIndex) == index]
+                              ifNone:[self error:'counter not found'].
     ].
 
     ^ (object at:#Counters)
-	 collect:[:el| {el at:#CounterNameTitle. el at:#CounterNameTitleIndex}].
+         collect:[:el| {el at:#CounterNameTitle. el at:#CounterNameTitleIndex}].
 
     "Modified: / 07-03-2019 / 16:29:51 / Stefan Vogel"
 ! !
@@ -15017,14 +15042,14 @@
 
     cachedResult := self cachedResults at:aSelector ifAbsent:nil.
     cachedResult notNil ifTrue:[
-	|currentResult|
-
-	currentResult := self perform:aSelector.
-	return := self getPerSecondViaResult1:cachedResult result2:currentResult.
-
-	self cachedResults at:aSelector put:currentResult.
+        |currentResult|
+
+        currentResult := self perform:aSelector.
+        return := self getPerSecondViaResult1:cachedResult result2:currentResult.
+
+        self cachedResults at:aSelector put:currentResult.
     ] ifFalse:[
-	self cachedResults at:aSelector put:(self perform:aSelector).
+        self cachedResults at:aSelector put:(self perform:aSelector).
     ].
 
     ^ return
@@ -15048,15 +15073,15 @@
     globalResult := Dictionary new.
 
     values2 keysDo:[:key|
-	|difference|
-
-	difference := (values2 at:key) - (values1 at:key).
-
-	runTimeInS = 0 ifTrue:[
-	    globalResult at:key put:0.
-	] ifFalse:[
-	    globalResult at:key put:(difference / runTimeInS) asFloat.
-	].
+        |difference|
+
+        difference := (values2 at:key) - (values1 at:key).
+
+        runTimeInS = 0 ifTrue:[
+            globalResult at:key put:0.
+        ] ifFalse:[
+            globalResult at:key put:(difference / runTimeInS) asFloat.
+        ].
     ].
 
     ^ globalResult
@@ -15074,15 +15099,15 @@
     globalResult := Dictionary new.
 
     values2 keysDo:[:key|
-	|difference|
-
-	difference := (values2 at:key) - (values1 at:key).
-
-	runTimeInS = 0 ifTrue:[
-	    globalResult at:key put:0.
-	] ifFalse:[
-	    globalResult at:key put:(difference / runTimeInS) asFloat.
-	].
+        |difference|
+
+        difference := (values2 at:key) - (values1 at:key).
+
+        runTimeInS = 0 ifTrue:[
+            globalResult at:key put:0.
+        ] ifFalse:[
+            globalResult at:key put:(difference / runTimeInS) asFloat.
+        ].
     ].
 
     ^ globalResult
@@ -15093,14 +15118,14 @@
 
     cachedResult := self cachedResults at:aSelector ifAbsent:nil.
     cachedResult notNil ifTrue:[
-	|currentResult|
-
-	currentResult := self perform:aSelector.
-	return := self getUsageViaResult1:cachedResult result2:currentResult.
-
-	self cachedResults at:aSelector put:currentResult.
+        |currentResult|
+
+        currentResult := self perform:aSelector.
+        return := self getUsageViaResult1:cachedResult result2:currentResult.
+
+        self cachedResults at:aSelector put:currentResult.
     ] ifFalse:[
-	self cachedResults at:aSelector put:(self perform:aSelector).
+        self cachedResults at:aSelector put:(self perform:aSelector).
     ].
 
     ^ return
@@ -15123,22 +15148,22 @@
     value2 := result2 at:#values.
 
     value1 keysDo:[:key|
-	|diff dPerSecond load1024 res|
-
-	diff := (value2 at:key) - (value1 at:key).
-	diff := diff bitShift:10.
-
-	deltaTIn100Ns = 0 ifTrue:[
-	    dPerSecond := 0.
-	] ifFalse:[
-	    dPerSecond := (diff / deltaTIn100Ns) asFloat.
-	].
-	load1024 := 1024 - dPerSecond.
-
-	res := (load1024 / 1024 * 100) asFloat.
-	res < 0 ifTrue:[res := 0].
-
-	globalResult at:key put:res.
+        |diff dPerSecond load1024 res|
+
+        diff := (value2 at:key) - (value1 at:key).
+        diff := diff bitShift:10.
+
+        deltaTIn100Ns = 0 ifTrue:[
+            dPerSecond := 0.
+        ] ifFalse:[
+            dPerSecond := (diff / deltaTIn100Ns) asFloat.
+        ].
+        load1024 := 1024 - dPerSecond.
+
+        res := (load1024 / 1024 * 100) asFloat.
+        res < 0 ifTrue:[res := 0].
+
+        globalResult at:key put:res.
     ].
 
     ^ globalResult
@@ -15154,22 +15179,22 @@
     value2 := result2 at:#values.
 
     value1 keysDo:[:key|
-	|diff dPerSecond load1024 res|
-
-	diff := (value2 at:key) - (value1 at:key).
-	diff := diff bitShift:10.
-
-	deltaTIn100Ns = 0 ifTrue:[
-	    dPerSecond := 0.
-	] ifFalse:[
-	    dPerSecond := (diff / deltaTIn100Ns) asFloat.
-	].
-	load1024 := 1024 - dPerSecond.
-
-	res := (load1024 / 1024 * 100) asFloat.
-	res < 0 ifTrue:[res := 0].
-
-	globalResult at:key put:res.
+        |diff dPerSecond load1024 res|
+
+        diff := (value2 at:key) - (value1 at:key).
+        diff := diff bitShift:10.
+
+        deltaTIn100Ns = 0 ifTrue:[
+            dPerSecond := 0.
+        ] ifFalse:[
+            dPerSecond := (diff / deltaTIn100Ns) asFloat.
+        ].
+        load1024 := 1024 - dPerSecond.
+
+        res := (load1024 / 1024 * 100) asFloat.
+        res < 0 ifTrue:[res := 0].
+
+        globalResult at:key put:res.
     ].
 
     ^ globalResult
@@ -15193,15 +15218,15 @@
     |data object counter values debugBlock numInstances|
 
     debugBlock := [:obj|
-	^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
+        ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
     ].
 
     data := self dataBasic.
 
     objectIndex == 0 ifTrue:[
-	object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
+        object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
     ] ifFalse:[
-	object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
+        object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
     ].
 
     counter := (object at:#Counters) detect:[:aCounter|(aCounter at:#CounterNameTitleIndex) == counterIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
@@ -15210,28 +15235,28 @@
     numInstances := object at:#NumInstances.
 
     numInstances > 0 ifTrue:[
-	1 to:numInstances do:[:idx|
-	    |value instanceName|
-
-	    value := (counter at:#CounterValueArray) at:idx.
-	    instanceName := ((object at:#Instances) at:idx) at:#Name.
-
-	    values at:instanceName put:value.
-	].
+        1 to:numInstances do:[:idx|
+            |value instanceName|
+
+            value := (counter at:#CounterValueArray) at:idx.
+            instanceName := ((object at:#Instances) at:idx) at:#Name.
+
+            values at:instanceName put:value.
+        ].
     ] ifFalse:[
-	values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
+        values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
     ].
 
     aBoolean ifTrue:[
-	|return|
-
-	return := IdentityDictionary new.
-	return at:#time put:data perfTime.
-	return at:#frequence put:data perfFreq.
-	return at:#time100nSec put:data perfTime100nSec.
-	return at:#values put:values.
-
-	^ return
+        |return|
+
+        return := IdentityDictionary new.
+        return at:#time put:data perfTime.
+        return at:#frequence put:data perfFreq.
+        return at:#time100nSec put:data perfTime100nSec.
+        return at:#values put:values.
+
+        ^ return
     ].
 
     ^ values
@@ -15253,15 +15278,15 @@
     |data object counter values debugBlock numInstances|
 
     debugBlock := [:obj|
-	^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
+        ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
     ].
 
     data := self data.
 
     objectIndex == 0 ifTrue:[
-	object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
+        object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
     ] ifFalse:[
-	object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
+        object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
     ].
 
     counter := (object at:#Counters) detect:[:aCounter|(aCounter at:#CounterNameTitleIndex) == counterIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
@@ -15270,28 +15295,28 @@
     numInstances := object at:#NumInstances.
 
     numInstances > 0 ifTrue:[
-	1 to:numInstances do:[:idx|
-	    |value instanceName|
-
-	    value := (counter at:#CounterValueArray) at:idx.
-	    instanceName := ((object at:#Instances) at:idx) at:#Name.
-
-	    values at:instanceName put:value.
-	].
+        1 to:numInstances do:[:idx|
+            |value instanceName|
+
+            value := (counter at:#CounterValueArray) at:idx.
+            instanceName := ((object at:#Instances) at:idx) at:#Name.
+
+            values at:instanceName put:value.
+        ].
     ] ifFalse:[
-	values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
+        values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
     ].
 
     aBoolean ifTrue:[
-	|return|
-
-	return := IdentityDictionary new.
-	return at:#time put:data perfTime.
-	return at:#frequence put:data perfFreq.
-	return at:#time100nSec put:data perfTime100nSec.
-	return at:#values put:values.
-
-	^ return
+        |return|
+
+        return := IdentityDictionary new.
+        return at:#time put:data perfTime.
+        return at:#frequence put:data perfFreq.
+        return at:#time100nSec put:data perfTime100nSec.
+        return at:#values put:values.
+
+        ^ return
     ].
 
     ^ values
@@ -15302,7 +15327,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -15324,7 +15349,7 @@
     ^ self getValuesByCounter:218 timed:true
 
     "
-	self current diskBytes
+        self current diskBytes
     "
 !
 
@@ -15332,7 +15357,7 @@
     ^ self getBasicValuesByCounter:218 timed:true
 
     "
-	self current diskBytesBasic
+        self current diskBytesBasic
     "
 !
 
@@ -15340,7 +15365,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskBytes]
 
     "
-	self current diskBytesPerSecond
+        self current diskBytesPerSecond
     "
 !
 
@@ -15348,7 +15373,7 @@
     ^ self getPerSecondFromLast:#diskBytesBasic
 
     "
-	self current diskBytesPerSecondFromLast
+        self current diskBytesPerSecondFromLast
     "
 !
 
@@ -15356,7 +15381,7 @@
     ^ self getValuesByCounter:198
 
     "
-	self current diskQueueLength
+        self current diskQueueLength
     "
 !
 
@@ -15364,7 +15389,7 @@
     ^ self getValuesByCounter:214 timed:true
 
     "
-	self current diskRead
+        self current diskRead
     "
 !
 
@@ -15372,7 +15397,7 @@
     ^ self getBasicValuesByCounter:214 timed:true
 
     "
-	self current diskReadBasic
+        self current diskReadBasic
     "
 !
 
@@ -15380,7 +15405,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskRead]
 
     "
-	self current diskReadsPerSecond
+        self current diskReadsPerSecond
     "
 !
 
@@ -15388,7 +15413,7 @@
     ^ self getPerSecondFromLast:#diskReadBasic
 
     "
-	self current diskReadsPerSecondFromLast
+        self current diskReadsPerSecondFromLast
     "
 !
 
@@ -15396,7 +15421,7 @@
     ^ self getValuesByCounter:408
 
     "
-	self current diskSpaceFreeInMegaByte
+        self current diskSpaceFreeInMegaByte
     "
 !
 
@@ -15404,7 +15429,7 @@
     ^ self getValuesByCounter:212 timed:true
 
     "
-	self current diskTransfers
+        self current diskTransfers
     "
 !
 
@@ -15412,7 +15437,7 @@
     ^ self getBasicValuesByCounter:212 timed:true
 
     "
-	self current diskTransfersBasic
+        self current diskTransfersBasic
     "
 !
 
@@ -15420,7 +15445,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskTransfers]
 
     "
-	self current diskTransfersPerSecond
+        self current diskTransfersPerSecond
     "
 !
 
@@ -15428,7 +15453,7 @@
     ^ self getPerSecondFromLast:#diskTransfersBasic
 
     "
-	self current diskTransfersPerSecondFromlast
+        self current diskTransfersPerSecondFromlast
     "
 !
 
@@ -15436,7 +15461,7 @@
     ^ self getValuesByCounter:216 timed:true
 
     "
-	self current diskWrite
+        self current diskWrite
     "
 !
 
@@ -15444,7 +15469,7 @@
     ^ self getBasicValuesByCounter:216 timed:true
 
     "
-	self current diskWriteBasic
+        self current diskWriteBasic
     "
 !
 
@@ -15452,7 +15477,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskWrite]
 
     "
-	self current diskWritesPerSecond
+        self current diskWritesPerSecond
     "
 !
 
@@ -15460,7 +15485,7 @@
     ^ self getPerSecondFromLast:#diskWriteBasic
 
     "
-	self current diskWritesPerSecondFromLast
+        self current diskWritesPerSecondFromLast
     "
 ! !
 
@@ -15469,7 +15494,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -15498,12 +15523,12 @@
     indexNameArray := OrderedCollection new.
 
     data objectArray do:[:anObject|
-	|index name|
-
-	index := anObject at:#ObjectNameTitleIndex.
-	name := Win32OperatingSystem::PerformanceData counterIndexTextDictionary at:index.
-
-	indexNameArray add:(Array with:name with:index).
+        |index name|
+
+        index := anObject at:#ObjectNameTitleIndex.
+        name := Win32OperatingSystem::PerformanceData counterIndexTextDictionary at:index.
+
+        indexNameArray add:(Array with:name with:index).
     ].
 
     ^ indexNameArray
@@ -15514,7 +15539,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -15536,7 +15561,7 @@
     ^ self getValuesByCounter:1380
 
     "
-	self current availableKBytes
+        self current availableKBytes
     "
 !
 
@@ -15544,7 +15569,7 @@
     ^ self getValuesByCounter:1382
 
     "
-	self current availableMBytes
+        self current availableMBytes
     "
 ! !
 
@@ -15553,7 +15578,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -15579,7 +15604,7 @@
     ^ self getValuesByCounter:264 timed:true
 
     "
-	self current bytesReceived
+        self current bytesReceived
     "
 !
 
@@ -15587,7 +15612,7 @@
     ^ self getBasicValuesByCounter:264 timed:true
 
     "
-	self current bytesReceivedBasic
+        self current bytesReceivedBasic
     "
 !
 
@@ -15595,7 +15620,7 @@
     ^ self getPerSecondViaPerformBlock:[self bytesReceived]
 
     "
-	self current bytesReceivedPerSecond
+        self current bytesReceivedPerSecond
     "
 !
 
@@ -15603,7 +15628,7 @@
     ^ self getPerSecondFromLast:#bytesReceivedBasic
 
     "
-	self current bytesReceivedPerSecondFromlast
+        self current bytesReceivedPerSecondFromlast
     "
 !
 
@@ -15611,7 +15636,7 @@
     ^ self getValuesByCounter:506 timed:true
 
     "
-	self current bytesSent
+        self current bytesSent
     "
 !
 
@@ -15619,7 +15644,7 @@
     ^ self getBasicValuesByCounter:506 timed:true
 
     "
-	self current bytesSentBasic
+        self current bytesSentBasic
     "
 !
 
@@ -15627,7 +15652,7 @@
     ^ self getPerSecondViaPerformBlock:[self bytesSent]
 
     "
-	self current bytesSentPerSecond
+        self current bytesSentPerSecond
     "
 !
 
@@ -15635,7 +15660,7 @@
     ^ self getPerSecondFromLast:#bytesSentBasic
 
     "
-	self current bytesSentPerSecondFromlast
+        self current bytesSentPerSecondFromlast
     "
 !
 
@@ -15645,13 +15670,13 @@
     modifiedDictionary := Dictionary new.
 
     (self getPerSecondViaPerformBlock:[self bytesReceived]) keysAndValuesDo:[:key :value|
-	modifiedDictionary at:key put:(value / 1024).
+        modifiedDictionary at:key put:(value / 1024).
     ].
 
     ^ modifiedDictionary
 
     "
-	self current kBytesReceivedPerSecond
+        self current kBytesReceivedPerSecond
     "
 !
 
@@ -15664,13 +15689,13 @@
     modifiedDictionary := Dictionary new.
 
     return keysAndValuesDo:[:key :value|
-	modifiedDictionary at:key put:(value / 1024).
+        modifiedDictionary at:key put:(value / 1024).
     ].
 
     ^ modifiedDictionary
 
     "
-	self current kBytesReceivedPerSecondFromLast
+        self current kBytesReceivedPerSecondFromLast
     "
 !
 
@@ -15680,13 +15705,13 @@
     modifiedDictionary := Dictionary new.
 
     (self getPerSecondViaPerformBlock:[self bytesSent]) keysAndValuesDo:[:key :value|
-	modifiedDictionary at:key put:(value / 1024).
+        modifiedDictionary at:key put:(value / 1024).
     ].
 
     ^ modifiedDictionary
 
     "
-	self current kBytesSentPerSecond
+        self current kBytesSentPerSecond
     "
 !
 
@@ -15699,13 +15724,13 @@
     modifiedDictionary := Dictionary new.
 
     return keysAndValuesDo:[:key :value|
-	modifiedDictionary at:key put:(value / 1024).
+        modifiedDictionary at:key put:(value / 1024).
     ].
 
     ^ modifiedDictionary
 
     "
-	self current kBytesSentPerSecondFromLast
+        self current kBytesSentPerSecondFromLast
     "
 ! !
 
@@ -15714,7 +15739,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -15736,7 +15761,7 @@
     ^ self getValuesByCounter:6 timed:true
 
     "
-	self current processTime
+        self current processTime
     "
 !
 
@@ -15744,7 +15769,7 @@
     ^ self getBasicValuesByCounter:6 timed:true
 
     "
-	self current processTimeBasic
+        self current processTimeBasic
     "
 !
 
@@ -15754,13 +15779,13 @@
     modifiedDictionary := Dictionary new.
 
     (self getUsageViaPerformBlock:[self processTime]) keysAndValuesDo:[:key :value|
-	modifiedDictionary at:key put:(100 - value).
+        modifiedDictionary at:key put:(100 - value).
     ].
 
     ^ modifiedDictionary
 
     "
-	self current processUsage
+        self current processUsage
     "
 !
 
@@ -15773,13 +15798,13 @@
     modifiedDictionary := Dictionary new.
 
     return keysAndValuesDo:[:key :value|
-	modifiedDictionary at:key put:(100 - value).
+        modifiedDictionary at:key put:(100 - value).
     ].
 
     ^ modifiedDictionary
 
     "
-	self current processUsageFromLast
+        self current processUsageFromLast
     "
 !
 
@@ -15788,7 +15813,7 @@
     ^ (self data objectArray first at:#Instances) collect:[:el|el at:#Name]
 
     "
-	self current runningProcessNameList
+        self current runningProcessNameList
     "
 !
 
@@ -15797,7 +15822,7 @@
     ^ (self data objectArray first at:#NumInstances)
 
     "
-	self current runningProcesses
+        self current runningProcesses
     "
 ! !
 
@@ -15806,7 +15831,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -15828,7 +15853,7 @@
     ^ self getValuesByCounter:148 timed:true
 
     "
-	self current interrupts
+        self current interrupts
     "
 !
 
@@ -15836,7 +15861,7 @@
     ^ self getBasicValuesByCounter:148 timed:true
 
     "
-	self current interruptsBasic
+        self current interruptsBasic
     "
 !
 
@@ -15844,7 +15869,7 @@
     ^ self getPerSecondViaPerformBlock:[self interrupts]
 
     "
-	self current interruptsPerSecond
+        self current interruptsPerSecond
     "
 !
 
@@ -15852,7 +15877,7 @@
     ^ self getPerSecondFromLast:#interruptsBasic
 
     "
-	self current interruptsPerSecondFromLast
+        self current interruptsPerSecondFromLast
     "
 !
 
@@ -15860,7 +15885,7 @@
     ^ self getValuesByCounter:6 timed:true
 
     "
-	self current processorTime
+        self current processorTime
     "
 !
 
@@ -15868,7 +15893,7 @@
     ^ self getBasicValuesByCounter:6 timed:true
 
     "
-	self current processorTimeBasic
+        self current processorTimeBasic
     "
 !
 
@@ -15876,7 +15901,7 @@
     ^ self getUsageViaPerformBlock:[self processorTime]
 
     "
-	self current processorUsage
+        self current processorUsage
     "
 !
 
@@ -15884,7 +15909,7 @@
     ^ self getUsageFromLast:#processorTimeBasic
 
     "
-	self current processorUsageFromLast
+        self current processorUsageFromLast
     "
 ! !
 
@@ -15895,10 +15920,10 @@
     |defaultPriority|
 
     Error handle:[:ex |
-	Transcript showCR: 'PrinterInfo2 error getting defaultPriority - ', ex description.
-	defaultPriority := 0.
+        Transcript showCR: 'PrinterInfo2 error getting defaultPriority - ', ex description.
+        defaultPriority := 0.
     ] do:[
-	defaultPriority := self unsignedLongAt:(60 + 1)
+        defaultPriority := self unsignedLongAt:(60 + 1)
     ].
     ^ defaultPriority
 
@@ -15910,15 +15935,15 @@
     |pComment|
 
     Error handle:[:ex |
-	Transcript showCR: 'PrinterInfo2 error getting pComment - ', ex description.
-	pComment := 0.
+        Transcript showCR: 'PrinterInfo2 error getting pComment - ', ex description.
+        pComment := 0.
     ] do:[
-	pComment := self unsignedLongAt:(20 + 1).
+        pComment := self unsignedLongAt:(20 + 1).
     ].
 
     ^ pComment == 0
-	ifTrue:''
-	ifFalse:[ (ExternalBytes address:pComment) stringAt:1 ]
+        ifTrue:''
+        ifFalse:[ (ExternalBytes address:pComment) stringAt:1 ]
 
     "Created: / 01-08-2006 / 14:02:55 / fm"
     "Modified: / 16-04-2007 / 13:08:39 / cg"
@@ -15928,10 +15953,10 @@
     |pName|
 
     Error handle:[:ex |
-	Transcript showCR: 'PrinterInfo2 error getting pDriverName - ', ex description.
-	pName := 0.
+        Transcript showCR: 'PrinterInfo2 error getting pDriverName - ', ex description.
+        pName := 0.
     ] do:[
-	pName := self unsignedLongAt:(16 + 1).
+        pName := self unsignedLongAt:(16 + 1).
     ].
     pName == 0 ifTrue:[^ ''].
     ^ (ExternalBytes address:pName) stringAt:1
@@ -15944,18 +15969,18 @@
     |pLocation externalBytes|
 
     Error handle:[:ex |
-	Transcript showCR: 'PrinterInfo2 error getting pLocation - ', ex description.
-	pLocation := 0.
+        Transcript showCR: 'PrinterInfo2 error getting pLocation - ', ex description.
+        pLocation := 0.
     ] do:[
-	pLocation := self unsignedLongAt:(24 + 1).
+        pLocation := self unsignedLongAt:(24 + 1).
     ].
 
     pLocation == 0 ifTrue:[^ nil].
 
     externalBytes := ExternalBytes address:pLocation.
     ^ externalBytes isEmpty
-	ifTrue:[ nil ]
-	ifFalse:[ externalBytes stringAt:1 ]
+        ifTrue:[ nil ]
+        ifFalse:[ externalBytes stringAt:1 ]
 
     "Created: / 01-08-2006 / 14:03:21 / fm"
     "Modified: / 18-10-2006 / 12:06:45 / User"
@@ -15967,10 +15992,10 @@
     |priority|
 
     Error handle:[:ex |
-	Transcript showCR: 'PrinterInfo2 error getting priority - ', ex description.
-	priority := 0.
+        Transcript showCR: 'PrinterInfo2 error getting priority - ', ex description.
+        priority := 0.
     ] do:[
-	priority := self unsignedLongAt: 56 + 1
+        priority := self unsignedLongAt: 56 + 1
     ].
     ^ priority
 
@@ -15983,10 +16008,10 @@
     |status|
 
     Error handle:[:ex |
-	Transcript showCR: 'PrinterInfo2 error getting status - ', ex description.
-	status := -1.
+        Transcript showCR: 'PrinterInfo2 error getting status - ', ex description.
+        status := -1.
     ] do:[
-	status := self unsignedLongAt: 72 + 1
+        status := self unsignedLongAt: 72 + 1
     ].
     ^ status
 
@@ -16000,13 +16025,13 @@
     "returns a collection of root keyNames"
 
     ^ #(
-	'HKEY_CLASSES_ROOT'
-	'HKEY_CURRENT_USER'
-	'HKEY_LOCAL_MACHINE'
-	'HKEY_USERS'
-	'HKEY_PERFORMANCE_DATA'
-	'HKEY_CURRENT_CONFIG'
-	'HKEY_DYN_DATA'
+        'HKEY_CLASSES_ROOT'
+        'HKEY_CURRENT_USER'
+        'HKEY_LOCAL_MACHINE'
+        'HKEY_USERS'
+        'HKEY_PERFORMANCE_DATA'
+        'HKEY_CURRENT_CONFIG'
+        'HKEY_DYN_DATA'
       )
 !
 
@@ -16023,184 +16048,184 @@
     Interface to a WIN32 registry.
 
     As this is a private class, access it via
-	Win32OperatingSystem registryEntry
+        Win32OperatingSystem registryEntry
 
     [author:]
-	Claus Gittinger (initial version & cleanup)
+        Claus Gittinger (initial version & cleanup)
 "
 !
 
 examples
 "
     retrieve an existing entry by key:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'
+                                                                        [exEnd]
 
 
     retrieve a non-existing entry by key:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\xxx'
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\xxx'
+                                                                        [exEnd]
 
 
     ask a keys value:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion'.
-	Transcript show:'Windows serial NR:'; showCR:(k valueNamed:'ProductId').
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
-	Transcript showCR:(k valueNamed:'CurrentVersion').
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion'.
+        Transcript show:'Windows serial NR:'; showCR:(k valueNamed:'ProductId').
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
+        Transcript showCR:(k valueNamed:'CurrentVersion').
+                                                                        [exEnd]
 
 
     create a sub-key (if not already present):
-									[exBegin]
-	|k subKey|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
-	subKey := k createSubKeyNamed:'RegistryDemo'
-									[exEnd]
+                                                                        [exBegin]
+        |k subKey|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
+        subKey := k createSubKeyNamed:'RegistryDemo'
+                                                                        [exEnd]
 
 
     change a keys value:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
-	k valueNamed:'FooBarBaz' put:'a foo bar baz string'.
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
+        k valueNamed:'FooBarBaz' put:'a foo bar baz string'.
+                                                                        [exEnd]
 
     delete a value:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
-	k deleteValueNamed:'FooBarBaz'.
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
+        k deleteValueNamed:'FooBarBaz'.
+                                                                        [exEnd]
 
     delete a key:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
-	k deleteSubKeyNamed:'RegistryDemo'.
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
+        k deleteSubKeyNamed:'RegistryDemo'.
+                                                                        [exEnd]
 
     enumerate keys:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
-	k subKeysDo:[:subKey |
-	    Transcript showCR:subKey path
-	]
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
+        k subKeysDo:[:subKey |
+            Transcript showCR:subKey path
+        ]
+                                                                        [exEnd]
 
     enumerate all keys (recursive):
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
-	k allSubKeysDo:[:subKey |
-	    Transcript showCR:subKey path
-	]
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
+        k allSubKeysDo:[:subKey |
+            Transcript showCR:subKey path
+        ]
+                                                                        [exEnd]
 
     fetch value by index:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
-	Transcript showCR:(k valueNameAtIndex:0)
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
+        Transcript showCR:(k valueNameAtIndex:0)
+                                                                        [exEnd]
 
 
     enumerate value names:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
-	k valueNamesDo:[:nm  |
-	   Transcript showCR:nm.
-	]
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
+        k valueNamesDo:[:nm  |
+           Transcript showCR:nm.
+        ]
+                                                                        [exEnd]
 
     enumerate values:
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
-	k valueNamesAndValuesDo:[:nm :val |
-	    Transcript showCR:(nm , ' -> ' , val storeString).
-	]
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
+        k valueNamesAndValuesDo:[:nm :val |
+            Transcript showCR:(nm , ' -> ' , val storeString).
+        ]
+                                                                        [exEnd]
 
     search for a value (where does NT store the domain ?):
-									[exBegin]
-	|k|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\System'.
-	k subKeysDo:[:subKey |
-	    subKey subKeysDo:[:subSubKey |
-		|tcp params|
-
-		(subSubKey path asLowercase endsWith:'services') ifTrue:[
-		    tcp := subSubKey subKeyNamed:'tcpip'.
-		    tcp notNil ifTrue:[
-			params := tcp subKeyNamed:'parameters'.
-			params notNil ifTrue:[
-			    Transcript showCR:'Domain is found in ' , params path ,
-					' value: ' , (params valueNamed:'Domain').
-			    params close.
-			].
-			tcp close.
-		    ]
-		]
-	    ]
-	]
-									[exEnd]
+                                                                        [exBegin]
+        |k|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\System'.
+        k subKeysDo:[:subKey |
+            subKey subKeysDo:[:subSubKey |
+                |tcp params|
+
+                (subSubKey path asLowercase endsWith:'services') ifTrue:[
+                    tcp := subSubKey subKeyNamed:'tcpip'.
+                    tcp notNil ifTrue:[
+                        params := tcp subKeyNamed:'parameters'.
+                        params notNil ifTrue:[
+                            Transcript showCR:'Domain is found in ' , params path ,
+                                        ' value: ' , (params valueNamed:'Domain').
+                            params close.
+                        ].
+                        tcp close.
+                    ]
+                ]
+            ]
+        ]
+                                                                        [exEnd]
     register an exe for shell-open:
-									[exBegin]
-	|k stx shell open cmd st_af edit st owl list id|
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_CURRENT_USER\Software\Classes\Applications'.
-	stx := k createSubKeyNamed:'SmalltalkX.exe'.
-	shell := stx createSubKeyNamed:'shell'.
-	open := shell createSubKeyNamed:'open'.
-	cmd := open createSubKeyNamed:'command'.
-	cmd defaultValue:(Character doubleQuote asString,OperatingSystem nameOfSTXExecutable,Character doubleQuote,
-			 ' ',Character doubleQuote,'%1',Character doubleQuote).
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_CURRENT_USER\Software\Classes'.
-	st_af := k createSubKeyNamed:'st_auto_file'.
-	shell := st_af createSubKeyNamed:'shell'.
-	open := shell createSubKeyNamed:'open'.
-	cmd := open createSubKeyNamed:'command'.
-	cmd defaultValue:(Character doubleQuote asString,OperatingSystem nameOfSTXExecutable,Character doubleQuote,
-			 ' --open ',Character doubleQuote,'%1',Character doubleQuote).
-	edit := shell createSubKeyNamed:'edit'.
-	cmd := edit createSubKeyNamed:'command'.
-	cmd defaultValue:(Character doubleQuote asString,OperatingSystem nameOfSTXExecutable,Character doubleQuote,
-			 ' --edit ',Character doubleQuote,'%1',Character doubleQuote).
-
-	k := Win32OperatingSystem registryEntry key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts'.
-	st := k createSubKeyNamed:'.st'.
-	owl := st createSubKeyNamed:'OpenWithList'.
-	list := owl valueNames.
-	(list contains:[:k | (owl valueNamed:k) = 'SmalltalkX.exe']) ifTrue:[
-	    Transcript showCR:'already registered.'.
-	] ifFalse:[
-	    id := ($a to:$z) detect:[:k | (list includes:(k asString)) not] ifNone:nil.
-	    owl valueNamed:id asString put:'SmalltalkX.exe'.
-	]
-									[exEnd]
+                                                                        [exBegin]
+        |k stx shell open cmd st_af edit st owl list id|
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_CURRENT_USER\Software\Classes\Applications'.
+        stx := k createSubKeyNamed:'SmalltalkX.exe'.
+        shell := stx createSubKeyNamed:'shell'.
+        open := shell createSubKeyNamed:'open'.
+        cmd := open createSubKeyNamed:'command'.
+        cmd defaultValue:(Character doubleQuote asString,OperatingSystem nameOfSTXExecutable,Character doubleQuote,
+                         ' ',Character doubleQuote,'%1',Character doubleQuote).
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_CURRENT_USER\Software\Classes'.
+        st_af := k createSubKeyNamed:'st_auto_file'.
+        shell := st_af createSubKeyNamed:'shell'.
+        open := shell createSubKeyNamed:'open'.
+        cmd := open createSubKeyNamed:'command'.
+        cmd defaultValue:(Character doubleQuote asString,OperatingSystem nameOfSTXExecutable,Character doubleQuote,
+                         ' --open ',Character doubleQuote,'%1',Character doubleQuote).
+        edit := shell createSubKeyNamed:'edit'.
+        cmd := edit createSubKeyNamed:'command'.
+        cmd defaultValue:(Character doubleQuote asString,OperatingSystem nameOfSTXExecutable,Character doubleQuote,
+                         ' --edit ',Character doubleQuote,'%1',Character doubleQuote).
+
+        k := Win32OperatingSystem registryEntry key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts'.
+        st := k createSubKeyNamed:'.st'.
+        owl := st createSubKeyNamed:'OpenWithList'.
+        list := owl valueNames.
+        (list contains:[:k | (owl valueNamed:k) = 'SmalltalkX.exe']) ifTrue:[
+            Transcript showCR:'already registered.'.
+        ] ifFalse:[
+            id := ($a to:$z) detect:[:k | (list includes:(k asString)) not] ifNone:nil.
+            owl valueNamed:id asString put:'SmalltalkX.exe'.
+        ]
+                                                                        [exEnd]
 
 
 
@@ -16250,31 +16275,31 @@
     HKEY_CLASSES_ROOT isNil ifTrue:[self initialize].
 
     specialKeyStringOrSymbol = #'HKEY_CLASSES_ROOT' ifTrue:[
-	^ HKEY_CLASSES_ROOT.
+        ^ HKEY_CLASSES_ROOT.
     ].
     specialKeyStringOrSymbol = #'HKEY_CURRENT_USER' ifTrue:[
-	^ HKEY_CURRENT_USER.
+        ^ HKEY_CURRENT_USER.
     ].
     specialKeyStringOrSymbol = #'HKEY_LOCAL_MACHINE' ifTrue:[
-	^ HKEY_LOCAL_MACHINE.
+        ^ HKEY_LOCAL_MACHINE.
     ].
     specialKeyStringOrSymbol = #'HKEY_USERS' ifTrue:[
-	^ HKEY_USERS.
+        ^ HKEY_USERS.
     ].
     specialKeyStringOrSymbol = #'HKEY_PERFORMANCE_DATA' ifTrue:[
-	^ HKEY_PERFORMANCE_DATA.
+        ^ HKEY_PERFORMANCE_DATA.
     ].
     specialKeyStringOrSymbol = #'HKEY_CURRENT_CONFIG' ifTrue:[
-	^ HKEY_CURRENT_CONFIG.
+        ^ HKEY_CURRENT_CONFIG.
     ].
     specialKeyStringOrSymbol = #'HKEY_DYN_DATA' ifTrue:[
-	^ HKEY_DYN_DATA.
+        ^ HKEY_DYN_DATA.
     ].
     specialKeyStringOrSymbol = #'HKEY_PERFORMANCE_TEXT' ifTrue:[
-	^ HKEY_PERFORMANCE_TEXT.
+        ^ HKEY_PERFORMANCE_TEXT.
     ].
     specialKeyStringOrSymbol = #'HKEY_PERFORMANCE_NLSTEXT' ifTrue:[
-	^ HKEY_PERFORMANCE_NLSTEXT.
+        ^ HKEY_PERFORMANCE_NLSTEXT.
     ].
 
     ^ nil
@@ -16287,7 +16312,7 @@
     "handle image restarts and refetch registry handles"
 
     (something == #returnFromSnapshot) ifTrue:[
-	self initialize
+        self initialize
     ]
 
     "Created: 15.6.1996 / 15:14:03 / cg"
@@ -16300,9 +16325,9 @@
     |h newEntry|
 
     aHandleValue isInteger ifTrue:[
-	h := ExternalAddress newAddress:aHandleValue
+        h := ExternalAddress newAddress:aHandleValue
     ] ifFalse:[
-	h := aHandleValue
+        h := aHandleValue
     ].
 
     "/ rootKeys are not registered for RegClose ...
@@ -16350,9 +16375,9 @@
 key:aKeyNamePath flags:flags
     "retrieve an entry by full path name (starting at a root).
      flags may be one of:
-	#KEY_WOW64_64KEY to force access to the 64Bit Windows key,
-	#KEY_WOW64_32KEY to force access to the 32Bit Windows key,
-	or nil, to access the key (32/64) for the current application"
+        #KEY_WOW64_64KEY to force access to the 64Bit Windows key,
+        #KEY_WOW64_32KEY to force access to the 32Bit Windows key,
+        or nil, to access the key (32/64) for the current application"
 
     ^ self key:aKeyNamePath flags:flags createIfAbsent:false
 
@@ -16371,9 +16396,9 @@
 key:aKeyNamePath flags:flags createIfAbsent:createIfAbsent
     "retrieve an entry by full path name (starting at a root).
      flags may be one of:
-	#KEY_WOW64_64KEY to force access to the 64Bit Windows key,
-	#KEY_WOW64_32KEY to force access to the 32Bit Windows key,
-	or nil, to access the key (32/64) for the current application"
+        #KEY_WOW64_64KEY to force access to the 64Bit Windows key,
+        #KEY_WOW64_32KEY to force access to the 32Bit Windows key,
+        or nil, to access the key (32/64) for the current application"
 
     |idx first rest root|
 
@@ -16381,11 +16406,11 @@
 
     idx := aKeyNamePath indexOf:(self separator).
     idx == 0 ifTrue:[
-	first := aKeyNamePath.
-	rest := nil.
+        first := aKeyNamePath.
+        rest := nil.
     ] ifFalse:[
-	first := aKeyNamePath copyTo:idx-1.
-	rest := aKeyNamePath copyFrom:idx+1
+        first := aKeyNamePath copyTo:idx-1.
+        rest := aKeyNamePath copyFrom:idx+1
     ].
 
     first := first asUppercase.
@@ -16393,17 +16418,17 @@
     "/ the first is a pseudo name
     root := self rootKey:first.
     root isNil ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     rest size == 0 ifTrue:[
-	^ root
+        ^ root
     ].
 
     Error handle:[:ex |
-	^ nil
+        ^ nil
     ] do:[
-	^ root subKeyNamed:rest flags:flags createIfAbsent:createIfAbsent.
+        ^ root subKeyNamed:rest flags:flags createIfAbsent:createIfAbsent.
     ].
 
     "
@@ -16426,14 +16451,14 @@
 
     regEntry := self key:aKeyNamePath flags:nil createIfAbsent:false.
     regEntry notNil ifTrue:[
-	value := regEntry valueNamed:aValueName.
-	regEntry close.
+        value := regEntry valueNamed:aValueName.
+        regEntry close.
     ].
     ^ value.
 
     "
      self key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
-	  valueNamed:'AppData'
+          valueNamed:'AppData'
     "
 
     "Created: / 16-05-2019 / 18:04:01 / Stefan Vogel"
@@ -16559,11 +16584,11 @@
     "HELPER: given a mimeType, retrieve the file extension or nil (if unknown)"
 
     ^ self key:'HKEY_CLASSES_ROOT\MIME\Database\Content Type\', mimeType
-	   valueNamed:'extension'.
-
-
-    "
-	self extensionForMimeType:'text/html'
+           valueNamed:'extension'.
+
+
+    "
+        self extensionForMimeType:'text/html'
     "
 
     "Modified: / 16-05-2019 / 18:56:46 / Stefan Vogel"
@@ -16578,29 +16603,29 @@
     suffix isNil ifTrue:[^ nil].
 
     (suffix startsWith:'.') ifTrue:[
-	suffix := suffix copyFrom:2
+        suffix := suffix copyFrom:2
     ].
     fkey := self
-		key:'HKEY_CLASSES_ROOT\.',suffix
-		valueNamed:''.
+                key:'HKEY_CLASSES_ROOT\.',suffix
+                valueNamed:''.
 
     fkey isNil ifTrue:[
-	fkey := suffix,'_auto_file'
+        fkey := suffix,'_auto_file'
     ].
 
     fkey notEmptyOrNil ifTrue:[
-	redirect := self key:('HKEY_CLASSES_ROOT\' , fkey , '\CurVer') valueNamed:''.
-	redirect isNil ifTrue:[
-	     cmd := self key:('HKEY_CLASSES_ROOT\' , (fkey) , '\shell\',operation,'\command') valueNamed:''.
-	] ifFalse:[
-	     cmd := self key:('HKEY_CLASSES_ROOT\' , (redirect) , '\shell\',operation,'\command') valueNamed:''.
-	].
+        redirect := self key:('HKEY_CLASSES_ROOT\' , fkey , '\CurVer') valueNamed:''.
+        redirect isNil ifTrue:[
+             cmd := self key:('HKEY_CLASSES_ROOT\' , (fkey) , '\shell\',operation,'\command') valueNamed:''.
+        ] ifFalse:[
+             cmd := self key:('HKEY_CLASSES_ROOT\' , (redirect) , '\shell\',operation,'\command') valueNamed:''.
+        ].
     ].
 
     ^ cmd
 
     "
-	self shellCommandTemplateFor:'open' onSuffix:'pdf'
+        self shellCommandTemplateFor:'open' onSuffix:'pdf'
     "
 
     "Modified (comment): / 16-05-2019 / 19:02:51 / Stefan Vogel"
@@ -16621,8 +16646,8 @@
 
     "
      self
-	stringValueFor:'Content Type'
-	atKey:'HKEY_CLASSES_ROOT\.au'
+        stringValueFor:'Content Type'
+        atKey:'HKEY_CLASSES_ROOT\.au'
     "
 
     "Modified: / 16-05-2019 / 19:03:39 / Stefan Vogel"
@@ -16679,9 +16704,9 @@
      If it already exists, return it.
      Return nil if the new key cannot be created.
      flags may be one of:
-	#KEY_WOW64_64KEY to force access to the 64Bit Windows key,
-	#KEY_WOW64_32KEY to force access to the 32Bit Windows key,
-	or nil, to access the key (32/64) for the current application"
+        #KEY_WOW64_64KEY to force access to the 64Bit Windows key,
+        #KEY_WOW64_32KEY to force access to the 32Bit Windows key,
+        or nil, to access the key (32/64) for the current application"
 
 
     ^ self subKeyNamed:subKeyString flags:flags createIfAbsent:true
@@ -16714,12 +16739,12 @@
      Return true on success.
      subKeyString may be a string or unicode16string;
      flags may be one of:
-	#KEY_WOW64_64KEY to force access to the 64Bit Windows key,
-	#KEY_WOW64_32KEY to force access to the 32Bit Windows key,
-	or nil, to access the key (32/64) for the current application.
+        #KEY_WOW64_64KEY to force access to the 64Bit Windows key,
+        #KEY_WOW64_32KEY to force access to the 32Bit Windows key,
+        or nil, to access the key (32/64) for the current application.
 
      CAVEAT: due to a missing library entry in the BCC system,
-	     the flags are currently ignored"
+             the flags are currently ignored"
 
     |subKeyStringZ errorNumber|
 
@@ -16737,40 +16762,40 @@
     int _flags = 0;
 
     if (flags != nil) {
-	if (flags == @symbol(KEY_WOW64_64KEY)) {
-	    _flags = KEY_WOW64_64KEY;
-	} else if (flags == @symbol(KEY_WOW64_32KEY)) {
-	    _flags = KEY_WOW64_32KEY;
-	} else {
-	    errorNumber = @symbol(badArgument2);
-	    goto out;
-	}
+        if (flags == @symbol(KEY_WOW64_64KEY)) {
+            _flags = KEY_WOW64_64KEY;
+        } else if (flags == @symbol(KEY_WOW64_32KEY)) {
+            _flags = KEY_WOW64_32KEY;
+        } else {
+            errorNumber = @symbol(badArgument2);
+            goto out;
+        }
     }
 
     if (__isExternalAddressLike(__INST(handle))
      && __isUnicode16String(subKeyStringZ)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
 #ifdef __BORLANDC__
-	_retVal = RegDeleteKeyW(myKey, __unicode16StringVal(subKeyStringZ));
-#else
-	_retVal = RegDeleteKeyExW(myKey,
-		    __unicode16StringVal(subKeyStringZ),
-		    _flags,
-		    0); // reserved
-#endif
-	if (_retVal == ERROR_SUCCESS) {
-	    RETURN (true);
-	}
-	if ((_retVal != ERROR_PATH_NOT_FOUND)
-	 && (_retVal != ERROR_FILE_NOT_FOUND)) {
-	    errorNumber = __MKSMALLINT(_retVal);
-	}
+        _retVal = RegDeleteKeyW(myKey, __unicode16StringVal(subKeyStringZ));
+#else
+        _retVal = RegDeleteKeyExW(myKey,
+                    __unicode16StringVal(subKeyStringZ),
+                    _flags,
+                    0); // reserved
+#endif
+        if (_retVal == ERROR_SUCCESS) {
+            RETURN (true);
+        }
+        if ((_retVal != ERROR_PATH_NOT_FOUND)
+         && (_retVal != ERROR_FILE_NOT_FOUND)) {
+            errorNumber = __MKSMALLINT(_retVal);
+        }
     }
 out:;
 %}.
 
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     ^ false
 
@@ -16797,45 +16822,45 @@
     |hostNameZ newEntry remoteHandle errorNumber|
 
     hostName isSingleByteString ifFalse:[
-	hostNameZ := hostName asUnicode16StringZ.
+        hostNameZ := hostName asUnicode16StringZ.
     ].
 %{
     HKEY myKey, remoteKey = 0;
     int _retVal;
 
     if (__isExternalAddressLike(__INST(handle))) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-
-	if ((hostNameZ != nil) && __isUnicode16String(hostNameZ)) {
-	    _retVal = RegConnectRegistryW(__unicode16StringVal(hostNameZ), myKey, &remoteKey);
-	} else if (__isStringLike(hostName)) {
-	    _retVal = RegConnectRegistryA(__stringVal(hostName), myKey, &remoteKey);
-	} else
-	    goto badArg;
-
-	switch (_retVal) {
-	    case ERROR_SUCCESS:
-		remoteHandle = __MKEXTERNALADDRESS(remoteKey);
-		break;
-
-	    case ERROR_PATH_NOT_FOUND:
-	    case ERROR_FILE_NOT_FOUND:
-		break;
-
-	    default:
-		errorNumber = __MKSMALLINT(_retVal);
-		break;
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+        if ((hostNameZ != nil) && __isUnicode16String(hostNameZ)) {
+            _retVal = RegConnectRegistryW(__unicode16StringVal(hostNameZ), myKey, &remoteKey);
+        } else if (__isStringLike(hostName)) {
+            _retVal = RegConnectRegistryA(__stringVal(hostName), myKey, &remoteKey);
+        } else
+            goto badArg;
+
+        switch (_retVal) {
+            case ERROR_SUCCESS:
+                remoteHandle = __MKEXTERNALADDRESS(remoteKey);
+                break;
+
+            case ERROR_PATH_NOT_FOUND:
+            case ERROR_FILE_NOT_FOUND:
+                break;
+
+            default:
+                errorNumber = __MKSMALLINT(_retVal);
+                break;
+        }
     }
   badArg: ;;
 %}.
     remoteHandle notNil ifTrue:[
-	newEntry := self class basicNew setHandle:remoteHandle path:path.
-	newEntry registerForFinalization.
-	^ newEntry.
+        newEntry := self class basicNew setHandle:remoteHandle path:path.
+        newEntry registerForFinalization.
+        ^ newEntry.
     ].
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     self primitiveFailed:'bad argument'.
     ^ nil
@@ -16904,29 +16929,29 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isSmallInteger(subKeyIndex)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegEnumKeyExW(myKey, __intVal(subKeyIndex),
-			 nameBuffer, &nameSize,
-			 NULL,
-			 classNameBuffer, &classNameSize,
-			 &modificationTime)) == ERROR_SUCCESS) {
-	    nameBuffer[nameSize] = 0;
-	    subKeyName = __MKU16STRING(nameBuffer);
-	} else {
-	    if ((_retVal != ERROR_PATH_NOT_FOUND)
-	     && (_retVal != ERROR_FILE_NOT_FOUND)
-	     && (_retVal != ERROR_NO_MORE_ITEMS)) {
-		errorNumber = __MKSMALLINT(_retVal);
-	    }
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+        if ((_retVal = RegEnumKeyExW(myKey, __intVal(subKeyIndex),
+                         nameBuffer, &nameSize,
+                         NULL,
+                         classNameBuffer, &classNameSize,
+                         &modificationTime)) == ERROR_SUCCESS) {
+            nameBuffer[nameSize] = 0;
+            subKeyName = __MKU16STRING(nameBuffer);
+        } else {
+            if ((_retVal != ERROR_PATH_NOT_FOUND)
+             && (_retVal != ERROR_FILE_NOT_FOUND)
+             && (_retVal != ERROR_NO_MORE_ITEMS)) {
+                errorNumber = __MKSMALLINT(_retVal);
+            }
+        }
     }
 %}.
     subKeyName notNil ifTrue:[
-	subKeyName := subKeyName asSingleByteStringIfPossible.
-	^ self subKeyNamed:subKeyName.
+        subKeyName := subKeyName asSingleByteStringIfPossible.
+        ^ self subKeyNamed:subKeyName.
     ].
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     ^ nil
 
@@ -16970,32 +16995,32 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isSmallInteger(subKeyIndex)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	_retVal = RegEnumKeyExW(myKey, __intVal(subKeyIndex),
-				       nameBuffer, &nameSize,
-				       NULL,
-				       classNameBuffer, &classNameSize,
-				       &modificationTime);
-
-	if (_retVal == ERROR_SUCCESS) {
-	    nameBuffer[nameSize] = 0;
-	    classNameBuffer[classNameSize] = 0;
-	    subKeyName = __mkStringOrU16String_maxlen(nameBuffer, nameSize);
-	    subKeyClassName = __mkStringOrU16String_maxlen(classNameBuffer, classNameSize);
-	} else {
-	    if ((_retVal != ERROR_PATH_NOT_FOUND)
-	     && (_retVal != ERROR_FILE_NOT_FOUND)
-	     && (_retVal != ERROR_NO_MORE_ITEMS)) {
-		errorNumber = __MKSMALLINT(_retVal);
-	    }
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+        _retVal = RegEnumKeyExW(myKey, __intVal(subKeyIndex),
+                                       nameBuffer, &nameSize,
+                                       NULL,
+                                       classNameBuffer, &classNameSize,
+                                       &modificationTime);
+
+        if (_retVal == ERROR_SUCCESS) {
+            nameBuffer[nameSize] = 0;
+            classNameBuffer[classNameSize] = 0;
+            subKeyName = __mkStringOrU16String_maxlen(nameBuffer, nameSize);
+            subKeyClassName = __mkStringOrU16String_maxlen(classNameBuffer, classNameSize);
+        } else {
+            if ((_retVal != ERROR_PATH_NOT_FOUND)
+             && (_retVal != ERROR_FILE_NOT_FOUND)
+             && (_retVal != ERROR_NO_MORE_ITEMS)) {
+                errorNumber = __MKSMALLINT(_retVal);
+            }
+        }
     }
 %}.
     subKeyName notNil ifTrue:[
-	^ {subKeyName . subKeyClassName}.
+        ^ {subKeyName . subKeyClassName}.
     ].
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     "/ no more items
     ^ nil
@@ -17058,9 +17083,9 @@
      Return nil if no such key exists.
      subKeyString may be a string or unicode16string.
      flags may be one of:
-	#KEY_WOW64_64KEY to force access to the 64Bit Windows key,
-	#KEY_WOW64_32KEY to force access to the 32Bit Windows key,
-	or nil, to access the key (32/64) for the current application"
+        #KEY_WOW64_64KEY to force access to the 64Bit Windows key,
+        #KEY_WOW64_32KEY to force access to the 32Bit Windows key,
+        or nil, to access the key (32/64) for the current application"
 
 
     ^ self subKeyNamed:subKeyString flags:flags createIfAbsent:false
@@ -17072,9 +17097,9 @@
      Otherwise, nil is returned.
      subKeyString may be a string or unicode16string.
      flags may be one of:
-	#KEY_WOW64_64KEY to force access to the 64Bit Windows key,
-	#KEY_WOW64_32KEY to force access to the 32Bit Windows key,
-	or nil, to access the key (32/64) for the current application"
+        #KEY_WOW64_64KEY to force access to the 64Bit Windows key,
+        #KEY_WOW64_32KEY to force access to the 32Bit Windows key,
+        or nil, to access the key (32/64) for the current application"
 
     |subKeyStringZ newEntry subHandle errorNumber disposition|
 
@@ -17093,72 +17118,72 @@
     int _disposition = 0;
 
     if (flags != nil) {
-	if (flags == @symbol(KEY_WOW64_64KEY)) {
-	    _flags = KEY_WOW64_64KEY;
-	} else if (flags == @symbol(KEY_WOW64_32KEY)) {
-	    _flags = KEY_WOW64_32KEY;
-	} else {
-	    errorNumber = @symbol(badArgument2);
-	    goto out;
-	}
+        if (flags == @symbol(KEY_WOW64_64KEY)) {
+            _flags = KEY_WOW64_64KEY;
+        } else if (flags == @symbol(KEY_WOW64_32KEY)) {
+            _flags = KEY_WOW64_32KEY;
+        } else {
+            errorNumber = @symbol(badArgument2);
+            goto out;
+        }
     }
 
     if (__isExternalAddressLike(__INST(handle))
-	&& __isUnicode16String(subKeyStringZ)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if (createIfAbsent == true) {
-	    _retVal = RegCreateKeyExW(myKey,
-			__unicode16StringVal(subKeyStringZ),
-			0,      // reserved
-			NULL,   // class
-			0,      // options
-			KEY_ALL_ACCESS|_flags,   // rights
-			NULL,   // securityAttributes - handle cannot be inherited
-			&subKey,
-			&_disposition);  // disposition (created vs. opened)
-	    disposition = _disposition == REG_CREATED_NEW_KEY ? true : false;
-	} else {
-	    _retVal = RegOpenKeyExW(
-		myKey,
-		__unicode16StringVal(subKeyStringZ),
-		0,
-		KEY_ALL_ACCESS|_flags,
-		&subKey);
-
-	    if (!(_retVal == 0)) {
-		// try again with less permission
-		_retVal = RegOpenKeyExW(
-		    myKey,
-		    __unicode16StringVal(subKeyStringZ),
-		    0,
-		    KEY_READ |_flags,
-		    &subKey);
-	    }
-
-	    disposition = false;
-	}
-	if (_retVal == ERROR_SUCCESS) {
-	    subHandle = __MKEXTERNALADDRESS(subKey);
-	} else {
-	    if ((_retVal != ERROR_PATH_NOT_FOUND)
-	     && (_retVal != ERROR_FILE_NOT_FOUND)) {
-		errorNumber = __MKSMALLINT(_retVal);
-	    }
-	}
+        && __isUnicode16String(subKeyStringZ)) {
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+        if (createIfAbsent == true) {
+            _retVal = RegCreateKeyExW(myKey,
+                        __unicode16StringVal(subKeyStringZ),
+                        0,      // reserved
+                        NULL,   // class
+                        0,      // options
+                        KEY_ALL_ACCESS|_flags,   // rights
+                        NULL,   // securityAttributes - handle cannot be inherited
+                        &subKey,
+                        &_disposition);  // disposition (created vs. opened)
+            disposition = _disposition == REG_CREATED_NEW_KEY ? true : false;
+        } else {
+            _retVal = RegOpenKeyExW(
+                myKey,
+                __unicode16StringVal(subKeyStringZ),
+                0,
+                KEY_ALL_ACCESS|_flags,
+                &subKey);
+
+            if (!(_retVal == 0)) {
+                // try again with less permission
+                _retVal = RegOpenKeyExW(
+                    myKey,
+                    __unicode16StringVal(subKeyStringZ),
+                    0,
+                    KEY_READ |_flags,
+                    &subKey);
+            }
+
+            disposition = false;
+        }
+        if (_retVal == ERROR_SUCCESS) {
+            subHandle = __MKEXTERNALADDRESS(subKey);
+        } else {
+            if ((_retVal != ERROR_PATH_NOT_FOUND)
+             && (_retVal != ERROR_FILE_NOT_FOUND)) {
+                errorNumber = __MKSMALLINT(_retVal);
+            }
+        }
     }
 out:;
 %}.
     subHandle notNil ifTrue:[
-	newEntry := self class basicNew
-			setHandle:subHandle
-			path:((path ? '?') , self class separator asString , subKeyString)
-			isNew:disposition.
-
-	newEntry registerForFinalization.
-	^ newEntry.
+        newEntry := self class basicNew
+                        setHandle:subHandle
+                        path:((path ? '?') , self class separator asString , subKeyString)
+                        isNew:disposition.
+
+        newEntry registerForFinalization.
+        ^ newEntry.
     ].
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportProceedableError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportProceedableError.
     ].
     ^ nil
 
@@ -17197,11 +17222,11 @@
 
 defaultValue:datum
     "store a value; the value type depends upon the stored value:
-	ByteArray       -> REG_BINARY
-	String          -> REG_SZ
-	Array of string -> REG_MULTI_SZ
-	Integer         -> REG_DWORD
-	nil             -> REG_NONE
+        ByteArray       -> REG_BINARY
+        String          -> REG_SZ
+        Array of string -> REG_MULTI_SZ
+        Integer         -> REG_DWORD
+        nil             -> REG_NONE
     "
 
     ^ self valueNamed:'' put:datum
@@ -17226,18 +17251,18 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isUnicode16String(valueNameZ)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegDeleteValueW(myKey, __unicode16StringVal(valueNameZ))) == ERROR_SUCCESS) {
-	    RETURN (true);
-	}
-	if ((_retVal != ERROR_PATH_NOT_FOUND)
-	 && (_retVal != ERROR_FILE_NOT_FOUND)) {
-	    errorNumber = __MKSMALLINT(_retVal);
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+        if ((_retVal = RegDeleteValueW(myKey, __unicode16StringVal(valueNameZ))) == ERROR_SUCCESS) {
+            RETURN (true);
+        }
+        if ((_retVal != ERROR_PATH_NOT_FOUND)
+         && (_retVal != ERROR_FILE_NOT_FOUND)) {
+            errorNumber = __MKSMALLINT(_retVal);
+        }
     }
 %}.
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     ^ false
 
@@ -17269,28 +17294,28 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isSmallInteger(valueIndex)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegEnumValueW(myKey, __intVal(valueIndex),
-			 nameBuffer, &nameSize,
-			 NULL,
-			 &valueType,
-			 NULL, NULL)) == ERROR_SUCCESS) {
-	    nameBuffer[nameSize] = 0;
-	    valueName = __MKU16STRING(nameBuffer);
-	} else {
-	    if ((_retVal != ERROR_PATH_NOT_FOUND)
-	     && (_retVal != ERROR_FILE_NOT_FOUND)
-	     && (_retVal != ERROR_NO_MORE_ITEMS)) {
-		errorNumber = __MKSMALLINT(_retVal);
-	    }
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+        if ((_retVal = RegEnumValueW(myKey, __intVal(valueIndex),
+                         nameBuffer, &nameSize,
+                         NULL,
+                         &valueType,
+                         NULL, NULL)) == ERROR_SUCCESS) {
+            nameBuffer[nameSize] = 0;
+            valueName = __MKU16STRING(nameBuffer);
+        } else {
+            if ((_retVal != ERROR_PATH_NOT_FOUND)
+             && (_retVal != ERROR_FILE_NOT_FOUND)
+             && (_retVal != ERROR_NO_MORE_ITEMS)) {
+                errorNumber = __MKSMALLINT(_retVal);
+            }
+        }
     }
 %}.
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     valueName notNil ifTrue:[
-	valueName := valueName asSingleByteStringIfPossible
+        valueName := valueName asSingleByteStringIfPossible
     ].
     ^ valueName
 
@@ -17313,12 +17338,12 @@
 
 valueNamed:aValueName
     "retrieve a value; the returned object depends upon the type:
-	REG_BINARY      -> ByteArray
-	REG_SZ          -> String
-	REG_MULTI_SZ    -> Array of strings
-	REG_DWORD       -> Integer
-	REG_QWORD       -> Integer
-	REG_NONE        -> nil
+        REG_BINARY      -> ByteArray
+        REG_SZ          -> String
+        REG_MULTI_SZ    -> Array of strings
+        REG_DWORD       -> Integer
+        REG_QWORD       -> Integer
+        REG_NONE        -> nil
      aValueName name may be a string or unicode16string.
     "
 
@@ -17330,10 +17355,10 @@
     HKEY myKey;
     DWORD valueType;
     union {
-	DWORD dWord;
-	unsigned char dWordBytes[4];
-	unsigned char smallDataBuffer[1024*16];
-	unsigned char qWordBytes[8];
+        DWORD dWord;
+        unsigned char dWordBytes[4];
+        unsigned char smallDataBuffer[1024*16];
+        unsigned char qWordBytes[8];
     } quickData;
     int val;
     DWORD dataSize = sizeof(quickData);
@@ -17341,187 +17366,187 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isUnicode16String(nameW)) {
-	int ret;
-
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-
-	/*
-	 * try to get it with one call ...
-	 */
-	ret = RegQueryValueExW(myKey, __unicode16StringVal(nameW),
-			 NULL,
-			 &valueType,
-			 (char *)&quickData,
-			 &dataSize);
+        int ret;
+
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+        /*
+         * try to get it with one call ...
+         */
+        ret = RegQueryValueExW(myKey, __unicode16StringVal(nameW),
+                         NULL,
+                         &valueType,
+                         (char *)&quickData,
+                         &dataSize);
 #if 0
-	console_printf("get \"%s\": dataSize=%d ret=%d\n", __stringVal(aValueName), dataSize, ret);
-#endif
-	while (ret == ERROR_MORE_DATA) {
+        console_printf("get \"%s\": dataSize=%d ret=%d\n", __stringVal(aValueName), dataSize, ret);
+#endif
+        while (ret == ERROR_MORE_DATA) {
 #if 0
-	    console_printf("ERROR_MORE_DATA dataSize=%d valueType=%d\n", dataSize, valueType);
-#endif
-	    /*
-	     * nope - need another one ...
-	     */
-	    if (myKey = HKEY_PERFORMANCE_DATA) {
-		dataSize = dataSize * 2;
-	    }
-	    switch (valueType) {
-		case REG_BINARY:
-		case REG_MULTI_SZ:
-		    dataBuffer = malloc(dataSize);;
-		    break;
-		case REG_SZ:
-		    dataBuffer = malloc(dataSize);
-		    break;
-		default:
-		    console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
-		    break;
-	    }
-	    if (dataBuffer) {
-		ret = RegQueryValueExW(myKey, __unicode16StringVal(nameW),
-				 NULL,
-				 &valueType,
-				 dataBuffer,
-				 &dataSize);
-	    } else {
-		break;
-	    }
-	    if (myKey != HKEY_PERFORMANCE_DATA) {
-		if (ret != ERROR_SUCCESS) break;
-	    }
-	}
-
-	if (ret == ERROR_SUCCESS) {
+            console_printf("ERROR_MORE_DATA dataSize=%d valueType=%d\n", dataSize, valueType);
+#endif
+            /*
+             * nope - need another one ...
+             */
+            if (myKey = HKEY_PERFORMANCE_DATA) {
+                dataSize = dataSize * 2;
+            }
+            switch (valueType) {
+                case REG_BINARY:
+                case REG_MULTI_SZ:
+                    dataBuffer = malloc(dataSize);;
+                    break;
+                case REG_SZ:
+                    dataBuffer = malloc(dataSize);
+                    break;
+                default:
+                    console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
+                    break;
+            }
+            if (dataBuffer) {
+                ret = RegQueryValueExW(myKey, __unicode16StringVal(nameW),
+                                 NULL,
+                                 &valueType,
+                                 dataBuffer,
+                                 &dataSize);
+            } else {
+                break;
+            }
+            if (myKey != HKEY_PERFORMANCE_DATA) {
+                if (ret != ERROR_SUCCESS) break;
+            }
+        }
+
+        if (ret == ERROR_SUCCESS) {
 #if 0
-	    console_printf("ERROR_SUCCESS dataSize=%d valueType=%d\n", dataSize, valueType);
-#endif
-	    switch (valueType) {
-		case REG_NONE:
-		    /* RETURN (@symbol(none));  */
-		    retVal = nil;
-		    break;
-
-		case REG_BINARY:
-		    retVal = __MKBYTEARRAY(dataBuffer ? dataBuffer : quickData.smallDataBuffer, dataSize);
-		    break;
-
-		case REG_SZ:
-		case REG_EXPAND_SZ:
-		    retVal = __MKU16STRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
-		    break;
+            console_printf("ERROR_SUCCESS dataSize=%d valueType=%d\n", dataSize, valueType);
+#endif
+            switch (valueType) {
+                case REG_NONE:
+                    /* RETURN (@symbol(none));  */
+                    retVal = nil;
+                    break;
+
+                case REG_BINARY:
+                    retVal = __MKBYTEARRAY(dataBuffer ? dataBuffer : quickData.smallDataBuffer, dataSize);
+                    break;
+
+                case REG_SZ:
+                case REG_EXPAND_SZ:
+                    retVal = __MKU16STRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
+                    break;
 
 #if 0
-		// REG_DWORD is an alias to
-		// one of REG_DWORD_LITTLE_ENDIAN or REG_DWORD_BIG_ENDIAN
-		case REG_DWORD:
-		    /* int in native format */
-		    retVal = __MKUINT(quickData.dWord);
-		    break;
-#endif
-		case REG_DWORD_LITTLE_ENDIAN:
-		    val = quickData.dWordBytes[3];
-		    val = (val << 8) | quickData.dWordBytes[2];
-		    val = (val << 8) | quickData.dWordBytes[1];
-		    val = (val << 8) | quickData.dWordBytes[0];
-		    retVal = __MKUINT(val);
-		    break;
-
-		case REG_DWORD_BIG_ENDIAN:
-		    val = quickData.dWordBytes[0];
-		    val = (val << 8) | quickData.dWordBytes[1];
-		    val = (val << 8) | quickData.dWordBytes[2];
-		    val = (val << 8) | quickData.dWordBytes[3];
-		    retVal = __MKUINT(val);
-		    break;
-
-		case REG_QWORD_LITTLE_ENDIAN:
-		  {
-		    INT valLow, valHigh;
-
-		    valHigh = quickData.qWordBytes[7];
-		    valHigh = (valHigh << 8) | quickData.dWordBytes[6];
-		    valHigh = (valHigh << 8) | quickData.dWordBytes[5];
-		    valHigh = (valHigh << 8) | quickData.dWordBytes[4];
-
-		    valLow = quickData.dWordBytes[3];
-		    valLow = (valLow << 8) | quickData.dWordBytes[2];
-		    valLow = (valLow << 8) | quickData.dWordBytes[1];
-		    valLow = (valLow << 8) | quickData.dWordBytes[0];
+                // REG_DWORD is an alias to
+                // one of REG_DWORD_LITTLE_ENDIAN or REG_DWORD_BIG_ENDIAN
+                case REG_DWORD:
+                    /* int in native format */
+                    retVal = __MKUINT(quickData.dWord);
+                    break;
+#endif
+                case REG_DWORD_LITTLE_ENDIAN:
+                    val = quickData.dWordBytes[3];
+                    val = (val << 8) | quickData.dWordBytes[2];
+                    val = (val << 8) | quickData.dWordBytes[1];
+                    val = (val << 8) | quickData.dWordBytes[0];
+                    retVal = __MKUINT(val);
+                    break;
+
+                case REG_DWORD_BIG_ENDIAN:
+                    val = quickData.dWordBytes[0];
+                    val = (val << 8) | quickData.dWordBytes[1];
+                    val = (val << 8) | quickData.dWordBytes[2];
+                    val = (val << 8) | quickData.dWordBytes[3];
+                    retVal = __MKUINT(val);
+                    break;
+
+                case REG_QWORD_LITTLE_ENDIAN:
+                  {
+                    INT valLow, valHigh;
+
+                    valHigh = quickData.qWordBytes[7];
+                    valHigh = (valHigh << 8) | quickData.dWordBytes[6];
+                    valHigh = (valHigh << 8) | quickData.dWordBytes[5];
+                    valHigh = (valHigh << 8) | quickData.dWordBytes[4];
+
+                    valLow = quickData.dWordBytes[3];
+                    valLow = (valLow << 8) | quickData.dWordBytes[2];
+                    valLow = (valLow << 8) | quickData.dWordBytes[1];
+                    valLow = (valLow << 8) | quickData.dWordBytes[0];
 #if __POINTER_SIZE__ == 8
-		    retVal = __MKUINT( (valHigh<<32)|valLow );
-#else
-		    retVal = __MKLARGEINT64(1, (unsigned INT)valLow, (unsigned INT)valHigh);
-#endif
-		    break;
-		  }
-
-		case REG_MULTI_SZ:
-		    {
-			WCHAR *cp, *cp0;
-			int ns, i;
-
-			cp0 = dataBuffer ? dataBuffer : quickData.smallDataBuffer;
+                    retVal = __MKUINT( (valHigh<<32)|valLow );
+#else
+                    retVal = __MKLARGEINT64(1, (unsigned INT)valLow, (unsigned INT)valHigh);
+#endif
+                    break;
+                  }
+
+                case REG_MULTI_SZ:
+                    {
+                        WCHAR *cp, *cp0;
+                        int ns, i;
+
+                        cp0 = dataBuffer ? dataBuffer : quickData.smallDataBuffer;
 #if 0
-			console_printf("**************\n");
-			for (i=0;i<50;i++) {
-			  console_printf("%x ", cp0[i]);
-			}
-			console_printf("\n");
-			for (i=0;i<50;i++) {
-			  if (cp0[i] == 0)
-			    console_printf("\n");
-			  else
-			    console_printf("%c", cp0[i]);
-			}
-			console_printf("\n");
-			console_printf("**************\n");
-#endif
-			cp = cp0;
-			ns = 0;
-			while (*cp) {
-			    while (*cp++) ;;
-			    ns++;
-			}
-			stringArray = __ARRAY_NEW_INT(ns);
-
-			i = 0;
-			while (*cp0) {
-			    OBJ s;
-			    WCHAR *cp;
-
-			    cp = cp0;
-			    while (*cp++) ;;
-			    s = __MKU16STRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
-			    cp0 = cp;
-			    i++;
-			}
-			retVal = stringArray;
-			break;
-		    }
-		default:
-		    console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
-		    break;
-	    }
-	} else {
-	    if ((ret != ERROR_PATH_NOT_FOUND)
-	     && (ret != ERROR_FILE_NOT_FOUND)) {
-		errorNumber = __MKSMALLINT(ret);
-	    }
-	}
+                        console_printf("**************\n");
+                        for (i=0;i<50;i++) {
+                          console_printf("%x ", cp0[i]);
+                        }
+                        console_printf("\n");
+                        for (i=0;i<50;i++) {
+                          if (cp0[i] == 0)
+                            console_printf("\n");
+                          else
+                            console_printf("%c", cp0[i]);
+                        }
+                        console_printf("\n");
+                        console_printf("**************\n");
+#endif
+                        cp = cp0;
+                        ns = 0;
+                        while (*cp) {
+                            while (*cp++) ;;
+                            ns++;
+                        }
+                        stringArray = __ARRAY_NEW_INT(ns);
+
+                        i = 0;
+                        while (*cp0) {
+                            OBJ s;
+                            WCHAR *cp;
+
+                            cp = cp0;
+                            while (*cp++) ;;
+                            s = __MKU16STRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
+                            cp0 = cp;
+                            i++;
+                        }
+                        retVal = stringArray;
+                        break;
+                    }
+                default:
+                    console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
+                    break;
+            }
+        } else {
+            if ((ret != ERROR_PATH_NOT_FOUND)
+             && (ret != ERROR_FILE_NOT_FOUND)) {
+                errorNumber = __MKSMALLINT(ret);
+            }
+        }
     }
     if (dataBuffer) free(dataBuffer);
 %}.
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     (retVal isString and:[retVal isUnicodeString]) ifTrue:[
-	^ retVal asSingleByteStringIfPossible
+        ^ retVal asSingleByteStringIfPossible
     ].
     retVal isArray ifTrue:[
-	retVal := retVal collect:[:s |
-			(s isString and:[s isUnicodeString]) ifTrue:[ s asSingleByteStringIfPossible ] ifFalse:[s]
-		  ]
+        retVal := retVal collect:[:s |
+                        (s isString and:[s isUnicodeString]) ifTrue:[ s asSingleByteStringIfPossible ] ifFalse:[s]
+                  ]
     ].
     ^ retVal
 
@@ -17560,11 +17585,11 @@
 
 valueNamed:aValueName put:datum
     "store a value; the value type depends upon the stored value:
-	ByteArray       -> REG_BINARY
-	String          -> REG_SZ
-	Array of string -> REG_MULTI_SZ
-	Integer         -> REG_DWORD
-	nil             -> REG_NONE
+        ByteArray       -> REG_BINARY
+        String          -> REG_SZ
+        Array of string -> REG_MULTI_SZ
+        Integer         -> REG_DWORD
+        nil             -> REG_NONE
      aValueName name may be a string or unicode16string.
     "
 
@@ -17576,32 +17601,32 @@
      to be able to set/force REG_EXPAND_SZ"
     (datum isString
     and:[datum isUnicode16String]) ifTrue:[
-	nameW := aValueName asUnicode16StringZ.
-	dataW := datum asUnicode16StringZ.
+        nameW := aValueName asUnicode16StringZ.
+        dataW := datum asUnicode16StringZ.
     ] ifFalse:[
-	nameA := aValueName asSingleByteStringIfPossible.
-	nameA isSingleByteString ifFalse:[
-	    nameW := aValueName asUnicode16StringZ.
-	    nameA := nil
-	].
-
-	dataA := datum.
-	dataA isString ifTrue:[
-	    dataA := datum asSingleByteStringIfPossible.
-	    dataA isSingleByteString ifFalse:[
-		nameW isNil ifTrue:[
-		    nameW := aValueName asUnicode16StringZ.
-		    nameA := nil.
-		].
-		dataW := datum asUnicode16StringZ.
-		dataA := nil.
-	    ] ifTrue:[
-		nameA isNil ifTrue:[
-		    dataW := datum asUnicode16StringZ.
-		    dataA := nil.
-		].
-	    ].
-	].
+        nameA := aValueName asSingleByteStringIfPossible.
+        nameA isSingleByteString ifFalse:[
+            nameW := aValueName asUnicode16StringZ.
+            nameA := nil
+        ].
+
+        dataA := datum.
+        dataA isString ifTrue:[
+            dataA := datum asSingleByteStringIfPossible.
+            dataA isSingleByteString ifFalse:[
+                nameW isNil ifTrue:[
+                    nameW := aValueName asUnicode16StringZ.
+                    nameA := nil.
+                ].
+                dataW := datum asUnicode16StringZ.
+                dataA := nil.
+            ] ifTrue:[
+                nameA isNil ifTrue:[
+                    dataW := datum asUnicode16StringZ.
+                    dataA := nil.
+                ].
+            ].
+        ].
     ].
 
 %{
@@ -17618,130 +17643,130 @@
 
     badArg = true;
     if (__isExternalAddressLike(__INST(handle))) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-
-	if (__isStringLike(nameA)) {
-	    _nameA = __unicode16StringVal(aValueName);
-	}
-	if (__isUnicode16String(nameW)) {
-	    _nameW = __unicode16StringVal(nameW);
-	}
-	if ((_nameA == NULL) && (_nameW == NULL)) {
-	    errorNumber = __MKSMALLINT(-1);
-	    goto getOutOfHere;
-	}
-
-	badArg = false;
-	if (datum == nil) {
-	    valueType = REG_NONE;
-	    dataSize = 0;
-	} else if (__isSmallInteger(datum)) {
-	    valueType = REG_DWORD;
-	    val = __intVal(datum);
-	    dataPointer = (unsigned char *)(&val);
-	    dataSize = sizeof(val);
-	} else if (__isStringLike(dataA)) {
-	    valueType = REG_SZ;
-	    dataPointer = __stringVal(dataA);
-	    dataSize = __stringSize(dataA) + 1;
-	} else if (__isUnicode16String(dataW)) {
-	    valueType = REG_EXPAND_SZ;
-	    dataPointer = __unicode16StringVal(dataW);
-	    dataSize = (__unicode16StringSize(dataW) + 1)*2;
-	    nameA = NULL; // must use WideChar-interface
-	} else if (__Class(datum) == ByteArray) {
-	    valueType = REG_BINARY;
-	    dataPointer = __ByteArrayInstPtr(datum)->ba_element;
-	    dataSize = __byteArraySize(datum);
-	} else if (__Class(datum) == LargeInteger) {
-	    valueType = REG_DWORD;
-	    val = __longIntVal(datum);
-	    if (val) {
-		dataPointer = (unsigned char *)(&val);
-		dataSize = sizeof(val);
-	    } else {
-		datumOk = 0;
-	    }
-	} else if (__Class(datum) == Array) {
-	    int i = 0, ns = 0, totalSize = 0;
-
-	    nameW = NULL; // must use Ascii-interface (for now)
-
-	    valueType = REG_MULTI_SZ;
-
-	    /*
-	     * must allocate a local buffer
-	     * find size ...
-	     */
-	    for (i=0; i<__arraySize(datum); i++) {
-		OBJ s = __ArrayInstPtr(datum)->a_element[i];
-
-		if (__isStringLike(s)) {
-		    totalSize += __stringSize(s) + 1;
-		} else {
-		    datumOk = 0;
-		    break;
-		}
-		ns++;
-	    }
-	    if (datumOk) {
-		char *cp;
-
-		/*
-		 * allocate and fill...
-		 */
-		totalSize ++;
-		dataPointer = (char *)(malloc(totalSize));
-		mustFreeData = 1;
-		cp = dataPointer;
-		for (i=0; i<__arraySize(datum); i++) {
-		    OBJ s = __ArrayInstPtr(datum)->a_element[i];
-
-		    strcpy(cp, __stringVal(s));
-		    cp += __stringSize(s);
-		    *cp++ = '\0';
-		}
-		*cp++ = '\0';
-		dataSize = totalSize;
-	    }
-	} else {
-	    datumOk = 0;
-	    badArg = true;
-	}
-
-	if (datumOk) {
-	    if (_nameA != NULL) {
-		ret = RegSetValueExA(myKey, _nameA,
-				    0, valueType,
-				    dataPointer, dataSize);
-	    } else {
-		ret = RegSetValueExW(myKey, _nameW,
-				    0, valueType,
-				    dataPointer, dataSize);
-	    }
-
-	    if (mustFreeData) {
-		free(dataPointer);
-	    }
-	    if (ret == ERROR_SUCCESS) {
-		RETURN (true);
-	    }
-	    if ((ret != ERROR_PATH_NOT_FOUND)
-	     && (ret != ERROR_FILE_NOT_FOUND)) {
-		errorNumber = __MKSMALLINT(ret);
-	    }
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+        if (__isStringLike(nameA)) {
+            _nameA = __unicode16StringVal(aValueName);
+        }
+        if (__isUnicode16String(nameW)) {
+            _nameW = __unicode16StringVal(nameW);
+        }
+        if ((_nameA == NULL) && (_nameW == NULL)) {
+            errorNumber = __MKSMALLINT(-1);
+            goto getOutOfHere;
+        }
+
+        badArg = false;
+        if (datum == nil) {
+            valueType = REG_NONE;
+            dataSize = 0;
+        } else if (__isSmallInteger(datum)) {
+            valueType = REG_DWORD;
+            val = __intVal(datum);
+            dataPointer = (unsigned char *)(&val);
+            dataSize = sizeof(val);
+        } else if (__isStringLike(dataA)) {
+            valueType = REG_SZ;
+            dataPointer = __stringVal(dataA);
+            dataSize = __stringSize(dataA) + 1;
+        } else if (__isUnicode16String(dataW)) {
+            valueType = REG_EXPAND_SZ;
+            dataPointer = __unicode16StringVal(dataW);
+            dataSize = (__unicode16StringSize(dataW) + 1)*2;
+            nameA = NULL; // must use WideChar-interface
+        } else if (__Class(datum) == ByteArray) {
+            valueType = REG_BINARY;
+            dataPointer = __ByteArrayInstPtr(datum)->ba_element;
+            dataSize = __byteArraySize(datum);
+        } else if (__Class(datum) == LargeInteger) {
+            valueType = REG_DWORD;
+            val = __longIntVal(datum);
+            if (val) {
+                dataPointer = (unsigned char *)(&val);
+                dataSize = sizeof(val);
+            } else {
+                datumOk = 0;
+            }
+        } else if (__Class(datum) == Array) {
+            int i = 0, ns = 0, totalSize = 0;
+
+            nameW = NULL; // must use Ascii-interface (for now)
+
+            valueType = REG_MULTI_SZ;
+
+            /*
+             * must allocate a local buffer
+             * find size ...
+             */
+            for (i=0; i<__arraySize(datum); i++) {
+                OBJ s = __ArrayInstPtr(datum)->a_element[i];
+
+                if (__isStringLike(s)) {
+                    totalSize += __stringSize(s) + 1;
+                } else {
+                    datumOk = 0;
+                    break;
+                }
+                ns++;
+            }
+            if (datumOk) {
+                char *cp;
+
+                /*
+                 * allocate and fill...
+                 */
+                totalSize ++;
+                dataPointer = (char *)(malloc(totalSize));
+                mustFreeData = 1;
+                cp = dataPointer;
+                for (i=0; i<__arraySize(datum); i++) {
+                    OBJ s = __ArrayInstPtr(datum)->a_element[i];
+
+                    strcpy(cp, __stringVal(s));
+                    cp += __stringSize(s);
+                    *cp++ = '\0';
+                }
+                *cp++ = '\0';
+                dataSize = totalSize;
+            }
+        } else {
+            datumOk = 0;
+            badArg = true;
+        }
+
+        if (datumOk) {
+            if (_nameA != NULL) {
+                ret = RegSetValueExA(myKey, _nameA,
+                                    0, valueType,
+                                    dataPointer, dataSize);
+            } else {
+                ret = RegSetValueExW(myKey, _nameW,
+                                    0, valueType,
+                                    dataPointer, dataSize);
+            }
+
+            if (mustFreeData) {
+                free(dataPointer);
+            }
+            if (ret == ERROR_SUCCESS) {
+                RETURN (true);
+            }
+            if ((ret != ERROR_PATH_NOT_FOUND)
+             && (ret != ERROR_FILE_NOT_FOUND)) {
+                errorNumber = __MKSMALLINT(ret);
+            }
+        }
     }
   getOutOfHere:
     /* intentional null statement to make recent gcc happy */
     ;
 %}.
     errorNumber notNil ifTrue:[
-	badArg ifTrue:[
-	    self primitiveFailed:'bad argument'
-	] ifFalse:[
-	    (OperatingSystem errorHolderForNumber:errorNumber) reportError.
-	]
+        badArg ifTrue:[
+            self primitiveFailed:'bad argument'
+        ] ifFalse:[
+            (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        ]
     ].
     ^ false
 
@@ -17779,14 +17804,14 @@
 
     idx := 0.
     [true] whileTrue:[
-	subEntry := self subKeyAtIndex:idx.
-	subEntry isNil ifTrue:[
-	    ^self
-	].
-	aBlock value:subEntry.
-	subEntry allSubKeysDo:aBlock.
-	subEntry close.
-	idx := idx + 1.
+        subEntry := self subKeyAtIndex:idx.
+        subEntry isNil ifTrue:[
+            ^self
+        ].
+        aBlock value:subEntry.
+        subEntry allSubKeysDo:aBlock.
+        subEntry close.
+        idx := idx + 1.
     ]
 
     "
@@ -17794,7 +17819,7 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      top allSubKeysDo:[:subEntry |
-	Transcript showCR:subEntry path
+        Transcript showCR:subEntry path
      ]
     "
 !
@@ -17806,12 +17831,12 @@
 
     idx := 0.
     [true] whileTrue:[
-	nameAndClassNameOrNil := self subKeyNameAndClassAtIndex:idx.
-	nameAndClassNameOrNil isNil ifTrue:[
-	    ^self
-	].
-	aTwoArgBlock value:nameAndClassNameOrNil first value:nameAndClassNameOrNil second.
-	idx := idx + 1.
+        nameAndClassNameOrNil := self subKeyNameAndClassAtIndex:idx.
+        nameAndClassNameOrNil isNil ifTrue:[
+            ^self
+        ].
+        aTwoArgBlock value:nameAndClassNameOrNil first value:nameAndClassNameOrNil second.
+        idx := idx + 1.
     ]
 
     "
@@ -17819,7 +17844,7 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      top subKeyNamesAndClassesDo:[:nm :cls |
-	Transcript showCR:('name: ',nm,' class: ',cls)
+        Transcript showCR:('name: ',nm,' class: ',cls)
      ]
     "
 !
@@ -17851,13 +17876,13 @@
 
     idx := 0.
     [true] whileTrue:[
-	subEntry := self subKeyAtIndex:idx.
-	subEntry isNil ifTrue:[
-	    ^self
-	].
-	aBlock value:subEntry.
-	subEntry close.
-	idx := idx + 1.
+        subEntry := self subKeyAtIndex:idx.
+        subEntry isNil ifTrue:[
+            ^self
+        ].
+        aBlock value:subEntry.
+        subEntry close.
+        idx := idx + 1.
     ]
 
     "
@@ -17865,7 +17890,7 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      top subKeysDo:[:subEntry |
-	Transcript showCR:subEntry path
+        Transcript showCR:subEntry path
      ]
     "
     "
@@ -17873,11 +17898,11 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      OSErrorHolder noPermissionsSignal handle:[:ex |
-	ex proceed
+        ex proceed
      ] do:[
-	 top subKeysDo:[:subEntry |
-	    Transcript showCR:subEntry path
-	 ]
+         top subKeysDo:[:subEntry |
+            Transcript showCR:subEntry path
+         ]
      ]
     "
 !
@@ -17886,7 +17911,7 @@
     "evaluate aBlock for all value names"
 
     ^ Array streamContents:[:s |
-	self valueNamesDo:[:nm | s nextPut:nm]
+        self valueNamesDo:[:nm | s nextPut:nm]
     ].
 
     "Created: / 18-01-2011 / 20:24:52 / cg"
@@ -17896,7 +17921,7 @@
     "evaluate aBlock for all value names"
 
     self valueNamesDo:[:nm |
-	aBlock value:nm value:(self valueNamed:nm)
+        aBlock value:nm value:(self valueNamed:nm)
     ]
 
     "
@@ -17904,7 +17929,7 @@
 
      key := self key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
      key valueNamesAndValuesDo:[:nm :val |
-	Transcript showCR:(nm , ' -> ' , val storeString).
+        Transcript showCR:(nm , ' -> ' , val storeString).
      ]
     "
 !
@@ -17916,12 +17941,12 @@
 
     idx := 0.
     [true] whileTrue:[
-	valueName := self valueNameAtIndex:idx.
-	valueName isNil ifTrue:[
-	    ^self
-	].
-	aBlock value:valueName.
-	idx := idx + 1.
+        valueName := self valueNameAtIndex:idx.
+        valueName isNil ifTrue:[
+            ^self
+        ].
+        aBlock value:valueName.
+        idx := idx + 1.
     ]
 ! !
 
@@ -17941,9 +17966,9 @@
     HKEY myKey;
 
     if (__isExternalAddressLike(__INST(handle))) {
-	myKey = (HKEY)(__externalAddressVal(__INST(handle)));
-	__INST(handle) = nil;
-	RegCloseKey(myKey);
+        myKey = (HKEY)(__externalAddressVal(__INST(handle)));
+        __INST(handle) = nil;
+        RegCloseKey(myKey);
     }
 %}
 !
@@ -17956,7 +17981,7 @@
     "some entry has been collected - close it"
 
     handle notNil ifTrue:[
-	self closeKey.
+        self closeKey.
     ]
 
     "Created: / 19.5.1999 / 22:39:52 / cg"
@@ -17967,10 +17992,10 @@
 
 printOn:aStream
     aStream
-	nextPutAll:self className;
-	nextPut:$(;
-	nextPutAll:path;
-	nextPut:$).
+        nextPutAll:self className;
+        nextPut:$(;
+        nextPutAll:path;
+        nextPut:$).
 ! !
 
 !Win32OperatingSystem::RegistryEntry methodsFor:'private'!
@@ -18001,7 +18026,7 @@
 
     key = (HKEY)__longIntVal(integerHandleValue);
     if (! key) {
-	RETURN (nil);
+        RETURN (nil);
     }
 
     t = __MKEXTERNALADDRESS(key); __INST(handle) = t; __STORE(self, t);
@@ -18093,90 +18118,90 @@
     int ok;
 
     if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
-	errSym = @symbol(errorNotOpen);
-	goto bad;
+        errSym = @symbol(errorNotOpen);
+        goto bad;
     }
     if (! __bothSmallInteger(count, firstIndex)) {
-	errSym = @symbol(badArgument);
-	goto bad;
+        errSym = @symbol(badArgument);
+        goto bad;
     }
     cntWanted = __smallIntegerVal(count);
     if (cntWanted <= 0) {
-	errSym = @symbol(badCount);
-	goto bad;
+        errSym = @symbol(badCount);
+        goto bad;
     }
     offs = __smallIntegerVal(firstIndex) - 1;
     if (offs < 0) {
-	errSym = @symbol(badOffset);
-	goto bad;
+        errSym = @symbol(badOffset);
+        goto bad;
     }
 
     bufferIsExternalBytes = __isExternalBytesLike(aByteBuffer);
     if (! bufferIsExternalBytes) {
-	if (__isByteArray(aByteBuffer)) {
-	    bufferSize = __byteArraySize(aByteBuffer);
-	} else if (__isString(aByteBuffer)) {  // not isStringLike here !
-	    bufferSize = __stringSize(aByteBuffer);
-	} else {
-	    errSym = @symbol(badBuffer);
-	    goto bad;
-	}
-	if (bufferSize < (cntWanted + offs)) {
-	    errSym = @symbol(badBufferSize);
-	    goto bad;
-	}
-	if (cntWanted <= sizeof(miniBuffer)) {
-	    extPtr = miniBuffer;
-	} else {
-	    extPtr = malloc(cntWanted);
-	    mustFreeBuffer = 1;
-	}
+        if (__isByteArray(aByteBuffer)) {
+            bufferSize = __byteArraySize(aByteBuffer);
+        } else if (__isString(aByteBuffer)) {  // not isStringLike here !
+            bufferSize = __stringSize(aByteBuffer);
+        } else {
+            errSym = @symbol(badBuffer);
+            goto bad;
+        }
+        if (bufferSize < (cntWanted + offs)) {
+            errSym = @symbol(badBufferSize);
+            goto bad;
+        }
+        if (cntWanted <= sizeof(miniBuffer)) {
+            extPtr = miniBuffer;
+        } else {
+            extPtr = malloc(cntWanted);
+            mustFreeBuffer = 1;
+        }
     } else {
-	OBJ sz;
-
-	extPtr = (char *)(__externalBytesAddress(aByteBuffer));
-	if (extPtr == NULL) goto bad;
-	sz = __externalBytesSize(aByteBuffer);
-	if (! __isSmallInteger(sz)) {
-	    errSym = @symbol(badBufferSize);
-	    goto bad;
-	}
-	bufferSize = __smallIntegerVal(sz);
-	if (bufferSize < (cntWanted + offs)) {
-	    errSym = @symbol(badBufferSize);
-	    goto bad;
-	}
-	extPtr = extPtr + offs;
+        OBJ sz;
+
+        extPtr = (char *)(__externalBytesAddress(aByteBuffer));
+        if (extPtr == NULL) goto bad;
+        sz = __externalBytesSize(aByteBuffer);
+        if (! __isSmallInteger(sz)) {
+            errSym = @symbol(badBufferSize);
+            goto bad;
+        }
+        bufferSize = __smallIntegerVal(sz);
+        if (bufferSize < (cntWanted + offs)) {
+            errSym = @symbol(badBufferSize);
+            goto bad;
+        }
+        extPtr = extPtr + offs;
     }
 
     do {
-	__threadErrno = 0;
-	// do not cast to INT - will loose sign bit then!
-	ok = (int)(STX_API_NOINT_CALL5( "ReadFile", ReadFile, hFile, extPtr, cntWanted, &cntRead, 0 /* lpOverlapped */));
+        __threadErrno = 0;
+        // do not cast to INT - will loose sign bit then!
+        ok = (int)(STX_API_NOINT_CALL5( "ReadFile", ReadFile, hFile, extPtr, cntWanted, &cntRead, 0 /* lpOverlapped */));
     } while(__threadErrno == EINTR);
 
     if (ok == TRUE) {
-	if (! bufferIsExternalBytes) {
-	    /* copy over */
-	    memcpy(__byteArrayVal(aByteBuffer)+offs, extPtr, cntRead);
-	    if (mustFreeBuffer) {
-		free(extPtr);
-	    }
-	}
-	RETURN (__mkSmallInteger(cntRead));
+        if (! bufferIsExternalBytes) {
+            /* copy over */
+            memcpy(__byteArrayVal(aByteBuffer)+offs, extPtr, cntRead);
+            if (mustFreeBuffer) {
+                free(extPtr);
+            }
+        }
+        RETURN (__mkSmallInteger(cntRead));
     }
     errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
 
 bad: ;
     if (mustFreeBuffer) {
-	free(extPtr);
+        free(extPtr);
     }
 %}.
 
     errorNumber isNil ifTrue:[
-	self error:'invalid argument(s): ', errSym.
+        self error:'invalid argument(s): ', errSym.
     ] ifFalse:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError
     ].
 
     "
@@ -18200,48 +18225,48 @@
     INT t;
 
     if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
-	errSym = @symbol(errorNotOpen);
-	goto bad;
+        errSym = @symbol(errorNotOpen);
+        goto bad;
     }
 
 #if 0
     if (ioctlsocket((SOCKET)hFile, FIONREAD, &res)==0) {
-	/* its a socket */
-	if (res > 0) {
-	    RETURN ( false );
-	}
+        /* its a socket */
+        if (res > 0) {
+            RETURN ( false );
+        }
     }
     if (PeekNamedPipe(hFile, 0, 0, 0, &res, 0)) {
-	/* its a namedPipe */
-	if (res > 0) {
-	    RETURN ( false );
-	}
+        /* its a namedPipe */
+        if (res > 0) {
+            RETURN ( false );
+        }
     }
 #endif
     if (__isSmallInteger(millis)) {
-	t = __intVal(millis);
+        t = __intVal(millis);
     } else {
-	t = INFINITE;
+        t = INFINITE;
     }
 
     do {
-	__threadErrno = 0;
-	res = WaitForSingleObject(hFile, t);
+        __threadErrno = 0;
+        res = WaitForSingleObject(hFile, t);
     } while (__threadErrno == EINTR);
 
     switch (res) {
-	case WAIT_OBJECT_0:
-	    /* signalled */
-	    RETURN ( false );
-
-	case WAIT_TIMEOUT:
-	    /* signalled */
-	    RETURN ( true );
-
-	default:
-	case WAIT_ABANDONED:
-	    errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
-	    goto bad;
+        case WAIT_OBJECT_0:
+            /* signalled */
+            RETURN ( false );
+
+        case WAIT_TIMEOUT:
+            /* signalled */
+            RETURN ( true );
+
+        default:
+        case WAIT_ABANDONED:
+            errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+            goto bad;
     }
 
 bad: ;
@@ -18256,9 +18281,9 @@
 
 seekTo:newPosition from:whence
     "whence is one of:
-	#begin
-	#current
-	#end
+        #begin
+        #current
+        #end
     "
 
     |errSym errorNumber|
@@ -18270,24 +18295,24 @@
     __uint64__ pos64, newPos64;
 
     if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
-	errSym = @symbol(errorNotOpen);
-	goto bad;
+        errSym = @symbol(errorNotOpen);
+        goto bad;
     }
 
     if (whence == @symbol(begin)) {
-	moveHow = FILE_BEGIN;
+        moveHow = FILE_BEGIN;
     } else if (whence == @symbol(current)) {
-	moveHow = FILE_CURRENT;
+        moveHow = FILE_CURRENT;
     } else if (whence == @symbol(end)) {
-	moveHow = FILE_END;
+        moveHow = FILE_END;
     } else {
-	errSym = @symbol(badArgument2);
-	goto bad;
+        errSym = @symbol(badArgument2);
+        goto bad;
     }
 
     if (__signedLong64IntVal(newPosition, &pos64) == 0) {
-	errSym = @symbol(badArgument);
-	goto bad;
+        errSym = @symbol(badArgument);
+        goto bad;
     }
 #if __POINTER_SIZE__ == 8
     posLo = pos64 & 0xFFFFFFFF;
@@ -18298,18 +18323,18 @@
 #endif
     posLo = SetFilePointer(hFile, posLo, &posHi, moveHow);
     if (posLo == 0xFFFFFFFF) {
-	int lastError;
-
-	/* can be either an error, or a valid low-word */
-	lastError = GetLastError();
-	if (lastError != NO_ERROR) {
-	    errorNumber = __mkSmallInteger( __WIN32_ERR(lastError) );
-	    goto bad;
-	}
+        int lastError;
+
+        /* can be either an error, or a valid low-word */
+        lastError = GetLastError();
+        if (lastError != NO_ERROR) {
+            errorNumber = __mkSmallInteger( __WIN32_ERR(lastError) );
+            goto bad;
+        }
     }
 
     if (posHi == 0) {
-	RETURN (__MKUINT( posLo ));
+        RETURN (__MKUINT( posLo ));
     }
 #if __POINTER_SIZE__ == 8
     newPos64 = (__uint64__)posLo | ((__uint64__)posHi << 32);
@@ -18324,9 +18349,9 @@
 %}.
 
     errorNumber isNil ifTrue:[
-	self error:'invalid argument(s): ', errSym.
+        self error:'invalid argument(s): ', errSym.
     ] ifFalse:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError
     ].
 !
 
@@ -18347,84 +18372,84 @@
     int ok;
 
     if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
-	errSym = @symbol(errorNotOpen);
-	goto bad;
+        errSym = @symbol(errorNotOpen);
+        goto bad;
     }
     if (! __bothSmallInteger(count, firstIndex)) {
-	errSym = @symbol(badArgument);
-	goto bad;
+        errSym = @symbol(badArgument);
+        goto bad;
     }
     cntWanted = __smallIntegerVal(count);
     if (cntWanted <= 0) {
-	errSym = @symbol(badCount);
-	goto bad;
+        errSym = @symbol(badCount);
+        goto bad;
     }
     offs = __smallIntegerVal(firstIndex) - 1;
     if (offs < 0) {
-	errSym = @symbol(badOffset);
-	goto bad;
+        errSym = @symbol(badOffset);
+        goto bad;
     }
 
     bufferIsExternalBytes = __isExternalBytesLike(aByteBuffer);
     if (! bufferIsExternalBytes) {
-	if (__isByteArray(aByteBuffer)) {
-	    bufferSize = __byteArraySize(aByteBuffer);
-	} else if (__isStringLike(aByteBuffer)) {
-	    bufferSize = __stringSize(aByteBuffer);
-	} else {
-	    errSym = @symbol(badBuffer);
-	    goto bad;
-	}
-	if (bufferSize < (cntWanted + offs)) {
-	    errSym = @symbol(badBufferSize);
-	    goto bad;
-	}
-	if (cntWanted <= sizeof(miniBuffer)) {
-	    extPtr = miniBuffer;
-	} else {
-	    extPtr = malloc(cntWanted);
-	    mustFreeBuffer = 1;
-	}
-	memcpy(extPtr, __byteArrayVal(aByteBuffer)+offs, cntWanted);
+        if (__isByteArray(aByteBuffer)) {
+            bufferSize = __byteArraySize(aByteBuffer);
+        } else if (__isStringLike(aByteBuffer)) {
+            bufferSize = __stringSize(aByteBuffer);
+        } else {
+            errSym = @symbol(badBuffer);
+            goto bad;
+        }
+        if (bufferSize < (cntWanted + offs)) {
+            errSym = @symbol(badBufferSize);
+            goto bad;
+        }
+        if (cntWanted <= sizeof(miniBuffer)) {
+            extPtr = miniBuffer;
+        } else {
+            extPtr = malloc(cntWanted);
+            mustFreeBuffer = 1;
+        }
+        memcpy(extPtr, __byteArrayVal(aByteBuffer)+offs, cntWanted);
     } else {
-	extPtr = (char *)(__externalBytesAddress(aByteBuffer));
-	if (extPtr == NULL) goto bad;
-	bufferSize = __externalBytesSize(aByteBuffer);
-	if (! __isSmallInteger(bufferSize)) {
-	    errSym = @symbol(badBufferSize);
-	    goto bad;
-	}
-	bufferSize = __smallIntegerVal(bufferSize);
-	if (bufferSize < (cntWanted + offs)) {
-	    errSym = @symbol(badBufferSize);
-	    goto bad;
-	}
-	extPtr = extPtr + offs;
+        extPtr = (char *)(__externalBytesAddress(aByteBuffer));
+        if (extPtr == NULL) goto bad;
+        bufferSize = __externalBytesSize(aByteBuffer);
+        if (! __isSmallInteger(bufferSize)) {
+            errSym = @symbol(badBufferSize);
+            goto bad;
+        }
+        bufferSize = __smallIntegerVal(bufferSize);
+        if (bufferSize < (cntWanted + offs)) {
+            errSym = @symbol(badBufferSize);
+            goto bad;
+        }
+        extPtr = extPtr + offs;
     }
 
     do {
-	__threadErrno = 0;
-	// do not cast to INT - will loose sign bit then!
-	ok = (int)(STX_API_NOINT_CALL5( "WriteFile", WriteFile, hFile, extPtr, cntWanted, &cntWritten, 0 /* lpOverlapped */));
+        __threadErrno = 0;
+        // do not cast to INT - will loose sign bit then!
+        ok = (int)(STX_API_NOINT_CALL5( "WriteFile", WriteFile, hFile, extPtr, cntWanted, &cntWritten, 0 /* lpOverlapped */));
     } while(__threadErrno == EINTR);
 
     if (ok == TRUE) {
-	if (mustFreeBuffer) {
-	    free(extPtr);
-	}
-	RETURN (__mkSmallInteger(cntWritten));
+        if (mustFreeBuffer) {
+            free(extPtr);
+        }
+        RETURN (__mkSmallInteger(cntWritten));
     }
     errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
 
 bad: ;
     if (mustFreeBuffer) {
-	free(extPtr);
+        free(extPtr);
     }
 %}.
     errorNumber isNil ifTrue:[
-	self error:'invalid argument(s): ', errSym.
+        self error:'invalid argument(s): ', errSym.
     ] ifFalse:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError
     ].
 
     "
@@ -18453,7 +18478,7 @@
     I represent a handle of a file in the filesystem.
 
     [author:]
-	Stefan Vogel
+        Stefan Vogel
 "
 ! !
 
@@ -18494,8 +18519,8 @@
     DisplayTypeMappingTable := Dictionary new.
 
     symbTable keysAndValuesDo:[:aSYMB :anINT |
-	DisplayTypeMappingTable at: aSYMB put: anINT.
-	DisplayTypeMappingTable at: anINT put: aSYMB. "/ vice versa
+        DisplayTypeMappingTable at: aSYMB put: anINT.
+        DisplayTypeMappingTable at: anINT put: aSYMB. "/ vice versa
     ].
     ^ DisplayTypeMappingTable
 !
@@ -18517,8 +18542,8 @@
     ScopeMappingTable := Dictionary new.
 
     symbTable keysAndValuesDo:[:aSYMB :anINT |
-	ScopeMappingTable at: aSYMB put: anINT.
-	ScopeMappingTable at: anINT put: aSYMB. "/ vice versa
+        ScopeMappingTable at: aSYMB put: anINT.
+        ScopeMappingTable at: anINT put: aSYMB. "/ vice versa
     ].
     ^ ScopeMappingTable
 !
@@ -18540,8 +18565,8 @@
     TypeMappingTable := Dictionary new.
 
     symbTable keysAndValuesDo:[:aSYMB :anINT |
-	TypeMappingTable at: aSYMB put: anINT.
-	TypeMappingTable at: anINT put: aSYMB. "/ vice versa
+        TypeMappingTable at: aSYMB put: anINT.
+        TypeMappingTable at: anINT put: aSYMB. "/ vice versa
     ].
     ^ TypeMappingTable
 !
@@ -18566,8 +18591,8 @@
     UsageMappingTable := Dictionary new.
 
     symbTable keysAndValuesDo:[:aSYMB :anINT |
-	UsageMappingTable at: aSYMB put: anINT.
-	UsageMappingTable at: anINT put: aSYMB. "/ vice versa
+        UsageMappingTable at: aSYMB put: anINT.
+        UsageMappingTable at: anINT put: aSYMB. "/ vice versa
     ].
     ^ UsageMappingTable
 ! !
@@ -18583,25 +18608,25 @@
      and nil is returned.
 
     self fetchResourcesStartingAt: nil withScope: #GLOBALNET type: #ANY usage: 0
-	onError: [:err| Transcript showCR: err ].
+        onError: [:err| Transcript showCR: err ].
     "
     | stream networkResources |
 
     [
-	stream := self openAt: aNetworkResourceOrNil
-	    withScope: aScope type: aType usage: aUsage onError: aBlock.
-
-	stream notNil ifTrue:[
-	    |next|
-
-	    networkResources := OrderedCollection new.
-
-	    [ (next := stream nextOrNil) notNil ] whileTrue:[
-		networkResources add:next.
-	    ].
-	]
+        stream := self openAt: aNetworkResourceOrNil
+            withScope: aScope type: aType usage: aUsage onError: aBlock.
+
+        stream notNil ifTrue:[
+            |next|
+
+            networkResources := OrderedCollection new.
+
+            [ (next := stream nextOrNil) notNil ] whileTrue:[
+                networkResources add:next.
+            ].
+        ]
     ] ensure:[
-	stream notNil ifTrue:[ stream close ].
+        stream notNil ifTrue:[ stream close ].
     ].
     ^ networkResources.
 !
@@ -18614,17 +18639,17 @@
      and nil is returned.
 
     self fetchSystemResourcesWithScope: #GLOBALNET type: #ANY usage: 0
-	onError: [:err| Transcript showCR: err ].
+        onError: [:err| Transcript showCR: err ].
 
     self fetchSystemResourcesWithScope: #REMEMBERED type: #DISK usage: 0
-	onError: [:err| Transcript showCR: err ].
+        onError: [:err| Transcript showCR: err ].
 
     self fetchSystemResourcesWithScope: #REMEMBERED type: #ANY usage: 0
-	onError: [:err| Transcript showCR: err ].
+        onError: [:err| Transcript showCR: err ].
     "
 
     ^ self fetchResourcesStartingAt: nil
-	    withScope: aScope type: aType usage: aUsage onError: aBlock
+            withScope: aScope type: aType usage: aUsage onError: aBlock
 !
 
 fetchVirtualDrives
@@ -18651,39 +18676,39 @@
 
     "/ map symbols to integer values.. on error an exception is raised
     aScope isInteger ifTrue:[ enumScope := aScope ]
-		    ifFalse:[ enumScope := self scopeMappingTable at:aScope ].
+                    ifFalse:[ enumScope := self scopeMappingTable at:aScope ].
 
     aUsage isInteger ifTrue:[ enumUsage := aUsage ]
-		    ifFalse:[ enumUsage := self usageMappingTable at:aUsage ].
+                    ifFalse:[ enumUsage := self usageMappingTable at:aUsage ].
 
     aType isInteger ifTrue:[ enumType := aType ]
-		   ifFalse:[ enumType := self typeMappingTable at:aType ].
+                   ifFalse:[ enumType := self typeMappingTable at:aType ].
 
     aResourceOrNil notNil ifTrue:[ | checkAndGetString |
-	resScope := aResourceOrNil scope.
-	resScope isInteger ifFalse:[ resScope := self scopeMappingTable at:resScope ].
-
-	resType := aResourceOrNil type.
-	resType isInteger ifFalse:[ resType := self typeMappingTable at: resType ].
-
-	resUsage := aResourceOrNil usage.
-	resUsage isInteger ifFalse:[ resUsage := self usageMappingTable at: resUsage ].
-
-	resDisplayType := aResourceOrNil displayType.
-	resDisplayType isInteger ifFalse:[ resDisplayType := self displayTypeMappingTable at:resDisplayType ].
-
-	checkAndGetString := [: aString| |string|
-	    aString notNil ifTrue:[
-		self isUsingUnicode
-		    ifTrue: [ string := aString asUnicode16String  ]
-		    ifFalse:[ string := aString asSingleByteString ].
-	    ].
-	    string
-	].
-	resRemoteName  := checkAndGetString value:( aResourceOrNil remoteName ).
-	resLocalName   := checkAndGetString value:( aResourceOrNil localName ).
-	resComment     := checkAndGetString value:( aResourceOrNil comment ).
-	resProvider    := checkAndGetString value:( aResourceOrNil provider ).
+        resScope := aResourceOrNil scope.
+        resScope isInteger ifFalse:[ resScope := self scopeMappingTable at:resScope ].
+
+        resType := aResourceOrNil type.
+        resType isInteger ifFalse:[ resType := self typeMappingTable at: resType ].
+
+        resUsage := aResourceOrNil usage.
+        resUsage isInteger ifFalse:[ resUsage := self usageMappingTable at: resUsage ].
+
+        resDisplayType := aResourceOrNil displayType.
+        resDisplayType isInteger ifFalse:[ resDisplayType := self displayTypeMappingTable at:resDisplayType ].
+
+        checkAndGetString := [: aString| |string|
+            aString notNil ifTrue:[
+                self isUsingUnicode
+                    ifTrue: [ string := aString asUnicode16String  ]
+                    ifFalse:[ string := aString asSingleByteString ].
+            ].
+            string
+        ].
+        resRemoteName  := checkAndGetString value:( aResourceOrNil remoteName ).
+        resLocalName   := checkAndGetString value:( aResourceOrNil localName ).
+        resComment     := checkAndGetString value:( aResourceOrNil comment ).
+        resProvider    := checkAndGetString value:( aResourceOrNil provider ).
     ].
     resourceHandle := self new.
 
@@ -18707,75 +18732,75 @@
 #endif
 
     if( resScope == nil ) {
-	__lpnetRes = 0;
+        __lpnetRes = 0;
     } else {
-	int __sz;
-
-	ZeroMemory( __buffer, (__cp - __buffer) );
-
-	__lpnetRes->dwScope       = __unsignedLongIntVal( resScope );
-	__lpnetRes->dwType        = __unsignedLongIntVal( resType  );
-	__lpnetRes->dwUsage       = __unsignedLongIntVal( resUsage );
-	__lpnetRes->dwDisplayType = __unsignedLongIntVal( resDisplayType );
-
-	if( resRemoteName != nil ) {
+        int __sz;
+
+        ZeroMemory( __buffer, (__cp - __buffer) );
+
+        __lpnetRes->dwScope       = __unsignedLongIntVal( resScope );
+        __lpnetRes->dwType        = __unsignedLongIntVal( resType  );
+        __lpnetRes->dwUsage       = __unsignedLongIntVal( resUsage );
+        __lpnetRes->dwDisplayType = __unsignedLongIntVal( resDisplayType );
+
+        if( resRemoteName != nil ) {
 #ifdef USE_ANSI_NETWORKRESOURCES
-	    __sp =  __stringVal(resRemoteName);
-	    __sz = strlen(__sp);
-#else
-	    __sp = __unicode16StringVal(resRemoteName);
-	    __sz = __unicode16StringSize(resRemoteName);
-#endif
-	    for( __lpnetRes->lpRemoteName = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
-	    *__cp++ = 0;
-	}
-
-	if( resLocalName != nil ) {
+            __sp =  __stringVal(resRemoteName);
+            __sz = strlen(__sp);
+#else
+            __sp = __unicode16StringVal(resRemoteName);
+            __sz = __unicode16StringSize(resRemoteName);
+#endif
+            for( __lpnetRes->lpRemoteName = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
+            *__cp++ = 0;
+        }
+
+        if( resLocalName != nil ) {
 #ifdef USE_ANSI_NETWORKRESOURCES
-	    __sp = __stringVal(resLocalName);
-	    __sz = strlen(__sp);
-#else
-	    __sp = __unicode16StringVal(resLocalName);
-	    __sz = __unicode16StringSize(resLocalName);
-#endif
-	    for( __lpnetRes->lpLocalName = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
-	    *__cp++ = 0;
-	}
-
-	if( resComment != nil ) {
+            __sp = __stringVal(resLocalName);
+            __sz = strlen(__sp);
+#else
+            __sp = __unicode16StringVal(resLocalName);
+            __sz = __unicode16StringSize(resLocalName);
+#endif
+            for( __lpnetRes->lpLocalName = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
+            *__cp++ = 0;
+        }
+
+        if( resComment != nil ) {
 #ifdef USE_ANSI_NETWORKRESOURCES
-	    __sp = __stringVal(resComment);
-	    __sz = strlen(__sp);
-#else
-	    __sp = __unicode16StringVal(resComment);
-	    __sz = __unicode16StringSize(resComment);
-#endif
-	    for( __lpnetRes->lpComment = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
-	    *__cp++ = 0;
-	}
-
-	if( resProvider != nil ) {
+            __sp = __stringVal(resComment);
+            __sz = strlen(__sp);
+#else
+            __sp = __unicode16StringVal(resComment);
+            __sz = __unicode16StringSize(resComment);
+#endif
+            for( __lpnetRes->lpComment = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
+            *__cp++ = 0;
+        }
+
+        if( resProvider != nil ) {
 #ifdef USE_ANSI_NETWORKRESOURCES
-	    __sp = __stringVal(resProvider);
-	    __sz = strlen(__sp);
-#else
-	    __sp = (wchar_t*)__unicode16StringVal(resProvider);
-	    __sz = __unicode16StringSize(resProvider);
-#endif
-	    for( __lpnetRes->lpProvider = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
-	    *__cp++ = 0;
-	}
+            __sp = __stringVal(resProvider);
+            __sz = strlen(__sp);
+#else
+            __sp = (wchar_t*)__unicode16StringVal(resProvider);
+            __sz = __unicode16StringSize(resProvider);
+#endif
+            for( __lpnetRes->lpProvider = __cp; __sz > 0; --__sz ) { * __cp++ = * __sp++; }
+            *__cp++ = 0;
+        }
     }
 
 #ifdef DO_WRAP_CALLS
     do {
-	__threadErrno = 0;
+        __threadErrno = 0;
 #ifdef USE_ANSI_NETWORKRESOURCES
-	// do not cast to INT - will loose sign bit then!
-	__errno = (int)(STX_API_NOINT_CALL5( "WNetOpenEnumA",  WNetOpenEnumA,  __scope, __type, __usage, __lpnetRes, & __hEnum ));
-#else
-	// do not cast to INT - will loose sign bit then!
-	__errno = (int)(STX_API_NOINT_CALL5( "WNetOpenEnumW", WNetOpenEnumW, __scope, __type, __usage, __lpnetRes, & __hEnum ));
+        // do not cast to INT - will loose sign bit then!
+        __errno = (int)(STX_API_NOINT_CALL5( "WNetOpenEnumA",  WNetOpenEnumA,  __scope, __type, __usage, __lpnetRes, & __hEnum ));
+#else
+        // do not cast to INT - will loose sign bit then!
+        __errno = (int)(STX_API_NOINT_CALL5( "WNetOpenEnumW", WNetOpenEnumW, __scope, __type, __usage, __lpnetRes, & __hEnum ));
 #endif
     } while ((__errno < 0) && (__threadErrno == EINTR));
 #else
@@ -18789,16 +18814,16 @@
 #endif
 
     if( __errno == NO_ERROR ) {
-	__externalAddressVal(resourceHandle) = (void *) __hEnum;
+        __externalAddressVal(resourceHandle) = (void *) __hEnum;
     } else {
-	resourceHandle = nil;
-	errorNumber    = __mkSmallInteger( __errno );
+        resourceHandle = nil;
+        errorNumber    = __mkSmallInteger( __errno );
     }
 
 %}.
     resourceHandle isNil ifTrue:[
-	aBlock notNil ifTrue:[ aBlock value: errorNumber ].
-	^ nil
+        aBlock notNil ifTrue:[ aBlock value: errorNumber ].
+        ^ nil
     ].
     resourceHandle registerForFinalization.
     ^ resourceHandle
@@ -18838,61 +18863,61 @@
     HANDLE __hEnum = (HANDLE)(__externalAddressVal(self));
 
     if ((__hEnum == 0) || (__hEnum == INVALID_HANDLE_VALUE)) {
-	__externalAddressVal(self) = (HANDLE)0;
+        __externalAddressVal(self) = (HANDLE)0;
     } else {
-	DWORD           __entries = 1;
-	DWORD           __bufSize = 8192;
-	int             __errno;
+        DWORD           __entries = 1;
+        DWORD           __bufSize = 8192;
+        int             __errno;
 
 #ifdef USE_ANSI_NETWORKRESOURCES
-	char            __buffer[ 8192 ];
-	LPNETRESOURCE   __lpNetRes  = (LPNETRESOURCE)  __buffer;
-
-	ZeroMemory( __buffer, sizeof(NETRESOURCE) );
-	__errno = WNetEnumResourceA ( __hEnum , & __entries , __lpNetRes, & __bufSize );
-#else
-	wchar_t         __buffer[ 8192 ];
-	LPNETRESOURCEW  __lpNetRes  = (LPNETRESOURCEW) __buffer;
-
-	ZeroMemory( __buffer, sizeof(NETRESOURCEW) );
-	__errno = WNetEnumResourceW ( __hEnum , & __entries , __lpNetRes, & __bufSize );
-#endif
-
-	if( (__errno  == NO_ERROR) && (__entries == 1) ) {
-	    scope       = __MKUINT( __lpNetRes->dwScope );
-	    type        = __MKUINT( __lpNetRes->dwType );
-	    usage       = __MKUINT( __lpNetRes->dwUsage );
-	    displayType = __MKUINT( __lpNetRes->dwDisplayType );
+        char            __buffer[ 8192 ];
+        LPNETRESOURCE   __lpNetRes  = (LPNETRESOURCE)  __buffer;
+
+        ZeroMemory( __buffer, sizeof(NETRESOURCE) );
+        __errno = WNetEnumResourceA ( __hEnum , & __entries , __lpNetRes, & __bufSize );
+#else
+        wchar_t         __buffer[ 8192 ];
+        LPNETRESOURCEW  __lpNetRes  = (LPNETRESOURCEW) __buffer;
+
+        ZeroMemory( __buffer, sizeof(NETRESOURCEW) );
+        __errno = WNetEnumResourceW ( __hEnum , & __entries , __lpNetRes, & __bufSize );
+#endif
+
+        if( (__errno  == NO_ERROR) && (__entries == 1) ) {
+            scope       = __MKUINT( __lpNetRes->dwScope );
+            type        = __MKUINT( __lpNetRes->dwType );
+            usage       = __MKUINT( __lpNetRes->dwUsage );
+            displayType = __MKUINT( __lpNetRes->dwDisplayType );
 
 #ifdef USE_ANSI_NETWORKRESOURCES
-	    if( __lpNetRes->lpRemoteName != 0 ) { remoteName =  __MKSTRING( __lpNetRes->lpRemoteName ); }
-	    if( __lpNetRes->lpLocalName  != 0 ) { localName  =  __MKSTRING( __lpNetRes->lpLocalName ); }
-	    if( __lpNetRes->lpComment    != 0 ) { comment    =  __MKSTRING( __lpNetRes->lpComment ); }
-	    if( __lpNetRes->lpProvider   != 0 ) { provider   =  __MKSTRING( __lpNetRes->lpProvider ); }
-#else
-	    if( __lpNetRes->lpRemoteName != 0 ) { remoteName =  __MKU16STRING( __lpNetRes->lpRemoteName ); }
-	    if( __lpNetRes->lpLocalName  != 0 ) { localName  =  __MKU16STRING( __lpNetRes->lpLocalName ); }
-	    if( __lpNetRes->lpComment    != 0 ) { comment    =  __MKU16STRING( __lpNetRes->lpComment ); }
-	    if( __lpNetRes->lpProvider   != 0 ) { provider   =  __MKU16STRING( __lpNetRes->lpProvider ); }
-#endif
-	}
+            if( __lpNetRes->lpRemoteName != 0 ) { remoteName =  __MKSTRING( __lpNetRes->lpRemoteName ); }
+            if( __lpNetRes->lpLocalName  != 0 ) { localName  =  __MKSTRING( __lpNetRes->lpLocalName ); }
+            if( __lpNetRes->lpComment    != 0 ) { comment    =  __MKSTRING( __lpNetRes->lpComment ); }
+            if( __lpNetRes->lpProvider   != 0 ) { provider   =  __MKSTRING( __lpNetRes->lpProvider ); }
+#else
+            if( __lpNetRes->lpRemoteName != 0 ) { remoteName =  __MKU16STRING( __lpNetRes->lpRemoteName ); }
+            if( __lpNetRes->lpLocalName  != 0 ) { localName  =  __MKU16STRING( __lpNetRes->lpLocalName ); }
+            if( __lpNetRes->lpComment    != 0 ) { comment    =  __MKU16STRING( __lpNetRes->lpComment ); }
+            if( __lpNetRes->lpProvider   != 0 ) { provider   =  __MKU16STRING( __lpNetRes->lpProvider ); }
+#endif
+        }
     }
 %}.
     scope notNil ifTrue:[ |netResource|
-	netResource := NetworkResource new.
-
-	"map integer values to symbol excluding the usage..."
-	netResource scope: (self class scopeMappingTable at:scope ifAbsent:[scope]).
-	netResource type:  (self class typeMappingTable  at:type ifAbsent:[type]).
-	netResource displayType: (self class displayTypeMappingTable at:displayType ifAbsent:[displayType]).
-	netResource usage: usage.
-
-	netResource remoteName: remoteName.
-	netResource localName: localName.
-	netResource comment: comment.
-	netResource provider: provider.
-
-	^ netResource
+        netResource := NetworkResource new.
+
+        "map integer values to symbol excluding the usage..."
+        netResource scope: (self class scopeMappingTable at:scope ifAbsent:[scope]).
+        netResource type:  (self class typeMappingTable  at:type ifAbsent:[type]).
+        netResource displayType: (self class displayTypeMappingTable at:displayType ifAbsent:[displayType]).
+        netResource usage: usage.
+
+        netResource remoteName: remoteName.
+        netResource localName: localName.
+        netResource comment: comment.
+        netResource provider: provider.
+
+        ^ netResource
     ].
     self close.
     ^ nil
@@ -18908,8 +18933,8 @@
     HANDLE __hEnum = (HANDLE)(__externalAddressVal(self));
 
     if (__hEnum) {
-	__externalAddressVal(self) = (HANDLE)0;
-	WNetCloseEnum(__hEnum);
+        __externalAddressVal(self) = (HANDLE)0;
+        WNetCloseEnum(__hEnum);
     }
 %}.
 ! !
@@ -18986,28 +19011,28 @@
 
 scope
     "The scope of the enumeration
-	RESOURCE_CONNECTED RESOURCE_GLOBALNET RESOURCE_REMEMBERED
+        RESOURCE_CONNECTED RESOURCE_GLOBALNET RESOURCE_REMEMBERED
     "
     ^ scope
 !
 
 scope: theScope
     "The scope of the enumeration
-	RESOURCE_CONNECTED RESOURCE_GLOBALNET RESOURCE_REMEMBERED
+        RESOURCE_CONNECTED RESOURCE_GLOBALNET RESOURCE_REMEMBERED
     "
     scope := theScope.
 !
 
 type
     "describes the type of the resource
-	RESOURCETYPE_ANY  RESOURCETYPE_DISK  RESOURCETYPE_PRINT
+        RESOURCETYPE_ANY  RESOURCETYPE_DISK  RESOURCETYPE_PRINT
     "
     ^ type
 !
 
 type: theType
     "describes the type of the resource
-	RESOURCETYPE_ANY  RESOURCETYPE_DISK  RESOURCETYPE_PRINT
+        RESOURCETYPE_ANY  RESOURCETYPE_DISK  RESOURCETYPE_PRINT
     "
     type := theType.
 !
@@ -19032,20 +19057,20 @@
     | paction |
 
     paction := [: anIdentifier :theValue |
-	anIdentifier printOn: aStream.
-
-	theValue notNil ifTrue:[
-	    theValue isInteger ifTrue:[
-		theValue printOn:aStream base:2 showRadix:true.
-	    ] ifFalse:[
-		theValue isSymbol ifTrue:[
-		    theValue printOn: aStream.
-		] ifFalse:[
-		    aStream nextPut: $". theValue printOn: aStream. aStream nextPut: $"
-		]
-	    ]
-	].
-	aStream cr.
+        anIdentifier printOn: aStream.
+
+        theValue notNil ifTrue:[
+            theValue isInteger ifTrue:[
+                theValue printOn:aStream base:2 showRadix:true.
+            ] ifFalse:[
+                theValue isSymbol ifTrue:[
+                    theValue printOn: aStream.
+                ] ifFalse:[
+                    aStream nextPut: $". theValue printOn: aStream. aStream nextPut: $"
+                ]
+            ]
+        ].
+        aStream cr.
     ].
 
     aStream nextPutAll: 'NetworkResource {'; cr.
@@ -19078,7 +19103,7 @@
     DWORD __usage = __unsignedLongIntVal( flag );
 
     if( __usage & RESOURCEUSAGE_CONTAINER ) {
-	RETURN( true );
+        RETURN( true );
     }
 %}.
     ^ false
@@ -19088,7 +19113,7 @@
 
 closeHandle
     self address ~~ 0 ifTrue:[
-	OperatingSystem primClosePrinter:self.
+        OperatingSystem primClosePrinter:self.
     ]
 
     "Created: / 27-07-2006 / 14:48:37 / fm"
@@ -19104,12 +19129,12 @@
 
 = aWin32ProcessHandle
     ^ aWin32ProcessHandle class == self class
-	and:[pid = aWin32ProcessHandle pid and:[pid notNil or:[self address = aWin32ProcessHandle address]]]
+        and:[pid = aWin32ProcessHandle pid and:[pid notNil or:[self address = aWin32ProcessHandle address]]]
 !
 
 hash
     pid isNil ifTrue:[
-	^ super hash.
+        ^ super hash.
     ].
     ^ pid hash
 ! !
@@ -19122,8 +19147,8 @@
      See also: https://expeccoalm.exept.de/D216833"
 
     pid isNil ifTrue:[
-	super printOn:aStream.
-	aStream nextPutAll:' pid:'.
+        super printOn:aStream.
+        aStream nextPutAll:' pid:'.
     ].
 
     pid printOn:aStream.
@@ -19144,9 +19169,9 @@
 !Win32OperatingSystem::Win32SerialPortHandle methodsFor:'opening'!
 
 open:portName baudRate:baudRate stopBitsType:stopBitsType
-		    parityType:parityType dataBits:dataBits
-		    inFlowCtrl:inFlowCtrlType outFlowCtrl:outFlowCtrlType
-		    xOnChar:xOnChar xOffChar:xOffChar
+                    parityType:parityType dataBits:dataBits
+                    inFlowCtrl:inFlowCtrlType outFlowCtrl:outFlowCtrlType
+                    xOnChar:xOnChar xOffChar:xOffChar
     "portName: COM%d
      baudRate: Integer
      stopBitsType: #stop1, #stop2 or #stop1_5
@@ -19165,13 +19190,13 @@
     DCB dcb;
     char *__portName;
     int __setBaudRate = 1,
-	__setDataBits = 1,
-	__setXOnChar = 1,
-	__setXOffChar = 1,
-	__setInFlowCtrl = 1,
-	__setOutFlowCtrl = 1,
-	__setStopBits = 1,
-	__setParityType = 1;
+        __setDataBits = 1,
+        __setXOnChar = 1,
+        __setXOffChar = 1,
+        __setInFlowCtrl = 1,
+        __setOutFlowCtrl = 1,
+        __setStopBits = 1,
+        __setParityType = 1;
     int __baudRate, __dataBits;
     int __xOnChar, __xOffChar;
     int __inFlowCtrl, __outFlowCtrl;
@@ -19186,90 +19211,90 @@
 #   define NONE      3
 
     if (__isStringLike(portName)) {
-	__portName = __stringVal(portName);
+        __portName = __stringVal(portName);
     } else {
-	goto failure;
+        goto failure;
     }
     if (__isSmallInteger(baudRate)) {
-	__baudRate = __intVal(baudRate);
+        __baudRate = __intVal(baudRate);
     } else if (baudRate == nil) {
-	__setBaudRate = 0;
+        __setBaudRate = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     if (__isSmallInteger(dataBits)) {
-	__dataBits = __intVal(dataBits);
+        __dataBits = __intVal(dataBits);
     } else if (dataBits == nil) {
-	__setDataBits = 0;
+        __setDataBits = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     if (__isSmallInteger(xOnChar)) {
-	__xOnChar = __intVal(xOnChar);
+        __xOnChar = __intVal(xOnChar);
     } else if (__isCharacter(xOnChar)) {
-	__xOnChar = __intVal(_characterVal(xOnChar));
+        __xOnChar = __intVal(_characterVal(xOnChar));
     } else if (xOnChar == nil) {
-	__setXOnChar = 0;
+        __setXOnChar = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     if (__isSmallInteger(xOffChar)) {
-	__xOffChar = __intVal(xOffChar);
+        __xOffChar = __intVal(xOffChar);
     } else if (__isCharacter(xOffChar)) {
-	__xOffChar = __intVal(_characterVal(xOffChar));
+        __xOffChar = __intVal(_characterVal(xOffChar));
     } else if (xOffChar == nil) {
-	__setXOffChar = 0;
+        __setXOffChar = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     if (inFlowCtrlType == @symbol(xOnOff)) {
-	__inFlowCtrl = XONOFF;
+        __inFlowCtrl = XONOFF;
     } else if (inFlowCtrlType == @symbol(hardware)) {
-	__inFlowCtrl = HARDWARE;
+        __inFlowCtrl = HARDWARE;
     } else if (inFlowCtrlType == nil) {
-	__setInFlowCtrl = 0;
+        __setInFlowCtrl = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     if (outFlowCtrlType == @symbol(xOnOff)) {
-	__outFlowCtrl = XONOFF;
+        __outFlowCtrl = XONOFF;
     } else if (outFlowCtrlType == @symbol(hardware)) {
-	__outFlowCtrl = HARDWARE;
+        __outFlowCtrl = HARDWARE;
     } else if (outFlowCtrlType == nil) {
-	__setOutFlowCtrl = 0;
+        __setOutFlowCtrl = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     if (stopBitsType == @symbol(stop1)) {
-	__stopBits = STOP1;
+        __stopBits = STOP1;
     } else if (stopBitsType == @symbol(stop2)) {
-	__stopBits = STOP2;
+        __stopBits = STOP2;
     } else if (stopBitsType == @symbol(stop1_5)) {
-	__stopBits = STOP1_5;
+        __stopBits = STOP1_5;
     } else if (stopBitsType == nil) {
-	__setStopBits = 0;
+        __setStopBits = 0;
     } else {
-	goto failure;
+        goto failure;
     }
 
     port = CreateFile(__portName,
-	      GENERIC_READ | GENERIC_WRITE,
-	      0,             /* comm devices must be opened with exclusive access */
-	      NULL,          /* no security attrs */
-	      OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
-	      0,             /* no overlapped I/O */
-	      NULL           /* hTemplate must be NULL for comm devices */
-	   );
+              GENERIC_READ | GENERIC_WRITE,
+              0,             /* comm devices must be opened with exclusive access */
+              NULL,          /* no security attrs */
+              OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
+              0,             /* no overlapped I/O */
+              NULL           /* hTemplate must be NULL for comm devices */
+           );
     if (port == INVALID_HANDLE_VALUE) {
-	console_fprintf(stderr, "Win32OS [info]: serial port open failed\n");
-	errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
-	goto failure;
+        console_fprintf(stderr, "Win32OS [info]: serial port open failed\n");
+        errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+        goto failure;
     }
     /* Flush the driver */
     PurgeComm( port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );
@@ -19296,42 +19321,42 @@
     if (__setXOffChar) dcb.XoffChar = __xOffChar;
 
     if (__setStopBits) {
-	/* set stop bits */
-	switch(__stopBits) {
-	    case STOP1_5: dcb.StopBits = 1; break; /* 1.5 stop bits */
-	    case STOP1: dcb.StopBits = 0; break; /* 1 stop bit */
-	    case STOP2: dcb.StopBits = 2; break; /* 2 stop bits */
-	    default: goto errExit;
-	}
+        /* set stop bits */
+        switch(__stopBits) {
+            case STOP1_5: dcb.StopBits = 1; break; /* 1.5 stop bits */
+            case STOP1: dcb.StopBits = 0; break; /* 1 stop bit */
+            case STOP2: dcb.StopBits = 2; break; /* 2 stop bits */
+            default: goto errExit;
+        }
     }
 
     if (__setParityType) {
-	/* set parity */
-	switch(__parityType) {
-	    case NONE: dcb.Parity = NOPARITY; break;
-	    case ODD: dcb.Parity = ODDPARITY; break;
-	    case EVEN: dcb.Parity = EVENPARITY; break;
-	    default: goto errExit;
-	}
+        /* set parity */
+        switch(__parityType) {
+            case NONE: dcb.Parity = NOPARITY; break;
+            case ODD: dcb.Parity = ODDPARITY; break;
+            case EVEN: dcb.Parity = EVENPARITY; break;
+            default: goto errExit;
+        }
     }
 
     if (__setInFlowCtrl) {
-	/* set control flow */
-	dcb.fInX = FALSE;
-	dcb.fDtrControl = FALSE;
-	if (__inFlowCtrl == XONOFF) dcb.fInX = TRUE;  /* XOn/XOff handshaking */
-	if (__inFlowCtrl == HARDWARE) dcb.fDtrControl = TRUE;  /* hardware handshaking */
+        /* set control flow */
+        dcb.fInX = FALSE;
+        dcb.fDtrControl = FALSE;
+        if (__inFlowCtrl == XONOFF) dcb.fInX = TRUE;  /* XOn/XOff handshaking */
+        if (__inFlowCtrl == HARDWARE) dcb.fDtrControl = TRUE;  /* hardware handshaking */
     }
     if (__setOutFlowCtrl) {
-	dcb.fOutX = FALSE;
-	dcb.fOutxCtsFlow = FALSE;
-
-	if (__outFlowCtrl == XONOFF) dcb.fOutX = TRUE;  /* XOn/XOff handshaking */
-	if (__outFlowCtrl == HARDWARE) dcb.fOutxCtsFlow = TRUE;  /* hardware handshaking */
+        dcb.fOutX = FALSE;
+        dcb.fOutxCtsFlow = FALSE;
+
+        if (__outFlowCtrl == XONOFF) dcb.fOutX = TRUE;  /* XOn/XOff handshaking */
+        if (__outFlowCtrl == HARDWARE) dcb.fOutxCtsFlow = TRUE;  /* hardware handshaking */
     }
 
     if (SetCommState(port, &dcb)) {
-	RETURN( true );
+        RETURN( true );
     }
 
     console_fprintf(stderr, "Win32OS [info]: serial port comm-setup failed\n");
@@ -19351,9 +19376,9 @@
 #   undef NONE
 %}.
     errorNumber isNil ifTrue:[
-	self error:'invalid argument(s)'.
+        self error:'invalid argument(s)'.
     ] ifFalse:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError
     ].
 ! !
 
@@ -19366,9 +19391,9 @@
     HANDLE port = (HANDLE)(__externalAddressVal(self));
 
     if (port) {
-	__externalAddressVal(self) = (HANDLE)0;
-	PurgeComm( port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );
-	CloseHandle(port);
+        __externalAddressVal(self) = (HANDLE)0;
+        PurgeComm( port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );
+        CloseHandle(port);
     }
 %}.
 ! !
@@ -19381,18 +19406,18 @@
 
     if (port
      && __isSmallInteger(newRate)) {
-	DCB dcb;
-
-	ZeroMemory(&dcb, sizeof(dcb));
-	dcb.DCBlength = sizeof(dcb);
-	GetCommState(port, &dcb);
-
-	dcb.BaudRate = __intVal(newRate);
-
-	if (! SetCommState(port, &dcb)) {
-	    RETURN(false);
-	}
-	RETURN(true);
+        DCB dcb;
+
+        ZeroMemory(&dcb, sizeof(dcb));
+        dcb.DCBlength = sizeof(dcb);
+        GetCommState(port, &dcb);
+
+        dcb.BaudRate = __intVal(newRate);
+
+        if (! SetCommState(port, &dcb)) {
+            RETURN(false);
+        }
+        RETURN(true);
     }
 %}.
     self primitiveFailed.
@@ -19404,18 +19429,18 @@
 
     if (port
      && __isSmallInteger(newNumberOfBits)) {
-	DCB dcb;
-
-	ZeroMemory(&dcb, sizeof(dcb));
-	dcb.DCBlength = sizeof(dcb);
-	GetCommState(port, &dcb);
-
-	dcb.ByteSize = __intVal(newNumberOfBits);
-
-	if (! SetCommState(port, &dcb)) {
-	    RETURN(false);
-	}
-	RETURN(true);
+        DCB dcb;
+
+        ZeroMemory(&dcb, sizeof(dcb));
+        dcb.DCBlength = sizeof(dcb);
+        GetCommState(port, &dcb);
+
+        dcb.ByteSize = __intVal(newNumberOfBits);
+
+        if (! SetCommState(port, &dcb)) {
+            RETURN(false);
+        }
+        RETURN(true);
     }
 %}.
     self primitiveFailed.
@@ -19428,27 +19453,27 @@
     HANDLE port = (HANDLE)(__externalAddressVal(self));
 
     if (port) {
-	DCB dcb;
-
-	ZeroMemory(&dcb, sizeof(dcb));
-	dcb.DCBlength = sizeof(dcb);
-	GetCommState(port, &dcb);
-
-
-	if ((newParityTypeSymbol == nil) || (newParityTypeSymbol == @symbol(none))) {
-	    dcb.Parity = NOPARITY;
-	} else if (newParityTypeSymbol == @symbol(odd)) {
-	    dcb.Parity = ODDPARITY;
-	} else if (newParityTypeSymbol == @symbol(even)) {
-	    dcb.Parity = EVENPARITY;
-	} else {
-	    goto failure;
-	}
-
-	if (! SetCommState(port, &dcb)) {
-	    RETURN(false);
-	}
-	RETURN(true);
+        DCB dcb;
+
+        ZeroMemory(&dcb, sizeof(dcb));
+        dcb.DCBlength = sizeof(dcb);
+        GetCommState(port, &dcb);
+
+
+        if ((newParityTypeSymbol == nil) || (newParityTypeSymbol == @symbol(none))) {
+            dcb.Parity = NOPARITY;
+        } else if (newParityTypeSymbol == @symbol(odd)) {
+            dcb.Parity = ODDPARITY;
+        } else if (newParityTypeSymbol == @symbol(even)) {
+            dcb.Parity = EVENPARITY;
+        } else {
+            goto failure;
+        }
+
+        if (! SetCommState(port, &dcb)) {
+            RETURN(false);
+        }
+        RETURN(true);
     }
   failure: ;
 %}.
@@ -19461,26 +19486,26 @@
     HANDLE port = (HANDLE)(__externalAddressVal(self));
 
     if (port) {
-	DCB dcb;
-
-	ZeroMemory(&dcb, sizeof(dcb));
-	dcb.DCBlength = sizeof(dcb);
-	GetCommState(port, &dcb);
-
-	if (newStopBitsSymbol == @symbol(stop1)) {
-	    dcb.Parity = 0 /* STOP1 */;
-	} else if (newStopBitsSymbol == @symbol(stop2)) {
-	    dcb.Parity = 2 /* STOP2 */;
-	} else if (newStopBitsSymbol == @symbol(stop1_5)) {
-	    dcb.Parity = 1 /* STOP1_5 */;
-	} else {
-	    goto failure;
-	}
-
-	if (! SetCommState(port, &dcb)) {
-	    RETURN(false);
-	}
-	RETURN(true);
+        DCB dcb;
+
+        ZeroMemory(&dcb, sizeof(dcb));
+        dcb.DCBlength = sizeof(dcb);
+        GetCommState(port, &dcb);
+
+        if (newStopBitsSymbol == @symbol(stop1)) {
+            dcb.Parity = 0 /* STOP1 */;
+        } else if (newStopBitsSymbol == @symbol(stop2)) {
+            dcb.Parity = 2 /* STOP2 */;
+        } else if (newStopBitsSymbol == @symbol(stop1_5)) {
+            dcb.Parity = 1 /* STOP1_5 */;
+        } else {
+            goto failure;
+        }
+
+        if (! SetCommState(port, &dcb)) {
+            RETURN(false);
+        }
+        RETURN(true);
     }
   failure: ;
 %}.
@@ -19547,10 +19572,10 @@
     type := OperatingSystem socketTypeCodeOf:typeArg.
     proto := self protocolCodeOf:protoArg.
     serviceNameOrNil notNil ifTrue:[
-	serviceName := serviceNameOrNil printString.      "convert integer port numbers"
-	serviceNameOrNil isInteger ifTrue:[
-	    port := serviceNameOrNil.
-	].
+        serviceName := serviceNameOrNil printString.      "convert integer port numbers"
+        serviceNameOrNil isInteger ifTrue:[
+            port := serviceNameOrNil.
+        ].
     ]. "ifFalse:[serviceName := nil]"
 
 
@@ -19562,10 +19587,10 @@
      until we implement getAddrInfoW() for Borland C.
      If we really have 16-bit hostnames, this fails with #primitiveFailed"
     hostNameOrNil notNil ifTrue:[
-	hostName := hostNameOrNil asSingleByteStringIfPossible.
+        hostName := hostNameOrNil asSingleByteStringIfPossible.
     ].  "ifFalse:[hostName := nil] is nil anyway"
     serviceName notNil ifTrue:[
-	serviceName := serviceName asSingleByteStringIfPossible.
+        serviceName := serviceName asSingleByteStringIfPossible.
     ].
 %{
 #endif // !AI_NUMERICHOST
@@ -19580,30 +19605,30 @@
     int cnt = 0;
 
     if (hostName == nil) {
-	__hostName = 0;
+        __hostName = 0;
     } else if (__isStringLike(hostName)) {
-	strncpy(__hostNameCopy, __stringVal(hostName), sizeof(__hostNameCopy)-1);
-	__hostName = __hostNameCopy;
+        strncpy(__hostNameCopy, __stringVal(hostName), sizeof(__hostNameCopy)-1);
+        __hostName = __hostNameCopy;
     } else if (__isUnicode16String(hostName)) {
-	error = @symbol(unsupportedUnicodeName);
-	errorString = __MKSTRING("Unicode hostnames are not yet supported");
-	goto exitPrim;
+        error = @symbol(unsupportedUnicodeName);
+        errorString = __MKSTRING("Unicode hostnames are not yet supported");
+        goto exitPrim;
     } else {
-	error = @symbol(badArgument1);
-	goto exitPrim;
+        error = @symbol(badArgument1);
+        goto exitPrim;
     }
     if (serviceName == nil) {
-	__serviceName = 0;
+        __serviceName = 0;
     } else if (__isStringLike(serviceName)) {
-	strncpy(__serviceNameCopy, __stringVal(serviceName), sizeof(__serviceNameCopy)-1);
-	__serviceName = __serviceNameCopy;
+        strncpy(__serviceNameCopy, __stringVal(serviceName), sizeof(__serviceNameCopy)-1);
+        __serviceName = __serviceNameCopy;
     } else {
-	error = @symbol(badArgument2);
-	goto exitPrim;
+        error = @symbol(badArgument2);
+        goto exitPrim;
     }
     if (__hostName == 0 && __serviceName == 0) {
-	error = @symbol(badArgument);
-	goto exitPrim;
+        error = @symbol(badArgument);
+        goto exitPrim;
     }
 
 {
@@ -19616,101 +19641,101 @@
 
     memset(&hints, 0, sizeof(hints));
     if (__isSmallInteger(domain))
-	hints.ai_family = __intVal(domain);
+        hints.ai_family = __intVal(domain);
     if (__isSmallInteger(type))
-	hints.ai_socktype = __intVal(type);
+        hints.ai_socktype = __intVal(type);
     if (__isSmallInteger(proto))
-	hints.ai_protocol = __intVal(proto);
+        hints.ai_protocol = __intVal(proto);
 
     do {
 # ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_WSA_NOINT_CALL4( "getaddrinfo", getaddrinfo, __hostName, __serviceName, &hints, &info));
-	} while ((ret < 0) && (__threadErrno == EINTR));
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_WSA_NOINT_CALL4( "getaddrinfo", getaddrinfo, __hostName, __serviceName, &hints, &info));
+        } while ((ret < 0) && (__threadErrno == EINTR));
 # else
-	__BEGIN_INTERRUPTABLE__
-	ret = getaddrinfo(__hostName, __serviceName, &hints, &info);
-	__END_INTERRUPTABLE__
+        __BEGIN_INTERRUPTABLE__
+        ret = getaddrinfo(__hostName, __serviceName, &hints, &info);
+        __END_INTERRUPTABLE__
 # endif
     } while (ret != 0 && __threadErrno == EINTR);
     if (ret != 0) {
-	switch (ret) {
-	case EAI_FAMILY:
-	    error = @symbol(badProtocol);
-	    break;
-	case EAI_SOCKTYPE:
-	    error = @symbol(badSocketType);
-	    break;
-	case EAI_BADFLAGS:
-	    error = @symbol(badFlags);
-	    break;
-	case EAI_NONAME:
-	    error = @symbol(unknownHost);
-	    break;
-	case EAI_SERVICE:
-	    error = @symbol(unknownService);
-	    break;
-	case EAI_MEMORY:
-	    error = @symbol(allocationFailure);
-	    break;
-	case EAI_FAIL:
-	    error = @symbol(permanentFailure);
-	    break;
-	case EAI_AGAIN:
-	    error = @symbol(tryAgain);
-	    break;
-	default:
-	    error = @symbol(unknownError);
-	}
-	errorString = __MKSTRING(gai_strerror(ret));
-	goto err;
+        switch (ret) {
+        case EAI_FAMILY:
+            error = @symbol(badProtocol);
+            break;
+        case EAI_SOCKTYPE:
+            error = @symbol(badSocketType);
+            break;
+        case EAI_BADFLAGS:
+            error = @symbol(badFlags);
+            break;
+        case EAI_NONAME:
+            error = @symbol(unknownHost);
+            break;
+        case EAI_SERVICE:
+            error = @symbol(unknownService);
+            break;
+        case EAI_MEMORY:
+            error = @symbol(allocationFailure);
+            break;
+        case EAI_FAIL:
+            error = @symbol(permanentFailure);
+            break;
+        case EAI_AGAIN:
+            error = @symbol(tryAgain);
+            break;
+        default:
+            error = @symbol(unknownError);
+        }
+        errorString = __MKSTRING(gai_strerror(ret));
+        goto err;
     }
     for (cnt=0, infop=info; infop; infop=infop->ai_next)
-	cnt++;
+        cnt++;
 
     result = __ARRAY_NEW_INT(cnt);
     if (result == nil) {
-	error = @symbol(allocationFailure);
-	goto err;
+        error = @symbol(allocationFailure);
+        goto err;
     }
     for (infop=info, cnt=0; infop; infop=infop->ai_next, cnt++) {
-	OBJ o, resp;
-
-	resp = __ARRAY_NEW_INT(6);
-	if (resp == nil) {
-	    error = @symbol(allocationFailure);
-	    goto err;
-	}
-
-	__ArrayInstPtr(result)->a_element[cnt] = resp; __STORE(result, resp);
-
-	__ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(infop->ai_flags);
-	__ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(infop->ai_family);
-	__ArrayInstPtr(resp)->a_element[2] = __mkSmallInteger(infop->ai_socktype);
-	__ArrayInstPtr(resp)->a_element[3] = __mkSmallInteger(infop->ai_protocol);
-
-	__PROTECT__(resp);
-	o = __BYTEARRAY_NEW_INT(infop->ai_addrlen);
-	__UNPROTECT__(resp);
-	if (o == nil) {
-	    error = @symbol(allocationFailure);
-	    goto err;
-	}
-	memcpy(__byteArrayVal(o), infop->ai_addr, infop->ai_addrlen);
+        OBJ o, resp;
+
+        resp = __ARRAY_NEW_INT(6);
+        if (resp == nil) {
+            error = @symbol(allocationFailure);
+            goto err;
+        }
+
+        __ArrayInstPtr(result)->a_element[cnt] = resp; __STORE(result, resp);
+
+        __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(infop->ai_flags);
+        __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(infop->ai_family);
+        __ArrayInstPtr(resp)->a_element[2] = __mkSmallInteger(infop->ai_socktype);
+        __ArrayInstPtr(resp)->a_element[3] = __mkSmallInteger(infop->ai_protocol);
+
+        __PROTECT__(resp);
+        o = __BYTEARRAY_NEW_INT(infop->ai_addrlen);
+        __UNPROTECT__(resp);
+        if (o == nil) {
+            error = @symbol(allocationFailure);
+            goto err;
+        }
+        memcpy(__byteArrayVal(o), infop->ai_addr, infop->ai_addrlen);
        __ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
 
-	if (infop->ai_canonname) {
-	    __PROTECT__(resp);
-	    o = __MKSTRING(infop->ai_canonname);
-	    __UNPROTECT__(resp);
-	    if (o == nil) {
-		error = @symbol(allocationFailure);
-		goto err;
-	    }
-	    __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
-	}
+        if (infop->ai_canonname) {
+            __PROTECT__(resp);
+            o = __MKSTRING(infop->ai_canonname);
+            __UNPROTECT__(resp);
+            if (o == nil) {
+                error = @symbol(allocationFailure);
+                goto err;
+            }
+            __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
+        }
     }
 
 err:
@@ -19727,133 +19752,133 @@
     int i;
 
     if (__isSmallInteger(port)) {
-	__port = htons(__smallIntegerVal(port));
+        __port = htons(__smallIntegerVal(port));
     } else if (__serviceName) {
-	struct servent *sp;
-	char *__proto = 0;
-
-	if (__isStringLike(protoArg))
-	    __proto = __stringVal(protoArg);
-
-	sp = getservbyname(__serviceName, __proto);
-	if (sp == NULL) {
-	    __port = atoi(__serviceName);
-	    if (__port <= 0) {
-		errorString = @symbol(unknownService);
-		error = __mkSmallInteger(-3);
-		goto err;
-	    }
-	    __port = htons(__port);
-	} else
-	    __port = sp->s_port;
+        struct servent *sp;
+        char *__proto = 0;
+
+        if (__isStringLike(protoArg))
+            __proto = __stringVal(protoArg);
+
+        sp = getservbyname(__serviceName, __proto);
+        if (sp == NULL) {
+            __port = atoi(__serviceName);
+            if (__port <= 0) {
+                errorString = @symbol(unknownService);
+                error = __mkSmallInteger(-3);
+                goto err;
+            }
+            __port = htons(__port);
+        } else
+            __port = sp->s_port;
     }
 
     if (__hostName) {
-	int err;
-
-	do {
+        int err;
+
+        do {
 # if 0 && defined(DO_WRAP_CALLS)
-	    /* This does not work - the structure is allocated in thread local storage */
-	    hp = STX_WSA_NOINT_CALL1("gethostbyname", gethostbyname, __hostName);
-	    if ((INT)hp < 0) hp = NULL;
+            /* This does not work - the structure is allocated in thread local storage */
+            hp = STX_WSA_NOINT_CALL1("gethostbyname", gethostbyname, __hostName);
+            if ((INT)hp < 0) hp = NULL;
 # else
-	    /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
-	     * uses a static data area, but allocates it in thread local storage
-	     */
-	    // __BEGIN_INTERRUPTABLE__
-	    hp = gethostbyname(__hostName);
-	    // __END_INTERRUPTABLE__
-#endif
-	} while ((hp == NULL
-		  && (err = WSAGetLastError()) == EINTR));
-	if (hp == 0) {
-	    switch (err) {
-	    case HOST_NOT_FOUND:
-		errorString = @symbol(unknownHost);
-		break;
-	    case NO_ADDRESS:
-		errorString = @symbol(noAddress);
-		break;
-	    case NO_RECOVERY:
-		errorString = @symbol(permanentFailure);
-		break;
-	    case TRY_AGAIN:
-		errorString = @symbol(tryAgain);
-		break;
-	    default:
-		errorString = @symbol(unknownError);
-		break;
-	    }
-	    error = __mkSmallInteger(err);
-	    goto err;
-	}
-
-	if (__isSmallInteger(domain) && hp->h_addrtype != __smallIntegerVal(domain)) {
-	    errorString = @symbol(unknownHost);
-	    error = __mkSmallInteger(-2);
-	    goto err;
-	}
-
-	for (cnt = 0, addrpp = hp->h_addr_list; *addrpp; addrpp++)
-	    cnt++;
-	addrpp = hp->h_addr_list;
+            /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
+             * uses a static data area, but allocates it in thread local storage
+             */
+            // __BEGIN_INTERRUPTABLE__
+            hp = gethostbyname(__hostName);
+            // __END_INTERRUPTABLE__
+#endif
+        } while ((hp == NULL
+                  && (err = WSAGetLastError()) == EINTR));
+        if (hp == 0) {
+            switch (err) {
+            case HOST_NOT_FOUND:
+                errorString = @symbol(unknownHost);
+                break;
+            case NO_ADDRESS:
+                errorString = @symbol(noAddress);
+                break;
+            case NO_RECOVERY:
+                errorString = @symbol(permanentFailure);
+                break;
+            case TRY_AGAIN:
+                errorString = @symbol(tryAgain);
+                break;
+            default:
+                errorString = @symbol(unknownError);
+                break;
+            }
+            error = __mkSmallInteger(err);
+            goto err;
+        }
+
+        if (__isSmallInteger(domain) && hp->h_addrtype != __smallIntegerVal(domain)) {
+            errorString = @symbol(unknownHost);
+            error = __mkSmallInteger(-2);
+            goto err;
+        }
+
+        for (cnt = 0, addrpp = hp->h_addr_list; *addrpp; addrpp++)
+            cnt++;
+        addrpp = hp->h_addr_list;
     } else {
-	cnt = 1;
+        cnt = 1;
     }
 
     result = __ARRAY_NEW_INT(cnt);
     if (result == nil) {
-	error = @symbol(allocationFailure);
-	goto err;
+        error = @symbol(allocationFailure);
+        goto err;
     }
 
     for (i = 0; i < cnt; i++) {
-	OBJ o, resp;
-	struct sockaddr_in *sa;
-
-	resp = __ARRAY_NEW_INT(6);
-	if (resp == nil) {
-	    error = @symbol(allocationFailure);
-	    goto err;
-	}
-
-	__ArrayInstPtr(result)->a_element[i] = resp; __STORE(result, resp);
-	__ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(0);
-	__ArrayInstPtr(resp)->a_element[2] = type; __STORE(resp, type);
-	__ArrayInstPtr(resp)->a_element[3] = proto; __STORE(resp, proto);
-	__PROTECT__(resp);
-	o = __BYTEARRAY_NEW_INT(sizeof(*sa));
-	__UNPROTECT__(resp);
-	if (o == nil) {
-	    error = @symbol(allocationFailure);
-	    goto err;
-	}
-	__ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
-	sa = (struct sockaddr_in *)__byteArrayVal(o);
-	sa->sin_port = __port;
-
-	if (__hostName) {
-	    sa->sin_family = hp->h_addrtype;
-	    memcpy(&sa->sin_addr, *addrpp, hp->h_length);
-	    __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(hp->h_addrtype);
-	    if (hp->h_name) {
-		__PROTECT__(resp);
-		o = __MKSTRING(hp->h_name);
-		__UNPROTECT__(resp);
-		if (o == nil) {
-		    error = @symbol(allocationFailure);
-		    goto err;
-		}
-		__ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
-	    }
-	    addrpp++;
-	} else{
-	    if (__isSmallInteger(domain))
-		sa->sin_family = __intVal(domain);
-	    else
-		sa->sin_family = AF_INET;
-	    __ArrayInstPtr(resp)->a_element[1] = domain; __STORE(resp, domain);
-	}
+        OBJ o, resp;
+        struct sockaddr_in *sa;
+
+        resp = __ARRAY_NEW_INT(6);
+        if (resp == nil) {
+            error = @symbol(allocationFailure);
+            goto err;
+        }
+
+        __ArrayInstPtr(result)->a_element[i] = resp; __STORE(result, resp);
+        __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(0);
+        __ArrayInstPtr(resp)->a_element[2] = type; __STORE(resp, type);
+        __ArrayInstPtr(resp)->a_element[3] = proto; __STORE(resp, proto);
+        __PROTECT__(resp);
+        o = __BYTEARRAY_NEW_INT(sizeof(*sa));
+        __UNPROTECT__(resp);
+        if (o == nil) {
+            error = @symbol(allocationFailure);
+            goto err;
+        }
+        __ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
+        sa = (struct sockaddr_in *)__byteArrayVal(o);
+        sa->sin_port = __port;
+
+        if (__hostName) {
+            sa->sin_family = hp->h_addrtype;
+            memcpy(&sa->sin_addr, *addrpp, hp->h_length);
+            __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(hp->h_addrtype);
+            if (hp->h_name) {
+                __PROTECT__(resp);
+                o = __MKSTRING(hp->h_name);
+                __UNPROTECT__(resp);
+                if (o == nil) {
+                    error = @symbol(allocationFailure);
+                    goto err;
+                }
+                __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
+            }
+            addrpp++;
+        } else{
+            if (__isSmallInteger(domain))
+                sa->sin_family = __intVal(domain);
+            else
+                sa->sin_family = AF_INET;
+            __ArrayInstPtr(resp)->a_element[1] = domain; __STORE(resp, domain);
+        }
     }
 
 err:;
@@ -19865,67 +19890,67 @@
 exitPrim:;
 %}.
     error notNil ifTrue:[
-	|request|
-	request := SocketAddressInfo new
-	    domain:domainArg;
-	    type:typeArg;
-	    protocol:protoArg;
-	    canonicalName:hostName;
-	    serviceName:serviceName.
-	^ (HostNameLookupError new
-		parameter:error;
-		messageText:' - ', (errorString ? error printString);
-		request:request) raiseRequest.
+        |request|
+        request := SocketAddressInfo new
+            domain:domainArg;
+            type:typeArg;
+            protocol:protoArg;
+            canonicalName:hostName;
+            serviceName:serviceName.
+        ^ (HostNameLookupError new
+                parameter:error;
+                messageText:' - ', (errorString ? error printString);
+                request:request) raiseRequest.
     ].
     1 to:result size do:[:i |
-	|entry dom info|
-
-	info := SocketAddressInfo new.
-	entry := result at:i.
-	info flags:(entry at:1).
-	info domain:(dom := OperatingSystem domainSymbolOf:(entry at:2)).
-	info type:(OperatingSystem socketTypeSymbolOf:(entry at:3)).
-	info protocol:(self protocolSymbolOf:(entry at:4)).
-	info socketAddress:((SocketAddress newDomain:dom) fromBytes:(entry at:5)).
-	info canonicalName:(entry at:6).
-	result at:i put:info
+        |entry dom info|
+
+        info := SocketAddressInfo new.
+        entry := result at:i.
+        info flags:(entry at:1).
+        info domain:(dom := OperatingSystem domainSymbolOf:(entry at:2)).
+        info type:(OperatingSystem socketTypeSymbolOf:(entry at:3)).
+        info protocol:(self protocolSymbolOf:(entry at:4)).
+        info socketAddress:((SocketAddress newDomain:dom) fromBytes:(entry at:5)).
+        info canonicalName:(entry at:6).
+        result at:i put:info
     ].
     ^ result
 
     "
      self getAddressInfo:'localhost' serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'localhost' serviceName:nil
-	    domain:#AF_INET type:#stream protocol:nil flags:nil
+            domain:#AF_INET type:#stream protocol:nil flags:nil
      self getAddressInfo:'localhost' serviceName:nil
-	    domain:#AF_INET type:#stream protocol:#tcp flags:nil
+            domain:#AF_INET type:#stream protocol:#tcp flags:nil
      self getAddressInfo:'localhost' serviceName:10
-	    domain:#AF_INET type:#stream protocol:#tcp flags:nil
+            domain:#AF_INET type:#stream protocol:#tcp flags:nil
      self getAddressInfo:'localhost' serviceName:'10'
-	    domain:#AF_INET type:#stream protocol:#tcp flags:nil
+            domain:#AF_INET type:#stream protocol:#tcp flags:nil
      self getAddressInfo:'blurb.exept.de' serviceName:nil
-	    domain:#AF_INET type:nil protocol:nil flags:nil
+            domain:#AF_INET type:nil protocol:nil flags:nil
      self getAddressInfo:'1.2.3.4' serviceName:'bla'
-	    domain:#AF_INET type:nil protocol:nil flags:nil
+            domain:#AF_INET type:nil protocol:nil flags:nil
      self getAddressInfo:'localhost' serviceName:'echo'
-	    domain:#AF_INET type:nil protocol:nil flags:nil
+            domain:#AF_INET type:nil protocol:nil flags:nil
      self getAddressInfo:nil serviceName:'echo'
-	    domain:#AF_INET type:nil protocol:nil flags:nil
+            domain:#AF_INET type:nil protocol:nil flags:nil
      self getAddressInfo:nil serviceName:nil
-	    domain:#AF_INET type:nil protocol:nil flags:nil
+            domain:#AF_INET type:nil protocol:nil flags:nil
      self getAddressInfo:'www.google.de' serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'exeptn' serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
 
      self getAddressInfo:'localhost' asUnicode16String serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'ützlbrützl' serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'ützlbrützl' serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
      self getAddressInfo:'путин.ру' asUnicode16String serviceName:nil
-	    domain:nil type:nil protocol:nil flags:nil
+            domain:nil type:nil protocol:nil flags:nil
     "
 !
 
@@ -19969,20 +19994,20 @@
     int nInstBytes, sockAddrSize;
 
     if (wantHostName == true) {
-	hp = host;
-	hsz = sizeof(host);
+        hp = host;
+        hsz = sizeof(host);
     }
     if (wantServiceName == true) {
-	sp = service;
-	ssz = sizeof(service);
+        sp = service;
+        ssz = sizeof(service);
     }
     if (hp == NULL && sp == NULL) {
-	error = @symbol(badArgument);
-	goto err;
+        error = @symbol(badArgument);
+        goto err;
     }
     if (!__isBytes(socketAddress)) {
-	error = @symbol(badArgument1);
-	goto err;
+        error = @symbol(badArgument1);
+        goto err;
     }
 
     nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(socketAddress))->c_ninstvars));
@@ -19990,185 +20015,185 @@
     sockAddrSize -= nInstBytes;
 
     if (!__isSmallInteger(flags)) {
-	error = @symbol(badArgument5);
-	goto err;
+        error = @symbol(badArgument5);
+        goto err;
     }
     __flags = __intVal(flags);
 
 #if defined(NI_NUMERICHOST)
     if (useDatagram == true) {
-	__flags |= NI_DGRAM;
+        __flags |= NI_DGRAM;
     }
 
     {
-	bp = (char *)(__byteArrayVal(socketAddress));
-	bp += nInstBytes;
+        bp = (char *)(__byteArrayVal(socketAddress));
+        bp += nInstBytes;
 # ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = (int)(STX_WSA_NOINT_CALL7( "getnameinfo", getnameinfo, (struct sockaddr *)bp, (INT)sockAddrSize, hp, (INT)hsz, sp, (INT)ssz, (INT)__flags));
-	} while ((ret < 0) && (__threadErrno == EINTR));
+        do {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = (int)(STX_WSA_NOINT_CALL7( "getnameinfo", getnameinfo, (struct sockaddr *)bp, (INT)sockAddrSize, hp, (INT)hsz, sp, (INT)ssz, (INT)__flags));
+        } while ((ret < 0) && (__threadErrno == EINTR));
 # else
-	__BEGIN_INTERRUPTABLE__
-	ret = getnameinfo((struct sockaddr *)bp, sockAddrSize,
-			  hp, hsz, sp, ssz, __flags);
-	__END_INTERRUPTABLE__
+        __BEGIN_INTERRUPTABLE__
+        ret = getnameinfo((struct sockaddr *)bp, sockAddrSize,
+                          hp, hsz, sp, ssz, __flags);
+        __END_INTERRUPTABLE__
 # endif
     } while (ret != 0 && __threadErrno == EINTR);
 
     if (ret != 0) {
-	switch (ret) {
-	    case EAI_FAMILY:
-		error = @symbol(badProtocol);
-		break;
-	    case EAI_SOCKTYPE:
-		error = @symbol(badSocketType);
-		break;
-	    case EAI_BADFLAGS:
-		error = @symbol(badFlags);
-		break;
-	    case EAI_NONAME:
-		error = @symbol(unknownHost);
-		break;
-	    case EAI_SERVICE:
-		error = @symbol(unknownService);
-		break;
-	    case EAI_MEMORY:
-		error = @symbol(allocationFailure);
-		break;
-	    case EAI_FAIL:
-		error = @symbol(permanentFailure);
-		break;
-	    case EAI_AGAIN:
-		error = @symbol(tryAgain);
-		break;
-	    default:
-		error = @symbol(unknownError);
-	}
-	errorString = __MKSTRING(gai_strerror(ret));
-	goto err;
+        switch (ret) {
+            case EAI_FAMILY:
+                error = @symbol(badProtocol);
+                break;
+            case EAI_SOCKTYPE:
+                error = @symbol(badSocketType);
+                break;
+            case EAI_BADFLAGS:
+                error = @symbol(badFlags);
+                break;
+            case EAI_NONAME:
+                error = @symbol(unknownHost);
+                break;
+            case EAI_SERVICE:
+                error = @symbol(unknownService);
+                break;
+            case EAI_MEMORY:
+                error = @symbol(allocationFailure);
+                break;
+            case EAI_FAIL:
+                error = @symbol(permanentFailure);
+                break;
+            case EAI_AGAIN:
+                error = @symbol(tryAgain);
+                break;
+            default:
+                error = @symbol(unknownError);
+        }
+        errorString = __MKSTRING(gai_strerror(ret));
+        goto err;
     }
 # else /* ! NI_NUMERICHOST */
     {
-	/*
-	 * Do it using gethostbyaddr()
-	 */
-	struct sockaddr_in *sa;
-
-	if (sockAddrSize < sizeof(*sa)) {
-	    error = @symbol(badArgument1);
-	    goto err;
-	}
-	bp = (char *)(__byteArrayVal(socketAddress));
-	bp += nInstBytes;
-	sa = (struct sockaddr_in *)bp;
-
-	if (sp) {
-	    struct servent *servp;
-	    char *__proto = 0;
-
-	    __proto = (useDatagram == true ? "udp" : "tcp");
-
-	    servp = getservbyport(sa->sin_port, __proto);
-	    if (servp) {
-		sp = servp->s_name;
-	    }
-	}
-
-	if (sa->sin_family == AF_INET6) {
-	    if (sp)
-		serviceName = __MKSTRING(sp);
-	    error = @symbol(AF_INET6);
-	    goto err;
-	}
-
-	if (hp) {
-	    struct hostent *hostp;
-	    int err;
-
-	    do {
-		/* must refetch in loop */
-		bp = (char *)(__byteArrayVal(socketAddress));
-		bp += nInstBytes;
-		sa = (struct sockaddr_in *)bp;
-		/* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname uses a static data area
-		 */
-		hostp = gethostbyaddr((char *)&sa->sin_addr, sockAddrSize, sa->sin_family);
-		/* __END_INTERRUPTABLE__ */
-	    } while ((hostp == NULL)
-		      && ((err = WSAGetLastError()) == EINTR)
-	    );
-	    if (hostp == 0) {
-		switch (err) {
-		case HOST_NOT_FOUND:
-		    errorString = @symbol(unknownHost);
-		    break;
-		case NO_ADDRESS:
-		    errorString = @symbol(noAddress);
-		    break;
-		case NO_RECOVERY:
-		    errorString = @symbol(permanentFailure);
-		    break;
-		case TRY_AGAIN:
-		    errorString = @symbol(tryAgain);
-		    break;
-		default:
-		    errorString = @symbol(unknownError);
-		    break;
-		}
-		error = __mkSmallInteger(err);
-		goto err;
-	    }
-	    hp = hostp->h_name;
-	}
+        /*
+         * Do it using gethostbyaddr()
+         */
+        struct sockaddr_in *sa;
+
+        if (sockAddrSize < sizeof(*sa)) {
+            error = @symbol(badArgument1);
+            goto err;
+        }
+        bp = (char *)(__byteArrayVal(socketAddress));
+        bp += nInstBytes;
+        sa = (struct sockaddr_in *)bp;
+
+        if (sp) {
+            struct servent *servp;
+            char *__proto = 0;
+
+            __proto = (useDatagram == true ? "udp" : "tcp");
+
+            servp = getservbyport(sa->sin_port, __proto);
+            if (servp) {
+                sp = servp->s_name;
+            }
+        }
+
+        if (sa->sin_family == AF_INET6) {
+            if (sp)
+                serviceName = __MKSTRING(sp);
+            error = @symbol(AF_INET6);
+            goto err;
+        }
+
+        if (hp) {
+            struct hostent *hostp;
+            int err;
+
+            do {
+                /* must refetch in loop */
+                bp = (char *)(__byteArrayVal(socketAddress));
+                bp += nInstBytes;
+                sa = (struct sockaddr_in *)bp;
+                /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname uses a static data area
+                 */
+                hostp = gethostbyaddr((char *)&sa->sin_addr, sockAddrSize, sa->sin_family);
+                /* __END_INTERRUPTABLE__ */
+            } while ((hostp == NULL)
+                      && ((err = WSAGetLastError()) == EINTR)
+            );
+            if (hostp == 0) {
+                switch (err) {
+                case HOST_NOT_FOUND:
+                    errorString = @symbol(unknownHost);
+                    break;
+                case NO_ADDRESS:
+                    errorString = @symbol(noAddress);
+                    break;
+                case NO_RECOVERY:
+                    errorString = @symbol(permanentFailure);
+                    break;
+                case TRY_AGAIN:
+                    errorString = @symbol(tryAgain);
+                    break;
+                default:
+                    errorString = @symbol(unknownError);
+                    break;
+                }
+                error = __mkSmallInteger(err);
+                goto err;
+            }
+            hp = hostp->h_name;
+        }
     }
 # endif /* ! NI_NUMERICHOST */
 
     if (hp)
-	hostName = __MKSTRING(hp);
+        hostName = __MKSTRING(hp);
     if (sp)
-	serviceName = __MKSTRING(sp);
+        serviceName = __MKSTRING(sp);
 err:;
 #else
     error = @symbol(notImplemented);
 #endif
 %}.
     error notNil ifTrue:[
-	(error == #AF_INET6 or:[errorString == #noAddress]) ifTrue:[
-	    "This is a socket address of wrong size - probably an IPv6SocketAddres on a system where
-	     the getNetByAddr() syscall is not supported"
-	    ^ Array
-		with:socketAddress hostAddressString
-		with:serviceName.
-	].
-	error isSymbol ifTrue:[
-	    self primitiveFailed:error.
-	].
-	^ (HostAddressLookupError new
-		parameter:error;
-		messageText:' - ', (errorString ? error printString);
-		request:thisContext message) raiseRequest.
+        (error == #AF_INET6 or:[errorString == #noAddress]) ifTrue:[
+            "This is a socket address of wrong size - probably an IPv6SocketAddres on a system where
+             the getNetByAddr() syscall is not supported"
+            ^ Array
+                with:socketAddress hostAddressString
+                with:serviceName.
+        ].
+        error isSymbol ifTrue:[
+            self primitiveFailed:error.
+        ].
+        ^ (HostAddressLookupError new
+                parameter:error;
+                messageText:' - ', (errorString ? error printString);
+                request:thisContext message) raiseRequest.
     ].
 
     ^ Array with:hostName with:serviceName
 
     "
      self getNameInfo:
-	(self getAddressInfo:'localhost' serviceName:'echo'
-		domain:#AF_INET type:#stream protocol:nil flags:nil) first socketAddress
-	 wantHostName:true wantServiceName:true datagram:false flags:0
+        (self getAddressInfo:'localhost' serviceName:'echo'
+                domain:#AF_INET type:#stream protocol:nil flags:nil) first socketAddress
+         wantHostName:true wantServiceName:true datagram:false flags:0
 
      self getNameInfo:
-	(self getAddressInfo:'exept.exept.de' serviceName:'echo'
-		domain:#AF_INET type:#stream protocol:nil flags:nil) first socketAddress
-	 wantHostName:true wantServiceName:true datagram:false flags:0
+        (self getAddressInfo:'exept.exept.de' serviceName:'echo'
+                domain:#AF_INET type:#stream protocol:nil flags:nil) first socketAddress
+         wantHostName:true wantServiceName:true datagram:false flags:0
 
      self getNameInfo:(IPSocketAddress hostAddress:#[1 2 3 4])
-	 wantHostName:true wantServiceName:true datagram:false flags:0
+         wantHostName:true wantServiceName:true datagram:false flags:0
 
      self getNameInfo:(IPv6SocketAddress localHost port:21)
-	 wantHostName:true wantServiceName:true datagram:false flags:0
+         wantHostName:true wantServiceName:true datagram:false flags:0
     "
 ! !
 
@@ -20176,7 +20201,7 @@
 
 initialize
 %{ /* NOCONTEXT */
-	__ExternalAddressInstPtr(self)->e_address = (void *)(INVALID_SOCKET);
+        __ExternalAddressInstPtr(self)->e_address = (void *)(INVALID_SOCKET);
 %}
 
     "
@@ -20212,8 +20237,8 @@
     SOCKET sock = (SOCKET)(__externalAddressVal(self));
 
     if (sock != INVALID_SOCKET) {
-	__externalAddressVal(self) = (void *)(INVALID_SOCKET);
-	closesocket(sock);
+        __externalAddressVal(self) = (void *)(INVALID_SOCKET);
+        closesocket(sock);
     }
 %}.
 ! !
@@ -20243,35 +20268,35 @@
 !Win32OperatingSystem::WinPointStructure methodsFor:'accessing'!
 
 asPoint
-	"Private - Answer the receiver as a Point."
+        "Private - Answer the receiver as a Point."
     ^self x @ self y
 
     "Created: / 03-08-2006 / 10:45:55 / fm"
 !
 
 x
-	"Private - Answer the x coordinate of the point."
+        "Private - Answer the x coordinate of the point."
     ^self longAt: 0 + 1
 
     "Created: / 03-08-2006 / 10:46:11 / fm"
 !
 
 x: anInteger
-	"Private - Set the x coordinate of the point."
+        "Private - Set the x coordinate of the point."
     self longAt: 0 + 1 put: anInteger
 
     "Created: / 03-08-2006 / 10:46:41 / fm"
 !
 
 y
-	"Private - Answer the y coordinate of the point."
+        "Private - Answer the y coordinate of the point."
     ^self longAt: 4 + 1
 
     "Created: / 03-08-2006 / 10:46:26 / fm"
 !
 
 y: anInteger
-	"Private - Set the y coordinate of the point."
+        "Private - Set the y coordinate of the point."
     self longAt: 4 + 1 put: anInteger
 
     "Created: / 03-08-2006 / 10:46:56 / fm"
@@ -20280,7 +20305,7 @@
 !Win32OperatingSystem::WinPointStructure methodsFor:'printing'!
 
 printOn: aStream
-	"Append a textual representation of the receiver to aStream."
+        "Append a textual representation of the receiver to aStream."
     aStream nextPutAll: self class name, ' { ', self asPoint printString, ' } '
 
     "Created: / 03-08-2006 / 10:45:40 / fm"