aboutsummaryrefslogtreecommitdiffstatshomepage
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
commit46dd3365d4def0a50cf065f76bc39e52dfa71d82 (patch)
tree74b9fa659fcc01b96403653d79d3b6d33e020e85 /man_term.c
parent330def09deee27bc7f1f70f0870aebf0eeddd62c (diff)
downloadmandoc-46dd3365d4def0a50cf065f76bc39e52dfa71d82.tar.gz
mandoc-46dd3365d4def0a50cf065f76bc39e52dfa71d82.tar.zst
mandoc-46dd3365d4def0a50cf065f76bc39e52dfa71d82.zip
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.c24
1 files changed, 15 insertions, 9 deletions
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 <kristaps@kth.se>
*
@@ -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