Merge jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 19 Sep 2016 08:46:27 +0100
branchjv
changeset 20398 8cb53f870d39
parent 20397 59b59d09f64e (current diff)
parent 20392 7c3c4b3d3d0f (diff)
child 20399 dbc7af6d95a3
Merge
AbstractOperatingSystem.st
CachingRegistry.st
CharacterArray.st
Collection.st
Dictionary.st
EncodedStream.st
ExternalLibraryFunction.st
ExternalStream.st
FileStream.st
Integer.st
NonPositionableExternalStream.st
OSProcess.st
Object.st
PositionableStream.st
RecursionLock.st
SequenceableCollection.st
StandaloneStartup.st
Stream.st
String.st
UninterpretedBytes.st
UnixOperatingSystem.st
Win32OperatingSystem.st
--- a/AbstractOperatingSystem.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/AbstractOperatingSystem.st	Mon Sep 19 08:46:27 2016 +0100
@@ -619,21 +619,22 @@
     "open a windows-shell/mac finder/desktop application to present the document contained in aFilenameOrString.
      This is typically used to present help-files, html documents, pdf documents etc.
      operationSymbol is one of:
-	open
-	edit
-	explore
+        open
+        edit
+        explore
      mimeTypeStringArgOrNil is e.g. 'text/html' or: 'application/pdf'.
      If nil is passed in, the file's suffix is used to guess the mime type.
     "
 
     self
-	openApplicationForDocument:aFilenameOrString
-	operation:operationSymbol
-	mimeType:mimeTypeStringArgOrNil
-	ifNone:[
-	    "/ last resort: use a fileBrowser
-	    UserPreferences fileBrowserClass openOn:aFilenameOrString
-	].
+        openApplicationForDocument:aFilenameOrString
+        operation:operationSymbol
+        mimeType:mimeTypeStringArgOrNil
+        inDirectory:nil
+        ifNone:[
+            "/ last resort: use a fileBrowser
+            UserPreferences fileBrowserClass openOn:aFilenameOrString
+        ].
 
     "
      self openApplicationForDocument: Filename currentDirectory operation:#open
@@ -650,9 +651,26 @@
     "open a windows-shell/mac finder/desktop application to present the document contained in aFilenameOrString.
      This is typically used to present help-files, html documents, pdf documents etc.
      operationSymbol is one of:
-	open
-	edit
-	explore
+        open
+        edit
+        explore
+     mimeTypeStringArgOrNil is e.g. 'text/html' or: 'application/pdf';
+     if nil is passed in, the file's suffix is used to guess it.
+    "
+
+    ^ self 
+        openApplicationForDocument:aFilenameOrString operation:operationSymbol mimeType:mimeTypeStringArgOrNil 
+        inDirectory:nil ifNone:exceptionBlock
+!
+
+openApplicationForDocument:aFilenameOrString operation:operationSymbol mimeType:mimeTypeStringArgOrNil 
+    inDirectory:directoryStringOrFilenameOrNil
+    "open a windows-shell/mac finder/desktop application to present the document contained in aFilenameOrString.
+     This is typically used to present help-files, html documents, pdf documents etc.
+     operationSymbol is one of:
+        open
+        edit
+        explore
      mimeTypeStringArgOrNil is e.g. 'text/html' or: 'application/pdf';
      if nil is passed in, the file's suffix is used to guess it.
     "
@@ -662,30 +680,30 @@
     mimeTypeString := mimeTypeStringArgOrNil.
 
     MIMETypes notNil ifTrue:[
-	mimeTypeString isNil ifTrue:[
-	    mimeTypeString := MIMETypes mimeTypeForFilename:aFilenameOrString.
-	].
-	mimeTypeString notNil ifTrue:[
-	    openCommand := MIMETypes defaultCommandTemplateToOpenMimeType:mimeTypeString.
-	].
-    ].
+        mimeTypeString isNil ifTrue:[
+            mimeTypeString := MIMETypes mimeTypeForFilename:aFilenameOrString.
+        ].
+        mimeTypeString notNil ifTrue:[
+            openCommand := MIMETypes defaultCommandTemplateToOpenMimeType:mimeTypeString.
+        ].
+    ].                                                                                         
     openCommand notEmptyOrNil ifTrue:[
-	(openCommand includesSubString:'%1') ifTrue:[
-	    openCommand := openCommand bindWith:aFilenameOrString asString.
-	] ifFalse:[
-	    openCommand := openCommand, ' "', aFilenameOrString asString, '"'.
-	].
-
-	(self
-		startProcess:openCommand
-		inputFrom:nil outputTo:nil
-		errorTo:nil auxFrom:nil
-		environment:nil inDirectory:nil) notNil
-	ifTrue:[
-	    ^ self.
-	].
+        (openCommand includesSubString:'%1') ifTrue:[
+            openCommand := openCommand bindWith:aFilenameOrString asString.
+        ] ifFalse:[
+            openCommand := openCommand, ' "', aFilenameOrString asString, '"'.
+        ].
+
+        (self
+                startProcess:openCommand
+                inputFrom:nil outputTo:nil
+                errorTo:nil auxFrom:nil
+                environment:nil inDirectory:directoryStringOrFilenameOrNil) notNil
+        ifTrue:[
+            ^ self.
+        ].
     ].
-    exceptionBlock notNil ifTrue:[ exceptionBlock value ].
+    ExecutionError raiseErrorString:'execution of command failed: ', openCommand.
 
     "
      self openApplicationForDocument: Filename currentDirectory operation:#open
@@ -696,6 +714,28 @@
 
     "Created: / 29-10-2010 / 12:16:38 / cg"
     "Modified: / 05-02-2011 / 16:13:42 / cg"
+!
+
+openApplicationForDocument:aFilenameOrString operation:operationSymbol mimeType:mimeTypeStringArgOrNil 
+    inDirectory:directoryStringOrFilenameOrNil ifNone:exceptionBlock
+    "open a windows-shell/mac finder/desktop application to present the document contained in aFilenameOrString.
+     This is typically used to present help-files, html documents, pdf documents etc.
+     operationSymbol is one of:
+        open
+        edit
+        explore
+     mimeTypeStringArgOrNil is e.g. 'text/html' or: 'application/pdf';
+     if nil is passed in, the file's suffix is used to guess it.
+    "
+
+    [
+        ^ self 
+            openApplicationForDocument:aFilenameOrString 
+            operation:operationSymbol mimeType:mimeTypeStringArgOrNil 
+            inDirectory:directoryStringOrFilenameOrNil.
+    ] on:ExecutionError do:[:ex|
+        exceptionBlock value.
+    ].
 ! !
 
 !AbstractOperatingSystem class methodsFor:'error messages'!
@@ -866,7 +906,7 @@
 
     ^ self 
         exec:aCommandPath withArguments:argArray environment:env fileDescriptors:fds fork:doFork 
-        newPgrp:newGrp inDirectory:aDirectory showWindow:nil
+        newPgrp:newGrp inDirectory:aDirectory showWindow:false
 
     "Created: / 12.11.1998 / 14:46:15 / cg"
 !
@@ -1368,7 +1408,7 @@
     ^ self
         executeCommand:aCommandStringOrArray inputFrom:anInStream outputTo:anOutStream
         errorTo:anErrStream auxFrom:anAuxStream environment:environmentDictionary
-        inDirectory:dirOrNil lineWise:lineWise showWindow:nil onError:aBlock
+        inDirectory:dirOrNil lineWise:lineWise showWindow:false onError:aBlock
 
     "
         |outStream errStream|
--- a/CachingRegistry.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/CachingRegistry.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1999 by eXept Software AG
 	      All Rights Reserved
@@ -63,6 +65,22 @@
 "
 ! !
 
+!CachingRegistry methodsFor:'enumerating'!
+
+detect:aBlock ifNone:exceptionValue
+    "... additionaly move it to the front of the LRU chain"
+
+    keyArray validElementsDo:[:obj |
+        (obj ~~ DeletedEntry and:[aBlock value:obj]) ifTrue:[
+            keptReferences 
+                removeIdentical:obj ifAbsent:[];
+                addLast:obj.
+            ^ obj
+        ].
+    ].
+    ^ exceptionValue value
+! !
+
 !CachingRegistry methodsFor:'private'!
 
 cacheSize:aNumber
--- a/CharacterArray.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/CharacterArray.st	Mon Sep 19 08:46:27 2016 +0100
@@ -351,7 +351,6 @@
     "Created: 3.8.1997 / 18:16:40 / cg"
 ! !
 
-
 !CharacterArray class methodsFor:'cleanup'!
 
 lowSpaceCleanup
@@ -2357,15 +2356,36 @@
      greater, 0 if equal and -1 if less than the argument in a sorted list.
      Compare as version numbers in the form a.b.c... ."
 
-    |rev1 rev2|
+    |rev1 rev2 removeTrailingZerosBlock trailingZerosCount|
 
     rev1 := self asCollectionOfSubstringsSeparatedBy:$..
     aStringOrCollection isString ifTrue:[
-	rev2 := aStringOrCollection asCollectionOfSubstringsSeparatedBy:$..
+        rev2 := aStringOrCollection asCollectionOfSubstringsSeparatedBy:$..
     ].
     rev1 := rev1 collect:[:each| each asInteger].
     rev2 := rev2 collect:[:each| each asInteger].
 
+    removeTrailingZerosBlock := 
+        [:numbers |
+            trailingZerosCount := 0.
+            numbers reversed doWithExit:[:each :exit |
+                each == 0 ifTrue:[
+                    trailingZerosCount := trailingZerosCount + 1.
+                ] ifFalse:[
+                    exit value:nil.
+                ].
+            ].
+
+            trailingZerosCount > 0 ifTrue:[
+                numbers copyTo:numbers size - trailingZerosCount
+            ] ifFalse:[
+                numbers
+            ]
+        ].
+
+    rev1 := removeTrailingZerosBlock value:rev1.
+    rev2 := removeTrailingZerosBlock value:rev2.
+
     ^ rev1 compareWith:rev2
 
    "
@@ -4922,8 +4942,6 @@
 ! !
 
 
-
-
 !CharacterArray methodsFor:'matching - glob expressions'!
 
 compoundMatch:aString
@@ -8216,7 +8234,6 @@
     ^ aVisitor visitString:self with:aParameter
 ! !
 
-
 !CharacterArray class methodsFor:'documentation'!
 
 version
--- a/Collection.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/Collection.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
               All Rights Reserved
@@ -273,7 +275,6 @@
     ^ self newWithSize:n
 ! !
 
-
 !Collection class methodsFor:'Signal constants'!
 
 emptyCollectionSignal
@@ -333,6 +334,14 @@
      Abstract subclasses must redefine this again."
 
     ^ self == Collection
+!
+
+mutableClass
+    "Return a version of me with mutable instances.
+     Only redefined in the immutable collections (of which instances are
+     created by the compiler)"
+
+    ^ self
 ! !
 
 !Collection methodsFor:'Compatibility-ANSI'!
@@ -540,7 +549,6 @@
     "Created: / 22-10-2008 / 21:29:27 / cg"
 ! !
 
-
 !Collection methodsFor:'accessing'!
 
 anElement
@@ -4333,7 +4341,7 @@
     aStream nextPut:$)
 
     "
-     #(1 2 3 'hello' $a $ü) printOn:Transcript
+     #(1 2 3 'hello' $a $ü) printOn:Transcript
      (Array new:100000) printOn:Transcript
      (Array new:100000) printOn:Stdout
      (Array new:100000) printString size
@@ -5687,7 +5695,7 @@
 includesAll:aCollection
     "return true if the receiver includes all elements of
      the argument, aCollection; false if any is missing.
-     Notice: this method has O² runtime behavior and may be
+     Notice: this method has O² runtime behavior and may be
              slow for big receivers/args.
              Think about using a Set, or Dictionary."
 
@@ -5707,7 +5715,7 @@
      Return false if it includes none.
      Uses #= (value compare)
      Notice:
-        this method has O² runtime behavior for some subclasses and may be slow for big receivers/args.
+        this method has O² runtime behavior for some subclasses and may be slow for big receivers/args.
         Think about using a Set or Dictionary.
         Some speedup is also possible, by arranging highly
         probable elements towards the beginning of aCollection, to avoid useless searches.
@@ -5777,7 +5785,7 @@
      Return false if it includes none.
      Use identity compare for comparing.
      Notice:
-        this method has O² runtime behavior for some subclasses and may be slow for big receivers/args.
+        this method has O² runtime behavior for some subclasses and may be slow for big receivers/args.
         Think about using a Set or Dictionary.
         Some speedup is also possible, by arranging highly
         probable elements towards the beginning of aCollection, to avoid useless searches."
@@ -5993,7 +6001,6 @@
     ^ aVisitor visitCollection:self with:aParameter
 ! !
 
-
 !Collection class methodsFor:'documentation'!
 
 version
--- a/Dictionary.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/Dictionary.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
@@ -295,8 +297,6 @@
     ^ true
 ! !
 
-
-
 !Dictionary methodsFor:'accessing'!
 
 associationAt:aKey
@@ -791,7 +791,7 @@
 
 add:anAssociation
     "add the argument, anAssociation to the receiver.
-     Returns the argument, anAssosciation.
+     Returns the argument, anAssociation.
 
      WARNING: do not add elements while iterating over the receiver.
               Iterate over a copy to do this."
@@ -2455,7 +2455,6 @@
     ^ aVisitor visitDictionary:self with:aParameter
 ! !
 
-
 !Dictionary class methodsFor:'documentation'!
 
 version
--- a/EncodedStream.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/EncodedStream.st	Mon Sep 19 08:46:27 2016 +0100
@@ -380,6 +380,10 @@
     stream flush
 !
 
+isEmpty
+    ^ stream isEmpty
+!
+
 isOpen
     ^ stream notNil and:[stream isOpen]
 !
@@ -499,7 +503,8 @@
 !
 
 size
-    "not correct, but probably better than 0"
+    "not always correct, but probably better than 0.
+     Better use #isEmpty."
 
     "/ is that better?
     "/ self error:'size of input is unknown (due to decoding)'
--- a/ExternalLibraryFunction.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/ExternalLibraryFunction.st	Mon Sep 19 08:46:27 2016 +0100
@@ -949,11 +949,11 @@
      This is useful, if some code has a hardcoded dll-name in it, which needs to be changed,
      but you do not want or cannot recompile the methods (i.e. no source avail)"
 
-    |handle nameString filename|
+    |handle nameString filename dllPathes|
 
     filename := dllName.
     DllMapping notNil ifTrue:[
-	filename := DllMapping at:filename ifAbsent:[ filename ]
+        filename := DllMapping at:filename ifAbsent:[ filename ]
     ].
 
     filename := filename asFilename.
@@ -964,25 +964,25 @@
     handle notNil ifTrue:[^ handle ].
 
     filename isAbsolute ifFalse:[
-	"First ask the class defining the ExternalFunction for the location of the dlls ..."
-	owningClass notNil ifTrue:[
-	    owningClass dllPath do:[:eachDirectory |
-		handle := ObjectFileLoader
-			    loadDynamicObject:(eachDirectory asFilename construct:nameString) pathName.
-		handle notNil ifTrue:[^ handle ].
-	    ].
-	].
-	".. then ask the system"
-	self class dllPath do:[:eachDirectory |
-	    handle := ObjectFileLoader
-			loadDynamicObject:(eachDirectory asFilename construct:nameString) pathName.
-	    handle notNil ifTrue:[^ handle ].
-	].
+        "First ask the class defining the ExternalFunction for the location of the dlls ..."
+        dllPathes := #().
+        owningClass notNil ifTrue:[
+            dllPathes := owningClass dllPath.
+        ].
+        ".. then ask the system"
+        dllPathes := dllPathes, self class dllPath.
+        dllPathes do:[:eachDirectory |
+            |libraryName|
+
+            libraryName := eachDirectory asFilename construct:nameString.
+            handle := ObjectFileLoader loadDynamicObject:libraryName.
+            handle notNil ifTrue:[^ handle ].
+        ].
     ].
 
     filename suffix isEmpty ifTrue:[
-	"/ try again with the OS-specific dll-extension
-	^ self loadLibrary:(filename withSuffix:ObjectFileLoader sharedLibrarySuffix)
+        "/ try again with the OS-specific dll-extension
+        ^ self loadLibrary:(filename withSuffix:ObjectFileLoader sharedLibrarySuffix)
     ].
 
     ^ nil
--- a/ExternalStream.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/ExternalStream.st	Mon Sep 19 08:46:27 2016 +0100
@@ -5570,19 +5570,19 @@
     char c;
 
     if (__INST(hitEOF) == true) {
-	RETURN (true);
+        RETURN (true);
     }
     pos = __INST(position);
     lim = __INST(readLimit);
     if (lim != nil) {
-	off_t _pos, _readLimit;
-
-	_pos = __signedLongIntVal(pos);
-	_pos = _pos - __intVal( @global(PositionableStream:ZeroPosition)) + 1;
-	_readLimit = __signedLongIntVal(lim);
-	if (_pos > _readLimit) {
-	    RETURN (true);
-	}
+        off_t _pos, _readLimit;
+
+        _pos = __signedLongIntVal(pos);
+        _pos = _pos - __intVal( @global(PositionableStream:ZeroPosition)) + 1;
+        _readLimit = __signedLongIntVal(lim);
+        if (_pos > _readLimit) {
+            RETURN (true);
+        }
     }
 
     __INST(lastErrorNumber) = nil;
@@ -5592,57 +5592,57 @@
      || (__INST(handleType) == @symbol(socketFilePointer))
      || (__INST(handleType) == @symbol(socketHandle))
      || (__INST(handleType) == @symbol(pipeFilePointer))) {
-	if ((fp = __INST(handle)) != nil) {
-	    int _buffered = (__INST(buffered) == true);
-	    int ret;
-	    FILEPOINTER f = __FILEVal(fp);
-
-	    if (_buffered) {
-		__READING__(f);
-	    } else {
-		if (__INST(readAhead) != nil) {
-		    RETURN (false);
-		}
-	    }
-
-	    /*
-	     * read ahead ...
-	     */
-	    do {
+        if ((fp = __INST(handle)) != nil) {
+            int _buffered = (__INST(buffered) == true);
+            int ret;
+            FILEPOINTER f = __FILEVal(fp);
+
+            if (_buffered) {
+                __READING__(f);
+            } else {
+                if (__INST(readAhead) != nil) {
+                    RETURN (false);
+                }
+            }
+
+            /*
+             * read ahead ...
+             */
+            do {
 #ifdef __win32__
 # if 1
-		__READBYTE__(ret, f, &c, _buffered, __INST(handleType));
+                __READBYTE__(ret, f, &c, _buffered, __INST(handleType));
 
 # else
-		__BEGIN_INTERRUPTABLE__
-		__READBYTE__(ret, f, &c, _buffered, __INST(handleType));
-		__END_INTERRUPTABLE__
+                __BEGIN_INTERRUPTABLE__
+                __READBYTE__(ret, f, &c, _buffered, __INST(handleType));
+                __END_INTERRUPTABLE__
 # endif
 #else /* not __win32__ */
-		__BEGIN_INTERRUPTABLE__
-		__READBYTE__(ret, f, &c, _buffered, __INST(handleType));
-		__END_INTERRUPTABLE__
+                __BEGIN_INTERRUPTABLE__
+                __READBYTE__(ret, f, &c, _buffered, __INST(handleType));
+                __END_INTERRUPTABLE__
 #endif
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-
-	    if (ret > 0) {
-		__UNGETC__(c&0xff, f, _buffered);
-		RETURN (false);
-	    }
-	    if (ret == 0) {
-		__INST(hitEOF) = true;
-		RETURN (true);
-	    }
+            } while ((ret < 0) && (__threadErrno == EINTR));
+
+            if (ret > 0) {
+                __UNGETC__(c&0xff, f, _buffered);
+                RETURN (false);
+            }
+            if (ret == 0) {
+                __INST(hitEOF) = true;
+                RETURN (true);
+            }
 #ifdef ECONNRESET
-	    // connection reset by peer is also an EOF
-	    if (__threadErrno == ECONNRESET) {
-		__INST(hitEOF) = true;
-		RETURN (true);
-	    }
+            // connection reset by peer is also an EOF
+            if (__threadErrno == ECONNRESET) {
+                __INST(hitEOF) = true;
+                RETURN (true);
+            }
 #endif
-	    /* ret < 0 */
-	    __INST(lastErrorNumber) = __mkSmallInteger(__threadErrno);
-	}
+            /* ret < 0 */
+            __INST(lastErrorNumber) = __mkSmallInteger(__threadErrno);
+        }
     }
 %}.
     lastErrorNumber notNil ifTrue:[^ self readError].
@@ -5652,7 +5652,7 @@
 
     "/ migration support
     ^ self
-	atEndFile:handle
+        atEndFile:handle
 
     "Modified: / 30.10.1998 / 20:16:06 / cg"
 !
--- a/FileStream.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/FileStream.st	Mon Sep 19 08:46:27 2016 +0100
@@ -882,6 +882,7 @@
     ^ executor
 ! !
 
+
 !FileStream methodsFor:'misc functions'!
 
 copyToEndInto:outStream bufferSize:bufferSize
--- a/Integer.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/Integer.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
               All Rights Reserved
@@ -425,7 +423,7 @@
      Raises BadRomanNumberFormatError if its wrong, but could be parsed.
      Notifies via NaiveRomanNumberFormatNotification, if its a bit wrong (naive format).
      Will read both real and naive roman numbers (see printRomanOn: vs. printRomanOn:naive:),
-     however, a notification is raised for for naive numbers (catch it if you are interested in it)."
+     however, a notification is raised for naive numbers (catch it if you are interested in it)."
 
     |romanValues s c val digitVal prevDigitVal countSame delta
      stopOnSeparator finish|
@@ -775,6 +773,8 @@
     "Modified: / 15.11.1999 / 20:35:20 / cg"
 ! !
 
+
+
 !Integer class methodsFor:'class initialization'!
 
 initialize
@@ -820,6 +820,7 @@
     "Modified: 18.7.1996 / 12:26:38 / cg"
 ! !
 
+
 !Integer class methodsFor:'prime numbers'!
 
 flushPrimeCache
@@ -1195,6 +1196,7 @@
     ^ self == Integer
 ! !
 
+
 !Integer methodsFor:'Compatibility-Dolphin'!
 
 & aNumber
@@ -1459,6 +1461,7 @@
     "
 ! !
 
+
 !Integer methodsFor:'bcd conversion'!
 
 decodeFromBCD
@@ -3492,7 +3495,7 @@
     ^ fibUsingDict value:self
 
     "the running time is mostly dictated by the LargeInteger multiplication performance...
-     (therefore, we get O(n²) execution times, even for a linear number of multiplications)
+     (therefore, we get O(n) execution times, even for a linear number of multiplications)
 
      Time millisecondsToRun:[50000 fib_iterative]  312    (DUO 1.7Ghz CPU)
      Time millisecondsToRun:[50000 fib_helper]     109
@@ -4853,6 +4856,7 @@
     "Created: / 09-01-2012 / 17:18:06 / cg"
 ! !
 
+
 !Integer methodsFor:'special modulo arithmetic'!
 
 add_32:anInteger
--- a/NonPositionableExternalStream.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/NonPositionableExternalStream.st	Mon Sep 19 08:46:27 2016 +0100
@@ -242,6 +242,7 @@
     buffered := false.
 ! !
 
+
 !NonPositionableExternalStream methodsFor:'non homogenous reading'!
 
 nextBytes:count into:anObject startingAt:start
--- a/OSProcess.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/OSProcess.st	Mon Sep 19 08:46:27 2016 +0100
@@ -111,8 +111,8 @@
 !
 
 killGroup
-    "killl the processGroup - the processes does not get the chance to clean up"
-    
+    "kill the processGroup - the processes do not get the chance to clean up"
+
     ^ self subclassResponsibility.
 !
 
--- a/Object.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/Object.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
@@ -692,6 +694,7 @@
 ! !
 
 
+
 !Object methodsFor:'accessing'!
 
 _at:index
@@ -1788,8 +1791,6 @@
     "
 ! !
 
-
-
 !Object methodsFor:'attributes access'!
 
 objectAttributeAt:attributeKey
@@ -1917,8 +1918,6 @@
 ! !
 
 
-
-
 !Object methodsFor:'change & update'!
 
 broadcast:aSelectorSymbol
@@ -2408,7 +2407,7 @@
 !
 
 asValue
-    "return a valueHolder for for the receiver"
+    "return a valueHolder for the receiver"
 
     ^ ValueHolder with:self
 ! !
@@ -5366,43 +5365,43 @@
      action title screen|
 
     thisContext isRecursive ifTrue:[
-	'Severe error: signalInterrupt while processing a signalInterrupt.' errorPrintCR.
-	'Terminating process ' errorPrint. Processor activeProcess errorPrintCR.
+        'Severe error: signalInterrupt while processing a signalInterrupt.' errorPrintCR.
+        'Terminating process ' errorPrint. Processor activeProcess errorPrintCR.
 "/        GenericException handle:[:ex |
 "/            "/ ignore any error during termination
 "/        ] do:[
 "/           Processor activeProcess terminate.
 "/        ].
-	MiniDebugger enter.
-	Processor activeProcess terminateNoSignal.
+        MiniDebugger enter.
+        Processor activeProcess terminateNoSignal.
     ].
 
     "if there has been an ST-signal installed, use it ..."
     sig := OperatingSystem operatingSystemSignal:signalNumber.
     sig notNil ifTrue:[
-	sig raiseSignalWith:signalNumber.
-	^ self.
+        sig raiseSignalWith:signalNumber.
+        ^ self.
     ].
 
     "/ if handled, raise OSSignalInterruptSignal
     OSSignalInterrupt isHandled ifTrue:[
-	OSSignalInterrupt raiseRequestWith:signalNumber.
-	^ self.
+        OSSignalInterrupt raiseRequestWith:signalNumber.
+        ^ self.
     ].
 
     "
      special cases
-	- SIGPWR: power failure - write a crash image and continue
-	- SIGHUP: hang up - write a crash image and exit
+        - SIGPWR: power failure - write a crash image and continue
+        - SIGHUP: hang up - write a crash image and exit
     "
     (signalNumber == OperatingSystem sigPWR) ifTrue:[
-	SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
-	^ self.
+        SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
+        ^ self.
     ].
     (signalNumber == OperatingSystem sigHUP) ifTrue:[
-	SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
-	'Object [info]: exit due to hangup signal.' errorPrintCR.
-	Smalltalk exit:1.
+        SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
+        'Object [info]: exit due to hangup signal.' errorPrintCR.
+        Smalltalk exit:1.
     ].
 
     name := OperatingSystem nameForSignal:signalNumber.
@@ -5412,7 +5411,7 @@
      or:[(screen := Screen current) isNil
      or:[(screen := Screen default) isNil
      or:[screen isOpen not]]]) ifTrue:[
-	^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
+        ^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
     ].
 
     "ungrab - in case it happened in a box/popupview
@@ -5424,117 +5423,114 @@
 
     "there is a screen. use it to bring up a box asking for what to do ..."
     Screen currentScreenQuerySignal answer:screen do:[
-	"
-	 SIGBUS, SIGSEGV and SIGILL do not make sense to ignore (i.e. continue)
-	 since the system will retry the faulty instruction, which leads to
-	 another signal - to avoid frustration, better not offer this option.
-	"
-	fatal := OperatingSystem isFatalSignal:signalNumber.
-	fatal ifTrue:[
-	    (Debugger isNil or:[here isRecursive]) ifTrue:[
-		'Object [hard error]: signal ' errorPrint. signalNumber errorPrintCR.
-		^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
-	    ].
-	    "
-	     a hard signal - go into debugger immediately
-	    "
-	    msg := 'OS-signal: ', name.
-
-	    "/ the IRQ-PC is passed as low-hi, to avoid the need
-	    "/ to allocate a LargeInteger in the VM during signal
-	    "/ time. I know, this is ugly.
-
-	    InterruptPcLow notNil ifTrue:[
-		pc := InterruptPcLow + (InterruptPcHi bitShift:((SmallInteger maxBits + 1) // 2)).
-		pc ~~ 0 ifTrue:[
-		    msg := msg , ' PC=' , (pc printStringRadix:16)
-		].
-	    ].
-	    InterruptAddrLow notNil ifTrue:[
-		addr := InterruptAddrLow + (InterruptAddrHi bitShift:((SmallInteger maxBits + 1) // 2)).
-		addr ~~ 0 ifTrue:[
-		    msg := msg , ' ADDR=' , (addr printStringRadix:16)
-		].
-	    ].
-	    Debugger enter:here withMessage:msg mayProceed:false.
-	    "unreachable"
-	    ^ nil.
-	].
-
-	"if possible, open an option box asking the user what do.
-	 Otherwise, start a debugger"
-	Dialog notNil ifTrue:[
-	    OperatingSystem isOSXlike ifTrue:[
-		titles := #('Save crash image' 'Dump core' 'GDB' 'Exit ST/X' 'Debug').
-		actions := #(save core gdb exit debug).
-	    ] ifFalse:[
-		titles := #('Save crash image' 'Dump core' 'Exit ST/X' 'Debug').
-		actions := #(save core exit debug).
-	    ].
-	    action := nil.
-	    title := 'OS Signal caught (' , name, ')'.
-	    title := (title , '\[in ST-process: ' , Processor activeProcess nameOrId ,']') withCRs.
-
-	    "/ if caught while in the scheduler or event dispatcher,
-	    "/ a modal dialog is not possible ...
-	    "/ (therefore, abort & return does not makes sense)
-
-	    Processor activeProcess isSystemProcess ifFalse:[
-		titles := #('Abort') , titles.
-		actions := #(abort), actions.
-
-		badContext canReturn ifTrue:[
-		    titles := #('Return') , titles.
-		    actions :=  #(return), actions.
-		].
-	    ].
-
-	    fatal ifFalse:[
-		titles := titles, #('Ignore').
-		actions := actions , #(ignore).
-	    ].
-	    action := Dialog choose:title
-			     labels:titles
-			     values:actions
-			     default:(fatal ifTrue:[nil] ifFalse:[#ignore]).
-
-	    "Dialog may fail (if system process), default action is debug"
-	    action isEmptyOrNil ifTrue:[action := #debug].
-	] ifFalse:[
-	    action := #debug.
-	].
-
-	action == #save ifTrue:[
-	    ObjectMemory writeCrashImage
-	].
-	action == #gdb ifTrue:[
-	    |pid|
-
-	    pid := OperatingSystem getProcessId.
-	    OperatingSystem openTerminalWithCommand:('gdb -p %1' bindWith:pid) inBackground:true.
-	    MiniDebugger enter. "/ to stop, so gdb can show where we are
-	    AbortOperationRequest raise.
-	].
-	action == #core ifTrue:[
-	    Smalltalk fatalAbort
-	].
-	action == #exit ifTrue:[
-	    Smalltalk exit:10.
-	].
-	action == #return ifTrue:[
-	    badContext return
-	].
-	action == #abort ifTrue:[
-	    AbortOperationRequest raise.
-	].
-
-	action == #debug ifTrue:[
-	    Debugger isNil ifTrue:[
-		^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
-	    ].
-	    Debugger enter:here withMessage:('OS-Signal ', name) mayProceed:true.
-	].
-	"action == #ignore"
+        "
+         SIGBUS, SIGSEGV and SIGILL do not make sense to ignore (i.e. continue)
+         since the system will retry the faulty instruction, which leads to
+         another signal - to avoid frustration, better not offer this option.
+        "
+        fatal := OperatingSystem isFatalSignal:signalNumber.
+        fatal ifTrue:[
+            (Debugger isNil or:[here isRecursive]) ifTrue:[
+                'Object [hard error]: signal ' errorPrint. signalNumber errorPrintCR.
+                ^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
+            ].
+            "
+             a hard signal - go into debugger immediately
+            "
+            msg := 'OS-signal: ', name.
+
+            "/ the IRQ-PC is passed as low-hi, to avoid the need
+            "/ to allocate a LargeInteger in the VM during signal
+            "/ time. I know, this is ugly.
+
+            InterruptPcLow notNil ifTrue:[
+                pc := InterruptPcLow + (InterruptPcHi bitShift:((SmallInteger maxBits + 1) // 2)).
+                pc ~~ 0 ifTrue:[
+                    msg := msg , ' PC=' , (pc printStringRadix:16)
+                ].
+            ].
+            InterruptAddrLow notNil ifTrue:[
+                addr := InterruptAddrLow + (InterruptAddrHi bitShift:((SmallInteger maxBits + 1) // 2)).
+                addr ~~ 0 ifTrue:[
+                    msg := msg , ' ADDR=' , (addr printStringRadix:16)
+                ].
+            ].
+            Debugger enter:here withMessage:msg mayProceed:false.
+            "unreachable"
+            ^ nil.
+        ].
+
+        "if possible, open an option box asking the user what do.
+         Otherwise, start a debugger"
+        Dialog notNil ifTrue:[
+            OperatingSystem isOSXlike ifTrue:[
+                titles := #('Save crash image' 'Dump core' 'GDB' 'Exit ST/X' 'Debug').
+                actions := #(save core gdb exit debug).
+            ] ifFalse:[
+                titles := #('Save crash image' 'Dump core' 'Exit ST/X' 'Debug').
+                actions := #(save core exit debug).
+            ].
+            action := nil.
+            title := 'OS Signal caught (' , name, ')'.
+            title := (title , '\[in ST-process: ' , Processor activeProcess nameOrId ,']') withCRs.
+
+            "/ if caught while in the scheduler or event dispatcher,
+            "/ a modal dialog is not possible ...
+            "/ (therefore, abort & return does not makes sense)
+
+            Processor activeProcess isSystemProcess ifFalse:[
+                titles := #('Abort') , titles.
+                actions := #(abort), actions.
+
+                badContext canReturn ifTrue:[
+                    titles := #('Return') , titles.
+                    actions :=  #(return), actions.
+                ].
+            ].
+
+            fatal ifFalse:[
+                titles := titles, #('Ignore').
+                actions := actions , #(ignore).
+            ].
+            action := Dialog choose:title
+                             labels:titles
+                             values:actions
+                             default:(fatal ifTrue:[nil] ifFalse:[#ignore]).
+
+            "Dialog may fail (if system process), default action is debug"
+            action isEmptyOrNil ifTrue:[action := #debug].
+        ] ifFalse:[
+            action := #debug.
+        ].
+
+        action == #save ifTrue:[
+            ObjectMemory writeCrashImage
+        ].
+        action == #gdb ifTrue:[
+            OperatingSystem openTerminalWithCommand:('gdb -p %1' bindWith:OperatingSystem getProcessId) inBackground:true.
+            MiniDebugger enter. "/ to stop, so gdb can show where we are
+            AbortOperationRequest raise.
+        ].
+        action == #core ifTrue:[
+            Smalltalk fatalAbort
+        ].
+        action == #exit ifTrue:[
+            Smalltalk exit:10.
+        ].
+        action == #return ifTrue:[
+            badContext return
+        ].
+        action == #abort ifTrue:[
+            AbortOperationRequest raise.
+        ].
+
+        action == #debug ifTrue:[
+            Debugger isNil ifTrue:[
+                ^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
+            ].
+            Debugger enter:here withMessage:('OS-Signal ', name) mayProceed:true.
+        ].
+        "action == #ignore"
     ].
 
     "Modified: / 15-09-2011 / 16:38:14 / cg"
@@ -10451,7 +10447,6 @@
 
 
 
-
 !Object class methodsFor:'documentation'!
 
 version
--- a/PositionableStream.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/PositionableStream.st	Mon Sep 19 08:46:27 2016 +0100
@@ -123,7 +123,6 @@
     "Modified: / 13-07-2006 / 20:36:54 / cg"
 ! !
 
-
 !PositionableStream methodsFor:'Compatibility-Dolphin'!
 
 endChunk
--- a/RecursionLock.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/RecursionLock.st	Mon Sep 19 08:46:27 2016 +0100
@@ -320,7 +320,7 @@
 wait
     "wait, but do not block,
      if this lock is already held by the current process.
-     Answer false, if alread locked, true if lock has been just acquired."
+     Answer false, if already locked, true if lock has been just acquired."
 
     |active wasBlocked|
 
--- a/SequenceableCollection.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/SequenceableCollection.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
@@ -87,13 +89,12 @@
      sz "{ Class: SmallInteger }"|
 
     sz := anArray size.
-    collection := self newWithSize:sz-1.
+    collection := self mutableClass newWithSize:sz-1.
     2 to:sz do:[:idx| collection at:idx-1 put:(anArray at:idx) decodeAsLiteralArray].
     ^ collection
 
     "
-     Array
-        decodeFromLiteralArray:#(Array 1 2 3)
+     Array decodeFromLiteralArray:#(Array 1 2 3)
     "
 !
 
@@ -449,7 +450,6 @@
     ^ self == SequenceableCollection
 ! !
 
-
 !SequenceableCollection methodsFor:'Compatibility-Squeak'!
 
 allButFirst
@@ -762,7 +762,6 @@
     ^ self replaceFrom:start to:stop with:anArray startingAt:repStart
 ! !
 
-
 !SequenceableCollection methodsFor:'accessing'!
 
 after:anObject
@@ -7875,7 +7874,6 @@
     "Created: 14.2.1997 / 16:13:03 / cg"
 ! !
 
-
 !SequenceableCollection methodsFor:'searching'!
 
 detect:aBlock startingAt:startIndex
--- a/StandaloneStartup.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/StandaloneStartup.st	Mon Sep 19 08:46:27 2016 +0100
@@ -420,7 +420,6 @@
 !
 
 redirectStandardStreams
-    Stdout := Stderr.
     Transcript := Stderr.
 !
 
--- a/Stream.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/Stream.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "
  COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
@@ -1987,11 +1985,11 @@
             i := i - 1
         ]
     ] ifFalse:[
-        1 to:vlen do:[:i |
-            self nextPutByte:(v digitAt:i).
+        1 to:vlen do:[:idx |
+            self nextPutByte:(v digitAt:idx).
         ].
         "pad with trailing zeros"
-        vlen+1 to:n do:[:i |
+        vlen+1 to:n do:[:idx |
             self nextPutByte:0.
         ].
     ].
@@ -2027,7 +2025,7 @@
 
     "
         (#[] writeStream
-            nextPutAllUtf16Bytes:'BÄxxx' MSB:true;
+            nextPutAllUtf16Bytes:'BÄxxx' MSB:true;
             nextPutUtf16:(Character codePoint:16r10CCCC) MSB:true;
             contents)
    "
@@ -2445,7 +2443,7 @@
     "
         ((WriteStream on:Unicode16String new)
             nextPutUtf16:$B;
-            nextPutUtf16:$Ä; 
+            nextPutUtf16:$Ä; 
             nextPutUtf16:(Character codePoint:16r10CCCC)
             yourself) contents
     "
@@ -2480,13 +2478,13 @@
     "
         (#[] writeStream
             nextPutUtf16:$B MSB:true;
-            nextPutUtf16:$Ä MSB:true;
+            nextPutUtf16:$Ä MSB:true;
             nextPutUtf16:(Character codePoint:16r10CCCC) MSB:true;
             contents)
 
         (FileStream newTemporary
             nextPutUtf16:$B MSB:false;
-            nextPutUtf16:$Ä MSB:false;
+            nextPutUtf16:$Ä MSB:false;
             nextPutUtf16:(Character codePoint:16r10CCCC) MSB:false;
             reset;
             binary;
@@ -2551,7 +2549,7 @@
     "
       (String streamContents:[:s|
             s nextPutUtf8:$a.
-            s nextPutUtf8:$ü.
+            s nextPutUtf8:$ü.
             s nextPutUtf8: (Character value:16r1fff).
             s nextPutUtf8: (Character value:16rffff).
             s nextPutUtf8: (Character value:16r1ffffff).
--- a/String.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/String.st	Mon Sep 19 08:46:27 2016 +0100
@@ -519,8 +519,6 @@
 ! !
 
 
-
-
 !String class methodsFor:'queries'!
 
 defaultPlatformClass
@@ -541,10 +539,6 @@
 ! !
 
 
-
-
-
-
 !String methodsFor:'accessing'!
 
 at:index
@@ -791,6 +785,55 @@
     "Created: / 10-01-2012 / 17:10:54 / cg"
 !
 
+includes:aCharacter
+    "return true, if the receiver includes aCharacter.
+     - redefined here for speed"
+
+%{  /* NOCONTEXT */
+#ifdef FAST_MEMCHR
+    REGISTER unsigned char *cp;
+    REGISTER unsigned byteValue;
+    int last;
+    OBJ cls;
+
+    if (__isCharacter(aCharacter)) {
+        byteValue = __intVal(__characterVal(aCharacter));
+        if (byteValue <= 0xFF) {            
+            last = __stringSize(self);
+            cp = __stringVal(self);
+            if ((cls = __qClass(self)) != String) {
+                int numInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+
+                cp += numInstBytes;
+                last -= numInstBytes;
+            }
+            cp = (unsigned char *) memchr(cp, byteValue, last);
+            RETURN ( (cp == NULL) ? false : true );
+        }
+        RETURN (false);
+    }
+#endif
+%}.
+    ^ (self indexOf:aCharacter startingAt:1) ~~ 0
+
+    "
+     'hello world' includes:$l
+     'hello world' includes:$W
+
+     |s|
+     s := String new:1024.
+     s atAllPut:$a.
+     s at:512 put:(Character space).
+     Time millisecondsToRun:[
+        1000000 timesRepeat:[ s includes:(Character space) ]
+     ]
+
+     timing (ms):
+            bcc                 OSX(2007 powerbook)
+                                 110    
+    "
+!
+
 includesAny:aCollection
     "return true, if the receiver includes any of the characters in the
      argument, aCollection.
@@ -4177,7 +4220,6 @@
     ^ super reverse
 ! !
 
-
 !String methodsFor:'substring searching'!
 
 indexOfSubCollection:aSubString startingAt:startIndex ifAbsent:exceptionValue caseSensitive:caseSensitive
@@ -4854,7 +4896,6 @@
 
 ! !
 
-
 !String class methodsFor:'documentation'!
 
 version
--- a/UninterpretedBytes.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/UninterpretedBytes.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1993 by Claus Gittinger
               All Rights Reserved
@@ -14,10 +16,10 @@
 "{ NameSpace: Smalltalk }"
 
 ArrayedCollection subclass:#UninterpretedBytes
-        instanceVariableNames:''
-        classVariableNames:'IsBigEndian'
-        poolDictionaries:''
-        category:'Collections-Abstract'
+	instanceVariableNames:''
+	classVariableNames:'IsBigEndian'
+	poolDictionaries:''
+	category:'Collections-Abstract'
 !
 
 !UninterpretedBytes primitiveDefinitions!
@@ -743,7 +745,7 @@
 longLongAt:index
     "return the 8-bytes starting at index as a signed Integer.
      The index is a smalltalk index (i.e. 1-based).
-     The value is retrieved in the machineÄs natural byte order.
+     The value is retrieved in the machineÄs natural byte order.
      This may be worth a primitive."
 
     ^ self signedInt64At:index MSB:IsBigEndian
@@ -4388,13 +4390,17 @@
 !UninterpretedBytes methodsFor:'hashing'!
 
 computeXorHashFrom:startIndex to:endIndex
-    "compute and answer the SmallInteger-Hash of the bytes
+    "compute and answer the 32bit SmallInteger-Hash of the bytes
      from startIndex to endIndex.
      If endindex = 0 or endIndex > size, hash up the size.
 
      NOTE: startIndex and endIndex are only hints about what should be hashed.
            In fact, more bytes could be involved in hashing.
-           SO ARRAYS MUST BE EQUAL TO HASH TO THE SAME VALUE"
+           SO ARRAYS MUST BE EQUAL TO HASH TO THE SAME VALUE.
+
+    Also NOTE:
+        used to return a 32bit hash on 32bit machines and a 64bit integer on 64bit cpus.
+        changed to return the same for all (in case hash values are used for other purposes)."
 
     |w|
 
@@ -4407,8 +4413,13 @@
         if (cp) {
             INT sidx = ((unsigned INT)__smallIntegerVal(startIndex)) - 1;
             INT eidx = ((unsigned INT)__smallIntegerVal(endIndex)) - 1;
+// #           define H_INT INT            
+// #           define _MAX_H_INT _MAX_INT;
+#           define H_INT int            
+#           define _MAX_H_INT 0x3FFFFFFF
+
             unsigned char *ep;
-            unsigned INT hash = 0, hash2 = 0, carry;
+            unsigned H_INT hash = 0, hash2 = 0, carry;
             int i;
 
             if (eidx < 0 || eidx >= sz) eidx = sz - 1;
@@ -4427,37 +4438,39 @@
              * if the same bytes are at different positions
              */
 
-            if ((INT)cp & (sizeof(INT)-1)) {
+            if ((H_INT)cp & (sizeof(H_INT)-1)) {
                 /* not aligned */
 
                 for (i=0; cp <= ep; cp++) {
                     hash2 = (hash2 << 8) | *cp;
-                    if (++i == sizeof(INT)) {
+                    if (++i == sizeof(H_INT)) {
                         hash ^= hash2;
                         i = hash2 = 0;
                     }
                 }
             } else {
                 /* aligned */
-                for (; cp+sizeof(INT) <= ep; cp += sizeof(INT)) {
-                    hash ^= *(unsigned INT *)cp;
+                for (; cp+sizeof(H_INT) <= ep; cp += sizeof(H_INT)) {
+                    hash ^= *(unsigned H_INT *)cp;
                 }
                 for (; cp <= ep; cp++) {
                     hash2 = (hash2 << 8) | *cp;
                 }
             }
 #else
-            for (i=0; cp <= ep-sizeof(INT); cp += sizeof(INT)) {
+            for (i=0; cp <= ep-sizeof(H_INT); cp += sizeof(H_INT)) {
                 hash2 = cp[0];
                 hash2 = (hash2 << 8) | cp[1];
                 hash2 = (hash2 << 8) | cp[2];
                 hash2 = (hash2 << 8) | cp[3];
-#if __POINTER_SIZE__ == 8
-                hash2 = (hash2 << 8) | cp[4];
-                hash2 = (hash2 << 8) | cp[5];
-                hash2 = (hash2 << 8) | cp[6];
-                hash2 = (hash2 << 8) | cp[7];
-#endif
+# if 0
+                if (sizeof(H_INT) == 8) {
+                    hash2 = (hash2 << 8) | cp[4];
+                    hash2 = (hash2 << 8) | cp[5];
+                    hash2 = (hash2 << 8) | cp[6];
+                    hash2 = (hash2 << 8) | cp[7];
+                }
+# endif
                 /*
                  * multiply by large prime to scramble bits and
                  * to avoid a 0 result from
@@ -4472,11 +4485,11 @@
             hash ^= (hash * 31415821) ^ hash2;
 
             /*
-             * fold the high bits not fitting into a SmallInteger
+             * fold the high bits not fitting into a H_INT
              */
-            carry = hash & ~_MAX_INT;
+            carry = hash & ~_MAX_H_INT;
             if (carry) {
-                hash = (hash & _MAX_INT) ^ (carry >> 8);
+                hash = (hash & _MAX_H_INT) ^ (carry >> 8);
             }
 
             RETURN(__mkSmallInteger(hash));
@@ -4492,7 +4505,7 @@
      #[1 2 3 4] computeXorHashFrom:1 to:0.
      #[1 2 3 4 5] computeXorHashFrom:1 to:4.
      #[1 2 3 4 1 2 3 4] computeXorHashFrom:1 to:8.
-     #[1 2 3 4 5 6 7 8] computeXorHashFrom:2 to:8.
+     #[1 2 3 4 5 6 7 8] computeXorHashFrom:2 to:8. 
      #[2 3 4 5 6 7 8] computeXorHashFrom:1 to:7.
      #[2 3 4 5 6 7 8] computeXorHashFrom:1 to:8.
     "
--- a/UnixOperatingSystem.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/UnixOperatingSystem.st	Mon Sep 19 08:46:27 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
@@ -2036,6 +2038,31 @@
     "
 
     "Created: / 13-01-2015 / 09:02:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+openTerminalWithCommand:shellCommand inBackground:inBackground
+    "open a new terminal, which executes a command"
+
+    |cmd|
+
+    cmd := 'xterm -e "%1"' bindWith:shellCommand.
+
+    inBackground ifTrue:[
+        ^ self
+            startProcess:cmd
+            inputFrom:nil
+            outputTo:nil
+            errorTo:nil
+            auxFrom:nil
+            environment:nil
+            inDirectory:nil
+    ] ifFalse:[
+        ^ self executeCommand:cmd
+    ].
+
+    "
+     OSXOperatingSystem openTerminalWithCommand:'ls -l' inBackground:true
+    "
 ! !
 
 !UnixOperatingSystem class methodsFor:'error messages'!
@@ -9764,7 +9791,7 @@
      Codeset := #'utf8-mac'.
      CodesetEncoder := nil.
      OperatingSystem getCodesetEncoder
-     OperatingSystem encodePath:''
+     OperatingSystem encodePath:'äöü'
     "
 
     "Modified: / 23-01-2013 / 10:00:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -13283,9 +13310,15 @@
      self getAddressInfo:'www.exept.de' serviceName:nil
 	    domain:#'AF_INET' type:nil protocol:nil flags:nil
      self getAddressInfo:'www.exept.de' serviceName:nil
+<<<<<<< UnixOperatingSystem.st
+            domain:#'AF_INET6' type:nil protocol:nil flags:nil
+     self getAddressInfo:'www.baden-württemberg.de' serviceName:nil
+            domain:#'AF_INET' type:#stream protocol:nil flags:nil
+=======
 	    domain:#'AF_INET6' type:nil protocol:nil flags:nil
-     self getAddressInfo:'www.baden-wrttemberg.de' serviceName:nil
+     self getAddressInfo:'www.baden-württemberg.de' serviceName:nil
 	    domain:#'AF_INET' type:#stream protocol:nil flags:nil
+>>>>>>> 1.489
     "
 !
 
--- a/Win32OperatingSystem.st	Mon Sep 19 08:39:59 2016 +0100
+++ b/Win32OperatingSystem.st	Mon Sep 19 08:46:27 2016 +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,211 +17,211 @@
 "{ NameSpace: Smalltalk }"
 
 AbstractOperatingSystem subclass:#Win32OperatingSystem
-	instanceVariableNames:''
-	classVariableNames:'Initialized HostName DomainName CurrentDirectory LastOsTimeLow
-		LastOsTimeHi LastTimeInfoIsLocal LastTimeInfo'
-	poolDictionaries:'Win32Constants'
-	category:'OS-Windows'
+        instanceVariableNames:''
+        classVariableNames:'Initialized HostName DomainName CurrentDirectory LastOsTimeLow
+                LastOsTimeHi LastTimeInfoIsLocal LastTimeInfo'
+        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:#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:'PerformanceText CounterIndexTextDictionary
-		HelpIndexTextDictionary'
-	poolDictionaries:''
-	privateIn:Win32OperatingSystem
+        instanceVariableNames:'objectArray perfTime perfFreq perfTime100nSec'
+        classVariableNames:'PerformanceText CounterIndexTextDictionary
+                HelpIndexTextDictionary'
+        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
 !
 
 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!
@@ -585,43 +585,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 */
@@ -643,7 +643,7 @@
     FARPROC entry;
 
     if (*pLibHandle == NULL) {
-	*pLibHandle = LoadLibrary(libraryName);
+        *pLibHandle = LoadLibrary(libraryName);
     }
     entry = GetProcAddress(*pLibHandle, functionName);
     return entry;
@@ -704,11 +704,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
 }
@@ -722,7 +722,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
@@ -742,7 +742,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
@@ -762,7 +762,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
@@ -794,90 +794,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]
 "
 ! !
 
@@ -889,16 +889,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 );
@@ -925,13 +925,13 @@
 
     "/ attention: must be ok to be called twice during startup.
     Initialized isNil ifTrue:[
-	Initialized := true.
-	ObjectMemory addDependent:self.
-	HostName := nil.
-	DomainName := nil.
-	LastErrorNumber := nil.
-	PipeFailed := false.
-	self coInitialize.
+        Initialized := true.
+        ObjectMemory addDependent:self.
+        HostName := nil.
+        DomainName := nil.
+        LastErrorNumber := nil.
+        PipeFailed := false.
+        self coInitialize.
     ].
 
     "Modified: 13.9.1997 / 10:47:32 / cg"
@@ -941,14 +941,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"
@@ -956,7 +956,6 @@
     "Modified: 7.1.1997 / 19:36:11 / stefan"
 ! !
 
-
 !Win32OperatingSystem class methodsFor:'OS signal constants'!
 
 sigABRT
@@ -1543,7 +1542,7 @@
 
     lp = __win32_getLogFilename();
     if (lp) {
-	ret = __MKSTRING(lp);
+        ret = __MKSTRING(lp);
     }
 %}.
     ^ ret
@@ -1561,16 +1560,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 );
     }
 %}
 
@@ -1589,14 +1588,14 @@
 !Win32OperatingSystem class methodsFor:'clipboard'!
 
 clipboardContainsBitmap
-	"Answer whether the clipboard contains a bitmap."
+        "Answer whether the clipboard contains a bitmap."
 
     ^self clipboardContainsFormat: 2 "CfBitmap"
 !
 
 clipboardContainsFormat: aCfConstant
-	"Answer true if the clipboard contains data in
-	 the format described by aCfConstant.  "
+        "Answer true if the clipboard contains data in
+         the format described by aCfConstant.  "
 
     ^self primIsClipboardFormatAvailable: aCfConstant
 !
@@ -1609,7 +1608,7 @@
 !
 
 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].
@@ -1670,7 +1669,7 @@
 !
 
 setBitmapToClipboard: aBitmap
-	"Copy aBitmap to the clipboard."
+        "Copy aBitmap to the clipboard."
     | handle |
     aBitmap isNil ifTrue:[ ^nil ].
     aBitmap id isNil ifTrue:[aBitmap onDevice: Screen current].
@@ -1682,7 +1681,7 @@
     self closeClipboard
 
     "
-	self setBitmapToClipboard: Image fromUser
+        self setBitmapToClipboard: Image fromUser
     "
 !
 
@@ -1702,47 +1701,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
@@ -1757,46 +1756,46 @@
 
     if ((dirPointer != nil)
     && __isExternalAddressLike(dirPointer)) {
-	// __INST(lastErrorNumber) = nil;
-	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, data.nFileSizeLow, 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 {
-	    error = __mkSmallInteger( __threadErrno );
-	}
+        // __INST(lastErrorNumber) = nil;
+        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, data.nFileSizeLow, 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 {
+            error = __mkSmallInteger( __threadErrno );
+        }
     }
 %}.
     (error notNil and:[error ~~ 0]) 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
 ! !
 
 !Win32OperatingSystem class methodsFor:'error messages'!
@@ -1833,872 +1832,872 @@
       int __eno = __unsignedLongIntVal(errNr);
 
       if (__isWIN32Error(__eno)) {
-	switch (__eno & 0xFFFF) {
-	    /*
-	     * WIN32 GetLastError returns
-	     */
-	    case ERROR_INVALID_FUNCTION:
-		sym = @symbol(ERROR_INVALID_FUNCTION);
-		typ = @symbol(illegalOperationSignal);
-		break;
-
-	    case ERROR_BAD_FORMAT:
-		sym = @symbol(ERROR_BAD_FORMAT);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_FILE_NOT_FOUND:
-		sym = @symbol(ERROR_FILE_NOT_FOUND);
-		typ = @symbol(nonexistentSignal);
-		break;
-
-	    case ERROR_PATH_NOT_FOUND:
-		sym = @symbol(ERROR_PATH_NOT_FOUND);
-		typ = @symbol(nonexistentSignal);
-		break;
-
-	    case ERROR_TOO_MANY_OPEN_FILES:
-		sym = @symbol(ERROR_TOO_MANY_OPEN_FILES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    /*
-	     * what a nice errorCode - thats the most "useful" one I ever
-	     * encountered ... (... those stupid micro-softies ...)
-	     */
-	    case ERROR_OPEN_FAILED:
-		sym = @symbol(ERROR_OPEN_FAILED);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_ACCESS_DENIED:
-		sym = @symbol(ERROR_ACCESS_DENIED);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_INVALID_HANDLE:
-		sym = @symbol(ERROR_INVALID_HANDLE);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_NOT_ENOUGH_MEMORY:
-		sym = @symbol(ERROR_NOT_ENOUGH_MEMORY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NO_SYSTEM_RESOURCES:
-		sym = @symbol(ERROR_NO_SYSTEM_RESOURCES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NONPAGED_SYSTEM_RESOURCES:
-		sym = @symbol(ERROR_NONPAGED_SYSTEM_RESOURCES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_PAGED_SYSTEM_RESOURCES:
-		sym = @symbol(ERROR_PAGED_SYSTEM_RESOURCES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_INVALID_ACCESS:
-		sym = @symbol(ERROR_INVALID_ACCESS);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_INVALID_DATA:
-		sym = @symbol(ERROR_INVALID_DATA);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_INVALID_NAME:
-		sym = @symbol(ERROR_INVALID_NAME);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_ARENA_TRASHED:
-		sym = @symbol(ERROR_ARENA_TRASHED);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_OUTOFMEMORY:
-		sym = @symbol(ERROR_OUTOFMEMORY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_BROKEN_PIPE:
-		sym = @symbol(ERROR_BROKEN_PIPE);
-		typ = @symbol(peerFaultSignal);
-		break;
-
-	    case ERROR_GEN_FAILURE:
-		sym = @symbol(ERROR_GEN_FAILURE);
-		break;
-
-	    case ERROR_WRITE_PROTECT:
-		sym = @symbol(ERROR_WRITE_PROTECT);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_WRITE_FAULT:
-		sym = @symbol(ERROR_WRITE_FAULT);
-		typ = @symbol(transferFaultSignal);
-		break;
-
-	    case ERROR_READ_FAULT:
-		sym = @symbol(ERROR_READ_FAULT);
-		typ = @symbol(transferFaultSignal);
-		break;
-
-	    case ERROR_HANDLE_DISK_FULL:
-		sym = @symbol(ERROR_HANDLE_DISK_FULL);
-		typ = @symbol(volumeFullSignal);
-		break;
-
-	    case ERROR_DISK_FULL:
-		sym = @symbol(ERROR_DISK_FULL);
-		typ = @symbol(volumeFullSignal);
-		break;
-
-	    case ERROR_SHARING_VIOLATION:
-		sym = @symbol(ERROR_SHARING_VIOLATION);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_LOCK_VIOLATION:
-		sym = @symbol(ERROR_LOCK_VIOLATION);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_INVALID_PARAMETER:
-		sym = @symbol(ERROR_INVALID_PARAMETER);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_NET_WRITE_FAULT:
-		sym = @symbol(ERROR_NET_WRITE_FAULT);
-		typ = @symbol(transferFaultSignal);
-		break;
-
-	    case ERROR_NOT_SUPPORTED:
-		sym = @symbol(ERROR_NOT_SUPPORTED);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_REM_NOT_LIST:
-		sym = @symbol(ERROR_REM_NOT_LIST);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NETWORK_ACCESS_DENIED:
-		sym = @symbol(ERROR_NETWORK_ACCESS_DENIED);
-		typ = @symbol(noPermissionsSignal);
-		break;
-
-	    case ERROR_DUP_NAME:
-		sym = @symbol(ERROR_DUP_NAME);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_BAD_NETPATH:
-		sym = @symbol(ERROR_BAD_NETPATH);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NETWORK_BUSY:
-		sym = @symbol(ERROR_NETWORK_BUSY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_DRIVE_LOCKED:
-		sym = @symbol(ERROR_DRIVE_LOCKED);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_INVALID_DRIVE:
-		sym = @symbol(ERROR_INVALID_DRIVE);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_WRONG_DISK:
-		sym = @symbol(ERROR_WRONG_DISK);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_CURRENT_DIRECTORY:
-		sym = @symbol(ERROR_CURRENT_DIRECTORY);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    /*
-	     * what a nice errorCode - thats the most "useful" one I ever
-	     * encountered ... (... those stupid micro-softies ...)
-	     */
-	    case ERROR_CANNOT_MAKE:
-		sym = @symbol(ERROR_CANNOT_MAKE);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-
-	    case ERROR_NO_MORE_FILES:
-		sym = @symbol(ERROR_NO_MORE_FILES);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NOT_READY:
-		sym = @symbol(ERROR_NOT_READY);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_NOT_DOS_DISK:
-		sym = @symbol(ERROR_NOT_DOS_DISK);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
-
-	    case ERROR_OUT_OF_PAPER:
-		sym = @symbol(ERROR_OUT_OF_PAPER);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_PRINTQ_FULL:
-		sym = @symbol(ERROR_PRINTQ_FULL);
-		typ = @symbol(noResourcesSignal);
-		break;
-
-	    case ERROR_FILE_EXISTS:
-		sym = @symbol(ERROR_FILE_EXISTS);
-		typ = @symbol(existingReferentSignal);
-		break;
-
-	    default:
-		break;
-	}
+        switch (__eno & 0xFFFF) {
+            /*
+             * WIN32 GetLastError returns
+             */
+            case ERROR_INVALID_FUNCTION:
+                sym = @symbol(ERROR_INVALID_FUNCTION);
+                typ = @symbol(illegalOperationSignal);
+                break;
+
+            case ERROR_BAD_FORMAT:
+                sym = @symbol(ERROR_BAD_FORMAT);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_FILE_NOT_FOUND:
+                sym = @symbol(ERROR_FILE_NOT_FOUND);
+                typ = @symbol(nonexistentSignal);
+                break;
+
+            case ERROR_PATH_NOT_FOUND:
+                sym = @symbol(ERROR_PATH_NOT_FOUND);
+                typ = @symbol(nonexistentSignal);
+                break;
+
+            case ERROR_TOO_MANY_OPEN_FILES:
+                sym = @symbol(ERROR_TOO_MANY_OPEN_FILES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            /*
+             * what a nice errorCode - thats the most "useful" one I ever
+             * encountered ... (... those stupid micro-softies ...)
+             */
+            case ERROR_OPEN_FAILED:
+                sym = @symbol(ERROR_OPEN_FAILED);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_ACCESS_DENIED:
+                sym = @symbol(ERROR_ACCESS_DENIED);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_INVALID_HANDLE:
+                sym = @symbol(ERROR_INVALID_HANDLE);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_NOT_ENOUGH_MEMORY:
+                sym = @symbol(ERROR_NOT_ENOUGH_MEMORY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NO_SYSTEM_RESOURCES:
+                sym = @symbol(ERROR_NO_SYSTEM_RESOURCES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NONPAGED_SYSTEM_RESOURCES:
+                sym = @symbol(ERROR_NONPAGED_SYSTEM_RESOURCES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_PAGED_SYSTEM_RESOURCES:
+                sym = @symbol(ERROR_PAGED_SYSTEM_RESOURCES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_INVALID_ACCESS:
+                sym = @symbol(ERROR_INVALID_ACCESS);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_INVALID_DATA:
+                sym = @symbol(ERROR_INVALID_DATA);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_INVALID_NAME:
+                sym = @symbol(ERROR_INVALID_NAME);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_ARENA_TRASHED:
+                sym = @symbol(ERROR_ARENA_TRASHED);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_OUTOFMEMORY:
+                sym = @symbol(ERROR_OUTOFMEMORY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_BROKEN_PIPE:
+                sym = @symbol(ERROR_BROKEN_PIPE);
+                typ = @symbol(peerFaultSignal);
+                break;
+
+            case ERROR_GEN_FAILURE:
+                sym = @symbol(ERROR_GEN_FAILURE);
+                break;
+
+            case ERROR_WRITE_PROTECT:
+                sym = @symbol(ERROR_WRITE_PROTECT);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_WRITE_FAULT:
+                sym = @symbol(ERROR_WRITE_FAULT);
+                typ = @symbol(transferFaultSignal);
+                break;
+
+            case ERROR_READ_FAULT:
+                sym = @symbol(ERROR_READ_FAULT);
+                typ = @symbol(transferFaultSignal);
+                break;
+
+            case ERROR_HANDLE_DISK_FULL:
+                sym = @symbol(ERROR_HANDLE_DISK_FULL);
+                typ = @symbol(volumeFullSignal);
+                break;
+
+            case ERROR_DISK_FULL:
+                sym = @symbol(ERROR_DISK_FULL);
+                typ = @symbol(volumeFullSignal);
+                break;
+
+            case ERROR_SHARING_VIOLATION:
+                sym = @symbol(ERROR_SHARING_VIOLATION);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_LOCK_VIOLATION:
+                sym = @symbol(ERROR_LOCK_VIOLATION);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_INVALID_PARAMETER:
+                sym = @symbol(ERROR_INVALID_PARAMETER);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_NET_WRITE_FAULT:
+                sym = @symbol(ERROR_NET_WRITE_FAULT);
+                typ = @symbol(transferFaultSignal);
+                break;
+
+            case ERROR_NOT_SUPPORTED:
+                sym = @symbol(ERROR_NOT_SUPPORTED);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_REM_NOT_LIST:
+                sym = @symbol(ERROR_REM_NOT_LIST);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NETWORK_ACCESS_DENIED:
+                sym = @symbol(ERROR_NETWORK_ACCESS_DENIED);
+                typ = @symbol(noPermissionsSignal);
+                break;
+
+            case ERROR_DUP_NAME:
+                sym = @symbol(ERROR_DUP_NAME);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_BAD_NETPATH:
+                sym = @symbol(ERROR_BAD_NETPATH);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NETWORK_BUSY:
+                sym = @symbol(ERROR_NETWORK_BUSY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_DRIVE_LOCKED:
+                sym = @symbol(ERROR_DRIVE_LOCKED);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_INVALID_DRIVE:
+                sym = @symbol(ERROR_INVALID_DRIVE);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_WRONG_DISK:
+                sym = @symbol(ERROR_WRONG_DISK);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_CURRENT_DIRECTORY:
+                sym = @symbol(ERROR_CURRENT_DIRECTORY);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            /*
+             * what a nice errorCode - thats the most "useful" one I ever
+             * encountered ... (... those stupid micro-softies ...)
+             */
+            case ERROR_CANNOT_MAKE:
+                sym = @symbol(ERROR_CANNOT_MAKE);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+
+            case ERROR_NO_MORE_FILES:
+                sym = @symbol(ERROR_NO_MORE_FILES);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NOT_READY:
+                sym = @symbol(ERROR_NOT_READY);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_NOT_DOS_DISK:
+                sym = @symbol(ERROR_NOT_DOS_DISK);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
+
+            case ERROR_OUT_OF_PAPER:
+                sym = @symbol(ERROR_OUT_OF_PAPER);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_PRINTQ_FULL:
+                sym = @symbol(ERROR_PRINTQ_FULL);
+                typ = @symbol(noResourcesSignal);
+                break;
+
+            case ERROR_FILE_EXISTS:
+                sym = @symbol(ERROR_FILE_EXISTS);
+                typ = @symbol(existingReferentSignal);
+                break;
+
+            default:
+                break;
+        }
       } else {
-	switch (__eno) {
-	    /*
-	     * POSIX errnos - these should be defined
-	     */
+        switch (__eno) {
+            /*
+             * POSIX errnos - these should be defined
+             */
 #ifdef EPERM
-	    case EPERM:
-		sym = @symbol(EPERM);
-		typ = @symbol(noPermissionsSignal);
-		break;
+            case EPERM:
+                sym = @symbol(EPERM);
+                typ = @symbol(noPermissionsSignal);
+                break;
 #endif
 #ifdef ENOENT
-	    case ENOENT:
-		sym = @symbol(ENOENT);
-		typ = @symbol(nonexistentSignal);
-		break;
+            case ENOENT:
+                sym = @symbol(ENOENT);
+                typ = @symbol(nonexistentSignal);
+                break;
 #endif
 #ifdef ESRCH
-	    case ESRCH:
-		sym = @symbol(ESRCH);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case ESRCH:
+                sym = @symbol(ESRCH);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef EINTR
-	    case EINTR:
-		sym = @symbol(EINTR);
-		typ = @symbol(transientErrorSignal);
-		break;
+            case EINTR:
+                sym = @symbol(EINTR);
+                typ = @symbol(transientErrorSignal);
+                break;
 #endif
 #ifdef EIO
-	    case EIO:
-		sym = @symbol(EIO);
-		typ = @symbol(transferFaultSignal);
-		break;
+            case EIO:
+                sym = @symbol(EIO);
+                typ = @symbol(transferFaultSignal);
+                break;
 #endif
 #ifdef ENXIO
-	    case ENXIO:
-		sym = @symbol(ENXIO);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case ENXIO:
+                sym = @symbol(ENXIO);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef E2BIG
-	    case E2BIG:
-		sym = @symbol(E2BIG);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case E2BIG:
+                sym = @symbol(E2BIG);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef ENOEXEC
-	    case ENOEXEC:
-		sym = @symbol(ENOEXEC);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOEXEC:
+                sym = @symbol(ENOEXEC);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EBADF
-	    case EBADF:
-		sym = @symbol(EBADF);
-		typ = @symbol(badAccessorSignal);
-		break;
+            case EBADF:
+                sym = @symbol(EBADF);
+                typ = @symbol(badAccessorSignal);
+                break;
 #endif
 #ifdef ECHILD
-	    case ECHILD:
-		sym = @symbol(ECHILD);
-		typ = @symbol(informationSignal);
-		break;
+            case ECHILD:
+                sym = @symbol(ECHILD);
+                typ = @symbol(informationSignal);
+                break;
 #endif
 #if !defined(EWOULDBLOCK) && defined(EAGAIN) && (EWOULDBLOCK != EAGAIN)
-	    case EAGAIN:
-		sym = @symbol(EAGAIN);
-		typ = @symbol(notReadySignal);
-		break;
+            case EAGAIN:
+                sym = @symbol(EAGAIN);
+                typ = @symbol(notReadySignal);
+                break;
 #endif
 #ifdef ENOMEM
-	    case ENOMEM:
-		sym = @symbol(ENOMEM);
-		typ = @symbol(noMemorySignal);
-		break;
+            case ENOMEM:
+                sym = @symbol(ENOMEM);
+                typ = @symbol(noMemorySignal);
+                break;
 #endif
 #ifdef EACCES
-	    case EACCES:
-		sym = @symbol(EACCES);
-		typ = @symbol(noPermissionsSignal);
-		break;
+            case EACCES:
+                sym = @symbol(EACCES);
+                typ = @symbol(noPermissionsSignal);
+                break;
 #endif
 #ifdef EFAULT
-	    case EFAULT:
-		sym = @symbol(EFAULT);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case EFAULT:
+                sym = @symbol(EFAULT);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef EBUSY
-	    case EBUSY:
-		sym = @symbol(EBUSY);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case EBUSY:
+                sym = @symbol(EBUSY);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef EEXIST
-	    case EEXIST:
-		sym = @symbol(EEXIST);
-		typ = @symbol(existingReferentSignal);
-		break;
+            case EEXIST:
+                sym = @symbol(EEXIST);
+                typ = @symbol(existingReferentSignal);
+                break;
 #endif
 #ifdef EXDEV
-	    case EXDEV:
-		sym = @symbol(EXDEV);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case EXDEV:
+                sym = @symbol(EXDEV);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef ENODEV
-	    case ENODEV:
-		sym = @symbol(ENODEV);
-		typ = @symbol(inaccessibleSignal);
-		break;
+            case ENODEV:
+                sym = @symbol(ENODEV);
+                typ = @symbol(inaccessibleSignal);
+                break;
 #endif
 #ifdef ENOTDIR
-	    case ENOTDIR:
-		sym = @symbol(ENOTDIR);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOTDIR:
+                sym = @symbol(ENOTDIR);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EISDIR
-	    case EISDIR:
-		sym = @symbol(EISDIR);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case EISDIR:
+                sym = @symbol(EISDIR);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EINVAL
-	    case EINVAL:
-		sym = @symbol(EINVAL);
-		typ = @symbol(invalidArgumentsSignal);
-		break;
+            case EINVAL:
+                sym = @symbol(EINVAL);
+                typ = @symbol(invalidArgumentsSignal);
+                break;
 #endif
 #ifdef ENFILE
-	    case ENFILE:
-		sym = @symbol(ENFILE);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case ENFILE:
+                sym = @symbol(ENFILE);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef EMFILE
-	    case EMFILE:
-		sym = @symbol(EMFILE);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case EMFILE:
+                sym = @symbol(EMFILE);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ENOTTY
-	    case ENOTTY:
-		sym = @symbol(ENOTTY);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOTTY:
+                sym = @symbol(ENOTTY);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EFBIG
-	    case EFBIG:
-		sym = @symbol(EFBIG);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case EFBIG:
+                sym = @symbol(EFBIG);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ENOSPC
-	    case ENOSPC:
-		sym = @symbol(ENOSPC);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case ENOSPC:
+                sym = @symbol(ENOSPC);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ESPIPE
-	    case ESPIPE:
-		sym = @symbol(ESPIPE);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ESPIPE:
+                sym = @symbol(ESPIPE);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EROFS
-	    case EROFS:
-		sym = @symbol(EROFS);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case EROFS:
+                sym = @symbol(EROFS);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EMLINK
-	    case EMLINK:
-		sym = @symbol(EMLINK);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case EMLINK:
+                sym = @symbol(EMLINK);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef EPIPE
-	    case EPIPE:
-		sym = @symbol(EPIPE);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case EPIPE:
+                sym = @symbol(EPIPE);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef EDOM
-	    case EDOM:
-		sym = @symbol(EDOM);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case EDOM:
+                sym = @symbol(EDOM);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef ERANGE
-	    case ERANGE:
-		sym = @symbol(ERANGE);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case ERANGE:
+                sym = @symbol(ERANGE);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef EDEADLK
 # if EDEADLK != EWOULDBLOCK
-	    case EDEADLK:
-		sym = @symbol(EDEADLK);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case EDEADLK:
+                sym = @symbol(EDEADLK);
+                typ = @symbol(noResourcesSignal);
+                break;
 # endif
 #endif
 #ifdef ENAMETOOLONG
-	    case ENAMETOOLONG:
-		sym = @symbol(ENAMETOOLONG);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case ENAMETOOLONG:
+                sym = @symbol(ENAMETOOLONG);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef ENOLCK
-	    case ENOLCK:
-		sym = @symbol(ENOLCK);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOLCK:
+                sym = @symbol(ENOLCK);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef ENOSYS
-	    case ENOSYS:
-		sym = @symbol(ENOSYS);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOSYS:
+                sym = @symbol(ENOSYS);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
-	    case ENOTEMPTY:
-		sym = @symbol(ENOTEMPTY);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case ENOTEMPTY:
+                sym = @symbol(ENOTEMPTY);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef EILSEQ
-	    case EILSEQ:
-		sym = @symbol(EILSEQ);
-		typ = @symbol(transferFaultSignal);
-		break;
-#endif
-	    /*
-	     * XPG3 errnos - defined on most systems
-	     */
+            case EILSEQ:
+                sym = @symbol(EILSEQ);
+                typ = @symbol(transferFaultSignal);
+                break;
+#endif
+            /*
+             * XPG3 errnos - defined on most systems
+             */
 #ifdef ENOTBLK
-	    case ENOTBLK:
-		sym = @symbol(ENOTBLK);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case ENOTBLK:
+                sym = @symbol(ENOTBLK);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef ETXTBSY
-	    case ETXTBSY:
-		sym = @symbol(ETXTBSY);
-		typ = @symbol(inaccessibleSignal);
-		break;
-#endif
-	    /*
-	     * some others
-	     */
+            case ETXTBSY:
+                sym = @symbol(ETXTBSY);
+                typ = @symbol(inaccessibleSignal);
+                break;
+#endif
+            /*
+             * some others
+             */
 #ifdef EWOULDBLOCK
-	    case EWOULDBLOCK:
-		sym = @symbol(EWOULDBLOCK);
-		typ = @symbol(notReadySignal);
-		break;
+            case EWOULDBLOCK:
+                sym = @symbol(EWOULDBLOCK);
+                typ = @symbol(notReadySignal);
+                break;
 #endif
 #ifdef ENOMSG
-	    case ENOMSG:
-		sym = @symbol(ENOMSG);
-		typ = @symbol(noDataSignal);
-		break;
+            case ENOMSG:
+                sym = @symbol(ENOMSG);
+                typ = @symbol(noDataSignal);
+                break;
 #endif
 #ifdef ELOOP
-	    case ELOOP:
-		sym = @symbol(ELOOP);
-		typ = @symbol(rangeErrorSignal);
-		break;
-#endif
-
-	    /*
-	     * some stream errors
-	     */
+            case ELOOP:
+                sym = @symbol(ELOOP);
+                typ = @symbol(rangeErrorSignal);
+                break;
+#endif
+
+            /*
+             * some stream errors
+             */
 #ifdef ETIME
-	    case ETIME:
-		sym = @symbol(ETIME);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ETIME:
+                sym = @symbol(ETIME);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef ENOSR
-	    case ENOSR:
-		sym = @symbol(ENOSR);
-		typ = @symbol(noResourcesSignal);
-		break;
+            case ENOSR:
+                sym = @symbol(ENOSR);
+                typ = @symbol(noResourcesSignal);
+                break;
 #endif
 #ifdef ENOSTR
-	    case ENOSTR:
-		sym = @symbol(ENOSTR);
-		typ = @symbol(inappropriateReferentSignal);
-		break;
+            case ENOSTR:
+                sym = @symbol(ENOSTR);
+                typ = @symbol(inappropriateReferentSignal);
+                break;
 #endif
 #ifdef ECOMM
-	    case ECOMM:
-		sym = @symbol(ECOMM);
-		typ = @symbol(transferFaultSignal);
-		break;
+            case ECOMM:
+                sym = @symbol(ECOMM);
+                typ = @symbol(transferFaultSignal);
+                break;
 #endif
 #ifdef EPROTO
-	    case EPROTO:
-		sym = @symbol(EPROTO);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
-#endif
-	    /*
-	     * nfs errors
-	     */
+            case EPROTO:
+                sym = @symbol(EPROTO);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
+#endif
+            /*
+             * nfs errors
+             */
 #ifdef ESTALE
-	    case ESTALE:
-		sym = @symbol(ESTALE);
-		typ = @symbol(unavailableReferentSignal);
-		break;
+            case ESTALE:
+                sym = @symbol(ESTALE);
+                typ = @symbol(unavailableReferentSignal);
+                break;
 #endif
 #ifdef EREMOTE
-	    case EREMOTE:
-		sym = @symbol(EREMOTE);
-		typ = @symbol(rangeErrorSignal);
-		break;
-#endif
-	    /*
-	     * some networking errors
-	     */
+            case EREMOTE:
+                sym = @symbol(EREMOTE);
+                typ = @symbol(rangeErrorSignal);
+                break;
+#endif
+            /*
+             * some networking errors
+             */
 #ifdef EINPROGRESS
-	    case EINPROGRESS:
-		sym = @symbol(EINPROGRESS);
-		typ = @symbol(operationStartedSignal);
-		break;
+            case EINPROGRESS:
+                sym = @symbol(EINPROGRESS);
+                typ = @symbol(operationStartedSignal);
+                break;
 #endif
 #ifdef EALREADY
-	    case EALREADY:
-		sym = @symbol(EALREADY);
-		typ = @symbol(operationStartedSignal);
-		break;
+            case EALREADY:
+                sym = @symbol(EALREADY);
+                typ = @symbol(operationStartedSignal);
+                break;
 #endif
 #ifdef ENOTSOCK
-	    case ENOTSOCK:
-		sym = @symbol(ENOTSOCK);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case ENOTSOCK:
+                sym = @symbol(ENOTSOCK);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EDESTADDRREQ
-	    case EDESTADDRREQ:
-		sym = @symbol(EDESTADDRREQ);
-		typ = @symbol(underspecifiedSignal);
-		break;
+            case EDESTADDRREQ:
+                sym = @symbol(EDESTADDRREQ);
+                typ = @symbol(underspecifiedSignal);
+                break;
 #endif
 #ifdef EMSGSIZE
-	    case EMSGSIZE:
-		sym = @symbol(EMSGSIZE);
-		typ = @symbol(rangeErrorSignal);
-		break;
+            case EMSGSIZE:
+                sym = @symbol(EMSGSIZE);
+                typ = @symbol(rangeErrorSignal);
+                break;
 #endif
 #ifdef EPROTOTYPE
-	    case EPROTOTYPE:
-		sym = @symbol(EPROTOTYPE);
-		typ = @symbol(wrongSubtypeForOperationSignal);
-		break;
+            case EPROTOTYPE:
+                sym = @symbol(EPROTOTYPE);
+                typ = @symbol(wrongSubtypeForOperationSignal);
+                break;
 #endif
 #ifdef ENOPROTOOPT
-	    case ENOPROTOOPT:
-		sym = @symbol(ENOPROTOOPT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case ENOPROTOOPT:
+                sym = @symbol(ENOPROTOOPT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EPROTONOSUPPORT
-	    case EPROTONOSUPPORT:
-		sym = @symbol(EPROTONOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case EPROTONOSUPPORT:
+                sym = @symbol(EPROTONOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef ESOCKTNOSUPPORT
-	    case ESOCKTNOSUPPORT:
-		sym = @symbol(ESOCKTNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case ESOCKTNOSUPPORT:
+                sym = @symbol(ESOCKTNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EOPNOTSUPP
-	    case EOPNOTSUPP:
-		sym = @symbol(EOPNOTSUPP);
-		typ = @symbol(inappropriateOperationSignal);
-		break;
+            case EOPNOTSUPP:
+                sym = @symbol(EOPNOTSUPP);
+                typ = @symbol(inappropriateOperationSignal);
+                break;
 #endif
 #ifdef EPFNOSUPPORT
-	    case EPFNOSUPPORT:
-		sym = @symbol(EPFNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case EPFNOSUPPORT:
+                sym = @symbol(EPFNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EAFNOSUPPORT
-	    case EAFNOSUPPORT:
-		sym = @symbol(EAFNOSUPPORT);
-		typ = @symbol(unsupportedOperationSignal);
-		break;
+            case EAFNOSUPPORT:
+                sym = @symbol(EAFNOSUPPORT);
+                typ = @symbol(unsupportedOperationSignal);
+                break;
 #endif
 #ifdef EADDRINUSE
-	    case EADDRINUSE:
-		sym = @symbol(EADDRINUSE);
-		typ = @symbol(existingReferentSignal);
-		break;
+            case EADDRINUSE:
+                sym = @symbol(EADDRINUSE);
+                typ = @symbol(existingReferentSignal);
+                break;
 #endif
 #ifdef WSAEADDRINUSE
-	    case WSAEADDRINUSE:
-		sym = @symbol(WSAEADDRINUSE);
-		typ = @symbol(existingReferentSignal);
-		break;
+            case WSAEADDRINUSE:
+                sym = @symbol(WSAEADDRINUSE);
+                typ = @symbol(existingReferentSignal);
+                break;
 #endif
 
 #ifdef EADDRNOTAVAIL
-	    case EADDRNOTAVAIL:
-		sym = @symbol(EADDRNOTAVAIL);
-		typ = @symbol(noPermissionsSignal);
-		break;
+            case EADDRNOTAVAIL:
+                sym = @symbol(EADDRNOTAVAIL);
+                typ = @symbol(noPermissionsSignal);
+                break;
 #endif
 #ifdef ETIMEDOUT
-	    case ETIMEDOUT:
-		sym = @symbol(ETIMEDOUT);
-		typ = @symbol(peerFaultSignal);
-		break;
+            case ETIMEDOUT:
+                sym = @symbol(ETIMEDOUT);
+                typ = @symbol(peerFaultSignal);
+                break;
 #endif
 #ifdef WSAETIMEDOUT
-	    case WSAETIMEDOUT:
-		sym = @symbol(ETIMEDOUT);
-		typ = @symbol(peerFaultSignal);
-		break;
+            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;
-#endif
-
-	    default:
-		break;
-	}
+            case OLEOBJ_E_NOVERBS:
+                sym = @symbol(OLEOBJ_E_NOVERBS);
+                typ = @symbol(noVerbsSignal);
+                break;
+#endif
+
+            default:
+                break;
+        }
       }
     }
 %}.
     holder := OSErrorHolder new.
     sym isNil ifTrue:[
-	sym := #ERROR_OTHER.
-	errNr notNil ifTrue:[
-	    "keep symbols as symbols"
-	    holder parameter:(errNr isString ifTrue:[errNr] ifFalse:[errNr asString]).
-	].
+        sym := #ERROR_OTHER.
+        errNr notNil ifTrue:[
+            "keep symbols as symbols"
+            holder parameter:(errNr isString ifTrue:[errNr] ifFalse:[errNr asString]).
+        ].
     ].
     holder errorSymbol:sym errorCategory:(typ ? #defaultOsErrorSignal).
     ^ holder
@@ -2729,212 +2728,212 @@
      */
 #ifdef ERROR_INVALID_FUNCTION
     if (sym == @symbol(ERROR_INVALID_FUNCTION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_FUNCTION)) );
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_FUNCTION)) );
     }
 #endif
 #ifdef ERROR_BAD_FORMAT
     if (sym == @symbol(ERROR_BAD_FORMAT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_FORMAT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_FORMAT)));
     }
 #endif
 #ifdef ERROR_FILE_NOT_FOUND
     if (sym == @symbol(ERROR_FILE_NOT_FOUND)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_FILE_NOT_FOUND)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_FILE_NOT_FOUND)));
     }
 #endif
 #ifdef ERROR_PATH_NOT_FOUND
     if (sym == @symbol(ERROR_PATH_NOT_FOUND)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PATH_NOT_FOUND)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PATH_NOT_FOUND)));
     }
 #endif
 #ifdef ERROR_TOO_MANY_OPEN_FILES
     if (sym == @symbol(ERROR_TOO_MANY_OPEN_FILES)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_TOO_MANY_OPEN_FILES)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_TOO_MANY_OPEN_FILES)));
     }
 #endif
 #ifdef ERROR_OPEN_FAILED
     if (sym == @symbol(ERROR_OPEN_FAILED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OPEN_FAILED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OPEN_FAILED)));
     }
 #endif
 #ifdef ERROR_ACCESS_DENIED
     if (sym == @symbol(ERROR_ACCESS_DENIED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ACCESS_DENIED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ACCESS_DENIED)));
     }
 #endif
 #ifdef ERROR_INVALID_HANDLE
     if (sym == @symbol(ERROR_INVALID_HANDLE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_HANDLE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_HANDLE)));
     }
 #endif
 #ifdef ERROR_NOT_ENOUGH_MEMORY
     if (sym == @symbol(ERROR_NOT_ENOUGH_MEMORY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_ENOUGH_MEMORY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_ENOUGH_MEMORY)));
     }
 #endif
 #ifdef ERROR_NO_SYSTEM_RESOURCES
     if (sym == @symbol(ERROR_NO_SYSTEM_RESOURCES)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_SYSTEM_RESOURCES)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_SYSTEM_RESOURCES)));
     }
 #endif
 #ifdef ERROR_INVALID_ACCESS
     if (sym == @symbol(ERROR_INVALID_ACCESS)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_ACCESS)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_ACCESS)));
     }
 #endif
 #ifdef ERROR_INVALID_DATA
     if (sym == @symbol(ERROR_INVALID_DATA)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DATA)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DATA)));
     }
 #endif
 #ifdef ERROR_INVALID_NAME
     if (sym == @symbol(ERROR_INVALID_NAME)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_NAME)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_NAME)));
     }
 #endif
 #ifdef ERROR_ARENA_TRASHED
     if (sym == @symbol(ERROR_ARENA_TRASHED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ARENA_TRASHED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ARENA_TRASHED)));
     }
 #endif
 #ifdef ERROR_OUTOFMEMORY
     if (sym == @symbol(ERROR_OUTOFMEMORY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUTOFMEMORY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUTOFMEMORY)));
     }
 #endif
 #ifdef ERROR_BROKEN_PIPE
     if (sym == @symbol(ERROR_BROKEN_PIPE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BROKEN_PIPE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BROKEN_PIPE)));
     }
 #endif
 #ifdef ERROR_GEN_FAILURE
     if (sym == @symbol(ERROR_GEN_FAILURE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_GEN_FAILURE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_GEN_FAILURE)));
     }
 #endif
 #ifdef ERROR_WRITE_PROTECT
     if (sym == @symbol(ERROR_WRITE_PROTECT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_PROTECT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_PROTECT)));
     }
 #endif
 #ifdef ERROR_WRITE_FAULT
     if (sym == @symbol(ERROR_WRITE_FAULT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_FAULT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRITE_FAULT)));
     }
 #endif
 #ifdef ERROR_READ_FAULT
     if (sym == @symbol(ERROR_READ_FAULT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_READ_FAULT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_READ_FAULT)));
     }
 #endif
 #ifdef ERROR_HANDLE_DISK_FULL
     if (sym == @symbol(ERROR_HANDLE_DISK_FULL)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_HANDLE_DISK_FULL)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_HANDLE_DISK_FULL)));
     }
 #endif
 #ifdef ERROR_DISK_FULL
     if (sym == @symbol(ERROR_DISK_FULL)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DISK_FULL)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DISK_FULL)));
     }
 #endif
 #ifdef ERROR_ERROR_SHARING_VIOLATION
     if (sym == @symbol(ERROR_ERROR_SHARING_VIOLATION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ERROR_SHARING_VIOLATION)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_ERROR_SHARING_VIOLATION)));
     }
 #endif
 #ifdef ERROR_LOCK_VIOLATION
     if (sym == @symbol(ERROR_LOCK_VIOLATION)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_LOCK_VIOLATION)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_LOCK_VIOLATION)));
     }
 #endif
 #ifdef ERROR_INVALID_PARAMETER
     if (sym == @symbol(ERROR_INVALID_PARAMETER)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_PARAMETER)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_PARAMETER)));
     }
 #endif
 #ifdef ERROR_NET_WRITE_FAULT
     if (sym == @symbol(ERROR_NET_WRITE_FAULT)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NET_WRITE_FAULT)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NET_WRITE_FAULT)));
     }
 #endif
 #ifdef ERROR_NOT_SUPPORTED
     if (sym == @symbol(ERROR_NOT_SUPPORTED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_SUPPORTED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_SUPPORTED)));
     }
 #endif
 #ifdef ERROR_REM_NOT_LIST
     if (sym == @symbol(ERROR_REM_NOT_LIST)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_REM_NOT_LIST)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_REM_NOT_LIST)));
     }
 #endif
 #ifdef ERROR_NETWORK_ACCESS_DENIED
     if (sym == @symbol(ERROR_NETWORK_ACCESS_DENIED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_ACCESS_DENIED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_ACCESS_DENIED)));
     }
 #endif
 #ifdef ERROR_DUP_NAME
     if (sym == @symbol(ERROR_DUP_NAME)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DUP_NAME)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DUP_NAME)));
     }
 #endif
 #ifdef ERROR_BAD_NETPATH
     if (sym == @symbol(ERROR_BAD_NETPATH)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_NETPATH)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_BAD_NETPATH)));
     }
 #endif
 #ifdef ERROR_NETWORK_BUSY
     if (sym == @symbol(ERROR_NETWORK_BUSY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_BUSY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NETWORK_BUSY)));
     }
 #endif
 #ifdef ERROR_DRIVE_LOCKED
     if (sym == @symbol(ERROR_DRIVE_LOCKED)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DRIVE_LOCKED)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_DRIVE_LOCKED)));
     }
 #endif
 #ifdef ERROR_INVALID_DRIVE
     if (sym == @symbol(ERROR_INVALID_DRIVE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DRIVE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_INVALID_DRIVE)));
     }
 #endif
 #ifdef ERROR_WRONG_DISK
     if (sym == @symbol(ERROR_WRONG_DISK)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRONG_DISK)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_WRONG_DISK)));
     }
 #endif
 #ifdef ERROR_CURRENT_DIRECTORY
     if (sym == @symbol(ERROR_CURRENT_DIRECTORY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CURRENT_DIRECTORY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CURRENT_DIRECTORY)));
     }
 #endif
 #ifdef ERROR_CANNOT_MAKE
     if (sym == @symbol(ERROR_CANNOT_MAKE)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CANNOT_MAKE)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_CANNOT_MAKE)));
     }
 #endif
 #ifdef ERROR_NO_MORE_FILES
     if (sym == @symbol(ERROR_NO_MORE_FILES)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_MORE_FILES)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NO_MORE_FILES)));
     }
 #endif
 #ifdef ERROR_NOT_READY
     if (sym == @symbol(ERROR_NOT_READY)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_READY)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_READY)));
     }
 #endif
 #ifdef ERROR_NOT_DOS_DISK
     if (sym == @symbol(ERROR_NOT_DOS_DISK)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_DOS_DISK)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_NOT_DOS_DISK)));
     }
 #endif
 #ifdef ERROR_OUT_OF_PAPER
     if (sym == @symbol(ERROR_OUT_OF_PAPER)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUT_OF_PAPER)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_OUT_OF_PAPER)));
     }
 #endif
 #ifdef ERROR_PRINTQ_FULL
     if (sym == @symbol(ERROR_PRINTQ_FULL)) {
-	RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PRINTQ_FULL)));
+        RETURN ( __mkSmallInteger(__WIN32_ERR(ERROR_PRINTQ_FULL)));
     }
 #endif
 
