- void *symtab; /* Encoded-symbol table. */
-};
-
-/* XXX - clean this up. */
-
-struct termpair {
- struct termpair *ppair;
- int type;
-#define TERMPAIR_FLAG (1 << 0)
- int flag;
- size_t offset;
- size_t rmargin;
- int count;
-};
-
-#define TERMPAIR_SETFLAG(termp, p, fl) \
- do { \
- assert(! (TERMPAIR_FLAG & (p)->type)); \
- (termp)->flags |= (fl); \
- (p)->flag = (fl); \
- (p)->type |= TERMPAIR_FLAG; \
- } while (0)
-
-struct termact {
- int (*pre)(struct termp *, struct termpair *,
- const struct mdoc_meta *,
- const struct mdoc_node *);
- void (*post)(struct termp *, struct termpair *,
- const struct mdoc_meta *,
- const struct mdoc_node *);
+ struct mchars *symtab; /* Encoded-symbol table. */
+ enum termfont fontl; /* Last font set. */
+ enum termfont fontq[10]; /* Symmetric fonts. */
+ int fonti; /* Index of font stack. */
+ term_margin headf; /* invoked to print head */
+ term_margin footf; /* invoked to print foot */
+ void (*letter)(struct termp *, int);
+ void (*begin)(struct termp *);
+ void (*end)(struct termp *);
+ void (*endline)(struct termp *);
+ void (*advance)(struct termp *, size_t);
+ size_t (*width)(const struct termp *, int);
+ double (*hspan)(const struct termp *,
+ const struct roffsu *);
+ const void *argf; /* arg for headf/footf */
+ struct termp_ps *ps;