ref: 13b1ea74932158069ab1f4c584db81477d9f3551
dir: /sys/src/cmd/tcs/font/font.c/
#include <u.h> #include <libc.h> #include <libg.h> #include <bio.h> #include "hdr.h" Subfont * bf(int n, int size, Bitmap *b, int *done) { Fontchar *fc; int i, j; Subfont *f; fc = (Fontchar *)malloc(sizeof(Fontchar)*(n+1)); if(fc == 0){ fprint(2, "%s: fontchar malloc(%d) failure\n", argv0, sizeof(Fontchar)*(n+1)); exits("fontchar malloc failure"); } j = 0; for(i = 0; i <= n; i++){ fc[i] = (Fontchar){j, 0, size, 0, size}; if(done[i]) j += size; else fc[i].width = 0; } fc[n] = (Fontchar){j, 0, size, 0, size}; f = subfalloc(n, size, size*7/8, fc, b, ~0, ~0); if(f == 0){ fprint(2, "%s: falloc failure\n", argv0); exits("falloc failure"); } return(f); }