diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-07-25 11:44:31 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-07-25 11:44:31 +0000 |
commit | 293f60fc4c5da55d6d60cd5efae8fc3db6d1b964 (patch) | |
tree | 35e6ec4d552e8b3f820c3b7af4f92c40368ed8c5 /main.c | |
parent | 51184530e5f6227337cd723f15e86a6c926f7286 (diff) | |
download | mandoc-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.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -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); |