@@ -2943,229 +2942,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
 
@@ -3174,13 +3173,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
 
@@ -3189,19 +3188,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
 
@@ -3210,31 +3209,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
 
@@ -3243,13 +3242,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
 
@@ -3258,162 +3257,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
     /*
@@ -3421,92 +3420,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
 
@@ -3549,8 +3548,8 @@
     |shell args wDir cmdName path hasRedirection|
 
     aCommandString isNonByteCollection ifTrue:[
-	"easy: the caller does not want a shell to be executed"
-	^ Array with:aCommandString first with:(aCommandString asStringWith:' ').
+        "easy: the caller does not want a shell to be executed"
+        ^ Array with:aCommandString first with:(aCommandString asStringWith:' ').
     ].
 
     "/
@@ -3577,56 +3576,56 @@
     hasRedirection := (aCommandString isNil or:[aCommandString includesAny:'<>|']).
 
     hasRedirection ifFalse:[
-	"/ test whether the commandString is an executable;
-	"/ then, no shell is required
-	cmdName := aCommandString withoutSeparators.
-	(cmdName notEmpty and:[(cmdName startsWith:$") not]) ifTrue:[
-	    |index file suffix|
-
-	    index := cmdName indexOfSeparatorStartingAt:1.
-	    index ~~ 0 ifTrue:[
-		args := cmdName copyFrom:(index+1).
-		cmdName := cmdName copyFrom:1 to:(index-1).
-	    ] ifFalse:[
-		args := ''.
-	    ].
-
-	    file   := cmdName asFilename.
-	    suffix := file suffix.
-
-	    suffix isEmptyOrNil ifTrue:[
-		suffix := 'exe'.
-		file := file withSuffix:suffix.
-	    ].
-
-	    (file exists and:[suffix = 'exe' or:[suffix = 'com']]) ifTrue:[
-		"/ is an executable, no shell required
-		path := file fullAlternativePathName.
-		^ Array with:path with:aCommandString.
+        "/ test whether the commandString is an executable;
+        "/ then, no shell is required
+        cmdName := aCommandString withoutSeparators.
+        (cmdName notEmpty and:[(cmdName startsWith:$") not]) ifTrue:[
+            |index file suffix|
+
+            index := cmdName indexOfSeparatorStartingAt:1.
+            index ~~ 0 ifTrue:[
+                args := cmdName copyFrom:(index+1).
+                cmdName := cmdName copyFrom:1 to:(index-1).
+            ] ifFalse:[
+                args := ''.
+            ].
+
+            file   := cmdName asFilename.
+            suffix := file suffix.
+
+            suffix isEmptyOrNil ifTrue:[
+                suffix := 'exe'.
+                file := file withSuffix:suffix.
+            ].
+
+            (file exists and:[suffix = 'exe' or:[suffix = 'com']]) ifTrue:[
+                "/ is an executable, no shell required
+                path := file fullAlternativePathName.
+                ^ Array with:path with:aCommandString.
 "/                ^ Array with:path with:(path, ' ', args).
-	    ].
-	    path := self pathOfCommand:cmdName.
-	    path notNil ifTrue:[
-		"/ is an executable, no shell required
-		^ Array with:path with:aCommandString.
+            ].
+            path := self pathOfCommand:cmdName.
+            path notNil ifTrue:[
+                "/ is an executable, no shell required
+                ^ Array with:path with:aCommandString.
 "/                ^ Array with:path with:(path, ' ', args).
-	    ].
-	].
+            ].
+        ].
     ].
 
     shell := self getEnvironment:'COMSPEC'.
     shell isNil ifTrue:[
-	wDir := self getWindowsSystemDirectory asFilename.
-	shell := #('cmd.exe' 'command.com') detect:[:eachCommand|
-			(wDir / eachCommand) isExecutable
-		    ] ifNone:[
-			self error:'no cmd.exe available'.
-		    ].
-	shell := (wDir / shell) pathName.
+        wDir := self getWindowsSystemDirectory asFilename.
+        shell := #('cmd.exe' 'command.com') detect:[:eachCommand|
+                        (wDir / eachCommand) isExecutable
+                    ] ifNone:[
+                        self error:'no cmd.exe available'.
+                    ].
+        shell := (wDir / shell) pathName.
     ].
 
     aCommandString isEmptyOrNil ifTrue:[
-	^ Array with:shell with:nil
+        ^ Array with:shell with:nil
     ].
 
     ^ Array with:shell with:(' /c "' , aCommandString, '"')
@@ -3645,63 +3644,6 @@
     "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.
-
-     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.
-
-     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
-
-     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."
-
-    |dirPath rslt|
-
-    aDirectory notNil ifTrue:[
-	dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
-	(dirPath endsWith:':') ifTrue:[
-	    dirPath := dirPath , '\'.
-	].
-    ].
-
-    rslt := self
-	primExec:aCommandPath
-	commandLine:argString
-	fileDescriptors:fdArray
-	fork:doFork
-	newPgrp:newPgrp
-	inPath:dirPath
-	createFlags:nil
-	inheritHandles:true.
-
-"/ 'created ' print. cmdLine print. ' -> ' print. rslt printCR.
-    ^ rslt
-
-    "Modified: / 31.1.1998 / 10:54:24 / md"
-    "Modified: / 15.5.1999 / 18:07:51 / cg"
-!
-
-exec:aCommandPath withArguments:argString environment:environment fileDescriptors:fdArray fork:doFork 
-        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.
@@ -3744,6 +3686,70 @@
         inPath:dirPath
         createFlags:nil
         inheritHandles:true
+        showWindow:false.
+
+"/ 'created ' print. cmdLine print. ' -> ' print. rslt printCR.
+    ^ rslt
+
+    "Modified: / 31.1.1998 / 10:54:24 / md"
+    "Modified: / 15.5.1999 / 18:07:51 / cg"
+!
+
+exec:aCommandPath withArguments:argString environment:environment fileDescriptors:fdArray fork:doFork 
+        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.
+
+     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.
+
+     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
+
+     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.
+
+     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."
+
+    |dirPath rslt|
+
+    aDirectory notNil ifTrue:[
+        dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
+        (dirPath endsWith:':') ifTrue:[
+            dirPath := dirPath , '\'.
+        ].
+    ].
+
+    rslt := self
+        primExec:aCommandPath
+        commandLine:argString
+        fileDescriptors:fdArray
+        fork:doFork
+        newPgrp:newPgrp
+        inPath:dirPath
+        createFlags:nil
+        inheritHandles:true
         showWindow:showWindowBooleanOrNil.
 
 "/ 'created ' print. cmdLine print. ' -> ' print. rslt printCR.
@@ -3762,28 +3768,28 @@
     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
-		    console_fprintf(stderr, "getexitcode status = %d\n",status);
-		} else {
-		    console_fprintf(stderr, "getexitcode failed.\n");
-#endif
-		}
-	    }
-	}
-	RETURN ( __mkSmallInteger(status));
+                    console_fprintf(stderr, "getexitcode status = %d\n",status);
+                } else {
+                    console_fprintf(stderr, "getexitcode failed.\n");
+#endif
+                }
+            }
+        }
+        RETURN ( __mkSmallInteger(status));
     }
 %}.
     self primitiveFailed
@@ -3875,26 +3881,16 @@
 
 !
 
-primExec:commandPath commandLine:commandLine fileDescriptors:fdArray fork:doFork newPgrp:newPgrp inPath:dirName createFlags:flagsOrNil inheritHandles:inheritHandles
-    "Internal lowLevel entry for combined fork & exec for WIN32"
-
-    ^ self 
-        primExec:commandPath commandLine:commandLine fileDescriptors:fdArray fork:doFork newPgrp:newPgrp 
-        inPath:dirName createFlags:flagsOrNil inheritHandles:inheritHandles
-        showWindow:nil
-
-    "
-     path-argument not string
-     or argArray not an array/nil
-     or malloc failed
-     or not supported by OS
-    "
-!
-
 primExec:commandPath commandLine:commandLine fileDescriptors:fdArray fork:doFork newPgrp:newPgrp 
         inPath:dirName createFlags:flagsOrNil inheritHandles:inheritHandles
         showWindow:showWindowBooleanOrNil
-    "Internal lowLevel entry for combined fork & exec for WIN32"
+    "Internal lowLevel entry for combined fork & exec for WIN32
+
+     showWindowBooleanOrNil 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."
 
     |handle commandPathUni16 commandLineUni16 dirNameUni16|
 
@@ -4030,11 +4026,10 @@
         lpsiStartInfo.dwXCountChars     = 0;
         lpsiStartInfo.dwYCountChars     = 0;
         lpsiStartInfo.dwFillAttribute   = 0;
-        lpsiStartInfo.dwFlags           = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES /*| STARTF_USEPOSITION*/;
-        if (showWindowBooleanOrNil == nil) {
-            lpsiStartInfo.wShowWindow       = SW_HIDE /* SW_SHOWDEFAULT */;
-        } else {
-            lpsiStartInfo.wShowWindow       = showWindowBooleanOrNil == true ? SW_SHOW : SW_HIDE;
+        lpsiStartInfo.dwFlags           = STARTF_USESTDHANDLES /*| STARTF_USEPOSITION*/;
+        if (showWindowBooleanOrNil != nil) {
+            lpsiStartInfo.dwFlags |= STARTF_USESHOWWINDOW;
+            lpsiStartInfo.wShowWindow = showWindowBooleanOrNil == true ? SW_SHOWNORMAL : SW_HIDE;
         }
         lpsiStartInfo.cbReserved2       = 0;
         lpsiStartInfo.lpReserved2       = NULL;
@@ -4240,7 +4235,7 @@
      If its a directory, an explorer window is opened (see example below).
      Can be used to open a browser or viewer on html-files, pdf-files etc.
      lpDirectory: the pathname string of the directory used for the command,
-		  or nil for the current directory."
+                  or nil for the current directory."
 
     |errorNumber handle|
 
@@ -4251,102 +4246,97 @@
     shExecInfo.cbSize = sizeof(shExecInfo);
 
     if (__isSmallInteger(nShowCmd)) {
-	shExecInfo.nShow = __intVal(nShowCmd);
+        shExecInfo.nShow = __intVal(nShowCmd);
     } else {
-	if (nShowCmd == @symbol(SW_SHOW)) {
-	    shExecInfo.nShow = SW_SHOW;
-	} else if (nShowCmd == @symbol(SW_SHOWNORMAL)) {
-	    shExecInfo.nShow = SW_SHOWNORMAL;
-	} else if (nShowCmd == @symbol(SW_SHOWDEFAULT)) {
-	    shExecInfo.nShow = SW_SHOWDEFAULT;
-	} else if (nShowCmd == @symbol(SW_SHOWMAXIMIZED)) {
-	    shExecInfo.nShow = SW_SHOWMAXIMIZED;
-	} else if (nShowCmd == @symbol(SW_SHOWMINIMIZED)) {
-	    shExecInfo.nShow = SW_SHOWMINIMIZED;
-	} else if (nShowCmd == @symbol(SW_SHOWMINNOACTIVE)) {
-	    shExecInfo.nShow = SW_SHOWMINNOACTIVE;
-	} else if (nShowCmd == @symbol(SW_SHOWNA)) {
-	    shExecInfo.nShow = SW_SHOWNA;
-	} else if (nShowCmd == @symbol(SW_SHOWNOACTIVATE)) {
-	    shExecInfo.nShow = SW_SHOWNOACTIVATE;
-	} else if (nShowCmd == @symbol(SW_MAXIMIZE)) {
-	    shExecInfo.nShow = SW_MAXIMIZE;
-	} else if (nShowCmd == @symbol(SW_RESTORE)) {
-	    shExecInfo.nShow = SW_RESTORE;
-	} else {
-	    goto badArgument;
-	}
+        if (nShowCmd == @symbol(SW_SHOW)) {
+            shExecInfo.nShow = SW_SHOW;
+        } else if (nShowCmd == @symbol(SW_SHOWNORMAL)) {
+            shExecInfo.nShow = SW_SHOWNORMAL;
+        } else if (nShowCmd == @symbol(SW_SHOWDEFAULT)) {
+            shExecInfo.nShow = SW_SHOWDEFAULT;
+        } else if (nShowCmd == @symbol(SW_SHOWMAXIMIZED)) {
+            shExecInfo.nShow = SW_SHOWMAXIMIZED;
+        } else if (nShowCmd == @symbol(SW_SHOWMINIMIZED)) {
+            shExecInfo.nShow = SW_SHOWMINIMIZED;
+        } else if (nShowCmd == @symbol(SW_SHOWMINNOACTIVE)) {
+            shExecInfo.nShow = SW_SHOWMINNOACTIVE;
+        } else if (nShowCmd == @symbol(SW_SHOWNA)) {
+            shExecInfo.nShow = SW_SHOWNA;
+        } else if (nShowCmd == @symbol(SW_SHOWNOACTIVATE)) {
+            shExecInfo.nShow = SW_SHOWNOACTIVATE;
+        } else if (nShowCmd == @symbol(SW_MAXIMIZE)) {
+            shExecInfo.nShow = SW_MAXIMIZE;
+        } else if (nShowCmd == @symbol(SW_RESTORE)) {
+            shExecInfo.nShow = SW_RESTORE;
+        } else {
+            goto badArgument;
+        }
     }
     if (((lpOperationArg == nil) || __isStringLike(lpOperationArg))
      && ((lpFileArg == nil) || __isStringLike(lpFileArg))
      && ((lpParametersArg == nil) || __isStringLike(lpParametersArg))
      && ((lpDirectoryArg == nil) || __isStringLike(lpDirectoryArg))
     ) {
-	// hProcess member receives the process handle
-	shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
-
-	shExecInfo.hwnd = 0;
-	shExecInfo.lpVerb        = (lpOperationArg != nil) ? __stringVal(lpOperationArg) : NULL;
-	shExecInfo.lpFile        = (lpFileArg != nil) ? __stringVal(lpFileArg) : NULL;
-	shExecInfo.lpParameters  = (lpParametersArg != nil) ? __stringVal(lpParametersArg) : NULL;
-	shExecInfo.lpDirectory   = (lpDirectoryArg != nil) ? __stringVal(lpDirectoryArg) : NULL;
-	if (hwndArg != nil) {
-	    if (__isExternalAddressLike(hwndArg)) {
-		shExecInfo.hwnd = _HANDLEVal(hwndArg);
-	    } else
-		goto badArgument;
-	}
-	if (ShellExecuteEx(&shExecInfo)) {
-	    if (shExecInfo.hProcess) {
-		DWORD_PTR processAffinityMask, systemAffinityMask;
-		/*
-		 * Set the affinity mask
-		 * to any processor, and resume the processes main thread.
-		 * (librun/process.s limited the affinity to a single processor).
-		 */
-		GetProcessAffinityMask(shExecInfo.hProcess, &processAffinityMask, &systemAffinityMask);
-		SetProcessAffinityMask(shExecInfo.hProcess, systemAffinityMask);
-
-		// new (does not work, yet):
-		// __externalAddressVal(handle) = shExecInfo.hProcess;
-		// RETURN (handle);
-
-		// old:
-		CloseHandle(shExecInfo.hProcess);
-		RETURN (self); /* OK */
-	    } else {
-		RETURN (self); /* OK */
-	    }
-	} else {
-	    /* error */
-	    errorNumber = __mkSmallInteger(__WIN32_ERR(GetLastError()));
-	}
+        // hProcess member receives the process handle
+        shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
+
+        shExecInfo.hwnd = 0;
+        shExecInfo.lpVerb        = (lpOperationArg != nil) ? __stringVal(lpOperationArg) : NULL;
+        shExecInfo.lpFile        = (lpFileArg != nil) ? __stringVal(lpFileArg) : NULL;
+        shExecInfo.lpParameters  = (lpParametersArg != nil) ? __stringVal(lpParametersArg) : NULL;
+        shExecInfo.lpDirectory   = (lpDirectoryArg != nil) ? __stringVal(lpDirectoryArg) : NULL;
+        if (hwndArg != nil) {
+            if (__isExternalAddressLike(hwndArg)) {
+                shExecInfo.hwnd = _HANDLEVal(hwndArg);
+            } else
+                goto badArgument;
+        }
+        if (ShellExecuteEx(&shExecInfo)) {
+            if (shExecInfo.hProcess) {
+                DWORD_PTR processAffinityMask, systemAffinityMask;
+                /*
+                 * Set the affinity mask
+                 * to any processor, and resume the processes main thread.
+                 * (librun/process.s limited the affinity to a single processor).
+                 */
+                GetProcessAffinityMask(shExecInfo.hProcess, &processAffinityMask, &systemAffinityMask);
+                SetProcessAffinityMask(shExecInfo.hProcess, systemAffinityMask);
+
+                __externalAddressVal(handle) = shExecInfo.hProcess;
+                RETURN (handle);
+            } else {
+                RETURN (nil); /* OK */
+            }
+        } else {
+            /* error */
+            errorNumber = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+        }
     }
 badArgument: ;
 %}.
     errorNumber isNil ifTrue:[
-	self primitiveFailed:'invalid argument(s)'.
+        self primitiveFailed:'invalid argument(s)'.
     ] ifFalse:[
-	(OperatingSystem errorHolderForNumber:errorNumber)
-	    parameter:lpFileArg;
-	    reportError
+        (OperatingSystem errorHolderForNumber:errorNumber)
+            parameter:lpFileArg;
+            reportError
     ].
 
     "
      self
