class: TerminalSession
authorClaus Gittinger <cg@exept.de>
Fri, 16 Aug 2013 19:13:01 +0200
changeset 3088 52f83256a664
parent 3087 21384929202f
child 3089 c0936306138e
class: TerminalSession changed: #startCommand:in:environment:setupTerminalWith:terminatedAction:
TerminalSession.st
--- a/TerminalSession.st	Fri Aug 16 17:03:36 2013 +0200
+++ b/TerminalSession.st	Fri Aug 16 19:13:01 2013 +0200
@@ -222,14 +222,16 @@
      tell me, whenever something arrives"
 
     |blocked exitStatus 
-     cmd shell args env shellAndArgs|
+     cmd shell args env shellAndArgs didOpenTerminal|
 
     shellCommand := aCommand.
     shellDirectory := aDirectory.
     terminatedAction := terminatedActionArg.
+    didOpenTerminal := false.
 
     (inStream isNil or:[outStream isNil]) ifTrue:[
         self createTerminalConnectionAndSetupWith:setupBlock.
+        didOpenTerminal := true.
     ].
     OperatingSystem isMSWINDOWSlike ifTrue:[
         shellAndArgs := OperatingSystem commandAndArgsForOSCommand:aCommand.
@@ -289,16 +291,18 @@
         (pty at:2) close.
     ].
 
-    stdOutToStxPipe notNil ifTrue:[
-        (stdOutToStxPipe at:2) close.
-        (stxToStdinPipe at:1) close.
-    ].
+    didOpenTerminal ifTrue:[
+        stdOutToStxPipe notNil ifTrue:[
+            (stdOutToStxPipe at:2) close.
+            (stxToStdinPipe at:1) close.
+        ].
 
-    shellPid isNil ifTrue:[
+        shellPid isNil ifTrue:[
         "/ self warn:'Cannot start shell'.
-        outStream close.
-        inStream close.
-        inStream := outStream := nil.
+            outStream close.
+            inStream close.
+            inStream := outStream := nil.
+        ].
     ].
     ^ shellPid
 
@@ -620,11 +624,11 @@
 !TerminalSession class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/TerminalSession.st,v 1.9 2013-08-16 15:03:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/TerminalSession.st,v 1.10 2013-08-16 17:13:01 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic2/TerminalSession.st,v 1.9 2013-08-16 15:03:36 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/TerminalSession.st,v 1.10 2013-08-16 17:13:01 cg Exp $'
 ! !