version 1.22, 2014/03/30 17:22:01 |
version 1.24, 2014/03/30 18:15:55 |
Line 103 static const struct node nodes[NODE__MAX] = { |
|
Line 103 static const struct node nodes[NODE__MAX] = { |
|
{ "funcsynopsisinfo", 0 }, |
{ "funcsynopsisinfo", 0 }, |
{ "function", 0 }, |
{ "function", 0 }, |
{ "itemizedlist", NODE_IGNTEXT }, |
{ "itemizedlist", NODE_IGNTEXT }, |
|
{ "group", NODE_IGNTEXT }, |
{ "link", 0 }, |
{ "link", 0 }, |
{ "listitem", NODE_IGNTEXT }, |
{ "listitem", NODE_IGNTEXT }, |
{ "literal", 0 }, |
{ "literal", 0 }, |
Line 136 static const struct node nodes[NODE__MAX] = { |
|
Line 137 static const struct node nodes[NODE__MAX] = { |
|
{ NULL, 0 }, |
{ NULL, 0 }, |
{ "title", 0 }, |
{ "title", 0 }, |
{ "ulink", 0 }, |
{ "ulink", 0 }, |
|
{ "userinput", 0 }, |
{ "variablelist", NODE_IGNTEXT }, |
{ "variablelist", NODE_IGNTEXT }, |
{ "varlistentry", NODE_IGNTEXT }, |
{ "varlistentry", NODE_IGNTEXT }, |
}; |
}; |
Line 791 pnode_printarg(struct parse *p, struct pnode *pn) |
|
Line 793 pnode_printarg(struct parse *p, struct pnode *pn) |
|
} |
} |
} |
} |
|
|
|
static void |
|
pnode_printgroup(struct parse *p, struct pnode *pn) |
|
{ |
|
struct pnode *pp, *np; |
|
struct pattr *ap; |
|
int isop, sv; |
|
|
|
isop = 1; |
|
TAILQ_FOREACH(ap, &pn->attrq, child) |
|
if (ATTRKEY_CHOICE == ap->key && |
|
(ATTRVAL_PLAIN == ap->val || |
|
ATTRVAL_REQ == ap->val)) { |
|
isop = 0; |
|
break; |
|
} |
|
|
|
/* |
|
* Make sure we're on a macro line. |
|
* This will prevent pnode_print() for putting us on a |
|
* subsequent line. |
|
*/ |
|
sv = p->newln; |
|
pnode_printmopen(p); |
|
if (isop) |
|
fputs("Op", stdout); |
|
else if (sv) |
|
fputs("No", stdout); |
|
|
|
/* |
|
* Keep on printing text separated by the vertical bar as long |
|
* as we're within the same origin node as the group. |
|
* This is kind of a nightmare. |
|
* Eh, DocBook... |
|
* FIXME: if there's a "Fl", we don't cut off the leading "-" |
|
* like we do in pnode_print(). |
|
*/ |
|
TAILQ_FOREACH(pp, &pn->childq, child) { |
|
pnode_print(p, pp); |
|
np = TAILQ_NEXT(pp, child); |
|
while (NULL != np) { |
|
if (pp->node != np->node) |
|
break; |
|
fputs(" |", stdout); |
|
pnode_printmacrolinepart(p, np); |
|
pp = np; |
|
np = TAILQ_NEXT(np, child); |
|
} |
|
} |
|
|
|
pnode_printmclose(p, sv); |
|
} |
|
|
/* |
/* |
* Recursively search and return the first instance of "node". |
* Recursively search and return the first instance of "node". |
*/ |
*/ |
Line 910 pnode_printvariablelist(struct parse *p, struct pnode |
|
Line 964 pnode_printvariablelist(struct parse *p, struct pnode |
|
/* |
/* |
* Print a parsed node (or ignore it--whatever). |
* Print a parsed node (or ignore it--whatever). |
* This is a recursive function. |
* This is a recursive function. |
* FIXME: macro line continuation? |
* FIXME: if we're in a literal context (<screen> or <programlisting> or |
|
* whatever), don't print inline macros. |
*/ |
*/ |
static void |
static void |
pnode_print(struct parse *p, struct pnode *pn) |
pnode_print(struct parse *p, struct pnode *pn) |
Line 973 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1028 pnode_print(struct parse *p, struct pnode *pn) |
|
assert(p->newln); |
assert(p->newln); |
pnode_printitemizedlist(p, pn); |
pnode_printitemizedlist(p, pn); |
break; |
break; |
|
case (NODE_GROUP): |
|
pnode_printgroup(p, pn); |
|
pnode_unlinksub(pn); |
|
break; |
case (NODE_LITERAL): |
case (NODE_LITERAL): |
pnode_printmopen(p); |
pnode_printmopen(p); |
fputs("Li", stdout); |
fputs("Li", stdout); |
Line 1097 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1156 pnode_print(struct parse *p, struct pnode *pn) |
|
assert(p->newln); |
assert(p->newln); |
pnode_printvarlistentry(p, pn); |
pnode_printvarlistentry(p, pn); |
break; |
break; |
|
case (NODE_USERINPUT): |
|
pnode_printmopen(p); |
|
fputs("Li", stdout); |
|
break; |
default: |
default: |
break; |
break; |
} |
} |
Line 1120 pnode_print(struct parse *p, struct pnode *pn) |
|
Line 1183 pnode_print(struct parse *p, struct pnode *pn) |
|
case (NODE_REFPURPOSE): |
case (NODE_REFPURPOSE): |
case (NODE_STRUCTNAME): |
case (NODE_STRUCTNAME): |
case (NODE_TEXT): |
case (NODE_TEXT): |
|
case (NODE_USERINPUT): |
pnode_printmclose(p, sv); |
pnode_printmclose(p, sv); |
break; |
break; |
case (NODE_REFNAME): |
case (NODE_REFNAME): |