=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.133 retrieving revision 1.136 diff -u -p -r1.133 -r1.136 --- docbook2mdoc/docbook2mdoc.c 2019/04/21 15:24:05 1.133 +++ docbook2mdoc/docbook2mdoc.c 2019/04/24 14:56:51 1.136 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.133 2019/04/21 15:24:05 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.136 2019/04/24 14:56:51 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -97,10 +97,12 @@ pnode_printtext(struct format *f, struct pnode *n) } break; case LINE_MACRO: - if (accept_arg) - putchar(' '); - else + if (accept_arg == 0) macro_close(f); + else if (n->spc || (f->flags & FMT_ARG) == 0 || + (nn = TAILQ_PREV(n, pnodeq, child)) == NULL || + pnode_class(nn->node) != CLASS_TEXT) + putchar(' '); break; } @@ -812,6 +814,8 @@ pnode_printrefentry(struct format *f, struct pnode *n) pnode_unlink(info); info = NULL; } + if (info == NULL) + info = pnode_takefirst(n, NODE_INFO); meta = pnode_takefirst(n, NODE_REFMETA); if (meta != NULL && TAILQ_FIRST(&meta->childq) == NULL) { pnode_unlink(meta); @@ -1035,6 +1039,7 @@ pnode_printtgroup2(struct format *f, struct pnode *n) pnode_unlink(nr); } macro_line(f, "El"); + f->parastate = PARA_WANT; pnode_unlinksub(n); } @@ -1061,6 +1066,7 @@ pnode_printtgroup(struct format *f, struct pnode *n) pnode_printrow(f, nc); } macro_line(f, "El"); + f->parastate = PARA_WANT; pnode_unlinksub(n); } @@ -1080,6 +1086,7 @@ pnode_printlist(struct format *f, struct pnode *n) f->parastate = PARA_HAVE; } macro_line(f, "El"); + f->parastate = PARA_WANT; pnode_unlinksub(n); } @@ -1098,6 +1105,7 @@ pnode_printvariablelist(struct format *f, struct pnode macro_nodeline(f, "It", nc, 0); } macro_line(f, "El"); + f->parastate = PARA_WANT; pnode_unlinksub(n); } @@ -1478,6 +1486,7 @@ pnode_print(struct format *f, struct pnode *n) case NODE_SYNOPSIS: f->parastate = PARA_HAVE; macro_line(f, "Ed"); + f->parastate = PARA_WANT; break; case NODE_TITLE: case NODE_SUBTITLE: