Blame


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>
4 76193d7c 2003-09-30 devnull
5 76193d7c 2003-09-30 devnull /*
6 76193d7c 2003-09-30 devnull * Default version: convert to file name
7 76193d7c 2003-09-30 devnull */
8 76193d7c 2003-09-30 devnull
9 76193d7c 2003-09-30 devnull char*
10 76193d7c 2003-09-30 devnull subfontname(char *cfname, char *fname, int maxdepth)
11 76193d7c 2003-09-30 devnull {
12 76193d7c 2003-09-30 devnull char *t, *u, tmp1[64], tmp2[64];
13 76193d7c 2003-09-30 devnull int i;
14 76193d7c 2003-09-30 devnull
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, '/');
21 76193d7c 2003-09-30 devnull if(u)
22 76193d7c 2003-09-30 devnull u[0] = 0;
23 76193d7c 2003-09-30 devnull else
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;
27 76193d7c 2003-09-30 devnull }
28 76193d7c 2003-09-30 devnull
29 76193d7c 2003-09-30 devnull if(maxdepth > 8)
30 76193d7c 2003-09-30 devnull maxdepth = 8;
31 76193d7c 2003-09-30 devnull
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);
39 76193d7c 2003-09-30 devnull }
40 76193d7c 2003-09-30 devnull
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);
44 76193d7c 2003-09-30 devnull
45 76193d7c 2003-09-30 devnull return nil;
46 76193d7c 2003-09-30 devnull }