=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_html.c,v retrieving revision 1.56 retrieving revision 1.57 diff -c -r1.56 -r1.57 *** src/usr.bin/mandoc/mdoc_html.c 2011/04/24 16:22:02 1.56 --- src/usr.bin/mandoc/mdoc_html.c 2011/05/29 21:22:18 1.57 *************** *** 1,4 **** ! /* $Id: mdoc_html.c,v 1.56 2011/04/24 16:22:02 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * --- 1,4 ---- ! /* $Id: mdoc_html.c,v 1.57 2011/05/29 21:22:18 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * *************** *** 284,290 **** if ( ! a2roffsu(p, su, SCALE_MAX)) { su->unit = SCALE_BU; ! su->scale = (int)strlen(p); } } --- 284,290 ---- if ( ! a2roffsu(p, su, SCALE_MAX)) { su->unit = SCALE_BU; ! su->scale = html_strlen(p); } } *************** *** 351,357 **** SCALE_HS_INIT(su, INDENT * 2); else if ( ! a2roffsu(p, su, SCALE_MAX)) { su->unit = SCALE_BU; ! su->scale = (int)strlen(p); } } --- 351,357 ---- SCALE_HS_INIT(su, INDENT * 2); else if ( ! a2roffsu(p, su, SCALE_MAX)) { su->unit = SCALE_BU; ! su->scale = html_strlen(p); } } *************** *** 378,390 **** print_gen_head(h); bufinit(h); ! buffmt(h, "%s(%s)", m->title, m->msec); ! if (m->arch) { ! bufcat(h, " ("); ! bufcat(h, m->arch); ! bufcat(h, ")"); ! } print_otag(h, TAG_TITLE, 0, NULL); print_text(h, h->buf); --- 378,387 ---- print_gen_head(h); bufinit(h); ! bufcat_fmt(h, "%s(%s)", m->title, m->msec); ! if (m->arch) ! bufcat_fmt(h, " (%s)", m->arch); print_otag(h, TAG_TITLE, 0, NULL); print_text(h, h->buf); *************** *** 411,417 **** child = 1; t = h->tags.head; - bufinit(h); switch (n->type) { case (MDOC_ROOT): child = mdoc_root_pre(m, n, h); --- 408,413 ---- *************** *** 480,486 **** print_stagq(h, t); - bufinit(h); switch (n->type) { case (MDOC_ROOT): mdoc_root_post(m, n, h); --- 476,481 ---- *************** *** 602,608 **** mdoc_sh_pre(MDOC_ARGS) { struct htmlpair tag; - char buf[BUFSIZ]; if (MDOC_BLOCK == n->type) { PAIR_CLASS_INIT(&tag, "section"); --- 597,602 ---- *************** *** 611,624 **** } else if (MDOC_BODY == n->type) return(1); ! buf[0] = '\0'; for (n = n->child; n; n = n->next) { ! html_idcat(buf, n->string, BUFSIZ); if (n->next) ! html_idcat(buf, " ", BUFSIZ); } ! PAIR_ID_INIT(&tag, buf); print_otag(h, TAG_H1, 1, &tag); return(1); } --- 605,618 ---- } else if (MDOC_BODY == n->type) return(1); ! bufinit(h); for (n = n->child; n; n = n->next) { ! bufcat_id(h, n->string); if (n->next) ! bufcat_id(h, " "); } ! PAIR_ID_INIT(&tag, h->buf); print_otag(h, TAG_H1, 1, &tag); return(1); } *************** *** 629,635 **** mdoc_ss_pre(MDOC_ARGS) { struct htmlpair tag; - char buf[BUFSIZ]; if (MDOC_BLOCK == n->type) { PAIR_CLASS_INIT(&tag, "subsection"); --- 623,628 ---- *************** *** 638,651 **** } else if (MDOC_BODY == n->type) return(1); ! buf[0] = '\0'; for (n = n->child; n; n = n->next) { ! html_idcat(buf, n->string, BUFSIZ); if (n->next) ! html_idcat(buf, " ", BUFSIZ); } ! PAIR_ID_INIT(&tag, buf); print_otag(h, TAG_H2, 1, &tag); return(1); } --- 631,644 ---- } else if (MDOC_BODY == n->type) return(1); ! bufinit(h); for (n = n->child; n; n = n->next) { ! bufcat_id(h, n->string); if (n->next) ! bufcat_id(h, " "); } ! PAIR_ID_INIT(&tag, h->buf); print_otag(h, TAG_H2, 1, &tag); return(1); } *************** *** 699,705 **** { struct htmlpair tag; struct roffsu su; ! size_t len; switch (n->type) { case (MDOC_ELEM): --- 692,698 ---- { struct htmlpair tag; struct roffsu su; ! int len; switch (n->type) { case (MDOC_ELEM): *************** *** 727,738 **** for (len = 0, n = n->child; n; n = n->next) if (MDOC_TEXT == n->type) ! len += strlen(n->string); if (0 == len && m->name) ! len = strlen(m->name); SCALE_HS_INIT(&su, (double)len); bufcat_su(h, "width", &su); PAIR_STYLE_INIT(&tag, h); print_otag(h, TAG_COL, 1, &tag); --- 720,732 ---- for (len = 0, n = n->child; n; n = n->next) if (MDOC_TEXT == n->type) ! len += html_strlen(n->string); if (0 == len && m->name) ! len = html_strlen(m->name); SCALE_HS_INIT(&su, (double)len); + bufinit(h); bufcat_su(h, "width", &su); PAIR_STYLE_INIT(&tag, h); print_otag(h, TAG_COL, 1, &tag); *************** *** 895,900 **** --- 889,896 ---- assert(lists[type]); PAIR_CLASS_INIT(&tag[0], lists[type]); + bufinit(h); + if (MDOC_HEAD == n->type) { switch (type) { case(LIST_bullet): *************** *** 995,1000 **** --- 991,998 ---- struct roffsu su; char buf[BUFSIZ]; + bufinit(h); + if (MDOC_BODY == n->type) { if (LIST_column == n->norm->Bl.type) print_otag(h, TAG_TBODY, 0, NULL); *************** *** 1014,1020 **** for (i = 0; i < (int)n->norm->Bl.ncols; i++) { a2width(n->norm->Bl.cols[i], &su); - bufinit(h); if (i < (int)n->norm->Bl.ncols - 1) bufcat_su(h, "width", &su); else --- 1012,1017 ---- *************** *** 1143,1148 **** --- 1140,1146 ---- return(1); SCALE_VS_INIT(&su, 0); + bufinit(h); bufcat_su(h, "margin-top", &su); bufcat_su(h, "margin-bottom", &su); PAIR_STYLE_INIT(&tag[0], h); *************** *** 1167,1183 **** mdoc_sx_pre(MDOC_ARGS) { struct htmlpair tag[2]; - char buf[BUFSIZ]; ! strlcpy(buf, "#", BUFSIZ); for (n = n->child; n; n = n->next) { ! html_idcat(buf, n->string, BUFSIZ); if (n->next) ! html_idcat(buf, " ", BUFSIZ); } PAIR_CLASS_INIT(&tag[0], "link-sec"); ! PAIR_HREF_INIT(&tag[1], buf); print_otag(h, TAG_I, 1, tag); print_otag(h, TAG_A, 2, tag); --- 1165,1181 ---- mdoc_sx_pre(MDOC_ARGS) { struct htmlpair tag[2]; ! bufinit(h); ! bufcat(h, "#x"); for (n = n->child; n; n = n->next) { ! bufcat_id(h, n->string); if (n->next) ! bufcat_id(h, " "); } PAIR_CLASS_INIT(&tag[0], "link-sec"); ! PAIR_HREF_INIT(&tag[1], h->buf); print_otag(h, TAG_I, 1, tag); print_otag(h, TAG_A, 2, tag); *************** *** 1215,1221 **** SCALE_HS_INIT(&su, 0); if (n->norm->Bd.offs) a2offs(n->norm->Bd.offs, &su); ! bufcat_su(h, "margin-left", &su); PAIR_STYLE_INIT(&tag[0], h); --- 1213,1220 ---- SCALE_HS_INIT(&su, 0); if (n->norm->Bd.offs) a2offs(n->norm->Bd.offs, &su); ! ! bufinit(h); bufcat_su(h, "margin-left", &su); PAIR_STYLE_INIT(&tag[0], h); *************** *** 1434,1440 **** buf[sz - 1] = '\0'; PAIR_CLASS_INIT(&tag[0], "link-includes"); - bufinit(h); i = 1; if (h->base_includes) { --- 1433,1438 ---- *************** *** 1556,1563 **** print_text(h, "("); h->flags |= HTML_NOSPACE; - bufinit(h); PAIR_CLASS_INIT(&tag[0], "farg"); bufcat_style(h, "white-space", "nowrap"); PAIR_STYLE_INIT(&tag[1], h); --- 1554,1561 ---- print_text(h, "("); h->flags |= HTML_NOSPACE; PAIR_CLASS_INIT(&tag[0], "farg"); + bufinit(h); bufcat_style(h, "white-space", "nowrap"); PAIR_STYLE_INIT(&tag[1], h); *************** *** 1636,1641 **** --- 1634,1640 ---- } else su.scale = 0; + bufinit(h); bufcat_su(h, "height", &su); PAIR_STYLE_INIT(&tag, h); print_otag(h, TAG_DIV, 1, &tag); *************** *** 1772,1781 **** assert(MDOC_TEXT == n->type); PAIR_CLASS_INIT(&tag[0], "link-includes"); - bufinit(h); i = 1; - if (h->base_includes) { buffmt_includes(h, n->string); PAIR_HREF_INIT(&tag[i], h->buf); --- 1771,1778 ---- *************** *** 1914,1919 **** --- 1911,1917 ---- * We want this to be inline-formatted, but needs to be div to * accept block children. */ + bufinit(h); bufcat_style(h, "display", "inline"); SCALE_HS_INIT(&su, 1); /* Needs a left-margin for spacing. */