comments
authorClaus Gittinger <cg@exept.de>
Fri, 14 Feb 2020 09:00:19 +0100
changeset 25262 cb9169b1c1d2
parent 25261 04f5f5a5e6e6
child 25263 b530ee616256
comments
AbstractOperatingSystem.st
UnixOperatingSystem.st
--- a/AbstractOperatingSystem.st	Thu Feb 13 22:05:58 2020 +0100
+++ b/AbstractOperatingSystem.st	Fri Feb 14 09:00:19 2020 +0100
@@ -610,7 +610,7 @@
     "as per default, assume that the terminal understands utf8"
 
     ConsoleOutputEncoder isNil ifTrue:[
-        ConsoleOutputEncoder := CharacterEncoder encoderForUTF8
+	ConsoleOutputEncoder := CharacterEncoder encoderForUTF8
     ].
     ^ ConsoleOutputEncoder
 ! !
@@ -636,16 +636,16 @@
     "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
     "
 
     self
-        openApplicationForDocument:aFilenameOrString
-        operation:operationSymbol
-        mimeType:nil
-        inDirectory:dir
+	openApplicationForDocument:aFilenameOrString
+	operation:operationSymbol
+	mimeType:nil
+	inDirectory:dir
 
     "
      OperatingSystem openApplicationForDocument:'cmd' operation:#open inDirectory:'c:\'
@@ -656,34 +656,34 @@
     "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:aFilenameOrStringOrURLString
-        operation:operationSymbol
-        mimeType:mimeTypeStringArgOrNil
-        inDirectory:nil
-        ifNone:[
-            |fn url|
-            
-            "/ last resort: use a fileBrowser,
-            "/ but only if it is a valid file (not a URL)
-            (fn := aFilenameOrStringOrURLString) asFilename exists ifFalse:[
-                url := aFilenameOrStringOrURLString asURL. 
-                (url method = 'file') ifFalse:[^ false].
-                fn := url path asFilename.
-                fn exists ifFalse:[^ false].
-            ].
-            FileBrowser default openOn:fn
-        ].
-        
+	openApplicationForDocument:aFilenameOrStringOrURLString
+	operation:operationSymbol
+	mimeType:mimeTypeStringArgOrNil
+	inDirectory:nil
+	ifNone:[
+	    |fn url|
+
+	    "/ last resort: use a fileBrowser,
+	    "/ but only if it is a valid file (not a URL)
+	    (fn := aFilenameOrStringOrURLString) asFilename exists ifFalse:[
+		url := aFilenameOrStringOrURLString asURL.
+		(url method = 'file') ifFalse:[^ false].
+		fn := url path asFilename.
+		fn exists ifFalse:[^ false].
+	    ].
+	    FileBrowser default openOn:fn
+	].
+
     ^ true
-    
+
     "
      OperatingSystem openApplicationForDocument: Filename currentDirectory operation:#open
      OperatingSystem openApplicationForDocument: '..\..\doc\books\ArtOfSmalltalk\artMissing186187Fix1.pdf' asFilename operation:#open
@@ -721,9 +721,9 @@
     "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.
     "
@@ -733,38 +733,38 @@
     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 includesString:'%1') ifTrue:[
-            openCommand := openCommand bindWith:aFilenameOrString asString.
-        ] ifFalse:[
-            openCommand := openCommand, ' "', aFilenameOrString asString, '"'.
-        ].
-
-        pid := self
-                startProcess:openCommand
-                inputFrom:nil outputTo:nil
-                errorTo:nil auxFrom:nil
-                environment:nil inDirectory:directoryStringOrFilenameOrNil
-                newPgrp:true showWindow:nil.
-        pid notNil ifTrue:[
-            UserPreferences current logExecutedOSCommands ifTrue:[
-                Transcript showCR:(('OS process for: %1 (pid=%2)' bindWith:openCommand with:pid) 
-                                        withColor:Color brown).  
-            ].
-            ^ self.
-        ].
-        UserPreferences current logExecutedOSCommands ifTrue:[
-            Transcript showCR:(('failed to start OS process for: %1' bindWith:openCommand) 
-                                    withColor:Color brown).  
-        ].
-        "/ self halt.
+	(openCommand includesString:'%1') ifTrue:[
+	    openCommand := openCommand bindWith:aFilenameOrString asString.
+	] ifFalse:[
+	    openCommand := openCommand, ' "', aFilenameOrString asString, '"'.
+	].
+
+	pid := self
+		startProcess:openCommand
+		inputFrom:nil outputTo:nil
+		errorTo:nil auxFrom:nil
+		environment:nil inDirectory:directoryStringOrFilenameOrNil
+		newPgrp:true showWindow:nil.
+	pid notNil ifTrue:[
+	    UserPreferences current logExecutedOSCommands ifTrue:[
+		Transcript showCR:(('OS process for: %1 (pid=%2)' bindWith:openCommand with:pid)
+					withColor:Color brown).
+	    ].
+	    ^ self.
+	].
+	UserPreferences current logExecutedOSCommands ifTrue:[
+	    Transcript showCR:(('failed to start OS process for: %1' bindWith:openCommand)
+				    withColor:Color brown).
+	].
+	"/ self halt.
     ].
     ExecutionError raiseErrorString:'execution of command failed: ', openCommand.
 
@@ -785,20 +785,20 @@
     "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:directoryStringOrFilenameOrNil.
+	^ self
+	    openApplicationForDocument:aFilenameOrString
+	    operation:operationSymbol mimeType:mimeTypeStringArgOrNil
+	    inDirectory:directoryStringOrFilenameOrNil.
     ] on:ExecutionError do:[:ex|
-        exceptionBlock value.
+	exceptionBlock value.
     ].
 ! !
 
@@ -968,7 +968,7 @@
 !AbstractOperatingSystem class methodsFor:'executing OS commands-implementation'!
 
 exec:aCommandPath withArguments:argArray environment:env fileDescriptors:fds fork:doFork
-                  newPgrp:newGrp inDirectory:aDirectory showWindow:showWindowBooleanOrNil
+		  newPgrp:newGrp inDirectory:aDirectory showWindow:showWindowBooleanOrNil
     "execute an OS command, return a pid.
      Notice: on Unix, this id is an integer; on Windows, it is a processhandle."
 
@@ -1018,41 +1018,41 @@
     aCommandString isNil ifTrue:[^ nil].
 
     (in := anExternalInStreamOrNil) isNil ifTrue:[
-        nullStream := Filename nullDevice readWriteStream.
-        in := nullStream.
+	nullStream := Filename nullDevice readWriteStream.
+	in := nullStream.
     ].
     (out := anExternalOutStreamOrNil) isNil ifTrue:[
-        nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
-        out := nullStream.
+	nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
+	out := nullStream.
     ].
     (err := anExternalErrStreamOrNil) isNil ifTrue:[
-        err := out
+	err := out
     ].
     anAuxiliaryInStreamOrNil notNil ifTrue:[
-        auxInFd := anAuxiliaryInStreamOrNil fileHandle.
+	auxInFd := anAuxiliaryInStreamOrNil fileHandle.
     ].
     anAuxiliaryOutStreamOrNil notNil ifTrue:[
-        auxOutFd := anAuxiliaryOutStreamOrNil fileHandle.
+	auxOutFd := anAuxiliaryOutStreamOrNil fileHandle.
     ].
 
     shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
 
     pid := self
-        exec:(shellAndArgs at:1)
-        withArguments:(shellAndArgs at:2)
-        environment:anEvironmentDictionary
-        fileDescriptors:(Array with:in fileHandle    "/ 0
-                               with:out fileHandle   "/ 1
-                               with:err fileHandle   "/ 2
-                               with:auxInFd          "/ 3
-                               with:auxOutFd)        "/ 4
-        fork:true
-        newPgrp:newPgrp
-        inDirectory:dir
-        showWindow:(showWindowBooleanOrNil ? (shellAndArgs at:3)).
+	exec:(shellAndArgs at:1)
+	withArguments:(shellAndArgs at:2)
+	environment:anEvironmentDictionary
+	fileDescriptors:(Array with:in fileHandle    "/ 0
+			       with:out fileHandle   "/ 1
+			       with:err fileHandle   "/ 2
+			       with:auxInFd          "/ 3
+			       with:auxOutFd)        "/ 4
+	fork:true
+	newPgrp:newPgrp
+	inDirectory:dir
+	showWindow:(showWindowBooleanOrNil ? (shellAndArgs at:3)).
 
     nullStream notNil ifTrue:[
-        nullStream close.
+	nullStream close.
     ].
 
     ^ pid
@@ -1077,7 +1077,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:osStatus | sema signal ].
+	 Processor monitorPid:pid action:[:osStatus | sema signal ].
      ].
      in close.
      out close.
@@ -1092,10 +1092,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'(sleep 2; ls -l) > out 2>err'
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'(sleep 2; ls -l) > out 2>err'
+	    ]
+	    action:[:osStatus | sema signal ].
 
      sema wait.
      Transcript showCR:'finished'
@@ -1107,10 +1107,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'(sleep 1; echo 1; sleep 9; ls -l) > out 2>err'
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'(sleep 1; echo 1; sleep 9; ls -l) > out 2>err'
+	    ]
+	    action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:2.
      OperatingSystem terminateProcess:pid.
@@ -1141,7 +1141,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:OSstatus | sema signal ].
+	 Processor monitorPid:pid action:[:OSstatus | sema signal ].
      ].
      in close.
      out close.
@@ -1156,10 +1156,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'dir > out 2>err'
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'dir > out 2>err'
+	    ]
+	    action:[:osStatus | sema signal ].
 
      sema wait.
      Transcript showCR:'finished'
@@ -1171,10 +1171,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'(echo 1 & stx --eval "Delay waitForSeconds:100" & dir) >out' withCRs
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'(echo 1 & stx --eval "Delay waitForSeconds:100" & dir) >out' withCRs
+	    ]
+	    action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:5.
      OperatingSystem terminateProcessGroup:pid.
@@ -1187,10 +1187,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:{ 'C:\Users\cg\work\stx\projects\smalltalk\stx.com' . '--eval' . '"Delay waitForSeconds:100"' }
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:{ 'C:\Users\cg\work\stx\projects\smalltalk\stx.com' . '--eval' . '"Delay waitForSeconds:100"' }
+	    ]
+	    action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:5.
      OperatingSystem terminateProcess:pid.
@@ -1204,8 +1204,8 @@
     "Created: / 12.11.1998 / 14:39:20 / cg"
 !
 
-startProcess:aCommandString 
-    inputFrom:anExternalInStreamOrNil outputTo:anExternalOutStreamOrNil errorTo:anExternalErrStreamOrNil 
+startProcess:aCommandString
+    inputFrom:anExternalInStreamOrNil outputTo:anExternalOutStreamOrNil errorTo:anExternalErrStreamOrNil
     auxFrom:anAuxiliaryInStreamOrNil
     environment:anEvironmentDictionary inDirectory:dir newPgrp:newPgrp showWindow:showWindowBooleanOrNil
 
@@ -1223,12 +1223,12 @@
      or #killProcess: to stop it."
 
     ^ self
-        startProcess:aCommandString 
-        inputFrom:anExternalInStreamOrNil outputTo:anExternalOutStreamOrNil errorTo:anExternalErrStreamOrNil 
-        auxFrom:anAuxiliaryInStreamOrNil aux2To:nil
-        environment:anEvironmentDictionary inDirectory:dir 
-        newPgrp:newPgrp 
-        showWindow:showWindowBooleanOrNil
+	startProcess:aCommandString
+	inputFrom:anExternalInStreamOrNil outputTo:anExternalOutStreamOrNil errorTo:anExternalErrStreamOrNil
+	auxFrom:anAuxiliaryInStreamOrNil aux2To:nil
+	environment:anEvironmentDictionary inDirectory:dir
+	newPgrp:newPgrp
+	showWindow:showWindowBooleanOrNil
 
     "blocking at current prio (i.e. only higher prio threads execute):
 
@@ -1250,7 +1250,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:osStatus | sema signal ].
+	 Processor monitorPid:pid action:[:osStatus | sema signal ].
      ].
      in close.
      out close.
@@ -1265,10 +1265,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'(sleep 2; ls -l) > out 2>err'
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'(sleep 2; ls -l) > out 2>err'
+	    ]
+	    action:[:osStatus | sema signal ].
 
      sema wait.
      Transcript showCR:'finished'
@@ -1280,10 +1280,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'(sleep 1; echo 1; sleep 9; ls -l) > out 2>err'
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'(sleep 1; echo 1; sleep 9; ls -l) > out 2>err'
+	    ]
+	    action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:2.
      OperatingSystem terminateProcess:pid.
@@ -1314,7 +1314,7 @@
      The following will no longer work. monitorPid has disappeared
 
      pid notNil ifTrue:[
-         Processor monitorPid:pid action:[:OSstatus | sema signal ].
+	 Processor monitorPid:pid action:[:OSstatus | sema signal ].
      ].
      in close.
      out close.
@@ -1329,10 +1329,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'dir > out 2>err'
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'dir > out 2>err'
+	    ]
+	    action:[:osStatus | sema signal ].
 
      sema wait.
      Transcript showCR:'finished'
@@ -1344,10 +1344,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:'(echo 1 & stx --eval "Delay waitForSeconds:100" & dir) >out' withCRs
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:'(echo 1 & stx --eval "Delay waitForSeconds:100" & dir) >out' withCRs
+	    ]
+	    action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:5.
      OperatingSystem terminateProcessGroup:pid.
@@ -1360,10 +1360,10 @@
      sema := Semaphore new.
 
      Processor
-            monitor:[
-                pid := OperatingSystem startProcess:{ 'C:\Users\cg\work\stx\projects\smalltalk\stx.com' . '--eval' . '"Delay waitForSeconds:100"' }
-            ]
-            action:[:osStatus | sema signal ].
+	    monitor:[
+		pid := OperatingSystem startProcess:{ 'C:\Users\cg\work\stx\projects\smalltalk\stx.com' . '--eval' . '"Delay waitForSeconds:100"' }
+	    ]
+	    action:[:osStatus | sema signal ].
 
      Delay waitForSeconds:5.
      OperatingSystem terminateProcess:pid.
@@ -1390,15 +1390,15 @@
      Return true if successful, false otherwise."
 
      ^ self
-        executeCommand:aCommandString
-        inputFrom:nil
-        outputTo:nil
-        errorTo:nil
-        auxFrom:nil
-        environment:nil
-        inDirectory:nil
-        lineWise:false
-        onError:[:status| false]
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
+	auxFrom:nil
+	environment:nil
+	inDirectory:nil
+	lineWise:false
+	onError:[:status| false]
 
     "unix:
 
@@ -1519,15 +1519,15 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:nil
-        outputTo:nil
-        errorTo:nil
-        auxFrom:nil
-        environment:nil
-        inDirectory:aDirectory
-        lineWise:false
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
+	auxFrom:nil
+	environment:nil
+	inDirectory:aDirectory
+	lineWise:false
+	onError:aBlock
 
     "Modified: / 10.11.1998 / 20:54:37 / cg"
 !
@@ -1657,34 +1657,34 @@
      avoid blocking on pipes.
 
      Special for windows:
-        you can control (have to - sigh) if a window should be shown for the command or not.
-        This is the OS's H_SHOWWINDOW argument.
-        If you pass nil as showWindow-argument, the OS's default is used for the particular
-        command, which is correct most of the time: i.e. a notepad will open its window, other (non-UI)
-        executables will not.
-        However, some command-line executables show a window, even if they should not.
-        (and also, there seems to be an inconsistency between windows7 and newer windows: in newer,
-         a shell command opens a cmd-window, whereas in windows7 it did not)
-        In this case, pass an explicit false argument to suppress it.
-        This argument is ignored on Unix systems.
-        See examples below."
+	you can control (have to - sigh) if a window should be shown for the command or not.
+	This is the OS's H_SHOWWINDOW argument.
+	If you pass nil as showWindow-argument, the OS's default is used for the particular
+	command, which is correct most of the time: i.e. a notepad will open its window, other (non-UI)
+	executables will not.
+	However, some command-line executables show a window, even if they should not.
+	(and also, there seems to be an inconsistency between windows7 and newer windows: in newer,
+	 a shell command opens a cmd-window, whereas in windows7 it did not)
+	In this case, pass an explicit false argument to suppress it.
+	This argument is ignored on Unix systems.
+	See examples below."
 
     |osProcess|
 
     osProcess := OSProcess new
-        command:aCommandStringOrArray
-        environment:environmentDictionary
-        directory:dirOrNil
-        inStream:anInStream
-        outStream:anOutStream
-        errorStream:anErrStream
-        auxStream:anAuxStream
-        showWindow:showWindowBooleanOrNil
-        lineWise:lineWise.
+	command:aCommandStringOrArray
+	environment:environmentDictionary
+	directory:dirOrNil
+	inStream:anInStream
+	outStream:anOutStream
+	errorStream:anErrStream
+	auxStream:anAuxStream
+	showWindow:showWindowBooleanOrNil
+	lineWise:lineWise.
 
     osProcess execute ifFalse:[
-        aBlock value:osProcess exitStatus.
-        ^ false.
+	aBlock value:osProcess exitStatus.
+	^ false.
     ].
     ^ true.
 
@@ -1715,53 +1715,53 @@
      avoid blocking on pipes"
 
     ^ self
-        executeCommand:aCommandStringOrArray inputFrom:anInStream outputTo:anOutStream
-        errorTo:anErrStream auxFrom:anAuxStream environment:environmentDictionary
-        inDirectory:dirOrNil lineWise:lineWise showWindow:false onError:aBlock
-
-    "
-        |outStream errStream|
-
-        outStream := '' writeStream.
-
-        OperatingSystem executeCommand:'ls -l'
-                        inputFrom:'abc' readStream
-                        outputTo:outStream
-                        errorTo:nil
-                        inDirectory:nil
-                        lineWise:true
-                        onError:[:exitStatus | ^ false].
-        outStream contents
-    "
-
-    "
-        |outStream errStream|
-
-        outStream := #[] writeStream.
-
-        OperatingSystem executeCommand:'cat'
-                        inputFrom:(ByteArray new:5000000) readStream
-                        outputTo:outStream
-                        errorTo:nil
-                        inDirectory:nil
-                        lineWise:false
-                        onError:[:exitStatus | ^ false].
-        outStream size
-    "
-
-    "
-        |outStream errStream|
-
-        outStream := '' writeStream.
-
-        OperatingSystem executeCommand:'gpg -s --batch --no-tty --passphrase-fd 0 /tmp/passwd'
-                        inputFrom:'bla' readStream
-                        outputTo:outStream
-                        errorTo:nil
-                        inDirectory:nil
-                        lineWise:true
-                        onError:[:exitStatus |  false].
-        outStream contents
+	executeCommand:aCommandStringOrArray inputFrom:anInStream outputTo:anOutStream
+	errorTo:anErrStream auxFrom:anAuxStream environment:environmentDictionary
+	inDirectory:dirOrNil lineWise:lineWise showWindow:false onError:aBlock
+
+    "
+	|outStream errStream|
+
+	outStream := '' writeStream.
+
+	OperatingSystem executeCommand:'ls -l'
+			inputFrom:'abc' readStream
+			outputTo:outStream
+			errorTo:nil
+			inDirectory:nil
+			lineWise:true
+			onError:[:exitStatus | ^ false].
+	outStream contents
+    "
+
+    "
+	|outStream errStream|
+
+	outStream := #[] writeStream.
+
+	OperatingSystem executeCommand:'cat'
+			inputFrom:(ByteArray new:5000000) readStream
+			outputTo:outStream
+			errorTo:nil
+			inDirectory:nil
+			lineWise:false
+			onError:[:exitStatus | ^ false].
+	outStream size
+    "
+
+    "
+	|outStream errStream|
+
+	outStream := '' writeStream.
+
+	OperatingSystem executeCommand:'gpg -s --batch --no-tty --passphrase-fd 0 /tmp/passwd'
+			inputFrom:'bla' readStream
+			outputTo:outStream
+			errorTo:nil
+			inDirectory:nil
+			lineWise:true
+			onError:[:exitStatus |  false].
+	outStream contents
     "
 
     "Modified: / 11-02-2007 / 20:54:39 / cg"
@@ -1791,66 +1791,66 @@
      avoid blocking on pipes.
 
      Special for windows:
-        you can control (have to - sigh) if a window should be shown for the command or not.
-        This is the OS's H_SHOWWINDOW argument.
-        If you pass nil as showWindow-argument, the OS's default is used for the particular
-        command, which is correct most of the time: i.e. a notepad will open its window, other (non-UI)
-        executables will not.
-        However, some command-line executables show a window, even if they should not.
-        (and also, there seems to be an inconsistency between windows7 and newer windows: in newer,
-         a shell command opens a cmd-window, whereas in windows7 it did not)
-        In this case, pass an explicit false argument to suppress it.
-        This argument is ignored on Unix systems.
-        See examples below."
+	you can control (have to - sigh) if a window should be shown for the command or not.
+	This is the OS's H_SHOWWINDOW argument.
+	If you pass nil as showWindow-argument, the OS's default is used for the particular
+	command, which is correct most of the time: i.e. a notepad will open its window, other (non-UI)
+	executables will not.
+	However, some command-line executables show a window, even if they should not.
+	(and also, there seems to be an inconsistency between windows7 and newer windows: in newer,
+	 a shell command opens a cmd-window, whereas in windows7 it did not)
+	In this case, pass an explicit false argument to suppress it.
+	This argument is ignored on Unix systems.
+	See examples below."
 
     ^ self
-        executeCommand:aCommandStringOrArray inputFrom:anInStream outputTo:anOutStream
-        errorTo:anErrStream auxFrom:anAuxStream environment:environmentDictionary
-        inDirectory:dirOrNil lineWise:lineWise newPgrp:true showWindow:showWindowBooleanOrNil onError:aBlock
-
-    "
-        |outStream errStream|
-
-        outStream := '' writeStream.
-
-        OperatingSystem executeCommand:'ls -l'
-                        inputFrom:'abc' readStream
-                        outputTo:outStream
-                        errorTo:nil
-                        inDirectory:nil
-                        lineWise:true
-                        onError:[:exitStatus | ^ false].
-        outStream contents
-    "
-
-    "
-        |outStream errStream|
-
-        outStream := #[] writeStream.
-
-        OperatingSystem executeCommand:'cat'
-                        inputFrom:(ByteArray new:5000000) readStream
-                        outputTo:outStream
-                        errorTo:nil
-                        inDirectory:nil
-                        lineWise:false
-                        onError:[:exitStatus | ^ false].
-        outStream size
-    "
-
-    "
-        |outStream errStream|
-
-        outStream := '' writeStream.
-
-        OperatingSystem executeCommand:'gpg -s --batch --no-tty --passphrase-fd 0 /tmp/passwd'
-                        inputFrom:'bla' readStream
-                        outputTo:outStream
-                        errorTo:nil
-                        inDirectory:nil
-                        lineWise:true
-                        onError:[:exitStatus |  false].
-        outStream contents
+	executeCommand:aCommandStringOrArray inputFrom:anInStream outputTo:anOutStream
+	errorTo:anErrStream auxFrom:anAuxStream environment:environmentDictionary
+	inDirectory:dirOrNil lineWise:lineWise newPgrp:true showWindow:showWindowBooleanOrNil onError:aBlock
+
+    "
+	|outStream errStream|
+
+	outStream := '' writeStream.
+
+	OperatingSystem executeCommand:'ls -l'
+			inputFrom:'abc' readStream
+			outputTo:outStream
+			errorTo:nil
+			inDirectory:nil
+			lineWise:true
+			onError:[:exitStatus | ^ false].
+	outStream contents
+    "
+
+    "
+	|outStream errStream|
+
+	outStream := #[] writeStream.
+
+	OperatingSystem executeCommand:'cat'
+			inputFrom:(ByteArray new:5000000) readStream
+			outputTo:outStream
+			errorTo:nil
+			inDirectory:nil
+			lineWise:false
+			onError:[:exitStatus | ^ false].
+	outStream size
+    "
+
+    "
+	|outStream errStream|
+
+	outStream := '' writeStream.
+
+	OperatingSystem executeCommand:'gpg -s --batch --no-tty --passphrase-fd 0 /tmp/passwd'
+			inputFrom:'bla' readStream
+			outputTo:outStream
+			errorTo:nil
+			inDirectory:nil
+			lineWise:true
+			onError:[:exitStatus |  false].
+	outStream contents
     "
 
     "Modified: / 08-11-2016 / 21:33:00 / cg"
@@ -1900,16 +1900,16 @@
      error resp. - i.e. usually, i/o will be from/to the terminal"
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:environmentOrNil
-        inDirectory:dirOrNil
-        lineWise:lineWise
-        showWindow:showWindow
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:environmentOrNil
+	inDirectory:dirOrNil
+	lineWise:lineWise
+	showWindow:showWindow
+	onError:aBlock
 
     "Created: / 09-08-2017 / 22:51:51 / cg"
 !
@@ -1925,58 +1925,58 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:env
-        inDirectory:nil
-        lineWise:false
-        onError:aBlock
-
-    "
-        OperatingSystem
-            executeCommand:'dir'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-
-        OperatingSystem
-            executeCommand:'foo'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls /fooBar'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:env
+	inDirectory:nil
+	lineWise:false
+	onError:aBlock
+
+    "
+	OperatingSystem
+	    executeCommand:'dir'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+
+	OperatingSystem
+	    executeCommand:'foo'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls /fooBar'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
     "
 
     "Modified: / 10.11.1998 / 20:51:39 / cg"
@@ -1993,59 +1993,59 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:env
-        inDirectory:nil
-        lineWise:false
-        showWindow:showWindow
-        onError:aBlock
-
-    "
-        OperatingSystem
-            executeCommand:'dir'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-
-        OperatingSystem
-            executeCommand:'foo'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls /fooBar'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:env
+	inDirectory:nil
+	lineWise:false
+	showWindow:showWindow
+	onError:aBlock
+
+    "
+	OperatingSystem
+	    executeCommand:'dir'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+
+	OperatingSystem
+	    executeCommand:'foo'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls /fooBar'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
     "
 
     "Modified: / 10.11.1998 / 20:51:39 / cg"
@@ -2096,15 +2096,15 @@
      error resp. - i.e. usually, i/o will be from/to the terminal"
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:nil
-        inDirectory:dirOrNil
-        lineWise:lineWise
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:nil
+	inDirectory:dirOrNil
+	lineWise:lineWise
+	onError:aBlock
 !
 
 executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream inDirectory:dirOrNil lineWise:lineWise showWindow:showWindow onError:aBlock
@@ -2124,16 +2124,16 @@
      error resp. - i.e. usually, i/o will be from/to the terminal"
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:nil
-        inDirectory:dirOrNil
-        lineWise:lineWise
-        showWindow:showWindow
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:nil
+	inDirectory:dirOrNil
+	lineWise:lineWise
+	showWindow:showWindow
+	onError:aBlock
 !
 
 executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream inDirectory:dirOrNil onError:aBlock
@@ -2153,51 +2153,51 @@
      error resp. - i.e. i/o will be from/to the xterminal"
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:nil
-        inDirectory:dirOrNil
-        lineWise:false
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:nil
+	inDirectory:dirOrNil
+	lineWise:false
+	onError:aBlock
 
     "
      OperatingSystem
-         executeCommand:'dir'
-         inputFrom:nil
-         outputTo:nil
-         errorTo:nil
-         inDirectory:'c:'
-         onError:[:status | Transcript flash]
+	 executeCommand:'dir'
+	 inputFrom:nil
+	 outputTo:nil
+	 errorTo:nil
+	 inDirectory:'c:'
+	 onError:[:status | Transcript flash]
 
      OperatingSystem
-         executeCommand:'foo'
-         inputFrom:nil
-         outputTo:nil
-         errorTo:nil
-         inDirectory:'/etc'
-         onError:[:status | Transcript flash]
+	 executeCommand:'foo'
+	 inputFrom:nil
+	 outputTo:nil
+	 errorTo:nil
+	 inDirectory:'/etc'
+	 onError:[:status | Transcript flash]
 
      |s|
      s := '' writeStream.
      OperatingSystem
-         executeCommand:'ls -l'
-         inputFrom:nil
-         outputTo:s
-         errorTo:nil
-         onError:[:status | Transcript flash].
+	 executeCommand:'ls -l'
+	 inputFrom:nil
+	 outputTo:s
+	 errorTo:nil
+	 onError:[:status | Transcript flash].
      Transcript showCR:s contents.
 
      |s|
      s := '' writeStream.
      OperatingSystem
-         executeCommand:'sh foo'
-         inputFrom:nil
-         outputTo:s
-         errorTo:s
-         onError:[:status | Transcript flash].
+	 executeCommand:'sh foo'
+	 inputFrom:nil
+	 outputTo:s
+	 errorTo:s
+	 onError:[:status | Transcript flash].
      Transcript showCR:s contents.
     "
 
@@ -2218,59 +2218,59 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:nil
-        inDirectory:dir
-        lineWise:false
-        showWindow:showWindow
-        onError:aBlock
-
-    "
-        OperatingSystem
-            executeCommand:'dir'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-
-        OperatingSystem
-            executeCommand:'foo'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls /fooBar'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:nil
+	inDirectory:dir
+	lineWise:false
+	showWindow:showWindow
+	onError:aBlock
+
+    "
+	OperatingSystem
+	    executeCommand:'dir'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+
+	OperatingSystem
+	    executeCommand:'foo'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls /fooBar'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
     "
 
     "Modified: / 10.11.1998 / 20:51:39 / cg"
@@ -2287,58 +2287,58 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:nil
-        inDirectory:nil
-        lineWise:false
-        onError:aBlock
-
-    "
-        OperatingSystem
-            executeCommand:'dir'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-
-        OperatingSystem
-            executeCommand:'foo'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls /fooBar'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:nil
+	inDirectory:nil
+	lineWise:false
+	onError:aBlock
+
+    "
+	OperatingSystem
+	    executeCommand:'dir'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+
+	OperatingSystem
+	    executeCommand:'foo'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls /fooBar'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
     "
 
     "Modified: / 10.11.1998 / 20:51:39 / cg"
