=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.150 retrieving revision 1.155 diff -u -p -r1.150 -r1.155 --- mandoc/mdoc_html.c 2011/02/02 21:40:45 1.150 +++ mandoc/mdoc_html.c 2011/03/22 14:05:45 1.155 @@ -1,6 +1,6 @@ -/* $Id: mdoc_html.c,v 1.150 2011/02/02 21:40:45 kristaps Exp $ */ +/* $Id: mdoc_html.c,v 1.155 2011/03/22 14:05:45 kristaps Exp $ */ /* - * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons + * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -410,6 +410,7 @@ print_mdoc_node(MDOC_ARGS) { int child; struct tag *t; + struct htmlpair tag; child = 1; t = h->tags.head; @@ -430,8 +431,17 @@ print_mdoc_node(MDOC_ARGS) if (' ' == *n->string && MDOC_LINE & n->flags) if ( ! (HTML_LITERAL & h->flags)) print_otag(h, TAG_BR, 0, NULL); + if (MDOC_DELIMC & n->flags) + h->flags |= HTML_NOSPACE; print_text(h, n->string); + if (MDOC_DELIMO & n->flags) + h->flags |= HTML_NOSPACE; return; + case (MDOC_EQN): + PAIR_CLASS_INIT(&tag, "eqn"); + print_otag(h, TAG_SPAN, 1, &tag); + print_text(h, n->eqn->data); + break; case (MDOC_TBL): /* * This will take care of initialising all of the table @@ -479,6 +489,8 @@ print_mdoc_node(MDOC_ARGS) case (MDOC_ROOT): mdoc_root_post(m, n, h); break; + case (MDOC_EQN): + break; default: if (mdocs[n->tok].post && ENDBODY_NOT == n->end) (*mdocs[n->tok].post)(m, n, h); @@ -492,10 +504,7 @@ mdoc_root_post(MDOC_ARGS) { struct htmlpair tag[3]; struct tag *t, *tt; - char b[DATESIZ]; - time2a(m->date, b, DATESIZ); - PAIR_SUMMARY_INIT(&tag[0], "Document Footer"); PAIR_CLASS_INIT(&tag[1], "foot"); if (NULL == h->style) { @@ -514,7 +523,7 @@ mdoc_root_post(MDOC_ARGS) PAIR_CLASS_INIT(&tag[0], "foot-date"); print_otag(h, TAG_TD, 1, tag); - print_text(h, b); + print_text(h, m->date); print_stagq(h, tt); PAIR_CLASS_INIT(&tag[0], "foot-os"); @@ -804,6 +813,7 @@ mdoc_xx_pre(MDOC_ARGS) { const char *pp; struct htmlpair tag; + int flags; switch (n->tok) { case (MDOC_Bsx): @@ -833,9 +843,10 @@ mdoc_xx_pre(MDOC_ARGS) print_text(h, pp); if (n->child) { + flags = h->flags; h->flags |= HTML_KEEP; print_text(h, n->child->string); - h->flags &= ~HTML_KEEP; + h->flags = flags; } return(0); } @@ -1374,12 +1385,16 @@ mdoc_fa_pre(MDOC_ARGS) t = print_otag(h, TAG_I, 1, &tag); print_text(h, nn->string); print_tagq(h, t); - if (nn->next) + if (nn->next) { + h->flags |= HTML_NOSPACE; print_text(h, ","); + } } - if (n->child && n->next && n->next->tok == MDOC_Fa) + if (n->child && n->next && n->next->tok == MDOC_Fa) { + h->flags |= HTML_NOSPACE; print_text(h, ","); + } return(0); } @@ -1507,13 +1522,19 @@ mdoc_fn_pre(MDOC_ARGS) t = print_otag(h, TAG_I, i, tag); print_text(h, nn->string); print_tagq(h, t); - if (nn->next) + if (nn->next) { + h->flags |= HTML_NOSPACE; print_text(h, ","); + } } + h->flags |= HTML_NOSPACE; print_text(h, ")"); - if (MDOC_SYNPRETTY & n->flags) + + if (MDOC_SYNPRETTY & n->flags) { + h->flags |= HTML_NOSPACE; print_text(h, ";"); + } return(0); } @@ -1664,7 +1685,9 @@ mdoc_fo_post(MDOC_ARGS) if (MDOC_BODY != n->type) return; + h->flags |= HTML_NOSPACE; print_text(h, ")"); + h->flags |= HTML_NOSPACE; print_text(h, ";"); } @@ -2025,6 +2048,7 @@ mdoc__x_post(MDOC_ARGS) if (NULL == n->parent || MDOC_Rs != n->parent->tok) return; + h->flags |= HTML_NOSPACE; print_text(h, n->next ? "," : "."); }