-	shellExecute:nil
-	lpOperation:'open'
-	lpFile:(Filename currentDirectory pathName)
-	lpParameters:nil
-	lpDirectory:nil
-	nShowCmd:#SW_SHOWNORMAL
+        shellExecute:nil
+        lpOperation:'open'
+        lpFile:(Filename currentDirectory pathName)
+        lpParameters:nil
+        lpDirectory:nil
+        nShowCmd:#SW_SHOWNORMAL
     self
-	shellExecute:nil
-	lpOperation:'explore'
-	lpFile:(Filename currentDirectory pathName)
-	lpParameters:nil
-	lpDirectory:nil
-	nShowCmd:#SW_SHOWNORMAL
+        shellExecute:nil
+        lpOperation:'explore'
+        lpFile:(Filename currentDirectory pathName)
+        lpParameters:nil
+        lpDirectory:nil
+        nShowCmd:#SW_SHOWNORMAL
     "
 !
 
@@ -4603,12 +4593,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);
     }
@@ -4635,35 +4625,35 @@
     sa.bInheritHandle = FALSE;
 
     if (__isStringLike(aPathName)) {
-	int ret;
-
-	ret = CreateDirectoryA(__stringVal(aPathName), &sa);
-	if (ret != TRUE) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        int ret;
+
+        ret = CreateDirectoryA(__stringVal(aPathName), &sa);
+        if (ret != TRUE) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
     if (__isUnicode16String(aPathName)) {
-	int ret;
-	wchar_t _wPathName[MAXPATHLEN+1];
-	int i, l;
-
-	l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _wPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_wPathName[i] = 0;
-
-	ret = CreateDirectoryW(_wPathName, &sa);
-	if (ret != TRUE) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        int ret;
+        wchar_t _wPathName[MAXPATHLEN+1];
+        int i, l;
+
+        l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _wPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _wPathName[i] = 0;
+
+        ret = CreateDirectoryW(_wPathName, &sa);
+        if (ret != TRUE) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
 %}.
     ^ self primitiveFailed
@@ -4728,32 +4718,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);
@@ -4761,18 +4751,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);  */
@@ -4798,10 +4788,10 @@
      Return true if successful, false if not."
 
     (oldPath isString not or:[newPath isString not]) ifTrue:[
-	"/
-	"/ bad argument(s) given
-	"/
-	^ self primitiveFailed
+        "/
+        "/ bad argument(s) given
+        "/
+        ^ self primitiveFailed
     ].
 
     ^ self createHardLinkFrom:oldPath to:newPath
@@ -4833,24 +4823,24 @@
     DWORD access, share, create, attr;
 
     if (__isStringLike(pathName)) {
-	name = __stringVal(pathName);
+        name = __stringVal(pathName);
     } else if (__isUnicode16String(pathName)) {
-	l = __unicode16StringSize(pathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _wPathName[i] = __unicode16StringVal(pathName)[i];
-	}
-	_wPathName[i] = 0;
+        l = __unicode16StringSize(pathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _wPathName[i] = __unicode16StringVal(pathName)[i];
+        }
+        _wPathName[i] = 0;
     } 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);
@@ -4861,77 +4851,77 @@
     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
     console_fprintf(stderr, "name:<%s> access:%x share:%x create:%x attr:%x\n",
-		name, access, share, create, attr);
+                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
     ].
 !
 
@@ -4977,53 +4967,53 @@
 
     if (__isStringLike(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    char _aPathName[MAXPATHLEN];
-
-	    strncpy(_aPathName, __stringVal(fullPathName), 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( "RemoveDirectoryA", RemoveDirectoryA, _aPathName));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	}
-#else
-	ret = RemoveDirectoryA((char *)__stringVal(fullPathName));
-	__threadErrno = __WIN32_ERR(GetLastError());
-#endif
-	if (ret != TRUE) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        {
+            char _aPathName[MAXPATHLEN];
+
+            strncpy(_aPathName, __stringVal(fullPathName), 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( "RemoveDirectoryA", RemoveDirectoryA, _aPathName));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+        }
+#else
+        ret = RemoveDirectoryA((char *)__stringVal(fullPathName));
+        __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+        if (ret != TRUE) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
     if (__isUnicode16String(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    wchar_t _wPathName[MAXPATHLEN+1];
-	    int i, l;
-
-	    l = __unicode16StringSize(fullPathName);
-	    if (l > MAXPATHLEN) l = MAXPATHLEN;
-	    for (i=0; i<l; i++) {
-		_wPathName[i] = __unicode16StringVal(fullPathName)[i];
-	    }
-	    _wPathName[i] = 0;
-	    do {
-		__threadErrno = 0;
-		// do not cast to INT - will loose sign bit then!
-		ret = (int)(STX_API_NOINT_CALL1( "RemoveDirectoryW", RemoveDirectoryW, _wPathName));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	}
-#else
-	ret = RemoveDirectoryW((char *)__stringVal(fullPathName));
-	__threadErrno = __WIN32_ERR(GetLastError());
-#endif
-	if (ret != TRUE) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        {
+            wchar_t _wPathName[MAXPATHLEN+1];
+            int i, l;
+
+            l = __unicode16StringSize(fullPathName);
+            if (l > MAXPATHLEN) l = MAXPATHLEN;
+            for (i=0; i<l; i++) {
+                _wPathName[i] = __unicode16StringVal(fullPathName)[i];
+            }
+            _wPathName[i] = 0;
+            do {
+                __threadErrno = 0;
+                // do not cast to INT - will loose sign bit then!
+                ret = (int)(STX_API_NOINT_CALL1( "RemoveDirectoryW", RemoveDirectoryW, _wPathName));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+        }
+#else
+        ret = RemoveDirectoryW((char *)__stringVal(fullPathName));
+        __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+        if (ret != TRUE) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
 %}.
     "/
@@ -5047,53 +5037,53 @@
 
     if (__isStringLike(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    char _aPathName[MAXPATHLEN];
-
-	    strncpy(_aPathName, __stringVal(fullPathName), 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( "DeleteFileA", DeleteFileA, _aPathName));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	}
-#else
-	ret = DeleteFileA((char *)__stringVal(fullPathName));
-	__threadErrno = __WIN32_ERR(GetLastError());
-#endif
-	if (ret != TRUE) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        {
+            char _aPathName[MAXPATHLEN];
+
+            strncpy(_aPathName, __stringVal(fullPathName), 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( "DeleteFileA", DeleteFileA, _aPathName));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+        }
+#else
+        ret = DeleteFileA((char *)__stringVal(fullPathName));
+        __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+        if (ret != TRUE) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
     if (__isUnicode16String(fullPathName)) {
 #ifdef DO_WRAP_CALLS
-	{
-	    wchar_t _wPathName[MAXPATHLEN+1];
-	    int i, l;
-
-	    l = __unicode16StringSize(fullPathName);
-	    if (l > MAXPATHLEN) l = MAXPATHLEN;
-	    for (i=0; i<l; i++) {
-		_wPathName[i] = __unicode16StringVal(fullPathName)[i];
-	    }
-	    _wPathName[i] = 0;
-	    do {
-		__threadErrno = 0;
-		// do not cast to INT - will loose sign bit then!
-		ret = (int)(STX_API_NOINT_CALL1( "DeleteFileW", DeleteFileW, _wPathName));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	}
-#else
-	ret = DeleteFileW((char *)__stringVal(fullPathName));
-	__threadErrno = __WIN32_ERR(GetLastError());
-#endif
-	if (ret != TRUE) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        {
+            wchar_t _wPathName[MAXPATHLEN+1];
+            int i, l;
+
+            l = __unicode16StringSize(fullPathName);
+            if (l > MAXPATHLEN) l = MAXPATHLEN;
+            for (i=0; i<l; i++) {
+                _wPathName[i] = __unicode16StringVal(fullPathName)[i];
+            }
+            _wPathName[i] = 0;
+            do {
+                __threadErrno = 0;
+                // do not cast to INT - will loose sign bit then!
+                ret = (int)(STX_API_NOINT_CALL1( "DeleteFileW", DeleteFileW, _wPathName));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+        }
+#else
+        ret = DeleteFileW((char *)__stringVal(fullPathName));
+        __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+        if (ret != TRUE) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
 
 %}.
@@ -5114,33 +5104,33 @@
 
     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 {
-	    __threadErrno = 0;
-	    // do not cast to INT - will loose sign bit then!
-	    ret = STX_C_NOINT_CALL2( "rename", rename, _oldPath, _newPath);
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    __threadErrno = 0;
-	    ret = rename((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-	__END_INTERRUPTABLE__
-
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
-#endif
-	if (ret < 0) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        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 {
+            __threadErrno = 0;
+            // do not cast to INT - will loose sign bit then!
+            ret = STX_C_NOINT_CALL2( "rename", rename, _oldPath, _newPath);
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            __threadErrno = 0;
+            ret = rename((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+        __END_INTERRUPTABLE__
+
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
+#endif
+        if (ret < 0) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
 %}.
     ^ self primitiveFailed
@@ -5199,43 +5189,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) );
     }
 
 %}.
@@ -5254,7 +5244,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
     "
 
@@ -5264,32 +5254,32 @@
 
     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());
-	}
-#endif
-
-	if (ret < 0) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN ( nil );
-	}
-	RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
+        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
+
+        if (ret < 0) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN ( nil );
+        }
+        RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
     }
 %}.
    ^ self primitiveFailed
@@ -5309,7 +5299,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
     "
 
@@ -5319,39 +5309,39 @@
 
     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());
-	}
-#endif
-
-	if (ret < 0) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN ( nil );
-	}
-	RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
+        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
+
+        if (ret < 0) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN ( nil );
+        }
+        RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
     }
 %}.
    ^ 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)
    "
@@ -5368,31 +5358,31 @@
 
     if (__isStringLike(aPathName) && __isSmallInteger(modeBits)) {
 #ifdef DO_WRAP_CALLS
-	int chmod();
-	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( "chmod", chmod, _aPathName, __intVal(modeBits));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	__BEGIN_INTERRUPTABLE__
-	do {
-	    __threadErrno = 0;
-	    ret = chmod((char *)__stringVal(aPathName), __intVal(modeBits));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-	__END_INTERRUPTABLE__
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
-#endif
-	if (ret < 0) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN ( false );
-	}
-	RETURN ( true );
+        int chmod();
+        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( "chmod", chmod, _aPathName, __intVal(modeBits));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        __BEGIN_INTERRUPTABLE__
+        do {
+            __threadErrno = 0;
+            ret = chmod((char *)__stringVal(aPathName), __intVal(modeBits));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+        __END_INTERRUPTABLE__
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
+#endif
+        if (ret < 0) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN ( false );
+        }
+        RETURN ( true );
     }
 %}.
     ^ self primitiveFailed
@@ -5424,14 +5414,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 ].
@@ -5454,14 +5444,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 ].
@@ -5487,7 +5477,7 @@
 
     attr := self primGetFileAttributes:aPathName.
     (attr bitTest:FILE_ATTRIBUTE_HIDDEN ) ifTrue:[
-	^ self primSetFileAttributes:aPathName to:(attr bitClear:2).
+        ^ self primSetFileAttributes:aPathName to:(attr bitClear:2).
     ].
     ^ true
 
@@ -5503,27 +5493,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.
     ].
 
     "
@@ -5532,14 +5522,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:'.\..'
@@ -5571,7 +5561,7 @@
 
     ret = GetCurrentDirectoryW(MAXPATHLEN, _aPathName);
     if (ret == 0) {
-	__threadErrno = __WIN32_ERR(GetLastError());
+        __threadErrno = __WIN32_ERR(GetLastError());
     }
     RETURN(__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
 %}.
@@ -5583,8 +5573,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
@@ -5592,11 +5582,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;
@@ -5604,62 +5594,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.
@@ -5669,14 +5659,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
 
@@ -5718,13 +5708,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."
 
 %{
@@ -5732,21 +5722,21 @@
 
     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( "GetDriveType", GetDriveType, _aPathName));
-	} while ((ret < 0) && (__threadErrno == EINTR));
-#else
-	ret = GetDriveType((char *) __stringVal(aPathName));
-	if (ret < 0) {
-	    __threadErrno = __WIN32_ERR(GetLastError());
-	}
-#endif
-	RETURN (__MKSMALLINT(ret));
+        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( "GetDriveType", GetDriveType, _aPathName));
+        } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+        ret = GetDriveType((char *) __stringVal(aPathName));
+        if (ret < 0) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
+#endif
+        RETURN (__MKSMALLINT(ret));
     }
 %}.
     ^ self primitiveFailed
@@ -5769,24 +5759,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: ;
@@ -5804,38 +5794,38 @@
     wchar_t _aPathName[MAXPATHLEN+1];
 
     if (__isStringLike(aPathName)) {
-	int i;
-	INT l = __stringSize(aPathName);
-
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __stringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        int i;
+        INT l = __stringSize(aPathName);
+
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __stringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
     } else if (__isUnicode16String(aPathName)) {
-	int i;
-
-	INT l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        int i;
+
+        INT l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
     } else
-	goto badArgument;
+        goto badArgument;
 
 #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));
+         __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());
+         __threadErrno = __WIN32_ERR(GetLastError());
      }
 #endif
      RETURN (__mkStringOrU16String_maxlen(_aPathName, MAXPATHLEN));
@@ -5864,9 +5854,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
 
@@ -5881,36 +5871,36 @@
     wchar_t _aPathName[MAXPATHLEN+1];
 
     if (__isStringLike(aPathName)) {
-	int i;
-	int l = __stringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __stringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        int i;
+        int l = __stringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __stringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
     } else if (__isUnicode16String(aPathName)) {
-	int i;
-	int l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        int i;
+        int l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
     } else
-	goto badArgument;
+        goto badArgument;
 
 #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));
+         __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());
+         __threadErrno = __WIN32_ERR(GetLastError());
      }
 #endif
      RETURN ( __MKU16STRING(_aPathName));
@@ -5943,16 +5933,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.
@@ -5966,10 +5956,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
 
@@ -5994,48 +5984,48 @@
 
     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 == -1) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesA((char *) __stringVal(aPathName));
-	if (ret == -1) {
-	    __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 == -1) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesA((char *) __stringVal(aPathName));
+        if (ret == -1) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else if (__isUnicode16String(aPathName)) {
-	wchar_t _wPathName[MAXPATHLEN+1];
-	int i, l;
-
-	l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _wPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_wPathName[i] = 0;
+        wchar_t _wPathName[MAXPATHLEN+1];
+        int i, l;
+
+        l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _wPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _wPathName[i] = 0;
 #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 == -1) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesW(_wPathName);
-	if (ret == -1) {
-	    __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 == -1) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesW(_wPathName);
+        if (ret == -1) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else
-	goto err;
+        goto err;
 
     if (ret < 0) {
-	@global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	RETURN ( false );
+        @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+        RETURN ( false );
     }
     RETURN ( (ret & FILE_ATTRIBUTE_DIRECTORY) ? true : false);
 err:;
@@ -6043,7 +6033,7 @@
     ^ self primitiveFailed
 
     "an alternative implementation would be:
-	^ (self infoOf:aPathName) type == #directory
+        ^ (self infoOf:aPathName) type == #directory
     "
     "
      self isDirectory:'.'
@@ -6087,67 +6077,67 @@
 
 %{
     if (__isStringLike(aPathName)) {
-	int ret;
-
-	/*
-	 * under windows, all files are readable ...
-	 * so, only check for the files existence here.
-	 */
+        int ret;
+
+        /*
+         * under windows, all files are readable ...
+         * so, only check for the files existence here.
+         */
 #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) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        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) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
 
     if (__isUnicode16String(aPathName)) {
-	int ret;
-
-	/*
-	 * under windows, all files are readable ...
-	 * so, only check for the files existence here.
-	 */
-	wchar_t _wPathName[MAXPATHLEN+1];
-	int i, l;
-
-	l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _wPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_wPathName[i] = 0;
+        int ret;
+
+        /*
+         * under windows, all files are readable ...
+         * so, only check for the files existence here.
+         */
+        wchar_t _wPathName[MAXPATHLEN+1];
+        int i, l;
+
+        l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _wPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _wPathName[i] = 0;
 #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) {
-	    @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	    RETURN (false);
-	}
-	RETURN (true);
+        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) {
+            @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+            RETURN (false);
+        }
+        RETURN (true);
     }
 %}.
     ^ self primitiveFailed
@@ -6182,58 +6172,58 @@
 
     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 == -1) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesA((char *) __stringVal(aPathName));
-	if (ret == -1) {
-	    __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 == -1) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesA((char *) __stringVal(aPathName));
+        if (ret == -1) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else  if (__isUnicode16String(aPathName)) {
-	wchar_t _wPathName[MAXPATHLEN+1];
-	int i, l;
-
-	l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _wPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_wPathName[i] = 0;
+        wchar_t _wPathName[MAXPATHLEN+1];
+        int i, l;
+
+        l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _wPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _wPathName[i] = 0;
 #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 == -1) && (__threadErrno == EINTR));
-#else
-	ret = GetFileAttributesW(_wPathName);
-	if (ret == -1) {
-	    __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 == -1) && (__threadErrno == EINTR));
+#else
+        ret = GetFileAttributesW(_wPathName);
+        if (ret == -1) {
+            __threadErrno = __WIN32_ERR(GetLastError());
+        }
 #endif
     } else
-	goto err;
+        goto err;
 
     if (ret == -1) {
-	@global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
-	RETURN ( false );
+        @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+        RETURN ( false );
     }
     RETURN (true);
 
 err:;
 %}.
     aPathName isString ifTrue:[
-	aPathName isUnicode32String ifTrue:[
-	    "/ WIN32 only support 16 bit (wide) strings
-	    ^ self isValidPath:aPathName asUnicode16String
-	]
+        aPathName isUnicode32String ifTrue:[
+            "/ WIN32 only support 16 bit (wide) strings
+            ^ self isValidPath:aPathName asUnicode16String
+        ]
     ].
     ^ self primitiveFailed
 
@@ -6252,8 +6242,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
 
@@ -6268,16 +6258,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.
@@ -6304,46 +6294,46 @@
     wchar_t _aPathName[MAXPATHLEN+1];
 
     if (__isStringLike(aPathName)) {
-	int i;
-	int l = __stringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __stringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        int i;
+        int l = __stringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __stringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
     } else if (__isUnicode16String(aPathName)) {
-	int i;
-	int l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        int i;
+        int l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
     } else
-	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, _aPathName, 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, _aPathName, GetFileExInfoStandard, &fileAttributeData));
+        } while (!result && (__threadErrno == EINTR));
     }
 #else
     result = GetFileAttributesExW(_aPathName, 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, fileAttributeData.nFileSizeLow, fileAttributeData.nFileSizeHigh);
+        id = __mkSmallInteger(0);   /* could get it by opening ... */
+        size = __MKLARGEINT64(1, fileAttributeData.nFileSizeLow, fileAttributeData.nFileSizeHigh);
 
 //        if (fileAttributeData.cFileName[0] != '\0') {
 //            bcopy(fileAttributeData.cFileName, fileNameBuffer, MAXPATHLEN*sizeof(wchar_t));