@@ -2355,59 +2355,59 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:anInStream
-        outputTo:anOutStream
-        errorTo:anErrStream
-        auxFrom:nil
-        environment:nil
-        inDirectory:nil
-        lineWise:false
-        showWindow:showWindow
-        onError:aBlock
-
-    "
-        OperatingSystem
-            executeCommand:'dir'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-
-        OperatingSystem
-            executeCommand:'foo'
-            inputFrom:nil
-            outputTo:nil
-            errorTo:nil
-            onError:[:status | Transcript flash]
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
-    "
-    "
-        |outStr errStr|
-
-        outStr := '' writeStream.
-        errStr := '' writeStream.
-        OperatingSystem
-            executeCommand:'ls /fooBar'
-            inputFrom:nil
-            outputTo:outStr
-            errorTo:errStr
-            onError:[:status | Transcript flash].
-        Transcript show:'out:'; showCR:outStr contents.
-        Transcript show:'err:'; showCR:errStr contents.
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:nil
+	environment:nil
+	inDirectory:nil
+	lineWise:false
+	showWindow:showWindow
+	onError:aBlock
+
+    "
+	OperatingSystem
+	    executeCommand:'dir'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+
+	OperatingSystem
+	    executeCommand:'foo'
+	    inputFrom:nil
+	    outputTo:nil
+	    errorTo:nil
+	    onError:[:status | Transcript flash]
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
+    "
+    "
+	|outStr errStr|
+
+	outStr := '' writeStream.
+	errStr := '' writeStream.
+	OperatingSystem
+	    executeCommand:'ls /fooBar'
+	    inputFrom:nil
+	    outputTo:outStr
+	    errorTo:errStr
+	    onError:[:status | Transcript flash].
+	Transcript show:'out:'; showCR:outStr contents.
+	Transcript show:'err:'; showCR:errStr contents.
     "
 
     "Modified: / 10.11.1998 / 20:51:39 / cg"
@@ -2424,15 +2424,15 @@
      (containing the exit status) as argument."
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:nil
-        outputTo:nil
-        errorTo:nil
-        auxFrom:nil
-        environment:nil
-        inDirectory:nil
-        lineWise:false
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
+	auxFrom:nil
+	environment:nil
+	inDirectory:nil
+	lineWise:false
+	onError:aBlock
 
     "unix:
 
@@ -2693,7 +2693,7 @@
 
     result := self getCommandOutputFrom:aCommand maxNumberOfLines:1 errorDisposition:#discard.
     result notNil ifTrue:[
-        ^ result firstIfEmpty:['']
+	^ result firstIfEmpty:['']
     ].
     ^ result
 
@@ -2725,30 +2725,30 @@
     |result|
 
     PipeFailed ~~ true ifTrue:[
-        PipeStream openErrorSignal handle:[:ex |
-            PipeFailed := true.
-            'OperatingSystem [warning]: cannot fork/popen' errorPrintCR.
-            ex return.
-        ] do:[
-            |p line|
-
-            p := PipeStream
-                    readingFrom:aCommand
-                    errorDisposition:errorDisposition
-                    inDirectory:nil.
-            result := StringCollection new.
-            [p atEnd] whileFalse:[
-                line := p nextLine.
-                (numLinesOrNil isNil
-                or:[result size < numLinesOrNil]) ifTrue:[
-                    result add:line
-                ].
-            ].
-            p close.
-            (p exitStatus notNil and:[p exitStatus success]) ifFalse:[
-                result := result asNilIfEmpty
-            ].
-        ].
+	PipeStream openErrorSignal handle:[:ex |
+	    PipeFailed := true.
+	    'OperatingSystem [warning]: cannot fork/popen' errorPrintCR.
+	    ex return.
+	] do:[
+	    |p line|
+
+	    p := PipeStream
+		    readingFrom:aCommand
+		    errorDisposition:errorDisposition
+		    inDirectory:nil.
+	    result := StringCollection new.
+	    [p atEnd] whileFalse:[
+		line := p nextLine.
+		(numLinesOrNil isNil
+		or:[result size < numLinesOrNil]) ifTrue:[
+		    result add:line
+		].
+	    ].
+	    p close.
+	    (p exitStatus notNil and:[p exitStatus success]) ifFalse:[
+		result := result asNilIfEmpty
+	    ].
+	].
     ].
     ^ result
 
@@ -3123,14 +3123,14 @@
 !
 
 startProcess:aCommandString inputFrom:anExternalInStream outputTo:anExternalOutStream
-    errorTo:anExternalErrStream auxFrom:anExternalAuxStreamOrNil environment:environment 
+    errorTo:anExternalErrStream auxFrom:anExternalAuxStreamOrNil environment:environment
     inDirectory:dir
     <resource: #obsolete>
 
     ^ self
-        startProcess:aCommandString inputFrom:anExternalInStream outputTo:anExternalOutStream
-        errorTo:anExternalErrStream auxFrom:anExternalAuxStreamOrNil environment:environment
-        inDirectory:dir newPgrp:true showWindow:nil
+	startProcess:aCommandString inputFrom:anExternalInStream outputTo:anExternalOutStream
+	errorTo:anExternalErrStream auxFrom:anExternalAuxStreamOrNil environment:environment
+	inDirectory:dir newPgrp:true showWindow:nil
 
     "Modified (format): / 19-02-2019 / 23:06:28 / Claus Gittinger"
 !
@@ -3323,43 +3323,43 @@
     |osErrorHolder parentDirName|
 
     (self isDirectory:dirName) ifTrue:[
-        ^ nil.
+	^ nil.
     ].
 
     (osErrorHolder := self createDirectory:dirName) isNil ifTrue:[
-        "directory was created"
-        aOneArgBlock notNil ifTrue:[        
-            aOneArgBlock value:dirName asFilename.
-        ].
-        ^ nil.
+	"directory was created"
+	aOneArgBlock notNil ifTrue:[
+	    aOneArgBlock value:dirName asFilename.
+	].
+	^ nil.
     ].
 
     osErrorHolder errorCategory ~~ #nonexistentSignal ifTrue:[
-        ^ osErrorHolder.
+	^ osErrorHolder.
     ].
 
-    "create failed because parent does not exist, try to create parent directorie(s)"            
+    "create failed because parent does not exist, try to create parent directorie(s)"
     parentDirName := dirName asFilename directory osNameForDirectory.
     dirName ~= parentDirName ifTrue:[
-        osErrorHolder := self recursiveCreateDirectory:parentDirName forEachCreatedDo:aOneArgBlock.
-        osErrorHolder notNil ifTrue:[
-            ^ osErrorHolder.
-        ].
+	osErrorHolder := self recursiveCreateDirectory:parentDirName forEachCreatedDo:aOneArgBlock.
+	osErrorHolder notNil ifTrue:[
+	    ^ osErrorHolder.
+	].
     ].
 
     "parent directory chain has been created, try again"
     osErrorHolder := self createDirectory:dirName.
     osErrorHolder isNil ifTrue:[
-        aOneArgBlock notNil ifTrue:[        
-            aOneArgBlock value:dirName asFilename.
-        ].
+	aOneArgBlock notNil ifTrue:[
+	    aOneArgBlock value:dirName asFilename.
+	].
     ].
     ^ osErrorHolder.
 
     "
-     OperatingSystem 
-            recursiveCreateDirectory:'/tmp/bla/fasel/murks' 
-            forEachCreatedDo:[:name| self halt].
+     OperatingSystem
+	    recursiveCreateDirectory:'/tmp/bla/fasel/murks'
+	    forEachCreatedDo:[:name| self halt].
 
      OperatingSystem recursiveRemoveDirectory:'/tmp/bla'.
 
@@ -3672,12 +3672,12 @@
     "/ expecco expects an OrderedCollection here
     "/
     ^ Array
-        with:'/'
-        with:(self getHomeDirectory)
-        with:(Filename currentDirectory pathName)
-
-    "
-        OperatingSystem getDriveList
+	with:'/'
+	with:(self getHomeDirectory)
+	with:(Filename currentDirectory pathName)
+
+    "
+	OperatingSystem getDriveList
     "
 
     "Modified: / 05-05-1999 / 01:06:26 / cg"
@@ -4534,15 +4534,15 @@
     self obsoleteMethodWarning:'use executeCommand:inDirectory:onError:'.
 
     ^ self
-        executeCommand:aCommandString
-        inputFrom:nil
-        outputTo:nil
-        errorTo:nil
-        auxFrom:nil
-        environment:nil
-        inDirectory:aDirectory
-        lineWise:false
-        onError:aBlock
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
+	auxFrom:nil
+	environment:nil
+	inDirectory:aDirectory
+	lineWise:false
+	onError:aBlock
 
     "Modified: / 10.11.1998 / 20:54:37 / cg"
 ! !
@@ -4729,42 +4729,42 @@
     "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.
 
@@ -5607,45 +5607,45 @@
     "/ accept the fact that sometimes, we cannot figure out, where I am
     execPath := self pathOfSTXExecutable.
     execPath notNil ifTrue:[
-        "/
-        "/ the executable's directory:
-        "/      (/opt/stx/bin/stx -> /opt/stx/bin)
-        "/
-        appDir := execPath asFilename directory.
-        dirName := appDir pathName.
-        (packagePath includes:dirName) ifFalse:[
-            packagePath add:dirName.
-        ].
-
-        "/
-        "/ the executable's parent directory:
-        "/      (/opt/stx/bin/stx -> /opt/stx)
-        "/
-        appDir := appDir directory.
-        dirName := appDir pathName.
-        (packagePath includes:dirName) ifFalse:[
-            packagePath add:dirName.
-        ].
+	"/
+	"/ the executable's directory:
+	"/      (/opt/stx/bin/stx -> /opt/stx/bin)
+	"/
+	appDir := execPath asFilename directory.
+	dirName := appDir pathName.
+	(packagePath includes:dirName) ifFalse:[
+	    packagePath add:dirName.
+	].
+
+	"/
+	"/ the executable's parent directory:
+	"/      (/opt/stx/bin/stx -> /opt/stx)
+	"/
+	appDir := appDir directory.
+	dirName := appDir pathName.
+	(packagePath includes:dirName) ifFalse:[
+	    packagePath add:dirName.
+	].
     ].
 
     homeDirName := OperatingSystem getHomeDirectory.
     homeDirName notNil ifTrue:[
-        "/
-        "/ a users private smalltalk directory in its home (login) directory:
-        "/      $HOME/.smalltalk/packages    or $HOME\smalltalk\packages
-        "/
-        OperatingSystem isUNIXlike ifTrue:[
-            priv := '.smalltalk'.
-        ] ifFalse:[
-            priv := 'smalltalk'.
-        ].
-        userPrivateSTXDir := homeDirName asFilename / priv.
-        (userPrivateSTXDir isDirectory) ifTrue:[
-            dirName :=  userPrivateSTXDir pathName.
-            (packagePath includes:dirName) ifFalse:[
-                packagePath add:dirName
-            ]
-        ].
+	"/
+	"/ a users private smalltalk directory in its home (login) directory:
+	"/      $HOME/.smalltalk/packages    or $HOME\smalltalk\packages
+	"/
+	OperatingSystem isUNIXlike ifTrue:[
+	    priv := '.smalltalk'.
+	] ifFalse:[
+	    priv := 'smalltalk'.
+	].
+	userPrivateSTXDir := homeDirName asFilename / priv.
+	(userPrivateSTXDir isDirectory) ifTrue:[
+	    dirName :=  userPrivateSTXDir pathName.
+	    (packagePath includes:dirName) ifFalse:[
+		packagePath add:dirName
+	    ]
+	].
     ].
 
     "/
@@ -5654,62 +5654,62 @@
     "/
     topDirName := OperatingSystem getEnvironment:'STX_TOPDIR'.
     topDirName notNil ifTrue:[
-        (packagePath includes:topDirName) ifFalse:[
-            packagePath add:topDirName
-        ].
+	(packagePath includes:topDirName) ifFalse:[
+	    packagePath add:topDirName
+	].
     ].
 
     packagePath := packagePath
-                    collect:[:each |
-                        |p|
-
-                        (p := each asFilename / 'packages') exists ifTrue:[
-                            p pathName
-                        ] ifFalse:[
-                            (p := each asFilename / 'Packages') exists ifTrue:[
-                                p pathName
-                            ] ifFalse:[
-                                nil
-                            ].
-                        ].
-                    ]
-                    thenSelect:[:each | each notNil].
+		    collect:[:each |
+			|p|
+
+			(p := each asFilename / 'packages') exists ifTrue:[
+			    p pathName
+			] ifFalse:[
+			    (p := each asFilename / 'Packages') exists ifTrue:[
+				p pathName
+			    ] ifFalse:[
+				nil
+			    ].
+			].
+		    ]
+		    thenSelect:[:each | each notNil].
 
     "
      unconditionally prepend all directories from $STX_PACKAGEPATH
     "
     (dirName := OperatingSystem getEnvironment:'STX_PACKAGEPATH') notNil ifTrue:[
-        dirName := dirName asCollectionOfSubstringsSeparatedBy:$:.
-        dirName reverseDo:[:eachDirectoryName|
-            (packagePath includes:eachDirectoryName) ifFalse:[
-                packagePath addFirst:eachDirectoryName.
-            ].
-        ].
+	dirName := dirName asCollectionOfSubstringsSeparatedBy:$:.
+	dirName reverseDo:[:eachDirectoryName|
+	    (packagePath includes:eachDirectoryName) ifFalse:[
+		packagePath addFirst:eachDirectoryName.
+	    ].
+	].
     ].
 
 false ifTrue:[
     appDir notNil ifTrue:[
-        "maybe the sources are kept in a central place..."
-        (appDir / 'source') isDirectory ifTrue:[
-            packagePath add:(appDir / 'source') pathName.
-        ].
+	"maybe the sources are kept in a central place..."
+	(appDir / 'source') isDirectory ifTrue:[
+	    packagePath add:(appDir / 'source') pathName.
+	].
     ].
 ].
 
     "maybe we are running in the build environment:  XXX/stx    /projects /smalltalk
-                                                or:  XXX/exept  /expecco  /application
+						or:  XXX/exept  /expecco  /application
      - if XXX/stx/libbasic exists, add XXX to the package path"
 false ifTrue:[
     topDirName isNil ifTrue:[
-        "appdir is now: projects"
-        appDir := appDir directory directory.
-        (appDir / 'stx' / 'libbasic') isDirectory ifTrue:[
-            appDir pathName = homeDirName ifTrue:[
-                "but take care, it may be directly in the home directory"
-                appDir := appDir / 'stx'.
-            ].
-            packagePath add:appDir pathName.
-        ].
+	"appdir is now: projects"
+	appDir := appDir directory directory.
+	(appDir / 'stx' / 'libbasic') isDirectory ifTrue:[
+	    appDir pathName = homeDirName ifTrue:[
+		"but take care, it may be directly in the home directory"
+		appDir := appDir / 'stx'.
+	    ].
+	    packagePath add:appDir pathName.
+	].
     ].
 ].
     ^ packagePath
@@ -5813,7 +5813,7 @@
      E.g. linux system calls accept single byte strings only,
      so the pathName has to be UTF-8 encoded, before using it in a system call.
      (in contrast, Win32 expects wideStrings which are already unicode)
-     Here, the original string is returned; 
+     Here, the original string is returned;
      it has to be redefined in a concrete OS, if it needs any encoding."
 
     ^ self encodePathOrCommandInput:pathName
@@ -5825,10 +5825,10 @@
     "encode the pathNameOrInputToAProgram for use with system calls,
      to be sent to a program, used as command line argument,
      or to be used as shell environment value.
-     
+
      E.g. linux system calls accept single byte strings only,
      so the pathName has to be UTF-8 encoded, before using it in a system call.
-     Here, the original string is returned; 
+     Here, the original string is returned;
      it has to be redefined in a concrete OS, if it needs any encoding"
 
     ^ pathNameOrInputToAProgram
@@ -5848,9 +5848,9 @@
     |encoder|
 
     aString containsNon7BitAscii ifTrue:[
-        (encoder := self characterEncoderForConsoleOutput) notNil ifTrue:[
-            ^ encoder encodeString:aString.
-        ].
+	(encoder := self characterEncoderForConsoleOutput) notNil ifTrue:[
+	    ^ encoder encodeString:aString.
+	].
     ].
     ^ aString
 ! !
