AbstractOperatingSystem.st
changeset 8669 3e822458c660
parent 8655 499dd3e58149
child 8715 631211fda967
--- a/AbstractOperatingSystem.st	Mon Dec 20 13:53:20 2004 +0100
+++ b/AbstractOperatingSystem.st	Mon Dec 20 20:55:13 2004 +0100
@@ -100,7 +100,7 @@
 "
   various queries
 								[exBegin]
-    Transcript 
+    Transcript
 	showCR:'hello ' , (OperatingSystem getLoginName)
 								[exEnd]
 
@@ -113,19 +113,19 @@
 								[exEnd]
 
 								[exBegin]
-    Transcript 
+    Transcript
 	showCR:'this machine is called ' , OperatingSystem getHostName
 								[exEnd]
 
 								[exBegin]
-    Transcript 
+    Transcript
 	showCR:('this machine is in the '
 	       , OperatingSystem getDomainName
 	       , ' domain')
 								[exEnd]
 
 								[exBegin]
-    Transcript 
+    Transcript
 	showCR:('this machine''s CPU is a '
 	       , OperatingSystem getCPUType
 	       )
@@ -137,7 +137,7 @@
     Transcript showCR:'... done.'.
 								[exEnd]
 
-  locking a file 
+  locking a file
   (should be executed on two running smalltalks - not in two threads):
 								[exBegin]
     |f|
@@ -147,7 +147,7 @@
     10 timesRepeat:[
 	'about to lock ...' printCR.
 	[
-	  OperatingSystem 
+	  OperatingSystem
 	    lockFD:(f fileDescriptor)
 	    shared:false
 	    blocking:false
@@ -158,7 +158,7 @@
 	'LOCKED ...' printCR.
 	Delay waitForSeconds:10.
 	'unlock ...' printCR.
-	(OperatingSystem 
+	(OperatingSystem
 	    unlockFD:(f fileDescriptor)) printCR.
 	Delay waitForSeconds:3.
     ]
@@ -178,12 +178,12 @@
     self initializeConcreteClass.
 
     ErrorSignal isNil ifTrue:[
-        OSErrorHolder initialize.
-        ErrorSignal := OsError.
-        InvalidArgumentsSignal := OsInvalidArgumentsError.
-        AccessDeniedErrorSignal := OSErrorHolder noPermissionsSignal.
-        FileNotFoundErrorSignal := OSErrorHolder nonexistentSignal.
-        UnsupportedOperationSignal := OSErrorHolder unsupportedOperationSignal.
+	OSErrorHolder initialize.
+	ErrorSignal := OsError.
+	InvalidArgumentsSignal := OsInvalidArgumentsError.
+	AccessDeniedErrorSignal := OSErrorHolder noPermissionsSignal.
+	FileNotFoundErrorSignal := OSErrorHolder nonexistentSignal.
+	UnsupportedOperationSignal := OSErrorHolder unsupportedOperationSignal.
     ].
     Smalltalk addDependent:self.    "/ to catch language changes
 !
@@ -616,15 +616,15 @@
      (as kept in an osErrorHolder)."
 
     Resources isNil ifTrue:[
-        self initResources.
-        Resources isNil ifTrue:[
-            ^ errorSymbol
-        ]
+	self initResources.
+	Resources isNil ifTrue:[
+	    ^ errorSymbol
+	]
     ].
     ^ Resources at:errorSymbol ifAbsent:errorSymbol
 
     "
-     OperatingSystem errorStringForSymbol:#EPERM   
+     OperatingSystem errorStringForSymbol:#EPERM
      OperatingSystem errorStringForSymbol:(OperatingSystem errorSymbolForNumber:4)
     "
 !
@@ -638,13 +638,13 @@
 
     holder := self errorHolderForNumber:errNr.
     errSym := holder errorSymbol.
-    ^ Array 
-	with:errSym 
+    ^ Array
+	with:errSym
 	with:(self errorStringForSymbol:errSym)
 
     "
-     OperatingSystem errorSymbolAndTextForNumber:(OperatingSystem errorNumberFor:#EPERM)  
-     OperatingSystem errorSymbolAndTextForNumber:(OperatingSystem errorNumberFor:#EIO)  
+     OperatingSystem errorSymbolAndTextForNumber:(OperatingSystem errorNumberFor:#EPERM)
+     OperatingSystem errorSymbolAndTextForNumber:(OperatingSystem errorNumberFor:#EIO)
      OperatingSystem errorSymbolAndTextForNumber:(OperatingSystem errorNumberFor:#ENXIO)
     "
 !
@@ -662,8 +662,8 @@
 !
 
 errorTextForNumber:errNr
-    "return a message string from a unix errorNumber 
-     (as returned by a system call). 
+    "return a message string from a unix errorNumber
+     (as returned by a system call).
      The returned message is in english (as found in /usr/include/errno.h)
      and should be replaced by a resource lookup before being presented to the user."
 
@@ -671,7 +671,7 @@
 
     "
      OperatingSystem errorTextForNumber:4
-     OperatingSystem errorTextForNumber:(OperatingSystem errorNumberFor:#EPERM) 
+     OperatingSystem errorTextForNumber:(OperatingSystem errorNumberFor:#EPERM)
     "
 !
 
@@ -744,7 +744,7 @@
     ^ UnsupportedOperationSignal raise
 !
 
-startProcess:aCommandString inputFrom:anExternalInStream outputTo:anExternalOutStream 
+startProcess:aCommandString inputFrom:anExternalInStream outputTo:anExternalOutStream
     errorTo:anExternalErrStream auxFrom:anExternalAuxStreamOrNil environment:environment inDirectory:dir
     "start executing the OS command as specified by the argument, aCommandString
      as a separate process; do not wait for the command to finish.
@@ -770,7 +770,7 @@
     ].
     [anInStream atEnd] whileFalse:[
 	aLock critical:[
-	    self 
+	    self
 		shuffleFrom:anInStream
 		to:anOutStream
 		lineWise:lineWise
@@ -784,20 +784,20 @@
      anOutstream should have been set to non-blocking-mode"
 
     lineWise ifTrue:[
-        |data|
-
-        data := anInStream nextLine.
-        data notNil ifTrue:[
-            anOutStream nextPutLine:data
-        ] .
-    ] ifFalse:[ 
-        anInStream copyToEndInto:anOutStream.
+	|data|
+
+	data := anInStream nextLine.
+	data notNil ifTrue:[
+	    anOutStream nextPutLine:data
+	] .
+    ] ifFalse:[
+	anInStream copyToEndInto:anOutStream.
     ].
 !
 
-shuffleRestFrom:anInStream to:anOutStream lineWise:lineWise 
+shuffleRestFrom:anInStream to:anOutStream lineWise:lineWise
     [anInStream atEnd] whileFalse:[
-	self 
+	self
 	    shuffleFrom:anInStream
 	    to:anOutStream
 	    lineWise:lineWise.
@@ -814,11 +814,11 @@
      or #killProcess: to stop it."
 
     ^ self
-	startProcess:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
-	auxFrom:nil 
+	startProcess:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
+	auxFrom:nil
 	inDirectory:nil
 
     "
@@ -838,7 +838,7 @@
     "
      |pid|
 
-     pid := OperatingSystem 
+     pid := OperatingSystem
 		startProcess:'dir/l'
 		inputFrom:nil
 		outputTo:Stdout
@@ -862,11 +862,11 @@
      or #killProcess: to stop it."
 
     ^ self
-	startProcess:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
-	auxFrom:nil 
+	startProcess:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
+	auxFrom:nil
 	inDirectory:aDirectory
     "
      |pid|
@@ -892,12 +892,12 @@
      Use #monitorPid:action: for synchronization and exec status return,
      or #killProcess: to stop it."
 
-     ^ self     
-	startProcess:aCommandString 
-	inputFrom:anExternalInStream 
-	outputTo:anExternalOutStream 
-	errorTo:anExternalErrStream 
-	auxFrom:nil 
+     ^ self
+	startProcess:aCommandString
+	inputFrom:anExternalInStream
+	outputTo:anExternalOutStream
+	errorTo:anExternalErrStream
+	auxFrom:nil
 	inDirectory:nil
 
     "Modified: / 10.11.1998 / 20:59:05 / cg"
@@ -906,13 +906,13 @@
 startProcess:aCommandString inputFrom:anExternalInStream outputTo:anExternalOutStream
     errorTo:anExternalErrStream auxFrom:anAuxiliaryStream inDirectory:dir
 
-    ^ self 
-	startProcess:aCommandString 
-	inputFrom:anExternalInStream 
-	outputTo:anExternalOutStream 
-	errorTo:anExternalErrStream 
-	auxFrom:anAuxiliaryStream 
-	environment:nil 
+    ^ self
+	startProcess:aCommandString
+	inputFrom:anExternalInStream
+	outputTo:anExternalOutStream
+	errorTo:anExternalErrStream
+	auxFrom:anAuxiliaryStream
+	environment:nil
 	inDirectory:dir
 !
 
@@ -928,11 +928,11 @@
      or #killProcess: to stop it."
 
     ^ self
-	startProcess:aCommandString 
-	inputFrom:anExternalInStream 
-	outputTo:anExternalOutStream 
-	errorTo:anExternalErrStream 
-	auxFrom:nil 
+	startProcess:aCommandString
+	inputFrom:anExternalInStream
+	outputTo:anExternalOutStream
+	errorTo:anExternalErrStream
+	auxFrom:nil
 	inDirectory:dir
 ! !
 
@@ -945,10 +945,10 @@
      Return true if successful, false otherwise."
 
      ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
 	auxFrom:nil
 	inDirectory:nil
 	lineWise:false
@@ -956,16 +956,16 @@
 
     "unix:
 
-     OperatingSystem executeCommand:'sleep 30'. 
-     OperatingSystem executeCommand:'pwd'. 
-     OperatingSystem executeCommand:'ls -l'. 
-     OperatingSystem executeCommand:'invalidCommand'. 
-     OperatingSystem executeCommand:'rm /tmp/foofoofoofoo'. 
+     OperatingSystem executeCommand:'sleep 30'.
+     OperatingSystem executeCommand:'pwd'.
+     OperatingSystem executeCommand:'ls -l'.
+     OperatingSystem executeCommand:'invalidCommand'.
+     OperatingSystem executeCommand:'rm /tmp/foofoofoofoo'.
     "
 
     "msdos:
 
-     OperatingSystem executeCommand:'dir' 
+     OperatingSystem executeCommand:'dir'
      OperatingSystem executeCommand:'dir /w'
     "
 
@@ -987,10 +987,10 @@
      Return true if successful, false otherwise."
 
      ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:errorStream 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:errorStream
 	auxFrom:nil
 	inDirectory:nil
 	lineWise:false
@@ -998,9 +998,9 @@
 
     "unix:
 
-     OperatingSystem executeCommand:'ls -l'                 errorTo:Transcript. 
-     OperatingSystem executeCommand:'invalidCommand'        errorTo:Transcript. 
-     OperatingSystem executeCommand:'rm /tmp/foofoofoofoo'  errorTo:Transcript. 
+     OperatingSystem executeCommand:'ls -l'                 errorTo:Transcript.
+     OperatingSystem executeCommand:'invalidCommand'        errorTo:Transcript.
+     OperatingSystem executeCommand:'rm /tmp/foofoofoofoo'  errorTo:Transcript.
     "
 !
 
@@ -1011,10 +1011,10 @@
      Return true if successful, false otherwise."
 
     ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
 	auxFrom:nil
 	inDirectory:aDirectory
 	lineWise:false
@@ -1023,7 +1023,7 @@
     "Modified: / 10.11.1998 / 20:54:37 / cg"
 !
 
-executeCommand:aCommandString inDirectory:aDirectory onError:aBlock 
+executeCommand:aCommandString inDirectory:aDirectory onError:aBlock
     "execute the unix command specified by the argument, aCommandString.
      The commandString is passed to a shell for execution - see the description of
      'sh -c' in your UNIX manual.
@@ -1032,10 +1032,10 @@
      (containing the exit status) as argument."
 
     ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
 	auxFrom:nil
 	inDirectory:aDirectory
 	lineWise:false
@@ -1044,7 +1044,7 @@
     "Modified: / 10.11.1998 / 20:54:37 / cg"
 !
 
-executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream 
+executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream
     errorTo:anErrStream auxFrom:anAuxStream environment:environmentDictionary
     inDirectory:dirOrNil lineWise:lineWise onError:aBlock
 
@@ -1061,17 +1061,17 @@
      Nil stream args will execute the command connected to ST/X's standard input, output or
      error resp. - i.e. usually, i/o will be from/to the terminal.
 
-     Set lineWise to true, if both error and output is sent to the same stream 
+     Set lineWise to true, if both error and output is sent to the same stream
      and you don't want lines to be mangled. Set lineWise = false to
      avoid vlocking on pipes"
 
-    |pid exitStatus sema pIn pOut pErr pAux externalInStream externalOutStream externalErrStream externalAuxStream 
+    |pid exitStatus sema pIn pOut pErr pAux externalInStream externalOutStream externalErrStream externalAuxStream
      shuffledInStream shuffledOutStream shuffledErrStream shuffledAuxStream
      inputShufflerProcess outputShufflerProcess errorShufflerProcess auxShufflerProcess stopShufflers
      inStreamToClose outStreamToClose errStreamToClose auxStreamToClose terminateLock|
 
     terminateLock := Semaphore forMutualExclusion.
-    ((externalInStream := anInStream) notNil 
+    ((externalInStream := anInStream) notNil
      and:[externalInStream isExternalStream not]) ifTrue:[
 	pIn := NonPositionableExternalStream makePipe.
 	inStreamToClose := externalInStream := pIn at:1.
@@ -1085,7 +1085,7 @@
 
 	"/ start a reader process, shuffling data from the given
 	"/ inStream to the pipe (which is connected to the commands input)
-	inputShufflerProcess := 
+	inputShufflerProcess :=
 	    [
 		[
 		    [anInStream atEnd] whileFalse:[
@@ -1097,7 +1097,7 @@
 		]
 	    ] forkNamed:'cmd input shuffler'.
     ].
-    ((externalOutStream := anOutStream) notNil 
+    ((externalOutStream := anOutStream) notNil
      and:[externalOutStream isExternalStream not]) ifTrue:[
 	pOut := NonPositionableExternalStream makePipe.
 	shuffledOutStream := (pOut at:1).
@@ -1105,9 +1105,9 @@
 	    shuffledOutStream binary
 	].
 	outStreamToClose := externalOutStream := pOut at:2.
-	outputShufflerProcess := 
+	outputShufflerProcess :=
 	    [
-		self shuffleAllFrom:shuffledOutStream to:anOutStream lineWise:lineWise lockWith:terminateLock.    
+		self shuffleAllFrom:shuffledOutStream to:anOutStream lineWise:lineWise lockWith:terminateLock.
 	    ] forkNamed:'cmd output shuffler'.
     ].
     (externalErrStream := anErrStream) notNil ifTrue:[
@@ -1121,14 +1121,14 @@
 		    shuffledErrStream binary
 		].
 		errStreamToClose := externalErrStream := pErr at:2.
-		errorShufflerProcess := 
+		errorShufflerProcess :=
 		    [
-			self shuffleAllFrom:shuffledErrStream to:anErrStream lineWise:lineWise lockWith:terminateLock.    
+			self shuffleAllFrom:shuffledErrStream to:anErrStream lineWise:lineWise lockWith:terminateLock.
 		    ] forkNamed:'cmd err-output shuffler'.
 	    ]
 	]
     ].
-    ((externalAuxStream := anAuxStream) notNil 
+    ((externalAuxStream := anAuxStream) notNil
      and:[externalAuxStream isExternalStream not]) ifTrue:[
 	pAux := NonPositionableExternalStream makePipe.
 	auxStreamToClose := externalAuxStream := pAux at:1.
@@ -1140,7 +1140,7 @@
 
 	"/ start a reader process, shuffling data from the given
 	"/ auxStream to the pipe (which is connected to the commands aux)
-	auxShufflerProcess := 
+	auxShufflerProcess :=
 	    [
 		[
 		    [anAuxStream atEnd] whileFalse:[
@@ -1154,18 +1154,18 @@
     ].
 
     sema := Semaphore new name:'OS command wait'.
-    pid := Processor 
+    pid := Processor
 		monitor:[
-		    self 
+		    self
 			startProcess:aCommandString
 			inputFrom:externalInStream
 			outputTo:externalOutStream
 			errorTo:externalErrStream
 			auxFrom:externalAuxStream
-			environment:environmentDictionary                        
+			environment:environmentDictionary
 			inDirectory:dirOrNil
 		]
-		action:[:status | 
+		action:[:status |
 		    status stillAlive ifFalse:[
 			exitStatus := status.
 			sema signal.
@@ -1217,7 +1217,7 @@
 	    self terminateProcessGroup:pid.
 	    self terminateProcess:pid.
 	    self closePid:pid.
-	    stopShufflers value.    
+	    stopShufflers value.
 	]
     ] ifFalse:[
 	exitStatus := self osProcessStatusClass processCreationFailure
@@ -1274,17 +1274,17 @@
     "
 !
 
-executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream auxFrom:anAuxStream inDirectory:dirOrNil lineWise:lineWise onError:aBlock 
-    ^ self 
-        executeCommand:aCommandString 
-        inputFrom:anInStream 
-        outputTo:anOutStream 
-        errorTo:anErrStream 
-        auxFrom:anAuxStream 
-        environment:nil
-        inDirectory:dirOrNil 
-        lineWise:lineWise 
-        onError:aBlock
+executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream auxFrom:anAuxStream inDirectory:dirOrNil lineWise:lineWise onError:aBlock
+    ^ self
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom:anAuxStream
+	environment:nil
+	inDirectory:dirOrNil
+	lineWise:lineWise
+	onError:aBlock
 !
 
 executeCommand:aCommandString inputFrom:inputStreamOrNil outputTo:outStreamOrNil errorTo:errStreamOrNil inDirectory:aDirectory
@@ -1293,20 +1293,20 @@
      hardwiring any 'cd ..' command strings into your applictions."
 
      ^ self
-        executeCommand:aCommandString
-        inputFrom:inputStreamOrNil
-        outputTo:outStreamOrNil
-        errorTo:errStreamOrNil
-        auxFrom:nil
-        inDirectory:aDirectory
-        lineWise:false
-        onError:[:status| false]
-
-    "
-     OperatingSystem executeCommand:'tdump date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'. 
-     OperatingSystem executeCommand:'xxdir date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'. 
-     OperatingSystem executeCommand:'dir' inDirectory:'c:\'. 
-     OperatingSystem executeCommand:'dir' 
+	executeCommand:aCommandString
+	inputFrom:inputStreamOrNil
+	outputTo:outStreamOrNil
+	errorTo:errStreamOrNil
+	auxFrom:nil
+	inDirectory:aDirectory
+	lineWise:false
+	onError:[:status| false]
+
+    "
+     OperatingSystem executeCommand:'tdump date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'.
+     OperatingSystem executeCommand:'xxdir date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'.
+     OperatingSystem executeCommand:'dir' inDirectory:'c:\'.
+     OperatingSystem executeCommand:'dir'
     "
 
     "Modified: / 20.1.1998 / 17:03:03 / md"
@@ -1314,7 +1314,7 @@
     "Created: / 10.11.1998 / 21:05:45 / cg"
 !
 
-executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream inDirectory:dirOrNil lineWise:lineWise onError:aBlock 
+executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream inDirectory:dirOrNil lineWise:lineWise onError:aBlock
     "execute the unix command specified by the argument, aCommandString.
      The commandString is passed to a shell for execution - see the description of
      'sh -c' in your UNIX manual.
@@ -1329,14 +1329,14 @@
      error resp. - i.e. usually, i/o will be from/to the terminal"
 
     ^ self
-	executeCommand:aCommandString 
-	inputFrom:anInStream 
-	outputTo:anOutStream 
-	errorTo:anErrStream 
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
 	auxFrom:nil
-	inDirectory:dirOrNil 
-	lineWise:lineWise 
-	onError:aBlock 
+	inDirectory:dirOrNil
+	lineWise:lineWise
+	onError:aBlock
 !
 
 executeCommand:aCommandString inputFrom:anInStream outputTo:anOutStream errorTo:anErrStream inDirectory:dirOrNil onError:aBlock
@@ -1351,53 +1351,53 @@
      extra pipes and shuffler processes are created, which stuff the data into
      those internal stream(s).
      Nil stream args will execute the command connected to ST/X's input, output or
-     error resp. - i.e. i/o will be from/to the xterminal"                                                          
-
-    ^ self 
-        executeCommand:aCommandString 
-        inputFrom:anInStream 
-        outputTo:anOutStream 
-        errorTo:anErrStream 
-        auxFrom:nil
-        inDirectory:dirOrNil 
-        lineWise:false
-        onError:aBlock
+     error resp. - i.e. i/o will be from/to the xterminal"
+
+    ^ self
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
+	auxFrom: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.
     "
 
@@ -1416,10 +1416,10 @@
      (containing the exit status) as argument."
 
     ^ self
-	executeCommand:aCommandString 
-	inputFrom:anInStream 
-	outputTo:anOutStream 
-	errorTo:anErrStream 
+	executeCommand:aCommandString
+	inputFrom:anInStream
+	outputTo:anOutStream
+	errorTo:anErrStream
 	auxFrom:nil
 	inDirectory:nil
 	lineWise:false
@@ -1427,12 +1427,12 @@
 
     "
 	OperatingSystem
-	    executeCommand:'dir'                              
+	    executeCommand:'dir'
 	    inputFrom:nil
 	    outputTo:nil
 	    errorTo:nil
 	    onError:[:status | Transcript flash]
-        
+
 	OperatingSystem
 	    executeCommand:'foo'
 	    inputFrom:nil
@@ -1481,10 +1481,10 @@
      (containing the exit status) as argument."
 
     ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
 	auxFrom:nil
 	inDirectory:nil
 	lineWise:false
@@ -1492,15 +1492,15 @@
 
     "unix:
 
-     OperatingSystem executeCommand:'sleep 30' onError:[]. 
-     OperatingSystem executeCommand:'pwd' onError:[:status|status inspect]. 
-     OperatingSystem executeCommand:'ls -l' onError:[]. 
-     OperatingSystem executeCommand:'invalidCommand' onError:[:status| status inspect]. 
-     OperatingSystem executeCommand:'rm /tmp/foofoofoofoo'onError:[:status | status inspect]. 
-
-     OperatingSystem executeCommand:'dir' onError:[]. 
-     OperatingSystem executeCommand:'foo' onError:[]. 
-        
+     OperatingSystem executeCommand:'sleep 30' onError:[].
+     OperatingSystem executeCommand:'pwd' onError:[:status|status inspect].
+     OperatingSystem executeCommand:'ls -l' onError:[].
+     OperatingSystem executeCommand:'invalidCommand' onError:[:status| status inspect].
+     OperatingSystem executeCommand:'rm /tmp/foofoofoofoo'onError:[:status | status inspect].
+
+     OperatingSystem executeCommand:'dir' onError:[].
+     OperatingSystem executeCommand:'foo' onError:[].
+
     "
 
     "Modified: / 25.3.1997 / 11:06:43 / stefan"
@@ -1523,10 +1523,10 @@
     self obsoleteMethodWarning:'use executeCommand:inDirectory:onError:'.
 
     ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:nil 
-	errorTo:nil 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:nil
+	errorTo:nil
 	auxFrom:nil
 	inDirectory:aDirectory
 	lineWise:false
@@ -1542,27 +1542,27 @@
      Return true if successful, false otherwise."
 
      ^ self
-	executeCommand:aCommandString 
-	inputFrom:nil 
-	outputTo:anOutStreamOrNil 
-	errorTo:nil 
+	executeCommand:aCommandString
+	inputFrom:nil
+	outputTo:anOutStreamOrNil
+	errorTo:nil
 	auxFrom:nil
 	inDirectory:nil
 	lineWise:false
 	onError:[:status| false]
 
     "
-     String streamContents:[:s|OperatingSystem 
-	executeCommand:'ls' 
+     String streamContents:[:s|OperatingSystem
+	executeCommand:'ls'
 	outputTo:s
      ]
     "
 
     "
-     String streamContents:[:s|OperatingSystem 
-	executeCommand:'pwd' 
+     String streamContents:[:s|OperatingSystem
+	executeCommand:'pwd'
 	outputTo:s
-     ]       
+     ]
     "
 !
 
@@ -1582,10 +1582,10 @@
 	onError:[:status| false]
 
     "
-     OperatingSystem executeCommand:'tdump date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'. 
-     OperatingSystem executeCommand:'xxdir date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'. 
-     OperatingSystem executeCommand:'dir' inDirectory:'c:\'. 
-     OperatingSystem executeCommand:'dir' 
+     OperatingSystem executeCommand:'tdump date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'.
+     OperatingSystem executeCommand:'xxdir date.obj' inDirectory:'c:\winstx\stx\libbasic\objbc'.
+     OperatingSystem executeCommand:'dir' inDirectory:'c:\'.
+     OperatingSystem executeCommand:'dir'
     "
 
     "Modified: / 20.1.1998 / 17:03:03 / md"
@@ -1609,10 +1609,10 @@
     ^ result
 
     "
-     OperatingSystem getCommandOutputFrom:'hostname' 
-     OperatingSystem getCommandOutputFrom:'pwd'   
-     OperatingSystem getCommandOutputFrom:'sleep 1'   
-     OperatingSystem getCommandOutputFrom:'foo'   
+     OperatingSystem getCommandOutputFrom:'hostname'
+     OperatingSystem getCommandOutputFrom:'pwd'
+     OperatingSystem getCommandOutputFrom:'sleep 1'
+     OperatingSystem getCommandOutputFrom:'foo'
     "
 
 !
@@ -1627,7 +1627,7 @@
      if the command fails, nil is returned.
      errorDisposition controls where the stdErr output should go,
      and may be one of #discard, #inline or #stderr (default).
-     #discard causes stderr to be discarded (/dev/null), 
+     #discard causes stderr to be discarded (/dev/null),
      #inline causes it to be written to smalltalks own stdout and
      #stderr causes it to be written to smalltalks own stderr.
      Nil is treated like #stderr"
@@ -1642,14 +1642,14 @@
 	] do:[
 	    |p line|
 
-	    p := PipeStream 
+	    p := PipeStream
 		    readingFrom:aCommand
 		    errorDisposition:errorDisposition
 		    inDirectory:nil.
 	    result := StringCollection new.
 	    [p atEnd] whileFalse:[
 		line := p nextLine.
-		(numLinesOrNil isNil 
+		(numLinesOrNil isNil
 		or:[result size < numLinesOrNil]) ifTrue:[
 		    result add:line
 		].
@@ -1702,9 +1702,9 @@
     ^ fn exists and:[fn isExecutableProgram].
 
     "
-     OperatingSystem canExecuteCommand:'fooBar'  
-     OperatingSystem canExecuteCommand:'ls'  
-     OperatingSystem canExecuteCommand:'cvs'   
+     OperatingSystem canExecuteCommand:'fooBar'
+     OperatingSystem canExecuteCommand:'ls'
+     OperatingSystem canExecuteCommand:'cvs'
     "
 
     "Created: 4.11.1995 / 19:13:54 / cg"
@@ -1750,7 +1750,7 @@
 
 pathOfSTXExecutable
     "return the full path of the running ST/X executable program.
-     Usually, '.../stx' is returned - 
+     Usually, '.../stx' is returned -
      but may be different for standAlone apps (or winstx.exe)."
 
     ^ self pathOfCommand:(self nameOfSTXExecutable)
@@ -1766,15 +1766,15 @@
     "execute the OS command specified by the argument, aCommandPath, with
      arguments in argArray (no arguments, if nil).
      If successful, this method does NOT return and smalltalk is gone.
-     If not successful, it does return. 
+     If not successful, it does return.
      Can be used on UNIX with fork or on other systems to chain to another program."
 
-    ^ self 
-	exec:aCommandPath 
+    ^ self
+	exec:aCommandPath
 	withArguments:argArray
 	environment:nil
 	fileDescriptors:#(0 1 2)
-	fork:false 
+	fork:false
 	newPgrp:false
 	inDirectory:nil
 
@@ -1784,12 +1784,12 @@
 !
 
 exec:aCommandPath withArguments:argArray fileDescriptors:fileDescriptors fork:doFork newPgrp:newPgrp inDirectory:aDirectory
-    ^ self 
+    ^ self
 	exec:aCommandPath
 	withArguments:argArray
 	environment:nil
 	fileDescriptors:fileDescriptors
-	fork:doFork 
+	fork:doFork
 	newPgrp:newPgrp
 	inDirectory:aDirectory
 !
@@ -1800,12 +1800,12 @@
      from/to whatever terminal device ST/X was started
      (typically, the terminal window)"
 
-    ^ self 
-	exec:aCommandPath 
-	withArguments:argArray 
+    ^ self
+	exec:aCommandPath
+	withArguments:argArray
 	environment:nil
 	fileDescriptors:#(0 1 2)
-	fork:doFork 
+	fork:doFork
 	newPgrp:false
 	inDirectory:nil
 
@@ -1815,8 +1815,8 @@
      id := OperatingSystem fork.
      id == 0 ifTrue:[
 	'I am the child'.
-	OperatingSystem 
-	    exec:'/bin/ls' 
+	OperatingSystem
+	    exec:'/bin/ls'
 	    withArguments:#('ls' '/tmp')
 	    fork:false.
 	'not reached'.
@@ -1829,8 +1829,8 @@
      id := OperatingSystem fork.
      id == 0 ifTrue:[
 	'I am the child'.
-	OperatingSystem 
-	    exec:'/bin/sh' 
+	OperatingSystem
+	    exec:'/bin/sh'
 	    withArguments:#('sh' '-c' 'sleep 2;echo 1;sleep 2;echo 2')
 	    fork:false.
 	'not reached'.
@@ -1852,12 +1852,12 @@
      from/to whatever terminal device ST/X was started
      (typically, the terminal window)"
 
-    ^ self 
+    ^ self
 	exec:aCommandPath
 	withArguments:argArray
 	environment:nil
 	fileDescriptors:#(0 1 2)
-	fork:doFork 
+	fork:doFork
 	newPgrp:false
 	inDirectory:aDirectory
 
@@ -1867,8 +1867,8 @@
      id := OperatingSystem fork.
      id == 0 ifTrue:[
 	'I am the child'.
-	OperatingSystem 
-	    exec:'/bin/ls' 
+	OperatingSystem
+	    exec:'/bin/ls'
 	    withArguments:#('ls' '/tmp')
 	    fork:false.
 	'not reached'.
@@ -1881,8 +1881,8 @@
      id := OperatingSystem fork.
      id == 0 ifTrue:[
 	'I am the child'.
-	OperatingSystem 
-	    exec:'/bin/sh' 
+	OperatingSystem
+	    exec:'/bin/sh'
 	    withArguments:#('sh' '-c' 'sleep 2;echo 1;sleep 2;echo 2')
 	    fork:false.
 	'not reached'.
@@ -1973,11 +1973,11 @@
 !
 
 openFile:pathName withMode:openModeSymbol attributes:attributeSpec
-    "open a file, return an os specific fileHandle. 
+    "open a file, return an os specific fileHandle.
      openmode is a symbol defining the way to open
      valid modes are:
 	#read
-	#write  
+	#write
 	#readWrite
 	#appendWrite
 	#appendReadWrite
@@ -2019,12 +2019,12 @@
 !
 
 recursiveCopyDirectory:fullPathName to:destinationPathName
-    "copy the directory named 'fullPathName' and all contained 
+    "copy the directory named 'fullPathName' and all contained
      files/directories recursively to destinationPathName.
      Return true if successful.
      Here, false is returned and the caller should be prepared
      for a fallBack solution.
-     Notice: 
+     Notice:
 	this is not a public interface; instead, it is used
 	internally by the Filename class, to try a fast copy
 	before doing things manually.
@@ -2066,7 +2066,7 @@
      Return true if successful.
      Here, false is returned and the caller should be prepared
      for a fallBack solution.
-     Notice: 
+     Notice:
 	this is not a public interface; instead, it is used
 	internally by the Filename class, to try a fast remove
 	before doing things manually.
@@ -2083,7 +2083,7 @@
 !
 
 removeDirectory:fullPathName
-    "remove the directory named 'fullPathName'. 
+    "remove the directory named 'fullPathName'.
      The directory must be empty and you must have appropriate access rights.
      Return true if successful, false if directory is not empty or no permission.
      This is a lowLevel entry - use Filename protocol for compatibility."
@@ -2099,8 +2099,8 @@
 !
 
 renameFile:oldPath to:newPath
-    "rename the file 'oldPath' to 'newPath'. 
-     Someone else has to care for the names to be correct and 
+    "rename the file 'oldPath' to 'newPath'.
+     Someone else has to care for the names to be correct and
      correct for the OS used - therefore, this should not be called
      directlt. Instead, use Filename protocol to rename; this cares for
      any invalid names.
@@ -2121,7 +2121,7 @@
 !AbstractOperatingSystem class methodsFor:'file access rights'!
 
 accessMaskFor:aSymbol
-    "return the access bits mask for numbers as returned by 
+    "return the access bits mask for numbers as returned by
      OperatingSystem>>accessModeOf:
      and expected by OperatingSystem>>changeAccessModeOf:to:.
      Since these numbers are OS dependent, always use the mask
@@ -2133,7 +2133,7 @@
 accessModeOf:aPathName
     "return a number representing access rights rwxrwxrwx for owner,
      group and others. Return nil if such a file does not exist.
-     Notice that the returned number is OS dependent - use the 
+     Notice that the returned number is OS dependent - use the
      modeMasks as returned by OperatingSystem>>accessMaskFor:"
 
     "
@@ -2152,7 +2152,7 @@
 changeAccessModeOf:aPathName to:modeBits
     "change the access rights of aPathName to the OS dependent modeBits.
      You should construct this mask using accessMaskFor, to be OS
-     independent. Return true if changed, 
+     independent. Return true if changed,
      false if such a file does not exist or change was not allowd."
 
     self subclassResponsibility
@@ -2165,15 +2165,15 @@
     (such as returned by ExternalStream>>fileDescriptor).
     On some systems, only advisory locks are available -
     these depends on other accessors to also perform the locking operation.
-    If they do not, they may still access the file 
-    (on some systems, locks are mandatory, on others, they are advisory). 
+    If they do not, they may still access the file
+    (on some systems, locks are mandatory, on others, they are advisory).
     The isSharedReadLock argument (if true) specifies if multiple readers
     are to be allowed - if false, they are not.
     On some systems, all locks are non-exclusive locks.
 
     Returns true, if the lock was aquired, false otherwise.
 
-    Notice, that not all OS's support these locks; 
+    Notice, that not all OS's support these locks;
     on some, this may simply be a no-op.
     Also notice, that some systems block the process, to wait for the lock.
     This can (again: on some systems) be avoided by passing a false blockIfLocked
@@ -2233,12 +2233,12 @@
 unlockFD:aFileDescriptor
     "clear a file lock on the file represented by aFileDescriptor,
      which was previously aquired by #lockFD:.
-     Return false, if the unlock failed 
-     (which may happens when a wrong fd is passed, 
+     Return false, if the unlock failed
+     (which may happens when a wrong fd is passed,
       no lock was set previously, or the systsem does not support locks).
-     Notice, that not all OS's support file locks; 
+     Notice, that not all OS's support file locks;
      on some, this may simply be a no-op."
-     
+
     ^ false
 
     "Modified: / 10.9.1998 / 17:54:15 / cg"
@@ -2248,7 +2248,7 @@
 
 caseSensitiveFilenames
     "return true, if the OS has caseSensitive file naming.
-     On MSDOS, this will return false; 
+     On MSDOS, this will return false;
      on a real OS, we return true."
 
     self subclassResponsibility
@@ -2280,7 +2280,7 @@
 !
 
 getDiskInfoOf:aDirectoryPath
-    "return some disk info. 
+    "return some disk info.
      The amount of information returned depends upon the OS, and is
      not guaranteed to be consistent across architectures.
      On unix and msdos, the information returned is (at least):
@@ -2302,9 +2302,9 @@
 !
 
 getDriveList
-    "return a list of volumes in the system. 
-     On unix, no such thing like a volume exists 
-     - there, a syntetic list with root, home & current is returned. 
+    "return a list of volumes in the system.
+     On unix, no such thing like a volume exists
+     - there, a syntetic list with root, home & current is returned.
      On MSDOS, a list of drive letters is (eventually) returned.
      On VMS, a list of volumes is (eventually) returned."
 
@@ -2312,7 +2312,7 @@
     "/ default: return an array filled with
     "/ root, home and current directories.
     "/
-    ^ Array 
+    ^ Array
 	with:'/'
 	with:(self getHomeDirectory)
 	with:(Filename currentDirectory pathName)
@@ -2321,7 +2321,7 @@
 !
 
 getMountedVolumes
-    "return info about mounted volumes. 
+    "return info about mounted volumes.
      The amount of information returned depends upon the OS, and is
      not guaranteed to be consistent across architectures.
      On unix, the information returned is (at least):
@@ -2351,8 +2351,8 @@
 
      Not all operatingSystems may provide this - on those that do not,
      some dummy id will be returned.
-     On unix, this information can be used to check for two files being 
-     physically identical, even if found in different directories 
+     On unix, this information can be used to check for two files being
+     physically identical, even if found in different directories
      (i.e. if they are hardLinked)."
 
     |i id|
@@ -2374,7 +2374,7 @@
      the info (for which corresponding access methods are understood by
      the returned object) is:
 	 type            - a symbol giving the files type
-	 mode            - numeric access mode 
+	 mode            - numeric access mode
 	 uid             - owners user id
 	 gid             - owners group id
 	 size            - files size
@@ -2386,8 +2386,8 @@
 
      Some of the fields may be returned as nil on systems which do not provide
      all of the information.
-     Return nil if such a file does not exist. 
-     For symbolic links (if supported by the OS), 
+     Return nil if such a file does not exist.
+     For symbolic links (if supported by the OS),
      the info of the pointed-to-file (i.e. the target) is returned;
      use #linkInfoOf: to get info about the link itself.
     "
@@ -2417,9 +2417,9 @@
     ^ self mountPoints contains:[:mountInfo | mountInfo mountPointPath = aPathName].
 
     "
-     OperatingSystem isMountPoint:'/phys/qnx'  
-     OperatingSystem isMountPoint:'/proc'      
-     OperatingSystem isMountPoint:'/'      
+     OperatingSystem isMountPoint:'/phys/qnx'
+     OperatingSystem isMountPoint:'/proc'
+     OperatingSystem isMountPoint:'/'
     "
 !
 
@@ -2460,14 +2460,14 @@
 
 linkInfoOf:aPathName
     "return a dictionary filled with info for the file 'aPathName',
-     IFF aPathName is a symbolic link. 
+     IFF aPathName is a symbolic link.
      If aPathName is invalid, or its NOT a symbolic link, nil is returned.
      (which means, that systems like VMS or MSDOS always return nil here.)
 
      The contents of the dictionary gives info about the link itself,
      on contrast to #infoOf:, which returns the info of the pointed to file
      in case of a symbolic link."
-     
+
     self subclassResponsibility
 !
 
@@ -2537,11 +2537,11 @@
     "return the time, when the file was last accessed.
      For nonexistent files, nil is returned."
 
-    ^ (self infoOf:aPathName) accessTime 
+    ^ (self infoOf:aPathName) accessTime
 !
 
 timeOfLastChange:aPathName
-    "return the time, when the file was last changed. 
+    "return the time, when the file was last changed.
      For nonexistent files, nil is returned."
 
     ^ (self infoOf:aPathName) modificationTime
@@ -2552,7 +2552,7 @@
      nil is returned.
      Notice: for symbolic links, the type of the pointed-to file is returned."
 
-    ^ (self infoOf:aPathName) type 
+    ^ (self infoOf:aPathName) type
 !
 
 volumeNameOf:aPathString
@@ -2639,9 +2639,9 @@
 !
 
 disableChildSignalInterrupts
-    "disable childSignal interrupts 
+    "disable childSignal interrupts
      (SIGCHLD, if the architecture supports it).
-     We have to set the signal back to default, because ignoring 
+     We have to set the signal back to default, because ignoring
      SIGCHLD breaks wait & co"
 
     ^ self defaultSignal:(self sigCHLD)
@@ -2671,7 +2671,7 @@
 
 disableTimer
     "disable timer interrupts.
-     WARNING: 
+     WARNING:
 	the system will not operate correctly with timer interrupts
 	disabled, because no scheduling or timeouts are possible."
 
@@ -2700,9 +2700,9 @@
 !
 
 enableChildSignalInterrupts
-    "enable childSignal interrupts 
+    "enable childSignal interrupts
      (SIGCHLD, if the architecture supports it).
-     After enabling, these signals will send the message 
+     After enabling, these signals will send the message
      'childSignalInterrupt' to the ChildSignalInterruptHandler object."
 
     self enableSignal:(self sigCHLD)
@@ -2719,7 +2719,7 @@
 enableFpExceptionInterrupts
     "enable floating point exception interrupts (if the
      architecture supports it).
-     After enabling, fpu-exceptions will send the message 
+     After enabling, fpu-exceptions will send the message
      'fpuExceptionInterrupt' to the FPUExceptionInterruptHandler object."
 
     self enableSignal:(self sigFP)
@@ -2727,7 +2727,7 @@
 
 enableHardSignalInterrupts
     "enable hard signal exception interrupts (trap, buserror & segm. violation).
-     After enabling, these exceptions will send the message 
+     After enabling, these exceptions will send the message
      'signalInterrupt' to the SignalInterruptHandler object."
 
     "/ leads to trouble ...
@@ -2788,7 +2788,7 @@
 
 interruptPending
     "return true, if an interrupt is pending. The returned value is
-     invalid if interrupts are not currently blocked, since otherwise 
+     invalid if interrupts are not currently blocked, since otherwise
      the interrupt is usually already handled before arriving here,
      or may be served while returning from here."
 
@@ -2796,7 +2796,7 @@
     extern OBJ __INTERRUPTPENDING();
 
     RETURN ( __INTERRUPTPENDING() );
-%}        
+%}
 !
 
 interruptsBlocked
@@ -2886,7 +2886,7 @@
     aSignalNumber == self sigDANGER  ifTrue:[^ 'low on paging space'].
 
     "notice: many systems map SIGPOLL and/or SIGUSR onto SIGIO
-	     therefore, keep SIGIO always above the two below" 
+	     therefore, keep SIGIO always above the two below"
     aSignalNumber == self sigPOLL   ifTrue:[^ 'io available'].
     aSignalNumber == self sigURG    ifTrue:[^ 'urgent'].
 
@@ -2894,12 +2894,12 @@
 
     "
      OperatingSystem nameForSignal:9
-     OperatingSystem nameForSignal:(OperatingSystem sigPOLL) 
+     OperatingSystem nameForSignal:(OperatingSystem sigPOLL)
     "
 !
 
 operatingSystemSignal:signalNumber
-    "return the signal to be raised when an 
+    "return the signal to be raised when an
      operatingSystem-signal occurs, or nil"
 
     OSSignals notNil ifTrue:[
@@ -2932,7 +2932,7 @@
      This was used by the old MessageTally for profiling.
      On systems, where no virtual timer is available, use the real timer
      (which is of course less correct).
-     OBSOLETE: the new messageTally runs as a high prio process, not using 
+     OBSOLETE: the new messageTally runs as a high prio process, not using
 	       spy interrupts."
 
     ^ false
@@ -2940,7 +2940,7 @@
 
 stopSpyTimer
     "stop spy timing - disable spy timer.
-     OBSOLETE: the new messageTally runs as a high prio process, not using 
+     OBSOLETE: the new messageTally runs as a high prio process, not using
 	       spy interrupts."
 
     ^ false
@@ -3065,7 +3065,7 @@
 getCCDefine
     "return a string which was used to identify the C-Compiler used
      when STX was compiled, and which should be passed down when compiling methods.
-     For example, on linux, this is '__GNUC__'; 
+     For example, on linux, this is '__GNUC__';
      on windows, this is either '__MSC__' or '__BORLANDC__'"
 
 %{  /* NOCONTEXT */
@@ -3117,7 +3117,7 @@
      This may normally not be of any interest to you ..."
 
     |cpu|
-    
+
 %{  /* NOCONTEXT */
 
 #   ifdef vax
@@ -3178,7 +3178,7 @@
 
     "examples: are we running on a ss-10/solaris ?"
     "
-     (OperatingSystem getCPUType = 'sparc') 
+     (OperatingSystem getCPUType = 'sparc')
      and:[OperatingSystem getOSType = 'solaris']
     "
 
@@ -3251,9 +3251,9 @@
 	negativeSignSeparatedBySpaceFromCurrencySymbol  <Boolean>
 
 	positiveSignPosition                            <Symbol>
-							one of: #parenthesesAround, 
-								#signPrecedes, 
-								#signSuceeds, 
+							one of: #parenthesesAround,
+								#signPrecedes,
+								#signSuceeds,
 								#signPrecedesCurrencySymbol,
 								#signSuceedsCurrencySymbol
 
@@ -3269,7 +3269,7 @@
 !
 
 getNetworkMACAddresses
-    "return a dictionary with key:name of interface and 
+    "return a dictionary with key:name of interface and
 			    value:the MAC adress for each interface"
 
     self subclassResponsibility
@@ -3473,20 +3473,20 @@
     "return info on the system weare running on.
      If the system supports the uname system call, that info is returned;
      otherwise, some simulated info is returned.
- 
+
      WARNING:
        Do not depend on the amount and contents of the returned information, some
        systems may return more/less than others. Also, the contents depends on the
        OS, for example, linux returns 'ix86', while WIN32 returns 'x86'.
 
        This method is mainly provided to augment error reports with some system
-       information. 
+       information.
        (in case of system/version specific OS errors, conditional workarounds and patches
 	may be based upon this info).
        Your application should NOT depend upon this in any way.
 
      The returned info may (or may not) contain:
-	#system -> some operating system identification (irix, Linux, nt, win32s ...) 
+	#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)
@@ -3515,7 +3515,7 @@
      This is almost the same as getOSType, but the returned string
      is slightly different for some systems (i.e. iris vs. irix).
      Dont depend on this - use getOSType. I dont really see a point
-     here ... 
+     here ...
      (except for slight differences between next/mach and other machs)"
 
     ^ self getOSType
@@ -3527,7 +3527,7 @@
 
 getWindowsDirectory
     "internal interface - only for Windows based systems.
-     Return the windows directory 
+     Return the windows directory
      (which - depending on the system - may be \WINNT, \WINDOWS or whatever)
      On non-windows systems, nil is returned."
 
@@ -3540,8 +3540,8 @@
 
 getWindowsSystemDirectory
     "internal interface - only for Windows based systems.
-     Return the windows system directory 
-     (which - depending on the system - may be \WINNT\SYSTEM32, 
+     Return the windows system directory
+     (which - depending on the system - may be \WINNT\SYSTEM32,
       \WINDOWS\SYSTEM or whatever)
      On non-windows systems, nil is returned."
 
@@ -3575,7 +3575,7 @@
 !
 
 isMSDOSlike
-    "return true, if the OS we're running on is msdos like 
+    "return true, if the OS we're running on is msdos like
      (in contrast to unix-like).
      This returns true for any of msdos, win32s, win95,
      winNT and os/2."
@@ -3702,7 +3702,7 @@
     ^ false
 
     "
-     OperatingSystem supportsChildInterrupts 
+     OperatingSystem supportsChildInterrupts
     "
 !
 
@@ -3731,13 +3731,13 @@
 !
 
 supportsIOInterrupts
-    "return true, if the OS supports IO availability interrupts 
+    "return true, if the OS supports IO availability interrupts
      (i.e. SIGPOLL/SIGIO)."
 
     ^ false
 
     "
-     OperatingSystem supportsIOInterrupts 
+     OperatingSystem supportsIOInterrupts
     "
 !
 
@@ -3747,7 +3747,7 @@
     ^ false
 
     "
-     OperatingSystem supportsNonBlockingIO  
+     OperatingSystem supportsNonBlockingIO
     "
 !
 
@@ -3760,7 +3760,7 @@
     ^ true
 
     "
-     OperatingSystem supportsSelect 
+     OperatingSystem supportsSelect
     "
 !
 
@@ -3773,7 +3773,7 @@
     ^ true
 
     "
-     OperatingSystem supportsSelectOnPipes 
+     OperatingSystem supportsSelectOnPipes
     "
 
     "Modified: / 14.12.1999 / 19:40:32 / cg"
@@ -3789,7 +3789,7 @@
     ^ true
 
     "
-     OperatingSystem supportsSelectOnSockets 
+     OperatingSystem supportsSelectOnSockets
     "
 
     "Modified: / 14.12.1999 / 19:40:32 / cg"
@@ -3832,46 +3832,46 @@
     "/
     homePath := OperatingSystem getHomeDirectory.
     homePath notNil ifTrue:[
-        (pPath includes:homePath) ifFalse:[
-            pPath add:homePath.
-        ].
-
-        "/
-        "/ a users private smalltalk directory in its home (login) directory
-        "/
-        OperatingSystem isUNIXlike ifTrue:[
-            priv := '.smalltalk'.
-        ] ifFalse:[
-            priv := 'smalltalk'.
-        ].
-        userPrivateSTXDir := homePath asFilename constructString:priv.
-        (userPrivateSTXDir asFilename isDirectory) ifTrue:[
-            (pPath includes:userPrivateSTXDir) ifFalse:[
-                pPath add:userPrivateSTXDir
-            ]
-        ].
-    ].                                                              
+	(pPath includes:homePath) ifFalse:[
+	    pPath add:homePath.
+	].
+
+	"/
+	"/ a users private smalltalk directory in its home (login) directory
+	"/
+	OperatingSystem isUNIXlike ifTrue:[
+	    priv := '.smalltalk'.
+	] ifFalse:[
+	    priv := 'smalltalk'.
+	].
+	userPrivateSTXDir := homePath asFilename constructString:priv.
+	(userPrivateSTXDir asFilename isDirectory) ifTrue:[
+	    (pPath includes:userPrivateSTXDir) ifFalse:[
+		pPath add:userPrivateSTXDir
+	    ]
+	].
+    ].
 
     "/
     "/ STX_TOPDIR from the environment
     "/
     p := OperatingSystem getEnvironment:'STX_TOPDIR'.
     p notNil ifTrue:[
-        (pPath includes:p) ifFalse:[
-            pPath add:p
-        ].
+	(pPath includes:p) ifFalse:[
+	    pPath add:p
+	].
     ].
     pPath add:'/opt/smalltalk'.
     pPath := pPath select:[:p | (p asFilename construct:'packages') exists].
     pPath := pPath collect:[:p | (p asFilename constructString:'packages')].
 
    (p := OperatingSystem getEnvironment:'STX_PACKAGEPATH') notNil ifTrue:[
-        p := p asCollectionOfSubstringsSeparatedBy:$:.
-        p reverseDo:[:dir|
-            (pPath includes:dir) ifFalse:[
-                pPath addFirst:dir.
-            ].
-        ].
+	p := p asCollectionOfSubstringsSeparatedBy:$:.
+	p reverseDo:[:dir|
+	    (pPath includes:dir) ifFalse:[
+		pPath addFirst:dir.
+	    ].
+	].
     ].
 
     ^ pPath
@@ -3972,47 +3972,47 @@
     }
 
 #ifdef AF_INET
-    else if ((aSymbolOrInteger == @symbol(inet)) || (aSymbolOrInteger == @symbol(AF_INET))) 
+    else if ((aSymbolOrInteger == @symbol(AF_INET)) || (aSymbolOrInteger == @symbol(inet)))
        domainCode = __MKSMALLINT(AF_INET);
 #endif
 #ifdef AF_INET6
-    else if ((aSymbolOrInteger == @symbol(inet6)) || (aSymbolOrInteger == @symbol(AF_INET6)))
+    else if ((aSymbolOrInteger == @symbol(AF_INET6)) || (aSymbolOrInteger == @symbol(inet6)))
        domainCode = __MKSMALLINT(AF_INET6);
 #endif
 #ifdef AF_UNIX
-    else if ((aSymbolOrInteger == @symbol(unix)) || (aSymbolOrInteger == @symbol(AF_UNIX)))
+    else if ((aSymbolOrInteger == @symbol(AF_UNIX)) || (aSymbolOrInteger == @symbol(unix)))
        domainCode = __MKSMALLINT(AF_UNIX);
 #endif
 #ifdef AF_APPLETALK
-    else if ((aSymbolOrInteger == @symbol(appletalk)) || (aSymbolOrInteger == @symbol(AF_APPLETALK)))
+    else if ((aSymbolOrInteger == @symbol(AF_APPLETALK)) || (aSymbolOrInteger == @symbol(appletalk)))
        domainCode = __MKSMALLINT(AF_APPLETALK);
 #endif
 #ifdef AF_DECnet
-    else if ((aSymbolOrInteger == @symbol(decnet)) || (aSymbolOrInteger == @symbol(AF_DECnet)))
+    else if ((aSymbolOrInteger == @symbol(AF_DECnet)) || (aSymbolOrInteger == @symbol(decnet)))
        domainCode = __MKSMALLINT(AF_DECnet);
 #endif
 #ifdef AF_NS
-    else if (aSymbolOrInteger == @symbol(AF_NS))
+    else if ((aSymbolOrInteger == @symbol(AF_NS)) || (aSymbolOrInteger == @symbol(ns)))
        domainCode = __MKSMALLINT(AF_NS);
 #endif
 #ifdef AF_X25
-    else if (aSymbolOrInteger == @symbol(AF_X25))
+    else if ((aSymbolOrInteger == @symbol(AF_X25)) || (aSymbolOrInteger == @symbol(x25)))
        domainCode = __MKSMALLINT(AF_X25);
 #endif
 #ifdef AF_SNA
-    else if (aSymbolOrInteger == @symbol(AF_SNA)) 
+    else if (aSymbolOrInteger == @symbol(AF_SNA))
        domainCode = __MKSMALLINT(AF_SNA);
 #endif
 #ifdef AF_RAW
-    else if ((aSymbolOrInteger == @symbol(raw)) || (aSymbolOrInteger == @symbol(AF_RAW)))
+    else if ((aSymbolOrInteger == @symbol(AF_RAW)) || (aSymbolOrInteger == @symbol(raw)))
        domainCode = __MKSMALLINT(AF_RAW);
 #endif
 #ifdef AF_ISO
-    else if ((aSymbolOrInteger == @symbol(iso)) || (aSymbolOrInteger == @symbol(AF_ISO)))
+    else if ((aSymbolOrInteger == @symbol(AF_ISO)) || (aSymbolOrInteger == @symbol(iso)))
        domainCode = __MKSMALLINT(AF_ISO);
 #endif
 #ifdef AF_NETBIOS
-    else if (aSymbolOrInteger == @symbol(AF_NETBIOS))
+    else if ((aSymbolOrInteger == @symbol(AF_NETBIOS)) || (aSymbolOrInteger == @symbol(netbios)))
        domainCode = __MKSMALLINT(AF_NETBIOS);
 #endif
 #ifdef AF_NETBEUI
@@ -4044,7 +4044,7 @@
        domainCode = __MKSMALLINT(AF_ROSE);
 #endif
 #ifdef AF_IRDA
-    else if ((aSymbolOrInteger == @symbol(irda)) || (aSymbolOrInteger == @symbol(AF_IRDA)))
+    else if ((aSymbolOrInteger == @symbol(AF_IRDA)) || (aSymbolOrInteger == @symbol(irda)))
        domainCode = __MKSMALLINT(AF_IRDA);
 #endif
 #ifdef AF_BAN
@@ -4060,7 +4060,7 @@
        domainCode = __MKSMALLINT(AF_ATM);
 #endif
 #ifdef AF_ATMPVC
-    else if ((aSymbolOrInteger == @symbol(atmpvc)) || (aSymbolOrInteger == @symbol(AF_ATMPVC)))
+    else if (aSymbolOrInteger == @symbol(AF_ATMPVC))
        domainCode = __MKSMALLINT(AF_ATMPVC);
 #endif
 #ifdef AF_ATMSVC
@@ -4132,12 +4132,18 @@
     ^ domainCode.
 
     "
-     self domainCodeOf:#inet      
-     self domainCodeOf:#unix      
-     self domainCodeOf:#inet6     
-     self domainCodeOf:#appletalk  
-     self domainCodeOf:#decnet  
-     self domainCodeOf:#AF_INET    
+     self domainCodeOf:#AF_INET
+     self domainCodeOf:#AF_INET6
+     self domainCodeOf:#AF_UNIX
+     self domainCodeOf:#AF_APPLETALK
+     self domainCodeOf:#AF_DECNET
+    "
+    "for backward compatibility only:
+     self domainCodeOf:#inet
+     self domainCodeOf:#inet6
+     self domainCodeOf:#unix
+     self domainCodeOf:#appletalk
+     self domainCodeOf:#decnet
     "
 !
 
@@ -4147,7 +4153,7 @@
 
     |domainSymbol|
 
-%{ /*NOCONTEXT*/            
+%{ /*NOCONTEXT*/
 
     if (__isSmallInteger(anInteger)) {
 	switch(__intVal(anInteger)) {
@@ -4348,12 +4354,12 @@
     ^ domainSymbol.
 
     "
-     self domainSymbolOf:(self domainCodeOf:#inet)  
-     self domainSymbolOf:(self domainCodeOf:#inet6) 
-     self domainSymbolOf:(self domainCodeOf:#unix)  
-     self domainSymbolOf:(self domainCodeOf:#appletalk) 
-     self domainSymbolOf:(self domainCodeOf:#decnet) 
-     self domainSymbolOf:(self domainCodeOf:#raw) 
+     self domainSymbolOf:(self domainCodeOf:#inet)
+     self domainSymbolOf:(self domainCodeOf:#inet6)
+     self domainSymbolOf:(self domainCodeOf:#unix)
+     self domainSymbolOf:(self domainCodeOf:#appletalk)
+     self domainSymbolOf:(self domainCodeOf:#decnet)
+     self domainSymbolOf:(self domainCodeOf:#raw)
     "
 !
 
@@ -4369,187 +4375,187 @@
     if (__isSmallInteger(domainCode)) {
 	switch (__intVal(domainCode)) {
 #ifdef AF_INET
-	    case AF_INET:        
+	    case AF_INET:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_in) );
 		break;
 #endif
 #ifdef AF_INET6
-	    case AF_INET6:        
+	    case AF_INET6:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_in6) );
 		break;
 #endif
 #ifdef AF_UNIX
-	    case AF_UNIX:        
+	    case AF_UNIX:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_un) );
 		break;
 #endif
 #ifdef AF_APPLETALK
-	    case AF_APPLETALK:        
+	    case AF_APPLETALK:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_at) );
 		break;
 #endif
 #ifdef AF_DECnet
-	    case AF_DECnet:        
+	    case AF_DECnet:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_dn) );
 		break;
 #endif
 #ifdef AF_NS
-	    case AF_NS:        
+	    case AF_NS:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_ns) );
 		break;
 #endif
 #ifdef AF_X25
-	    case AF_X25:        
+	    case AF_X25:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_x25) );
 		break;
 #endif
 #ifdef AF_SNA
-	    case AF_SNA:        
+	    case AF_SNA:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_sna) );
 		break;
 #endif
 #ifdef AF_RAW
-	    case AF_RAW:        
+	    case AF_RAW:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_raw) );
 		break;
 #endif
 #ifdef AF_ISO
-	    case AF_ISO:        
+	    case AF_ISO:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_iso) );
 		break;
 #endif
 #ifdef AF_NETBIOS
-	    case AF_NETBIOS:        
+	    case AF_NETBIOS:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_netbios) );
 		break;
 #endif
 #ifdef AF_NETBEUI
-	    case AF_NETBEUI:        
+	    case AF_NETBEUI:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_netbeui) );
 		break;
 #endif
 #ifdef AF_IPX
-	    case AF_IPX:        
+	    case AF_IPX:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_ipx) );
 		break;
 #endif
 #ifdef AF_AX25
-	    case AF_AX25:        
+	    case AF_AX25:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_ax25) );
 		break;
 #endif
 #ifdef AF_NETROM
-	    case AF_NETROM:        
+	    case AF_NETROM:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_netrom) );
 		break;
 #endif
 #ifdef AF_BRIDGE
-	    case AF_BRIDGE:        
+	    case AF_BRIDGE:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_bridge) );
 		break;
 #endif
 #ifdef AF_BSC
-	    case AF_BSC:        
+	    case AF_BSC:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_bsc) );
 		break;
 #endif
 #ifdef AF_ROSE
-	    case AF_ROSE:        
+	    case AF_ROSE:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_rose) );
 		break;
 #endif
 #ifdef AF_IRDA
-	    case AF_IRDA:        
+	    case AF_IRDA:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_irda) );
 		break;
 #endif
 #ifdef AF_BAN
-	    case AF_BAN:        
+	    case AF_BAN:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_ban) );
 		break;
 #endif
 #ifdef AF_VOICEVIEW
-	    case AF_VOICEVIEW:        
+	    case AF_VOICEVIEW:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_voiceview) );
 		break;
 #endif
 #ifdef AF_ATM
-	    case AF_ATM:        
+	    case AF_ATM:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_atm) );
 		break;
 #endif
 #ifdef AF_ATMPVC
-	    case AF_ATMPVC:        
+	    case AF_ATMPVC:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_atmpvc) );
 		break;
 #endif
 #ifdef AF_ATMSVC
-	    case AF_ATMSVC:        
+	    case AF_ATMSVC:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_atmsvc) );
 		break;
 #endif
 #ifdef AF_NETLINK
-	    case AF_NETLINK:        
+	    case AF_NETLINK:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_netlink) );
 		break;
 #endif
 #ifdef AF_PACKET
-	    case AF_PACKET:        
+	    case AF_PACKET:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_packet) );
 		break;
 #endif
 #ifdef AF_ASH
-	    case AF_ASH:        
+	    case AF_ASH:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_ash) );
 		break;
 #endif
 #ifdef AF_ECONET
-	    case AF_ECONET:        
+	    case AF_ECONET:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_eco) );
 		break;
 #endif
 #ifdef AF_IMPLINK
-	    case AF_IMPLINK:        
+	    case AF_IMPLINK:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_implink) );
 		break;
 #endif
 #ifdef AF_CHAOS
-	    case AF_CHAOS:        
+	    case AF_CHAOS:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_chaos) );
 		break;
 #endif
 #ifdef AF_DLI
-	    case AF_DLI:        
+	    case AF_DLI:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_dli) );
 		break;
 #endif
 #ifdef AF_LAT
-	    case AF_LAT:        
+	    case AF_LAT:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_lat) );
 		break;
 #endif
 #ifdef AF_HYLINK
-	    case AF_HYLINK:        
+	    case AF_HYLINK:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_hylink) );
 		break;
 #endif
 #ifdef AF_FIREFOX
-	    case AF_FIREFOX:        
+	    case AF_FIREFOX:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_firefox) );
 		break;
 #endif
 #ifdef AF_CLUSTER
-	    case AF_CLUSTER:        
+	    case AF_CLUSTER:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_cluster) );
 		break;
 #endif
 #ifdef AF_12844
-	    case AF_12844:        
+	    case AF_12844:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_12844) );
 		break;
 #endif
 #ifdef AF_NETDES
-	    case AF_NETDES:        
+	    case AF_NETDES:
 		socketSize = __MKSMALLINT( sizeof(struct sockaddr_netdes) );
 		break;
 #endif
@@ -4559,9 +4565,9 @@
     ^ socketSize
 
     "
-     self socketAddressSizeOfDomain:#'AF_INET' 
-     self socketAddressSizeOfDomain:#'AF_UNIX'  
-     self socketAddressSizeOfDomain:#'Foo' 
+     self socketAddressSizeOfDomain:#'AF_INET'
+     self socketAddressSizeOfDomain:#'AF_UNIX'
+     self socketAddressSizeOfDomain:#'Foo'
     "
 !
 
@@ -4586,19 +4592,19 @@
 	typeCode = __MKSMALLINT(SOCK_DGRAM);
 #endif
 #ifdef SOCK_RAW
-     else if ((aSymbolOrInteger == @symbol(raw)) || (aSymbolOrInteger == @symbol(SOCK_RAW))) 
+     else if ((aSymbolOrInteger == @symbol(raw)) || (aSymbolOrInteger == @symbol(SOCK_RAW)))
 	typeCode = __MKSMALLINT(SOCK_RAW);
 #endif
 #ifdef SOCK_RDM
-     else if ((aSymbolOrInteger == @symbol(rdm)) || (aSymbolOrInteger == @symbol(SOCK_RDM))) 
+     else if ((aSymbolOrInteger == @symbol(rdm)) || (aSymbolOrInteger == @symbol(SOCK_RDM)))
 	typeCode = __MKSMALLINT(SOCK_RDM);
 #endif
 #ifdef SOCK_SEQPACKET
-     else if ((aSymbolOrInteger == @symbol(seqpacket)) || (aSymbolOrInteger == @symbol(SOCK_SEQPACKET))) 
+     else if ((aSymbolOrInteger == @symbol(seqpacket)) || (aSymbolOrInteger == @symbol(SOCK_SEQPACKET)))
 	typeCode = __MKSMALLINT(SOCK_SEQPACKET);
 #endif
 #ifdef SOCK_PACKET
-     else if ((aSymbolOrInteger == @symbol(packet)) || (aSymbolOrInteger == @symbol(SOCK_PACKET))) 
+     else if ((aSymbolOrInteger == @symbol(packet)) || (aSymbolOrInteger == @symbol(SOCK_PACKET)))
 	typeCode = __MKSMALLINT(SOCK_PACKET);
 #endif
 %}.
@@ -4618,7 +4624,7 @@
 
     |socketTypeSymbol|
 
-%{  /*NOCONTEXT*/            
+%{  /*NOCONTEXT*/
 
     if (__isSmallInteger(anInteger)) {
 	switch(__intVal(anInteger)) {
@@ -4671,23 +4677,23 @@
 	#AF_INET6       #inet6
 	#AF_APPLETALK   #appletalk
 	#AF_DECnet      #decnet
-	#AF_NS 
-	#AF_X25 
-	#AF_SNA 
-	#AF_RAW 
-	#AF_ISO 
-	#AF_NETBIOS 
-	#AF_IPX 
-	#AF_AX25 
-	#AF_NETROM 
-	#AF_BRIDGE 
-	#AF_BSC 
-	#AF_ROSE 
-	#AF_IRDA 
-	#AF_NETLINK 
-	#AF_NETBEUI 
-	#AF_ATM 
-	#AF_ATMPVC 
+	#AF_NS          #ns
+	#AF_X25         #x25
+	#AF_SNA
+	#AF_RAW
+	#AF_ISO
+	#AF_NETBIOS     #netbios
+	#AF_IPX
+	#AF_AX25
+	#AF_NETROM
+	#AF_BRIDGE
+	#AF_BSC
+	#AF_ROSE
+	#AF_IRDA        #irda
+	#AF_NETLINK
+	#AF_NETBEUI
+	#AF_ATM
+	#AF_ATMPVC
 	#AF_ATMSVC
 	#AF_BAN
 	#AF_VOICEVIEW
@@ -4701,10 +4707,10 @@
 	#AF_CLUSTER
 	#AF_12844
 	#AF_NETDES
-       ) select:[:sym | (AbstractOperatingSystem domainCodeOf:sym) isNumber ]  
-
-    "
-     AbstractOperatingSystem supportedProtocolFamilies  
+       ) select:[:sym | (AbstractOperatingSystem domainCodeOf:sym) isNumber ]
+
+    "
+     AbstractOperatingSystem supportedProtocolFamilies
     "
 !
 
@@ -4712,15 +4718,14 @@
     "return the symbolic typeName of a given numeric SOCK_xxx socket type code.
      Return nil for invalid or unsupported socket types."
 
-
     ^ #(
 	#SOCK_STREAM
 	#SOCK_DGRAM
 	#SOCK_RAW
 	#SOCK_RDM
 	#SOCK_SEQPACKET
-	#SOCK_PACKET 
-       ) select:[:sym | (AbstractOperatingSystem socketTypeCodeOf:sym) isNumber ]  
+	#SOCK_PACKET
+       ) select:[:sym | (AbstractOperatingSystem socketTypeCodeOf:sym) isNumber ]
 
     "
      AbstractOperatingSystem supportedSocketTypes
@@ -4775,13 +4780,13 @@
 
     "
      OperatingSystem computeDatePartsOf:0 for:[:y :m :d |
-        y printCR. m printCR. d printCR
+	y printCR. m printCR. d printCR
      ]
     "
 !
 
 computeOSTimeFromUTCYear:y month:m day:d hour:h minute:min second:s millisecond:millis
-    "return the OS-dependent time for the given time and day. 
+    "return the OS-dependent time for the given time and day.
      The arguments are assumed to be in UTC Time"
 
     self subclassResponsibility
@@ -4790,7 +4795,7 @@
 !
 
 computeOSTimeFromYear:y month:m day:d hour:h minute:min seconds:s millis:millis
-    "return the OS-dependent time for the given time and day. 
+    "return the OS-dependent time for the given time and day.
      The arguments are assumed to be in localtime including
      any daylight saving adjustings."
 
@@ -4837,7 +4842,7 @@
 
     "
      OperatingSystem computeTimePartsOf:100 for:[:h :m :s :milli |
-        Transcript show:h; space; show:m; space; show:s; space; showCR:milli.
+	Transcript show:h; space; show:m; space; show:s; space; showCR:milli.
      ]
     "
 !
@@ -4845,17 +4850,17 @@
 computeUTCTimeAndDateFrom:osTime
     "given an OS-dependent time in osTime, return an Array
      containing:
-        (full-) year, 
-        month,                          (1..)
-        day,                            (1..)
-        hour,                           (0..23)
-        minute                          (0..59)
-        seconds,                        (0..59)
-        offset to UTC,                  (seconds)
-        daylight savings time flag, 
-        milliseconds,                   (0..999)
-        dayInYear                       (1..)
-        dayInWeek                       (1..).
+	(full-) year,
+	month,                          (1..)
+	day,                            (1..)
+	hour,                           (0..23)
+	minute                          (0..59)
+	seconds,                        (0..59)
+	offset to UTC,                  (seconds)
+	daylight savings time flag,
+	milliseconds,                   (0..999)
+	dayInYear                       (1..)
+	dayInWeek                       (1..).
      Conversion is to utc."
 
     |divMod ret|
@@ -4865,7 +4870,7 @@
     ^ ret
 
     "
-     OperatingSystem computeUTCTimeAndDateFrom:0     
+     OperatingSystem computeUTCTimeAndDateFrom:0
      OperatingSystem computeUTCTimeAndDateFrom:1011
     "
 !
@@ -4891,7 +4896,7 @@
 !
 
 getMicrosecondTime
-    "This returns the microsecond timers value - if available. 
+    "This returns the microsecond timers 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."
@@ -4905,10 +4910,10 @@
 !
 
 getMillisecondTime
-    "This returns the millisecond timers value. 
+    "This returns the millisecond timers 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 
+     Since this value is wrapping around in regular intervals, this can only be used for
      short relative time deltas.
      Use the millisecondTimeXXX:-methods to compare and add time deltas - these know about the wrap.
 
@@ -4927,7 +4932,7 @@
     "This returns the OS time.
      The base of the returned value is not consistent across
      different OS's - some return the number of millis since jan, 1st 1970;
-     others since 1900. The Time classes are prepared for this, and 
+     others since 1900. The Time classes are prepared for this, and
      converts as appropriate (by using my fromOSTime: conversion methods).
 
      Dont use this method in application code since it is an internal (private)
@@ -4950,7 +4955,7 @@
 
 millisecondDelay:millis
     "delay execution for millis milliseconds or until the next event arrives.
-     All other threads proceed as usual. 
+     All other threads proceed as usual.
      Better use a Delay, however, a delay cannot be used in the event handler or scheduler."
 
     |now then delta|
@@ -4959,9 +4964,9 @@
     then := self millisecondTimeAdd:now and:millis.
 
     [self millisecondTime:then isAfter:now] whileTrue:[
-        delta := self millisecondTimeDeltaBetween:then and:now.
-        self selectOnAnyReadable:nil writable:nil exception:nil withTimeOut:delta.
-        now := self getMillisecondTime.
+	delta := self millisecondTimeDeltaBetween:then and:now.
+	self selectOnAnyReadable:nil writable:nil exception:nil withTimeOut:delta.
+	now := self getMillisecondTime.
     ]
 
     "
@@ -4971,7 +4976,7 @@
 
 millisecondTime:msTime1 isAfter:msTime2
     "return true if msTime1 is after msTime2, false if not.
-     The two arguments are supposed to be millisecond times 
+     The two arguments are supposed to be millisecond times
      (such as returned getMillisecondTime) which wrap at 16r1FFFFFFF.
 
      This should really be moved to some RelativeTime class."
@@ -5004,7 +5009,7 @@
 
 millisecondTimeDeltaBetween:msTime1 and:msTime2
     "subtract two millisecond times (such as returned getMillisecondTime)
-     and return the difference. Since milli-times wrap (at 16r01FFFFFFF), 
+     and return the difference. Since milli-times wrap (at 16r01FFFFFFF),
      some special handling is built-in here.
      The returned value is msTime1 - msTime2. The returned value is invalid
      if the delta is >= 0x10000000.
@@ -5018,32 +5023,32 @@
     ^ msTime1 + 16r10000000 - msTime2
 
     "
-     OperatingSystem millisecondTimeAdd:16r0FFFFFFF and:1   
-     OperatingSystem millisecondTimeAdd:16r0FFFFFFF and:(16 / 3)  
-     OperatingSystem millisecondTimeAdd:16r0FFFFFFF and:1000   
-
-     OperatingSystem millisecondTimeDeltaBetween:0 and:16r0FFFFFFF  
-     OperatingSystem millisecondTimeDeltaBetween:(13/3) and:16r0FFFFFFF     
-     OperatingSystem millisecondTimeDeltaBetween:999 and:16r0FFFFFFF       
-
-     OperatingSystem millisecondTime:0 isAfter:16r0FFFFFFF    
-     OperatingSystem millisecondTime:(13/3) isAfter:16r0FFFFFFF   
-     OperatingSystem millisecondTime:999 isAfter:16r0FFFFFFF       
-
-     OperatingSystem millisecondTime:0 isAfter:0          
-     OperatingSystem millisecondTime:(13/3) isAfter:0  
-     OperatingSystem millisecondTime:999 isAfter:0       
-
-     OperatingSystem millisecondTime:1 isAfter:0        
+     OperatingSystem millisecondTimeAdd:16r0FFFFFFF and:1
+     OperatingSystem millisecondTimeAdd:16r0FFFFFFF and:(16 / 3)
+     OperatingSystem millisecondTimeAdd:16r0FFFFFFF and:1000
+
+     OperatingSystem millisecondTimeDeltaBetween:0 and:16r0FFFFFFF
+     OperatingSystem millisecondTimeDeltaBetween:(13/3) and:16r0FFFFFFF
+     OperatingSystem millisecondTimeDeltaBetween:999 and:16r0FFFFFFF
+
+     OperatingSystem millisecondTime:0 isAfter:16r0FFFFFFF
+     OperatingSystem millisecondTime:(13/3) isAfter:16r0FFFFFFF
+     OperatingSystem millisecondTime:999 isAfter:16r0FFFFFFF
+
+     OperatingSystem millisecondTime:0 isAfter:0
+     OperatingSystem millisecondTime:(13/3) isAfter:0
+     OperatingSystem millisecondTime:999 isAfter:0
+
+     OperatingSystem millisecondTime:1 isAfter:0
      OperatingSystem millisecondTime:(13/3) isAfter:2
-     OperatingSystem millisecondTime:999 isAfter:900       
+     OperatingSystem millisecondTime:999 isAfter:900
 
      |t1 t2|
 
      t1 := Time millisecondClockValue.
-     (Delay forMilliseconds:1) wait.   
+     (Delay forMilliseconds:1) wait.
      t2 := Time millisecondClockValue.
-     OperatingSystem millisecondTimeDeltaBetween:t2 and:t1 
+     OperatingSystem millisecondTimeDeltaBetween:t2 and:t1
     "
 !
 
@@ -5118,7 +5123,7 @@
     ^ self getFullUserNameFromID:(self getUserID)
 
     "
-     OperatingSystem getFullUserName 
+     OperatingSystem getFullUserName
     "
 
     "Modified: 24.1.1997 / 11:31:55 / cg"
@@ -5133,10 +5138,10 @@
     ^ self getUserNameFromID:userID
 
     "
-     OperatingSystem getFullUserNameFromID:0 
-     OperatingSystem getFullUserNameFromID:(OperatingSystem getUserID)  
-
-     OperatingSystem getUserNameFromID:(OperatingSystem getUserID)  
+     OperatingSystem getFullUserNameFromID:0
+     OperatingSystem getFullUserNameFromID:(OperatingSystem getUserID)
+
+     OperatingSystem getUserNameFromID:(OperatingSystem getUserID)
     "
 
     "Modified: 15.7.1996 / 12:44:21 / cg"
@@ -5219,7 +5224,7 @@
     "
      OperatingSystem getUserNameFromID:0
      OperatingSystem getUserNameFromID:100
-     OperatingSystem getUserNameFromID:9991 
+     OperatingSystem getUserNameFromID:9991
     "
 !
 
@@ -5229,7 +5234,7 @@
     "return a dictionary filled with userinfo. The argument can be either
      a string with the users name or its numeric id.
      Notice, that not all systems provide (all of) this info;
-     DOS systems return nothing; 
+     DOS systems return nothing;
      non-SYSV4 systems have no age/comment.
      Portable applications may want to check the systemType and NOT depend
      on all keys to be present in the returned dictionary.
@@ -5248,8 +5253,8 @@
     "
      OperatingSystem userInfoOf:'root'
      OperatingSystem userInfoOf:1
-     OperatingSystem userInfoOf:'claus' 
-     OperatingSystem userInfoOf:'fooBar' 
+     OperatingSystem userInfoOf:'claus'
+     OperatingSystem userInfoOf:'fooBar'
      OperatingSystem userInfoOf:(OperatingSystem getUserID)
     "
 ! !
@@ -5269,9 +5274,9 @@
 
     "get status changes from child processes.
      Return an OSProcessStatus or nil, if no process has terminated.
-     If blocking is true, we wait until a process changed state, 
+     If blocking is true, we wait until a process changed state,
      otherwise we return immediately.
-     Note that win32 needs to know the HANDLE of the process on which 
+     Note that win32 needs to know the HANDLE of the process on which
      it waits.  In case of an error, THIS ALWAYS WAITS and then times out."
 
     self subclassResponsibility
@@ -5297,7 +5302,7 @@
 !
 
 readCheck:fd
-    "return true, if data is available on a filedescriptor 
+    "return true, if data is available on a filedescriptor
      (i.e. read is possible without blocking).
      This depends on a working select or FIONREAD to be provided by the OS."
 
@@ -5378,25 +5383,25 @@
 !
 
 selectOnAnyReadable:fdArray withTimeOut:millis
-    "wait for any fd in fdArray (an Array of integers) to become ready for 
+    "wait for any fd in fdArray (an Array of integers) to become ready for
      reading. Timeout after t milliseconds. An empty set will always wait.
      A zero timeout-time will immediately return (i.e. poll).
      Return first ready fd if i/o ok, nil if timed-out or interrupted.
      Experimental."
 
-    ^ self selectOnAnyReadable:fdArray 
-		      writable:nil 
+    ^ self selectOnAnyReadable:fdArray
+		      writable:nil
 		     exception:nil
 		   withTimeOut:millis
 !
 
-selectOnAnyReadable:readFdArray writable:writeFdArray exception:exceptFdArray 
-	readableInto:readableResultFdArray writableInto:writableResultFdArray 
+selectOnAnyReadable:readFdArray writable:writeFdArray exception:exceptFdArray
+	readableInto:readableResultFdArray writableInto:writableResultFdArray
 	exceptionInto:exceptionResultFdArray
 	withTimeOut:millis
 
-    "wait for any fd in readFdArray (an Array of integers) to become ready for reading, 
-     writeFdArray to become ready for writing, 
+    "wait for any fd in readFdArray (an Array of integers) to become ready for reading,
+     writeFdArray to become ready for writing,
      or exceptFdArray to arrive exceptional data (i.e. out-of-band data).
      Timeout after t milliseconds or - if the timeout time is 0 - immediately..
      Empty fd-sets will always wait. Zero time can be used to poll file-
@@ -5413,8 +5418,8 @@
 !
 
 selectOnAnyReadable:readFdArray writable:writeFdArray exception:exceptFdArray withTimeOut:millis
-    "wait for any fd in readFdArray (an Array of integers) to become ready for 
-     reading, writeFdArray to become ready for writing, or exceptFdArray to 
+    "wait for any fd in readFdArray (an Array of integers) to become ready for
+     reading, writeFdArray to become ready for writing, or exceptFdArray to
      arrive exceptional data (i.e. out-of-band data).
      Timeout after t milliseconds or, if the timeout time is 0, immediately..
      Empty fd-sets will always wait. Zero time can be used to poll file-
@@ -5465,37 +5470,37 @@
     self obsoleteMethodWarning:'use accessor for index ', index printString.
 
     index == 1 ifTrue:[
-        ^ self year.
+	^ self year.
     ].
     index == 2 ifTrue:[
-        ^ self month.
+	^ self month.
     ].
     index == 3 ifTrue:[
-        ^ self day.
+	^ self day.
     ].
     index == 4 ifTrue:[
-        ^ self hours.
+	^ self hours.
     ].
     index == 5 ifTrue:[
-        ^ self minutes.
+	^ self minutes.
     ].
     index == 6 ifTrue:[
-        ^ self seconds.
+	^ self seconds.
     ].
     index == 7 ifTrue:[
-        ^ self utcOffset.
+	^ self utcOffset.
     ].
     index == 8 ifTrue:[
-        ^ self dst.
+	^ self dst.
     ].
     index == 9 ifTrue:[
-        ^ self milliseconds.
+	^ self milliseconds.
     ].
     index == 10 ifTrue:[
-        ^ self dayInYear.
+	^ self dayInYear.
     ].
     index == 11 ifTrue:[
-        ^ self dayInWeek.
+	^ self dayInWeek.
     ].
     self subscriptBoundsError:index
 !
@@ -5548,7 +5553,7 @@
     ^ year
 !
 
-year:yearArg month:monthArg day:dayArg hours:hoursArg minutes:minutesArg seconds:secondsArg milliseconds:millisecondsArg utcOffset:utcOffsetArg dst:dstArg dayInYear:dayInYearArg dayInWeek:dayInWeekArg 
+year:yearArg month:monthArg day:dayArg hours:hoursArg minutes:minutesArg seconds:secondsArg milliseconds:millisecondsArg utcOffset:utcOffsetArg dst:dstArg dayInYear:dayInYearArg dayInWeek:dayInWeekArg
     "set instance variables (automatically generated)"
 
     year := yearArg.
@@ -5564,7 +5569,7 @@
     dayInWeek := dayInWeekArg.
 !
 
-year:yearArg month:monthArg day:dayArg hours:hoursArg minutes:minutesArg seconds:secondsArg utcOffset:utcOffsetArg dst:dstArg dayInYear:dayInYearArg dayInWeek:dayInWeekArg 
+year:yearArg month:monthArg day:dayArg hours:hoursArg minutes:minutesArg seconds:secondsArg utcOffset:utcOffsetArg dst:dstArg dayInYear:dayInYearArg dayInWeek:dayInWeekArg
     "set instance variables (automatically generated)"
 
     year := yearArg.
@@ -5582,7 +5587,7 @@
 !AbstractOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.137 2004-11-30 15:58:35 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/AbstractOperatingSystem.st,v 1.138 2004-12-20 19:55:13 cg Exp $'
 ! !
 
 AbstractOperatingSystem initialize!