version 1.155, 2011/03/22 14:05:45 |
version 1.161, 2011/04/04 16:44:56 |
Line 751 mdoc_nm_pre(MDOC_ARGS) |
|
Line 751 mdoc_nm_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_xr_pre(MDOC_ARGS) |
mdoc_xr_pre(MDOC_ARGS) |
{ |
{ |
struct htmlpair tag[2]; |
struct htmlpair tag[2]; |
const struct mdoc_node *nn; |
|
|
|
if (NULL == n->child) |
if (NULL == n->child) |
return(0); |
return(0); |
Line 768 mdoc_xr_pre(MDOC_ARGS) |
|
Line 767 mdoc_xr_pre(MDOC_ARGS) |
|
} else |
} else |
print_otag(h, TAG_A, 1, tag); |
print_otag(h, TAG_A, 1, tag); |
|
|
nn = n->child; |
n = n->child; |
print_text(h, nn->string); |
print_text(h, n->string); |
|
|
if (NULL == (nn = nn->next)) |
if (NULL == (n = n->next)) |
return(0); |
return(0); |
|
|
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, "("); |
print_text(h, "("); |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, nn->string); |
print_text(h, n->string); |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, ")"); |
print_text(h, ")"); |
return(0); |
return(0); |
Line 1087 mdoc_bl_pre(MDOC_ARGS) |
|
Line 1086 mdoc_bl_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_ex_pre(MDOC_ARGS) |
mdoc_ex_pre(MDOC_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
struct tag *t; |
struct tag *t; |
struct htmlpair tag; |
struct htmlpair tag; |
int nchild; |
|
|
if (n->prev) |
if (n->prev) |
print_otag(h, TAG_BR, 0, NULL); |
print_otag(h, TAG_BR, 0, NULL); |
Line 1097 mdoc_ex_pre(MDOC_ARGS) |
|
Line 1096 mdoc_ex_pre(MDOC_ARGS) |
|
PAIR_CLASS_INIT(&tag, "utility"); |
PAIR_CLASS_INIT(&tag, "utility"); |
|
|
print_text(h, "The"); |
print_text(h, "The"); |
for (nn = n->child; nn; nn = nn->next) { |
|
|
nchild = n->nchild; |
|
for (n = n->child; n; n = n->next) { |
|
assert(MDOC_TEXT == n->type); |
|
|
t = print_otag(h, TAG_B, 1, &tag); |
t = print_otag(h, TAG_B, 1, &tag); |
print_text(h, nn->string); |
print_text(h, n->string); |
print_tagq(h, t); |
print_tagq(h, t); |
|
|
h->flags |= HTML_NOSPACE; |
if (nchild > 2 && n->next) { |
|
h->flags |= HTML_NOSPACE; |
if (nn->next && NULL == nn->next->next) |
|
print_text(h, ", and"); |
|
else if (nn->next) |
|
print_text(h, ","); |
print_text(h, ","); |
else |
} |
h->flags &= ~HTML_NOSPACE; |
|
|
if (n->next && NULL == n->next->next) |
|
print_text(h, "and"); |
} |
} |
|
|
if (n->child && n->child->next) |
if (nchild > 1) |
print_text(h, "utilities exit"); |
print_text(h, "utilities exit"); |
else |
else |
print_text(h, "utility exits"); |
print_text(h, "utility exits"); |
Line 1168 mdoc_d1_pre(MDOC_ARGS) |
|
Line 1170 mdoc_d1_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_sx_pre(MDOC_ARGS) |
mdoc_sx_pre(MDOC_ARGS) |
{ |
{ |
struct htmlpair tag[2]; |
struct htmlpair tag[2]; |
const struct mdoc_node *nn; |
char buf[BUFSIZ]; |
char buf[BUFSIZ]; |
|
|
|
strlcpy(buf, "#", BUFSIZ); |
strlcpy(buf, "#", BUFSIZ); |
for (nn = n->child; nn; nn = nn->next) { |
for (n = n->child; n; n = n->next) { |
html_idcat(buf, nn->string, BUFSIZ); |
html_idcat(buf, n->string, BUFSIZ); |
if (nn->next) |
if (n->next) |
html_idcat(buf, " ", BUFSIZ); |
html_idcat(buf, " ", BUFSIZ); |
} |
} |
|
|
Line 1451 mdoc_ft_pre(MDOC_ARGS) |
|
Line 1452 mdoc_ft_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_fn_pre(MDOC_ARGS) |
mdoc_fn_pre(MDOC_ARGS) |
{ |
{ |
struct tag *t; |
struct tag *t; |
struct htmlpair tag[2]; |
struct htmlpair tag[2]; |
const struct mdoc_node *nn; |
char nbuf[BUFSIZ]; |
char nbuf[BUFSIZ]; |
const char *sp, *ep; |
const char *sp, *ep; |
int sz, i, pretty; |
int sz, i; |
|
|
|
|
pretty = MDOC_SYNPRETTY & n->flags; |
synopsis_pre(h, n); |
synopsis_pre(h, n); |
|
|
/* Split apart into type and name. */ |
/* Split apart into type and name. */ |
Line 1515 mdoc_fn_pre(MDOC_ARGS) |
|
Line 1516 mdoc_fn_pre(MDOC_ARGS) |
|
bufcat_style(h, "white-space", "nowrap"); |
bufcat_style(h, "white-space", "nowrap"); |
PAIR_STYLE_INIT(&tag[1], h); |
PAIR_STYLE_INIT(&tag[1], h); |
|
|
for (nn = n->child->next; nn; nn = nn->next) { |
for (n = n->child->next; n; n = n->next) { |
i = 1; |
i = 1; |
if (MDOC_SYNPRETTY & n->flags) |
if (MDOC_SYNPRETTY & n->flags) |
i = 2; |
i = 2; |
t = print_otag(h, TAG_I, i, tag); |
t = print_otag(h, TAG_I, i, tag); |
print_text(h, nn->string); |
print_text(h, n->string); |
print_tagq(h, t); |
print_tagq(h, t); |
if (nn->next) { |
if (n->next) { |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, ","); |
print_text(h, ","); |
} |
} |
Line 1531 mdoc_fn_pre(MDOC_ARGS) |
|
Line 1532 mdoc_fn_pre(MDOC_ARGS) |
|
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, ")"); |
print_text(h, ")"); |
|
|
if (MDOC_SYNPRETTY & n->flags) { |
if (pretty) { |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, ";"); |
print_text(h, ";"); |
} |
} |
Line 1605 mdoc_sp_pre(MDOC_ARGS) |
|
Line 1606 mdoc_sp_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_lk_pre(MDOC_ARGS) |
mdoc_lk_pre(MDOC_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
struct htmlpair tag[2]; |
struct htmlpair tag[2]; |
|
|
|
nn = n->child; |
if (NULL == (n = n->child)) |
|
return(0); |
|
|
|
assert(MDOC_TEXT == n->type); |
|
|
PAIR_CLASS_INIT(&tag[0], "link-ext"); |
PAIR_CLASS_INIT(&tag[0], "link-ext"); |
PAIR_HREF_INIT(&tag[1], nn->string); |
PAIR_HREF_INIT(&tag[1], n->string); |
|
|
print_otag(h, TAG_A, 2, tag); |
print_otag(h, TAG_A, 2, tag); |
|
|
if (NULL == nn || NULL == nn->next) |
for (n = n->next; n; n = n->next) { |
return(1); |
assert(MDOC_TEXT == n->type); |
|
print_text(h, n->string); |
|
} |
|
|
for (nn = nn->next; nn; nn = nn->next) |
|
print_text(h, nn->string); |
|
|
|
return(0); |
return(0); |
} |
} |
|
|
Line 1628 mdoc_lk_pre(MDOC_ARGS) |
|
Line 1631 mdoc_lk_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_mt_pre(MDOC_ARGS) |
mdoc_mt_pre(MDOC_ARGS) |
{ |
{ |
struct htmlpair tag[2]; |
struct htmlpair tag[2]; |
struct tag *t; |
struct tag *t; |
const struct mdoc_node *nn; |
|
|
|
PAIR_CLASS_INIT(&tag[0], "link-mail"); |
PAIR_CLASS_INIT(&tag[0], "link-mail"); |
|
|
for (nn = n->child; nn; nn = nn->next) { |
for (n = n->child; n; n = n->next) { |
|
assert(MDOC_TEXT == n->type); |
|
|
bufinit(h); |
bufinit(h); |
bufcat(h, "mailto:"); |
bufcat(h, "mailto:"); |
bufcat(h, nn->string); |
bufcat(h, n->string); |
|
|
PAIR_HREF_INIT(&tag[1], h->buf); |
PAIR_HREF_INIT(&tag[1], h->buf); |
t = print_otag(h, TAG_A, 2, tag); |
t = print_otag(h, TAG_A, 2, tag); |
print_text(h, nn->string); |
print_text(h, n->string); |
print_tagq(h, t); |
print_tagq(h, t); |
} |
} |
|
|
Line 1696 mdoc_fo_post(MDOC_ARGS) |
|
Line 1701 mdoc_fo_post(MDOC_ARGS) |
|
static int |
static int |
mdoc_in_pre(MDOC_ARGS) |
mdoc_in_pre(MDOC_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
struct tag *t; |
struct tag *t; |
struct htmlpair tag[2]; |
struct htmlpair tag[2]; |
int i; |
int i; |
|
|
|
synopsis_pre(h, n); |
synopsis_pre(h, n); |
|
|
PAIR_CLASS_INIT(&tag[0], "includes"); |
PAIR_CLASS_INIT(&tag[0], "includes"); |
print_otag(h, TAG_B, 1, tag); |
print_otag(h, TAG_B, 1, tag); |
|
|
|
/* |
|
* The first argument of the `In' gets special treatment as |
|
* being a linked value. Subsequent values are printed |
|
* afterward. groff does similarly. This also handles the case |
|
* of no children. |
|
*/ |
|
|
if (MDOC_SYNPRETTY & n->flags && MDOC_LINE & n->flags) |
if (MDOC_SYNPRETTY & n->flags && MDOC_LINE & n->flags) |
print_text(h, "#include"); |
print_text(h, "#include"); |
|
|
print_text(h, "<"); |
print_text(h, "<"); |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
|
|
for (nn = n->child; nn; nn = nn->next) { |
if (NULL != (n = n->child)) { |
|
assert(MDOC_TEXT == n->type); |
|
|
PAIR_CLASS_INIT(&tag[0], "link-includes"); |
PAIR_CLASS_INIT(&tag[0], "link-includes"); |
i = 1; |
|
bufinit(h); |
bufinit(h); |
|
|
|
i = 1; |
|
|
if (h->base_includes) { |
if (h->base_includes) { |
buffmt_includes(h, nn->string); |
buffmt_includes(h, n->string); |
PAIR_HREF_INIT(&tag[i], h->buf); |
PAIR_HREF_INIT(&tag[i], h->buf); |
i++; |
i++; |
} |
} |
|
|
t = print_otag(h, TAG_A, i, tag); |
t = print_otag(h, TAG_A, i, tag); |
print_mdoc_node(m, nn, h); |
print_text(h, n->string); |
print_tagq(h, t); |
print_tagq(h, t); |
|
|
|
n = n->next; |
} |
} |
|
|
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
print_text(h, ">"); |
print_text(h, ">"); |
|
|
|
for ( ; n; n = n->next) { |
|
assert(MDOC_TEXT == n->type); |
|
print_text(h, n->string); |
|
} |
|
|
return(0); |
return(0); |
} |
} |
|
|
Line 1749 mdoc_ic_pre(MDOC_ARGS) |
|
Line 1772 mdoc_ic_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_rv_pre(MDOC_ARGS) |
mdoc_rv_pre(MDOC_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
struct htmlpair tag; |
struct htmlpair tag; |
struct tag *t; |
struct tag *t; |
int nchild; |
|
|
if (n->prev) |
if (n->prev) |
print_otag(h, TAG_BR, 0, NULL); |
print_otag(h, TAG_BR, 0, NULL); |
|
|
|
PAIR_CLASS_INIT(&tag, "fname"); |
|
|
print_text(h, "The"); |
print_text(h, "The"); |
|
|
for (nn = n->child; nn; nn = nn->next) { |
nchild = n->nchild; |
PAIR_CLASS_INIT(&tag, "fname"); |
for (n = n->child; n; n = n->next) { |
|
assert(MDOC_TEXT == n->type); |
|
|
t = print_otag(h, TAG_B, 1, &tag); |
t = print_otag(h, TAG_B, 1, &tag); |
print_text(h, nn->string); |
print_text(h, n->string); |
print_tagq(h, t); |
print_tagq(h, t); |
|
|
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
if (nn->next && NULL == nn->next->next) |
print_text(h, "()"); |
print_text(h, "(), and"); |
|
else if (nn->next) |
if (nchild > 2 && n->next) { |
print_text(h, "(),"); |
h->flags |= HTML_NOSPACE; |
else |
print_text(h, ","); |
print_text(h, "()"); |
} |
|
|
|
if (n->next && NULL == n->next->next) |
|
print_text(h, "and"); |
} |
} |
|
|
if (n->child && n->child->next) |
if (nchild > 1) |
print_text(h, "functions return"); |
print_text(h, "functions return"); |
else |
else |
print_text(h, "function returns"); |
print_text(h, "function returns"); |