diff options
author | 2010-06-26 17:56:43 +0000 | |
---|---|---|
committer | 2010-06-26 17:56:43 +0000 | |
commit | 31e23753b05f04d81ab46d29a4735101cfe0a2f5 (patch) | |
tree | e2860d869c2e4678e3a7f346c2853fec8b7768f9 /usr.bin/mandoc/mdoc_html.c | |
parent | Add GENERIC.MP. (diff) | |
download | wireguard-openbsd-31e23753b05f04d81ab46d29a4735101cfe0a2f5.tar.xz wireguard-openbsd-31e23753b05f04d81ab46d29a4735101cfe0a2f5.zip |
merge release 1.10.2
* bug fixes:
- interaction of ASCII_HYPH with special chars (found by Ulrich Spoerlein)
- handling of roff conditionals (found by Ulrich Spoerlein)
- .Bd -offset will no more default to 6n
* maintenance:
- more caching of .Bd and .Bl arguments for efficiency
- deconstify man(7) validation routines
- add FreeBSD library names (provided by Ulrich Spoerlein)
* start PostScript font-switching
Diffstat (limited to 'usr.bin/mandoc/mdoc_html.c')
-rw-r--r-- | usr.bin/mandoc/mdoc_html.c | 70 |
1 files changed, 21 insertions, 49 deletions
diff --git a/usr.bin/mandoc/mdoc_html.c b/usr.bin/mandoc/mdoc_html.c index bf7fc126b9c..4fac42a6faa 100644 --- a/usr.bin/mandoc/mdoc_html.c +++ b/usr.bin/mandoc/mdoc_html.c @@ -1,6 +1,6 @@ -/* $Id: mdoc_html.c,v 1.21 2010/06/08 00:11:47 schwarze Exp $ */ +/* $Id: mdoc_html.c,v 1.22 2010/06/26 17:56:43 schwarze Exp $ */ /* - * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se> + * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -1031,11 +1031,13 @@ mdoc_it_pre(MDOC_ARGS) if (MDOC_BLOCK != n->type) bl = bl->parent; - type = bl->data.list; + SCALE_HS_INIT(&offs, 0); - /* Set default width and offset. */ + type = bl->data.Bl.type; + comp = bl->data.Bl.comp; - SCALE_HS_INIT(&offs, 0); + if (bl->data.Bl.offs) + a2offs(bl->data.Bl.offs, &offs); switch (type) { case (LIST_enum): @@ -1052,23 +1054,15 @@ mdoc_it_pre(MDOC_ARGS) break; } - /* Get width, offset, and compact arguments. */ + if (bl->data.Bl.width) + a2width(bl->data.Bl.width, &width); wp = -1; - for (comp = i = 0; bl->args && i < (int)bl->args->argc; i++) + for (i = 0; bl->args && i < (int)bl->args->argc; i++) switch (bl->args->argv[i].arg) { case (MDOC_Column): wp = i; /* Save for later. */ break; - case (MDOC_Width): - a2width(bl->args->argv[i].value[0], &width); - break; - case (MDOC_Offset): - a2offs(bl->args->argv[i].value[0], &offs); - break; - case (MDOC_Compact): - comp = 1; - break; default: break; } @@ -1119,7 +1113,7 @@ mdoc_bl_pre(MDOC_ARGS) return(0); if (MDOC_BLOCK != n->type) return(1); - if (LIST_enum != n->data.list) + if (LIST_enum != n->data.Bl.type) return(1); ord = malloc(sizeof(struct ord)); @@ -1143,7 +1137,7 @@ mdoc_bl_post(MDOC_ARGS) if (MDOC_BLOCK != n->type) return; - if (LIST_enum != n->data.list) + if (LIST_enum != n->data.Bl.type) return; ord = h->ords.head; @@ -1349,42 +1343,19 @@ static int mdoc_bd_pre(MDOC_ARGS) { struct htmlpair tag[2]; - int type, comp, i; - const struct mdoc_node *bl, *nn; + int comp; + const struct mdoc_node *nn; struct roffsu su; - if (MDOC_BLOCK == n->type) - bl = n; - else if (MDOC_HEAD == n->type) + if (MDOC_HEAD == n->type) return(0); - else - bl = n->parent; SCALE_VS_INIT(&su, 0); - type = comp = 0; - for (i = 0; bl->args && i < (int)bl->args->argc; i++) - switch (bl->args->argv[i].arg) { - case (MDOC_Offset): - a2offs(bl->args->argv[i].value[0], &su); - break; - case (MDOC_Compact): - comp = 1; - break; - case (MDOC_Centred): - /* FALLTHROUGH */ - case (MDOC_Ragged): - /* FALLTHROUGH */ - case (MDOC_Filled): - /* FALLTHROUGH */ - case (MDOC_Unfilled): - /* FALLTHROUGH */ - case (MDOC_Literal): - type = bl->args->argv[i].arg; - break; - default: - break; - } + if (n->data.Bd.offs) + a2offs(n->data.Bd.offs, &su); + + comp = n->data.Bd.comp; /* FIXME: -centered, etc. formatting. */ /* FIXME: does not respect -offset ??? */ @@ -1411,7 +1382,8 @@ mdoc_bd_pre(MDOC_ARGS) return(1); } - if (MDOC_Unfilled != type && MDOC_Literal != type) + if (DISP_unfilled != n->data.Bd.type && + DISP_literal != n->data.Bd.type) return(1); PAIR_CLASS_INIT(&tag[0], "lit"); |