@@ -6357,79 +6347,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
 
@@ -6450,8 +6440,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'
@@ -6484,20 +6474,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.
 
@@ -6526,54 +6516,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];
-	int i, l;
-
-	l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _wPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_wPathName[i] = 0;
+        wchar_t _wPathName[MAXPATHLEN+1];
+        int i, l;
+
+        l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _wPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _wPathName[i] = 0;
 #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);
     }
 %}.
     ^ self primitiveFailed
@@ -6604,92 +6594,92 @@
 
 %{
     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 _aPathName[MAXPATHLEN+1];
-	int i, l;
-
-	l = __unicode16StringSize(aPathName);
-	if (l > MAXPATHLEN) l = MAXPATHLEN;
-	for (i=0; i<l; i++) {
-	    _aPathName[i] = __unicode16StringVal(aPathName)[i];
-	}
-	_aPathName[i] = 0;
+        wchar_t nameBuffer[MAXPATHLEN + 1];
+        wchar_t nameBuffer2[MAXPATHLEN + 1];
+        wchar_t *returnedName = NULL;
+        int rslt;
+        wchar_t _aPathName[MAXPATHLEN+1];
+        int i, l;
+
+        l = __unicode16StringSize(aPathName);
+        if (l > MAXPATHLEN) l = MAXPATHLEN;
+        for (i=0; i<l; i++) {
+            _aPathName[i] = __unicode16StringVal(aPathName)[i];
+        }
+        _aPathName[i] = 0;
 
 #ifdef DO_WRAP_CALLS
-	do {
-	    __threadErrno = 0;
-	    rslt = (int)(STX_API_NOINT_CALL4( "GetFullPathNameW", GetFullPathNameW, _aPathName, MAXPATHLEN, nameBuffer, NULL));
-	} while ((rslt < 0) && (__threadErrno == EINTR));
-#else
-	rslt = GetFullPathNameW(_aPathName, MAXPATHLEN, nameBuffer, NULL);
-#endif
-
-	returnedName = nameBuffer;
-
-	if (rslt > 0) {
+        do {
+            __threadErrno = 0;
+            rslt = (int)(STX_API_NOINT_CALL4( "GetFullPathNameW", GetFullPathNameW, _aPathName, MAXPATHLEN, nameBuffer, NULL));
+        } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+        rslt = GetFullPathNameW(_aPathName, 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 ( __MKU16STRING(returnedName) );
-	}
-	__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 ( __MKU16STRING(returnedName) );
+        }
+        __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
 
@@ -6727,57 +6717,57 @@
     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];
-	    int i, l;
-
-	    l = __unicode16StringSize(aPathName);
-	    if (l > MAXPATHLEN) l = MAXPATHLEN;
-	    for (i=0; i<l; i++) {
-		_wPathName[i] = __unicode16StringVal(aPathName)[i];
-	    }
-	    _wPathName[i] = 0;
+            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];
+            int i, l;
+
+            l = __unicode16StringSize(aPathName);
+            if (l > MAXPATHLEN) l = MAXPATHLEN;
+            for (i=0; i<l; i++) {
+                _wPathName[i] = __unicode16StringVal(aPathName)[i];
+            }
+            _wPathName[i] = 0;
 #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
@@ -6785,9 +6775,9 @@
 
 setCurrentDirectory:pathName
     pathName bitsPerCharacter == 16 ifTrue:[
-	self primSetCurrentDirectoryW:(pathName copyWith:(Character value:0))
+        self primSetCurrentDirectoryW:(pathName copyWith:(Character value:0))
     ] ifFalse:[
-	self primSetCurrentDirectoryA:pathName
+        self primSetCurrentDirectoryA:pathName
     ].
 
     "
@@ -6805,7 +6795,7 @@
 
     attr := self primGetFileAttributes:aPathName.
     (attr bitTest:FILE_ATTRIBUTE_HIDDEN ) ifFalse:[
-	^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
+        ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
     ].
     ^ true  "/ aready set
 
@@ -6820,7 +6810,7 @@
 
     attr := self primGetFileAttributes:aPathName.
     (attr bitTest:FILE_ATTRIBUTE_NORMAL ) ifFalse:[
-	^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
+        ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
     ].
     ^ true  "/ aready set
 !
@@ -6832,7 +6822,7 @@
 
     attr := self primGetFileAttributes:aPathName.
     (attr bitTest:FILE_ATTRIBUTE_TEMPORARY ) ifFalse:[
-	^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
+        ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
     ].
     ^ true  "/ aready set
 !
@@ -6842,7 +6832,7 @@
      For nonexistent files, nil is returned."
 
     "could be implemented as:
-	(self infoOf:aPathName) accessed
+        (self infoOf:aPathName) accessed
     "
     | i|
 
@@ -6860,7 +6850,7 @@
      For nonexistent files, nil is returned."
 
     "could be implemented as:
-	(self infoOf:aPathName) modified
+        (self infoOf:aPathName) modified
     "
 
     | i|
@@ -6883,7 +6873,7 @@
 
     "
      this could have been implemented as:
-	(self infoOf:aPathName) type
+        (self infoOf:aPathName) type
     "
 
     i := self infoOf:aPathName.
@@ -6900,31 +6890,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:\'
 
     "
 !
@@ -6937,7 +6927,7 @@
 
     aPathString size < 2 ifTrue:[^ ''].
     (aPathString at:2) == $: ifTrue:[
-	^ (aPathString at:1) asString.
+        ^ (aPathString at:1) asString.
     ].
     ^ ''
 ! !
@@ -6954,11 +6944,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
@@ -7015,8 +7005,8 @@
 
 %{
     while(1) {
-	console_printf("blocking...");
-	Sleep(50);
+        console_printf("blocking...");
+        Sleep(50);
     }
 %}.
     "
@@ -7030,8 +7020,8 @@
 
 %{
     while(1) {
-	console_printf("blocking...");
-	STX_API_CALL1("Sleep", Sleep, 50);
+        console_printf("blocking...");
+        STX_API_CALL1("Sleep", Sleep, 50);
     }
 %}.
     "
@@ -7048,8 +7038,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);
 %}.
     "
@@ -7066,8 +7056,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);
 %}.
     "
@@ -7089,8 +7079,8 @@
 
     if (__isSmallInteger(signalNumber)) {
 #ifdef SIG_DFL
-	signal(__intVal(signalNumber), SIG_DFL);
-	RETURN (self);
+        signal(__intVal(signalNumber), SIG_DFL);
+        RETURN (self);
 #endif
     }
 %}.
@@ -7133,14 +7123,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
     }
 %}.
@@ -7161,8 +7151,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 */
 
@@ -7285,121 +7275,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);
     }
 %}.
 
@@ -7417,8 +7407,8 @@
     extern void __win32SetTimer();
 
     if (__isSmallInteger(milliSeconds)) {
-	__win32SetTimer( __intVal(milliSeconds) );
-	RETURN (true);
+        __win32SetTimer( __intVal(milliSeconds) );
+        RETURN (true);
     }
 %}.
     ^ false
@@ -7438,8 +7428,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 terminateProcess:processId
 !
@@ -7449,8 +7439,8 @@
      The process(es) terminate 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 terminateProcessGroup:processGroupId
 !
@@ -7499,9 +7489,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)
@@ -7517,9 +7507,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)
@@ -7532,15 +7522,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."
 
@@ -7551,34 +7541,34 @@
     "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."
 
 %{
     if (__isExternalAddressLike(processHandleOrPid) ) {
-	HANDLE hProcess = _HANDLEVal(processHandleOrPid);
-
-	if (hProcess != 0) {
-	    TerminateProcess( hProcess, __intVal(exitCode) );
-	}
-	RETURN( true );
+        HANDLE hProcess = _HANDLEVal(processHandleOrPid);
+
+        if (hProcess != 0) {
+            TerminateProcess( hProcess, __intVal(exitCode) );
+        }
+        RETURN( true );
     } else if( __isSmallInteger(processHandleOrPid) ) {
-	HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, __smallIntegerVal(processHandleOrPid));
-
-	if( hProcess != 0 ) {
-	    TerminateProcess( hProcess, __intVal(exitCode) );
-	    CloseHandle(hProcess);
-	}
-	RETURN( true );
+        HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, __smallIntegerVal(processHandleOrPid));
+
+        if( hProcess != 0 ) {
+            TerminateProcess( hProcess, __intVal(exitCode) );
+            CloseHandle(hProcess);
+        }
+        RETURN( true );
     }
 %}.
     self primitiveFailed:#invalidParameter.
@@ -7592,15 +7582,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."
 
     | pid list groupsToTerminate anyMore |
@@ -7609,9 +7599,9 @@
     list size == 0 ifTrue:[^ self ].
 
     processGroupHandleOrPid isInteger ifTrue:[
-	pid := processGroupHandleOrPid
+        pid := processGroupHandleOrPid
     ] ifFalse:[
-	pid := processGroupHandleOrPid pid.
+        pid := processGroupHandleOrPid pid.
     ].
     groupsToTerminate := Set with:pid.
     list := list asSet.
@@ -7619,21 +7609,21 @@
     "/ Transcript show:'terminate group '; showCR:pid.
     anyMore := true.
     [anyMore] whileTrue:[
-	anyMore := false.
-	list doWithExit:[:anOSProcess :exit |
-	    |pid|
-
-	    (groupsToTerminate includes:anOSProcess parentPid) ifTrue:[
-		pid := anOSProcess pid.
-		groupsToTerminate add:pid.
-		"/ Transcript show:'terminate '; showCR:pid.
-		self terminateProcess:( pid ).
-		list remove:anOSProcess.
-		anyMore := true.
-		"/ need to restart: we have removed an element inside the loop
-		exit value:nil
-	    ].
-	].
+        anyMore := false.
+        list doWithExit:[:anOSProcess :exit |
+            |pid|
+
+            (groupsToTerminate includes:anOSProcess parentPid) ifTrue:[
+                pid := anOSProcess pid.
+                groupsToTerminate add:pid.
+                "/ Transcript show:'terminate '; showCR:pid.
+                self terminateProcess:( pid ).
+                list remove:anOSProcess.
+                anyMore := true.
+                "/ need to restart: we have removed an element inside the loop
+                exit value:nil
+            ].
+        ].
     ].
 ! !
 
@@ -7660,8 +7650,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
@@ -7681,9 +7671,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
@@ -7695,15 +7685,15 @@
     "free pid resource"
 %{
     if (__isExternalAddressLike(pid) ) {
-	HANDLE __pid = _HANDLEVal(pid);
-
-	if (__pid != 0) {
+        HANDLE __pid = _HANDLEVal(pid);
+
+        if (__pid != 0) {
 #ifdef PROCESSDEBUGWIN32
-	    console_printf("Close ProcessHandle %x\n", __pid);
-#endif
-	    CloseHandle(__pid);
-	    _SETHANDLEVal(pid, 0);
-	}
+            console_printf("Close ProcessHandle %x\n", __pid);
+#endif
+            CloseHandle(__pid);
+            _SETHANDLEVal(pid, 0);
+        }
     }
 %}.
     ^ true.
@@ -7718,18 +7708,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.
@@ -7755,20 +7745,20 @@
     hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
     if( hProcessSnap != INVALID_HANDLE_VALUE ) {
-	pe32.dwSize = sizeof(PROCESSENTRY32);
-	Process32First( hProcessSnap, & pe32 );
-
-	do {
-	    st_perProc = __SSEND0(@global(OSProcess), @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(OSProcess), @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 */
@@ -7789,8 +7779,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"
 !
@@ -7808,40 +7798,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);
@@ -7866,49 +7856,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);
@@ -7938,7 +7928,7 @@
 
     newHandle := self duplicateHandle:anExternalAddress to:nil.
     newHandle isNil ifTrue:[
-	^ false.
+        ^ false.
     ].
 "/    self closeHandle:newHandle.
     ^ true.
@@ -7955,7 +7945,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"
@@ -7973,8 +7963,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"
@@ -8011,7 +8001,7 @@
     "/ <apicall: dword "GetLastError" () module: "kernel32.dll" >
 
     "
-	self primGetLastError
+        self primGetLastError
     "
 !
 
@@ -8020,8 +8010,8 @@
 
 %{  /* NOCONTEXT */
     if (__isSmallInteger(i)) {
-	SetLastError(__intVal(i));
-	RETURN(self);
+        SetLastError(__intVal(i));
+        RETURN(self);
     }
 %}.
    "/ <apicall: void "SetLastError" (dword) module: "kernel32.dll" >
@@ -8038,10 +8028,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);
     }
 %}.
 
@@ -8085,8 +8075,8 @@
     "/    lastErrorCode == 5 "ERROR_ACCESS_DENIED" ifTrue:[Transcript showCR: 'Mutex not accesible (GetLastError = ERROR_ACCESS_DENIED)'.].
     "/    lastErrorCode == 183 "ERROR_ALREADY_EXISTS" ifTrue:[Transcript showCR: 'Mutex already exists (GetLastError = ERROR_ALREADY_EXISTS)'.].
     (handle isNil or:[handle address ~~ 0]) ifFalse:[
-	Transcript showCR: 'CreateMutexNamed: "', name printString, '" failed'.
-	handle := nil.
+        Transcript showCR: 'CreateMutexNamed: "', name printString, '" failed'.
+        handle := nil.
     ].
     ^ Array with: handle with: lastErrorCode
 
@@ -8106,8 +8096,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"
 !
@@ -8124,8 +8114,8 @@
     "/    lastErrorCode = 2 ifTrue:[Transcript showCR: 'Mutex does not exist (GetLastError = ERROR_FILE_NOT_FOUND)'.].
     "/    lastErrorCode = 5 ifTrue:[Transcript showCR: 'Mutex not accessable (GetLastError = ERROR_ACCESS_DENIED)'.].
     (handle isNil or:[handle address ~~ 0]) ifFalse:[
-	Transcript showCR: 'OpenMutexNamed: "', name printString, '" failed'.
-	^ nil.
+        Transcript showCR: 'OpenMutexNamed: "', name printString, '" failed'.
+        ^ nil.
     ].
     ^ handle
 
@@ -8147,23 +8137,23 @@
 %{
     if (__isString(lpName)
      && ((bInitialOwner == true) || (bInitialOwner == false))) {
-	void *c_descr = NULL;
-	char *c_name;
-	BOOL c_initialOwner = (bInitialOwner == true);
-	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, c_initialOwner, c_name);
-	__externalAddressVal(handle) = c_handle;
-	RETURN(handle);
+        void *c_descr = NULL;
+        char *c_name;
+        BOOL c_initialOwner = (bInitialOwner == true);
+        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, c_initialOwner, c_name);
+        __externalAddressVal(handle) = c_handle;
+        RETURN(handle);
     }
     badArg: ;
 %}.
@@ -8184,22 +8174,22 @@
 %{
     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);
-	__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);
+        __externalAddressVal(handle) = c_handle;
+        RETURN(handle);
     }
     badArg: ;
 %}.
@@ -8215,11 +8205,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" >
@@ -8235,15 +8225,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" >
@@ -8258,8 +8248,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'.].
@@ -8275,8 +8265,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.
 
@@ -8309,39 +8299,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'.
 
     "
 ! !
@@ -8365,70 +8355,70 @@
 
     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
-	].
+        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
+        ].
     ] whileFalse.
     ^ resultString copyTo:resultCount-1.
 
 
     "
-	self expandEnvironmentStrings:'%ProgramFiles%\test\x'
-	self expandEnvironmentStrings:'%ProgramFiles%\test\x' asUnicode16String
+        self expandEnvironmentStrings:'%ProgramFiles%\test\x'
+        self expandEnvironmentStrings:'%ProgramFiles%\test\x' asUnicode16String
     "
 !
 
 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 k|
 
     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 ...
-	    k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'.
-	    k notNil ifTrue:[
-		domainName := k valueNamed:'Domain'.
-		k close.
-	    ].
-	].
-
-	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 ...
+            k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'.
+            k notNil ifTrue:[
+                domainName := k valueNamed:'Domain'.
+                k close.
+            ].
+        ].
+
+        domainName isNil ifTrue:[
+            ^ 'unknown'.
+        ].
+        DomainName := domainName.     "cache only, if it is fixed"
     ].
     ^ domainName
 
@@ -8453,35 +8443,35 @@
     int i, l;
 
     if (__isStringLike(aStringOrSymbol)) {
-	l = __stringSize(aStringOrSymbol);
-	if (l > ENV_BUFSIZE-1)
-	    goto badArgument;
-	for (i=0; i<l; i++) {
-	    _varName[i] = __stringVal(aStringOrSymbol)[i];
-	}
+        l = __stringSize(aStringOrSymbol);
+        if (l > ENV_BUFSIZE-1)
+            goto badArgument;
+        for (i=0; i<l; i++) {
+            _varName[i] = __stringVal(aStringOrSymbol)[i];
+        }
     } else if (__isUnicode16String(aStringOrSymbol)) {
-	l = __unicode16StringSize(aStringOrSymbol);
-	if (l > ENV_BUFSIZE-1)
-	    goto badArgument;
-	for (i=0; i<l; i++) {
-	    _varName[i] = __unicode16StringVal(aStringOrSymbol)[i];
-	}
+        l = __unicode16StringSize(aStringOrSymbol);
+        if (l > ENV_BUFSIZE-1)
+            goto badArgument;
+        for (i=0; i<l; i++) {
+            _varName[i] = __unicode16StringVal(aStringOrSymbol)[i];
+        }
     } else {
-	goto badArgument;
+        goto badArgument;
     }
     _varName[l] = 0;
 
     nNeeded = GetEnvironmentVariableW(_varName, buff, ENV_BUFSIZE);
     if (nNeeded > sizeof(buff)) {
-	WCHAR *buff2;
-
-	buff2 = (char *)malloc(nNeeded * sizeof(WCHAR));
-	GetEnvironmentVariableW(_varName, buff2, nNeeded);
-	ret = __mkStringOrU16String_maxlen(buff2, nNeeded);
-	free(buff2);
+        WCHAR *buff2;
+
+        buff2 = (char *)malloc(nNeeded * sizeof(WCHAR));
+        GetEnvironmentVariableW(_varName, buff2, nNeeded);
+        ret = __mkStringOrU16String_maxlen(buff2, nNeeded);
+        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);
 
@@ -8514,11 +8504,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
 %}.
@@ -8536,14 +8526,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
 
@@ -8557,28 +8547,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.
 
@@ -8589,9 +8579,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.
@@ -8612,31 +8602,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;
@@ -8657,129 +8647,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
@@ -8793,8 +8783,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
     "
 
@@ -8815,21 +8805,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
@@ -8840,35 +8830,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
 
@@ -8879,8 +8869,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
     "
 
@@ -8901,21 +8891,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
@@ -8926,32 +8916,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
 
@@ -8964,14 +8954,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
     "
 !
 
@@ -8999,7 +8989,6 @@
     |regKey systemId|
 
 %{  /* NO_CONTEXT */
-printf("0\n");
 #if defined(HAS_GETHOSTID)
     int runningId;
     OBJ arr;
@@ -9008,13 +8997,10 @@
     arr = __BYTEARRAY_UNINITIALIZED_NEW_INT(4);
     *(int *)(__ByteArrayInstPtr(arr)->ba_element) = runningId;
     RETURN (arr);
-printf("1\n");
 #endif
 #if defined(HAS_SYSINFO) && defined(SI_HW_SERIAL)
-printf("2\n");
     {
         char buffer[128];
-printf("3\n");
 
         buffer[0] = 0;
         if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
@@ -9031,13 +9017,19 @@
         key:'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'.
 
     regKey notNil ifTrue:[
-        systemId := regKey valueNamed:'ProductId'.         
+        systemId := regKey valueNamed:'ProductId'.
+        systemId isNil ifTrue:[
+            regKey := self registryEntry 
+                key:'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
+                flags:#KEY_WOW64_64KEY createIfAbsent:false.
+            systemId := regKey valueNamed:'ProductId'.
+        ].
     ].
                                      
     ^ systemId ? 'unknown'
 
     "
-     OperatingSystem getSystemID  
+     OperatingSystem getSystemID    
     "
 !
 
@@ -9054,25 +9046,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
@@ -9098,23 +9090,23 @@
     majorVer = __mkSmallInteger(verMajor);
 
     if (HIWORD(vsn) & 0x8000) {
-	sys = @symbol(win95);
+        sys = @symbol(win95);
     } else {
-	if ((verMajor > 5)
-	 || ((verMajor == 5) && (verMinor >= 1))) {
-	    sys = @symbol(xp);
-	    if (verMajor >= 6) {
-		sys = @symbol(vista);
-		if (verMinor >= 1) {
-		    sys = @symbol(win7);
-		    if (verMinor >= 2) {
-			sys = @symbol(win8);
-		    }
-		}
-	    }
-	} else {
-	    sys = @symbol(nt);
-	}
+        if ((verMajor > 5)
+         || ((verMajor == 5) && (verMinor >= 1))) {
+            sys = @symbol(xp);
+            if (verMajor >= 6) {
+                sys = @symbol(vista);
+                if (verMinor >= 1) {
+                    sys = @symbol(win7);
+                    if (verMinor >= 2) {
+                        sys = @symbol(win8);
+                    }
+                }
+            }
+        } else {
+            sys = @symbol(nt);
+        }
     }
     len = snprintf(vsnBuffer, sizeof(vsnBuffer), "%d.%d", verMajor, verMinor);
     rel = __MKSTRING_L(vsnBuffer, len);
@@ -9140,205 +9132,205 @@
 #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_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;
     }
 
     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.
@@ -9409,7 +9401,7 @@
     char buffer[MAXPATHLEN+1];
 
     if (GetWindowsDirectory(buffer, MAXPATHLEN)) {
-	RETURN (__MKSTRING(buffer));
+        RETURN (__MKSTRING(buffer));
     }
 %}.
     ^ nil
@@ -9430,7 +9422,7 @@
     char buffer[MAXPATHLEN+1];
 
     if (GetSystemDirectory(buffer, MAXPATHLEN)) {
-	RETURN (__MKSTRING(buffer));
+        RETURN (__MKSTRING(buffer));
     }
 %}.
     ^ nil
@@ -9492,44 +9484,44 @@
     DWORD exitCode;
 
     if (__isExternalAddressLike(processHandleOrPid) ) {
-	processHandle = _HANDLEVal(processHandleOrPid);
-	if (processHandle == 0) {
-	    error = @symbol(invalidParameter);
-	    goto out;
-	}
+        processHandle = _HANDLEVal(processHandleOrPid);
+        if (processHandle == 0) {
+            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)
-	    CloseHandle(processHandleToClose);
-	if (exitCode == STILL_ACTIVE) {
-	    RETURN(true);
-	} else {
-	    RETURN(false);
-	}
+        if (processHandleToClose)
+            CloseHandle(processHandleToClose);
+        if (exitCode == STILL_ACTIVE) {
+            RETURN(true);
+        } else {
+            RETURN(false);
+        }
     } else if (processHandleToClose) {
-	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
@@ -9617,11 +9609,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 */
 
@@ -9654,9 +9646,9 @@
 
     osVersion := OperatingSystem osVersion.
     ^ 'Windows ',
-	(#('2000' 'XP' 'Server2003' 'VISTA' '7' '8')
-	    at: (#('5.0' '5.1' '5.2' '6.0' '6.1' '6.2') indexOf:osVersion)
-	    ifAbsent:osVersion).
+        (#('2000' 'XP' 'Server2003' 'VISTA' '7' '8')
+            at: (#('5.0' '5.1' '5.2' '6.0' '6.1' '6.2') indexOf:osVersion)
+            ifAbsent:osVersion).
 
     "
      self osName
@@ -9697,11 +9689,11 @@
 
 randomBytesInto:bufferOrInteger
     "If bufferOrInteger is a String or a ByteArray,
-	fill a given buffer with random bytes from the RtlGenRandom function
-	and nswer the buffer.
+        fill a given buffer with random bytes from the RtlGenRandom function
+        and nswer the buffer.
 
      If bufferOrInteger is a SmallInteger,
-	return this many bytes (max 4) as a SmallInteger.
+        return this many bytes (max 4) as a SmallInteger.
 
      Return nil on error (and raise PrimitiveFailure).
 
@@ -9719,38 +9711,38 @@
     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: ;
 %}.
@@ -9772,9 +9764,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
@@ -9970,10 +9962,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'
@@ -10009,7 +10001,7 @@
 
     k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString.
     k notNil ifTrue:[
-	p := k valueNamed:'BinDir'.
+        p := k valueNamed:'BinDir'.
     ].
     ^ p
 
@@ -10022,17 +10014,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 closeKey.
-	    ^ p
-	].
+        |k p|
+
+        k := RegistryEntry key:eachKeyToTry.
+        k notNil ifTrue:[
+            p := k valueNamed:'LibDir'.
+            k closeKey.
+            ^ p
+        ].
     ].
     ^ nil
 
@@ -10108,22 +10100,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
 
@@ -10188,23 +10180,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
 
@@ -10227,19 +10219,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
 
@@ -10259,47 +10251,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
 
@@ -10317,7 +10309,7 @@
     |printerNames|
 
     printerNames := (self getProfileString:'PrinterPorts' key:nil default:'')
-		       asCollectionOfSubstringsSeparatedBy:(Character value:0).
+                       asCollectionOfSubstringsSeparatedBy:(Character value:0).
     printerNames := printerNames reject:[:nm | nm isEmpty].
     ^printerNames
 
@@ -10406,12 +10398,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.
     "
@@ -10428,12 +10420,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.
     "
@@ -10450,12 +10442,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.
     "
@@ -10484,20 +10476,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.
@@ -10627,9 +10619,9 @@
       'NON'     'no_NO'
       'NOR'     'no_NO'
      ) pairWiseDo:[:key :mappedValue|
-	key = windowsLanguageString ifTrue:[
-	    ^ mappedValue
-	]
+        key = windowsLanguageString ifTrue:[
+            ^ mappedValue
+        ]
     ].
 
     "no mapping"
