diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-06-07 20:57:09 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-06-07 20:57:09 +0000 |
commit | 7506d04e28e759651e3b7cf0f671282cfb8ab4fd (patch) | |
tree | dcc0c1b0d2b0b05ca3f50a2766c7e15cd07d3718 /man_term.c | |
parent | 1ce42efc4cb4b55e9e64a347176288d71b9d5cc5 (diff) | |
download | mandoc-7506d04e28e759651e3b7cf0f671282cfb8ab4fd.tar.gz |
First check-in of PostScript output. This does not change any logic
within term.c, but does add a small shim over putchar() that switches on
the output engine. Prints, for this initial version, only monospace and
without font decorations. It's a start.
Diffstat (limited to 'man_term.c')
-rw-r--r-- | man_term.c | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -73,12 +73,10 @@ struct termact { static int a2width(const struct man_node *); static int a2height(const struct man_node *); -static void print_man_head(struct termp *, - const struct man_meta *); +static void print_man_head(struct termp *, const void *); static void print_man_nodelist(DECL_ARGS); static void print_man_node(DECL_ARGS); -static void print_man_foot(struct termp *, - const struct man_meta *); +static void print_man_foot(struct termp *, const void *); static void print_bvspace(struct termp *, const struct man_node *); @@ -161,6 +159,8 @@ terminal_man(void *arg, const struct man *man) p->overstep = 0; p->maxrmargin = p->defrmargin; + term_begin(p, print_man_head, print_man_foot, man_meta(man)); + if (NULL == p->symtab) switch (p->enc) { case (TERMENC_ASCII): @@ -174,7 +174,6 @@ terminal_man(void *arg, const struct man *man) n = man_node(man); m = man_meta(man); - print_man_head(p, m); p->flags |= TERMP_NOSPACE; mt.fl = 0; @@ -183,7 +182,8 @@ terminal_man(void *arg, const struct man *man) if (n->child) print_man_nodelist(p, &mt, n->child, m); - print_man_foot(p, m); + + term_end(p); } @@ -858,9 +858,12 @@ print_man_nodelist(DECL_ARGS) static void -print_man_foot(struct termp *p, const struct man_meta *meta) +print_man_foot(struct termp *p, const void *arg) { char buf[DATESIZ]; + const struct man_meta *meta; + + meta = (const struct man_meta *)arg; term_fontrepl(p, TERMFONT_NONE); @@ -894,10 +897,13 @@ print_man_foot(struct termp *p, const struct man_meta *meta) static void -print_man_head(struct termp *p, const struct man_meta *m) +print_man_head(struct termp *p, const void *arg) { char buf[BUFSIZ], title[BUFSIZ]; size_t buflen, titlen; + const struct man_meta *m; + + m = (const struct man_meta *)arg; /* * Note that old groff would spit out some spaces before the |