#include <libc.h>
#include <draw.h>
#include <event.h>
+#include <keyboard.h>
typedef struct KbMap KbMap;
struct KbMap {
{
int i, fd, nr;
Dir *pd;
- char buf[128];
if((fd = open(dir, OREAD)) < 0)
return;
nmap = nr = dirreadall(fd, &pd);
map = emalloc(nr * sizeof(KbMap));
for(i=0; i<nr; i++){
- sprint(buf, "%s/%s", dir, pd[i].name);
- map[i].file = estrdup(buf);
+ map[i].file = emalloc(strlen(dir) + strlen(pd[i].name) + 2);
+ sprint(map[i].file, "%s/%s", dir, pd[i].name);
map[i].name = estrdup(pd[i].name);
map[i].current = 0;
}
} else
init();
- initdraw(0, 0, "kbmap");
+ if(initdraw(0, 0, "kbmap") < 0){
+ fprint(2, "kbmap: initdraw failed: %r\n");
+ exits("initdraw");
+ }
lightblue = allocimagemix(display, DPalebluegreen, DWhite);
if(lightblue == nil)
sysfatal("allocimagemix: %r");
for(;;){
switch(eread(Emouse|Ekeyboard, &e)){
case Ekeyboard:
- if(e.kbdc==0x7F || e.kbdc=='q')
+ if(e.kbdc==Kdel || e.kbdc=='q')
exits(0);
break;
case Emouse: