From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (kristaps@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.3/8.14.3) with ESMTP id o5TErEZM018816 for ; Tue, 29 Jun 2010 10:53:15 -0400 (EDT) Received: (from kristaps@localhost) by krisdoz.my.domain (8.14.3/8.14.3/Submit) id o5TErEHu003917; Tue, 29 Jun 2010 10:53:14 -0400 (EDT) Date: Tue, 29 Jun 2010 10:53:14 -0400 (EDT) Message-Id: <201006291453.o5TErEHu003917@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: kristaps@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Add in -Opaper=xxx support for -Tps postscript. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Add in -Opaper=xxx support for -Tps postscript. This doesn't have any functional changes beyond the getsubopt() parse in term_ps.c. If you want to test this (it only does -Opaper=a4 and -Opaper=letter; adding more is trivial), make sure you specify (e.g.) -sPAPERSIZE=a4 to gs(1). Modified Files: -------------- mdocml: main.c main.h term_ps.c Revision Data ------------- Index: term_ps.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/term_ps.c,v retrieving revision 1.16 retrieving revision 1.17 diff -Lterm_ps.c -Lterm_ps.c -u -p -r1.16 -r1.17 --- term_ps.c +++ term_ps.c @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -373,14 +374,17 @@ static void ps_setfont(struct termp * void * -ps_alloc(void) +ps_alloc(char *outopts) { struct termp *p; size_t pagex, pagey, margin; + const char *toks[2]; + char *v; if (NULL == (p = term_alloc(TERMENC_ASCII))) return(NULL); + /* Default is USA letter. */ pagex = 612; pagey = 792; margin = 72; @@ -392,6 +396,24 @@ ps_alloc(void) p->advance = ps_advance; p->endline = ps_endline; p->width = ps_width; + + toks[0] = "paper"; + toks[1] = NULL; + + while (outopts && *outopts) + switch (getsubopt(&outopts, UNCONST(toks), &v)) { + case (0): + if (0 == strcasecmp(v, "a4")) { + pagex = 595; + pagey = 842; + } else if (0 == strcasecmp(v, "letter")) { + pagex = 612; + pagey = 792; + } + break; + default: + break; + } assert(margin * 2 < pagex); assert(margin * 2 < pagey); Index: main.h =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/main.h,v retrieving revision 1.7 retrieving revision 1.8 diff -Lmain.h -Lmain.h -u -p -r1.7 -r1.8 --- main.h +++ main.h @@ -44,7 +44,7 @@ void tree_man(void *, const struct ma void *ascii_alloc(char *); void ascii_free(void *); -void *ps_alloc(void); +void *ps_alloc(char *); void ps_free(void *); void terminal_mdoc(void *, const struct mdoc *); Index: main.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/main.c,v retrieving revision 1.92 retrieving revision 1.93 diff -Lmain.c -Lmain.c -u -p -r1.92 -r1.93 --- main.c +++ main.c @@ -599,7 +599,7 @@ fdesc(struct curparse *curp) curp->outfree = ascii_free; break; case (OUTT_PS): - curp->outdata = ps_alloc(); + curp->outdata = ps_alloc(curp->outopts); curp->outfree = ps_free; break; default: -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv