aboutsummaryrefslogtreecommitdiffstatshomepage
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
commit0236a2d85af70886c7725a1f28a04ad4216a5d4d (patch)
treea1a4136aa89d8b5016190592a94ff6b4ff86ecc2 /main.c
parent0e2017eae6791396ef69390438420f7e18dda0e0 (diff)
downloadmandoc-0236a2d85af70886c7725a1f28a04ad4216a5d4d.tar.gz
mandoc-0236a2d85af70886c7725a1f28a04ad4216a5d4d.tar.zst
mandoc-0236a2d85af70886c7725a1f28a04ad4216a5d4d.zip
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.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/main.c b/main.c
index 66f5df88..b28b285b 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.99 2010/07/20 14:56:42 kristaps Exp $ */
+/* $Id: main.c,v 1.100 2010/07/25 11:44:31 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -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);