@@ -5896,7 +5896,7 @@
 %{  /*NOCONTEXT*/
 
     if (__isSmallInteger(aSymbolOrInteger) || aSymbolOrInteger == nil) {
-        RETURN (aSymbolOrInteger);
+	RETURN (aSymbolOrInteger);
     }
 
 #ifdef AF_INET
@@ -6137,259 +6137,259 @@
 %{ /*NOCONTEXT*/
 
     if (__isSmallInteger(anInteger)) {
-        switch(__intVal(anInteger)) {
+	switch(__intVal(anInteger)) {
 #ifdef AF_INET
-        case AF_INET:
-            domainSymbol = @symbol(AF_INET);
-            break;
+	case AF_INET:
+	    domainSymbol = @symbol(AF_INET);
+	    break;
 #endif
 #ifdef AF_INET6
-        case AF_INET6:
-            domainSymbol = @symbol(AF_INET6);
-            break;
+	case AF_INET6:
+	    domainSymbol = @symbol(AF_INET6);
+	    break;
 #endif
 #ifdef AF_UNIX
-        case AF_UNIX:
-            domainSymbol = @symbol(AF_UNIX);
-            break;
+	case AF_UNIX:
+	    domainSymbol = @symbol(AF_UNIX);
+	    break;
 #endif
 #ifdef AF_APPLETALK
-        case AF_APPLETALK:
-            domainSymbol = @symbol(AF_APPLETALK);
-            break;
+	case AF_APPLETALK:
+	    domainSymbol = @symbol(AF_APPLETALK);
+	    break;
 #endif
 #ifdef AF_DECnet
-        case AF_DECnet:
-            domainSymbol = @symbol(AF_DECnet);
-            break;
+	case AF_DECnet:
+	    domainSymbol = @symbol(AF_DECnet);
+	    break;
 #endif
 #ifdef AF_NS
-        case AF_NS:
-            domainSymbol = @symbol(AF_NS);
-            break;
+	case AF_NS:
+	    domainSymbol = @symbol(AF_NS);
+	    break;
 #endif
 #ifdef AF_X25
-        case AF_X25:
-            domainSymbol = @symbol(AF_X25);
-            break;
+	case AF_X25:
+	    domainSymbol = @symbol(AF_X25);
+	    break;
 #endif
 #ifdef AF_SNA
-        case AF_SNA:
-            domainSymbol = @symbol(AF_SNA);
-            break;
+	case AF_SNA:
+	    domainSymbol = @symbol(AF_SNA);
+	    break;
 #endif
 #ifdef AF_RAW
-        case AF_RAW:
-            domainSymbol = @symbol(AF_RAW);
-            break;
+	case AF_RAW:
+	    domainSymbol = @symbol(AF_RAW);
+	    break;
 #endif
 #ifdef AF_ISO
-        case AF_ISO:
-            domainSymbol = @symbol(AF_ISO);
-            break;
+	case AF_ISO:
+	    domainSymbol = @symbol(AF_ISO);
+	    break;
 #endif
 #ifdef AF_ECMA
-        case AF_ECMA:
-            domainSymbol = @symbol(AF_ECMA);
-            break;
+	case AF_ECMA:
+	    domainSymbol = @symbol(AF_ECMA);
+	    break;
 #endif
 #ifdef AF_NETBIOS
-        case AF_NETBIOS:
-            domainSymbol = @symbol(AF_NETBIOS);
-            break;
+	case AF_NETBIOS:
+	    domainSymbol = @symbol(AF_NETBIOS);
+	    break;
 #endif
 #ifdef AF_IPX
 # if defined(AF_NS) && (AF_NS == AF_IPX)
 //      alias
 # else
-        case AF_IPX:
-            domainSymbol = @symbol(AF_IPX);
-            break;
+	case AF_IPX:
+	    domainSymbol = @symbol(AF_IPX);
+	    break;
 # endif
 #endif
 #ifdef AF_AX25
-        case AF_AX25:
-            domainSymbol = @symbol(AF_AX25);
-            break;
+	case AF_AX25:
+	    domainSymbol = @symbol(AF_AX25);
+	    break;
 #endif
 #ifdef AF_NETROM
-        case AF_NETROM:
-            domainSymbol = @symbol(AF_NETROM);
-            break;
+	case AF_NETROM:
+	    domainSymbol = @symbol(AF_NETROM);
+	    break;
 #endif
 #ifdef AF_BRIDGE
-        case AF_BRIDGE:
-            domainSymbol = @symbol(AF_BRIDGE);
-            break;
+	case AF_BRIDGE:
+	    domainSymbol = @symbol(AF_BRIDGE);
+	    break;
 #endif
 #ifdef AF_BSC
-        case AF_BSC:
-            domainSymbol = @symbol(AF_BSC);
-            break;
+	case AF_BSC:
+	    domainSymbol = @symbol(AF_BSC);
+	    break;
 #endif
 #ifdef AF_ROSE
-        case AF_ROSE:
-            domainSymbol = @symbol(AF_ROSE);
-            break;
+	case AF_ROSE:
+	    domainSymbol = @symbol(AF_ROSE);
+	    break;
 #endif
 #ifdef AF_IRDA
-        case AF_IRDA:
-            domainSymbol = @symbol(AF_IRDA);
-            break;
+	case AF_IRDA:
+	    domainSymbol = @symbol(AF_IRDA);
+	    break;
 #endif
 #ifdef AF_BAN
-        case AF_BAN:
-            domainSymbol = @symbol(AF_BAN);
-            break;
+	case AF_BAN:
+	    domainSymbol = @symbol(AF_BAN);
+	    break;
 #endif
 #ifdef AF_VOICEVIEW
-        case AF_VOICEVIEW:
-            domainSymbol = @symbol(AF_VOICEVIEW);
-            break;
+	case AF_VOICEVIEW:
+	    domainSymbol = @symbol(AF_VOICEVIEW);
+	    break;
 #endif
 #ifdef AF_ATM
-        case AF_ATM:
-            domainSymbol = @symbol(AF_ATM);
-            break;
+	case AF_ATM:
+	    domainSymbol = @symbol(AF_ATM);
+	    break;
 #endif
 #ifdef AF_ATMPVC
-        case AF_ATMPVC:
-            domainSymbol = @symbol(AF_ATMPVC);
-            break;
+	case AF_ATMPVC:
+	    domainSymbol = @symbol(AF_ATMPVC);
+	    break;
 #endif
 #ifdef AF_ATMSVC
-        case AF_ATMSVC:
-            domainSymbol = @symbol(AF_ATMSVC);
-            break;
+	case AF_ATMSVC:
+	    domainSymbol = @symbol(AF_ATMSVC);
+	    break;
 #endif
 #ifdef AF_SECURITY
-        case AF_SECURITY:
-            domainSymbol = @symbol(AF_SECURITY);
-            break;
+	case AF_SECURITY:
+	    domainSymbol = @symbol(AF_SECURITY);
+	    break;
 #endif
 #ifdef AF_KEY
-        case AF_KEY:
-            domainSymbol = @symbol(AF_KEY);
-            break;
+	case AF_KEY:
+	    domainSymbol = @symbol(AF_KEY);
+	    break;
 #endif
 #ifdef AF_NETLINK
-        case AF_NETLINK:
-            domainSymbol = @symbol(AF_NETLINK);
-            break;
+	case AF_NETLINK:
+	    domainSymbol = @symbol(AF_NETLINK);
+	    break;
 #endif
 #ifdef AF_PACKET
-        case AF_PACKET:
-            domainSymbol = @symbol(AF_PACKET);
-            break;
+	case AF_PACKET:
+	    domainSymbol = @symbol(AF_PACKET);
+	    break;
 #endif
 #ifdef AF_LINK
 # if AF_LINK != AF_PACKET
-        case AF_LINK:
-            domainSymbol = @symbol(AF_LINK);
-            break;
+	case AF_LINK:
+	    domainSymbol = @symbol(AF_LINK);
+	    break;
 # endif
 #endif
 #ifdef AF_ASH
-        case AF_ASH:
-            domainSymbol = @symbol(AF_ASH);
-            break;
+	case AF_ASH:
+	    domainSymbol = @symbol(AF_ASH);
+	    break;
 #endif
 #ifdef AF_ECONET
-        case AF_ECONET:
-            domainSymbol = @symbol(AF_ECONET);
-            break;
+	case AF_ECONET:
+	    domainSymbol = @symbol(AF_ECONET);
+	    break;
 #endif
 #ifdef AF_IMPLINK
-        case AF_IMPLINK:
-            domainSymbol = @symbol(AF_IMPLINK);
-            break;
+	case AF_IMPLINK:
+	    domainSymbol = @symbol(AF_IMPLINK);
+	    break;
 #endif
 #ifdef AF_PUP
-        case AF_PUP:
-            domainSymbol = @symbol(AF_PUP);
-            break;
+	case AF_PUP:
+	    domainSymbol = @symbol(AF_PUP);
+	    break;
 #endif
 #ifdef AF_CHAOS
-        case AF_CHAOS:
-            domainSymbol = @symbol(AF_CHAOS);
-            break;
+	case AF_CHAOS:
+	    domainSymbol = @symbol(AF_CHAOS);
+	    break;
 #endif
 #ifdef AF_DLI
-        case AF_DLI:
-            domainSymbol = @symbol(AF_DLI);
-            break;
+	case AF_DLI:
+	    domainSymbol = @symbol(AF_DLI);
+	    break;
 #endif
 #ifdef AF_LAT
-        case AF_LAT:
-            domainSymbol = @symbol(AF_LAT);
-            break;
+	case AF_LAT:
+	    domainSymbol = @symbol(AF_LAT);
+	    break;
 #endif
 #ifdef AF_HYLINK
-        case AF_HYLINK:
-            domainSymbol = @symbol(AF_HYLINK);
-            break;
+	case AF_HYLINK:
+	    domainSymbol = @symbol(AF_HYLINK);
+	    break;
 #endif
 #ifdef AF_FIREFOX
-        case AF_FIREFOX:
-            domainSymbol = @symbol(AF_FIREFOX);
-            break;
+	case AF_FIREFOX:
+	    domainSymbol = @symbol(AF_FIREFOX);
+	    break;
 #endif
 #ifdef AF_CLUSTER
-        case AF_CLUSTER:
-            domainSymbol = @symbol(AF_CLUSTER);
-            break;
+	case AF_CLUSTER:
+	    domainSymbol = @symbol(AF_CLUSTER);
+	    break;
 #endif
 #ifdef AF_12844
-        case AF_12844:
-            domainSymbol = @symbol(AF_12844);
-            break;
+	case AF_12844:
+	    domainSymbol = @symbol(AF_12844);
+	    break;
 #endif
 #ifdef AF_NETDES
-        case AF_NETDES:
-            domainSymbol = @symbol(AF_NETDES);
-            break;
+	case AF_NETDES:
+	    domainSymbol = @symbol(AF_NETDES);
+	    break;
 #endif
 #ifdef AF_CCITT
-        case AF_CCITT:
-            domainSymbol = @symbol(AF_CCITT);
-            break;
+	case AF_CCITT:
+	    domainSymbol = @symbol(AF_CCITT);
+	    break;
 #endif
 #ifdef AF_ISDN
-        case AF_ISDN:
-            domainSymbol = @symbol(AF_ISDN);
-            break;
+	case AF_ISDN:
+	    domainSymbol = @symbol(AF_ISDN);
+	    break;
 #endif
 #ifdef AF_SYSTEM
-        case AF_SYSTEM:
-            domainSymbol = @symbol(AF_SYSTEM);
-            break;
+	case AF_SYSTEM:
+	    domainSymbol = @symbol(AF_SYSTEM);
+	    break;
 #endif
 #ifdef AF_UNSPEC
-        case AF_UNSPEC:
-            domainSymbol = @symbol(AF_UNSPEC);
-            break;
+	case AF_UNSPEC:
+	    domainSymbol = @symbol(AF_UNSPEC);
+	    break;
 #endif
 #ifdef AF_NDRV
-        case AF_NDRV:
-            domainSymbol = @symbol(AF_NDRV);
-            break;
+	case AF_NDRV:
+	    domainSymbol = @symbol(AF_NDRV);
+	    break;
 #endif
 #ifdef AF_PPP
-        case AF_PPP:
-            domainSymbol = @symbol(AF_PPP);
-            break;
+	case AF_PPP:
+	    domainSymbol = @symbol(AF_PPP);
+	    break;
 #endif
 #ifdef AF_IEEE80211
-        case AF_IEEE80211:
-            domainSymbol = @symbol(AF_IEEE80211);
-            break;
+	case AF_IEEE80211:
+	    domainSymbol = @symbol(AF_IEEE80211);
+	    break;
 #endif
 #ifdef AF_UTUN
-        case AF_UTUN:
-            domainSymbol = @symbol(AF_UTUN);
-            break;
-#endif
-        }
+	case AF_UTUN:
+	    domainSymbol = @symbol(AF_UTUN);
+	    break;
+#endif
+	}
     }
 %}.
 
@@ -7046,20 +7046,20 @@
 
     "The mapping here maps all common names to the default"
 
-    ^ { 
-        ( 'male' -> nil ) .
-        ( 'female' -> nil ) .
-        ( 'computer' -> nil ) .
-        ( 'default' -> nil )
+    ^ {
+	( 'male' -> nil ) .
+	( 'female' -> nil ) .
+	( 'computer' -> nil ) .
+	( 'default' -> nil )
     }
 
     "on OSX, this could be:
-        ^ {
-            'male' -> 'Alex' .
-            'female' -> 'Fiona' .
-            'computer' -> 'Zarvox' .
-            'default' -> 'Fiona'
-        }
+	^ {
+	    'male' -> 'Alex' .
+	    'female' -> 'Fiona' .
+	    'computer' -> 'Zarvox' .
+	    'default' -> 'Fiona'
+	}
     "
 
     "Modified (comment): / 29-08-2018 / 09:42:40 / Claus Gittinger"
@@ -7087,13 +7087,13 @@
 
 playSound:fileName mode:modeInteger
     "this is an obsolete interface"
-    
+
     self playSound:fileName
 !
 
 speak:aString
     "say something in the default voice"
-    
+
     self speak:aString voiceName:'default'.
 
     "
@@ -7107,7 +7107,7 @@
 
 speak:aString voiceName:voiceName
     "voiceName should be in the list of supported voices as returned by voiceInfo,
-     or (better and portable) one of the keys in voiceMapping. 
+     or (better and portable) one of the keys in voiceMapping.
      Use nil for the default voice (which is usually the user's preference voice setting in
      the operating system - eg. system preferences in OSX).
      For non-existing/unknown voiceNames, the default voice will be used.
@@ -7119,61 +7119,61 @@
     |mapping voiceUsed|
 
     (voiceName isNil or:[voiceName = 'default']) ifTrue:[
-        voiceUsed := DefaultVoice
+	voiceUsed := DefaultVoice
     ] ifFalse:[
-        voiceUsed := voiceName
-    ].    
+	voiceUsed := voiceName
+    ].
     mapping := self voiceMapping detect:[:v | v key = voiceUsed] ifNone:[(voiceName -> voiceName)].
     voiceUsed := mapping value.
 
     self voiceCommandSpec do:[:entry |
-        |cmd cmdLineForDefaultVoice cmdLineForVoice cmdLineForSsmlVoice cmdLine stringArg
-         inStream|
-
-        cmd := entry at:1.
-        (self canExecuteCommand:cmd) ifTrue:[
-            cmdLineForDefaultVoice := entry at:2.
-            cmdLineForVoice := entry at:3.
-            cmdLineForSsmlVoice := entry at:4 ifAbsent:nil.
-            (aString startsWith:'<speak') ifTrue:[
-                cmdLine := cmdLineForSsmlVoice bindWith:voiceUsed with:aString.
-            ] ifFalse:[
-                (voiceUsed isNil or:[voiceUsed = 'default']) ifTrue:[
-                    cmdLine := cmdLineForDefaultVoice
-                ] ifFalse:[    
-                    cmdLine := cmdLineForVoice
-                ].  
-                stringArg := aString copyReplaceAll:(Character nl) withAll:'\n'.
-                cmdLine := cmdLine bindWith:voiceUsed with:stringArg.
-            ].  
-            stringArg := aString copyReplaceAll:(Character nl) withAll:'\n'.
-            (cmdLine startsWith:'| ') ifTrue:[
-                "commands starting with '| ' read from stdandard input"        
-                cmdLine := cmdLine copyFrom:3.
-                inStream := aString readStream.
-            ].
-            ^ self 
-                executeCommand:(cmdLine bindWith:voiceUsed with:stringArg)
-                inputFrom:inStream outputTo:nil errorTo:nil inDirectory:nil.    
-        ].    
+	|cmd cmdLineForDefaultVoice cmdLineForVoice cmdLineForSsmlVoice cmdLine stringArg
+	 inStream|
+
+	cmd := entry at:1.
+	(self canExecuteCommand:cmd) ifTrue:[
+	    cmdLineForDefaultVoice := entry at:2.
+	    cmdLineForVoice := entry at:3.
+	    cmdLineForSsmlVoice := entry at:4 ifAbsent:nil.
+	    (aString startsWith:'<speak') ifTrue:[
+		cmdLine := cmdLineForSsmlVoice bindWith:voiceUsed with:aString.
+	    ] ifFalse:[
+		(voiceUsed isNil or:[voiceUsed = 'default']) ifTrue:[
+		    cmdLine := cmdLineForDefaultVoice
+		] ifFalse:[
+		    cmdLine := cmdLineForVoice
+		].
+		stringArg := aString copyReplaceAll:(Character nl) withAll:'\n'.
+		cmdLine := cmdLine bindWith:voiceUsed with:stringArg.
+	    ].
+	    stringArg := aString copyReplaceAll:(Character nl) withAll:'\n'.
+	    (cmdLine startsWith:'| ') ifTrue:[
+		"commands starting with '| ' read from stdandard input"
+		cmdLine := cmdLine copyFrom:3.
+		inStream := aString readStream.
+	    ].
+	    ^ self
+		executeCommand:(cmdLine bindWith:voiceUsed with:stringArg)
+		inputFrom:inStream outputTo:nil errorTo:nil inDirectory:nil.
+	].
     ].
-    
-    "/ no command found.    
+
+    "/ no command found.
     ^ false
 
     "portable:
      OperatingSystem speak:'hello world - this is the default voice' voiceName:nil
 
-    non-portable (depends on voice-name mappings):     
+    non-portable (depends on voice-name mappings):
      OperatingSystem speak:'hello world - this is a male voice' voiceName:'male'
      OperatingSystem speak:'hello world - this is a female voice' voiceName:'female'
      OperatingSystem speak:'hello world - this is a computer voice' voiceName:'computer'
 
-    non-portable (Windows only):     
+    non-portable (Windows only):
      OperatingSystem speak:'hello world - this is a british female voice' voiceName:'Microsoft Zira Desktop'
      OperatingSystem speak:'hello world - this is a german female voice' voiceName:'Microsoft Hedda Desktop'
 
-    non-portable (OSX only):     
+    non-portable (OSX only):
      OperatingSystem speak:'hello world - this is a scottish female voice' voiceName:'Fiona'
      OperatingSystem speak:'hello world - this is an irish female voice' voiceName:'Moira'
      OperatingSystem speak:'hello world - this is a german female voice' voiceName:'Anna'
@@ -7188,7 +7188,7 @@
      OperatingSystem speak:'hello world - this is fred' voiceName:'Fred'
      OperatingSystem speak:'hello world - this is awsome' voiceName:'Hysterical'
 
-    Diaresis: 
+    Diaresis:
      OperatingSystem speak:'üben Österreich ärgerlich' voiceName:'Anna'
      OperatingSystem speak:'español' voiceName:'Anna'                      - anna cannot speak spanish!!
      OperatingSystem speak:'español' voiceName:'Fiona'                     - fiona neither!!
@@ -7213,49 +7213,49 @@
     "commands to try for speech output"
 
     ^ #(
-        "/ triples are:
-        "/      -command 
-        "/      -commandline for default voice
-        "/      -commandline for specific voice
-        "/      -commandline for ssml voice
-    )    
+	"/ triples are:
+	"/      -command
+	"/      -commandline for default voice
+	"/      -commandline for specific voice
+	"/      -commandline for ssml voice
+    )
 !
 
 voiceInfo
     "return a list of available (OS-specific) voice names plus info.
      For each available voice, a triple is returned, containing:
-        voiceName language_territory comment/description
+	voiceName language_territory comment/description
 
      the language_territory (of the form en_EN / en_US etc.) gives a hint,
      for which language the voice is best used.
-     
+
      The fallback here returns the default list, which should be supported
      by any system.
-     
+
      On OSX, this would look like:
      #(
-        ('default'     'en_US' 'the default system voice')
-
-        #('Agnes' 'en_US' 'Isn''t it nice to have a computer that will talk to you?')
-        #('Albert' 'en_US' 'I have a frog in my throat. No, I mean a real frog!!')
-        #('Alex' 'en_US' 'Most people recognize me by my voice.')
-        ...
-        #('Zarvox' 'en_US' 'That looks like a peaceful planet.')
-        #('Zosia' 'pl_PL' 'Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego.')
-        #('Zuzana' 'cs_CZ' 'Dobrý den, jmenuji se Zuzana. Jsem český hlas.')
-     )     
+	('default'     'en_US' 'the default system voice')
+
+	#('Agnes' 'en_US' 'Isn''t it nice to have a computer that will talk to you?')
+	#('Albert' 'en_US' 'I have a frog in my throat. No, I mean a real frog!!')
+	#('Alex' 'en_US' 'Most people recognize me by my voice.')
+	...
+	#('Zarvox' 'en_US' 'That looks like a peaceful planet.')
+	#('Zosia' 'pl_PL' 'Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego.')
+	#('Zuzana' 'cs_CZ' 'Dobrý den, jmenuji se Zuzana. Jsem český hlas.')
+     )
 
      On Windows:
      #(
-        ('default'     'en_US' 'the default system voice')
-
-        #('Microsoft Zira Desktop'  'en_US' 'Isn''t it nice to have a computer that will talk to you?')
-        #('Microsoft Hedda Desktop' 'de_de' 'Danke, daß Sie mir zuhören')
-     )     
+	('default'     'en_US' 'the default system voice')
+
+	#('Microsoft Zira Desktop'  'en_US' 'Isn''t it nice to have a computer that will talk to you?')
+	#('Microsoft Hedda Desktop' 'de_de' 'Danke, daß Sie mir zuhören')
+     )
     "
 
     ^ #(
-        ('default'     'en_US' 'the default system voice')
+	('default'     'en_US' 'the default system voice')
     )
 
     "
@@ -7286,13 +7286,13 @@
     VoiceMapping := aMapping
 
     "on OSX, this could be:
-        OperatingSystem voiceMapping:
-            {
-                'male' -> 'Alex' .
-                'female' -> 'Fiona' .
-                'computer' -> 'Zarvox' .
-                'default' -> 'Fiona'
-            }.
+	OperatingSystem voiceMapping:
+	    {
+		'male' -> 'Alex' .
+		'female' -> 'Fiona' .
+		'computer' -> 'Zarvox' .
+		'default' -> 'Fiona'
+	    }.
     "
 
     "Modified (comment): / 29-08-2018 / 09:57:45 / Claus Gittinger"
@@ -7479,10 +7479,10 @@
      Notice, that the # of cycles has to be multiplied by the cycle time (1/cpu-frequency).
 
      For x86:
-        the CPU cycle count register value is returned (RDTSC instruction).
-        answer 0 if RDTSC instruction is not supported (which is unlikely, nowadays).
+	the CPU cycle count register value is returned (RDTSC instruction).
+	answer 0 if RDTSC instruction is not supported (which is unlikely, nowadays).
      For others:
-        answer 0"
+	answer 0"
 
 %{  /* NOCONTEXT */
     unsigned INT low, high;
@@ -7522,7 +7522,7 @@
 !
 
 getMicrosecondTime
-    "This returns the microsecond timers value - if available.
+    "This returns the microsecond timer's value - if available.
      On some machines, times with this precision may not be available,
      on those, the returned value may be rounded towards some internal
      clock resolution value."
@@ -7536,7 +7536,7 @@
 !
 
 getMillisecondTime
-    "This returns the millisecond timers value.
+    "This returns the millisecond timer's value.
      The range is limited to 0..1fffffff (i.e. the SmallInteger range) to avoid
      LargeInteger arithmetic when doing timeouts and delays.
      Since this value is wrapping around in regular intervals, this can only be used for
@@ -7555,14 +7555,14 @@
 !
 
 getMonotonicNanosecondTime
-    "This returns the nanosecond timers value - if available.
+    "This returns the nanosecond timer's value - if available.
      On some machines, times with this precision may not be available,
      on those, the returned value may be rounded towards some internal
      clock resolution value.
 
      If supported by the system, it uses a clock that cannot be set and represents
-     monotonic time since some unspecified starting point.  This clock is not affected by
-     discontinuous  jumps  in  the system time 
+     monotonic time since some unspecified starting point.
+     This clock is not affected by discontinuous jumps in the system time
      (e.g., if the system administrator manually changes the clock), but is affected by
      the incremental adjustments performed by adjtime(3) and NTP."
 
@@ -7606,8 +7606,8 @@
     ^ { osTime . 0 }
 
     "
-     OperatingSystem getOSTime 
-     OperatingSystem getOSTimeInMicros 
+     OperatingSystem getOSTime
+     OperatingSystem getOSTimeInMicros
     "
 !
 
@@ -7620,7 +7620,7 @@
      converts as appropriate (by using my fromOSTime: conversion methods).
 
      Don't use this method in application code since it is an internal (private)
-     interface. 
+     interface.
      For compatibility use instances of Time, Date or Timestamp to work with."
 
     "here, a fallback, which only provides a lower (typically: millisecond) resolution"
@@ -7632,17 +7632,17 @@
 
     "
      OperatingSystem getOSTime              1525868295396
-     OperatingSystem getOSTimeWithMicros    -> #(1525868292534 220) 
+     OperatingSystem getOSTimeWithMicros    -> #(1525868292534 220)
      OperatingSystem getOSTimeWithNanos     -> #(1525868325652 456000)
     "
 !
 
 getRealNanosecondTime
-    "This returns the microsecond timers value - if available.
+    "This returns the nanosecond timer's value - if available.
      On some machines, times with this precision may not be available,
      on those, the returned value may be rounded towards some internal
      clock resolution value.
-     Note, that the timers value is not monotonic,
+     Note, that the timer's value is not monotonic,
      it may jump forward or backward if the sytsems time is changed by e.g. NTP
      or the system administrator!!"
 
@@ -8127,18 +8127,18 @@
     |result fdArray|
 
     self supportsSelect ifFalse:[
-        "/ mhmh - what should we do then ?
-        "/ For now, return true as if data was present,
-        "/ and let the thread fall into the write.
-        "/ It will then (hopefully) be desceduled there and
-        "/ effectively polling for output.
-        ^ true
+	"/ mhmh - what should we do then ?
+	"/ For now, return true as if data was present,
+	"/ and let the thread fall into the write.
+	"/ It will then (hopefully) be desceduled there and
+	"/ effectively polling for output.
+	^ true
     ].
 
     result := self
-                selectOnAnyReadable:(fdArray := Array with:fd) writable:fdArray exception:nil
-                readableInto:nil writableInto:nil exceptionInto:nil
-                withTimeOut:0.
+		selectOnAnyReadable:(fdArray := Array with:fd) writable:fdArray exception:nil
+		readableInto:nil writableInto:nil exceptionInto:nil
+		withTimeOut:0.
 
     "on select error, a read will immediately return, so answer true"
     ^ result ~~ 0.
@@ -8151,15 +8151,15 @@
      A zero timeout-time will immediately return (i.e. poll).
      Return fd if i/o ok, nil if timed-out or interrupted.
      Obsolete:
-        This is a leftover method and will vanish."
+	This is a leftover method and will vanish."
     <resource: #obsolete>
 
     |fdArray|
 
      ^ (self
-           selectOnAnyReadable:(fdArray := Array with:fd1 with:fd2) writable:fdArray exception:nil
-           readableInto:nil writableInto:nil exceptionInto:nil
-           withTimeOut:millis) ~~ 0.
+	   selectOnAnyReadable:(fdArray := Array with:fd1 with:fd2) writable:fdArray exception:nil
+	   readableInto:nil writableInto:nil exceptionInto:nil
+	   withTimeOut:millis) ~~ 0.
 
     "Modified: / 03-05-2018 / 14:30:03 / stefan"
 !
@@ -8174,9 +8174,9 @@
     |fdArray|
 
     ^ (self
-        selectOnAnyReadable:(fdArray := Array with:fd) writable:fdArray exception:nil
-        readableInto:nil writableInto:nil exceptionInto:nil
-        withTimeOut:millis) ~~ 0.
+	selectOnAnyReadable:(fdArray := Array with:fd) writable:fdArray exception:nil
+	readableInto:nil writableInto:nil exceptionInto:nil
+	withTimeOut:millis) ~~ 0.
 
     "Modified: / 03-05-2018 / 14:30:20 / stefan"
 !
@@ -8290,18 +8290,18 @@
     |result|
 
     self supportsSelect ifFalse:[
-        "/ mhmh - what should we do then ?
-        "/ For now, return true as if data was present,
-        "/ and let the thread fall into the write.
-        "/ It will then (hopefully) be descheduled there and
-        "/ effectively polling for output.
-        ^ true
+	"/ mhmh - what should we do then ?
+	"/ For now, return true as if data was present,
+	"/ and let the thread fall into the write.
+	"/ It will then (hopefully) be descheduled there and
+	"/ effectively polling for output.
+	^ true
     ].
 
     result := self
-                selectOnAnyReadable:nil writable:(Array with:fd) exception:nil
-                readableInto:nil writableInto:nil exceptionInto:nil
-                withTimeOut:0.
+		selectOnAnyReadable:nil writable:(Array with:fd) exception:nil
+		readableInto:nil writableInto:nil exceptionInto:nil
+		withTimeOut:0.
 
     "on select error, a write will immediately return, so answer true"
     ^ result ~~ 0.
@@ -8320,18 +8320,18 @@
     |result fdArray|
 
     self supportsSelect ifFalse:[
-        "/ mhmh - what should we do then ?
-        "/ For now, return true as if data was present,
-        "/ and let the thread fall into the write.
-        "/ It will then (hopefully) be descheduled there and
-        "/ effectively polling for output.
-        ^ true
+	"/ mhmh - what should we do then ?
+	"/ For now, return true as if data was present,
+	"/ and let the thread fall into the write.
+	"/ It will then (hopefully) be descheduled there and
+	"/ effectively polling for output.
+	^ true
     ].
 
     result := self
