use /dev/null as default out/err in startProcess.
authorClaus Gittinger <cg@exept.de>
Fri, 23 Jul 1999 09:34:53 +0200
changeset 4436 318297e533a6
parent 4435 6461ba759d1b
child 4437 212260fce312
use /dev/null as default out/err in startProcess.
UnixOS.st
UnixOperatingSystem.st
--- a/UnixOS.st	Fri Jul 23 01:19:29 1999 +0200
+++ b/UnixOS.st	Fri Jul 23 09:34:53 1999 +0200
@@ -3077,29 +3077,35 @@
      Use #monitorPid:action: for synchronization and exec status return,
      or #killProcess: to stop it."
 
-    |in out err shellAndArgs|
-
-    anExternalInStream notNil ifTrue:[
-	in := anExternalInStream fileDescriptor.
-    ] ifFalse:[
-	in := '/dev/null' asFilename readStream fileDescriptor
+    |in out err shellAndArgs rslt|
+
+    (in := anExternalInStream) isNil ifTrue:[
+        in := '/dev/null' asFilename readStream
     ].
-    anExternalOutStream notNil ifTrue:[
-	out := anExternalOutStream fileDescriptor.
+    (out := anExternalOutStream) isNil ifTrue:[
+        out := '/dev/null' asFilename writeStream
     ].
-    anExternalErrStream notNil ifTrue:[
-	err := anExternalErrStream fileDescriptor.
+    (err := anExternalErrStream) isNil ifTrue:[
+        anExternalOutStream isNil ifTrue:[
+            err := out
+        ] ifFalse:[
+            err := '/dev/null' asFilename writeStream
+        ]
     ].
 
     shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
-    ^ self
-	exec:(shellAndArgs at:1)
-	withArguments:(shellAndArgs at:2)
-	fileDescriptors:(Array with:in with:out with:err)
-	closeDescriptors:nil
-	fork:true
-	newPgrp:false
-	inDirectory:dir
+    rslt := self
+        exec:(shellAndArgs at:1)
+        withArguments:(shellAndArgs at:2)
+        fileDescriptors:(Array with:in fileDescriptor
+                               with:out fileDescriptor
+                               with:err fileDescriptor)
+        closeDescriptors:nil
+        fork:true
+        newPgrp:false
+        inDirectory:dir.
+
+    ^ rslt
 
     "blocking at current prio (i.e. only higher prio threads execute):
 
@@ -3120,7 +3126,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.
@@ -8644,6 +8650,6 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.67 1999-07-16 16:39:14 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/UnixOS.st,v 1.68 1999-07-23 07:34:53 cg Exp $'
 ! !
 UnixOperatingSystem initialize!
--- a/UnixOperatingSystem.st	Fri Jul 23 01:19:29 1999 +0200
+++ b/UnixOperatingSystem.st	Fri Jul 23 09:34:53 1999 +0200
@@ -3077,29 +3077,35 @@
      Use #monitorPid:action: for synchronization and exec status return,
      or #killProcess: to stop it."
 
-    |in out err shellAndArgs|
-
-    anExternalInStream notNil ifTrue:[
-	in := anExternalInStream fileDescriptor.
-    ] ifFalse:[
-	in := '/dev/null' asFilename readStream fileDescriptor
+    |in out err shellAndArgs rslt|
+
+    (in := anExternalInStream) isNil ifTrue:[
+        in := '/dev/null' asFilename readStream
     ].
-    anExternalOutStream notNil ifTrue:[
-	out := anExternalOutStream fileDescriptor.
+    (out := anExternalOutStream) isNil ifTrue:[
+        out := '/dev/null' asFilename writeStream
     ].
-    anExternalErrStream notNil ifTrue:[
-	err := anExternalErrStream fileDescriptor.
+    (err := anExternalErrStream) isNil ifTrue:[
+        anExternalOutStream isNil ifTrue:[
+            err := out
+        ] ifFalse:[
+            err := '/dev/null' asFilename writeStream
+        ]
     ].
 
     shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
-    ^ self
-	exec:(shellAndArgs at:1)
-	withArguments:(shellAndArgs at:2)
-	fileDescriptors:(Array with:in with:out with:err)
-	closeDescriptors:nil
-	fork:true
-	newPgrp:false
-	inDirectory:dir
+    rslt := self
+        exec:(shellAndArgs at:1)
+        withArguments:(shellAndArgs at:2)
+        fileDescriptors:(Array with:in fileDescriptor
+                               with:out fileDescriptor
+                               with:err fileDescriptor)
+        closeDescriptors:nil
+        fork:true
+        newPgrp:false
+        inDirectory:dir.
+
+    ^ rslt
 
     "blocking at current prio (i.e. only higher prio threads execute):
 
@@ -3120,7 +3126,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.
@@ -8644,6 +8650,6 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.67 1999-07-16 16:39:14 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.68 1999-07-23 07:34:53 cg Exp $'
 ! !
 UnixOperatingSystem initialize!