X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fkeydis.c;h=73f6306213268b184eb3f2de47cb53144372894a;hb=cd3c335082e66f9a790a5bbb0f24a7ec49c9d3d5;hp=33eef20c7d9278880c118242041f2df5016b1a70;hpb=8a1addb4968e2aca9b801b09e5c8c640233dfa6e;p=sympathy.git diff --git a/src/keydis.c b/src/keydis.c index 33eef20..73f6306 100644 --- a/src/keydis.c +++ b/src/keydis.c @@ -10,6 +10,12 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.4 2008/02/22 17:07:00 james + * *** empty log message *** + * + * Revision 1.3 2008/02/15 23:52:12 james + * *** empty log message *** + * * Revision 1.2 2008/02/15 03:32:07 james * *** empty log message *** * @@ -83,6 +89,30 @@ keydis_ipc_set_flow (KeyDis * _t, Context * c, int flow) return 0; } + +static int +keydis_ipc_set_ansi (KeyDis * _t, Context * c, int ansi) +{ + KeyDis_IPC *t = (KeyDis_IPC *) _t; + + vt102_set_ansi (c->v, ansi); + + ipc_msg_send_setansi (t->s, ansi); + + return 0; +} + + +static int +keydis_ipc_hangup (KeyDis * _t, Context * c) +{ + KeyDis_IPC *t = (KeyDis_IPC *) _t; + + ipc_msg_send_hangup (t->s); + + return 0; +} + static int keydis_vt102_key (KeyDis * _t, Context * c, int key) { @@ -122,6 +152,27 @@ keydis_vt102_set_flow (KeyDis * _t, Context * c, int flow) return 0; } +static int +keydis_vt102_set_ansi (KeyDis * _t, Context * c, int ansi) +{ + KeyDis_VT102 *t = (KeyDis_VT102 *) _t; + + if (c->v) + c->v->xn_glitch=ansi ? 0:1; + return 0; +} + + +static int +keydis_vt102_hangup (KeyDis * _t, Context * c) +{ + KeyDis_VT102 *t = (KeyDis_VT102 *) _t; + + tty_hangup (c->t); + + return 0; +} + KeyDis * @@ -133,6 +184,8 @@ keydis_vt102_new (void) t->set_baud = keydis_vt102_set_baud; t->send_break = keydis_vt102_send_break; t->set_flow = keydis_vt102_set_flow; + t->set_ansi = keydis_vt102_set_ansi; + t->hangup = keydis_vt102_hangup; return (KeyDis *) t; } @@ -146,6 +199,8 @@ keydis_ipc_new (Socket * s) t->set_baud = keydis_ipc_set_baud; t->send_break = keydis_ipc_send_break; t->set_flow = keydis_ipc_set_flow; + t->set_ansi = keydis_ipc_set_ansi; + t->hangup = keydis_ipc_hangup; t->s = s; return (KeyDis *) t; }