-                selectOnAnyReadable:nil writable:(fdArray := Array with:fd) exception:fdArray
-                readableInto:nil writableInto:nil exceptionInto:nil
-                withTimeOut:0.
+		selectOnAnyReadable:nil writable:(fdArray := Array with:fd) exception:fdArray
+		readableInto:nil writableInto:nil exceptionInto:nil
+		withTimeOut:0.
 
     "on select error, a write will immediately return, so answer true"
     ^ result ~~ 0.
--- a/UnixOperatingSystem.st	Thu Feb 13 22:05:58 2020 +0100
+++ b/UnixOperatingSystem.st	Fri Feb 14 09:00:19 2020 +0100
@@ -3712,31 +3712,31 @@
 
     aCommand := aCommandStringOrFileName.
     aCommand isFilename ifTrue:[
-        aCommand := aCommand name
+	aCommand := aCommand name
     ].
     (aCommand startsWith:'"') ifTrue:[
-        (aCommand endsWith:'"') ifTrue:[
-            aCommand := aCommand withoutQuotes
-        ].
+	(aCommand endsWith:'"') ifTrue:[
+	    aCommand := aCommand withoutQuotes
+	].
     ].
 
     commandFilename := aCommand asFilename.
     commandFilename isAbsolute ifTrue:[
-        "/ something like "/foo/...", tried path is it
-        commandFilename isExecutable ifFalse:[^ nil].
-        ^ commandFilename pathName
+	"/ something like "/foo/...", tried path is it
+	commandFilename isExecutable ifFalse:[^ nil].
+	^ commandFilename pathName
     ].
     commandFilename isExplicitRelative ifTrue:[
-        "/ something like "../foo/...", tried path resolved relative to the current directory
-        commandFilename isExecutable ifFalse:[^ nil].
-         ^ commandFilename pathName
+	"/ something like "../foo/...", tried path resolved relative to the current directory
+	commandFilename isExecutable ifFalse:[^ nil].
+	 ^ commandFilename pathName
     ].
     (aCommand includes:$/) ifTrue:[
-        "/ something like "smalltalk/stx", tried path is relative to the current directory
-        (f := ('./',aCommand) asFilename) isExecutable ifTrue:[
-            ^ f pathName
-        ].
-        ^ nil
+	"/ something like "smalltalk/stx", tried path is relative to the current directory
+	(f := ('./',aCommand) asFilename) isExecutable ifTrue:[
+	    ^ f pathName
+	].
+	^ nil
     ].
 
     "/ command is a single word, not relative and not absolute.
@@ -3744,19 +3744,19 @@
     exeExtensions := self executableFileExtensions.
     path := self getEnvironment:'PATH'.
     path notEmptyOrNil ifTrue:[
-        (path asCollectionOfSubstringsSeparatedBy:self pathSeparator) do:[:eachPathComponent |
-            eachPathComponent isEmpty ifTrue:[
-                f := commandFilename
-            ] ifFalse:[
-                f := eachPathComponent asFilename construct:aCommand.
-            ].
-            exeExtensions do:[:eachExtension |
-                fExt := f addSuffix:eachExtension.
-                fExt isExecutable ifTrue:[
-                    ^ fExt pathName
-                ].
-            ].
-        ].
+	(path asCollectionOfSubstringsSeparatedBy:self pathSeparator) do:[:eachPathComponent |
+	    eachPathComponent isEmpty ifTrue:[
+		f := commandFilename
+	    ] ifFalse:[
+		f := eachPathComponent asFilename construct:aCommand.
+	    ].
+	    exeExtensions do:[:eachExtension |
+		fExt := f addSuffix:eachExtension.
+		fExt isExecutable ifTrue:[
+		    ^ fExt pathName
+		].
+	    ].
+	].
     ].
     ^ nil
 
@@ -5686,66 +5686,66 @@
     |p path command|
 
     pathName = '.' ifTrue:[
-        ^ self getCurrentDirectory.
+	^ self getCurrentDirectory.
     ].
 
     "some systems have a convenient function for this ..."
     path := self primPathNameOf:(self encodePath:pathName).
     path notNil ifTrue:[
-        ^ self decodePath:path.
+	^ self decodePath:path.
     ].
 
     (self isValidPath:pathName) ifFalse:[
-        p := pathName.
-        [(p size > 1)
-         and:[p endsWith:(self fileSeparator)]
-        ] whileTrue:[
-            p := p copyButLast.
-        ].
-        ^ p
+	p := pathName.
+	[(p size > 1)
+	 and:[p endsWith:(self fileSeparator)]
+	] whileTrue:[
+	    p := p copyButLast.
+	].
+	^ p
     ].
 
     (SlowFork==true or:[PipeFailed==true]) ifFalse:[
-        |directoryName fileBaseName|
-
-        (self isDirectory:pathName) ifTrue:[
-            directoryName := pathName.
-            fileBaseName := nil.
-        ] ifFalse:[
-            |pathFilename|
-            pathFilename := pathName asFilename.
-            directoryName := pathFilename directoryName.
-            fileBaseName := pathFilename baseName.
-        ].
-
-        PipeStream openErrorSignal handle:[:ex |
-            PipeFailed := true.
-            'UnixOperatingSystem [warning]: cannot fork/popen' errorPrintCR.
-            ex return.
-        ] do:[
-            "have to fall back ..."
-            command := 'cd "' , directoryName , '"; pwd'.
-            p := PipeStream readingFrom:command.
-        ].
-
-        (p isNil or:[p atEnd]) ifTrue:[
-            ('UnixOperatingSystem [warning]: PipeStream for <' , command , '> failed') errorPrintCR.
-        ] ifFalse:[
-            path := p nextLine.
-            p close.
-        ].
-        fileBaseName notNil ifTrue:[
-            path := path, '/', fileBaseName.
-        ].
+	|directoryName fileBaseName|
+
+	(self isDirectory:pathName) ifTrue:[
+	    directoryName := pathName.
+	    fileBaseName := nil.
+	] ifFalse:[
+	    |pathFilename|
+	    pathFilename := pathName asFilename.
+	    directoryName := pathFilename directoryName.
+	    fileBaseName := pathFilename baseName.
+	].
+
+	PipeStream openErrorSignal handle:[:ex |
+	    PipeFailed := true.
+	    'UnixOperatingSystem [warning]: cannot fork/popen' errorPrintCR.
+	    ex return.
+	] do:[
+	    "have to fall back ..."
+	    command := 'cd "' , directoryName , '"; pwd'.
+	    p := PipeStream readingFrom:command.
+	].
+
+	(p isNil or:[p atEnd]) ifTrue:[
+	    ('UnixOperatingSystem [warning]: PipeStream for <' , command , '> failed') errorPrintCR.
+	] ifFalse:[
+	    path := p nextLine.
+	    p close.
+	].
+	fileBaseName notNil ifTrue:[
+	    path := path, '/', fileBaseName.
+	].
     ].
     path isNil ifTrue:[
-        "/
-        "/ return the original - there is nothing else can we do
-        "/
-        path := pathName
+	"/
+	"/ return the original - there is nothing else can we do
+	"/
+	path := pathName
     ].
     (SlowFork==true or:[ForkFailed==true]) ifTrue:[
-        path := self compressPath:path
+	path := self compressPath:path
     ].
     ^ path.
 
@@ -5775,27 +5775,27 @@
     |p pathes idx lastNonSymLink|
 
     pathName = '.' ifTrue:[
-        ^ self getCurrentDirectory.
+	^ self getCurrentDirectory.
     ].
     pathes := OrderedCollection new.
     p := pathName asFilename.
     [p notNil] whileTrue:[
-        pathes add:p.
-        p isRootDirectory ifTrue:[
-            p := nil
-        ] ifFalse:[
-            p := p directory.
-        ].
+	pathes add:p.
+	p isRootDirectory ifTrue:[
+	    p := nil
+	] ifFalse:[
+	    p := p directory.
+	].
     ].
     idx := pathes findLast:[:p | p isSymbolicLink].
-    idx == 0 ifTrue:[^ self pathNameOf:pathName ]. 
+    idx == 0 ifTrue:[^ self pathNameOf:pathName ].
     lastNonSymLink := pathes at:idx+1.
     ^ lastNonSymLink / (pathName asFilename pathNameRelativeFrom:lastNonSymLink name)
 
     "here, 'Applications' is a symlink to '/Applications'.
 
-     self primPathNameOf:'/Users/exept/cg_work/exept/expecco/application/expecco_dmg/Applications' 
-     self pathNameOfFileOrSymbolicLink:'/Users/exept/cg_work/exept/expecco/application/expecco_dmg/Applications' 
+     self primPathNameOf:'/Users/exept/cg_work/exept/expecco/application/expecco_dmg/Applications'
+     self pathNameOfFileOrSymbolicLink:'/Users/exept/cg_work/exept/expecco/application/expecco_dmg/Applications'
     "
 
     "Modified: / 29-11-1996 / 18:02:12 / stefan"
@@ -5878,51 +5878,51 @@
 %{  /* UNLIMITEDSTACK */
 #ifdef __SCHTEAM__
     if (pathName.isStringLike()) {
-        java.io.File file = new java.io.File( pathName.asString() );
-
-        if (file.exists()) {
-            return __c__._RETURN( new STString( file.getAbsolutePath() ));
-        }
+	java.io.File file = new java.io.File( pathName.asString() );
+
+	if (file.exists()) {
+	    return __c__._RETURN( new STString( file.getAbsolutePath() ));
+	}
     }
 #else
     if (__isStringLike(pathName)) {
 # ifdef HAS_REALPATH
-        extern char *realpath();
-        char *nameP;
-
-        // POSIX-2008 says, that a NULL namebuffer causes realPath to malloc()
-        // the required memory (which we shoudl free). 
-        // But this does not work as of 2013-04
+	extern char *realpath();
+	char *nameP;
+
+	// POSIX-2008 says, that a NULL namebuffer causes realPath to malloc()
+	// the required memory (which we shoudl free).
+	// But this does not work as of 2013-04
 
 #  ifdef __osx__  // HAS_REALPATH_WITH_NULL_ARG
-        nameP = realpath(__stringVal(pathName), NULL);
-        if (nameP) {
-            OBJ ret = __MKSTRING(nameP);
-            free(nameP);
-            RETURN ( ret );
-        }
+	nameP = realpath(__stringVal(pathName), NULL);
+	if (nameP) {
+	    OBJ ret = __MKSTRING(nameP);
+	    free(nameP);
+	    RETURN ( ret );
+	}
 #  else
-        char nameBuffer[MAXPATHLEN+1+1024];
-        nameP = realpath(__stringVal(pathName), nameBuffer);
-        if (nameP) {
-            OBJ ret = __MKSTRING(nameP);
-            // free(nameP);
-            RETURN ( ret );
-        }
+	char nameBuffer[MAXPATHLEN+1+1024];
+	nameP = realpath(__stringVal(pathName), nameBuffer);
+	if (nameP) {
+	    OBJ ret = __MKSTRING(nameP);
+	    // free(nameP);
+	    RETURN ( ret );
+	}
 #  endif /* ! HAS_REALPATH_WITH_NULL_ARG */
-        // fprintf(stderr, "stx[warning]: realpath(\"%s\") failed: %s\n", __stringVal(pathName), strerror(errno));
+	// fprintf(stderr, "stx[warning]: realpath(\"%s\") failed: %s\n", __stringVal(pathName), strerror(errno));
 # endif /* ! HAS_REALPATH */
     } else {
-        error = @symbol(argument);     // argument is not a string
+	error = @symbol(argument);     // argument is not a string
     }
 #endif
 %}.
     ^ nil
 
     "
-     self primPathNameOf:'/Users/exept/cg_work/exept/expecco/application/expecco_dmg/Applications' 
-     self primPathNameOf:'.'  
-     self primPathNameOf:'/murks/quatsch/bla/.' 
+     self primPathNameOf:'/Users/exept/cg_work/exept/expecco/application/expecco_dmg/Applications'
+     self primPathNameOf:'.'
+     self primPathNameOf:'/murks/quatsch/bla/.'
      self primPathNameOf:5555
     "
 !
@@ -7532,26 +7532,26 @@
 %{  /* NOCONTEXT */
 #ifdef __SCHTEAM__
     {
-        java.lang.String val = java.lang.System.getenv( aVariableNameStringOrSymbol.asString() );
-        STObject retVal;
-
-        if (val == null) {
-            retVal = STObject.Nil;
-        } else {
-            retVal = new STString( val );
-        }
-        return context._RETURN( retVal );
-        /* NOTREACHED */
+	java.lang.String val = java.lang.System.getenv( aVariableNameStringOrSymbol.asString() );
+	STObject retVal;
+
+	if (val == null) {
+	    retVal = STObject.Nil;
+	} else {
+	    retVal = new STString( val );
+	}
+	return context._RETURN( retVal );
+	/* NOTREACHED */
     }
 #else
     extern char *getenv();
 
     if (__isStringLike(aVariableNameStringOrSymbol)) {
-        char *env =  getenv(__stringVal(aVariableNameStringOrSymbol));
-        if (env) {
-            RETURN ( __MKSTRING(env) );
-        }
-        RETURN ( nil );
+	char *env =  getenv(__stringVal(aVariableNameStringOrSymbol));
+	if (env) {
+	    RETURN ( __MKSTRING(env) );
+	}
+	RETURN ( nil );
     }
 #endif /* not SCHTEAM */
 %}.
@@ -8326,59 +8326,59 @@
        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).
        Also, applications could enable/disable buffering or otherwise reduce
        their memory usage depending upon the amount of memory installed.
        Your application may make use of available information for tuning,
        but should NEVER 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 CPU (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 CPU (i586, mips ...)
 
      those are currently returned on some machines (no warranty)
      linux:
-        #totalRam         -> total amount of memory available
-        #sharedRam        -> amount of memory which is shared among processes
-                             (i.e. shared code)
-        #bufferRam        -> amount used for buffers
-        #swapSize         -> total size of swap space
-        #freeSwap         -> free amount in swapSpace
-        #numberOfCPUs     -> number of cpus in box
-        #extendedInstructions -> extended instruction set info
+	#totalRam         -> total amount of memory available
+	#sharedRam        -> amount of memory which is shared among processes
+			     (i.e. shared code)
+	#bufferRam        -> amount used for buffers
+	#swapSize         -> total size of swap space
+	#freeSwap         -> free amount in swapSpace
+	#numberOfCPUs     -> number of cpus in box
+	#extendedInstructions -> extended instruction set info
 
      osf:
-        #physicalRam      -> total amount of physical memory
-        #cpuType          -> type of cpu (more detailed than machine)
-        #numberOfCPUs     -> number of cpus in box
+	#physicalRam      -> total amount of physical memory
+	#cpuType          -> type of cpu (more detailed than machine)
+	#numberOfCPUs     -> number of cpus in box
 
      osx:
-        #physicalRam      -> total amount of physical memory
+	#physicalRam      -> total amount of physical memory
 
      solaris:
-        #physicalRam      -> total amount of physical memory
-        #availableRam     -> total available amount of physical memory (i.e. unused ram)
-        #freeRam          -> amount of free memory
-        #numberOfCPUs     -> number of cpus in box (online CPUS)
-        [#dCacheSize]     -> bytes in data cache (only available on some solaris versions)
-        [#iCacheSize]     -> bytes in data cache (only available on some solaris versions)
-        [#instructionSets]-> instruction sets available (only available on some solaris versions)
-        [#platform]       -> platform name (only available on some solaris versions)
+	#physicalRam      -> total amount of physical memory
+	#availableRam     -> total available amount of physical memory (i.e. unused ram)
+	#freeRam          -> amount of free memory
+	#numberOfCPUs     -> number of cpus in box (online CPUS)
+	[#dCacheSize]     -> bytes in data cache (only available on some solaris versions)
+	[#iCacheSize]     -> bytes in data cache (only available on some solaris versions)
+	[#instructionSets]-> instruction sets available (only available on some solaris versions)
+	[#platform]       -> platform name (only available on some solaris versions)
 
      hpux:
-        #physicalRam      -> total amount of physical memory in box
-        #activeRealMemory -> ? - read pstat documentation
-        #activeVirtualRam -> ? - read pstat documentation
-        #freeMemory       -> ? - read pstat documentation
-        #realMemory       -> ? (amount of memory left to user programs)
-        #virtualRam       -> ? - read pstat documentation
+	#physicalRam      -> total amount of physical memory in box
+	#activeRealMemory -> ? - read pstat documentation
+	#activeVirtualRam -> ? - read pstat documentation
+	#freeMemory       -> ? - read pstat documentation
+	#realMemory       -> ? (amount of memory left to user programs)
+	#virtualRam       -> ? - read pstat documentation
 
       extendedInstructionInfo includes CPU dependent symbols:
-        x86/x86_64:  (see cpuid documentation)
+	x86/x86_64:  (see cpuid documentation)
     "
 
     |sys node rel ver mach dom mtyp brel info arch cpuType cpuSpeed
@@ -8396,11 +8396,11 @@
     struct sysinfo infoBuffer;
 
     if (sysinfo(&infoBuffer) >= 0) {
-        totalRam   = __MKUINT(infoBuffer.totalram);
-        sharedRam = __MKUINT(infoBuffer.sharedram);
-        bufferRam = __MKUINT(infoBuffer.bufferram);
-        swapSize  = __MKUINT(infoBuffer.totalswap);
-        freeSwap  = __MKUINT(infoBuffer.freeswap);
+	totalRam   = __MKUINT(infoBuffer.totalram);
+	sharedRam = __MKUINT(infoBuffer.sharedram);
+	bufferRam = __MKUINT(infoBuffer.bufferram);
+	swapSize  = __MKUINT(infoBuffer.totalswap);
+	freeSwap  = __MKUINT(infoBuffer.freeswap);
     }
 #endif /* LINUX */
 
@@ -8426,18 +8426,18 @@
 
 #if defined(HAS_UNAME)
     {
-        struct utsname ubuff;
-
-        if (uname(&ubuff) >= 0) {
-            sys  = __MKSTRING(ubuff.sysname);
-            node = __MKSTRING(ubuff.nodename);
-            rel  = __MKSTRING(ubuff.release);
-            ver  = __MKSTRING(ubuff.version);
-            mach = __MKSTRING(ubuff.machine);
+	struct utsname ubuff;
+
+	if (uname(&ubuff) >= 0) {
+	    sys  = __MKSTRING(ubuff.sysname);
+	    node = __MKSTRING(ubuff.nodename);
+	    rel  = __MKSTRING(ubuff.release);
+	    ver  = __MKSTRING(ubuff.version);
+	    mach = __MKSTRING(ubuff.machine);
 # if defined(HAS_UTS_DOMAINNAME) || defined(_GNU_SOURCE)
-            dom  = __MKSTRING(ubuff.domainname);
+	    dom  = __MKSTRING(ubuff.domainname);
 # endif /* no HAS_UTS_DOMAINNAME */
-        }
+	}
     }
 
 #else /* no UNAME */
@@ -8450,41 +8450,41 @@
 #if defined(HAS_SYSINFO)
 # if defined(SI_ARCHITECTURE)
     if (arch == nil) {
-        char buffer[128];
-
-        if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
-            arch = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_ARCHITECTURE, buffer, sizeof(buffer))) {
+	    arch = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_ARCHITECTURE */
 
 # if defined(SI_ISALIST)
     {
-        char buffer[128];
-
-        if (sysinfo(SI_ISALIST, buffer, sizeof(buffer))) {
-            instructionSets = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_ISALIST, buffer, sizeof(buffer))) {
+	    instructionSets = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_ISALIST */
 
 # if defined(SI_PLATFORM)
     {
-        char buffer[128];
-
-        if (sysinfo(SI_PLATFORM, buffer, sizeof(buffer))) {
-            platform = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_PLATFORM, buffer, sizeof(buffer))) {
+	    platform = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_PLATFORM */
 
 # if defined(SI_RELEASE)
     {
-        char buffer[128];
-
-        if (sysinfo(SI_RELEASE, buffer, sizeof(buffer))) {
-            rel = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	if (sysinfo(SI_RELEASE, buffer, sizeof(buffer))) {
+	    rel = __MKSTRING(buffer);
+	}
     }
 # endif /* SI_RELEASE */
 #endif /* HAS_SYSINFO */
@@ -8492,426 +8492,426 @@
 #if defined(HAS_SYSCONF)
 # ifdef _SC_NPROCESSORS_ONLN
     {
-        long val;
-
-        val = sysconf(_SC_NPROCESSORS_ONLN);
-        if (val > 0) {
-            numberOfCPUs = __MKINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_NPROCESSORS_ONLN);
+	if (val > 0) {
+	    numberOfCPUs = __MKINT(val);
+	}
     }
 # endif
 # ifdef _SC_NPROCESSORS_CONF
     {
-        long val;
-
-        val = sysconf(_SC_NPROCESSORS_CONF);
-        if (val > 0) {
-            numberOfPhysicalCPUs = __MKINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_NPROCESSORS_CONF);
+	if (val > 0) {
+	    numberOfPhysicalCPUs = __MKINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_PAGESIZE)
     {
-        long val;
-
-        val = sysconf(_SC_PAGESIZE);
-        if (val != -1) {
-            pageSize = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_PAGESIZE);
+	if (val != -1) {
+	    pageSize = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_PHYS_PAGES)
     {
-        long val;
-
-        val = sysconf(_SC_PHYS_PAGES);
-        if (val != -1) {
-            physicalPages = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_PHYS_PAGES);
+	if (val != -1) {
+	    physicalPages = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_AVPHYS_PAGES)
     {
-        long val;
-
-        val = sysconf(_SC_AVPHYS_PAGES);
-        if (val != -1) {
-            availablePages = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_AVPHYS_PAGES);
+	if (val != -1) {
+	    availablePages = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_ICACHE_SZ)
     {
-        long val;
-
-        val = sysconf(_SC_ICACHE_SZ);
-        if (val != -1) {
-            iCacheSize = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_ICACHE_SZ);
+	if (val != -1) {
+	    iCacheSize = __MKUINT(val);
+	}
     }
 # endif
 
 # if defined(_SC_DCACHE_SZ)
     {
-        long val;
-
-        val = sysconf(_SC_DCACHE_SZ);
-        if (val != -1) {
-            dCacheSize = __MKUINT(val);
-        }
+	long val;
+
+	val = sysconf(_SC_DCACHE_SZ);
+	if (val != -1) {
+	    dCacheSize = __MKUINT(val);
+	}
     }
 # endif
 #endif /* HAS_SYSCONF */
 
 #if defined(HAS_GETSYSINFO)
     {
-        INT index;
-        int retInt32 = 0;
+	INT index;
+	int retInt32 = 0;
 
 # if defined(GSI_CPU)
-        index = 0;
-        if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
-            switch (retInt32) {
+	index = 0;
+	if (getsysinfo(GSI_CPU, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+	    switch (retInt32) {
 #  ifdef VAX_780
-                case VAX_780:
-                    cpuType = __MKSTRING("VAX_780");
-                    break;
+		case VAX_780:
+		    cpuType = __MKSTRING("VAX_780");
+		    break;
 #  endif
 #  ifdef VAX_750
-                case VAX_750:
-                    cpuType = __MKSTRING("VAX_750");
-                    break;
+		case VAX_750:
+		    cpuType = __MKSTRING("VAX_750");
+		    break;
 #  endif
 #  ifdef VAX_730
-                case VAX_730:
-                    cpuType = __MKSTRING("VAX_730");
-                    break;
+		case VAX_730:
+		    cpuType = __MKSTRING("VAX_730");
+		    break;
 #  endif
 #  ifdef VAX_8600
-                case VAX_8600:
-                    cpuType = __MKSTRING("VAX_8600");
-                    break;
+		case VAX_8600:
+		    cpuType = __MKSTRING("VAX_8600");
+		    break;
 #  endif
 #  ifdef VAX_8200
-                case VAX_8200:
-                    cpuType = __MKSTRING("VAX_8200");
-                    break;
+		case VAX_8200:
+		    cpuType = __MKSTRING("VAX_8200");
+		    break;
 #  endif
 #  ifdef VAX_8800
-                case VAX_8800:
-                    cpuType = __MKSTRING("VAX_8800");
-                    break;
+		case VAX_8800:
+		    cpuType = __MKSTRING("VAX_8800");
+		    break;
 #  endif
 #  ifdef MVAX_I
-                case MVAX_I:
-                    cpuType = __MKSTRING("MVAX_I");
-                    break;
+		case MVAX_I:
+		    cpuType = __MKSTRING("MVAX_I");
+		    break;
 #  endif
 #  ifdef MVAX_II
-                case MVAX_II:
-                    cpuType = __MKSTRING("MVAX_II");
-                    break;
+		case MVAX_II:
+		    cpuType = __MKSTRING("MVAX_II");
+		    break;
 #  endif
 #  ifdef V_VAX
-                case V_VAX:
-                    cpuType = __MKSTRING("V_VAX");
-                    break;
+		case V_VAX:
+		    cpuType = __MKSTRING("V_VAX");
+		    break;
 #  endif
 #  ifdef VAX_3600
-                case VAX_3600:
-                    cpuType = __MKSTRING("VAX_3600");
-                    break;
+		case VAX_3600:
+		    cpuType = __MKSTRING("VAX_3600");
+		    break;
 #  endif
 #  ifdef VAX_6200
-                case VAX_6200:
-                    cpuType = __MKSTRING("VAX_6200");
-                    break;
+		case VAX_6200:
+		    cpuType = __MKSTRING("VAX_6200");
+		    break;
 #  endif
 #  ifdef VAX_3400
-                case VAX_3400:
-                    cpuType = __MKSTRING("VAX_3400");
-                    break;
+		case VAX_3400:
+		    cpuType = __MKSTRING("VAX_3400");
+		    break;
 #  endif
 #  ifdef C_VAXSTAR
-                case C_VAXSTAR:
-                    cpuType = __MKSTRING("C_VAXSTAR");
-                    break;
+		case C_VAXSTAR:
+		    cpuType = __MKSTRING("C_VAXSTAR");
+		    break;
 #  endif
 #  ifdef VAX_60
-                case VAX_60:
-                    cpuType = __MKSTRING("VAX_60");
-                    break;
+		case VAX_60:
+		    cpuType = __MKSTRING("VAX_60");
+		    break;
 #  endif
 #  ifdef VAX_3900
-                case VAX_3900:
-                    cpuType = __MKSTRING("VAX_3900");
-                    break;
+		case VAX_3900:
+		    cpuType = __MKSTRING("VAX_3900");
+		    break;
 #  endif
 #  ifdef DS_3100
-                case DS_3100:
-                    cpuType = __MKSTRING("DS_3100");
-                    break;
+		case DS_3100:
+		    cpuType = __MKSTRING("DS_3100");
+		    break;
 #  endif
 #  ifdef VAX_8820
-                case VAX_8820:
-                    cpuType = __MKSTRING("VAX_8820");
-                    break;
+		case VAX_8820:
+		    cpuType = __MKSTRING("VAX_8820");
+		    break;
 #  endif
 #  ifdef DS_5400
-                case DS_5400:
-                    cpuType = __MKSTRING("DS_5400");
-                    break;
+		case DS_5400:
+		    cpuType = __MKSTRING("DS_5400");
+		    break;
 #  endif
 #  ifdef DS_5800
-                case DS_5800:
-                    cpuType = __MKSTRING("DS_5800");
-                    break;
+		case DS_5800:
+		    cpuType = __MKSTRING("DS_5800");
+		    break;
 #  endif
 #  ifdef DS_5000
-                case DS_5000:
-                    cpuType = __MKSTRING("DS_5000");
-                    break;
+		case DS_5000:
+		    cpuType = __MKSTRING("DS_5000");
+		    break;
 #  endif
 #  ifdef DS_CMAX
-                case DS_CMAX:
-                    cpuType = __MKSTRING("DS_CMAX");
-                    break;
+		case DS_CMAX:
+		    cpuType = __MKSTRING("DS_CMAX");
+		    break;
 #  endif
 #  ifdef VAX_6400
-                case VAX_6400:
-                    cpuType = __MKSTRING("VAX_6400");
-                    break;
+		case VAX_6400:
+		    cpuType = __MKSTRING("VAX_6400");
+		    break;
 #  endif
 #  ifdef VAXSTAR
-                case VAXSTAR:
-                    cpuType = __MKSTRING("VAXSTAR");
-                    break;
+		case VAXSTAR:
+		    cpuType = __MKSTRING("VAXSTAR");
+		    break;
 #  endif
 #  ifdef DS_5500
-                case DS_5500:
-                    cpuType = __MKSTRING("DS_5500");
-                    break;
+		case DS_5500:
+		    cpuType = __MKSTRING("DS_5500");
+		    break;
 #  endif
 #  ifdef DS_5100
-                case DS_5100:
-                    cpuType = __MKSTRING("DS_5100");
-                    break;
+		case DS_5100:
+		    cpuType = __MKSTRING("DS_5100");
+		    break;
 #  endif
 #  ifdef VAX_9000
-                case VAX_9000:
-                    cpuType = __MKSTRING("VAX_9000");
-                    break;
+		case VAX_9000:
+		    cpuType = __MKSTRING("VAX_9000");
+		    break;
 #  endif
 #  ifdef DS_500_100
-                case DS_500_100:
-                    cpuType = __MKSTRING("DS_500_100");
-                    break;
+		case DS_500_100:
+		    cpuType = __MKSTRING("DS_500_100");
+		    break;
 #  endif
 
 
 #  ifdef ALPHA_ADU
-                case ALPHA_ADU:
-                    cpuType = __MKSTRING("ALPHA_ADU");
-                    break;
+		case ALPHA_ADU:
+		    cpuType = __MKSTRING("ALPHA_ADU");
+		    break;
 #  endif
 #  ifdef DEC_4000
-                case DEC_4000:
-                    cpuType = __MKSTRING("DEC_4000");
-                    break;
+		case DEC_4000:
+		    cpuType = __MKSTRING("DEC_4000");
+		    break;
 #  endif
 #  ifdef DEC_3000_500
-                case DEC_3000_500:
-                    cpuType = __MKSTRING("DEC_3000_500");
-                    break;
+		case DEC_3000_500:
+		    cpuType = __MKSTRING("DEC_3000_500");
+		    break;
 #  endif
 #  ifdef DEC_7000
-                case DEC_7000:
-                    cpuType = __MKSTRING("DEC_7000");
-                    break;
+		case DEC_7000:
+		    cpuType = __MKSTRING("DEC_7000");
+		    break;
 #  endif
 #  ifdef DS_5000_300
-                case DS_5000_300:
-                    cpuType = __MKSTRING("DS_5000_300");
-                    break;
+		case DS_5000_300:
+		    cpuType = __MKSTRING("DS_5000_300");
+		    break;
 #  endif
 #  ifdef DEC_3000_300
-                case DEC_3000_300:
-                    cpuType = __MKSTRING("DEC_3000_300");
-                    break;
+		case DEC_3000_300:
+		    cpuType = __MKSTRING("DEC_3000_300");
+		    break;
 #  endif
 #  ifdef DEC_2000_300
-                case DEC_2000_300:
-                    cpuType = __MKSTRING("DEC_2000_300");
-                    break;
+		case DEC_2000_300:
+		    cpuType = __MKSTRING("DEC_2000_300");
+		    break;
 #  endif
 #  ifdef DEC_2100_A500
-                case DEC_2100_A500:
-                    cpuType = __MKSTRING("DEC_2100_A500");
-                    break;
+		case DEC_2100_A500:
+		    cpuType = __MKSTRING("DEC_2100_A500");
+		    break;
 #  endif
 #  ifdef DEC_2100_A50
-                case DEC_2100_A50:
-                    cpuType = __MKSTRING("DEC_2100_A50");
-                    break;
+		case DEC_2100_A50:
+		    cpuType = __MKSTRING("DEC_2100_A50");
+		    break;
 #  endif
 #  ifdef ALPHA_KN20AA
-                case ALPHA_KN20AA:
-                    cpuType = __MKSTRING("ALPHA_KN20AA");
-                    break;
+		case ALPHA_KN20AA:
+		    cpuType = __MKSTRING("ALPHA_KN20AA");
+		    break;
 #  endif
 #  ifdef DEC_21000
-                case DEC_21000:
-                    cpuType = __MKSTRING("DEC_21000");
-                    break;
+		case DEC_21000:
+		    cpuType = __MKSTRING("DEC_21000");
+		    break;
 #  endif
 #  ifdef DEC_AXPVME_64
-                case DEC_AXPVME_64:
-                    cpuType = __MKSTRING("DEC_AXPVME_64");
-                    break;
+		case DEC_AXPVME_64:
+		    cpuType = __MKSTRING("DEC_AXPVME_64");
+		    break;
 #  endif
 #  ifdef DEC_2100_C500
-                case DEC_2100_C500:
-                    cpuType = __MKSTRING("DEC_2100_C500");
-                    break;
+		case DEC_2100_C500:
+		    cpuType = __MKSTRING("DEC_2100_C500");
+		    break;
 #  endif
 #  ifdef DEC_AXPPCI_33
-                case DEC_AXPPCI_33:
-                    cpuType = __MKSTRING("DEC_AXPPCI_33");
-                    break;
+		case DEC_AXPPCI_33:
+		    cpuType = __MKSTRING("DEC_AXPPCI_33");
+		    break;
 #  endif
 #  ifdef DEC_1000
-                case DEC_1000:
-                    cpuType = __MKSTRING("DEC_1000");
-                    break;
+		case DEC_1000:
+		    cpuType = __MKSTRING("DEC_1000");
+		    break;
 #  endif
 #  ifdef EB64_PLUS
-                case EB64_PLUS:
-                    cpuType = __MKSTRING("EB64_PLUS");
-                    break;
+		case EB64_PLUS:
+		    cpuType = __MKSTRING("EB64_PLUS");
+		    break;
 #  endif
 #  ifdef LCA_EB66
-                case LCA_EB66:
-                    cpuType = __MKSTRING("LCA_EB66");
-                    break;
+		case LCA_EB66:
+		    cpuType = __MKSTRING("LCA_EB66");
+		    break;
 #  endif
 #  ifdef ALPHA_EB164
-                case ALPHA_EB164:
-                    cpuType = __MKSTRING("ALPHA_EB164");
-                    break;
+		case ALPHA_EB164:
+		    cpuType = __MKSTRING("ALPHA_EB164");
+		    break;
 #  endif
 #  ifdef DEC_EV45_PBP
-                case DEC_EV45_PBP:
-                    cpuType = __MKSTRING("DEC_EV45_PBP");
-                    break;
+		case DEC_EV45_PBP:
+		    cpuType = __MKSTRING("DEC_EV45_PBP");
+		    break;
 #  endif
 #  ifdef DEC_1000A
-                case DEC_1000A:
-                    cpuType = __MKSTRING("DEC_1000A");
-                    break;
+		case DEC_1000A:
+		    cpuType = __MKSTRING("DEC_1000A");
+		    break;
 #  endif
 #  ifdef DEC_4100
-                case DEC_4100:
-                    cpuType = __MKSTRING("DEC_4100");
-                    break;
+		case DEC_4100:
+		    cpuType = __MKSTRING("DEC_4100");
+		    break;
 #  endif
 #  ifdef DEC_ALPHAVME_224
-                case DEC_ALPHAVME_224:
-                    cpuType = __MKSTRING("DEC_ALPHAVME_224");
-                    break;
+		case DEC_ALPHAVME_224:
+		    cpuType = __MKSTRING("DEC_ALPHAVME_224");
+		    break;
 #  endif
 #  ifdef DEC_1000_5
-                case DEC_1000_5:
-                    cpuType = __MKSTRING("DEC_1000_5");
-                    break;
+		case DEC_1000_5:
+		    cpuType = __MKSTRING("DEC_1000_5");
+		    break;
 #  endif
 #  ifdef DEC_1000A_5
-                case DEC_1000A_5:
-                    cpuType = __MKSTRING("DEC_1000A_5");
-                    break;
+		case DEC_1000A_5:
+		    cpuType = __MKSTRING("DEC_1000A_5");
+		    break;
 #  endif
 #  ifdef DEC_EV56_PBP
-                case DEC_EV56_PBP:
-                    cpuType = __MKSTRING("DEC_EV56_PBP");
-                    break;
+		case DEC_EV56_PBP:
+		    cpuType = __MKSTRING("DEC_EV56_PBP");
+		    break;
 #  endif
 #  ifdef ALPHABOOK
-                case ALPHABOOK:
-                    cpuType = __MKSTRING("ALPHABOOK");
-                    break;
+		case ALPHABOOK:
+		    cpuType = __MKSTRING("ALPHABOOK");
+		    break;
 #  endif
 #  ifdef DEC_ALPHAVME_320
-                case DEC_ALPHAVME_320:
-                    cpuType = __MKSTRING("DEC_ALPHAVME_320");
-                    break;
+		case DEC_ALPHAVME_320:
+		    cpuType = __MKSTRING("DEC_ALPHAVME_320");
+		    break;
 #  endif
 #  ifdef DEC_550
-                case DEC_550:
-                    cpuType = __MKSTRING("DEC_550");
-                    break;
+		case DEC_550:
+		    cpuType = __MKSTRING("DEC_550");
+		    break;
 #  endif
 #  ifdef DEC_6600
-                case DEC_6600:
-                    cpuType = __MKSTRING("DEC_6600");
-                    break;
+		case DEC_6600:
+		    cpuType = __MKSTRING("DEC_6600");
+		    break;
 #  endif
 #  ifdef UNKN_SYSTEM
-                case UNKN_SYSTEM:
-                    cpuType = __MKSTRING("UNKN_SYSTEM");
-                    break;
-#  endif
-                default:
-                    cpuType = __MKSTRING("OTHER_DEC_SYSTEM");
-                    break;
-            }
-        }
+		case UNKN_SYSTEM:
+		    cpuType = __MKSTRING("UNKN_SYSTEM");
+		    break;
+#  endif
+		default:
+		    cpuType = __MKSTRING("OTHER_DEC_SYSTEM");
+		    break;
+	    }
+	}
 # endif /* GSI_CPU */
 
 # if defined(GSI_CPU_INFO)
-        /*
-         * stupid: OSF1 pre V4.0 has no mhz, but V4.0 has it.
-         * use the GSI_PLATFORM_NAME as a hint - it is only defined in
-         * V4.0 and higher ... (sigh)
-         */
+	/*
+	 * stupid: OSF1 pre V4.0 has no mhz, but V4.0 has it.
+	 * use the GSI_PLATFORM_NAME as a hint - it is only defined in
+	 * V4.0 and higher ... (sigh)
+	 */
 #  if defined(GSI_PLATFORM_NAME)
-        {
-            struct cpu_info cpuInfo;
-
-            index = 0;
-            if (getsysinfo(GSI_CPU_INFO, &cpuInfo, sizeof(cpuInfo), &index, NULL) > 0) {
-                cpuSpeed   = __MKUINT(cpuInfo.mhz);
-            }
-        }
+	{
+	    struct cpu_info cpuInfo;
+
+	    index = 0;
+	    if (getsysinfo(GSI_CPU_INFO, &cpuInfo, sizeof(cpuInfo), &index, NULL) > 0) {
+		cpuSpeed   = __MKUINT(cpuInfo.mhz);
+	    }
+	}
 #  endif
 # endif /* GSI_CPU_INFO */
 
 # if defined(GSI_CPUS_IN_BOX)
-        index = 0;
-        if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
-            numberOfCPUs   = __MKUINT(retInt32);
-        }
+	index = 0;
+	if (getsysinfo(GSI_CPUS_IN_BOX, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+	    numberOfCPUs   = __MKUINT(retInt32);
+	}
 # endif /* GSI_CPUS_IN_BOX */
 
 # if defined(GSI_PHYSMEM)
-        index = 0;
-        if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
-            INT bytes = retInt32 * 1024;
-
-            physicalRam   = __MKUINT(bytes);
-        }
+	index = 0;
+	if (getsysinfo(GSI_PHYSMEM, &retInt32, sizeof(retInt32), &index, NULL) > 0) {
+	    INT bytes = retInt32 * 1024;
+
+	    physicalRam   = __MKUINT(bytes);
+	}
 # endif /* GSI_PHYSMEM */
 
 # if defined(GSI_PLATFORM_NAME) && (!defined(HAS_SYSINFO) || !defined(SI_PLATFORM))
     {
-        char buffer[128];
-
-        index = 0;
-        if (getsysinfo(GSI_PLATFORM_NAME, buffer, sizeof(buffer), &index, NULL) > 0) {
-            platform = __MKSTRING(buffer);
-        }
+	char buffer[128];
+
+	index = 0;
+	if (getsysinfo(GSI_PLATFORM_NAME, buffer, sizeof(buffer), &index, NULL) > 0) {
+	    platform = __MKSTRING(buffer);
+	}
     }
 # endif /* GSI_PLATFORM_NAME */
 
@@ -8936,25 +8936,25 @@
 
 
     {
-        extern OBJ __getInstructionSetInfo();
-
-        extendedInstructions = __getInstructionSetInfo();
+	extern OBJ __getInstructionSetInfo();
+
+	extendedInstructions = __getInstructionSetInfo();
     }
 %}.
     sys isNil ifTrue:[
-        sys := self getSystemType.
+	sys := self getSystemType.
     ].
     node isNil ifTrue:[
-        node := self getHostName.
+	node := self getHostName.
     ].
     dom isNil ifTrue:[
-        dom := self getDomainName.
+	dom := self getDomainName.
     ].
     mach isNil ifTrue:[
-        mach := self getCPUType.
+	mach := self getCPUType.
     ].
     arch isNil ifTrue:[
-        arch := sys.
+	arch := sys.
     ].
 
     info := IdentityDictionary new.
@@ -8966,12 +8966,12 @@
     arch notNil ifTrue:[info at:#architecture put:arch].
     dom notNil ifTrue:[info at:#domain put:dom].
     (pageSize notNil and:[physicalPages notNil]) ifTrue:[
-        physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
+	physicalRam := pageSize * physicalPages. "/ done here - could be largeInt.
     ].
     physicalRam notNil ifTrue:[info at:#physicalRam put:physicalRam].
     (pageSize notNil and:[availablePages notNil]) ifTrue:[
-        availableRam := pageSize * availablePages. "/ done here - could be largeInt.
-        availableRam notNil ifTrue:[info at:#availableRam put:availableRam].
+	availableRam := pageSize * availablePages. "/ done here - could be largeInt.
+	availableRam notNil ifTrue:[info at:#availableRam put:availableRam].
     ].
     totalRam notNil ifTrue:[info at:#totalRam put:totalRam].
     sharedRam notNil ifTrue:[info at:#sharedRam put:sharedRam].
@@ -9894,33 +9894,33 @@
 
 voiceCommandSpec
     ^ #(
-        "/ triples are:
-        "/      -command
-        "/      -commandline for default voice
-        "/      -commandline for specific voice
-
-        "/ cg: I dont know how to specify the voice in those;
-        "/ please fix the commandLines for specific voice
-        (
-            'espeak'
-                'espeak "%2"'
-                'espeak -v "%1" "%2"' 
-        )
-        (
-            'say'
-                '| say'
-                '| say'      "/ 'say -v "%1" "%2"' ???
-        )
-        (
-            'festival'
-                '| festival --tts'
-                '| festival --tts'
-        )
-        (
-            'spd-say'
-                'spd-say "%2" '
-                'spd-say "%2"'
-        )
+	"/ triples are:
+	"/      -command
+	"/      -commandline for default voice
+	"/      -commandline for specific voice
+
+	"/ cg: I dont know how to specify the voice in those;
+	"/ please fix the commandLines for specific voice
+	(
+	    'espeak'
+		'espeak "%2"'
+		'espeak -v "%1" "%2"'
+	)
+	(
+	    'say'
+		'| say'
+		'| say'      "/ 'say -v "%1" "%2"' ???
+	)
+	(
+	    'festival'
+		'| festival --tts'
+		'| festival --tts'
+	)
+	(
+	    'spd-say'
+		'spd-say "%2" '
+		'spd-say "%2"'
+	)
     )
 
     "Modified: / 12-12-2019 / 18:27:27 / Stefan Vogel"
@@ -10033,14 +10033,14 @@
 !
 
 getMicrosecondTime
-    "This returns the microsecond timers value - if available.
+    "This returns the microsecond timer's value - if available.
      On some machines, times with this precision may not be available,
      on those, the returned value may be rounded towards some internal
      clock resolution value.
 
      If supported by the system, it uses a clock that cannot be set and represents
-     monotonic time since some unspecified starting point.  This clock is not affected by
-     discontinuous  jumps  in  the system time
+     monotonic time since some unspecified starting point.
+     This clock is not affected by discontinuous jumps in the system time
      (e.g., if the system administrator manually changes the clock), but is affected by
      the incremental adjustments performed by adjtime(3) and NTP."
 
@@ -10132,7 +10132,7 @@
 !
 
 getMillisecondTime
-    "Return the millisecond timers value.
+    "Return the millisecond timer's value.
      The range is limited to 0..1fffffff (i.e. the SmallInteger range) to avoid
      LargeInteger arithmetic when doing timeouts and delays.
      Since this value is wrapping around in regular intervals, this can only be used for
@@ -10234,14 +10234,14 @@
 !
 
 getMonotonicNanosecondTime
-    "This returns the nanosecond timers value - if available.
+    "This returns the nanosecond timer's value - if available.
      On some machines, times with this precision may not be available,
      on those, the returned value may be rounded towards some internal
      clock resolution value.
 
      If supported by the system, it uses a clock that cannot be set and represents
-     monotonic time since some unspecified starting point.  This clock is not affected by
-     discontinuous  jumps  in  the system time
+     monotonic time since some unspecified starting point.
+     This clock is not affected by discontinuous jumps in the system time
      (e.g., if the system administrator manually changes the clock), but is affected by
      the incremental adjustments performed by adjtime(3) and NTP."
 
@@ -10509,11 +10509,11 @@
 !
 
 getRealNanosecondTime
-    "This returns the microsecond timers value - if available.
+    "This returns the nanosecond timer's value - if available.
      On some machines, times with this precision may not be available,
      on those, the returned value may be rounded towards some internal
      clock resolution value.
-     Note, that the timers value is not monotonic,
+     Note, that the timer's value is not monotonic,
      it may jump forward or backward if the sytsems time is changed by e.g. NTP
      or the system administrator!!"