summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-09-26 18:31:36 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-09-26 18:31:36 +0000
commit1506a0b5d201b7838d6c4bfc1f15a18ad5750684 (patch)
treea05679f4ba28159e401d05d5cb703c6fb6ea7af7
parent4520a31ae912502e6f8202ffddcf19aa750f264d (diff)
downloadmandoc-1506a0b5d201b7838d6c4bfc1f15a18ad5750684.tar.gz
SYNOPSIS functions in -Thtml text-indent and group paramters (as nroff does).
-rw-r--r--mdoc_html.c41
1 files changed, 24 insertions, 17 deletions
diff --git a/mdoc_html.c b/mdoc_html.c
index 90bc2f26..2fbf2da9 100644
--- a/mdoc_html.c
+++ b/mdoc_html.c
@@ -1603,26 +1603,27 @@ static int
mdoc_fn_pre(MDOC_ARGS)
{
struct tag *t;
- struct htmlpair tag;
+ struct htmlpair tag[2];
const struct mdoc_node *nn;
char nbuf[BUFSIZ];
const char *sp, *ep;
- int sz;
+ int sz, i;
if (SEC_SYNOPSIS == n->sec) {
- if (n->next) {
- tag.key = ATTR_STYLE;
- tag.val = "margin-bottom: 1em";
- print_otag(h, TAG_DIV, 1, &tag);
- } else
- print_otag(h, TAG_DIV, 0, NULL);
+ bufcat("margin-left: 6em;");
+ bufcat("text-indent: -6em;");
+ if (n->next)
+ bufcat("margin-bottom: 1em;");
+ tag[0].key = ATTR_STYLE;
+ tag[0].val = buf;
+ print_otag(h, TAG_DIV, 1, tag);
}
/* Split apart into type and name. */
- tag.key = ATTR_CLASS;
- tag.val = "ftype";
- t = print_otag(h, TAG_SPAN, 1, &tag);
+ tag[0].key = ATTR_CLASS;
+ tag[0].val = "ftype";
+ t = print_otag(h, TAG_SPAN, 1, tag);
assert(n->child->string);
sp = n->child->string;
@@ -1636,9 +1637,9 @@ mdoc_fn_pre(MDOC_ARGS)
print_tagq(h, t);
- tag.key = ATTR_CLASS;
- tag.val = "fname";
- t = print_otag(h, TAG_SPAN, 1, &tag);
+ tag[0].key = ATTR_CLASS;
+ tag[0].val = "fname";
+ t = print_otag(h, TAG_SPAN, 1, tag);
if (sp) {
(void)strlcpy(nbuf, sp, BUFSIZ);
@@ -1651,9 +1652,15 @@ mdoc_fn_pre(MDOC_ARGS)
print_text(h, "(");
for (nn = n->child->next; nn; nn = nn->next) {
- tag.key = ATTR_CLASS;
- tag.val = "farg";
- t = print_otag(h, TAG_SPAN, 1, &tag);
+ i = 0;
+ tag[i].key = ATTR_CLASS;
+ tag[i++].val = "farg";
+ if (SEC_SYNOPSIS == n->sec) {
+ tag[i].key = ATTR_STYLE;
+ tag[i++].val = "white-space: nowrap;";
+ }
+
+ t = print_otag(h, TAG_SPAN, i, tag);
print_text(h, nn->string);
print_tagq(h, t);
if (nn->next)