xref: /plan9/sys/src/cmd/tcs/font/font.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
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