summaryrefslogtreecommitdiff
path: root/sys/src/cmd/vt/vt.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-04-22 20:16:07 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-04-22 20:16:07 +0200
commitf2b7f24e4e14099251dd0ed8e7e13d7ca466b0cf (patch)
tree6930eb16d09e714fe20d550bef270dedfe965bfd /sys/src/cmd/vt/vt.c
parentb58584b0578617f6cabcae6e51c6e3e0dc51fec1 (diff)
vt: handle application/normal mode (really fixes cursor keys)
Diffstat (limited to 'sys/src/cmd/vt/vt.c')
-rw-r--r--sys/src/cmd/vt/vt.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/sys/src/cmd/vt/vt.c b/sys/src/cmd/vt/vt.c
index 0a2dd2063..457cbc94c 100644
--- a/sys/src/cmd/vt/vt.c
+++ b/sys/src/cmd/vt/vt.c
@@ -32,14 +32,7 @@ int originrelative = 0;
int tabcol[200];
-struct funckey vt100fk[NKEYS] = {
- { "up key", "\033OA", },
- { "down key", "\033OB", },
- { "left key", "\033OD", },
- { "right key", "\033OC", },
-};
-
-struct funckey ansifk[NKEYS] = {
+struct funckey ansifk[] = {
{ "up key", "\033[A", },
{ "down key", "\033[B", },
{ "left key", "\033[D", },
@@ -56,22 +49,24 @@ struct funckey ansifk[NKEYS] = {
{ "F10", "\033OY", },
{ "F11", "\033OZ", },
{ "F12", "\033O1", },
+ { 0 },
};
-struct funckey vt220fk[NKEYS] = {
- { "up key", "\033[A", },
- { "down key", "\033[B", },
- { "left key", "\033[D", },
- { "right key", "\033[C", },
-};
-
-struct funckey xtermfk[NKEYS] = {
- { "page up", "\033[5~", },
- { "page down", "\033[6~", },
+struct funckey ansiappfk[] = {
{ "up key", "\033OA", },
{ "down key", "\033OB", },
{ "left key", "\033OD", },
{ "right key", "\033OC", },
+ { 0 },
+};
+
+struct funckey xtermfk[] = {
+ { "page up", "\033[5~", },
+ { "page down", "\033[6~", },
+ { "up key", "\033[A", },
+ { "down key", "\033[B", },
+ { "left key", "\033[D", },
+ { "right key", "\033[C", },
{ "F1", "\033OP", },
{ "F2", "\033OQ", },
{ "F3", "\033OR", },
@@ -84,6 +79,7 @@ struct funckey xtermfk[NKEYS] = {
{ "F10", "\033[21~", },
{ "F11", "\033[23~", },
{ "F12", "\033[24~", },
+ { 0 },
};
char gmap[256] = {
@@ -433,6 +429,7 @@ emulate(void)
}else while(--noperand > 0){
switch(operand[noperand]){
case 1: /* set cursor keys to send ANSI functions: ESC [ A..D */
+ appfk = nil;
break;
case 2: /* set VT52 mode (not implemented) */
break;
@@ -486,6 +483,7 @@ emulate(void)
default:
break;
case 1: /* set cursor keys to send application function: ESC O A..D */
+ appfk = ansiappfk;
break;
case 2: /* set ANSI */
break;