]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libdraw/openfont.c
libthread: remove unused internal functions and old xinc assembler files
[plan9front.git] / sys / src / libdraw / openfont.c
1 #include <u.h>
2 #include <libc.h>
3 #include <draw.h>
4
5 Font*
6 openfont(Display *d, char *name)
7 {
8         Font *fnt;
9         int fd, i, n;
10         char *buf;
11         Dir *dir;
12
13         fd = open(name, OREAD);
14         if(fd < 0)
15                 return 0;
16
17         dir = dirfstat(fd);
18         if(dir == nil){
19     Err0:
20                 close(fd);
21                 return 0;
22         }
23         n = dir->length;
24         free(dir);
25         buf = malloc(n+1);
26         if(buf == 0)
27                 goto Err0;
28         buf[n] = 0;
29         i = read(fd, buf, n);
30         close(fd);
31         if(i != n){
32                 free(buf);
33                 return 0;
34         }
35         fnt = buildfont(d, buf, name);
36         free(buf);
37         return fnt;
38 }