version 1.255, 2017/01/19 16:59:30 |
version 1.256, 2017/01/20 19:58:07 |
Line 242 static const struct htmlmdoc mdocs[MDOC_MAX] = { |
|
Line 242 static const struct htmlmdoc mdocs[MDOC_MAX] = { |
|
{mdoc_skip_pre, NULL}, /* ll */ |
{mdoc_skip_pre, NULL}, /* ll */ |
}; |
}; |
|
|
static const char * const lists[LIST_MAX] = { |
|
NULL, |
|
"list-bul", |
|
"list-col", |
|
"list-dash", |
|
"list-diag", |
|
"list-enum", |
|
"list-hang", |
|
"list-hyph", |
|
"list-inset", |
|
"list-item", |
|
"list-ohang", |
|
"list-tag" |
|
}; |
|
|
|
|
|
/* |
/* |
* See the same function in mdoc_term.c for documentation. |
* See the same function in mdoc_term.c for documentation. |
*/ |
*/ |
Line 683 mdoc_xx_pre(MDOC_ARGS) |
|
Line 668 mdoc_xx_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_it_pre(MDOC_ARGS) |
mdoc_it_pre(MDOC_ARGS) |
{ |
{ |
enum mdoc_list type; |
const struct roff_node *bl; |
const struct roff_node *bl; |
const char *cattr; |
|
enum mdoc_list type; |
|
|
bl = n->parent; |
bl = n->parent; |
while (bl && MDOC_Bl != bl->tok) |
while (bl != NULL && bl->tok != MDOC_Bl) |
bl = bl->parent; |
bl = bl->parent; |
type = bl->norm->Bl.type; |
type = bl->norm->Bl.type; |
|
|
if (n->type == ROFFT_HEAD) { |
switch (type) { |
switch (type) { |
case LIST_bullet: |
case LIST_bullet: |
cattr = "It-bullet"; |
case LIST_dash: |
break; |
case LIST_item: |
case LIST_dash: |
case LIST_hyphen: |
case LIST_hyphen: |
case LIST_enum: |
cattr = "It-dash"; |
|
break; |
|
case LIST_item: |
|
cattr = "It-item"; |
|
break; |
|
case LIST_enum: |
|
cattr = "It-enum"; |
|
break; |
|
case LIST_diag: |
|
cattr = "It-diag"; |
|
break; |
|
case LIST_hang: |
|
cattr = "It-hang"; |
|
break; |
|
case LIST_inset: |
|
cattr = "It-inset"; |
|
break; |
|
case LIST_ohang: |
|
cattr = "It-ohang"; |
|
break; |
|
case LIST_tag: |
|
cattr = "It-tag"; |
|
break; |
|
case LIST_column: |
|
cattr = "It-column"; |
|
break; |
|
default: |
|
break; |
|
} |
|
|
|
switch (type) { |
|
case LIST_bullet: |
|
case LIST_dash: |
|
case LIST_hyphen: |
|
case LIST_item: |
|
case LIST_enum: |
|
switch (n->type) { |
|
case ROFFT_HEAD: |
return 0; |
return 0; |
case LIST_diag: |
case ROFFT_BODY: |
case LIST_hang: |
print_otag(h, TAG_LI, "csvt", cattr, |
case LIST_inset: |
|
case LIST_ohang: |
|
case LIST_tag: |
|
print_otag(h, TAG_DT, "csvt", lists[type], |
|
!bl->norm->Bl.comp); |
!bl->norm->Bl.comp); |
if (LIST_diag != type) |
|
break; |
|
print_otag(h, TAG_B, "c", "diag"); |
|
break; |
break; |
case LIST_column: |
|
break; |
|
default: |
default: |
break; |
break; |
} |
} |
} else if (n->type == ROFFT_BODY) { |
break; |
switch (type) { |
case LIST_diag: |
case LIST_bullet: |
case LIST_hang: |
case LIST_hyphen: |
case LIST_inset: |
case LIST_dash: |
case LIST_ohang: |
case LIST_enum: |
case LIST_tag: |
case LIST_item: |
switch (n->type) { |
print_otag(h, TAG_LI, "csvt", lists[type], |
case ROFFT_HEAD: |
|
print_otag(h, TAG_DT, "csvt", cattr, |
!bl->norm->Bl.comp); |
!bl->norm->Bl.comp); |
|
if (type == LIST_diag) |
|
print_otag(h, TAG_B, "c", cattr); |
break; |
break; |
case LIST_diag: |
case ROFFT_BODY: |
case LIST_hang: |
if (bl->norm->Bl.width == NULL) |
case LIST_inset: |
print_otag(h, TAG_DD, "c", cattr); |
case LIST_ohang: |
else |
case LIST_tag: |
print_otag(h, TAG_DD, "cswl", cattr, |
if (NULL == bl->norm->Bl.width) { |
bl->norm->Bl.width); |
print_otag(h, TAG_DD, "c", lists[type]); |
|
break; |
|
} |
|
print_otag(h, TAG_DD, "cswl", lists[type], |
|
bl->norm->Bl.width); |
|
break; |
break; |
case LIST_column: |
|
print_otag(h, TAG_TD, "csvt", lists[type], |
|
!bl->norm->Bl.comp); |
|
break; |
|
default: |
default: |
break; |
break; |
} |
} |
} else { |
break; |
switch (type) { |
case LIST_column: |
case LIST_column: |
switch (n->type) { |
print_otag(h, TAG_TR, "c", lists[type]); |
case ROFFT_HEAD: |
break; |
break; |
default: |
case ROFFT_BODY: |
|
print_otag(h, TAG_TD, "csvt", cattr, |
|
!bl->norm->Bl.comp); |
break; |
break; |
|
default: |
|
print_otag(h, TAG_TR, "c", cattr); |
} |
} |
|
default: |
|
break; |
} |
} |
|
|
return 1; |
return 1; |
Line 760 mdoc_it_pre(MDOC_ARGS) |
|
Line 774 mdoc_it_pre(MDOC_ARGS) |
|
static int |
static int |
mdoc_bl_pre(MDOC_ARGS) |
mdoc_bl_pre(MDOC_ARGS) |
{ |
{ |
|
const char *cattr; |
int i; |
int i; |
char buf[BUFSIZ]; |
|
enum htmltag elemtype; |
enum htmltag elemtype; |
|
|
if (n->type == ROFFT_BODY) { |
if (n->type == ROFFT_BODY) { |
Line 788 mdoc_bl_pre(MDOC_ARGS) |
|
Line 802 mdoc_bl_pre(MDOC_ARGS) |
|
return 0; |
return 0; |
} |
} |
|
|
assert(lists[n->norm->Bl.type]); |
|
(void)strlcpy(buf, "list ", BUFSIZ); |
|
(void)strlcat(buf, lists[n->norm->Bl.type], BUFSIZ); |
|
|
|
switch (n->norm->Bl.type) { |
switch (n->norm->Bl.type) { |
case LIST_bullet: |
case LIST_bullet: |
|
elemtype = TAG_UL; |
|
cattr = "Bl-bullet"; |
|
break; |
case LIST_dash: |
case LIST_dash: |
case LIST_hyphen: |
case LIST_hyphen: |
|
elemtype = TAG_UL; |
|
cattr = "Bl-dash"; |
|
break; |
case LIST_item: |
case LIST_item: |
elemtype = TAG_UL; |
elemtype = TAG_UL; |
|
cattr = "Bl-item"; |
break; |
break; |
case LIST_enum: |
case LIST_enum: |
elemtype = TAG_OL; |
elemtype = TAG_OL; |
|
cattr = "Bl-enum"; |
break; |
break; |
case LIST_diag: |
case LIST_diag: |
|
elemtype = TAG_DL; |
|
cattr = "Bl-diag"; |
|
break; |
case LIST_hang: |
case LIST_hang: |
|
elemtype = TAG_DL; |
|
cattr = "Bl-hang"; |
|
break; |
case LIST_inset: |
case LIST_inset: |
|
elemtype = TAG_DL; |
|
cattr = "Bl-inset"; |
|
break; |
case LIST_ohang: |
case LIST_ohang: |
|
elemtype = TAG_DL; |
|
cattr = "Bl-ohang"; |
|
break; |
case LIST_tag: |
case LIST_tag: |
elemtype = TAG_DL; |
elemtype = TAG_DL; |
|
cattr = "Bl-tag"; |
break; |
break; |
case LIST_column: |
case LIST_column: |
elemtype = TAG_TABLE; |
elemtype = TAG_TABLE; |
|
cattr = "Bl-column"; |
break; |
break; |
default: |
default: |
abort(); |
abort(); |
} |
} |
|
|
if (n->norm->Bl.offs) |
if (n->norm->Bl.offs) |
print_otag(h, elemtype, "csvtvbwl", buf, 0, 0, |
print_otag(h, elemtype, "csvtvbwl", cattr, 0, 0, |
n->norm->Bl.offs); |
n->norm->Bl.offs); |
else |
else |
print_otag(h, elemtype, "csvtvb", buf, 0, 0); |
print_otag(h, elemtype, "csvtvb", cattr, 0, 0); |
|
|
return 1; |
return 1; |
} |
} |