File: bifont.h

package info (click to toggle)
dvi2dvi 2.0alpha-9.1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 412 kB
  • ctags: 1,163
  • sloc: ansic: 6,401; makefile: 127; sh: 8
file content (190 lines) | stat: -rw-r--r-- 4,290 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#define	LASTTFMCHAR	255
#define	NTFMCHARS	256

struct tfmchar_entry {		/* character entry */
    short dev_font, dev_char;
    int tfmw;			/* TFM width */
};

struct tfmfntinfo {
    struct bifont *tfm_bf;
    int lastfntchar;
    struct tfmchar_entry ch[NTFMCHARS];	/* character information */
};

#ifdef ANSI
#define	tfmfinfo(fe)	(*(struct tfmfntinfo **)&(fe->finfo))
#else
#define	tfmfinfo(fe)	((struct tfmfntinfo *)(fe->finfo))
#endif


struct jstfmchar_entry {	/* character entry */
    unsigned short dev_ku, dev_ten;
    int tfmw;			/* TFM width */
};

struct jstfmfntinfo {
    struct bifont *js_bf;	/* = js_share->jss_bf */
    int lastfntchar;
    struct jstfmchar_entry ch[LASTTFMCHAR+1];	/* character information */
    short jsubfont;
    short dev_font;		/* = js_share->jss_dev_font */
    struct jssinfo *js_info;	/* = js_share->jss_info */
    struct jsubshare *js_share;
};

#ifdef ANSI
#define	jstfmfinfo(fe)	(*(struct jstfmfntinfo **)&(fe->finfo))
#else
#define	jstfmfinfo(fe)	((struct jstfmfntinfo *)(fe->finfo))
#endif


#define	JFM_ID		11
#define	TJFM_ID		9

struct jfmtype_entry {		/* character type entry */
    int jfm_code;
    int jfm_type;
};

struct jfmchar_entry {		/* character entry */
    int tfmw;			/* TFM width */
};

struct jfmfntinfo {
    struct bifont *jfm_bf;
    int nctype;
    struct jfmtype_entry *ctype;	/* character type information */
    int lasttypecode;
    struct jfmchar_entry *ch;	/* character information indexed by type */
};

#ifdef ANSI
#define	jfmfinfo(fe)	(*(struct jfmfntinfo **)&(fe->finfo))
#else
#define	jfmfinfo(fe)	((struct jfmfntinfo *)(fe->finfo))
#endif


#ifdef UNDEF
struct wlchar_entry {		/* character entry */
    short dev_font, dev_char;
    int tfmw;			/* TFM width */
};

struct wlfntinfo {
    struct bifont *wl_bf;
    int nfntchars;
    struct wlchar_entry ch[1];	/* character information	*/
};

#ifdef ANSI
#define	wlfinfo(fe)	(*(struct wlfntinfo **)&(fe->finfo))
#else
#define	wlfinfo(fe)	((struct wlfntinfo *)(fe->finfo))
#endif

#ifdef ANSI
#define	jswlfinfo(jsfi)	(*(struct wlfntinfo **)&(jsfi->js_info))
#else
#define	jswlfinfo(jsfi)	((struct wlfntinfo *)(jsfi->js_info))
#endif


#define	jftchar_entry	wlchar_entry

struct jftfntinfo {
    struct bifont *jft_bf;
    int nfntchars;
    int width;
    int height;
    int depth;
    struct jftchar_entry ch[1];	/* character information	*/
};

#ifdef ANSI
#define	jftfinfo(fe)	(*(struct jftfntinfo **)&(fe->finfo))
#else
#define	jftfinfo(fe)	((struct jftfntinfo *)(fe->finfo))
#endif

#ifdef ANSI
#define	jsftfinfo(jsfi)	(*(struct jftfntinfo **)&(jsfi->js_info))
#else
#define	jsftfinfo(jsfi)	((struct jftfntinfo *)(jsfi->js_info))
#endif


#define	vflfntinfo	jftfntinfo
#define	vfl_bf		jft_bf
#define	vflchar_entry	jftchar_entry

#ifdef ANSI
#define	vflfinfo(fe)	(*(struct vflfntinfo **)&(fe->finfo))
#else
#define	vflfinfo(fe)	((struct vflfntinfo *)(fe->finfo))
#endif

#ifdef ANSI
#define	jsvflfinfo(jsfi)	(*(struct vflfntinfo **)&(jsfi->js_info))
#else
#define	jsvflfinfo(jsfi)	((struct vflfntinfo *)(jsfi->js_info))
#endif
#endif


/* struct to share subfont information
 */
#define	JSS_CLOSED	0
#define	JSS_INIT	1
#define	JSS_READ	2

struct jsubshare {
    int jss_stat;
    struct bifont *jss_bf;
    int jss_s;
    int jss_dev_font;		/* jstfm */
    struct jssinfo *jss_info;	/* jstfm wadalab */
    struct jsubshare *jss_next;
};


/* used to pass information from access to initfontinfo */
struct biaccessinfo {
    struct bifont *bf;
    short jsubf;
};

/* used to pass marking information from initfontinfo to readfontinfo */
struct biinitfontinfo {
    struct bifont *bf;
    int maxc;
    Boolean mark[1];
};

#ifdef ANSI
#define	biaccinfo(fe)	(*(struct biaccessinfo **)&(fe->finfo))
#define	biinifinfo(fe)	(*(struct biinitfontinfo **)&(fe->finfo))
#define	bfinfo(fe)	(*(struct bifont **)&(fe->finfo))
#else
#define	biaccinfo(fe)	((struct biaccessinfo *)(fe->finfo))
#define	biinifinfo(fe)	((struct biinitfontinfo *)(fe->finfo))
#define	bfinfo(fe)	((struct bifont *)(fe->finfo))
#endif


struct biinitfontinfo *alloc_biinif();


/*
 * Interface with device driver (only `non-standard' ones are listed)
 */
/* psbi.c */
int dev_is_tfm();
int dev_is_jstfm();
int dev_jstfm_kind();
int dev_getjsubfont();
int dev_is_jfm();
int dev_jfm_kind();