int ecankbd(void) { if(Skeyboard < 0) drawerror(display, "events: keyboard not initialzed"); return ecanread(Ekeyboard); }
int ecanmouse(void) { if(Smouse < 0) drawerror(display, "events: mouse not initialized"); return ecanread(Emouse); }
Keystroke kbdchar(void) { Keystroke k = {0}; static Event e; k.c = externchar(); if(k.c > 0) return k; if(got & Ekeyboard){ k = keystroke; memset(&keystroke, 0, sizeof(keystroke)); got &= ~Ekeyboard; return k; } while(ecanread(Eextern)){ eread(Eextern, &e); externload(&e); k.c = externchar(); if(k.c > 0) return k; } if(!ecankbd()){ k.c = -1; return k; } return ekbd(); }