summaryrefslogtreecommitdiffstats
path: root/src/cmd/tcs/font/font.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/tcs/font/font.c')
-rw-r--r--src/cmd/tcs/font/font.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/cmd/tcs/font/font.c b/src/cmd/tcs/font/font.c
new file mode 100644
index 00000000..75e25128
--- /dev/null
+++ b/src/cmd/tcs/font/font.c
@@ -0,0 +1,34 @@
+#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);
+}