#include #include "config.h" #include "aalib.h" struct aa_kbddriver *aa_kbddrivers[] = { #ifdef DJGPP &kbd_dos_d, #else #ifdef X11_KBDDRIVER &kbd_X11_d, #endif #ifdef SLANG_KBDDRIVER &kbd_slang_d, #endif #ifdef CURSES_KBDDRIVER &kbd_curses_d, #endif #endif &kbd_stdin_d, NULL }; int aa_autoinitkbd(struct aa_context *context, int mode) { int i = 0; int ok = 0; char *t; while ((t = aa_getfirst(&aa_kbdrecommended)) != NULL) { if (!ok) { for (i = 0; aa_kbddrivers[i] != NULL; i++) { if (!strcmp(t, aa_kbddrivers[i]->name) || !strcmp(t, aa_kbddrivers[i]->shortname)) { ok = aa_initkbd(context, aa_kbddrivers[i], mode); break; } } if (aa_kbddrivers[i] == NULL) printf("Driver %s unknown", t); free(t); } } i = 0; if (!ok) while (aa_kbddrivers[i] != NULL) { if (aa_initkbd(context, aa_kbddrivers[i], mode)) { return 1; } i++; } return (ok); }