=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.144 retrieving revision 1.146 diff -u -p -r1.144 -r1.146 --- docbook2mdoc/docbook2mdoc.c 2019/05/01 11:34:19 1.144 +++ docbook2mdoc/docbook2mdoc.c 2019/05/01 15:05:39 1.146 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.144 2019/05/01 11:34:19 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.146 2019/05/01 15:05:39 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); } @@ -921,6 +930,9 @@ pnode_print(struct format *f, struct pnode *n) if (n == NULL) return; + if (f->nofill && n->flags & NFLAG_LINE) + macro_close(f); + was_impl = f->flags & FMT_IMPL; if (n->flags & NFLAG_SPC) f->flags &= ~FMT_NOSPC; @@ -1184,6 +1196,9 @@ pnode_print(struct format *f, struct pnode *n) break; } + if (pnode_class(n->node) == CLASS_NOFILL) + f->nofill++; + TAILQ_FOREACH(nc, &n->childq, child) pnode_print(f, nc); @@ -1297,6 +1312,8 @@ pnode_print(struct format *f, struct pnode *n) break; } f->flags &= ~FMT_ARG; + if (pnode_class(n->node) == CLASS_NOFILL) + f->nofill--; } void @@ -1304,7 +1321,7 @@ ptree_print_mdoc(struct ptree *tree) { struct format formatter; - formatter.level = 0; + formatter.level = formatter.nofill = 0; formatter.linestate = LINE_NEW; formatter.parastate = PARA_HAVE; pnode_printprologue(&formatter, tree->root);