=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.93 retrieving revision 1.94 diff -u -p -r1.93 -r1.94 --- docbook2mdoc/docbook2mdoc.c 2019/04/07 13:16:21 1.93 +++ docbook2mdoc/docbook2mdoc.c 2019/04/07 14:49:26 1.94 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.93 2019/04/07 13:16:21 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.94 2019/04/07 14:49:26 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -34,12 +34,26 @@ static void pnode_print(struct format *, struct pnode static void pnode_printtext(struct format *f, struct pnode *n) { + struct pnode *nn; char *cp; char last; if (n->bsz == 0) { assert(n->real < n->b); return; + } + + /* + * Text preceding a macro without intervening whitespace + * requires a .Pf macro. + * Set the spacing flag to avoid a redundant .Ns macro. + */ + + if (f->linestate != LINE_MACRO && + (nn = TAILQ_NEXT(n, child)) != NULL && nn->spc == 0 && + (nn->node != NODE_TEXT && nn->node != NODE_ESCAPE)) { + macro_open(f, "Pf"); + nn->spc = 1; } if (f->linestate == LINE_NEW) {