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 d4aef6a0 2005-05-12 devnull char *t, *u, *tmp1, *tmp2;
15 d4aef6a0 2005-05-12 devnull t = strdup(cfname); /* t is the return string */
16 76193d7c 2003-09-30 devnull if(strcmp(cfname, "*default*") == 0)
17 d4aef6a0 2005-05-12 devnull return t;
18 76193d7c 2003-09-30 devnull if(t[0] != '/'){
19 d4aef6a0 2005-05-12 devnull tmp2 = strdup(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 d4aef6a0 2005-05-12 devnull tmp1 = smprint("%s/%s", tmp2, t);
26 d4aef6a0 2005-05-12 devnull free(tmp2);
28 76193d7c 2003-09-30 devnull t = tmp1;
31 76193d7c 2003-09-30 devnull if(maxdepth > 8)
32 76193d7c 2003-09-30 devnull maxdepth = 8;
34 161060a4 2003-10-11 devnull for(i=3; i>=0; i--){
35 161060a4 2003-10-11 devnull if((1<<i) > maxdepth)
36 161060a4 2003-10-11 devnull continue;
37 76193d7c 2003-09-30 devnull /* try i-bit grey */
38 d4aef6a0 2005-05-12 devnull tmp2 = smprint("%s.%d", t, i);
39 d4aef6a0 2005-05-12 devnull if(access(tmp2, AREAD) == 0) {
41 d4aef6a0 2005-05-12 devnull return tmp2;
45 76193d7c 2003-09-30 devnull /* try default */
46 76193d7c 2003-09-30 devnull if(access(t, AREAD) == 0)
47 d4aef6a0 2005-05-12 devnull return t;
49 76193d7c 2003-09-30 devnull return nil;