VT100TerminalView.st
author Claus Gittinger <cg@exept.de>
Mon, 26 Apr 1999 16:43:02 +0200
changeset 1340 494d79438431
parent 1287 48e6c847a554
child 1352 b10f36808e3e
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
930
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
     1
TerminalView subclass:#VT100TerminalView
998
4915be34a1d7 state instvar moved
Claus Gittinger <cg@exept.de>
parents: 978
diff changeset
     2
	instanceVariableNames:'currentParam parameters lastCursorLine'
920
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	classVariableNames:''
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	poolDictionaries:''
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	category:'Views-TerminalViews'
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
!
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
     8
!VT100TerminalView class methodsFor:'documentation'!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
     9
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    10
documentation
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    11
"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    12
    VT100 terminal
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    13
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    14
    [start with:]
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    15
        VT100TerminalView openShell
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    16
"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    17
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    18
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    19
! !
920
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 930
diff changeset
    21
!VT100TerminalView methodsFor:'defaults'!
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    22
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    23
vt100KeyCodes
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    24
    ^ IdentityDictionary withKeysAndValues:
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    25
        #(
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    26
             #CursorUp    '\e[A'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    27
             #CursorDown  '\e[B'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    28
             #CursorRight '\e[C'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    29
             #CursorLeft  '\e[D'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    30
             #Home        '\e[H'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    31
             #Escape      '\e'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    32
             #BackSpace   '\b'
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    33
             #Return      '\r'
976
40af522dda86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
    34
             #Delete      '\0177'
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    35
         )
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    36
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    37
    "Created: / 10.6.1998 / 15:13:01 / cg"
976
40af522dda86 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
    38
    "Modified: / 20.6.1998 / 17:36:33 / cg"
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    39
! !
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    40
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    41
!VT100TerminalView methodsFor:'functions'!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    42
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    43
addLines
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    44
    "Add the appropriate number of blank lines at the position
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    45
     indicated by the cursor."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    46
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    47
    self addLines: ((parameters at: 1) max: 1).
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    48
    self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    49
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    50
    "Created: / 10.6.1998 / 14:48:03 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    51
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    52
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    53
addLines: aNumber
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    54
    "Add aNumber blank lines at the position indicated by the cursor."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    55
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    56
    aNumber timesRepeat: [
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    57
        self insertLine:'' before:cursorLine
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    58
    ]
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    59
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    60
    "Created: / 10.6.1998 / 14:49:30 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    61
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    62
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    63
autoMargin:aBoolean
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    64
    "set/clear autowrap at end of line (not yet implemented)"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    65
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    66
    "Created: / 12.6.1998 / 21:42:06 / cg"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    67
!
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    68
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    69
clearLines
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    70
    "Clear some part of the current line, as indicated by the first parameter."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    71
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    72
    |arg|
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    73
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    74
    arg := parameters at: 1.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    75
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    76
    arg = 0 ifTrue: [^self doClearToEndOfLine].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    77
    arg = 1 ifTrue: [^self doClearFromBeginningOfLine].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    78
    arg = 2 ifTrue: [^self doClearEntireLine]
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    79
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    80
    "Created: / 10.6.1998 / 14:44:22 / cg"
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
    81
    "Modified: / 21.7.1998 / 20:07:42 / cg"
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    82
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    83
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    84
deleteCharacters
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    85
    "Delete the appropriate number of characters at the position
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    86
     indicated by the cursor."
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    87
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    88
    |n|
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    89
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    90
    n := ((parameters at: 1) max: 1).
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    91
    self deleteFromLine:cursorLine col:cursorCol toLine:cursorLine col:cursorCol+n-1.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    92
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    93
    "Created: / 12.6.1998 / 21:19:02 / cg"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    94
    "Modified: / 12.6.1998 / 21:19:15 / cg"
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    95
!
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
    96
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    97
displayMode: anInteger
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    98
    "Set the current display mode."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
    99
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   100
"/    self endEntry.
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   101
    (parameters at:1) == 1 ifTrue:[
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   102
        "/ ESC-[-1-m  -> bold
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   103
1287
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   104
        "/ workaround: windows bold fonts are
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   105
        "/ wider, leading to ugly looking output
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   106
        "/ Therefore, use red color instead of bold
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   107
        Display platformName = 'WIN32' ifTrue:[
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   108
            self color:Color red.
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   109
        ] ifFalse:[
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   110
            self bold.
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   111
        ].
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   112
        ^ self.
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   113
    ].
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   114
    (parameters at:1) == 7 ifTrue:[
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   115
        "/ ESC-[-7-m  -> revers
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   116
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   117
        self reverse.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   118
        ^ self.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   119
    ].
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   120
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   121
    "/ ESC-[-any-m  -> normal
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   122
    self normal.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   123
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   124
    "Created: / 10.6.1998 / 15:01:16 / cg"
1287
48e6c847a554 use red color instead of bold
Claus Gittinger <cg@exept.de>
parents: 1056
diff changeset
   125
    "Modified: / 26.3.1999 / 14:31:53 / cg"
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   126
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   127
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   128
doClearDisplay
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   129
    "Clear some part of the current screen, as indicated by the first parameter."
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   130
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   131
    |arg|
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   132
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   133
    arg := parameters at: 1.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   134
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   135
    arg = 0 ifTrue: [^self doClearToEndOfScreen].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   136
    arg = 1 ifTrue: [^self doClearFromBeginningOfScreen].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   137
    arg = 2 ifTrue: [^self doClearEntireScreen]
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   138
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   139
    "Created: / 21.7.1998 / 20:05:07 / cg"
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   140
    "Modified: / 21.7.1998 / 20:07:36 / cg"
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   141
!
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   142
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   143
insertCharacters
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   144
    "Insert the appropriate number of spaces at the position
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   145
     indicated by the cursor."
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   146
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   147
    |s|
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   148
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   149
    s := String new:((parameters at: 1) max: 1).
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   150
    self insertStringWithoutCRsAtLine:cursorLine col:cursorCol.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   151
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   152
    "Modified: / 12.6.1998 / 21:14:25 / cg"
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   153
    "Created: / 28.7.1998 / 00:53:51 / cg"
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   154
!
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   155
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   156
move
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   157
    "Move to the locations indicated by the first and second parameters."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   158
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   159
    self moveToX: ((parameters at: 2) max: 1) y: ((parameters at: 1) max: 1).
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   160
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   161
    "Created: / 10.6.1998 / 14:40:01 / cg"
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   162
    "Modified: / 20.6.1998 / 18:49:12 / cg"
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   163
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   164
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   165
moveToX: xLocation y: yLocation
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   166
    "Position the cursor at the location given by xLocation and yLocation.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   167
     Ignore the command if the parameters are outside the allowable range."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   168
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   169
"/ Transcript show:'numberOfColumns '; showCR:numberOfColumns.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   170
"/ Transcript show:'numberOfLines '; showCR:numberOfLines.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   171
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   172
"/    (xLocation < 1 or: [xLocation > numberOfColumns]) ifTrue: [^self].
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   173
"/    (yLocation < 1 or: [yLocation > numberOfLines]) ifTrue: [^self].
952
b83678ff6770 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   174
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   175
    self cursorVisibleLine:yLocation col:xLocation.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   176
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   177
    "Created: / 10.6.1998 / 14:40:49 / cg"
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   178
    "Modified: / 20.6.1998 / 20:27:11 / cg"
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   179
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   180
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   181
reportTerminalType
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   182
    (parameters at: 1) == 6 ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   183
        "/ report position
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   184
        self endEntry.
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   185
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   186
        inStream nextPut:(Character esc).
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   187
        inStream nextPutAll:'[' 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   188
                            , cursorLine printString 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   189
                            , ';' 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   190
                            , cursorCol printString
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   191
                            , 'R'.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   192
        ^ self
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   193
    ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   194
    (parameters at: 1) == 7 ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   195
        "/ display name 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   196
    ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   197
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   198
    "Created: / 11.6.1998 / 23:05:50 / cg"
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   199
    "Modified: / 28.7.1998 / 00:54:30 / cg"
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   200
!
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   201
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   202
resetDefaults
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   203
    "Reset the default parameters"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   204
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   205
    |l1 c1 l2 c2|
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   206
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   207
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   208
    l1 := (parameters at: 1).
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   209
    l2 := (parameters at: 2).
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   210
"/ Transcript show:'resetDefaults:'; show:l1;show:' ';showCR:l2.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   211
    (l1 ~~ 0 and:[l2 ~~ 0]) ifTrue:[
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   212
        rangeStartLine := l1.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   213
        rangeEndLine := l2.
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   214
    ] ifFalse:[
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   215
"/        self halt.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   216
    ].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   217
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   218
"/    (rangeStartLine == 1 and:[rangeEndLine == numberOfLines]) ifTrue:[
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   219
"/        rangeEndLine := rangeStartLine := nil.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   220
"/    ].
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   221
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   222
"/    autoLineFeed := false.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   223
"/    autoMargin := true.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   224
"/    displayMode := 0.                "Normal display"!! !!
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   225
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   226
    "Created: / 10.6.1998 / 14:50:53 / cg"
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   227
    "Modified: / 20.6.1998 / 20:28:26 / cg"
920
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
! !
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
!VT100TerminalView methodsFor:'initialization'!
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   232
initialize
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   233
    super initialize.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   234
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   235
    self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   236
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   237
    "Created: / 10.6.1998 / 14:46:07 / cg"
953
59167fd29632 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 952
diff changeset
   238
    "Modified: / 13.6.1998 / 13:58:01 / cg"
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   239
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   240
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   241
initializeKeyboardSequences
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   242
    kbdSequences := (self vt100KeyCodes)
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   243
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   244
    "Modified: / 9.6.1998 / 20:49:21 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   245
    "Created: / 10.6.1998 / 15:12:32 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   246
! !
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   247
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   248
!VT100TerminalView methodsFor:'processing - input'!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   249
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   250
addToParameter: char
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   251
    "The parameter char is a digit. Add it to the current parameter."
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   252
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   253
    | param |
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   254
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   255
    param := parameters at:currentParam.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   256
    parameters at:currentParam put:(param * 10 + char digitValue)
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   257
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   258
    "Created: / 10.6.1998 / 14:39:00 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   259
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   260
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   261
doNothing
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   262
    self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   263
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   264
    "Created: / 10.6.1998 / 14:31:56 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   265
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   266
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   267
endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   268
    state := 0. 
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   269
    currentParam := 1. 
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   270
    parameters := Array new:8 withAll:0.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   271
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   272
    "Created: / 10.6.1998 / 14:30:40 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   273
    "Modified: / 10.6.1998 / 14:30:57 / cg"
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   274
!
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   275
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   276
nextPut:char
937
9823aad16498 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
   277
    "process a character (i.e. the shells output)"
9823aad16498 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
   278
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   279
"/ Transcript show:state; show:' '; showCR:char storeString.
932
af0236d38242 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 930
diff changeset
   280
