summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-07-25 11:44:31 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-07-25 11:44:31 +0000
commit293f60fc4c5da55d6d60cd5efae8fc3db6d1b964 (patch)
tree35e6ec4d552e8b3f820c3b7af4f92c40368ed8c5 /main.c
parent51184530e5f6227337cd723f15e86a6c926f7286 (diff)
downloadmandoc-293f60fc4c5da55d6d60cd5efae8fc3db6d1b964.tar.gz
Initial PDF shim over PS. This produces working PDF output with -Tpdf.
It's currently missing the xref table, so you'll get a warning in most PDF viewers). It also produces lots of redundant output, which will go away once I get a better handle on the PDF spec. The code doesn't really touch any existing functionality; it's a bunch of conditionals atop the -Tps (term_ps.c) implementation. I'm checking it in now to have it exist and be auditable. It needs clean-up, polish, and general care (and xref!).
Diffstat (limited to 'main.c')
-rw-r--r--main.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/main.c b/main.c
index 9d5a90bd..00b90add 100644
--- a/main.c
+++ b/main.c
@@ -68,7 +68,8 @@ enum outt {
OUTT_HTML,
OUTT_XHTML,
OUTT_LINT,
- OUTT_PS
+ OUTT_PS,
+ OUTT_PDF
};
struct curparse {
@@ -630,9 +631,13 @@ fdesc(struct curparse *curp)
curp->outdata = ascii_alloc(curp->outopts);
curp->outfree = ascii_free;
break;
+ case (OUTT_PDF):
+ curp->outdata = pdf_alloc(curp->outopts);
+ curp->outfree = pspdf_free;
+ break;
case (OUTT_PS):
curp->outdata = ps_alloc(curp->outopts);
- curp->outfree = ps_free;
+ curp->outfree = pspdf_free;
break;
default:
break;
@@ -650,6 +655,8 @@ fdesc(struct curparse *curp)
curp->outman = tree_man;
curp->outmdoc = tree_mdoc;
break;
+ case (OUTT_PDF):
+ /* FALLTHROUGH */
case (OUTT_ASCII):
/* FALLTHROUGH */
case (OUTT_PS):
@@ -784,6 +791,8 @@ toptions(struct curparse *curp, char *arg)
curp->outtype = OUTT_XHTML;
else if (0 == strcmp(arg, "ps"))
curp->outtype = OUTT_PS;
+ else if (0 == strcmp(arg, "pdf"))
+ curp->outtype = OUTT_PDF;
else {
fprintf(stderr, "%s: Bad argument\n", arg);
return(0);