Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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
}