1 76193d7c 2003-09-30 devnull #include <u.h>
2 76193d7c 2003-09-30 devnull #include <libc.h>
3 76193d7c 2003-09-30 devnull #include <draw.h>
6 76193d7c 2003-09-30 devnull * Default version: convert to file name
10 76193d7c 2003-09-30 devnull subfontname(char *cfname, char *fname, int maxdepth)
12 76193d7c 2003-09-30 devnull char *t, *u, tmp1[64], tmp2[64];
15 76193d7c 2003-09-30 devnull if(strcmp(cfname, "*default*") == 0)
16 76193d7c 2003-09-30 devnull return strdup(cfname);
17 76193d7c 2003-09-30 devnull t = cfname;
18 76193d7c 2003-09-30 devnull if(t[0] != '/'){
19 76193d7c 2003-09-30 devnull snprint(tmp2, sizeof tmp2, "%s", fname);
20 76193d7c 2003-09-30 devnull u = utfrrune(tmp2, '/');
22 76193d7c 2003-09-30 devnull u[0] = 0;
24 76193d7c 2003-09-30 devnull strcpy(tmp2, ".");
25 76193d7c 2003-09-30 devnull snprint(tmp1, sizeof tmp1, "%s/%s", tmp2, t);
26 76193d7c 2003-09-30 devnull t = tmp1;
29 76193d7c 2003-09-30 devnull if(maxdepth > 8)
30 76193d7c 2003-09-30 devnull maxdepth = 8;
32 161060a4 2003-10-11 devnull for(i=3; i>=0; i--){
33 161060a4 2003-10-11 devnull if((1<<i) > maxdepth)
34 161060a4 2003-10-11 devnull continue;
35 76193d7c 2003-09-30 devnull /* try i-bit grey */
36 76193d7c 2003-09-30 devnull snprint(tmp2, sizeof tmp2, "%s.%d", t, i);
37 76193d7c 2003-09-30 devnull if(access(tmp2, AREAD) == 0)
38 76193d7c 2003-09-30 devnull return strdup(tmp2);
41 76193d7c 2003-09-30 devnull /* try default */
42 76193d7c 2003-09-30 devnull if(access(t, AREAD) == 0)
43 76193d7c 2003-09-30 devnull return strdup(t);
45 76193d7c 2003-09-30 devnull return nil;