version 1.277, 2017/03/15 11:29:53 |
version 1.280, 2017/04/24 23:06:18 |
Line 118 static int mdoc_vt_pre(MDOC_ARGS); |
|
Line 118 static int mdoc_vt_pre(MDOC_ARGS); |
|
static int mdoc_xr_pre(MDOC_ARGS); |
static int mdoc_xr_pre(MDOC_ARGS); |
static int mdoc_xx_pre(MDOC_ARGS); |
static int mdoc_xx_pre(MDOC_ARGS); |
|
|
static const struct htmlmdoc mdocs[MDOC_MAX] = { |
static const struct htmlmdoc __mdocs[MDOC_MAX - MDOC_Dd] = { |
{mdoc_ap_pre, NULL}, /* Ap */ |
|
{NULL, NULL}, /* Dd */ |
{NULL, NULL}, /* Dd */ |
{NULL, NULL}, /* Dt */ |
{NULL, NULL}, /* Dt */ |
{NULL, NULL}, /* Os */ |
{NULL, NULL}, /* Os */ |
Line 135 static const struct htmlmdoc mdocs[MDOC_MAX] = { |
|
Line 134 static const struct htmlmdoc mdocs[MDOC_MAX] = { |
|
{mdoc_it_pre, NULL}, /* It */ |
{mdoc_it_pre, NULL}, /* It */ |
{mdoc_ad_pre, NULL}, /* Ad */ |
{mdoc_ad_pre, NULL}, /* Ad */ |
{mdoc_an_pre, NULL}, /* An */ |
{mdoc_an_pre, NULL}, /* An */ |
|
{mdoc_ap_pre, NULL}, /* Ap */ |
{mdoc_ar_pre, NULL}, /* Ar */ |
{mdoc_ar_pre, NULL}, /* Ar */ |
{mdoc_cd_pre, NULL}, /* Cd */ |
{mdoc_cd_pre, NULL}, /* Cd */ |
{mdoc_cm_pre, NULL}, /* Cm */ |
{mdoc_cm_pre, NULL}, /* Cm */ |
Line 243 static const struct htmlmdoc mdocs[MDOC_MAX] = { |
|
Line 243 static const struct htmlmdoc mdocs[MDOC_MAX] = { |
|
{NULL, NULL}, /* Ta */ |
{NULL, NULL}, /* Ta */ |
{mdoc_skip_pre, NULL}, /* ll */ |
{mdoc_skip_pre, NULL}, /* ll */ |
}; |
}; |
|
static const struct htmlmdoc *const mdocs = __mdocs - MDOC_Dd; |
|
|
|
|
/* |
/* |
Line 393 print_mdoc_node(MDOC_ARGS) |
|
Line 394 print_mdoc_node(MDOC_ARGS) |
|
t = h->tag; |
t = h->tag; |
} |
} |
assert(h->tblt == NULL); |
assert(h->tblt == NULL); |
if (mdocs[n->tok].pre && (n->end == ENDBODY_NOT || n->child)) |
assert(n->tok >= MDOC_Dd && n->tok < MDOC_MAX); |
|
if (mdocs[n->tok].pre != NULL && |
|
(n->end == ENDBODY_NOT || n->child != NULL)) |
child = (*mdocs[n->tok].pre)(meta, n, h); |
child = (*mdocs[n->tok].pre)(meta, n, h); |
break; |
break; |
} |
} |
Line 412 print_mdoc_node(MDOC_ARGS) |
|
Line 415 print_mdoc_node(MDOC_ARGS) |
|
case ROFFT_EQN: |
case ROFFT_EQN: |
break; |
break; |
default: |
default: |
if ( ! mdocs[n->tok].post || n->flags & NODE_ENDED) |
if (mdocs[n->tok].post == NULL || n->flags & NODE_ENDED) |
break; |
break; |
(*mdocs[n->tok].post)(meta, n, h); |
(*mdocs[n->tok].post)(meta, n, h); |
if (n->end != ENDBODY_NOT) |
if (n->end != ENDBODY_NOT) |
Line 501 mdoc_sh_pre(MDOC_ARGS) |
|
Line 504 mdoc_sh_pre(MDOC_ARGS) |
|
case ROFFT_HEAD: |
case ROFFT_HEAD: |
id = html_make_id(n); |
id = html_make_id(n); |
print_otag(h, TAG_H1, "cTi", "Sh", id); |
print_otag(h, TAG_H1, "cTi", "Sh", id); |
print_otag(h, TAG_A, "chR", "selflink", id); |
if (id != NULL) |
|
print_otag(h, TAG_A, "chR", "selflink", id); |
free(id); |
free(id); |
break; |
break; |
case ROFFT_BODY: |
case ROFFT_BODY: |
Line 524 mdoc_ss_pre(MDOC_ARGS) |
|
Line 528 mdoc_ss_pre(MDOC_ARGS) |
|
|
|
id = html_make_id(n); |
id = html_make_id(n); |
print_otag(h, TAG_H2, "cTi", "Ss", id); |
print_otag(h, TAG_H2, "cTi", "Ss", id); |
print_otag(h, TAG_A, "chR", "selflink", id); |
if (id != NULL) |
|
print_otag(h, TAG_A, "chR", "selflink", id); |
free(id); |
free(id); |
return 1; |
return 1; |
} |
} |
Line 1344 mdoc_sp_pre(MDOC_ARGS) |
|
Line 1349 mdoc_sp_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_lk_pre(MDOC_ARGS) |
mdoc_lk_pre(MDOC_ARGS) |
{ |
{ |
if (NULL == (n = n->child)) |
struct tag *t; |
|
|
|
if ((n = n->child) == NULL) |
return 0; |
return 0; |
|
|
assert(n->type == ROFFT_TEXT); |
/* Link target and link text. */ |
|
t = print_otag(h, TAG_A, "cTh", "Lk", n->string); |
print_otag(h, TAG_A, "cTh", "Lk", n->string); |
if (n->next == NULL || n->next->flags & NODE_DELIMC) |
|
|
if (NULL == n->next) |
|
print_text(h, n->string); |
print_text(h, n->string); |
|
for (n = n->next; n != NULL && !(n->flags & NODE_DELIMC); n = n->next) |
for (n = n->next; n; n = n->next) |
|
print_text(h, n->string); |
print_text(h, n->string); |
|
print_tagq(h, t); |
|
|
|
/* Trailing punctuation. */ |
|
while (n != NULL) { |
|
h->flags |= HTML_NOSPACE; |
|
print_text(h, n->string); |
|
n = n->next; |
|
} |
return 0; |
return 0; |
} |
} |
|
|