933
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   281
    state == #gotReturn ifTrue:[
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   282
        state := 0.
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   283
        char == Character nl ifTrue:[
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   284
            "/ cr-nl
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   285
            "/ stay in buffering mode.
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   286
            super nextPut:Character cr.
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   287
            ^ self.
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   288
        ].
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   289
        self endEntry.
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   290
        self cursorToBeginOfLine.
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   291
        "/ continue in initial state
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   292
    ].
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   293
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   294
    state == 0 ifTrue:[
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   295
        "/ Currently, we are in initial state.  
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   296
        "/ Decide what to do on the basis of the parameter char.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   297
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   298
        char asciiValue < 32 ifTrue:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   299
            (char == Character esc) ifTrue:[ 
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   300
                state := #gotESC. 
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   301
                ^ self 
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   302
            ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   303
            (char == Character nl) ifTrue:[ 
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   304
                self endEntry.
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   305
                ^ self doCursorDown:1.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   306
            ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   307
            (char == Character return) ifTrue:[ 
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   308
                (rangeEndLine notNil and:[rangeEndLine ~~ numberOfLines]) ifTrue:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   309
                    self endEntry.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   310
                    self cursorToBeginOfLine.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   311
                ] ifFalse:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   312
                    state := #gotReturn.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   313
                ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   314
                ^ self.
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   315
            ].
1001
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   316
            (char == Character backspace) ifTrue:[ 
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   317
                self endEntry.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   318
                ^ self cursorLeft. "/ doBackspace
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   319
            ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   320
            (char == Character bell) ifTrue:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   321
                self beep.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   322
                ^ self 
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   323
            ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   324
            (char == (Character value:5)) ifTrue:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   325
                "/ terminal-type query
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   326
                self reportTerminalType.
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   327
                ^ self 
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   328
            ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   329
            (char == (Character value:16rf)) ifTrue:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   330
                "/ SO
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   331
                ^ self 
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   332
            ].
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   333
            (char == (Character value:16re)) ifTrue:[
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   334
                "/ SI
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   335
                ^ self 
7fe14ad43ae3 fixed clear-to-end-of-screen function.
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
   336
            ].
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   337
            char ~~ Character tab ifTrue:[
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   338
                char asciiValue ~~ 0 ifTrue:[
1340
494d79438431 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   339
                    ('VT100 [info]: unhandled control key: ' , char storeString) infoPrintCR.
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   340
                ].
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   341
                ^ self.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   342
            ]
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   343
        ].
934
b450dbaeedac checkin from browser
Claus Gittinger <cg@exept.de>
parents: 933
diff changeset
   344
        ^ super nextPut:char
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   345
    ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   346
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   347
    state == #gotESC ifTrue:[
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   348
        "/ Currently, we are in ESC state.  
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   349
        "/ Decide what to do on the basis of the parameter char.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   350
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   351
        char == $[ ifTrue: [ 
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   352
            "/ ESC-[
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   353
            state := #gotCSI. 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   354
            ^ self
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   355
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   356
        char == $] ifTrue: [ 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   357
            "/ ESC-]
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   358
            "/xterm sequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   359
            state := #gotXTERMCSI. 
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   360
            ^ self
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   361
        ].
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   362
        char == $( ifTrue: [ 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   363
            "/ ESC-(
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   364
            "/ todo: set-charset 0 ...
1056
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   365
            state := #gotCSI3.
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   366
            ^ self
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   367
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   368
        char == $) ifTrue: [ 
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   369
            "/ ESC-(
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   370
            "/ todo: set-charset 1 ...
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   371
            ^ self doNothing
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   372
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   373
        char == $7 ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   374
            "/ ESC-7
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   375
            self endEntry.
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   376
            self saveCursor.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   377
            ^ self endOfSequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   378
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   379
        char == $8 ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   380
            "/ ESC-7
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   381
            self endEntry.
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   382
            self restoreCursor.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   383
            ^ self endOfSequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   384
        ].
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   385
        char == $M ifTrue:[
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   386
            "/ ESC-M
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   387
            self endEntry.
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   388
            self doCursorUp:1.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   389
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   390
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   391
        char == $D ifTrue:[
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   392
            "/ ESC-D
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   393
            self endEntry.
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   394
            self doCursorDown:1.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   395
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   396
        ].
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   397
        char == $E ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   398
            "/ ESC-E
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   399
            "/ TODO add_lines
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   400
            ^ self doNothing
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   401
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   402
        (char == $Z) ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   403
            "/ terminal-type query 2
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   404
            self reportTerminalType.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   405
            ^ self endOfSequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   406
        ].
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   407
        char == $= ifTrue: [
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   408
            "/ ESC-=
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   409
            ^ self doNothing
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   410
        ].
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   411
        char == $< ifTrue: [
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   412
            "/ ESC-<
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   413
            ^ self doNothing
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   414
        ].
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   415
        ^ self doNothing
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   416
    ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   417
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   418
    state == #gotCSI ifTrue:[
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   419
        "/ Currently, we are in ESC-[ state.  
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   420
        "/ Decide what to do on the basis of the parameter char.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   421
978
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   422
        char == $? ifTrue: [
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   423
            state := #gotCSI2.
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   424
            ^ self
8f6dee49a562 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   425
        ].
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   426
        char == $; ifTrue:[
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   427
            currentParam := (currentParam + 1) min: 8.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   428
            ^ self
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   429
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   430
        char isDigit ifTrue: [
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   431
            ^ self addToParameter:char
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   432
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   433
        char == $@ ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   434
            self endEntry.
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   435
            self insertCharacters.
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   436
            ^ self endOfSequence
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   437
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   438
        char == $A ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   439
            self endEntry.
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   440
            self doCursorUp:((parameters at: 1) max: 1).
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   441
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   442
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   443
        char == $B ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   444
            self endEntry.
1016
2d8e8b9bb9a5 fixed cursorLeft / cursorDown escape sequences.
Claus Gittinger <cg@exept.de>
parents: 1001
diff changeset
   445
            self doCursorDown:((parameters at: 1) max: 1).
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   446
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   447
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   448
        char == $C ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   449
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   450
            self doCursorRight:((parameters at: 1) max: 1).
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   451
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   452
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   453
        char == $D ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   454
            self endEntry.
1016
2d8e8b9bb9a5 fixed cursorLeft / cursorDown escape sequences.
Claus Gittinger <cg@exept.de>
parents: 1001
diff changeset
   455
            self doCursorLeft:((parameters at: 1) max: 1).
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   456
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   457
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   458
        char == $H ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   459
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   460
            self move.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   461
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   462
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   463
        char == $J ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   464
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   465
            self doClearDisplay.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   466
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   467
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   468
        char == $K ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   469
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   470
            self clearLines.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   471
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   472
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   473
        char == $L ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   474
            self endEntry.
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   475
            self insertLines.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   476
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   477
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   478
        char == $M ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   479
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   480
            self deleteLines.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   481
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   482
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   483
        char == $P ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   484
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   485
            self deleteCharacters.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   486
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   487
        ].
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   488
        (char == $c) ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   489
            "/ terminal-type query 3
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   490
            self reportTerminalType.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   491
            ^ self endOfSequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   492
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   493
        char == $f ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   494
            self endEntry.
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   495
            self move.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   496
            ^ self endOfSequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   497
        ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   498
        char == $n ifTrue: [
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   499
            self report.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   500
            ^ self endOfSequence
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   501
        ].
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   502
        char == $m ifTrue: [
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   503
            self displayMode: (parameters at: 1).
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   504
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   505
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   506
        char == $r ifTrue: [
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   507
            self endEntry.
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   508
            self resetDefaults.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   509
            ^ self endOfSequence
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   510
        ].
939
54698a16b65c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
   511
        ^ self doNothing
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   512
    ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   513
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   514
    state == #gotCSI2 ifTrue:[
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   515
        "/ Currently, we are in ESC-[-? state.  
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   516
        "/ Decide what to do on the basis of the parameter char.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   517
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   518
        char == $; ifTrue: [
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   519
            currentParam := (currentParam + 1) min: 8.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   520
            ^ self
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   521
        ].
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   522
        char isDigit ifTrue: [
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   523
            self addToParameter: char.
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   524
            ^ self
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   525
        ].
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   526
        (char == $l 
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   527
        or:[char == $h]) ifTrue: [
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   528
            "/ (parameters at: 1) = 1 ifTrue: [app_cur_keys:(char == $h)].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   529
            "/ (parameters at: 1) = 2 ifTrue: [mode132:(char == $h)].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   530
            "/ (parameters at: 1) = 4 ifTrue: [smoothScroll:(char == $h)].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   531
            "/ (parameters at: 1) = 5 ifTrue: [reverseVideo:(char == $h)].
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   532
            "/ (parameters at: 1) = 6 ifTrue: [decom:(char == $h)].
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   533
            self endEntry.
949
1a6071a5c370 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
   534
            (parameters at: 1) = 7 ifTrue: [self autoMargin:(char == $h)].
951
a9e48f549763 fixed scroll-range
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
   535
            ^ self endOfSequence
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   536
        ].
939
54698a16b65c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
   537
        ^ self doNothing
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   538
    ].
933
de456e07697e much better asynchronous display
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   539
1056
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   540
    state == #gotCSI3 ifTrue:[
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   541
        "/ Currently, we are in ESC-(-? state.  
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   542
        "/ Decide what to do on the basis of the parameter char.
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   543
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   544
        "/ currently not supported
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   545
        ^ self doNothing.
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   546
    ].
4390f680fcce ignore ESC-(-X sequences.
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   547
944
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   548
    state == #gotXTERMCSI ifTrue:[
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   549
        "/ Currently, we are in ESC-] state.  
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   550
        "/ Decide what to do on the basis of the parameter char.
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   551
        ^ self doNothing
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   552
    ].
c59be5892714 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
   553
927
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   554
    self doNothing
b0b5b368e80f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 920
diff changeset
   555
1020
035490ba97f2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1016
diff changeset
   556
    "Modified: / 28.7.1998 / 00:18:01 / cg"
920
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
! !
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
930
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   559
!VT100TerminalView methodsFor:'queries'!
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   560
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   561
terminalType
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   562
    ^ #vt100
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   563
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   564
    "Created: / 10.6.1998 / 16:22:39 / cg"
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   565
! !
3186aa6efe72 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 927
diff changeset
   566
920
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
!VT100TerminalView class methodsFor:'documentation'!
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
version
1340
494d79438431 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   570
    ^ '$Header: /cvs/stx/stx/libwidg2/VT100TerminalView.st,v 1.24 1999-04-26 14:43:02 cg Exp $'
920
7827037bca8e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
! !