]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/cmd/kbmap.c
stats: show amount of reclaimable pages (add -r flag)
[plan9front.git] / sys / src / cmd / kbmap.c
index d5cc9938733c5ced1586c9025fb4a4702f9473fb..c621edc3997c2b6ffccd4ca3bee39964ede06be8 100644 (file)
@@ -2,6 +2,7 @@
 #include <libc.h>
 #include <draw.h>
 #include <event.h>
+#include <keyboard.h>
 
 typedef struct KbMap KbMap;
 struct KbMap {
@@ -64,7 +65,6 @@ init(void)
 {
        int i, fd, nr;
        Dir *pd;
-       char buf[128];
 
        if((fd = open(dir, OREAD)) < 0)
                return;
@@ -72,8 +72,8 @@ init(void)
        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;
        }
@@ -229,7 +229,10 @@ main(int argc, char **argv)
        } 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");
@@ -243,7 +246,7 @@ main(int argc, char **argv)
        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: