1*7dd7cddfSDavid du Colombier #include <u.h>
2*7dd7cddfSDavid du Colombier #include <libc.h>
3*7dd7cddfSDavid du Colombier #include <libg.h>
4*7dd7cddfSDavid du Colombier #include <bio.h>
5*7dd7cddfSDavid du Colombier #include "hdr.h"
6*7dd7cddfSDavid du Colombier
7*7dd7cddfSDavid du Colombier Subfont *
bf(int n,int size,Bitmap * b,int * done)8*7dd7cddfSDavid du Colombier bf(int n, int size, Bitmap *b, int *done)
9*7dd7cddfSDavid du Colombier {
10*7dd7cddfSDavid du Colombier Fontchar *fc;
11*7dd7cddfSDavid du Colombier int i, j;
12*7dd7cddfSDavid du Colombier Subfont *f;
13*7dd7cddfSDavid du Colombier
14*7dd7cddfSDavid du Colombier fc = (Fontchar *)malloc(sizeof(Fontchar)*(n+1));
15*7dd7cddfSDavid du Colombier if(fc == 0){
16*7dd7cddfSDavid du Colombier fprint(2, "%s: fontchar malloc(%d) failure\n", argv0, sizeof(Fontchar)*(n+1));
17*7dd7cddfSDavid du Colombier exits("fontchar malloc failure");
18*7dd7cddfSDavid du Colombier }
19*7dd7cddfSDavid du Colombier j = 0;
20*7dd7cddfSDavid du Colombier for(i = 0; i <= n; i++){
21*7dd7cddfSDavid du Colombier fc[i] = (Fontchar){j, 0, size, 0, size};
22*7dd7cddfSDavid du Colombier if(done[i])
23*7dd7cddfSDavid du Colombier j += size;
24*7dd7cddfSDavid du Colombier else
25*7dd7cddfSDavid du Colombier fc[i].width = 0;
26*7dd7cddfSDavid du Colombier }
27*7dd7cddfSDavid du Colombier fc[n] = (Fontchar){j, 0, size, 0, size};
28*7dd7cddfSDavid du Colombier f = subfalloc(n, size, size*7/8, fc, b, ~0, ~0);
29*7dd7cddfSDavid du Colombier if(f == 0){
30*7dd7cddfSDavid du Colombier fprint(2, "%s: falloc failure\n", argv0);
31*7dd7cddfSDavid du Colombier exits("falloc failure");
32*7dd7cddfSDavid du Colombier }
33*7dd7cddfSDavid du Colombier return(f);
34*7dd7cddfSDavid du Colombier }
35