summaryrefslogtreecommitdiffstats
path: root/man_term.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-06-07 20:57:09 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-06-07 20:57:09 +0000
commit7506d04e28e759651e3b7cf0f671282cfb8ab4fd (patch)
treedcc0c1b0d2b0b05ca3f50a2766c7e15cd07d3718 /man_term.c
parent1ce42efc4cb4b55e9e64a347176288d71b9d5cc5 (diff)
downloadmandoc-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.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/man_term.c b/man_term.c
index 2d82a83b..b5497e50 100644
--- a/man_term.c
+++ b/man_term.c
@@ -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