1 #include <u.h> 2 #include <libc.h> 3 #include <draw.h> 4 5 /* 6 * Easy versions of the cache routines; may be substituted by fancier ones for other purposes 7 */ 8 9 static char *lastname; 10 Subfont *lastsubfont; 11 12 Subfont* lookupsubfont(Display * d,char * name)13lookupsubfont(Display *d, char *name) 14 { 15 if(d && strcmp(name, "*default*") == 0) 16 return d->defaultsubfont; 17 if(lastname && strcmp(name, lastname)==0) 18 if(d==lastsubfont->bits->display){ 19 lastsubfont->ref++; 20 return lastsubfont; 21 } 22 return 0; 23 } 24 25 void installsubfont(char * name,Subfont * subfont)26installsubfont(char *name, Subfont *subfont) 27 { 28 free(lastname); 29 lastname = strdup(name); 30 lastsubfont = subfont; /* notice we don't free the old one; that's your business */ 31 } 32 33 void uninstallsubfont(Subfont * subfont)34uninstallsubfont(Subfont *subfont) 35 { 36 if(subfont == lastsubfont){ 37 lastname = 0; 38 lastsubfont = 0; 39 } 40 } 41