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