-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 *);
-};
-
-void newln(struct termp *);
-void vspace(struct termp *);
-void word(struct termp *, const char *);
-void flushln(struct termp *);
-void transcode(struct termp *,
- const char *, size_t);
-void subtree(struct termp *,
- const struct mdoc_meta *,
- const struct mdoc_node *);
-
-
-const struct termact *termacts;
+void term_eqn(struct termp *, const struct eqn *);
+void term_tbl(struct termp *, const struct tbl_span *);
+void term_free(struct termp *);
+void term_newln(struct termp *);
+void term_vspace(struct termp *);
+void term_word(struct termp *, const char *);
+void term_flushln(struct termp *);
+void term_begin(struct termp *, term_margin,
+ term_margin, const void *);
+void term_end(struct termp *);
+
+size_t term_hspan(const struct termp *,
+ const struct roffsu *);
+size_t term_vspan(const struct termp *,
+ const struct roffsu *);
+size_t term_strlen(const struct termp *, const char *);
+size_t term_len(const struct termp *, size_t);
+
+enum termfont term_fonttop(struct termp *);
+const void *term_fontq(struct termp *);
+void term_fontpush(struct termp *, enum termfont);
+void term_fontpop(struct termp *);
+void term_fontpopq(struct termp *, const void *);
+void term_fontrepl(struct termp *, enum termfont);
+void term_fontlast(struct termp *);