version 1.18, 2014/03/30 16:33:27 |
version 1.21, 2014/03/30 17:10:50 |
Line 87 static const char *attrvals[ATTRVAL__MAX] = { |
|
Line 87 static const char *attrvals[ATTRVAL__MAX] = { |
|
|
|
static const struct node nodes[NODE__MAX] = { |
static const struct node nodes[NODE__MAX] = { |
{ NULL, 0 }, |
{ NULL, 0 }, |
|
{ "acronym", 0 }, |
{ "arg", 0 }, |
{ "arg", 0 }, |
{ "citerefentry", NODE_IGNTEXT }, |
{ "citerefentry", NODE_IGNTEXT }, |
{ "cmdsynopsis", NODE_IGNTEXT }, |
{ "cmdsynopsis", NODE_IGNTEXT }, |
Line 94 static const struct node nodes[NODE__MAX] = { |
|
Line 95 static const struct node nodes[NODE__MAX] = { |
|
{ "command", 0 }, |
{ "command", 0 }, |
{ "date", 0 }, |
{ "date", 0 }, |
{ "emphasis", 0 }, |
{ "emphasis", 0 }, |
|
{ "envar", 0 }, |
{ "filename", 0 }, |
{ "filename", 0 }, |
{ "funcdef", 0 }, |
{ "funcdef", 0 }, |
{ "funcprototype", NODE_IGNTEXT }, |
{ "funcprototype", NODE_IGNTEXT }, |
Line 103 static const struct node nodes[NODE__MAX] = { |
|
Line 105 static const struct node nodes[NODE__MAX] = { |
|
{ "itemizedlist", NODE_IGNTEXT }, |
{ "itemizedlist", NODE_IGNTEXT }, |
{ "link", 0 }, |
{ "link", 0 }, |
{ "listitem", NODE_IGNTEXT }, |
{ "listitem", NODE_IGNTEXT }, |
|
{ "literal", 0 }, |
{ "manvolnum", 0 }, |
{ "manvolnum", 0 }, |
{ "option", 0 }, |
{ "option", 0 }, |
|
{ "orderedlist", NODE_IGNTEXT }, |
{ "para", 0 }, |
{ "para", 0 }, |
{ "paramdef", 0 }, |
{ "paramdef", 0 }, |
{ "parameter", 0 }, |
{ "parameter", 0 }, |
Line 119 static const struct node nodes[NODE__MAX] = { |
|
Line 123 static const struct node nodes[NODE__MAX] = { |
|
{ "refname", 0 }, |
{ "refname", 0 }, |
{ "refnamediv", NODE_IGNTEXT }, |
{ "refnamediv", NODE_IGNTEXT }, |
{ "refpurpose", 0 }, |
{ "refpurpose", 0 }, |
{ "refsect1", 0 }, |
{ "refsect1", NODE_IGNTEXT }, |
|
{ "refsect2", NODE_IGNTEXT }, |
{ "refsynopsisdiv", NODE_IGNTEXT }, |
{ "refsynopsisdiv", NODE_IGNTEXT }, |
{ "replaceable", 0 }, |
{ "replaceable", 0 }, |
|
{ "sbr", NODE_IGNTEXT }, |
{ "structname", 0 }, |
{ "structname", 0 }, |
{ "synopsis", 0 }, |
{ "synopsis", 0 }, |
{ "term", 0 }, |
{ "term", 0 }, |
Line 582 pnode_printrefsect(struct parse *p, struct pnode *pn) |
|
Line 588 pnode_printrefsect(struct parse *p, struct pnode *pn) |
|
if (NODE_TITLE == pp->node) |
if (NODE_TITLE == pp->node) |
break; |
break; |
|
|
fputs(".Sh", stdout); |
if (NODE_REFSECT1 == pn->node) |
|
fputs(".Sh", stdout); |
|
else |
|
fputs(".Ss", stdout); |
|
|
p->newln = 0; |
p->newln = 0; |
|
|
if (NULL != pp) { |
if (NULL != pp) { |
pnode_printmacrolinetext(p, pp, MACROLINE_UPPER); |
pnode_printmacrolinetext(p, pp, |
|
NODE_REFSECT1 == pn->node ? |
|
MACROLINE_UPPER : 0); |
pnode_printmclose(p, 1); |
pnode_printmclose(p, 1); |
pnode_unlink(pp); |
pnode_unlink(pp); |
} else { |
} else { |
Line 849 pnode_printitemizedlist(struct parse *p, struct pnode |
|
Line 861 pnode_printitemizedlist(struct parse *p, struct pnode |
|
} |
} |
|
|
assert(p->newln); |
assert(p->newln); |
puts(".Bl -item"); |
|
|
if (NODE_ORDEREDLIST == pn->node) |
|
puts(".Bl -enum"); |
|
else |
|
puts(".Bl -item"); |
|
|
TAILQ_FOREACH(pp, &pn->childq, child) { |
TAILQ_FOREACH(pp, &pn->childq, child) { |
assert(p->newln); |
assert(p->newln); |
puts(".It"); |
puts(".It"); |
Line 927 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 944 pnode_print(struct parse *p, struct pnode *pn) |
|
pnode_printmopen(p); |
pnode_printmopen(p); |
fputs("Em", stdout); |
fputs("Em", stdout); |
break; |
break; |
|
case (NODE_ENVAR): |
|
pnode_printmopen(p); |
|
fputs("Ev", stdout); |
|
break; |
case (NODE_FILENAME): |
case (NODE_FILENAME): |
pnode_printmopen(p); |
pnode_printmopen(p); |
fputs("Pa", stdout); |
fputs("Pa", stdout); |
Line 945 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 966 pnode_print(struct parse *p, struct pnode *pn) |
|
fputs("Fd", stdout); |
fputs("Fd", stdout); |
break; |
break; |
case (NODE_ITEMIZEDLIST): |
case (NODE_ITEMIZEDLIST): |
|
/* FALLTHROUGH */ |
|
case (NODE_ORDEREDLIST): |
assert(p->newln); |
assert(p->newln); |
pnode_printitemizedlist(p, pn); |
pnode_printitemizedlist(p, pn); |
break; |
break; |
|
case (NODE_LITERAL): |
|
pnode_printmopen(p); |
|
fputs("Li", stdout); |
|
break; |
case (NODE_OPTION): |
case (NODE_OPTION): |
pnode_printmopen(p); |
pnode_printmopen(p); |
fputs("Fl", stdout); |
fputs("Fl", stdout); |
/* FIXME: bogus leading '-'? */ |
|
break; |
break; |
case (NODE_PARA): |
case (NODE_PARA): |
assert(p->newln); |
assert(p->newln); |
Line 1002 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1028 pnode_print(struct parse *p, struct pnode *pn) |
|
puts(".Sh SYNOPSIS"); |
puts(".Sh SYNOPSIS"); |
break; |
break; |
case (NODE_REFSECT1): |
case (NODE_REFSECT1): |
|
/* FALLTHROUGH */ |
|
case (NODE_REFSECT2): |
assert(p->newln); |
assert(p->newln); |
pnode_printrefsect(p, pn); |
pnode_printrefsect(p, pn); |
break; |
break; |
Line 1009 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1037 pnode_print(struct parse *p, struct pnode *pn) |
|
pnode_printmopen(p); |
pnode_printmopen(p); |
fputs("Ar", stdout); |
fputs("Ar", stdout); |
break; |
break; |
|
case (NODE_SBR): |
|
assert(p->newln); |
|
puts(".br"); |
|
break; |
case (NODE_STRUCTNAME): |
case (NODE_STRUCTNAME): |
pnode_printmopen(p); |
pnode_printmopen(p); |
fputs("Vt", stdout); |
fputs("Vt", stdout); |
Line 1025 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1057 pnode_print(struct parse *p, struct pnode *pn) |
|
* Remember to escape control characters and escapes. |
* Remember to escape control characters and escapes. |
*/ |
*/ |
assert(p->bsz); |
assert(p->bsz); |
for (last = '\n', cp = p->b; '\0' != *cp; ) { |
cp = p->b; |
|
/* |
|
* There's often a superfluous "-" in its <option> tags |
|
* before the actual flags themselves. |
|
* "Fl" does this for us, so remove it. |
|
*/ |
|
if (NULL != pn->parent && |
|
NODE_OPTION == pn->parent->node && |
|
'-' == *cp) |
|
cp++; |
|
for (last = '\n'; '\0' != *cp; ) { |
if ('\n' == last) { |
if ('\n' == last) { |
/* Consume all whitespace. */ |
/* Consume all whitespace. */ |
if (isspace((int)*cp)) { |
if (isspace((int)*cp)) { |
Line 1063 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1105 pnode_print(struct parse *p, struct pnode *pn) |
|
case (NODE_CODE): |
case (NODE_CODE): |
case (NODE_COMMAND): |
case (NODE_COMMAND): |
case (NODE_EMPHASIS): |
case (NODE_EMPHASIS): |
|
case (NODE_ENVAR): |
case (NODE_FILENAME): |
case (NODE_FILENAME): |
case (NODE_FUNCTION): |
case (NODE_FUNCTION): |
case (NODE_FUNCSYNOPSISINFO): |
case (NODE_FUNCSYNOPSISINFO): |
|
case (NODE_LITERAL): |
case (NODE_OPTION): |
case (NODE_OPTION): |
case (NODE_PARAMETER): |
case (NODE_PARAMETER): |
case (NODE_REPLACEABLE): |
case (NODE_REPLACEABLE): |