@@ -10651,21 +10643,21 @@
     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
+        self primExpandEnvironmentStringsA:'%ProgramFiles%\test\x' into:(String new:256) inspect size:256
     "
 !
 
@@ -10675,31 +10667,31 @@
     ^self primitiveFailed
 
     "
-	self primExpandEnvironmentStringsW:'%ProgramFiles%\test\x' asUnicodeString into:(Unicode16String new:256) inspect size:256
+        self primExpandEnvironmentStringsW:'%ProgramFiles%\test\x' 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"
@@ -10708,8 +10700,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|
 
@@ -10731,49 +10723,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
 
@@ -10781,10 +10773,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
 
@@ -10792,10 +10784,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
 
@@ -10803,7 +10795,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
 
@@ -10830,11 +10822,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
@@ -10844,43 +10836,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"
@@ -10904,24 +10896,35 @@
 
 !Win32OperatingSystem class methodsFor:'shell operations'!
 
-openApplicationForDocument:fileOrUrl operation:operationSymbol mimeType:mimeType
+openApplicationForDocument:fileOrUrl operation:operationSymbol mimeType:mimeType inDirectory:directoryStringOrFilenameOrNil
     "open a windows-shell application to present the document contained in aFilenameOrString.
      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
-    "
-
-    self
-	shellExecute:nil
-	lpOperation:operationSymbol
-	lpFile:fileOrUrl asString
-	lpParameters:nil
-	lpDirectory:nil         "/ uses the current directory
-	nShowCmd:#SW_SHOWNORMAL.
+        open
+        edit
+        explore
+        print
+    "
+
+    |handle directoryName|
+
+    "nil directory is the current directory"
+    directoryStringOrFilenameOrNil notNil ifTrue:[
+        directoryName := directoryStringOrFilenameOrNil asFilename pathName.
+    ].
+
+    handle := self
+        shellExecute:nil
+        lpOperation:operationSymbol
+        lpFile:fileOrUrl asString
+        lpParameters:nil
+        lpDirectory:directoryName         
+        nShowCmd:#SW_SHOWNORMAL.
+
+    handle notNil ifTrue:[
+        handle close.
+    ].
 
 
     "
@@ -10960,27 +10963,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);
 %}
@@ -11000,58 +11003,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"
@@ -11104,10 +11107,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?
@@ -11143,8 +11146,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.
@@ -11217,53 +11220,53 @@
     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__) && !defined(__MINGW64__))
-	{
-	    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);
@@ -11293,22 +11296,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
@@ -11345,8 +11348,8 @@
 %{  /* NOCONTEXT */
 
     if (__isSmallInteger(numberOfSeconds)) {
-	sleep(__intVal(numberOfSeconds));
-	RETURN ( self );
+        sleep(__intVal(numberOfSeconds));
+        RETURN ( self );
     }
 %}.
     "
@@ -11377,115 +11380,115 @@
 
     /* 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__) && !defined(__MINGW64__))
-	{
-	    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);
@@ -11504,22 +11507,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.
@@ -11556,13 +11559,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
 
@@ -11581,15 +11584,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 ].
@@ -11610,11 +11613,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.
@@ -11663,11 +11666,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
 
@@ -11715,7 +11718,7 @@
 
     dir := self getEnvironment:'USERPROFILE'.
     dir isNil ifTrue:[
-	dir := '.'.
+        dir := '.'.
     ].
     ^ dir.
 
@@ -11740,33 +11743,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) );
@@ -11795,7 +11798,7 @@
      This is the login name, not the fullName."
 
     aNumber == self getUserID ifTrue:[
-	^ self getLoginName
+        ^ self getLoginName
     ].
 
     ^ '? (' , aNumber printString , ')'
@@ -11820,30 +11823,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: ;
 %}.
@@ -11864,22 +11867,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);
@@ -11916,10 +11919,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].
@@ -11962,69 +11965,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;
@@ -12040,15 +12043,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));
+        }
     }
 %}.
 
@@ -12094,53 +12097,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:
@@ -12150,145 +12153,145 @@
     numHandles = hasSockets = hasPipes = 0;
 
     for (i = 0; (i < readCount) && (numHandles < MAXHANDLE); i++) {
-	OBJ fd = __arrayVal(readFdArray)[i];
-
-	if (fd != nil) {
-	    if (__Class(fd) == @global(Win32SocketHandle)) {
-		FD_SET (_HANDLEVal(fd), &readFds);
-		hasSockets++;
-	    } else if (__isSmallInteger(fd)) {
-		DWORD canRead;
-		if (PeekNamedPipe(_get_osfhandle(__intVal(fd)), 0, 0, 0, &canRead, 0)) {
-		    if (canRead > 0) {
-			if (*pcntR < resultSizeReadable) {
-			    __arrayVal(readableResultFdArray)[*pcntR] = fd;
-			}
-			(*pcntR)++; cntAll++;
-		    }
-		} else {
-		    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
-		    RETURN (__mkSmallInteger(-1));
-		}
-		hasPipes++;
-	    } else {
-		hArray  [numHandles] = _HANDLEVal(fd);
-		retArray[numHandles] = i;
-		++numHandles;
-	    }
-	}
+        OBJ fd = __arrayVal(readFdArray)[i];
+
+        if (fd != nil) {
+            if (__Class(fd) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fd), &readFds);
+                hasSockets++;
+            } else if (__isSmallInteger(fd)) {
+                DWORD canRead;
+                if (PeekNamedPipe(_get_osfhandle(__intVal(fd)), 0, 0, 0, &canRead, 0)) {
+                    if (canRead > 0) {
+                        if (*pcntR < resultSizeReadable) {
+                            __arrayVal(readableResultFdArray)[*pcntR] = fd;
+                        }
+                        (*pcntR)++; cntAll++;
+                    }
+                } else {
+                    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+                    RETURN (__mkSmallInteger(-1));
+                }
+                hasPipes++;
+            } else {
+                hArray  [numHandles] = _HANDLEVal(fd);
+                retArray[numHandles] = i;
+                ++numHandles;
+            }
+        }
     }
 
     for (i = 0; (i < writeCount) && (numHandles < MAXHANDLE); i++) {
-	OBJ fd = __arrayVal(writeFdArray)[i];
-
-	if (fd != nil) {
-	    if (__Class(fd) == @global(Win32SocketHandle)) {
-		FD_SET (_HANDLEVal(fd), &writeFds);
-		hasSockets++;
-	    } else if (__isSmallInteger(fd)) {
-		// kludge: assume that pipes can alway be written
-	       if (*pcntW < resultSizeWritable) {
-		    __arrayVal(writableResultFdArray)[*pcntW] = fd;
-		}
-		(*pcntW)++; cntAll++;
-		// there is no pipe to check
-	    } else {
-		hArray  [numHandles] = _HANDLEVal(fd);
-		retArray[numHandles] = i + 10000;
-		++numHandles;
-	    }
-	}
+        OBJ fd = __arrayVal(writeFdArray)[i];
+
+        if (fd != nil) {
+            if (__Class(fd) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fd), &writeFds);
+                hasSockets++;
+            } else if (__isSmallInteger(fd)) {
+                // kludge: assume that pipes can alway be written
+               if (*pcntW < resultSizeWritable) {
+                    __arrayVal(writableResultFdArray)[*pcntW] = fd;
+                }
+                (*pcntW)++; cntAll++;
+                // there is no pipe to check
+            } else {
+                hArray  [numHandles] = _HANDLEVal(fd);
+                retArray[numHandles] = i + 10000;
+                ++numHandles;
+            }
+        }
     }
 
     for (i = 0; (i < exceptCount) && (numHandles < MAXHANDLE); i++) {
-	OBJ fdOrPid = __arrayVal(exceptFdArray)[i];
-
-	if (fdOrPid != nil) {
-	    if (__Class(fdOrPid) == @global(Win32SocketHandle)) {
-		FD_SET (_HANDLEVal(fdOrPid), &exceptFds);
-		hasSockets++;
-	    } else if (__isExternalAddressLike(fdOrPid)) {
-		// a PID
-		hArray  [numHandles] = _HANDLEVal(fdOrPid);
-		retArray[numHandles] = i + 20000;
-		++numHandles;
-	    }
-	}
+        OBJ fdOrPid = __arrayVal(exceptFdArray)[i];
+
+        if (fdOrPid != nil) {
+            if (__Class(fdOrPid) == @global(Win32SocketHandle)) {
+                FD_SET (_HANDLEVal(fdOrPid), &exceptFds);
+                hasSockets++;
+            } else if (__isExternalAddressLike(fdOrPid)) {
+                // a PID
+                hArray  [numHandles] = _HANDLEVal(fdOrPid);
+                retArray[numHandles] = i + 20000;
+                ++numHandles;
+            }
+        }
     }
 
     if (hasSockets) {
-	struct timeval tv = {0, 0};
-	int nReady;
+        struct timeval tv = {0, 0};
+        int nReady;
 
 #ifdef SELECT3DEBUGWIN32
-	console_printf("select hasSockets = %d\n", hasSockets);
-#endif
-	nReady = select(1 , &readFds, &writeFds, &exceptFds, &tv);  // first parameter to select is ignored in windows
-	if (nReady < 0) {
+        console_printf("select hasSockets = %d\n", hasSockets);
+#endif
+        nReady = select(1 , &readFds, &writeFds, &exceptFds, &tv);  // first parameter to select is ignored in windows
+        if (nReady < 0) {
 #ifdef SELECTDEBUGWIN32
-	    console_printf("error in select %d %d\n", nReady, GetLastError());
-#endif
-	    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
-	    RETURN (__mkSmallInteger(-1));
-	}
-	if (nReady > 0) {
+            console_printf("error in select %d %d\n", nReady, GetLastError());
+#endif
+            @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+            RETURN (__mkSmallInteger(-1));
+        }
+        if (nReady > 0) {
 #ifdef SELECT3DEBUGWIN32
-	    console_printf("select nReady %d of %d\n", nReady, hasSockets);
-#endif
-	    for (i = 0; i < readCount; i++) {
-		OBJ fd = __arrayVal(readFdArray)[i];
-		if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &readFds)) {
-		    if (*pcntR < resultSizeReadable) {
-			__arrayVal(readableResultFdArray)[*pcntR] = fd;
-			__STORE(readableResultFdArray, fd);
-		    }
-		    (*pcntR)++; cntAll++;
-		}
-	    }
-	    for (i = 0; i < writeCount; i++) {
-		OBJ fd = __arrayVal(writeFdArray)[i];
-		if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &writeFds)) {
-		    if (*pcntW < resultSizeWritable) {
-			__arrayVal(writableResultFdArray)[*pcntW] = fd;
-			__STORE(writableResultFdArray, fd);
-		    }
-		    (*pcntW)++; cntAll++;
-		}
-	    }
-	    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++;
-		}
-	    }
-
-	}
+            console_printf("select nReady %d of %d\n", nReady, hasSockets);
+#endif
+            for (i = 0; i < readCount; i++) {
+                OBJ fd = __arrayVal(readFdArray)[i];
+                if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &readFds)) {
+                    if (*pcntR < resultSizeReadable) {
+                        __arrayVal(readableResultFdArray)[*pcntR] = fd;
+                        __STORE(readableResultFdArray, fd);
+                    }
+                    (*pcntR)++; cntAll++;
+                }
+            }
+            for (i = 0; i < writeCount; i++) {
+                OBJ fd = __arrayVal(writeFdArray)[i];
+                if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &writeFds)) {
+                    if (*pcntW < resultSizeWritable) {
+                        __arrayVal(writableResultFdArray)[*pcntW] = fd;
+                        __STORE(writableResultFdArray, fd);
+                    }
+                    (*pcntW)++; cntAll++;
+                }
+            }
+            for (i = 0; i < exceptCount; i++) {
+                OBJ fd = __arrayVal(exceptFdArray)[i];
+                if ((__Class(fd) == @global(Win32SocketHandle)) && FD_ISSET(_HANDLEVal(fd), &exceptFds)) {
+                    if (*pcntE < resultSizeException) {
+                        __arrayVal(exceptionResultFdArray)[*pcntE] = fd;
+                        __STORE(exceptionResultFdArray, fd);
+                    }
+                    (*pcntE)++; cntAll++;
+                }
+            }
+
+        }
     }
     if (pass > 1)       // perform maximum 2 passes
-	goto done;
+        goto done;
 
     if (cntAll) {
-	// check for other handles and return immediately, no timeout
-	t = 0;
+        // check for other handles and return immediately, no timeout
+        t = 0;
     } else {
-	if (__isSmallInteger(millis)) {
-	    t = __intVal(millis);
-
-	    if (t <= 0 && numHandles == 0) {
-		RETURN (__mkSmallInteger(0));
-	    }
-	} else {
-	    t = INFINITE;
-	}
+        if (__isSmallInteger(millis)) {
+            t = __intVal(millis);
+
+            if (t <= 0 && numHandles == 0) {
+                RETURN (__mkSmallInteger(0));
+            }
+        } else {
+            t = INFINITE;
+        }
     }
 
     if (numHandles == 0 && t == 0) {
-	// nothing to do and no wait
-	goto done;
+        // nothing to do and no wait
+        goto done;
     }
 
 #ifdef SELECT3DEBUGWIN32
@@ -12299,105 +12302,105 @@
 
     if (res == WAIT_TIMEOUT) {
 #ifdef SELECT3DEBUGWIN32
-	console_printf("- timeOut; ret nil\n" );
-#endif
-	if (t != 0 && (hasSockets || hasPipes)) {
-	    // if not a single handle is ready, poll sockets an pipes again
-	    pass = 2;
-	    goto pollAgain;
-	}
-	goto done;
+        console_printf("- timeOut; ret nil\n" );
+#endif
+        if (t != 0 && (hasSockets || hasPipes)) {
+            // if not a single handle is ready, poll sockets an pipes again
+            pass = 2;
+            goto pollAgain;
+        }
+        goto done;
     }
 
     if (res == WAIT_FAILED) {
 #ifdef SELECT2DEBUGWIN32
-	console_printf("- error %d (last %d); ret -1\n", __threadErrno, GetLastError());
-#endif
-	if (__threadErrno == EINTR) {
-	    @global(LastErrorNumber) = nil;
-	    RETURN (__mkSmallInteger(0));
-	} else {
-	    if (@global(InfoPrinting) == true) {
+        console_printf("- error %d (last %d); ret -1\n", __threadErrno, GetLastError());
+#endif
+        if (__threadErrno == EINTR) {
+            @global(LastErrorNumber) = nil;
+            RETURN (__mkSmallInteger(0));
+        } else {
+            if (@global(InfoPrinting) == true) {
 //                console_fprintf(stderr, "Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
-		console_printf("Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
-	    }
-	    @global(LastErrorNumber) = __mkSmallInteger(EBADF);
-	    RETURN (__mkSmallInteger(-1));
-	}
+                console_printf("Win32OS [info]: select errno = %d (last %d)\n", __threadErrno, GetLastError());
+            }
+            @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+            RETURN (__mkSmallInteger(-1));
+        }
     }
 
     if (numHandles) {
-	if (res == numHandles) {
-	    // vmwait() added an IRQ event to the handles, and this one has been triggered
-	    if (1 /* @global(InfoPrinting) == true */) {
-		console_fprintf(stderr, "Win32OS [info]: plugIn event has been handled\n");
-	    }
-	    goto done;
-	}
-	if ((res < 0) || (res >= numHandles)) {
-	    console_printf("- res=%d error1 %d\n", res, GetLastError());
-	    goto done;
-	}
-
-	idx = retArray[res];
-	cntAll++;
+        if (res == numHandles) {
+            // vmwait() added an IRQ event to the handles, and this one has been triggered
+            if (1 /* @global(InfoPrinting) == true */) {
+                console_fprintf(stderr, "Win32OS [info]: plugIn event has been handled\n");
+            }
+            goto done;
+        }
+        if ((res < 0) || (res >= numHandles)) {
+            console_printf("- res=%d error1 %d\n", res, GetLastError());
+            goto done;
+        }
+
+        idx = retArray[res];
+        cntAll++;
 
 #ifdef SELECTDEBUGWIN32
-	console_printf("wait Handles res %d idx %d numHandles %d --- ", res, idx, numHandles);
-#endif
-	if (idx < 10000) {
-	    if (*pcntR < resultSizeReadable) {
-		OBJ temp = __arrayVal(readFdArray)[idx];
-		__arrayVal(readableResultFdArray)[*pcntR] = temp;
-		__STORE(readableResultFdArray, temp);
+        console_printf("wait Handles res %d idx %d numHandles %d --- ", res, idx, numHandles);
+#endif
+        if (idx < 10000) {
+            if (*pcntR < resultSizeReadable) {
+                OBJ temp = __arrayVal(readFdArray)[idx];
+                __arrayVal(readableResultFdArray)[*pcntR] = temp;
+                __STORE(readableResultFdArray, temp);
 #ifdef SELECTDEBUGWIN32
-		console_printf("read ready: %x\n", __externalAddressVal(temp));
-#endif
-		(*pcntR)++;
-	    }
-	} else if (idx < 20000) {
-	    if (*pcntW < resultSizeWritable) {
-		OBJ temp = __arrayVal(writeFdArray)[idx-10000];
-		__arrayVal(writableResultFdArray)[*pcntW] = temp;
-		__STORE(writableResultFdArray, temp);
+                console_printf("read ready: %x\n", __externalAddressVal(temp));
+#endif
+                (*pcntR)++;
+            }
+        } else if (idx < 20000) {
+            if (*pcntW < resultSizeWritable) {
+                OBJ temp = __arrayVal(writeFdArray)[idx-10000];
+                __arrayVal(writableResultFdArray)[*pcntW] = temp;
+                __STORE(writableResultFdArray, temp);
 #ifdef SELECTDEBUGWIN32
-		console_printf("write ready: %x\n", temp);
-#endif
-		(*pcntW)++;
-	    }
-	} else {
-	    if (*pcntE < resultSizeException) {
-		OBJ temp = __arrayVal(exceptFdArray)[idx-20000];
-		__arrayVal(exceptionResultFdArray)[*pcntE] = temp;
-		__STORE(exceptionResultFdArray, temp);
+                console_printf("write ready: %x\n", temp);
+#endif
+                (*pcntW)++;
+            }
+        } else {
+            if (*pcntE < resultSizeException) {
+                OBJ temp = __arrayVal(exceptFdArray)[idx-20000];
+                __arrayVal(exceptionResultFdArray)[*pcntE] = temp;
+                __STORE(exceptionResultFdArray, temp);
 #ifdef SELECTDEBUGWIN32
-		console_printf("except ready: %x\n", temp);
-#endif
-		(*pcntE)++;
-	    }
+                console_printf("except ready: %x\n", temp);
+#endif
+                (*pcntE)++;
+            }
 #ifdef SELECTDEBUGWIN32
-	    else
-		console_printf("cntE: %d, resultSizeException: %d\n", *pcntE, resultSizeException);
-#endif
-	}
+            else
+                console_printf("cntE: %d, resultSizeException: %d\n", *pcntE, resultSizeException);
+#endif
+        }
     }
     if (t != 0 && (hasSockets || hasPipes)) {
-	// back after timeout, maybe some sockets or pipes did wake up
-	// in the meantime?
-	pass = 2;
-	goto pollAgain;
+        // back after timeout, maybe some sockets or pipes did wake up
+        // in the meantime?
+        pass = 2;
+        goto pollAgain;
     }
 
 done:
     /* add a delimiter */
     if (*pcntR < resultSizeReadable) {
-	__arrayVal(readableResultFdArray)[*pcntR] = nil;
+        __arrayVal(readableResultFdArray)[*pcntR] = nil;
     }
     if (*pcntW < resultSizeWritable) {
-	__arrayVal(writableResultFdArray)[*pcntW] = nil;
+        __arrayVal(writableResultFdArray)[*pcntW] = nil;
     }
     if (*pcntE < resultSizeException) {
-	__arrayVal(exceptionResultFdArray)[*pcntE] = nil;
+        __arrayVal(exceptionResultFdArray)[*pcntE] = nil;
     }
 
     @global(LastErrorNumber) = nil;
@@ -12443,59 +12446,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);
@@ -12520,38 +12523,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);
@@ -12746,11 +12749,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'!
@@ -12771,18 +12774,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
     "
 !
 
@@ -12792,14 +12795,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
     "
 !
 
@@ -12823,18 +12826,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
     "
 !
 
@@ -12844,14 +12847,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
     "
 !
 
@@ -12872,9 +12875,9 @@
 
     "/ access lazily...
     linkTargetPath isNil ifTrue:[
-	type == #symbolicLink ifTrue:[
-	    linkTargetPath := OperatingSystem getLinkTarget:sourcePath.
-	]
+        type == #symbolicLink ifTrue:[
+            linkTargetPath := OperatingSystem getLinkTarget:sourcePath.
+        ]
     ].
 
     ^ linkTargetPath
@@ -13125,9 +13128,9 @@
 
 isSpecialFile
     ^ (type ~~ #directory
-	and:[type ~~ #remoteDirectory
-	and:[type ~~ #regular
-	and:[type ~~ #symbolicLink
+        and:[type ~~ #remoteDirectory
+        and:[type ~~ #regular
+        and:[type ~~ #symbolicLink
     ]]])
 !
 
@@ -13153,20 +13156,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
 "
 ! !
 
@@ -13315,15 +13318,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
 
 "
 ! !
@@ -13383,14 +13386,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
 
 "
 ! !
@@ -13420,24 +13423,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>"
@@ -13462,24 +13465,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
@@ -13488,24 +13491,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
@@ -13542,86 +13545,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.
     "
 ! !
 
@@ -13630,7 +13633,7 @@
 initialize
 
     "
-	self initialize
+        self initialize
     "
 
     PerformanceText := CounterIndexTextDictionary := HelpIndexTextDictionary := nil.
@@ -13641,7 +13644,7 @@
 getPerformanceText
 
     PerformanceText isNil ifTrue:[
-	PerformanceText := Win32OperatingSystem registryEntry key:'HKEY_PERFORMANCE_TEXT'.
+        PerformanceText := Win32OperatingSystem registryEntry key:'HKEY_PERFORMANCE_TEXT'.
     ].
 
     ^ PerformanceText
@@ -13653,16 +13656,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
     "
 !
 
@@ -13670,7 +13673,7 @@
     ^ (self getFreePageFileSizeInKB / 1024) asInteger
 
     "
-	self getFreePageFileSizeInMB
+        self getFreePageFileSizeInMB
     "
 !
 
@@ -13678,16 +13681,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
     "
 !
 
@@ -13695,7 +13698,7 @@
     ^ (self getFreePhysicalMemoryInKB / 1024) asInteger
 
     "
-	self getFreePhysicalMemoryInMB
+        self getFreePhysicalMemoryInMB
     "
 !
 
@@ -13703,7 +13706,7 @@
     ^ self getPageFileSizeInMB * 1024
 
     "
-	self getPageFileSizeInKB
+        self getPageFileSizeInKB
     "
 !
 
@@ -13711,16 +13714,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
     "
 !
 
@@ -13728,16 +13731,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
     "
 !
 
@@ -13745,7 +13748,7 @@
     ^ (self getPhysicalMemoryInKB / 1024) asInteger
 
     "
-	self getPhysicalMemoryInMB
+        self getPhysicalMemoryInMB
     "
 !
 
@@ -13753,16 +13756,16 @@
     |ret|
 
     %{
-	MEMORYSTATUS mState;
-	GlobalMemoryStatus (&mState);
-
-	ret = __mkSmallInteger(mState.dwMemoryLoad);
+        MEMORYSTATUS mState;
+        GlobalMemoryStatus (&mState);
+
+        ret = __mkSmallInteger(mState.dwMemoryLoad);
     %}.
 
     ^ ret
 
     "
-	self getUsedMemoryInPercentage
+        self getUsedMemoryInPercentage
     "
 !
 
@@ -13770,16 +13773,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
     "
 !
 
@@ -13787,7 +13790,7 @@
     ^ (self getVirtualMemoryInKB / 1024) asInteger
 
     "
-	self getVirtualMemoryInMB
+        self getVirtualMemoryInMB
     "
 ! !
 
@@ -13857,157 +13860,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.
@@ -14016,61 +14019,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
@@ -14081,7 +14084,7 @@
 cachedResults
 
     cachedResults isNil ifTrue:[
-	cachedResults := IdentityDictionary new.
+        cachedResults := IdentityDictionary new.
     ].
 
     ^ cachedResults
@@ -14108,8 +14111,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
@@ -14132,18 +14135,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
+            ].
+        ].
     ].
 !
 
@@ -14167,9 +14170,9 @@
     data := self data.
 
     self indexedNameNumbered == 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) == self indexedNameNumbered] ifNone:[self error:'counter not found'].
+        object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == self indexedNameNumbered] ifNone:[self error:'counter not found'].
     ].
 
     ^ (object at:#Counters) collect:[:el|Array with:(el at:#CounterNameTitle) with:(el at:#CounterNameTitleIndex)].
@@ -14182,14 +14185,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
@@ -14213,15 +14216,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
@@ -14239,15 +14242,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
@@ -14258,14 +14261,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
@@ -14288,22 +14291,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
@@ -14319,22 +14322,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
@@ -14358,15 +14361,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)].
@@ -14375,28 +14378,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
@@ -14418,15 +14421,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)].
@@ -14435,28 +14438,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
@@ -14467,7 +14470,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -14489,7 +14492,7 @@
     ^ self getValuesByCounter:218 timed:true
 
     "
-	self current diskBytes
+        self current diskBytes
     "
 !
 
@@ -14497,7 +14500,7 @@
     ^ self getBasicValuesByCounter:218 timed:true
 
     "
-	self current diskBytesBasic
+        self current diskBytesBasic
     "
 !
 
@@ -14505,7 +14508,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskBytes]
 
     "
-	self current diskBytesPerSecond
+        self current diskBytesPerSecond
     "
 !
 
@@ -14513,7 +14516,7 @@
     ^ self getPerSecondFromLast:#diskBytesBasic
 
     "
-	self current diskBytesPerSecondFromLast
+        self current diskBytesPerSecondFromLast
     "
 !
 
