=================================================================== RCS file: /cvs/docbook2mdoc/macro.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -p -r1.14 -r1.15 --- docbook2mdoc/macro.c 2019/04/16 14:26:27 1.14 +++ docbook2mdoc/macro.c 2019/04/23 21:09:42 1.15 @@ -1,4 +1,4 @@ -/* $Id: macro.c,v 1.14 2019/04/16 14:26:27 schwarze Exp $ */ +/* $Id: macro.c,v 1.15 2019/04/23 21:09:42 schwarze Exp $ */ /* * Copyright (c) 2019 Ingo Schwarze * @@ -164,7 +164,7 @@ void macro_addnode(struct format *f, struct pnode *n, int flags) { struct pnode *nc; - int quote_now; + int is_text, quote_now; assert(f->linestate == LINE_MACRO); @@ -209,8 +209,14 @@ macro_addnode(struct format *f, struct pnode *n, int f while (nc != NULL) { macro_addnode(f, nc, flags); + is_text = pnode_class(nc->node) == CLASS_TEXT; nc = TAILQ_NEXT(nc, child); - flags |= ARG_SPACE; + if (nc == NULL || pnode_class(nc->node) != CLASS_TEXT) + is_text = 0; + if (is_text && !nc->spc) + flags &= ~ARG_SPACE; + else + flags |= ARG_SPACE; } if (quote_now) putchar('"');