#FEATURE by exept
class: TerminalSession
changed: #createTerminalConnectionAndSetupWith:
--- a/TerminalSession.st Tue Sep 03 10:09:03 2019 +0200
+++ b/TerminalSession.st Tue Sep 03 10:15:24 2019 +0200
@@ -251,13 +251,13 @@
OperatingSystem isMSWINDOWSlike ifTrue:[
"use two pipes (eg. to COMMAND.COM)"
- stxToStdinPipe := NonPositionableExternalStream makePipe.
+ stxToStdinPipe := PipeStream makePipe.
stxToStdinPipe isNil ifTrue:[
self error:(self class classResources string:'Could not create pipe to COMMAND.COM.') mayProceed:true.
^ self.
].
- stdOutToStxPipe := NonPositionableExternalStream makePipe.
+ stdOutToStxPipe := PipeStream makePipe.
stdOutToStxPipe isNil ifTrue:[
self error:(self class classResources classResources string:'Could not create pipe from COMMAND.COM.') mayProceed:true.
^ self.
@@ -285,13 +285,15 @@
"/ pty at:1 is the master;
"/ pty at:2 is the slave
"/ pty at:3 is the name of the pty
- ptyName := ptyTriple at:3.
+ ptyName := ptyTriple at:3 ifAbsent:'pty?'.
- master := NonPositionableExternalStream forReadWriteToFileDescriptor:(ptyTriple at:1).
+ master := UnixPTYStream forReadWriteToFileDescriptor:(ptyTriple at:1).
master buffered:false.
+ master setCommandString:ptyName.
- slave := NonPositionableExternalStream forReadWriteToFileDescriptor:(ptyTriple at:2).
+ slave := UnixPTYStream forReadWriteToFileDescriptor:(ptyTriple at:2).
slave buffered:false.
+ slave setCommandString:ptyName.
pty := { master . slave }.