=================================================================== RCS file: /cvs/docbook2mdoc/macro.c,v retrieving revision 1.2 retrieving revision 1.4 diff -u -p -r1.2 -r1.4 --- docbook2mdoc/macro.c 2019/03/28 20:41:33 1.2 +++ docbook2mdoc/macro.c 2019/04/03 13:42:35 1.4 @@ -1,4 +1,4 @@ -/* $Id: macro.c,v 1.2 2019/03/28 20:41:33 schwarze Exp $ */ +/* $Id: macro.c,v 1.4 2019/04/03 13:42:35 schwarze Exp $ */ /* * Copyright (c) 2019 Ingo Schwarze * @@ -47,7 +47,8 @@ macro_open(struct format *f, const char *name) void macro_close(struct format *f) { - assert(f->linestate == LINE_MACRO); + if (f->linestate == LINE_NEW) + return; putchar('\n'); f->linestate = LINE_NEW; } @@ -161,9 +162,10 @@ macro_addnode(struct format *f, struct pnode *pn, int * that text, letting macro_addarg() decide about quoting. */ - if (pn->node == NODE_TEXT || + if (pn->node == NODE_TEXT || pn->node == NODE_ESCAPE || ((pn = TAILQ_FIRST(&pn->childq)) != NULL && - pn->node == NODE_TEXT && TAILQ_NEXT(pn, child) == NULL)) { + (pn->node == NODE_TEXT || pn->node == NODE_ESCAPE) && + TAILQ_NEXT(pn, child) == NULL)) { macro_addarg(f, pn->b, flags); return; } @@ -239,7 +241,7 @@ print_textnode(struct format *f, struct pnode *n) { struct pnode *nc; - if (n->node == NODE_TEXT) + if (n->node == NODE_TEXT || n->node == NODE_ESCAPE) print_text(f, n->b, ARG_SPACE); else TAILQ_FOREACH(nc, &n->childq, child)