summaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_html.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-05-17 11:34:31 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-05-17 11:34:31 +0000
commited7b34daec8f64113849ed8b3d816f617cdf3983 (patch)
tree3b378d6fd5062d61cf9ce4e13cd7d6fc4b4eada1 /mdoc_html.c
parent200e43749bd89f28c28647ce1c2736de721d6de8 (diff)
downloadmandoc-ed7b34daec8f64113849ed8b3d816f617cdf3983.tar.gz
mandoc-ed7b34daec8f64113849ed8b3d816f617cdf3983.tar.zst
mandoc-ed7b34daec8f64113849ed8b3d816f617cdf3983.zip
Cleanups in -T[x]html: make html_idcat() use the buffer and be called
bufcat_id(), then collapse it into a little function without so much crap. Next, make bufinit() only be called when we really need to do so, and not simply before pre/post calls.
Diffstat (limited to 'mdoc_html.c')
-rw-r--r--mdoc_html.c55
1 files changed, 26 insertions, 29 deletions
diff --git a/mdoc_html.c b/mdoc_html.c
index b5fc053a..1e766b04 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_html.c,v 1.167 2011/05/17 11:19:45 kristaps Exp $ */
+/* $Id: mdoc_html.c,v 1.168 2011/05/17 11:34:31 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -384,11 +384,8 @@ print_mdoc_head(MDOC_ARGS)
bufinit(h);
bufcat_fmt(h, "%s(%s)", m->title, m->msec);
- if (m->arch) {
- bufcat(h, " (");
- bufcat(h, m->arch);
- bufcat(h, ")");
- }
+ if (m->arch)
+ bufcat_fmt(h, " (%s)", m->arch);
print_otag(h, TAG_TITLE, 0, NULL);
print_text(h, h->buf);
@@ -415,7 +412,6 @@ print_mdoc_node(MDOC_ARGS)
child = 1;
t = h->tags.head;
- bufinit(h);
switch (n->type) {
case (MDOC_ROOT):
child = mdoc_root_pre(m, n, h);
@@ -484,7 +480,6 @@ print_mdoc_node(MDOC_ARGS)
print_stagq(h, t);
- bufinit(h);
switch (n->type) {
case (MDOC_ROOT):
mdoc_root_post(m, n, h);
@@ -606,7 +601,6 @@ static int
mdoc_sh_pre(MDOC_ARGS)
{
struct htmlpair tag;
- char buf[BUFSIZ];
if (MDOC_BLOCK == n->type) {
PAIR_CLASS_INIT(&tag, "section");
@@ -615,14 +609,14 @@ mdoc_sh_pre(MDOC_ARGS)
} else if (MDOC_BODY == n->type)
return(1);
- buf[0] = '\0';
+ bufinit(h);
for (n = n->child; n; n = n->next) {
- html_idcat(buf, n->string, BUFSIZ);
+ bufcat_id(h, n->string);
if (n->next)
- html_idcat(buf, " ", BUFSIZ);
+ bufcat_id(h, " ");
}
- PAIR_ID_INIT(&tag, buf);
+ PAIR_ID_INIT(&tag, h->buf);
print_otag(h, TAG_H1, 1, &tag);
return(1);
}
@@ -633,7 +627,6 @@ static int
mdoc_ss_pre(MDOC_ARGS)
{
struct htmlpair tag;
- char buf[BUFSIZ];
if (MDOC_BLOCK == n->type) {
PAIR_CLASS_INIT(&tag, "subsection");
@@ -642,14 +635,14 @@ mdoc_ss_pre(MDOC_ARGS)
} else if (MDOC_BODY == n->type)
return(1);
- buf[0] = '\0';
+ bufinit(h);
for (n = n->child; n; n = n->next) {
- html_idcat(buf, n->string, BUFSIZ);
+ bufcat_id(h, n->string);
if (n->next)
- html_idcat(buf, " ", BUFSIZ);
+ bufcat_id(h, " ");
}
- PAIR_ID_INIT(&tag, buf);
+ PAIR_ID_INIT(&tag, h->buf);
print_otag(h, TAG_H2, 1, &tag);
return(1);
}
@@ -737,6 +730,7 @@ mdoc_nm_pre(MDOC_ARGS)
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);
@@ -899,6 +893,8 @@ mdoc_it_pre(MDOC_ARGS)
assert(lists[type]);
PAIR_CLASS_INIT(&tag[0], lists[type]);
+ bufinit(h);
+
if (MDOC_HEAD == n->type) {
switch (type) {
case(LIST_bullet):
@@ -999,6 +995,8 @@ mdoc_bl_pre(MDOC_ARGS)
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);
@@ -1018,7 +1016,6 @@ mdoc_bl_pre(MDOC_ARGS)
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
@@ -1147,6 +1144,7 @@ mdoc_d1_pre(MDOC_ARGS)
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);
@@ -1171,17 +1169,16 @@ static int
mdoc_sx_pre(MDOC_ARGS)
{
struct htmlpair tag[2];
- char buf[BUFSIZ];
- strlcpy(buf, "#", BUFSIZ);
+ bufinit(h);
for (n = n->child; n; n = n->next) {
- html_idcat(buf, n->string, BUFSIZ);
+ bufcat_id(h, n->string);
if (n->next)
- html_idcat(buf, " ", BUFSIZ);
+ bufcat_id(h, " ");
}
PAIR_CLASS_INIT(&tag[0], "link-sec");
- PAIR_HREF_INIT(&tag[1], buf);
+ PAIR_HREF_INIT(&tag[1], h->buf);
print_otag(h, TAG_I, 1, tag);
print_otag(h, TAG_A, 2, tag);
@@ -1219,7 +1216,8 @@ mdoc_bd_pre(MDOC_ARGS)
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);
@@ -1438,7 +1436,6 @@ mdoc_fd_pre(MDOC_ARGS)
buf[sz - 1] = '\0';
PAIR_CLASS_INIT(&tag[0], "link-includes");
- bufinit(h);
i = 1;
if (h->base_includes) {
@@ -1560,8 +1557,8 @@ mdoc_fn_pre(MDOC_ARGS)
print_text(h, "(");
h->flags |= HTML_NOSPACE;
- bufinit(h);
PAIR_CLASS_INIT(&tag[0], "farg");
+ bufinit(h);
bufcat_style(h, "white-space", "nowrap");
PAIR_STYLE_INIT(&tag[1], h);
@@ -1640,6 +1637,7 @@ mdoc_sp_pre(MDOC_ARGS)
} else
su.scale = 0;
+ bufinit(h);
bufcat_su(h, "height", &su);
PAIR_STYLE_INIT(&tag, h);
print_otag(h, TAG_DIV, 1, &tag);
@@ -1776,10 +1774,8 @@ mdoc_in_pre(MDOC_ARGS)
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);
@@ -1918,6 +1914,7 @@ mdoc_bf_pre(MDOC_ARGS)
* 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. */