@@ -14521,7 +14524,7 @@
     ^ self getValuesByCounter:198
 
     "
-	self current diskQueueLength
+        self current diskQueueLength
     "
 !
 
@@ -14529,7 +14532,7 @@
     ^ self getValuesByCounter:214 timed:true
 
     "
-	self current diskRead
+        self current diskRead
     "
 !
 
@@ -14537,7 +14540,7 @@
     ^ self getBasicValuesByCounter:214 timed:true
 
     "
-	self current diskReadBasic
+        self current diskReadBasic
     "
 !
 
@@ -14545,7 +14548,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskRead]
 
     "
-	self current diskReadsPerSecond
+        self current diskReadsPerSecond
     "
 !
 
@@ -14553,7 +14556,7 @@
     ^ self getPerSecondFromLast:#diskReadBasic
 
     "
-	self current diskReadsPerSecondFromLast
+        self current diskReadsPerSecondFromLast
     "
 !
 
@@ -14561,7 +14564,7 @@
     ^ self getValuesByCounter:408
 
     "
-	self current diskSpaceFreeInMegaByte
+        self current diskSpaceFreeInMegaByte
     "
 !
 
@@ -14569,7 +14572,7 @@
     ^ self getValuesByCounter:212 timed:true
 
     "
-	self current diskTransfers
+        self current diskTransfers
     "
 !
 
@@ -14577,7 +14580,7 @@
     ^ self getBasicValuesByCounter:212 timed:true
 
     "
-	self current diskTransfersBasic
+        self current diskTransfersBasic
     "
 !
 
@@ -14585,7 +14588,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskTransfers]
 
     "
-	self current diskTransfersPerSecond
+        self current diskTransfersPerSecond
     "
 !
 
@@ -14593,7 +14596,7 @@
     ^ self getPerSecondFromLast:#diskTransfersBasic
 
     "
-	self current diskTransfersPerSecondFromlast
+        self current diskTransfersPerSecondFromlast
     "
 !
 
@@ -14601,7 +14604,7 @@
     ^ self getValuesByCounter:216 timed:true
 
     "
-	self current diskWrite
+        self current diskWrite
     "
 !
 
@@ -14609,7 +14612,7 @@
     ^ self getBasicValuesByCounter:216 timed:true
 
     "
-	self current diskWriteBasic
+        self current diskWriteBasic
     "
 !
 
@@ -14617,7 +14620,7 @@
     ^ self getPerSecondViaPerformBlock:[self diskWrite]
 
     "
-	self current diskWritesPerSecond
+        self current diskWritesPerSecond
     "
 !
 
@@ -14625,7 +14628,7 @@
     ^ self getPerSecondFromLast:#diskWriteBasic
 
     "
-	self current diskWritesPerSecondFromLast
+        self current diskWritesPerSecondFromLast
     "
 ! !
 
@@ -14634,7 +14637,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -14663,12 +14666,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
@@ -14679,7 +14682,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -14701,7 +14704,7 @@
     ^ self getValuesByCounter:1380
 
     "
-	self current availableKBytes
+        self current availableKBytes
     "
 !
 
@@ -14709,7 +14712,7 @@
     ^ self getValuesByCounter:1382
 
     "
-	self current availableMBytes
+        self current availableMBytes
     "
 ! !
 
@@ -14718,7 +14721,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -14744,7 +14747,7 @@
     ^ self getValuesByCounter:264 timed:true
 
     "
-	self current bytesReceived
+        self current bytesReceived
     "
 !
 
@@ -14752,7 +14755,7 @@
     ^ self getBasicValuesByCounter:264 timed:true
 
     "
-	self current bytesReceivedBasic
+        self current bytesReceivedBasic
     "
 !
 
@@ -14760,7 +14763,7 @@
     ^ self getPerSecondViaPerformBlock:[self bytesReceived]
 
     "
-	self current bytesReceivedPerSecond
+        self current bytesReceivedPerSecond
     "
 !
 
@@ -14768,7 +14771,7 @@
     ^ self getPerSecondFromLast:#bytesReceivedBasic
 
     "
-	self current bytesReceivedPerSecondFromlast
+        self current bytesReceivedPerSecondFromlast
     "
 !
 
@@ -14776,7 +14779,7 @@
     ^ self getValuesByCounter:506 timed:true
 
     "
-	self current bytesSent
+        self current bytesSent
     "
 !
 
@@ -14784,7 +14787,7 @@
     ^ self getBasicValuesByCounter:506 timed:true
 
     "
-	self current bytesSentBasic
+        self current bytesSentBasic
     "
 !
 
@@ -14792,7 +14795,7 @@
     ^ self getPerSecondViaPerformBlock:[self bytesSent]
 
     "
-	self current bytesSentPerSecond
+        self current bytesSentPerSecond
     "
 !
 
@@ -14800,7 +14803,7 @@
     ^ self getPerSecondFromLast:#bytesSentBasic
 
     "
-	self current bytesSentPerSecondFromlast
+        self current bytesSentPerSecondFromlast
     "
 !
 
@@ -14810,13 +14813,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
     "
 !
 
@@ -14829,13 +14832,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
     "
 !
 
@@ -14845,13 +14848,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
     "
 !
 
@@ -14864,13 +14867,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
     "
 ! !
 
@@ -14879,7 +14882,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -14901,7 +14904,7 @@
     ^ self getValuesByCounter:6 timed:true
 
     "
-	self current processTime
+        self current processTime
     "
 !
 
@@ -14909,7 +14912,7 @@
     ^ self getBasicValuesByCounter:6 timed:true
 
     "
-	self current processTimeBasic
+        self current processTimeBasic
     "
 !
 
@@ -14919,13 +14922,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
     "
 !
 
@@ -14938,13 +14941,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
     "
 !
 
@@ -14953,7 +14956,7 @@
     ^ (self data objectArray first at:#Instances) collect:[:el|el at:#Name]
 
     "
-	self current runningProcessNameList
+        self current runningProcessNameList
     "
 !
 
@@ -14962,7 +14965,7 @@
     ^ (self data objectArray first at:#NumInstances)
 
     "
-	self current runningProcesses
+        self current runningProcesses
     "
 ! !
 
@@ -14971,7 +14974,7 @@
 current
 
     TheOneAndOnlyInstance isNil ifTrue:[
-	TheOneAndOnlyInstance := self new.
+        TheOneAndOnlyInstance := self new.
     ].
 
     ^ TheOneAndOnlyInstance
@@ -14993,7 +14996,7 @@
     ^ self getValuesByCounter:148 timed:true
 
     "
-	self current interrupts
+        self current interrupts
     "
 !
 
@@ -15001,7 +15004,7 @@
     ^ self getBasicValuesByCounter:148 timed:true
 
     "
-	self current interruptsBasic
+        self current interruptsBasic
     "
 !
 
@@ -15009,7 +15012,7 @@
     ^ self getPerSecondViaPerformBlock:[self interrupts]
 
     "
-	self current interruptsPerSecond
+        self current interruptsPerSecond
     "
 !
 
@@ -15017,7 +15020,7 @@
     ^ self getPerSecondFromLast:#interruptsBasic
 
     "
-	self current interruptsPerSecondFromLast
+        self current interruptsPerSecondFromLast
     "
 !
 
@@ -15025,7 +15028,7 @@
     ^ self getValuesByCounter:6 timed:true
 
     "
-	self current processorTime
+        self current processorTime
     "
 !
 
@@ -15033,7 +15036,7 @@
     ^ self getBasicValuesByCounter:6 timed:true
 
     "
-	self current processorTimeBasic
+        self current processorTimeBasic
     "
 !
 
@@ -15041,7 +15044,7 @@
     ^ self getUsageViaPerformBlock:[self processorTime]
 
     "
-	self current processorUsage
+        self current processorUsage
     "
 !
 
@@ -15049,7 +15052,7 @@
     ^ self getUsageFromLast:#processorTimeBasic
 
     "
-	self current processorUsageFromLast
+        self current processorUsageFromLast
     "
 ! !
 
@@ -15060,10 +15063,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
 
@@ -15075,15 +15078,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"
@@ -15093,10 +15096,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
@@ -15109,18 +15112,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"
@@ -15132,10 +15135,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
 
@@ -15148,10 +15151,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
 
@@ -15165,13 +15168,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'
       )
 !
 
@@ -15188,184 +15191,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]
 
 
 
@@ -15415,31 +15418,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
@@ -15452,7 +15455,7 @@
     "handle image restarts and refetch registry handles"
 
     (something == #returnFromSnapshot) ifTrue:[
-	self initialize
+        self initialize
     ]
 
     "Created: 15.6.1996 / 15:14:03 / cg"
@@ -15465,9 +15468,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 ...
@@ -15515,9 +15518,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
 
@@ -15536,9 +15539,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|
 
@@ -15546,11 +15549,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.
@@ -15558,17 +15561,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.
     ].
 
     "
@@ -15705,7 +15708,7 @@
 
     k := self key:'HKEY_CLASSES_ROOT\MIME\Database\Content Type\',mimeType.
     k notNil ifTrue:[
-	suffix := k valueNamed:'extension'.
+        suffix := k valueNamed:'extension'.
     ].
     ^ suffix
 !
@@ -15719,35 +15722,35 @@
     suffix isNil ifTrue:[^ nil].
 
     (suffix startsWith:'.') ifTrue:[
-	suffix := suffix copyFrom:2
+        suffix := suffix copyFrom:2
     ].
     k := self key:'HKEY_CLASSES_ROOT\.',suffix.
 
     k notNil ifTrue:[
-	fkey := (k valueNamed:'').
+        fkey := (k valueNamed:'').
     ].
     fkey isNil ifTrue:[
-	fkey := suffix,'_auto_file'
+        fkey := suffix,'_auto_file'
     ].
 
     fkey notEmptyOrNil ifTrue:[
 
-	redirect := nil.
-
-	k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , fkey , '\CurVer').
-	k notNil ifTrue:[
-	    redirect := k defaultValue
-	].
-
-	redirect isNil ifTrue:[
-	     k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (fkey) , '\shell\',operation,'\command').
-	] ifFalse:[
-	     k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (redirect) , '\shell\',operation,'\command').
-	].
-
-	k notNil ifTrue:[
-	    cmd := k defaultValue
-	].
+        redirect := nil.
+
+        k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , fkey , '\CurVer').
+        k notNil ifTrue:[
+            redirect := k defaultValue
+        ].
+
+        redirect isNil ifTrue:[
+             k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (fkey) , '\shell\',operation,'\command').
+        ] ifFalse:[
+             k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (redirect) , '\shell\',operation,'\command').
+        ].
+
+        k notNil ifTrue:[
+            cmd := k defaultValue
+        ].
     ].
 
 
@@ -15772,8 +15775,8 @@
 
     "
      self
-	stringValueFor:'Content Type'
-	atKey:'HKEY_CLASSES_ROOT\.au'
+        stringValueFor:'Content Type'
+        atKey:'HKEY_CLASSES_ROOT\.au'
     "
 ! !
 
@@ -15828,9 +15831,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
@@ -15862,12 +15865,12 @@
     "delete a key below mySelf.
      Return true on success.
      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|
 
@@ -15885,40 +15888,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
 
@@ -15942,24 +15945,24 @@
     int _retVal;
 
     if (__isExternalAddressLike(__INST(handle)) && __isStringLike(hostName)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegConnectRegistryA(__stringVal(hostName), myKey, &remoteKey)) == ERROR_SUCCESS) {
-	    remoteHandle = __MKEXTERNALADDRESS(remoteKey);
-	} else {
-	    if ((_retVal != ERROR_PATH_NOT_FOUND)
-	     && (_retVal != ERROR_FILE_NOT_FOUND)) {
-		errorNumber = __MKSMALLINT(_retVal);
-	    }
-	}
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+        if ((_retVal = RegConnectRegistryA(__stringVal(hostName), myKey, &remoteKey)) == ERROR_SUCCESS) {
+            remoteHandle = __MKEXTERNALADDRESS(remoteKey);
+        } else {
+            if ((_retVal != ERROR_PATH_NOT_FOUND)
+             && (_retVal != ERROR_FILE_NOT_FOUND)) {
+                errorNumber = __MKSMALLINT(_retVal);
+            }
+        }
     }
 %}.
     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.
     ].
     ^ nil
 
@@ -16006,30 +16009,30 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isSmallInteger(subKeyIndex)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegEnumKeyExA(myKey, __intVal(subKeyIndex),
-			 nameBuffer, &nameSize,
-			 NULL,
-			 classNameBuffer, &classNameSize,
-			 &modificationTime)) == ERROR_SUCCESS) {
-	    nameBuffer[nameSize] = '\0';
-	    classNameBuffer[classNameSize] = '\0';
-	    subKeyName = __MKSTRING(nameBuffer);
-	    subKeyClassName = __MKSTRING(classNameBuffer);
-	} 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 = RegEnumKeyExA(myKey, __intVal(subKeyIndex),
+                         nameBuffer, &nameSize,
+                         NULL,
+                         classNameBuffer, &classNameSize,
+                         &modificationTime)) == ERROR_SUCCESS) {
+            nameBuffer[nameSize] = '\0';
+            classNameBuffer[classNameSize] = '\0';
+            subKeyName = __MKSTRING(nameBuffer);
+            subKeyClassName = __MKSTRING(classNameBuffer);
+        } else {
+            if ((_retVal != ERROR_PATH_NOT_FOUND)
+             && (_retVal != ERROR_FILE_NOT_FOUND)
+             && (_retVal != ERROR_NO_MORE_ITEMS)) {
+                errorNumber = __MKSMALLINT(_retVal);
+            }
+        }
     }
 %}.
     subKeyName notNil ifTrue:[
-	^ self subKeyNamed:subKeyName.
+        ^ self subKeyNamed:subKeyName.
     ].
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     ^ nil
 
@@ -16058,30 +16061,30 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isSmallInteger(subKeyIndex)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegEnumKeyExA(myKey, __intVal(subKeyIndex),
-			 nameBuffer, &nameSize,
-			 NULL,
-			 classNameBuffer, &classNameSize,
-			 &modificationTime)) == ERROR_SUCCESS) {
-	    nameBuffer[nameSize] = '\0';
-	    classNameBuffer[classNameSize] = '\0';
-	    subKeyName = __MKSTRING(nameBuffer);
-	    subKeyClassName = __MKSTRING(classNameBuffer);
-	} 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 = RegEnumKeyExA(myKey, __intVal(subKeyIndex),
+                         nameBuffer, &nameSize,
+                         NULL,
+                         classNameBuffer, &classNameSize,
+                         &modificationTime)) == ERROR_SUCCESS) {
+            nameBuffer[nameSize] = '\0';
+            classNameBuffer[classNameSize] = '\0';
+            subKeyName = __MKSTRING(nameBuffer);
+            subKeyClassName = __MKSTRING(classNameBuffer);
+        } 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.
     ].
     ^ nil
 
@@ -16119,9 +16122,9 @@
     "return a new registry entry below mySelf with the given subKey.
      Return nil if no such key exists.
      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
@@ -16248,11 +16251,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
@@ -16274,18 +16277,18 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isStringLike(aValueName)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegDeleteValueA(myKey, __stringVal(aValueName))) == 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 = RegDeleteValueA(myKey, __stringVal(aValueName))) == 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
 !
@@ -16305,25 +16308,25 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isSmallInteger(valueIndex)) {
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-	if ((_retVal = RegEnumValueA(myKey, __intVal(valueIndex),
-			 nameBuffer, &nameSize,
-			 NULL,
-			 &valueType,
-			 NULL, NULL)) == ERROR_SUCCESS) {
-	    nameBuffer[nameSize] = '\0';
-	    valueName = __MKSTRING(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 = RegEnumValueA(myKey, __intVal(valueIndex),
+                         nameBuffer, &nameSize,
+                         NULL,
+                         &valueType,
+                         NULL, NULL)) == ERROR_SUCCESS) {
+            nameBuffer[nameSize] = '\0';
+            valueName = __MKSTRING(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
 
@@ -16337,11 +16340,11 @@
 
 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_NONE        -> nil
+        REG_BINARY      -> ByteArray
+        REG_SZ          -> String
+        REG_MULTI_SZ    -> Array of strings
+        REG_DWORD       -> Integer
+        REG_NONE        -> nil
     "
 
     |stringArray retVal errorNumber|
@@ -16350,9 +16353,9 @@
     HKEY myKey;
     DWORD valueType;
     union {
-	DWORD dWord;
-	unsigned char dWordBytes[4];
-	unsigned char smallDataBuffer[1024*16];
+        DWORD dWord;
+        unsigned char dWordBytes[4];
+        unsigned char smallDataBuffer[1024*16];
     } quickData;
     int val;
     DWORD dataSize = sizeof(quickData);
@@ -16368,166 +16371,164 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isStringLike(aValueName)) {
-	int ret;
-
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-
-	/*
-	 * try to get it with one call ...
-	 */
-	ret = RegQueryValueEx(myKey, __stringVal(aValueName),
-			 NULL,
-			 &valueType,
-			 (char *)&quickData,
-			 &dataSize);
+        int ret;
+
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+        /*
+         * try to get it with one call ...
+         */
+        ret = RegQueryValueExA(myKey, __stringVal(aValueName),
+                         NULL,
+                         &valueType,
+                         (char *)&quickData,
+                         &dataSize);
 #if 0
-	console_printf("dataSize=%d\n", dataSize);
-#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\n", dataSize);
-	    console_printf("valueType=%d\n", 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 = RegQueryValueEx(myKey, __stringVal(aValueName),
-				 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 = RegQueryValueEx(myKey, __stringVal(aValueName),
+                                 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\n", dataSize);
-	    console_printf("valueType=%d\n", 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:
+            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:
 #ifdef USE_UNICODE
-		    retVal = __MKU16STRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
-#else
-		    retVal = __MKSTRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
-#endif
-		    break;
+                    retVal = __MKU16STRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
+#else
+                    retVal = __MKSTRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
+#endif
+                    break;
 
 #if 0
-		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_MULTI_SZ:
-		    {
-			CHAR *cp, *cp0;
-			int ns, i;
-
-			cp0 = dataBuffer ? dataBuffer : quickData.smallDataBuffer;
+                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_MULTI_SZ:
+                    {
+                        CHAR *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;
-			    CHAR *cp;
-
-			    cp = cp0;
-			    while (*cp++) ;;
+                        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;
+                            CHAR *cp;
+
+                            cp = cp0;
+                            while (*cp++) ;;
 #ifdef USE_UNICODE
-			    s = __MKU16STRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
-#else
-			    s = __MKSTRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
-#endif
-			    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);
-	    }
-	}
+                            s = __MKU16STRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
+#else
+                            s = __MKSTRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
+#endif
+                            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
@@ -16542,11 +16543,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
     "
 
     |data stringArray errorNumber|
@@ -16560,99 +16561,99 @@
 
     if (__isExternalAddressLike(__INST(handle))
      && __isStringLike(aValueName)) {
-	int ret;
-	OBJ cls;
-
-	myKey = (HKEY)__externalAddressVal(__INST(handle));
-
-	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(datum)) {
-	    valueType = REG_SZ;
-	    dataPointer = __stringVal(datum);
-	    dataSize = __stringSize(datum) + 1;
-	} 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;
-
-	    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;
-	}
-
-	if (datumOk) {
-	    ret = RegSetValueExA(myKey, __stringVal(aValueName),
-				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);
-	    }
-	}
+        int ret;
+        OBJ cls;
+
+        myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+        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(datum)) {
+            valueType = REG_SZ;
+            dataPointer = __stringVal(datum);
+            dataSize = __stringSize(datum) + 1;
+        } 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;
+
+            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;
+        }
+
+        if (datumOk) {
+            ret = RegSetValueExA(myKey, __stringVal(aValueName),
+                                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);
+            }
+        }
     }
 %}.
     errorNumber notNil ifTrue:[
-	(OperatingSystem errorHolderForNumber:errorNumber) reportError.
+        (OperatingSystem errorHolderForNumber:errorNumber) reportError.
     ].
     ^ false
 
@@ -16673,14 +16674,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.
     ]
 
     "
@@ -16688,7 +16689,7 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      top allSubKeysDo:[:subEntry |
-	Transcript showCR:subEntry path
+        Transcript showCR:subEntry path
      ]
     "
 !
@@ -16700,12 +16701,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.
     ]
 
     "
@@ -16713,7 +16714,7 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      top subKeyNamesAndClassesDo:[:nm :cls |
-	Transcript showCR:('name: ',nm,' class: ',cls)
+        Transcript showCR:('name: ',nm,' class: ',cls)
      ]
     "
 !
@@ -16745,13 +16746,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.
     ]
 
     "
@@ -16759,7 +16760,7 @@
 
      top := self key:'HKEY_LOCAL_MACHINE'.
      top subKeysDo:[:subEntry |
-	Transcript showCR:subEntry path
+        Transcript showCR:subEntry path
      ]
     "
     "
@@ -16767,11 +16768,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
+         ]
      ]
     "
 !
@@ -16780,7 +16781,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"
@@ -16790,7 +16791,7 @@
     "evaluate aBlock for all value names"
 
     self valueNamesDo:[:nm |
-	aBlock value:nm value:(self valueNamed:nm)
+        aBlock value:nm value:(self valueNamed:nm)
     ]
 
     "
@@ -16798,7 +16799,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).
      ]
     "
 !
@@ -16810,12 +16811,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.
     ]
 ! !
 
@@ -16835,9 +16836,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);
     }
 %}
 !
@@ -16850,7 +16851,7 @@
     "some entry has been collected - close it"
 
     handle notNil ifTrue:[
-	self closeKey.
+        self closeKey.
     ]
 
     "Created: / 19.5.1999 / 22:39:52 / cg"
@@ -16861,10 +16862,10 @@
 
 printOn:aStream
     aStream
-	nextPutAll:self className;
-	nextPut:$(;
-	nextPutAll:path;
-	nextPut:$).
+        nextPutAll:self className;
+        nextPut:$(;
+        nextPutAll:path;
+        nextPut:$).
 ! !
 
 !Win32OperatingSystem::RegistryEntry methodsFor:'private'!
@@ -16895,7 +16896,7 @@
 
     key = (HKEY)__longIntVal(integerHandleValue);
     if (! key) {
-	RETURN (nil);
+        RETURN (nil);
     }
 
     t = __MKEXTERNALADDRESS(key); __INST(handle) = t; __STORE(self, t);
@@ -16987,90 +16988,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
     ].
 
     "
@@ -17094,48 +17095,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: ;
@@ -17150,9 +17151,9 @@
 
 seekTo:newPosition from:whence
     "whence is one of:
-	#begin
-	#current
-	#end
+        #begin
+        #current
+        #end
     "
 
     |errSym errorNumber|
@@ -17164,24 +17165,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;
@@ -17192,18 +17193,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);
@@ -17218,9 +17219,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
     ].
 !
 
@@ -17241,84 +17242,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
     ].
 
     "
@@ -17368,8 +17369,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
 !
@@ -17391,8 +17392,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
 !
@@ -17414,8 +17415,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
 !
@@ -17440,8 +17441,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
 ! !
@@ -17457,25 +17458,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.
 !
@@ -17488,17 +17489,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
@@ -17525,39 +17526,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.
 
@@ -17581,75 +17582,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 = __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 = __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
@@ -17663,16 +17664,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
@@ -17712,61 +17713,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
@@ -17782,8 +17783,8 @@
     HANDLE __hEnum = (HANDLE)(__externalAddressVal(self));
 
     if (__hEnum) {
-	__externalAddressVal(self) = (HANDLE)0;
-	WNetCloseEnum(__hEnum);
+        __externalAddressVal(self) = (HANDLE)0;
+        WNetCloseEnum(__hEnum);
     }
 %}.
 ! !
@@ -17860,28 +17861,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.
 !
@@ -17906,20 +17907,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.
@@ -17952,7 +17953,7 @@
     DWORD __usage = __unsignedLongIntVal( flag );
 
     if( __usage & RESOURCEUSAGE_CONTAINER ) {
-	RETURN( true );
+        RETURN( true );
     }
 %}.
     ^ false
@@ -17962,7 +17963,7 @@
 
 closeHandle
     self address ~~ 0 ifTrue:[
-	OperatingSystem primClosePrinter:self.
+        OperatingSystem primClosePrinter:self.
     ]
 
     "Created: / 27-07-2006 / 14:48:37 / fm"
@@ -17997,9 +17998,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
@@ -18018,13 +18019,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;
@@ -18039,90 +18040,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 );
@@ -18149,42 +18150,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");
@@ -18204,9 +18205,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
     ].
 ! !
 
@@ -18219,9 +18220,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);
     }
 %}.
 ! !
@@ -18234,18 +18235,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.
@@ -18257,18 +18258,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.
@@ -18281,27 +18282,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: ;
 %}.
@@ -18314,26 +18315,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: ;
 %}.
@@ -18400,10 +18401,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]"
 
 
@@ -18415,10 +18416,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
@@ -18433,30 +18434,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;
     }
 
 {
@@ -18469,101 +18470,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:
@@ -18580,133 +18581,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:;
@@ -18718,67 +18719,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
     "
 !
 
@@ -18822,20 +18823,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));
@@ -18843,185 +18844,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
     "
 ! !
 
@@ -19029,7 +19030,7 @@
 
 initialize
 %{ /* NOCONTEXT */
-	__ExternalAddressInstPtr(self)->e_address = (void *)(INVALID_SOCKET);
+        __ExternalAddressInstPtr(self)->e_address = (void *)(INVALID_SOCKET);
 %}
 
     "
@@ -19065,8 +19066,8 @@
     SOCKET sock = (SOCKET)(__externalAddressVal(self));
 
     if (sock != INVALID_SOCKET) {
-	__externalAddressVal(self) = (void *)(INVALID_SOCKET);
-	closesocket(sock);
+        __externalAddressVal(self) = (void *)(INVALID_SOCKET);
+        closesocket(sock);
     }
 %}.
 ! !
@@ -19096,35 +19097,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"
@@ -19133,7 +19134,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"