=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.143 retrieving revision 1.145 diff -u -p -r1.143 -r1.145 --- docbook2mdoc/docbook2mdoc.c 2019/04/28 19:59:01 1.143 +++ docbook2mdoc/docbook2mdoc.c 2019/05/01 12:52:05 1.145 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.143 2019/04/28 19:59:01 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.145 2019/05/01 12:52:05 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -345,7 +345,7 @@ pnode_printmath(struct format *f, struct pnode *n) static void pnode_printfuncprototype(struct format *f, struct pnode *n) { - struct pnode *fdef, *ftype, *nc, *nn; + struct pnode *fdef, *fps, *ftype, *nc, *nn; /* * Extract child and ignore child. @@ -399,7 +399,16 @@ pnode_printfuncprototype(struct format *f, struct pnod return; while (nc != NULL) { - macro_nodeline(f, "Fa", nc, ARG_SINGLE); + if ((fps = pnode_takefirst(nc, NODE_FUNCPARAMS)) != NULL) { + macro_open(f, "Fa \""); + macro_addnode(f, nc, ARG_QUOTED); + macro_addarg(f, "(", ARG_QUOTED); + macro_addnode(f, fps, ARG_QUOTED); + macro_addarg(f, ")", ARG_QUOTED); + putchar('"'); + macro_close(f); + } else + macro_nodeline(f, "Fa", nc, ARG_SINGLE); pnode_unlink(nc); nc = TAILQ_FIRST(&n->childq); } @@ -1284,6 +1293,15 @@ pnode_print(struct format *f, struct pnode *n) case NODE_SUBTITLE: f->parastate = PARA_WANT; break; + case NODE_YEAR: + if ((nn = TAILQ_NEXT(n, child)) != NULL && + nn->node == NODE_YEAR && + f->linestate == LINE_TEXT) { + print_text(f, ",", 0); + nn->flags |= NFLAG_SPC; + if ((nc = TAILQ_FIRST(&nn->childq)) != NULL) + nc->flags |= NFLAG_SPC; + } default: break; }