12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * This file is part of the UCB release of Plan 9. It is subject to the license
- * terms in the LICENSE file found in the top-level directory of this
- * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
- * part of the UCB release of Plan 9, including this file, may be copied,
- * modified, propagated, or distributed except according to the terms contained
- * in the LICENSE file.
- */
- #include <u.h>
- #include <libc.h>
- #include <draw.h>
- Font*
- openfont(Display *d, char *name)
- {
- Font *fnt;
- int fd, i, n;
- char *buf;
- Dir *dir;
- fd = open(name, OREAD);
- if(fd < 0)
- return 0;
- dir = dirfstat(fd);
- if(dir == nil){
- Err0:
- close(fd);
- return 0;
- }
- n = dir->length;
- free(dir);
- buf = malloc(n+1);
- if(buf == 0)
- goto Err0;
- 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;
- }
- Font*
- opendefaultfont(Display *d)
- {
- Font *fnt;
- fnt = openfont(d, getenv("font"));
- if(fnt == nil)
- openfont(d, "/lib/font/bit/pelm/latin1.8.font");
- return fnt;
- }
|