Blame


1 76193d7c 2003-09-30 devnull #include <u.h>
2 76193d7c 2003-09-30 devnull #include <libc.h>
3 76193d7c 2003-09-30 devnull #include <draw.h>
4 76193d7c 2003-09-30 devnull
5 76193d7c 2003-09-30 devnull Font*
6 76193d7c 2003-09-30 devnull openfont(Display *d, char *name)
7 76193d7c 2003-09-30 devnull {
8 76193d7c 2003-09-30 devnull Font *fnt;
9 76193d7c 2003-09-30 devnull int fd, i, n;
10 76193d7c 2003-09-30 devnull char *buf;
11 76193d7c 2003-09-30 devnull
12 76193d7c 2003-09-30 devnull fd = open(name, OREAD);
13 76193d7c 2003-09-30 devnull if(fd < 0)
14 76193d7c 2003-09-30 devnull return 0;
15 76193d7c 2003-09-30 devnull
16 76193d7c 2003-09-30 devnull n = flength(fd);
17 76193d7c 2003-09-30 devnull buf = malloc(n+1);
18 76193d7c 2003-09-30 devnull if(buf == 0){
19 76193d7c 2003-09-30 devnull close(fd);
20 76193d7c 2003-09-30 devnull return 0;
21 76193d7c 2003-09-30 devnull }
22 76193d7c 2003-09-30 devnull buf[n] = 0;
23 76193d7c 2003-09-30 devnull i = read(fd, buf, n);
24 76193d7c 2003-09-30 devnull close(fd);
25 76193d7c 2003-09-30 devnull if(i != n){
26 76193d7c 2003-09-30 devnull free(buf);
27 76193d7c 2003-09-30 devnull return 0;
28 76193d7c 2003-09-30 devnull }
29 76193d7c 2003-09-30 devnull fnt = buildfont(d, buf, name);
30 76193d7c 2003-09-30 devnull free(buf);
31 76193d7c 2003-09-30 devnull return fnt;
32 76193d7c 2003-09-30 devnull }