Blob
1 #include <u.h>2 #include <libc.h>3 #include <draw.h>4 #include <bio.h>6 static ulong7 getval(char **p)8 {9 ulong v;10 char *q;12 v = strtoul(*p, &q, 0);13 v |= v<<8;14 v |= v<<16;15 *p = q;16 return v;17 }19 void20 readcolmap(Display *d, RGB *colmap)21 {22 int i;23 char *p, *q;24 Biobuf *b;25 char buf[128];27 USED(screen);29 sprint(buf, "/dev/draw/%d/colormap", d->dirno);30 b = Bopen(buf, OREAD);31 if(b == 0)32 drawerror(d, "rdcolmap: can't open colormap device");34 for(;;) {35 p = Brdline(b, '\n');36 if(p == 0)37 break;38 i = strtoul(p, &q, 0);39 if(i < 0 || i > 255) {40 fprint(2, "rdcolmap: bad index\n");41 exits("bad");42 }43 p = q;44 colmap[255-i].red = getval(&p);45 colmap[255-i].green = getval(&p);46 colmap[255-i].blue = getval(&p);47 }48 Bterm(b);49 }