1 /* font_routines.h: Data structures for virtual font support.
2 
3 This file is part of Omega,
4 which is based on the web2c distribution of TeX,
5 
6 Copyright (c) 1994--2001 John Plaice and Yannis Haralambous
7 
8 Omega is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12 
13 Omega is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with Omega; if not, write to the Free Software Foundation, Inc.,
20 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
21 
22 */
23 
24 typedef struct font_struct {
25     int font_number;
26     unsigned font_checksum;
27     double font_dsize;
28     string font_name;
29     string font_area;
30     fix font_at;
31     unsigned char *ovf_packet;
32     unsigned ovf_packet_length;
33     boolean font_at_defined;
34     boolean font_dsize_defined;
35     boolean font_checksum_defined;
36 } font;
37 
38 typedef struct move_struct {
39     fix wfix;
40     fix xfix;
41     fix yfix;
42     fix zfix;
43     unsigned h;
44     unsigned v;
45 } move;
46 
47 extern font *font_table;
48 extern unsigned no_fonts;
49 extern unsigned cur_font_index;
50 extern font *cur_font;
51 
52 extern string vtitle;
53 
54 extern unsigned packet_table_size;
55 extern unsigned char *packet_table;
56 extern unsigned char *cur_packet;
57 extern unsigned packet_ptr;
58 
59 extern void init_map_font(int);
60 extern void set_font_name(string);
61 extern void set_font_area(string);
62 extern void set_font_check_sum(unsigned);
63 extern void set_font_at(fix);
64 extern void set_font_design_size(fix);
65 
66 extern void set_vtitle(string );
67 extern void init_map(void);
68 extern void end_map(void);
69 extern void set_select_font(unsigned);
70 extern void set_set_char(unsigned);
71 extern void set_set_rule(fix, fix);
72 extern void set_move(unsigned, fix);
73 extern void set_push(void);
74 extern void set_pop(void);
75 extern void set_special(string );
76 extern void set_special_hex(string );
77 
78 extern void font_table_init(void);
79 
80 extern void out_ovf(unsigned);
81 extern void out_ovf_4(unsigned);
82 
83 extern int ovf_get_arg(unsigned char **, unsigned,boolean);
84 extern void input_ovf_fonts(void);
85 extern void input_ovf_chars(void);
86 extern void input_ovf_file(void);
87