--- a/UnixPTYStream.st Wed Jul 06 15:37:55 2016 +0200
+++ b/UnixPTYStream.st Wed Jul 06 18:23:21 2016 +0200
@@ -183,17 +183,16 @@
!UnixPTYStream methodsFor:'private'!
-openPTYFor:aCommandString withMode:mode inDirectory:aDirectrory
+openPTYFor:aCommandString withMode:mode inDirectory:aDirectory
"open a pty to the unix command in commandString"
|blocked ptyFdArray execFdArray slaveFd masterFd shellAndArgs
- shellPath shellArgs mbx mbxName
- env shell args|
+ shellPath shellArgs mbx mbxName env|
handle notNil ifTrue:[
"the pipe was already open ...
this should (can) not happen."
- ^ self errorOpen
+ ^ self errorAlreadyOpen
].
lastErrorNumber := nil.
@@ -230,7 +229,7 @@
].
env := Dictionary new.
- env at:'TERM' put:'dumb'.
+ env at:'TERM' put:'dumb'.
env at:'SHELL' put:shellPath.
"/ must block here, to avoid races due to early finishing
@@ -247,7 +246,7 @@
fileDescriptors:execFdArray
fork:true
newPgrp:true
-"/ inDirectory:aDirectrory.
+ inDirectory:aDirectory.
]
action:[:status |
status stillAlive ifFalse:[
@@ -263,21 +262,20 @@
].
pid notNil ifTrue:[
- (OperatingSystem isMSWINDOWSlike) ifTrue:[
- self setFileDescriptor:masterFd mode:mode.
- "/ self setFileHandle:masterFd mode:mode
+ (OperatingSystem isVMSlike) ifTrue:[
+ "/
+ "/ reopen the mailbox as a file ...
+ "/
+ mbxName := OperatingSystem mailBoxNameOf:mbx.
+ mbxName notNil ifTrue:[
+ super open:mbxName withMode:mode
+ ].
] ifFalse:[
- (OperatingSystem isVMSlike) ifTrue:[
- "/
- "/ reopen the mailbox as a file ...
- "/
- mbxName := OperatingSystem mailBoxNameOf:mbx.
- mbxName notNil ifTrue:[
- super open:mbxName withMode:mode
- ].
- ] ifFalse:[
- self setFileDescriptor:masterFd mode:mode.
- ]
+"/ (OperatingSystem isMSWINDOWSlike) ifTrue:[
+"/ self setFileHandle:masterFd mode:mode
+"/ ] ifFalse:[
+
+ self setFileDescriptor:masterFd mode:mode.
]
] ifFalse:[
lastErrorNumber := OperatingSystem currentErrorNumber.
@@ -305,7 +303,7 @@
commandString := aCommandString.
buffered := false.
- position := 1.
+ position := 0.
hitEOF := false.
binary := false.
Lobby register:self.