From: <enl...@li...> - 2005-01-28 00:16:08
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: handlers.c Log Message: added support for Up Down Left Right. still part of a switch, we need to make them work in a better way =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/handlers.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- handlers.c 24 Jan 2005 10:57:27 -0000 1.1 +++ handlers.c 28 Jan 2005 00:15:18 -0000 1.2 @@ -346,13 +346,47 @@ unsigned int key_modifiers = 0; char *keyname = strdup(ev->keyname); Term *term = data; + char *buf = NULL; - if( write(term->cmd_fd.sys, ev->string, 1) < 0) { - fprintf(stderr, "Error writing to process: %m\n"); - //exit(2); + /* TODO: improve on this code because its stupid */ + if (!strcmp(ev->keyname, "Left")) { + buf = malloc(7); + snprintf(buf, sizeof(buf), "\033[D"); } + else if (!strcmp(ev->keyname, "Right")) { + buf = malloc(7); + snprintf(buf, sizeof(buf), "\033[C"); + } + else if (!strcmp(ev->keyname, "Down")) { + buf = malloc(7); + snprintf(buf, sizeof(buf), "\033[B"); + } + else if (!strcmp(ev->keyname, "Up")) { + buf = malloc(7); + snprintf(buf, sizeof(buf), "\033[A"); + } + else if (!strcmp(ev->keyname, "Home")) { + } + else if (!strcmp(ev->keyname, "End")) { + } + else if (!strcmp(ev->keyname, "BackSpace")) { + } + else if (!strcmp(ev->keyname, "Delete")) { + } + + if(buf) { + write(term->cmd_fd.sys, buf, strlen(buf)); + } else { + if( write(term->cmd_fd.sys, ev->string, 1) < 0) { + fprintf(stderr, "Error writing to process: %m\n"); + //exit(2); + } + } + return; + /* extra stuff, clean up later */ + if (evas_key_modifier_is_set_get(ev->modifiers, "Shift")) key_modifiers |= TERM_KEY_MODIFIER_SHIFT; else if (evas_key_modifier_is_set_get(ev->modifiers, "Alt")) |