#include <u.h> | |
#include <libc.h> | |
#include <draw.h> | |
static | |
void | |
packinfo(Fontchar *fc, uchar *p, int n) | |
{ | |
int j; | |
for(j=0; j<=n; j++){ | |
p[0] = fc->x; | |
p[1] = fc->x>>8; | |
p[2] = fc->top; | |
p[3] = fc->bottom; | |
p[4] = fc->left; | |
p[5] = fc->width; | |
fc++; | |
p += 6; | |
} | |
} | |
int | |
writesubfont(int fd, Subfont *f) | |
{ | |
char hdr[3*12+1]; | |
uchar *data; | |
int nb; | |
sprint(hdr, "%11d %11d %11d ", f->n, f->height, f->ascent); | |
if(write(fd, hdr, 3*12) != 3*12){ | |
Err: | |
werrstr("writesubfont: bad write: %r"); | |
return -1; | |
} | |
nb = 6*(f->n+1); | |
data = malloc(nb); | |
if(data == nil) | |
return -1; | |
packinfo(f->info, data, f->n); | |
if(write(fd, data, nb) != nb) | |
goto Err; | |
free(data); | |
return 0; | |
} |