=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.90 retrieving revision 1.91 diff -u -p -r1.90 -r1.91 --- docbook2mdoc/docbook2mdoc.c 2019/04/03 17:53:02 1.90 +++ docbook2mdoc/docbook2mdoc.c 2019/04/03 18:52:40 1.91 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.90 2019/04/03 17:53:02 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.91 2019/04/03 18:52:40 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -894,6 +894,24 @@ pnode_print(struct format *p, struct pnode *pn) fputs("$ ", stdout); p->linestate = sv; break; + case NODE_MEMBER: + if ((pp = TAILQ_NEXT(pn, child)) != NULL && + pp->node != NODE_MEMBER) + pp = NULL; + switch (p->linestate) { + case LINE_TEXT: + if (pp != NULL) + print_text(p, ",", 0); + break; + case LINE_MACRO: + if (pp != NULL) + macro_addarg(p, ",", ARG_SPACE); + macro_close(p); + break; + case LINE_NEW: + break; + } + break; case NODE_MML_MROW: case NODE_MML_MI: case NODE_MML_MN: @@ -927,7 +945,8 @@ pnode_print(struct format *p, struct pnode *pn) case NODE_SGMLTAG: case NODE_TYPE: case NODE_VARNAME: - if (sv != LINE_MACRO && p->linestate == LINE_MACRO) + if (sv != LINE_MACRO && p->linestate == LINE_MACRO && + (pn->parent == NULL || pn->parent->node != NODE_MEMBER)) macro_closepunct(p, pn); break; case NODE_QUOTE: