VT100TerminalView.st
changeset 6112 de050a54008a
parent 5548 709732bf7fad
child 6113 129313185a4b
--- a/VT100TerminalView.st	Thu Aug 15 11:44:29 2019 +0200
+++ b/VT100TerminalView.st	Fri Aug 16 23:10:04 2019 +0200
@@ -797,13 +797,14 @@
 
     |processCharacterReturn|
 
+    char isCharacter ifFalse:[self halt].
+    "/ Debug := true.
     Debug ifTrue:[
-        Transcript                                                       
-            show:'VT100: nextPut - state: '; show:state;
-            show:' got: ';
-            showCR:char storeString
+        Transcript 
+            showCR:'VT100: nextPut - state: %1 got: %2' 
+            with:state with:char storeString
     ].
-"/ char == Character return ifTrue:[self halt].
+    "/ char == Character return ifTrue:[self halt].
     state == 0 ifTrue:[
         processCharacterReturn := self processState0:char.
         self evaluateProcessCharacter:char return:processCharacterReturn.
@@ -998,6 +999,8 @@
         #unknown - unknown character for this state
     "
 
+    |n|
+
     char == $? ifTrue: [
         state := #gotCSI2.
         ^ #waitForNextChar
@@ -1017,40 +1020,44 @@
         self insertCharacters.
         ^ #sequenceComplete
     ].
-    char == $A ifTrue: [
+
+    ('ABCDEF' includes:char) ifTrue:[
+        self endEntry.
+        n := self getParameter:1 withDefault:1.
+    ].
+
+    char == $A ifTrue:[
         "/ ESC[#A                         - Moves cursor up # lines
-        self endEntry.
-        self doCursorUp:(self getParameter:1 withDefault:1).
+        Debug ifTrue:[ Transcript showCR:'cursor up' ].
+        self doCursorUp:n.
         ^ #sequenceComplete
     ].
     char == $B ifTrue: [
         "/ ESC[#B                         - Moves cursor down # lines
-        self endEntry.
-        self doCursorDown:(self getParameter:1 withDefault:1).
+        Debug ifTrue:[ Transcript showCR:'cursor down' ].
+        self doCursorDown:n.
         ^ #sequenceComplete
     ].
     char == $C ifTrue: [
         "/ ESC[#C                         - Moves cursor forward # spaces
-        self endEntry.
-        self doCursorRight:(self getParameter:1 withDefault:1).
+        Debug ifTrue:[ Transcript showCR:'cursor right' ].
+        self doCursorRight:n.
         ^ #sequenceComplete
     ].
     char == $D ifTrue: [
         "/ ESC[#D                         - Moves cursor back # spaces
-        self endEntry.
-        self doCursorLeft:(self getParameter:1 withDefault:1).
+        Debug ifTrue:[ Transcript showCR:'cursor left' ].
+        self doCursorLeft:n.
         ^ #sequenceComplete
     ].
     char == $E ifTrue: [
         "/ ESC[#E                         
-        self endEntry.
-        self doCursorNextLine:(self getParameter:1 withDefault:1).
+        self doCursorNextLine:n.
         ^ #sequenceComplete
     ].
     char == $F ifTrue: [
         "/ ESC[#F                         
-        self endEntry.
-        self doCursorPreviousLine:(self getParameter:1 withDefault:1).
+        self doCursorPreviousLine:n.
         ^ #sequenceComplete
     ].
     (char == $G) ifTrue: [
@@ -1163,7 +1170,7 @@
     ].
     char == $] ifTrue: [ 
         "/ ESC-]
-        "/xterm sequence
+        "/ xterm sequence
         state := #gotXTERMCSI. 
         ^ #waitForNextChar
     ].
@@ -1187,7 +1194,7 @@
         ^ #sequenceComplete
     ].
     char == $8 ifTrue:[
-        "/ ESC-7
+        "/ ESC-8
         self endEntry.
         self restoreCursor.
         ^ #sequenceComplete
@@ -1207,6 +1214,7 @@
     char == $E ifTrue:[
         "/ ESC-E
         "/ TODO add_lines
+        Transcript showCR:'unimplemented: ESC-E'. 
         self endEntry.
         self cursorReturn.
         ^ #sequenceComplete