*** empty log message ***
[h316.git] / pc-tools / fontgen / src / out.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <unistd.h>
5
6 #include "fontgen.h"
7
8 char buffer[100000];
9
10 #define WRITEF(...) { \
11 sprintf(buffer,__VA_ARGS__); \
12 write (1,buffer,strlen(buffer)); \
13 }
14
15
16 void op_point(pl_point * point){
17 WRITEF("\tOCT\t%06o\t",point->p_data);
18 // if (point->p_lift) WRITEF("LIFT PEN, ");
19 //else WRITEF(" ");
20 //WRITEF("MOVE TO (%i,%i)",point->p_x,point->p_y);
21 WRITEF("\n");
22 }
23
24 void op_glyph( pl_glyph * glyph){
25 WRITEF ("*");
26 if (glyph->gl_comment) WRITEF(" %s\n",glyph->gl_comment)
27 else WRITEF("\n")
28 if (glyph->gl_label)WRITEF(glyph->gl_label);
29 WRITEF("\tDEC\t%i\tGLYPH NUMBER\n",glyph->gl_number);
30 WRITEF("\tDEC\t%i\tNO OF POINTS IN GLYPH INCLUDING MARGINS\n",glyph->gl_size);
31 int i;
32 for (i=0; i<glyph->gl_size;i++) op_point(glyph->gl_points+i);
33 WRITEF("*\n");
34 }
35
36 void op_font( pl_font * font){
37 int i;
38
39 int size=4;
40 size+=2*font->f_size;
41 for (i=0; i<font->f_size;i++)size+=font->f_glyphs[i].gl_size;
42
43
44 WRITEF (
45 "* %s - FONT FILE GENERATED BY FONTGEN\n"
46 "*\n"
47 "*\n"
48 "* SIZE '%o (OCT)\n"
49 "* SIZE %i (DEC)\n"
50 "*\n*\n"
51 "********************************************************************\n"
52 "*\n*\n"
53 ,font->f_label,size,size);
54
55 WRITEF("\tSUBR\t%s,FNT\n",font->f_label);
56 WRITEF("\tREL\t\tTHIS IS A RELOCATEABLE OBJECT.\n");
57 WRITEF("\tORG\t0\n");
58 WRITEF("*\n*\n"
59 "********************************************************************\n"
60 "*\n*\n");
61
62 WRITEF ("*");
63 if (font->f_comment) WRITEF(" %s\n",font->f_comment)
64 else WRITEF("\n");
65 WRITEF("FNT");
66 // if (font->f_label)WRITEF(font->f_label);
67 WRITEF("\tDEC\t%i\tVERTICAL LINE SPACING FOR FONT\n",font->f_offset);
68 WRITEF("\tDAC\t**\tRESERVED FOR FUTURE USE\n");
69 WRITEF("\tDAC\t**\tRESERVED FOR FUTURE USE\n");
70 WRITEF("\tDAC\t**\tRESERVED FOR FUTURE USE\n");
71 WRITEF("*\n");
72 for (i=0; i<font->f_size;i++){
73 // WRITEF("Glyph:\n");
74 op_glyph(font->f_glyphs+i);
75 }
76 WRITEF("*\n");
77 WRITEF("\tEND\n");
78 }