=================================================================== RCS file: /cvs/mandoc/mdoc_html.c,v retrieving revision 1.24 retrieving revision 1.30 diff -u -p -r1.24 -r1.30 --- mandoc/mdoc_html.c 2009/10/07 14:39:00 1.24 +++ mandoc/mdoc_html.c 2009/10/15 01:33:12 1.30 @@ -1,4 +1,4 @@ -/* $Id: mdoc_html.c,v 1.24 2009/10/07 14:39:00 kristaps Exp $ */ +/* $Id: mdoc_html.c,v 1.30 2009/10/15 01:33:12 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -29,6 +29,7 @@ #include "out.h" #include "html.h" #include "mdoc.h" +#include "main.h" #define INDENT 5 #define HALFINDENT 3 @@ -49,16 +50,11 @@ static void print_mdoc_nodelist(MDOC_ARGS); static void a2width(const char *, struct roffsu *); static void a2offs(const char *, struct roffsu *); + static int a2list(const struct mdoc_node *); static void mdoc_root_post(MDOC_ARGS); static int mdoc_root_pre(MDOC_ARGS); -static int mdoc_it_block_pre(MDOC_ARGS, int, - struct roffsu *, int, - struct roffsu *); -static int mdoc_it_head_pre(MDOC_ARGS, int, - struct roffsu *); -static int mdoc_it_body_pre(MDOC_ARGS, int); static void mdoc__x_post(MDOC_ARGS); static int mdoc__x_pre(MDOC_ARGS); @@ -96,6 +92,11 @@ static void mdoc_fo_post(MDOC_ARGS); static int mdoc_fo_pre(MDOC_ARGS); static int mdoc_ic_pre(MDOC_ARGS); static int mdoc_in_pre(MDOC_ARGS); +static int mdoc_it_block_pre(MDOC_ARGS, int, int, + struct roffsu *, struct roffsu *); +static int mdoc_it_head_pre(MDOC_ARGS, int, + struct roffsu *); +static int mdoc_it_body_pre(MDOC_ARGS, int); static int mdoc_it_pre(MDOC_ARGS); static int mdoc_lb_pre(MDOC_ARGS); static int mdoc_li_pre(MDOC_ARGS); @@ -552,7 +553,7 @@ mdoc_sh_pre(MDOC_ARGS) { struct htmlpair tag[2]; const struct mdoc_node *nn; - char link[BUFSIZ]; + char lbuf[BUFSIZ]; struct roffsu su; if (MDOC_BODY == n->type) { @@ -579,11 +580,11 @@ mdoc_sh_pre(MDOC_ARGS) return(1); } - link[0] = 0; + lbuf[0] = 0; for (nn = n->child; nn; nn = nn->next) { - (void)strlcat(link, nn->string, BUFSIZ); + (void)strlcat(lbuf, nn->string, BUFSIZ); if (nn->next) - (void)strlcat(link, "_", BUFSIZ); + (void)strlcat(lbuf, "_", BUFSIZ); } /* @@ -593,7 +594,7 @@ mdoc_sh_pre(MDOC_ARGS) PAIR_CLASS_INIT(&tag[0], "sec-head"); tag[1].key = ATTR_ID; - tag[1].val = link; + tag[1].val = lbuf; print_otag(h, TAG_DIV, 2, tag); return(1); } @@ -605,7 +606,7 @@ mdoc_ss_pre(MDOC_ARGS) { struct htmlpair tag[3]; const struct mdoc_node *nn; - char link[BUFSIZ]; + char lbuf[BUFSIZ]; struct roffsu su; SCALE_VS_INIT(&su, 1); @@ -632,11 +633,11 @@ mdoc_ss_pre(MDOC_ARGS) /* TODO: see note in mdoc_sh_pre() about duplicates. */ - link[0] = 0; + lbuf[0] = 0; for (nn = n->child; nn; nn = nn->next) { - (void)strlcat(link, nn->string, BUFSIZ); + (void)strlcat(lbuf, nn->string, BUFSIZ); if (nn->next) - (void)strlcat(link, "_", BUFSIZ); + (void)strlcat(lbuf, "_", BUFSIZ); } SCALE_HS_INIT(&su, INDENT - HALFINDENT); @@ -646,7 +647,7 @@ mdoc_ss_pre(MDOC_ARGS) PAIR_CLASS_INIT(&tag[0], "ssec-head"); PAIR_STYLE_INIT(&tag[1], h); tag[2].key = ATTR_ID; - tag[2].val = link; + tag[2].val = lbuf; print_otag(h, TAG_DIV, 3, tag); return(1); } @@ -855,8 +856,8 @@ mdoc_bx_pre(MDOC_ARGS) /* ARGSUSED */ static int -mdoc_it_block_pre(MDOC_ARGS, int type, struct roffsu *offs, - int comp, struct roffsu *width) +mdoc_it_block_pre(MDOC_ARGS, int type, int comp, + struct roffsu *offs, struct roffsu *width) { struct htmlpair tag; const struct mdoc_node *nn; @@ -908,6 +909,7 @@ mdoc_it_block_pre(MDOC_ARGS, int type, struct roffsu * } +/* ARGSUSED */ static int mdoc_it_body_pre(MDOC_ARGS, int type) { @@ -937,6 +939,7 @@ mdoc_it_body_pre(MDOC_ARGS, int type) } +/* ARGSUSED */ static int mdoc_it_head_pre(MDOC_ARGS, int type, struct roffsu *width) { @@ -1079,8 +1082,8 @@ mdoc_it_pre(MDOC_ARGS) if (MDOC_BODY == n->type) return(mdoc_it_body_pre(m, n, h, type)); if (MDOC_BLOCK == n->type) - return(mdoc_it_block_pre(m, n, h, type, - &offs, comp, &width)); + return(mdoc_it_block_pre(m, n, h, type, comp, + &offs, &width)); /* Override column widths. */ @@ -1282,20 +1285,20 @@ mdoc_sx_pre(MDOC_ARGS) { struct htmlpair tag[2]; const struct mdoc_node *nn; - char link[BUFSIZ]; + char lbuf[BUFSIZ]; /* FIXME: duplicates? */ - (void)strlcpy(link, "#", BUFSIZ); + (void)strlcpy(lbuf, "#", BUFSIZ); for (nn = n->child; nn; nn = nn->next) { - (void)strlcat(link, nn->string, BUFSIZ); + (void)strlcat(lbuf, nn->string, BUFSIZ); if (nn->next) - (void)strlcat(link, "_", BUFSIZ); + (void)strlcat(lbuf, "_", BUFSIZ); } PAIR_CLASS_INIT(&tag[0], "link-sec"); tag[1].key = ATTR_HREF; - tag[1].val = link; + tag[1].val = lbuf; print_otag(h, TAG_A, 2, tag); return(1); @@ -1354,6 +1357,8 @@ mdoc_bd_pre(MDOC_ARGS) case (MDOC_Compact): comp = 1; break; + case (MDOC_Centred): + /* FALLTHROUGH */ case (MDOC_Ragged): /* FALLTHROUGH */ case (MDOC_Filled): @@ -1363,6 +1368,8 @@ mdoc_bd_pre(MDOC_ARGS) case (MDOC_Literal): type = bl->args->argv[i].arg; break; + default: + break; } if (MDOC_BLOCK == n->type) { @@ -1453,6 +1460,7 @@ mdoc_cd_pre(MDOC_ARGS) { struct htmlpair tag; + print_otag(h, TAG_DIV, 0, NULL); PAIR_CLASS_INIT(&tag, "config"); print_otag(h, TAG_SPAN, 1, &tag); return(1); @@ -1622,7 +1630,8 @@ mdoc_fn_pre(MDOC_ARGS) assert(n->child->string); sp = n->child->string; - if ((ep = strchr(sp, ' '))) { + ep = strchr(sp, ' '); + if (NULL != ep) { PAIR_CLASS_INIT(&tag[0], "ftype"); t = print_otag(h, TAG_SPAN, 1, tag);