=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.137 retrieving revision 1.138 diff -u -p -r1.137 -r1.138 --- docbook2mdoc/docbook2mdoc.c 2019/04/24 15:20:12 1.137 +++ docbook2mdoc/docbook2mdoc.c 2019/04/24 18:38:02 1.138 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.137 2019/04/24 15:20:12 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.138 2019/04/24 18:38:02 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -42,7 +42,8 @@ pnode_printtext(struct format *f, struct pnode *n) cp = n->b; accept_arg = f->flags & FMT_ARG; - if (f->linestate == LINE_MACRO && !n->spc && !accept_arg) { + if (f->linestate == LINE_MACRO && !accept_arg && + (n->flags & NFLAG_SPC) == 0) { for (;;) { if (*cp == '\0') return; @@ -71,14 +72,15 @@ pnode_printtext(struct format *f, struct pnode *n) */ if (f->linestate != LINE_MACRO && - (nn = TAILQ_NEXT(n, child)) != NULL && nn->spc == 0) { + (nn = TAILQ_NEXT(n, child)) != NULL && + (nn->flags & NFLAG_SPC) == 0) { switch (pnode_class(nn->node)) { case CLASS_LINE: case CLASS_ENCL: macro_open(f, "Pf"); accept_arg = 1; f->flags |= FMT_CHILD; - nn->spc = 1; + nn->flags |= NFLAG_SPC; break; default: break; @@ -89,8 +91,9 @@ pnode_printtext(struct format *f, struct pnode *n) case LINE_NEW: break; case LINE_TEXT: - if (n->spc) { - if (pnode_class(n->node) == CLASS_TEXT) + if (n->flags & NFLAG_SPC) { + if (n->flags & NFLAG_LINE && + pnode_class(n->node) == CLASS_TEXT) macro_close(f); else putchar(' '); @@ -99,7 +102,8 @@ pnode_printtext(struct format *f, struct pnode *n) case LINE_MACRO: if (accept_arg == 0) macro_close(f); - else if (n->spc || (f->flags & FMT_ARG) == 0 || + else if (n->flags & NFLAG_SPC || + (f->flags & FMT_ARG) == 0 || (nn = TAILQ_PREV(n, pnodeq, child)) == NULL || pnode_class(nn->node) != CLASS_TEXT) putchar(' '); @@ -889,7 +893,7 @@ pnode_printrefentry(struct format *f, struct pnode *n) exit(1); } match->node = NODE_SECTION; - match->spc = 1; + match->flags |= NFLAG_SPC; match->parent = n; TAILQ_INIT(&match->childq); TAILQ_INIT(&match->attrq); @@ -898,7 +902,7 @@ pnode_printrefentry(struct format *f, struct pnode *n) exit(1); } nc->node = NODE_TITLE; - nc->spc = 1; + nc->flags |= NFLAG_SPC; if ((nc = pnode_alloc(nc)) == NULL) { perror(NULL); exit(1); @@ -908,7 +912,7 @@ pnode_printrefentry(struct format *f, struct pnode *n) perror(NULL); exit(1); } - nc->spc = 1; + nc->flags |= NFLAG_SPC; if (later == NULL) TAILQ_INSERT_TAIL(&n->childq, match, child); else @@ -1125,7 +1129,7 @@ pnode_print(struct format *f, struct pnode *n) return; was_impl = f->flags & FMT_IMPL; - if (n->spc) + if (n->flags & NFLAG_SPC) f->flags &= ~FMT_NOSPC; else f->flags |= FMT_NOSPC; @@ -1290,8 +1294,8 @@ pnode_print(struct format *f, struct pnode *n) if ((nc = TAILQ_FIRST(&n->childq)) != NULL && nc->node == NODE_FILENAME && TAILQ_NEXT(nc, child) == NULL) { - if (n->spc) - nc->spc = 1; + if (n->flags & NFLAG_SPC) + nc->flags |= NFLAG_SPC; } else if (was_impl) macro_open(f, "Do"); else { @@ -1349,12 +1353,12 @@ pnode_print(struct format *f, struct pnode *n) else print_text(f, "_", 0); if ((nc = TAILQ_FIRST(&n->childq)) != NULL) - nc->spc = 0; + nc->flags &= ~(NFLAG_LINE | NFLAG_SPC); break; case NODE_SUPERSCRIPT: fputs("\\(ha", stdout); if ((nc = TAILQ_FIRST(&n->childq)) != NULL) - nc->spc = 0; + nc->flags &= ~(NFLAG_LINE | NFLAG_SPC); break; case NODE_TEXT: case NODE_ESCAPE: