~ubuntu-branches/ubuntu/jaunty/luatex/jaunty

« back to all changes in this revision

Viewing changes to src/texk/web2c/luatexdir/font/texfont.h

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Preining
  • Date: 2008-07-07 11:01:13 UTC
  • mfrom: (1.1.5 upstream) (4.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080707110113-1y7lam37zbbb7bbt
Tags: 0.28.0-1
* two new upstream releases, see the respective ANNOUCE files
* add luasocket license statement to debian/copyright
* activate the pdfluatex format
* prepare for latex based formats
  - add the ini files from TeX Live
  - add debian/formats file
  - adjust dh_installtex incantation
  the problem is that luatex dies when loading ukrhypmp.tex from 
  texlive-lang-cyrillic, but we don't want to conflict with it by now.
* policy 3.8.0, rename README.Debian-source to README.source, and add
  notes about quilt usage
* disable patch fix-pwd-inclusion (it was from svn)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
  Copyright (c) 1996-2006 Taco Hoekwater <taco@luatex.org>
3
 
  
4
 
  This file is part of LuaTeX.
5
 
  
6
 
  LuaTeX is free software; you can redistribute it and/or modify
7
 
  it under the terms of the GNU General Public License as published by
8
 
  the Free Software Foundation; either version 2 of the License, or
9
 
  (at your option) any later version.
10
 
 
11
 
  LuaTeX is distributed in the hope that it will be useful,
12
 
  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
  GNU General Public License for more details.
15
 
  
16
 
  You should have received a copy of the GNU General Public License
17
 
  along with LuaTeX; if not, write to the Free Software
18
 
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
 
 
20
 
  $Id: texfont.h 1117 2008-03-21 15:26:12Z hhenkel $ */
 
1
/* texfont.h Main font API implementation for the pascal parts
 
2
   
 
3
   Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
 
4
 
 
5
   This file is part of LuaTeX.
 
6
 
 
7
   LuaTeX is free software; you can redistribute it and/or modify it under
 
8
   the terms of the GNU General Public License as published by the Free
 
9
   Software Foundation; either version 2 of the License, or (at your
 
10
   option) any later version.
 
11
 
 
12
   LuaTeX is distributed in the hope that it will be useful, but WITHOUT
 
13
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
14
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
 
15
   License for more details.
 
16
 
 
17
   You should have received a copy of the GNU General Public License along
 
18
   with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
 
19
 
 
20
/* $Id: texfont.h 1350 2008-06-30 15:00:53Z taco $ */
21
21
 
22
22
/* Here we have the interface to LuaTeX's font system, as seen from the
23
23
   main pascal program. There is a companion list in luatex.defines to
28
28
*/
29
29
 
30
30
#ifndef TEXFONT_H
31
 
#define TEXFONT_H 1
32
 
 
33
 
#include "luatexdir/managed-sa.h"
34
 
 
35
 
#define pointer halfword
 
31
#  define TEXFONT_H 1
 
32
 
 
33
#  include "luatexdir/managed-sa.h"
 
34
 
 
35
#  define pointer halfword
36
36
 
37
37
typedef struct liginfo {
38
 
  integer adj;
39
 
  integer lig;
40
 
  char type;
 
38
    integer adj;
 
39
    integer lig;
 
40
    char type;
41
41
} liginfo;
42
42
 
43
43
typedef struct kerninfo {
44
 
  integer adj;
45
 
  scaled sc;
 
44
    integer adj;
 
45
    scaled sc;
46
46
} kerninfo;
47
47
 
48
48
typedef struct charinfo {
49
 
  char *name;                /* postscript character name */
50
 
  liginfo *ligatures;        /* ligature items */
51
 
  kerninfo *kerns;           /* kern items */
52
 
  real_eight_bits *packets;  /* virtual commands.  */
53
 
  integer *extensible;       /* extensible recipe (if any) */
54
 
  unsigned short index;        /* CID index */
55
 
  integer remainder;         /* spare value for odd items, could be union-ed with extensible */
56
 
  scaled width;              /* width */
57
 
  scaled height;             /* height */
58
 
  scaled depth;              /* depth */
59
 
  scaled italic;             /* italic correction */
60
 
  integer ef;                /* font expansion factor */
61
 
  integer lp;                /* left protruding factor */
62
 
  integer rp;                /* right protruding factor */
63
 
  char tag ;                 /* list / ext taginfo */
64
 
  char used ;                /* char is typeset ? */
65
 
  char *tounicode;           /* unicode equivalent */
 
49
    char *name;                 /* postscript character name */
 
50
    liginfo *ligatures;         /* ligature items */
 
51
    kerninfo *kerns;            /* kern items */
 
52
    real_eight_bits *packets;   /* virtual commands.  */
 
53
    integer *extensible;        /* extensible recipe (if any) */
 
54
    unsigned short index;       /* CID index */
 
55
    integer remainder;          /* spare value for odd items, could be union-ed with extensible */
 
56
    scaled width;               /* width */
 
57
    scaled height;              /* height */
 
58
    scaled depth;               /* depth */
 
59
    scaled italic;              /* italic correction */
 
60
    integer ef;                 /* font expansion factor */
 
61
    integer lp;                 /* left protruding factor */
 
62
    integer rp;                 /* right protruding factor */
 
63
    char tag;                   /* list / ext taginfo */
 
64
    char used;                  /* char is typeset ? */
 
65
    char *tounicode;            /* unicode equivalent */
66
66
} charinfo;
67
67
 
68
68
 
71
71
   at the same time. the structure |charinfo_short| is defined in 
72
72
   web */
73
73
 
74
 
#ifndef luaTeX
 
74
#  ifndef luaTeX
75
75
typedef struct charinfo_short {
76
 
  scaled ci_wd;              /* width */
77
 
  scaled ci_ht;             /* height */
78
 
  scaled ci_dp;              /* depth */
 
76
    scaled ci_wd;               /* width */
 
77
    scaled ci_ht;               /* height */
 
78
    scaled ci_dp;               /* depth */
79
79
} charinfo_short;
80
 
#endif
81
 
 
82
 
 
83
 
extern charinfo_short char_info_short (internal_font_number f, integer c);
 
80
#  endif
 
81
 
 
82
 
 
83
extern charinfo_short char_info_short(internal_font_number f, integer c);
84
84
 
85
85
 
86
86
 
87
87
typedef struct texfont {
88
 
  integer _font_size ;
89
 
  integer _font_dsize ;
90
 
  char * _font_name ;
91
 
  char * _font_area ;
92
 
  char * _font_filename ;
93
 
  char * _font_fullname ;
94
 
  char * _font_encodingname ;
95
 
  char * _font_cidregistry ;
96
 
  char * _font_cidordering ;
97
 
  integer _font_cidversion ;
98
 
  integer _font_cidsupplement ;
99
 
 
100
 
  integer _font_ec ;
101
 
  integer _font_checksum ;   /* internal information */
102
 
  char    _font_used ;       /* internal information */
103
 
  char    _font_touched ;    /* internal information */
104
 
  integer _font_cache_id ;   /* internal information */
105
 
  char    _font_encodingbytes ; /* 1 or 2 bytes */
106
 
  integer _font_slant ;      /* a slant in ppt */
107
 
  integer _font_extend ;     /* an extension in ppt, or 0 */
108
 
  char    _font_tounicode ; /* 1 if info is present */
109
 
  fm_entry_ptr _font_map;
110
 
  integer _font_type;
111
 
  integer _font_format;
112
 
  integer _font_embedding;
113
 
  integer _font_bc ;
114
 
  integer _hyphen_char ;
115
 
  integer _skew_char ;
116
 
  integer _font_natural_dir;
117
 
 
118
 
  charinfo *_left_boundary;
119
 
  charinfo *_right_boundary;
120
 
 
121
 
  integer _font_params;
122
 
  scaled  *_param_base;
123
 
 
124
 
  sa_tree   characters;
125
 
  integer   charinfo_count;
126
 
  integer   charinfo_size;
127
 
  charinfo *charinfo;
128
 
  int      *charinfo_cache;
129
 
  integer  ligatures_disabled;
130
 
 
131
 
  integer  _pdf_font_num; /* maps to a PDF resource ID */
132
 
  scaled   _pdf_font_size; /* maps to a PDF font size */
133
 
  internal_font_number _pdf_font_blink; /* link to  base font for expanded fonts */
134
 
  internal_font_number _pdf_font_elink; /* link to expanded fonts for base font */
135
 
  integer  _pdf_font_expand_ratio; /* expansion ratio of a particular font */
136
 
  internal_font_number  _pdf_font_shrink; /* font at limit of shrinking */
137
 
  internal_font_number  _pdf_font_stretch; /* font at limit of stretching */
138
 
  integer  _pdf_font_step;  /* amount of one step of expansion */
139
 
  boolean  _pdf_font_auto_expand; /* this font is auto-expanded? */
140
 
  str_number _pdf_font_attr; /* pointer to additional attributes */
 
88
    integer _font_size;
 
89
    integer _font_dsize;
 
90
    char *_font_name;
 
91
    char *_font_area;
 
92
    char *_font_filename;
 
93
    char *_font_fullname;
 
94
    char *_font_encodingname;
 
95
    char *_font_cidregistry;
 
96
    char *_font_cidordering;
 
97
    integer _font_cidversion;
 
98
    integer _font_cidsupplement;
 
99
 
 
100
    integer _font_ec;
 
101
    unsigned _font_checksum;     /* internal information */
 
102
    char _font_used;            /* internal information */
 
103
    char _font_touched;         /* internal information */
 
104
    integer _font_cache_id;     /* internal information */
 
105
    char _font_encodingbytes;   /* 1 or 2 bytes */
 
106
    integer _font_slant;        /* a slant in ppt */
 
107
    integer _font_extend;       /* an extension in ppt, or 0 */
 
108
    char _font_tounicode;       /* 1 if info is present */
 
109
    fm_entry_ptr _font_map;
 
110
    integer _font_type;
 
111
    integer _font_format;
 
112
    integer _font_embedding;
 
113
    integer _font_bc;
 
114
    integer _hyphen_char;
 
115
    integer _skew_char;
 
116
    integer _font_natural_dir;
 
117
 
 
118
    charinfo *_left_boundary;
 
119
    charinfo *_right_boundary;
 
120
 
 
121
    integer _font_params;
 
122
    scaled *_param_base;
 
123
 
 
124
    sa_tree characters;
 
125
    integer charinfo_count;
 
126
    integer charinfo_size;
 
127
    charinfo *charinfo;
 
128
    int *charinfo_cache;
 
129
    integer ligatures_disabled;
 
130
 
 
131
    integer _pdf_font_num;      /* maps to a PDF resource ID */
 
132
    scaled _pdf_font_size;      /* maps to a PDF font size */
 
133
    internal_font_number _pdf_font_blink;       /* link to  base font for expanded fonts */
 
134
    internal_font_number _pdf_font_elink;       /* link to expanded fonts for base font */
 
135
    integer _pdf_font_expand_ratio;     /* expansion ratio of a particular font */
 
136
    internal_font_number _pdf_font_shrink;      /* font at limit of shrinking */
 
137
    internal_font_number _pdf_font_stretch;     /* font at limit of stretching */
 
138
    integer _pdf_font_step;     /* amount of one step of expansion */
 
139
    boolean _pdf_font_auto_expand;      /* this font is auto-expanded? */
 
140
    str_number _pdf_font_attr;  /* pointer to additional attributes */
141
141
} texfont;
142
142
 
143
143
typedef enum {
144
 
  unknown_font_type=0, /* new font (has not been used yet) */
145
 
  virtual_font_type, /* virtual font */
146
 
  real_font_type, /* real font */
 
144
    unknown_font_type = 0,      /* new font (has not been used yet) */
 
145
    virtual_font_type,          /* virtual font */
 
146
    real_font_type,             /* real font */
147
147
} font_types;
148
148
 
149
149
typedef enum {
150
 
  unknown_format=0, 
151
 
  type1_format, 
152
 
  type3_format, 
153
 
  truetype_format, 
154
 
  opentype_format, 
 
150
    unknown_format = 0,
 
151
    type1_format,
 
152
    type3_format,
 
153
    truetype_format,
 
154
    opentype_format,
155
155
} font_formats;
156
156
 
157
157
typedef enum {
158
 
  unknown_embedding=0, 
159
 
  no_embedding, 
160
 
  subset_embedding, 
161
 
  full_embedding, 
 
158
    unknown_embedding = 0,
 
159
    no_embedding,
 
160
    subset_embedding,
 
161
    full_embedding,
162
162
} font_embedding_option;
163
163
 
164
164
extern char *font_type_strings[];
166
166
extern char *font_embedding_strings[];
167
167
 
168
168
 
169
 
#define font_checksum(a)          font_tables[a]->_font_checksum
170
 
#define set_font_checksum(a,b)    font_checksum(a) = b
171
 
 
172
 
#define font_check_0(a)           ((font_tables[a]->_font_checksum&0xFF000000)>>24)
173
 
#define font_check_1(a)           ((font_tables[a]->_font_checksum&0x00FF0000)>>16)
174
 
#define font_check_2(a)           ((font_tables[a]->_font_checksum&0x0000FF00)>>8)
175
 
#define font_check_3(a)            (font_tables[a]->_font_checksum&0x000000FF)
176
 
 
177
 
#define font_size(a)              font_tables[a]->_font_size
178
 
#define set_font_size(a,b)        font_size(a) = b
179
 
#define font_dsize(a)             font_tables[a]->_font_dsize
180
 
#define set_font_dsize(a,b)       font_dsize(a) = b
181
 
 
182
 
#define font_name(a)              font_tables[a]->_font_name
183
 
#define get_font_name(a)          (unsigned char *)font_name(a)
184
 
#define set_font_name(f,b)        font_name(f) = b
185
 
#define tex_font_name(a)          maketexstring(font_name(a))
186
 
 
187
 
boolean cmp_font_name (integer, strnumber);
188
 
 
189
 
#define font_area(a)              font_tables[a]->_font_area
190
 
#define get_font_area(a)          (unsigned char *)font_area(a)
191
 
#define set_font_area(f,b)        font_area(f) = b
192
 
#define tex_font_area(a)          maketexstring(font_area(a))
193
 
 
194
 
boolean cmp_font_area (integer, strnumber);
195
 
 
196
 
#define font_reassign(a,b)            { if (a!=NULL) free(a); a = b; }
197
 
 
198
 
#define font_filename(a)            font_tables[a]->_font_filename
199
 
#define set_font_filename(f,b)      font_reassign(font_filename(f),b)
200
 
 
201
 
#define font_fullname(a)            font_tables[a]->_font_fullname
202
 
#define set_font_fullname(f,b)      font_reassign(font_fullname(f),b)
203
 
 
204
 
#define font_encodingname(a)        font_tables[a]->_font_encodingname
205
 
#define set_font_encodingname(f,b)  font_reassign(font_encodingname(f),b)
206
 
 
207
 
boolean font_shareable(internal_font_number,internal_font_number);
208
 
 
209
 
#define cmp_font_filename(a,b)      (!(font_filename(a)!=NULL || font_filename(b)!=NULL || \
 
169
#  define font_checksum(a)          font_tables[a]->_font_checksum
 
170
#  define set_font_checksum(a,b)    font_checksum(a) = b
 
171
 
 
172
#  define font_check_0(a)           ((font_tables[a]->_font_checksum&0xFF000000)>>24)
 
173
#  define font_check_1(a)           ((font_tables[a]->_font_checksum&0x00FF0000)>>16)
 
174
#  define font_check_2(a)           ((font_tables[a]->_font_checksum&0x0000FF00)>>8)
 
175
#  define font_check_3(a)            (font_tables[a]->_font_checksum&0x000000FF)
 
176
 
 
177
#  define font_size(a)              font_tables[a]->_font_size
 
178
#  define set_font_size(a,b)        font_size(a) = b
 
179
#  define font_dsize(a)             font_tables[a]->_font_dsize
 
180
#  define set_font_dsize(a,b)       font_dsize(a) = b
 
181
 
 
182
#  define font_name(a)              font_tables[a]->_font_name
 
183
#  define get_font_name(a)          (unsigned char *)font_name(a)
 
184
#  define set_font_name(f,b)        font_name(f) = b
 
185
#  define tex_font_name(a)          maketexstring(font_name(a))
 
186
 
 
187
boolean cmp_font_name(integer, strnumber);
 
188
 
 
189
#  define font_area(a)              font_tables[a]->_font_area
 
190
#  define get_font_area(a)          (unsigned char *)font_area(a)
 
191
#  define set_font_area(f,b)        font_area(f) = b
 
192
#  define tex_font_area(a)          maketexstring(font_area(a))
 
193
 
 
194
boolean cmp_font_area(integer, strnumber);
 
195
 
 
196
#  define font_reassign(a,b)            { if (a!=NULL) free(a); a = b; }
 
197
 
 
198
#  define font_filename(a)            font_tables[a]->_font_filename
 
199
#  define set_font_filename(f,b)      font_reassign(font_filename(f),b)
 
200
 
 
201
#  define font_fullname(a)            font_tables[a]->_font_fullname
 
202
#  define set_font_fullname(f,b)      font_reassign(font_fullname(f),b)
 
203
 
 
204
#  define font_encodingname(a)        font_tables[a]->_font_encodingname
 
205
#  define set_font_encodingname(f,b)  font_reassign(font_encodingname(f),b)
 
206
 
 
207
boolean font_shareable(internal_font_number, internal_font_number);
 
208
 
 
209
#  define cmp_font_filename(a,b)      (!(font_filename(a)!=NULL || font_filename(b)!=NULL || \
210
210
                                       strcmp(font_filename(a),font_filename(b))))
211
 
#define cmp_font_fullname(a,b)      (!(font_fullname(a)!=NULL || font_fullname(b)!=NULL || \
 
211
#  define cmp_font_fullname(a,b)      (!(font_fullname(a)!=NULL || font_fullname(b)!=NULL || \
212
212
                                       strcmp(font_fullname(a),font_fullname(b))))
213
 
#define cmp_font_encodingname(a,b)  (!(font_encoding(a)!=NULL || font_encodingname(b)!=NULL || \
 
213
#  define cmp_font_encodingname(a,b)  (!(font_encoding(a)!=NULL || font_encodingname(b)!=NULL || \
214
214
                                       strcmp(font_encodingname(a),font_encodingname(b))))
215
215
 
216
 
#define font_bc(a)                  font_tables[a]->_font_bc
217
 
#define set_font_bc(f,b)            font_bc(f) = b
218
 
 
219
 
#define font_ec(a)                  font_tables[a]->_font_ec
220
 
#define set_font_ec(f,b)            font_ec(f) = b
221
 
 
222
 
#define font_used(a)                (font_tables[a]!=NULL && font_tables[a]->_font_used)
223
 
#define set_font_used(a,b)          font_tables[a]->_font_used = b
224
 
 
225
 
#define font_touched(a)             font_tables[a]->_font_touched
226
 
#define set_font_touched(a,b)       font_touched(a) = b
227
 
 
228
 
#define font_type(a)                font_tables[a]->_font_type
229
 
#define set_font_type(a,b)          {  /* fprintf(stdout,"set font type of %s to %i: %s\n",font_name(a),b,__FILE__); */         \
 
216
#  define font_bc(a)                  font_tables[a]->_font_bc
 
217
#  define set_font_bc(f,b)            font_bc(f) = b
 
218
 
 
219
#  define font_ec(a)                  font_tables[a]->_font_ec
 
220
#  define set_font_ec(f,b)            font_ec(f) = b
 
221
 
 
222
#  define font_used(a)                (font_tables[a]!=NULL && font_tables[a]->_font_used)
 
223
#  define set_font_used(a,b)          font_tables[a]->_font_used = b
 
224
 
 
225
#  define font_touched(a)             font_tables[a]->_font_touched
 
226
#  define set_font_touched(a,b)       font_touched(a) = b
 
227
 
 
228
#  define font_type(a)                font_tables[a]->_font_type
 
229
#  define set_font_type(a,b)          {  /* fprintf(stdout,"set font type of %s to %i: %s\n",font_name(a),b,__FILE__); */   \
230
230
                                       font_type(a) = b; }
231
231
 
232
 
#define font_format(a)              font_tables[a]->_font_format
233
 
#define font_format_name(a)         font_format_strings[font_tables[a]->_font_format]
234
 
#define set_font_format(a,b)        font_format(a) = b
235
 
 
236
 
#define font_embedding(a)           font_tables[a]->_font_embedding
237
 
#define set_font_embedding(a,b)     font_embedding(a) = b
238
 
 
239
 
#define font_cidversion(a)          font_tables[a]->_font_cidversion
240
 
#define set_font_cidversion(a,b)    font_cidversion(a) = b
241
 
 
242
 
#define font_cidsupplement(a)       font_tables[a]->_font_cidsupplement
243
 
#define set_font_cidsupplement(a,b) font_cidsupplement(a) = b
244
 
 
245
 
#define font_cidordering(a)         font_tables[a]->_font_cidordering
246
 
#define set_font_cidordering(f,b)   font_reassign(font_cidordering(f),b)
247
 
 
248
 
#define font_cidregistry(a)         font_tables[a]->_font_cidregistry
249
 
#define set_font_cidregistry(f,b)   font_reassign(font_cidregistry(f),b)
250
 
 
251
 
#define font_map(a)                 font_tables[a]->_font_map
252
 
#define set_font_map(a,b)           font_map(a) = b
253
 
 
254
 
#define font_cache_id(a)            font_tables[a]->_font_cache_id
255
 
#define set_font_cache_id(a,b)      font_cache_id(a) = b
256
 
 
257
 
#define font_encodingbytes(a)       font_tables[a]->_font_encodingbytes
258
 
#define set_font_encodingbytes(a,b) font_encodingbytes(a) = b
259
 
 
260
 
#define font_slant(a)               font_tables[a]->_font_slant
261
 
#define set_font_slant(a,b)         font_slant(a) = b
262
 
 
263
 
#define font_extend(a)              font_tables[a]->_font_extend
264
 
#define set_font_extend(a,b)        font_extend(a) = b
265
 
 
266
 
#define font_tounicode(a)           font_tables[a]->_font_tounicode
267
 
#define set_font_tounicode(a,b)     font_tounicode(a) = b
268
 
 
269
 
#define hyphen_char(a)              font_tables[a]->_hyphen_char
270
 
#define set_hyphen_char(a,b)        hyphen_char(a) = b
271
 
 
272
 
#define skew_char(a)                font_tables[a]->_skew_char
273
 
#define set_skew_char(a,b)          skew_char(a) = b
274
 
 
275
 
#define font_natural_dir(a)         font_tables[a]->_font_natural_dir
276
 
#define set_font_natural_dir(a,b)   font_natural_dir(a) = b
277
 
 
278
 
#define pdf_font_size(a)            font_tables[a]->_pdf_font_size
279
 
#define set_pdf_font_size(a,b)      pdf_font_size(a) = b
280
 
 
281
 
#define pdf_font_num(a)             font_tables[a]->_pdf_font_num
282
 
#define set_pdf_font_num(a,b)       pdf_font_num(a) = b
283
 
 
284
 
#define pdf_font_blink(a)            font_tables[a]->_pdf_font_blink
285
 
#define set_pdf_font_blink(a,b)      pdf_font_blink(a) = b
286
 
 
287
 
#define pdf_font_elink(a)            font_tables[a]->_pdf_font_elink
288
 
#define set_pdf_font_elink(a,b)      pdf_font_elink(a) = b
289
 
 
290
 
#define pdf_font_expand_ratio(a)            font_tables[a]->_pdf_font_expand_ratio
291
 
#define set_pdf_font_expand_ratio(a,b)      pdf_font_expand_ratio(a) = b
292
 
 
293
 
#define pdf_font_shrink(a)            font_tables[a]->_pdf_font_shrink
294
 
#define set_pdf_font_shrink(a,b)      pdf_font_shrink(a) = b
295
 
 
296
 
#define pdf_font_stretch(a)            font_tables[a]->_pdf_font_stretch
297
 
#define set_pdf_font_stretch(a,b)      pdf_font_stretch(a) = b
298
 
 
299
 
#define pdf_font_step(a)            font_tables[a]->_pdf_font_step
300
 
#define set_pdf_font_step(a,b)      pdf_font_step(a) = b
301
 
 
302
 
#define pdf_font_auto_expand(a)            font_tables[a]->_pdf_font_auto_expand
303
 
#define set_pdf_font_auto_expand(a,b)      pdf_font_auto_expand(a) = b
304
 
 
305
 
#define pdf_font_attr(a)            font_tables[a]->_pdf_font_attr
306
 
#define set_pdf_font_attr(a,b)      pdf_font_attr(a) = b
307
 
 
308
 
 
309
 
#define left_boundarychar  -1
310
 
#define right_boundarychar -2
311
 
#define non_boundarychar -3
312
 
 
313
 
#define left_boundary(a)              font_tables[a]->_left_boundary
314
 
#define has_left_boundary(a)          (left_boundary(a)!=NULL)
315
 
#define set_left_boundary(a,b)        font_reassign(left_boundary(a),b)
316
 
 
317
 
#define right_boundary(a)             font_tables[a]->_right_boundary
318
 
#define has_right_boundary(a)         (right_boundary(a)!=NULL)
319
 
#define set_right_boundary(a,b)       font_reassign(right_boundary(a),b)
320
 
 
321
 
#define font_bchar(a)       (right_boundary(a)!=NULL ? right_boundarychar : non_boundarychar)
 
232
#  define font_format(a)              font_tables[a]->_font_format
 
233
#  define font_format_name(a)         font_format_strings[font_tables[a]->_font_format]
 
234
#  define set_font_format(a,b)        font_format(a) = b
 
235
 
 
236
#  define font_embedding(a)           font_tables[a]->_font_embedding
 
237
#  define set_font_embedding(a,b)     font_embedding(a) = b
 
238
 
 
239
#  define font_cidversion(a)          font_tables[a]->_font_cidversion
 
240
#  define set_font_cidversion(a,b)    font_cidversion(a) = b
 
241
 
 
242
#  define font_cidsupplement(a)       font_tables[a]->_font_cidsupplement
 
243
#  define set_font_cidsupplement(a,b) font_cidsupplement(a) = b
 
244
 
 
245
#  define font_cidordering(a)         font_tables[a]->_font_cidordering
 
246
#  define set_font_cidordering(f,b)   font_reassign(font_cidordering(f),b)
 
247
 
 
248
#  define font_cidregistry(a)         font_tables[a]->_font_cidregistry
 
249
#  define set_font_cidregistry(f,b)   font_reassign(font_cidregistry(f),b)
 
250
 
 
251
#  define font_map(a)                 font_tables[a]->_font_map
 
252
#  define set_font_map(a,b)           font_map(a) = b
 
253
 
 
254
#  define font_cache_id(a)            font_tables[a]->_font_cache_id
 
255
#  define set_font_cache_id(a,b)      font_cache_id(a) = b
 
256
 
 
257
#  define font_encodingbytes(a)       font_tables[a]->_font_encodingbytes
 
258
#  define set_font_encodingbytes(a,b) font_encodingbytes(a) = b
 
259
 
 
260
#  define font_slant(a)               font_tables[a]->_font_slant
 
261
#  define set_font_slant(a,b)         font_slant(a) = b
 
262
 
 
263
#  define font_extend(a)              font_tables[a]->_font_extend
 
264
#  define set_font_extend(a,b)        font_extend(a) = b
 
265
 
 
266
#  define font_tounicode(a)           font_tables[a]->_font_tounicode
 
267
#  define set_font_tounicode(a,b)     font_tounicode(a) = b
 
268
 
 
269
#  define hyphen_char(a)              font_tables[a]->_hyphen_char
 
270
#  define set_hyphen_char(a,b)        hyphen_char(a) = b
 
271
 
 
272
#  define skew_char(a)                font_tables[a]->_skew_char
 
273
#  define set_skew_char(a,b)          skew_char(a) = b
 
274
 
 
275
#  define font_natural_dir(a)         font_tables[a]->_font_natural_dir
 
276
#  define set_font_natural_dir(a,b)   font_natural_dir(a) = b
 
277
 
 
278
#  define pdf_font_size(a)            font_tables[a]->_pdf_font_size
 
279
#  define set_pdf_font_size(a,b)      pdf_font_size(a) = b
 
280
 
 
281
#  define pdf_font_num(a)             font_tables[a]->_pdf_font_num
 
282
#  define set_pdf_font_num(a,b)       pdf_font_num(a) = b
 
283
 
 
284
#  define pdf_font_blink(a)            font_tables[a]->_pdf_font_blink
 
285
#  define set_pdf_font_blink(a,b)      pdf_font_blink(a) = b
 
286
 
 
287
#  define pdf_font_elink(a)            font_tables[a]->_pdf_font_elink
 
288
#  define set_pdf_font_elink(a,b)      pdf_font_elink(a) = b
 
289
 
 
290
#  define pdf_font_expand_ratio(a)            font_tables[a]->_pdf_font_expand_ratio
 
291
#  define set_pdf_font_expand_ratio(a,b)      pdf_font_expand_ratio(a) = b
 
292
 
 
293
#  define pdf_font_shrink(a)            font_tables[a]->_pdf_font_shrink
 
294
#  define set_pdf_font_shrink(a,b)      pdf_font_shrink(a) = b
 
295
 
 
296
#  define pdf_font_stretch(a)            font_tables[a]->_pdf_font_stretch
 
297
#  define set_pdf_font_stretch(a,b)      pdf_font_stretch(a) = b
 
298
 
 
299
#  define pdf_font_step(a)            font_tables[a]->_pdf_font_step
 
300
#  define set_pdf_font_step(a,b)      pdf_font_step(a) = b
 
301
 
 
302
#  define pdf_font_auto_expand(a)            font_tables[a]->_pdf_font_auto_expand
 
303
#  define set_pdf_font_auto_expand(a,b)      pdf_font_auto_expand(a) = b
 
304
 
 
305
#  define pdf_font_attr(a)            font_tables[a]->_pdf_font_attr
 
306
#  define set_pdf_font_attr(a,b)      pdf_font_attr(a) = b
 
307
 
 
308
 
 
309
#  define left_boundarychar  -1
 
310
#  define right_boundarychar -2
 
311
#  define non_boundarychar -3
 
312
 
 
313
#  define left_boundary(a)              font_tables[a]->_left_boundary
 
314
#  define has_left_boundary(a)          (left_boundary(a)!=NULL)
 
315
#  define set_left_boundary(a,b)        font_reassign(left_boundary(a),b)
 
316
 
 
317
#  define right_boundary(a)             font_tables[a]->_right_boundary
 
318
#  define has_right_boundary(a)         (right_boundary(a)!=NULL)
 
319
#  define set_right_boundary(a,b)       font_reassign(right_boundary(a),b)
 
320
 
 
321
#  define font_bchar(a)       (right_boundary(a)!=NULL ? right_boundarychar : non_boundarychar)
322
322
 
323
323
/* font parameters */
324
324
 
325
 
#define font_params(a)       font_tables[a]->_font_params
326
 
#define param_base(a)        font_tables[a]->_param_base
327
 
#define font_param(a,b)      font_tables[a]->_param_base[b]
 
325
#  define font_params(a)       font_tables[a]->_font_params
 
326
#  define param_base(a)        font_tables[a]->_param_base
 
327
#  define font_param(a,b)      font_tables[a]->_param_base[b]
328
328
 
329
329
extern void set_font_params(internal_font_number f, int b);
330
330
 
331
 
#define set_font_param(f,n,b)                                   \
 
331
#  define set_font_param(f,n,b)                                   \
332
332
  { if (font_params(f)<n) set_font_params(f,n);                 \
333
333
    font_param(f,n) = b; }
334
334
 
335
335
/* Font parameters are sometimes referred to as |slant(f)|, |space(f)|, etc.*/
336
336
 
337
337
typedef enum {
338
 
  slant_code = 1,
339
 
  space_code = 2,
340
 
  space_stretch_code = 3,
341
 
  space_shrink_code = 4,
342
 
  x_height_code = 5,
343
 
  quad_code = 6,
344
 
  extra_space_code = 7 } font_parameter_codes ;
 
338
    slant_code = 1,
 
339
    space_code = 2,
 
340
    space_stretch_code = 3,
 
341
    space_shrink_code = 4,
 
342
    x_height_code = 5,
 
343
    quad_code = 6,
 
344
    extra_space_code = 7
 
345
} font_parameter_codes;
345
346
 
346
 
#define slant(f)         font_param(f,slant_code)
347
 
#define space(f)         font_param(f,space_code)
348
 
#define space_stretch(f) font_param(f,space_stretch_code)
349
 
#define space_shrink(f)  font_param(f,space_shrink_code)
350
 
#define x_height(f)      font_param(f,x_height_code)
351
 
#define quad(f)          font_param(f,quad_code)
352
 
#define extra_space(f)   font_param(f,extra_space_code)
 
347
#  define slant(f)         font_param(f,slant_code)
 
348
#  define space(f)         font_param(f,space_code)
 
349
#  define space_stretch(f) font_param(f,space_stretch_code)
 
350
#  define space_shrink(f)  font_param(f,space_shrink_code)
 
351
#  define x_height(f)      font_param(f,x_height_code)
 
352
#  define quad(f)          font_param(f,quad_code)
 
353
#  define extra_space(f)   font_param(f,extra_space_code)
353
354
 
354
355
/* now for characters  */
355
356
 
356
 
extern charinfo *get_charinfo (internal_font_number f, integer c) ;
357
 
extern integer char_exists (internal_font_number f, integer c);
358
 
extern charinfo *char_info (internal_font_number f, integer c);
359
 
 
360
 
 
361
 
extern void set_charinfo_width       (charinfo *ci, scaled val);
362
 
extern void set_charinfo_height      (charinfo *ci, scaled val);
363
 
extern void set_charinfo_depth       (charinfo *ci, scaled val);
364
 
extern void set_charinfo_italic      (charinfo *ci, scaled val);
365
 
extern void set_charinfo_tag         (charinfo *ci, scaled val);
366
 
extern void set_charinfo_remainder   (charinfo *ci, scaled val);
367
 
extern void set_charinfo_used        (charinfo *ci, scaled val);
368
 
extern void set_charinfo_index       (charinfo *ci, scaled val);
369
 
extern void set_charinfo_name        (charinfo *ci, char *val) ;
370
 
extern void set_charinfo_tounicode   (charinfo *ci, char *val) ;
371
 
extern void set_charinfo_ligatures   (charinfo *ci, liginfo *val);
372
 
extern void set_charinfo_kerns       (charinfo *ci, kerninfo *val);
373
 
extern void set_charinfo_packets     (charinfo *ci, real_eight_bits *val);
374
 
extern void set_charinfo_extensible  (charinfo *ci, int a, int b, int c, int d);
375
 
 
376
 
#define set_char_used(f,a,b)  set_charinfo_used(get_charinfo(f,a),b)
377
 
 
378
 
extern scaled get_charinfo_width             (charinfo *ci);
379
 
extern scaled get_charinfo_height            (charinfo *ci);
380
 
extern scaled get_charinfo_depth             (charinfo *ci);
381
 
extern scaled get_charinfo_italic            (charinfo *ci);
382
 
extern char    get_charinfo_tag              (charinfo *ci);
383
 
extern integer get_charinfo_remainder        (charinfo *ci);
384
 
extern char    get_charinfo_used             (charinfo *ci);
385
 
extern integer get_charinfo_index            (charinfo *ci);
386
 
extern char * get_charinfo_name              (charinfo *ci) ;
387
 
extern char * get_charinfo_tounicode         (charinfo *ci) ;
388
 
extern liginfo * get_charinfo_ligatures      (charinfo *ci);
389
 
extern kerninfo *get_charinfo_kerns          (charinfo *ci);
390
 
extern real_eight_bits *get_charinfo_packets (charinfo *ci);
391
 
extern integer get_charinfo_extensible       (charinfo *ci, int which);
392
 
 
393
 
extern integer ext_top                       (internal_font_number f, integer c);
394
 
extern integer ext_bot                       (internal_font_number f, integer c);
395
 
extern integer ext_rep                       (internal_font_number f, integer c);
396
 
extern integer ext_mid                       (internal_font_number f, integer c);
397
 
 
398
 
#define set_ligature_item(f,b,c,d)  { f.type = b; f.adj = c;  f.lig = d; }
399
 
 
400
 
#define set_kern_item(f,b,c)        { f.adj = b;  f.sc = c; }
 
357
extern charinfo *get_charinfo(internal_font_number f, integer c);
 
358
extern integer char_exists(internal_font_number f, integer c);
 
359
extern charinfo *char_info(internal_font_number f, integer c);
 
360
 
 
361
 
 
362
extern void set_charinfo_width(charinfo * ci, scaled val);
 
363
extern void set_charinfo_height(charinfo * ci, scaled val);
 
364
extern void set_charinfo_depth(charinfo * ci, scaled val);
 
365
extern void set_charinfo_italic(charinfo * ci, scaled val);
 
366
extern void set_charinfo_tag(charinfo * ci, scaled val);
 
367
extern void set_charinfo_remainder(charinfo * ci, scaled val);
 
368
extern void set_charinfo_used(charinfo * ci, scaled val);
 
369
extern void set_charinfo_index(charinfo * ci, scaled val);
 
370
extern void set_charinfo_name(charinfo * ci, char *val);
 
371
extern void set_charinfo_tounicode(charinfo * ci, char *val);
 
372
extern void set_charinfo_ligatures(charinfo * ci, liginfo * val);
 
373
extern void set_charinfo_kerns(charinfo * ci, kerninfo * val);
 
374
extern void set_charinfo_packets(charinfo * ci, real_eight_bits * val);
 
375
extern void set_charinfo_extensible(charinfo * ci, int a, int b, int c, int d);
 
376
extern void set_charinfo_ef(charinfo * ci, scaled val);
 
377
extern void set_charinfo_lp(charinfo * ci, scaled val);
 
378
extern void set_charinfo_rp(charinfo * ci, scaled val);
 
379
 
 
380
#  define set_char_used(f,a,b)  set_charinfo_used(get_charinfo(f,a),b)
 
381
 
 
382
extern scaled get_charinfo_width(charinfo * ci);
 
383
extern scaled get_charinfo_height(charinfo * ci);
 
384
extern scaled get_charinfo_depth(charinfo * ci);
 
385
extern scaled get_charinfo_italic(charinfo * ci);
 
386
extern char get_charinfo_tag(charinfo * ci);
 
387
extern integer get_charinfo_remainder(charinfo * ci);
 
388
extern char get_charinfo_used(charinfo * ci);
 
389
extern integer get_charinfo_index(charinfo * ci);
 
390
extern char *get_charinfo_name(charinfo * ci);
 
391
extern char *get_charinfo_tounicode(charinfo * ci);
 
392
extern liginfo *get_charinfo_ligatures(charinfo * ci);
 
393
extern kerninfo *get_charinfo_kerns(charinfo * ci);
 
394
extern real_eight_bits *get_charinfo_packets(charinfo * ci);
 
395
extern integer get_charinfo_ef(charinfo * ci);
 
396
extern integer get_charinfo_rp(charinfo * ci);
 
397
extern integer get_charinfo_lp(charinfo * ci);
 
398
extern integer get_charinfo_extensible(charinfo * ci, int which);
 
399
 
 
400
extern integer ext_top(internal_font_number f, integer c);
 
401
extern integer ext_bot(internal_font_number f, integer c);
 
402
extern integer ext_rep(internal_font_number f, integer c);
 
403
extern integer ext_mid(internal_font_number f, integer c);
 
404
 
 
405
#  define set_ligature_item(f,b,c,d)  { f.type = b; f.adj = c;  f.lig = d; }
 
406
 
 
407
#  define set_kern_item(f,b,c)      { f.adj = b;  f.sc = c; }
401
408
 
402
409
 
403
410
/* character information */
404
411
 
405
 
#define non_char 65536 /* a code that can't match a real character */
406
 
#define non_address 0  /* a spurious |bchar_label| */
 
412
#  define non_char 65536        /* a code that can't match a real character */
 
413
#  define non_address 0         /* a spurious |bchar_label| */
407
414
 
408
415
 
409
416
/* character kerns and ligatures */
410
417
 
411
 
#define end_kern               0x7FFFFF /* otherchar value meaning "stop" */
412
 
#define ignored_kern           0x800000 /* otherchar value meaning "disabled" */
413
 
 
414
 
#define charinfo_kern(b,c)        b->kerns[c]
415
 
 
416
 
#define kern_char(b)          (b).adj
417
 
#define kern_kern(b)          (b).sc
418
 
#define kern_end(b)          ((b).adj == end_kern)
419
 
#define kern_disabled(b)     ((b).adj > end_kern)
 
418
#  define end_kern               0x7FFFFF
 
419
                                        /* otherchar value meaning "stop" */
 
420
#  define ignored_kern           0x800000
 
421
                                        /* otherchar value meaning "disabled" */
 
422
 
 
423
#  define charinfo_kern(b,c)        b->kerns[c]
 
424
 
 
425
#  define kern_char(b)          (b).adj
 
426
#  define kern_kern(b)          (b).sc
 
427
#  define kern_end(b)          ((b).adj == end_kern)
 
428
#  define kern_disabled(b)     ((b).adj > end_kern)
420
429
 
421
430
/* character ligatures */
422
431
 
423
 
#define end_ligature          0x7FFFFF /* otherchar value meaning "stop" */
424
 
#define ignored_ligature      0x800000 /* otherchar value meaning "disabled" */
425
 
 
426
 
#define charinfo_ligature(b,c)     b->ligatures[c]
427
 
 
428
 
#define is_valid_ligature(a)   ((a).type!=0)
429
 
#define lig_type(a)            ((a).type>>1)
430
 
#define lig_char(a)            (a).adj
431
 
#define lig_replacement(a)     (a).lig
432
 
#define lig_end(a)             (lig_char(a) == end_ligature)
433
 
#define lig_disabled(a)        (lig_char(a) > end_ligature)
434
 
 
435
 
#define no_tag 0   /* vanilla character */
436
 
#define lig_tag 1  /* character has a ligature/kerning program */
437
 
#define list_tag 2 /* character has a successor in a charlist */
438
 
#define ext_tag 3  /* character is extensible */
439
 
 
440
 
extern scaled char_height (internal_font_number f, integer c);
441
 
extern scaled char_width  (internal_font_number f, integer c);
442
 
extern scaled char_depth  (internal_font_number f, integer c);
443
 
extern scaled char_italic (internal_font_number f, integer c);
444
 
 
445
 
extern liginfo * char_ligatures (internal_font_number f, integer c);
446
 
extern kerninfo * char_kerns (internal_font_number f, integer c);
447
 
extern real_eight_bits * char_packets (internal_font_number f, integer c);
448
 
 
449
 
#define has_lig(f,b)          (char_exists(f,b) &&( char_ligatures(f,b) != NULL))
450
 
#define has_kern(f,b)         (char_exists(f,b) && (char_kerns(f,b) != NULL))
451
 
#define has_packet(f,b)       (char_exists(f,b) && (char_packets(f,b) != NULL))
452
 
 
453
 
extern integer char_remainder (internal_font_number f, integer c);
454
 
extern char char_tag (internal_font_number f, integer c);
455
 
extern char char_used (internal_font_number f, integer c);
456
 
extern char * char_name (internal_font_number f, integer c);
457
 
extern integer char_index (internal_font_number f, integer c);
 
432
#  define end_ligature          0x7FFFFF/* otherchar value meaning "stop" */
 
433
#  define ignored_ligature      0x800000/* otherchar value meaning "disabled" */
 
434
 
 
435
#  define charinfo_ligature(b,c)     b->ligatures[c]
 
436
 
 
437
#  define is_valid_ligature(a)   ((a).type!=0)
 
438
#  define lig_type(a)            ((a).type>>1)
 
439
#  define lig_char(a)            (a).adj
 
440
#  define lig_replacement(a)     (a).lig
 
441
#  define lig_end(a)             (lig_char(a) == end_ligature)
 
442
#  define lig_disabled(a)        (lig_char(a) > end_ligature)
 
443
 
 
444
#  define no_tag 0              /* vanilla character */
 
445
#  define lig_tag 1             /* character has a ligature/kerning program */
 
446
#  define list_tag 2            /* character has a successor in a charlist */
 
447
#  define ext_tag 3             /* character is extensible */
 
448
 
 
449
extern scaled char_height(internal_font_number f, integer c);
 
450
extern scaled char_width(internal_font_number f, integer c);
 
451
extern scaled char_depth(internal_font_number f, integer c);
 
452
extern scaled char_italic(internal_font_number f, integer c);
 
453
 
 
454
extern liginfo *char_ligatures(internal_font_number f, integer c);
 
455
extern kerninfo *char_kerns(internal_font_number f, integer c);
 
456
extern real_eight_bits *char_packets(internal_font_number f, integer c);
 
457
 
 
458
#  define has_lig(f,b)          (char_exists(f,b) &&( char_ligatures(f,b) != NULL))
 
459
#  define has_kern(f,b)         (char_exists(f,b) && (char_kerns(f,b) != NULL))
 
460
#  define has_packet(f,b)       (char_exists(f,b) && (char_packets(f,b) != NULL))
 
461
 
 
462
extern integer char_remainder(internal_font_number f, integer c);
 
463
extern char char_tag(internal_font_number f, integer c);
 
464
extern char char_used(internal_font_number f, integer c);
 
465
extern char *char_name(internal_font_number f, integer c);
 
466
extern integer char_index(internal_font_number f, integer c);
458
467
 
459
468
scaled get_kern(internalfontnumber f, integer lc, integer rc);
460
469
liginfo get_ligature(internalfontnumber f, integer lc, integer rc);
461
470
 
462
 
#define EXT_TOP 0
463
 
#define EXT_BOT 1
464
 
#define EXT_MID 2
465
 
#define EXT_REP 3
 
471
#  define EXT_TOP 0
 
472
#  define EXT_BOT 1
 
473
#  define EXT_MID 2
 
474
#  define EXT_REP 3
466
475
 
467
476
extern texfont **font_tables;
468
477
 
469
 
integer new_font (void) ;
470
 
integer copy_font (integer id) ;
471
 
integer scale_font (integer id, integer atsize) ;
472
 
integer max_font_id (void);
473
 
void set_max_font_id (integer id);
474
 
integer new_font_id (void);
475
 
void create_null_font (void);
 
478
integer new_font(void);
 
479
integer copy_font(integer id);
 
480
integer scale_font(integer id, integer atsize);
 
481
integer max_font_id(void);
 
482
void set_max_font_id(integer id);
 
483
integer new_font_id(void);
 
484
void create_null_font(void);
476
485
void delete_font(integer id);
477
 
boolean is_valid_font (integer id);
478
 
 
479
 
void dump_font (int font_number);
480
 
void undump_font (int font_number);
481
 
 
482
 
integer test_no_ligatures (internal_font_number f) ;
483
 
void set_no_ligatures (internal_font_number f) ;
484
 
 
485
 
extern integer get_tag_code (internal_font_number f, integer c);
486
 
extern integer get_lp_code (internal_font_number f, integer c);
487
 
extern integer get_rp_code (internal_font_number f, integer c);
488
 
extern integer get_ef_code (internal_font_number f, integer c);
489
 
 
490
 
extern void set_tag_code (internal_font_number f, integer c, integer i) ;
491
 
extern void set_lp_code(internal_font_number f, integer c, integer i) ;
492
 
extern void set_rp_code(internal_font_number f, integer c, integer i) ;
493
 
extern void set_ef_code(internal_font_number f, integer c, integer i) ;
 
486
boolean is_valid_font(integer id);
 
487
 
 
488
void dump_font(int font_number);
 
489
void undump_font(int font_number);
 
490
 
 
491
integer test_no_ligatures(internal_font_number f);
 
492
void set_no_ligatures(internal_font_number f);
 
493
 
 
494
extern integer get_tag_code(internal_font_number f, integer c);
 
495
extern integer get_lp_code(internal_font_number f, integer c);
 
496
extern integer get_rp_code(internal_font_number f, integer c);
 
497
extern integer get_ef_code(internal_font_number f, integer c);
 
498
 
 
499
extern void set_tag_code(internal_font_number f, integer c, integer i);
 
500
extern void set_lp_code(internal_font_number f, integer c, integer i);
 
501
extern void set_rp_code(internal_font_number f, integer c, integer i);
 
502
extern void set_ef_code(internal_font_number f, integer c, integer i);
494
503
 
495
504
int read_tfm_info(internal_font_number f, char *nom, char *aire, scaled s);
496
505
 
497
506
 
498
507
/* from dofont.c */
499
508
 
500
 
extern int read_font_info (pointer u, strnumber nom, strnumber aire, scaled s, integer ndir);
501
 
extern int find_font_id (char *nom, char *aire, scaled s);
 
509
extern int read_font_info(pointer u, strnumber nom, strnumber aire, scaled s,
 
510
                          integer ndir);
 
511
extern int find_font_id(char *nom, char *aire, scaled s);
502
512
 
503
513
/* for and from vfpacket.c */
504
514
 
505
 
#define scan_special 3 /* look into special text */ /* this is a hack */
506
 
 
507
 
typedef enum {  packet_char_code,
508
 
                packet_font_code,
509
 
                packet_pop_code,
510
 
                packet_push_code,
511
 
                packet_special_code,
512
 
                packet_right_code,
513
 
                packet_down_code,
514
 
                packet_rule_code,
515
 
                packet_node_code,
516
 
                packet_nop_code,
517
 
                packet_end_code } packet_command_codes;
518
 
 
519
 
extern scaled sqxfw (scaled sq, integer fw);
520
 
 
521
 
extern void do_vf_packet (internal_font_number vf_f, integer c);
522
 
extern int vf_packet_bytes (charinfo *co);
 
515
#  define scan_special 3 /* look into special text */   /* this is a hack */
 
516
 
 
517
typedef enum { packet_char_code,
 
518
    packet_font_code,
 
519
    packet_pop_code,
 
520
    packet_push_code,
 
521
    packet_special_code,
 
522
    packet_image_code,
 
523
    packet_right_code,
 
524
    packet_down_code,
 
525
    packet_rule_code,
 
526
    packet_node_code,
 
527
    packet_nop_code,
 
528
    packet_end_code
 
529
} packet_command_codes;
 
530
 
 
531
extern scaled sqxfw(scaled sq, integer fw);
 
532
 
 
533
extern void do_vf_packet(internal_font_number vf_f, integer c);
 
534
extern int vf_packet_bytes(charinfo * co);
523
535
 
524
536
#endif