xref: /plan9/sys/src/cmd/unix/drawterm/libmemdraw/subfont.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1*8ccd4a63SDavid du Colombier #include <u.h>
2*8ccd4a63SDavid du Colombier #include <libc.h>
3*8ccd4a63SDavid du Colombier #include <draw.h>
4*8ccd4a63SDavid du Colombier #include <memdraw.h>
57dd7cddfSDavid du Colombier 
67dd7cddfSDavid du Colombier Memsubfont*
allocmemsubfont(char * name,int n,int height,int ascent,Fontchar * info,Memimage * i)77dd7cddfSDavid du Colombier allocmemsubfont(char *name, int n, int height, int ascent, Fontchar *info, Memimage *i)
87dd7cddfSDavid du Colombier {
97dd7cddfSDavid du Colombier 	Memsubfont *f;
107dd7cddfSDavid du Colombier 
117dd7cddfSDavid du Colombier 	f = malloc(sizeof(Memsubfont));
127dd7cddfSDavid du Colombier 	if(f == 0)
137dd7cddfSDavid du Colombier 		return 0;
147dd7cddfSDavid du Colombier 	f->n = n;
157dd7cddfSDavid du Colombier 	f->height = height;
167dd7cddfSDavid du Colombier 	f->ascent = ascent;
177dd7cddfSDavid du Colombier 	f->info = info;
187dd7cddfSDavid du Colombier 	f->bits = i;
197dd7cddfSDavid du Colombier 	if(name)
207dd7cddfSDavid du Colombier 		f->name = strdup(name);
217dd7cddfSDavid du Colombier 	else
227dd7cddfSDavid du Colombier 		f->name = 0;
237dd7cddfSDavid du Colombier 	return f;
247dd7cddfSDavid du Colombier }
257dd7cddfSDavid du Colombier 
267dd7cddfSDavid du Colombier void
freememsubfont(Memsubfont * f)277dd7cddfSDavid du Colombier freememsubfont(Memsubfont *f)
287dd7cddfSDavid du Colombier {
297dd7cddfSDavid du Colombier 	if(f == 0)
307dd7cddfSDavid du Colombier 		return;
317dd7cddfSDavid du Colombier 	free(f->info);	/* note: f->info must have been malloc'ed! */
327dd7cddfSDavid du Colombier 	freememimage(f->bits);
337dd7cddfSDavid du Colombier 	free(f);
347dd7cddfSDavid du Colombier }
35