|  | #include <u.h> | 
|  | #include <libc.h> | 
|  | #include <draw.h> | 
|  |  | 
|  | /* | 
|  | * Easy versions of the cache routines; may be substituted by fancier ones for other purposes | 
|  | */ | 
|  |  | 
|  | static char	*lastname; | 
|  | Subfont	*lastsubfont; | 
|  |  | 
|  | Subfont* | 
|  | lookupsubfont(Display *d, char *name) | 
|  | { | 
|  | if(d && strcmp(name, "*default*") == 0) | 
|  | return d->defaultsubfont; | 
|  | if(lastname && strcmp(name, lastname)==0) | 
|  | if(d==lastsubfont->bits->display){ | 
|  | lastsubfont->ref++; | 
|  | return lastsubfont; | 
|  | } | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | void | 
|  | installsubfont(char *name, Subfont *subfont) | 
|  | { | 
|  | free(lastname); | 
|  | lastname = strdup(name); | 
|  | lastsubfont = subfont;	/* notice we don't free the old one; that's your business */ | 
|  | } | 
|  |  | 
|  | void | 
|  | uninstallsubfont(Subfont *subfont) | 
|  | { | 
|  | if(subfont == lastsubfont){ | 
|  | lastname = 0; | 
|  | lastsubfont = 0; | 
|  | } | 
|  | } |