From 46dd3365d4def0a50cf065f76bc39e52dfa71d82 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Mon, 7 Jun 2010 20:57:09 +0000 Subject: 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. --- man_term.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'man_term.c') diff --git a/man_term.c b/man_term.c index c637a309..a7a1a652 100644 --- a/man_term.c +++ b/man_term.c @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.72 2010/05/26 14:03:54 kristaps Exp $ */ +/* $Id: man_term.c,v 1.73 2010/06/07 20:57:09 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -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 -- cgit v1.2.3