#include <u.h> | |
#include <libc.h> | |
#include <draw.h> | |
extern vlong _drawflength(int); | |
Font* | |
openfont(Display *d, char *name) | |
{ | |
Font *fnt; | |
int fd, i, n; | |
char *buf; | |
fd = open(name, OREAD); | |
if(fd < 0) | |
return 0; | |
n = _drawflength(fd); | |
buf = malloc(n+1); | |
if(buf == 0){ | |
close(fd); | |
return 0; | |
} | |
buf[n] = 0; | |
i = read(fd, buf, n); | |
close(fd); | |
if(i != n){ | |
free(buf); | |
return 0; | |
} | |
fnt = buildfont(d, buf, name); | |
free(buf); | |
return fnt; | |
} |