17dd7cddfSDavid du Colombier #include <u.h> 27dd7cddfSDavid du Colombier #include <libc.h> 37dd7cddfSDavid du Colombier #include <draw.h> 47dd7cddfSDavid du Colombier 57dd7cddfSDavid du Colombier /* 67dd7cddfSDavid du Colombier * Easy versions of the cache routines; may be substituted by fancier ones for other purposes 77dd7cddfSDavid du Colombier */ 87dd7cddfSDavid du Colombier 97dd7cddfSDavid du Colombier static char *lastname; 107dd7cddfSDavid du Colombier Subfont *lastsubfont; 117dd7cddfSDavid du Colombier 127dd7cddfSDavid du Colombier Subfont* lookupsubfont(Display * d,char * name)137dd7cddfSDavid du Colombierlookupsubfont(Display *d, char *name) 147dd7cddfSDavid du Colombier { 15*b8661318SDavid du Colombier if(d && strcmp(name, "*default*") == 0) 167dd7cddfSDavid du Colombier return d->defaultsubfont; 17*b8661318SDavid du Colombier if(lastname && strcmp(name, lastname)==0) 18*b8661318SDavid du Colombier if(d==lastsubfont->bits->display){ 1980ee5cbfSDavid du Colombier lastsubfont->ref++; 207dd7cddfSDavid du Colombier return lastsubfont; 2180ee5cbfSDavid du Colombier } 227dd7cddfSDavid du Colombier return 0; 237dd7cddfSDavid du Colombier } 247dd7cddfSDavid du Colombier 257dd7cddfSDavid du Colombier void installsubfont(char * name,Subfont * subfont)267dd7cddfSDavid du Colombierinstallsubfont(char *name, Subfont *subfont) 277dd7cddfSDavid du Colombier { 287dd7cddfSDavid du Colombier free(lastname); 297dd7cddfSDavid du Colombier lastname = strdup(name); 307dd7cddfSDavid du Colombier lastsubfont = subfont; /* notice we don't free the old one; that's your business */ 317dd7cddfSDavid du Colombier } 327dd7cddfSDavid du Colombier 337dd7cddfSDavid du Colombier void uninstallsubfont(Subfont * subfont)347dd7cddfSDavid du Colombieruninstallsubfont(Subfont *subfont) 357dd7cddfSDavid du Colombier { 367dd7cddfSDavid du Colombier if(subfont == lastsubfont){ 377dd7cddfSDavid du Colombier lastname = 0; 387dd7cddfSDavid du Colombier lastsubfont = 0; 397dd7cddfSDavid du Colombier } 407dd7cddfSDavid du Colombier } 41