=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -p -r1.41 -r1.42 --- docbook2mdoc/docbook2mdoc.c 2014/10/12 15:34:44 1.41 +++ docbook2mdoc/docbook2mdoc.c 2014/10/12 15:48:42 1.42 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.41 2014/10/12 15:34:44 kristaps Exp $ */ +/* $Id: docbook2mdoc.c,v 1.42 2014/10/12 15:48:42 kristaps Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * @@ -917,13 +917,13 @@ pnode_printmath(struct parse *p, struct pnode *pn) switch (pn->node) { case (NODE_MML_MSUP): - printf(" sup "); + fputs(" sup ", stdout); break; case (NODE_MML_MFRAC): - printf(" over "); + fputs(" over ", stdout); break; case (NODE_MML_MSUB): - printf(" sub "); + fputs(" sub ", stdout); break; default: break; @@ -1068,24 +1068,31 @@ pnode_printprologue(struct parse *p, struct pnode *pn) } } +/* + * We can have multiple elements within a , which + * we should comma-separate as list headers. + */ static void pnode_printvarlistentry(struct parse *p, struct pnode *pn) { struct pnode *pp; + int first = 1; assert(p->newln); + fputs(".It", stdout); + p->newln = 0; + TAILQ_FOREACH(pp, &pn->childq, child) if (NODE_TERM == pp->node) { - assert(p->newln); - fputs(".It", stdout); - p->newln = 0; + if ( ! first) + putchar(','); pnode_print(p, pp); pnode_unlink(pp); - pnode_printmclose(p, 1); - return; - } + first = 0; + } else + break; - puts(".It"); + putchar('\n'); p->newln = 1; }