Subversion Repositories planix.SVN

Rev

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

#include <u.h>
#include <libc.h>
#include <draw.h>

/*
 * Default version: treat as file name
 */

Subfont*
_getsubfont(Display *d, char *name)
{
        int fd;
        Subfont *f;

        fd = open(name, OREAD);
                
        if(fd < 0){
                fprint(2, "getsubfont: can't open %s: %r\n", name);
                return 0;
        }
        /*
         * unlock display so i/o happens with display released, unless
         * user is doing his own locking, in which case this could break things.
         * _getsubfont is called only from string.c and stringwidth.c,
         * which are known to be safe to have this done.
         */
        if(d && d->locking == 0)
                unlockdisplay(d);
        f = readsubfont(d, name, fd, d && d->locking==0);
        if(d && d->locking == 0)
                lockdisplay(d);
        if(f == 0)
                fprint(2, "getsubfont: can't read %s: %r\n", name);
        close(fd);
        setmalloctag(f, getcallerpc(&d));
        return f;
}