Add `VDBTerminalView` used on with PTYs
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 12 Jun 2019 15:16:33 +0100
changeset 169 807f5f62c910
parent 168 6a4863394260
child 170 cd9615ebe6a9
Add `VDBTerminalView` used on with PTYs The reason is that stock `TerminalView` closes streams when the view is closed (destoryed). This is *NOT* what we want - application provides opened stream and application is responsible for closing then. In this particular case, closing the PTY causes GDB to exit. This is not what we want - for example when reopening the UI or switching layout, old debugger console view is destoyed and ew one attached to the same PTY. Since there's no way to configure this behavior in `TerminalView`, we introduce new VDB-specific subclass with desired behavior.
Make.proto
Make.spec
VDBAbstractUnixConsoleApplication.st
VDBTerminalView.st
abbrev.stc
bc.mak
jv_vdb.st
libInit.cc
--- a/Make.proto	Tue Jun 11 11:44:32 2019 +0100
+++ b/Make.proto	Wed Jun 12 15:16:33 2019 +0100
@@ -144,6 +144,7 @@
 $(OUTDIR)VDBSettingsApplication.$(O) VDBSettingsApplication.$(C) VDBSettingsApplication.$(H): VDBSettingsApplication.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)VDBSimpleConsoleView.$(O) VDBSimpleConsoleView.$(C) VDBSimpleConsoleView.$(H): VDBSimpleConsoleView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(STCHDR)
 $(OUTDIR)VDBStartup.$(O) VDBStartup.$(C) VDBStartup.$(H): VDBStartup.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/StandaloneStartup.$(H) $(STCHDR)
+$(OUTDIR)VDBTerminalView.$(O) VDBTerminalView.$(C) VDBTerminalView.$(H): VDBTerminalView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg2/TerminalView.$(H) $(INCLUDE_TOP)/stx/libwidg2/VT100TerminalView.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryMap.$(O) VDBVirtualMemoryMap.$(C) VDBVirtualMemoryMap.$(H): VDBVirtualMemoryMap.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryRegion.$(O) VDBVirtualMemoryRegion.$(C) VDBVirtualMemoryRegion.$(H): VDBVirtualMemoryRegion.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)jv_vdb.$(O) jv_vdb.$(C) jv_vdb.$(H): jv_vdb.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
--- a/Make.spec	Tue Jun 11 11:44:32 2019 +0100
+++ b/Make.spec	Wed Jun 12 15:16:33 2019 +0100
@@ -61,6 +61,7 @@
 	VDBSettingsApplication \
 	VDBSimpleConsoleView \
 	VDBStartup \
+	VDBTerminalView \
 	VDBVirtualMemoryMap \
 	VDBVirtualMemoryRegion \
 	jv_vdb \
@@ -113,6 +114,7 @@
     $(OUTDIR)VDBSettingsApplication.$(O) \
     $(OUTDIR)VDBSimpleConsoleView.$(O) \
     $(OUTDIR)VDBStartup.$(O) \
+    $(OUTDIR)VDBTerminalView.$(O) \
     $(OUTDIR)VDBVirtualMemoryMap.$(O) \
     $(OUTDIR)VDBVirtualMemoryRegion.$(O) \
     $(OUTDIR)jv_vdb.$(O) \
--- a/VDBAbstractUnixConsoleApplication.st	Tue Jun 11 11:44:32 2019 +0100
+++ b/VDBAbstractUnixConsoleApplication.st	Wed Jun 12 15:16:33 2019 +0100
@@ -78,9 +78,10 @@
 !VDBAbstractUnixConsoleApplication methodsFor:'aspects'!
 
 consoleViewClass
-    ^ VT100TerminalView
+    ^ VDBTerminalView
 
     "Created: / 21-01-2019 / 14:23:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-06-2019 / 12:58:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !VDBAbstractUnixConsoleApplication methodsFor:'initialization & release'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VDBTerminalView.st	Wed Jun 12 15:16:33 2019 +0100
@@ -0,0 +1,41 @@
+"
+jv:vdb - Visual / VM Debugger
+Copyright (C) 2015-now Jan Vrany
+
+This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
+
+You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
+"
+"{ Package: 'jv:vdb' }"
+
+"{ NameSpace: Smalltalk }"
+
+VT100TerminalView subclass:#VDBTerminalView
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-UI-Console-Unix'
+!
+
+!VDBTerminalView class methodsFor:'documentation'!
+
+copyright
+"
+jv:vdb - Visual / VM Debugger
+Copyright (C) 2015-now Jan Vrany
+
+This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
+
+You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
+"
+! !
+
+!VDBTerminalView methodsFor:'initialization & release'!
+
+closeStreams
+    "Do nothing here, streams should be closed by an application,
+     not the view!!"
+
+    "Created: / 12-06-2019 / 12:57:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/abbrev.stc	Tue Jun 11 11:44:32 2019 +0100
+++ b/abbrev.stc	Wed Jun 12 15:16:33 2019 +0100
@@ -11,6 +11,7 @@
 VDBSettingsApplication VDBSettingsApplication jv:vdb 'VDB-UI-Others' 2
 VDBSimpleConsoleView VDBSimpleConsoleView jv:vdb 'VDB-UI-Console' 2
 VDBStartup VDBStartup jv:vdb 'VDB-UI' 1
+VDBTerminalView VDBTerminalView jv:vdb 'VDB-UI-Console-Unix' 2
 VDBVirtualMemoryMap VDBVirtualMemoryMap jv:vdb 'VDB-Tools' 0
 VDBVirtualMemoryRegion VDBVirtualMemoryRegion jv:vdb 'VDB-Tools' 0
 jv_vdb jv_vdb jv:vdb '* Projects & Packages *' 3
@@ -38,12 +39,12 @@
 VDBSimpleDebuggerConsoleApplication VDBSimpleDebuggerConsoleApplication jv:vdb 'VDB-UI-Console' 2
 VDBTabbingContainer VDBTabbingContainer jv:vdb 'VDB-UI-Containers' 2
 VDBAbstractTreeApplication VDBAbstractTreeApplication jv:vdb 'VDB-UI-Abstract' 2
-VDBBreakpointListApplication VDBBreakpointListApplication jv:vdb 'VDB-UI-Others' 2
 VDBFrameApplication VDBFrameApplication jv:vdb 'VDB-UI-Others' 2
 VDBSourceAndDisassemblyApplication VDBSourceAndDisassemblyApplication jv:vdb 'VDB-UI-Source' 2
 VDBUnixDebuggerConsoleApplication VDBUnixDebuggerConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
 VDBUnixInferiorConsoleApplication VDBUnixInferiorConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
 VDBUnixReplayServerConsoleApplication VDBUnixReplayServerConsoleApplication jv:vdb 'VDB-UI-Console-Unix' 2
+VDBBreakpointListApplication VDBBreakpointListApplication jv:vdb 'VDB-UI-Others' 2
 VDBInstructionListApplication VDBInstructionListApplication jv:vdb 'VDB-UI-Others' 2
 VDBRegisterListApplication VDBRegisterListApplication jv:vdb 'VDB-UI-Others' 2
 VDBStackApplication VDBStackApplication jv:vdb 'VDB-UI-Others' 2
--- a/bc.mak	Tue Jun 11 11:44:32 2019 +0100
+++ b/bc.mak	Wed Jun 12 15:16:33 2019 +0100
@@ -91,6 +91,7 @@
 $(OUTDIR)VDBSettingsApplication.$(O) VDBSettingsApplication.$(C) VDBSettingsApplication.$(H): VDBSettingsApplication.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)VDBSimpleConsoleView.$(O) VDBSimpleConsoleView.$(C) VDBSimpleConsoleView.$(H): VDBSimpleConsoleView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
 $(OUTDIR)VDBStartup.$(O) VDBStartup.$(C) VDBStartup.$(H): VDBStartup.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\StandaloneStartup.$(H) $(STCHDR)
+$(OUTDIR)VDBTerminalView.$(O) VDBTerminalView.$(C) VDBTerminalView.$(H): VDBTerminalView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg2\TerminalView.$(H) $(INCLUDE_TOP)\stx\libwidg2\VT100TerminalView.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryMap.$(O) VDBVirtualMemoryMap.$(C) VDBVirtualMemoryMap.$(H): VDBVirtualMemoryMap.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)VDBVirtualMemoryRegion.$(O) VDBVirtualMemoryRegion.$(C) VDBVirtualMemoryRegion.$(H): VDBVirtualMemoryRegion.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)jv_vdb.$(O) jv_vdb.$(C) jv_vdb.$(H): jv_vdb.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
--- a/jv_vdb.st	Tue Jun 11 11:44:32 2019 +0100
+++ b/jv_vdb.st	Wed Jun 12 15:16:33 2019 +0100
@@ -110,6 +110,7 @@
         VDBSettingsApplication
         VDBSimpleConsoleView
         VDBStartup
+        VDBTerminalView
         VDBVirtualMemoryMap
         VDBVirtualMemoryRegion
         #'jv_vdb'
@@ -137,12 +138,12 @@
         VDBSimpleDebuggerConsoleApplication
         VDBTabbingContainer
         VDBAbstractTreeApplication
-        VDBBreakpointListApplication
         VDBFrameApplication
         VDBSourceAndDisassemblyApplication
         VDBUnixDebuggerConsoleApplication
         VDBUnixInferiorConsoleApplication
         VDBUnixReplayServerConsoleApplication
+        VDBBreakpointListApplication
         VDBInstructionListApplication
         VDBRegisterListApplication
         VDBStackApplication
--- a/libInit.cc	Tue Jun 11 11:44:32 2019 +0100
+++ b/libInit.cc	Wed Jun 12 15:16:33 2019 +0100
@@ -26,6 +26,7 @@
 extern void _VDBSettingsApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBSimpleConsoleView_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBStartup_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _VDBTerminalView_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBVirtualMemoryMap_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _VDBVirtualMemoryRegion_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _jv_137vdb_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -87,6 +88,7 @@
     _VDBSettingsApplication_Init(pass,__pRT__,snd);
     _VDBSimpleConsoleView_Init(pass,__pRT__,snd);
     _VDBStartup_Init(pass,__pRT__,snd);
+    _VDBTerminalView_Init(pass,__pRT__,snd);
     _VDBVirtualMemoryMap_Init(pass,__pRT__,snd);
     _VDBVirtualMemoryRegion_Init(pass,__pRT__,snd);
     _jv_137vdb_Init(pass,__pRT__,snd);