diff options
author | james <> | 2008-02-28 22:00:45 +0000 |
---|---|---|
committer | james <> | 2008-02-28 22:00:45 +0000 |
commit | 3ea64d3f157cabbf22a9c96d5dd356659047a093 (patch) | |
tree | 79c5f3c8f6d4efe32abe9abf7c23b0f338487c03 /src/ansi.c | |
parent | 68f1170ace397c32f9c80a6b7cb89388d88743f2 (diff) | |
download | sympathy-3ea64d3f157cabbf22a9c96d5dd356659047a093.tar.gz sympathy-3ea64d3f157cabbf22a9c96d5dd356659047a093.tar.bz2 sympathy-3ea64d3f157cabbf22a9c96d5dd356659047a093.zip |
*** empty log message ***
Diffstat (limited to 'src/ansi.c')
-rw-r--r-- | src/ansi.c | 33 |
1 files changed, 28 insertions, 5 deletions
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.36 2008/02/28 22:00:42 james + * *** empty log message *** + * * Revision 1.35 2008/02/28 16:57:51 james * *** empty log message *** * @@ -728,6 +731,26 @@ ansi_terminal_reset (ANSI * a) ansi_move (a, p); } + +int ansi_key(ANSI *a,Context *c,int key) +{ + + if (!c->d) + return c->k->key (c->k, c, key); + + cmd_show_status (c->d, c); + + if (c->d->active) + return cmd_key (c->d, c,a, key); + + if (key == CMD_KEY) + return cmd_activate (c->d, c); + + + return c->k->key (c->k, c, key); +} + + static void ansi_flush_escape (ANSI * a, Context * c) { @@ -736,7 +759,7 @@ ansi_flush_escape (ANSI * a, Context * c) for (i = 0; i < p->escape_ptr; ++i) { - keydis_key (c->k, c, p->escape_buf[i]); + ansi_key (a, c, p->escape_buf[i]); } p->escape_ptr = 0; @@ -755,11 +778,11 @@ ansi_parse_deckey (ANSI * a, Context * c) if ((p->escape_buf[2] >= 'A') || (p->escape_buf[2] <= 'Z')) { - keydis_key (c->k, c, KEY_UP + (p->escape_buf[2] - 'A')); + ansi_key (a, c, KEY_UP + (p->escape_buf[2] - 'A')); } else if ((p->escape_buf[2] >= 'a') || (p->escape_buf[2] <= 'z')) { - keydis_key (c->k, c, KEY_154 + (p->escape_buf[2] - 'a')); + ansi_key (a, c, KEY_154 + (p->escape_buf[2] - 'a')); } else { @@ -782,7 +805,7 @@ ansi_parse_ansikey (ANSI * a, Context * c) } if ((p->escape_buf[2] >= '0') || (p->escape_buf[2] <= '9')) { - keydis_key (c->k, c, KEY_180 + (p->escape_buf[2] - '0')); + ansi_key (a, c, KEY_180 + (p->escape_buf[2] - '0')); } else { @@ -895,7 +918,7 @@ ansi_parse_char (ANSI * a, Context * c, int ch) } else { - keydis_key (c->k, c, ch); + ansi_key (a, c, ch); } } |