URI: 
       tRewrite /lib/font/bit to $PLAN9/font when open fails. - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit e6f4b2e311cd461dd2d8380ba21ab113e5c8c072
   DIR parent a3c5df578fea1ccd9095ec08232b2c862e875f29
  HTML Author: rsc <devnull@localhost>
       Date:   Mon, 13 Oct 2003 17:16:15 +0000
       
       Rewrite /lib/font/bit to $PLAN9/font when open fails.
       
       Diffstat:
         M src/libdraw/openfont.c              |      23 ++++++++++++++++++++++-
       
       1 file changed, 22 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/src/libdraw/openfont.c b/src/libdraw/openfont.c
       t@@ -9,9 +9,27 @@ openfont(Display *d, char *name)
        {
                Font *fnt;
                int fd, i, n;
       -        char *buf;
       +        char *buf, *nambuf, *root;
        
       +        nambuf = 0;
                fd = open(name, OREAD);
       +
       +        if(fd < 0 && strncmp(name, "/lib/font/bit/", 14) == 0){
       +                root = getenv("PLAN9");
       +                if(root == nil)
       +                        return 0;
       +                nambuf = malloc(strlen(root)+5+strlen(name+13)+1);
       +                if(nambuf == nil)
       +                        return 0;
       +                strcpy(nambuf, root);
       +                strcat(nambuf, "/font");
       +                strcat(nambuf, name+13);
       +                if((fd = open(nambuf, OREAD)) < 0){
       +                        free(nambuf);
       +                        return 0;
       +                }
       +                name = nambuf;
       +        }
                if(fd < 0)
                        return 0;
        
       t@@ -19,6 +37,7 @@ openfont(Display *d, char *name)
                buf = malloc(n+1);
                if(buf == 0){
                        close(fd);
       +                free(nambuf);
                        return 0;
                }
                buf[n] = 0;
       t@@ -26,9 +45,11 @@ openfont(Display *d, char *name)
                close(fd);
                if(i != n){
                        free(buf);
       +                free(nambuf);
                        return 0;
                }
                fnt = buildfont(d, buf, name);
                free(buf);
       +        free(nambuf);
                return fnt;
        }