=================================================================== RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v retrieving revision 1.122 retrieving revision 1.124 diff -u -p -r1.122 -r1.124 --- docbook2mdoc/docbook2mdoc.c 2019/04/14 18:28:41 1.122 +++ docbook2mdoc/docbook2mdoc.c 2019/04/14 20:13:25 1.124 @@ -1,4 +1,4 @@ -/* $Id: docbook2mdoc.c,v 1.122 2019/04/14 18:28:41 schwarze Exp $ */ +/* $Id: docbook2mdoc.c,v 1.124 2019/04/14 20:13:25 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -1083,7 +1083,9 @@ pnode_print(struct format *f, struct pnode *n) case NODE_EMPHASIS: case NODE_FIRSTTERM: case NODE_GLOSSTERM: - macro_open(f, "Em"); + if ((nc = TAILQ_FIRST(&n->childq)) != NULL && + pnode_class(nc->node) < CLASS_LINE) + macro_open(f, "Em"); break; case NODE_ENVAR: macro_open(f, "Ev"); @@ -1156,7 +1158,9 @@ pnode_print(struct format *f, struct pnode *n) pnode_printmath(f, n); break; case NODE_OPTION: - macro_open(f, "Fl"); + if ((nc = TAILQ_FIRST(&n->childq)) != NULL && + pnode_class(nc->node) < CLASS_LINE) + macro_open(f, "Fl"); break; case NODE_ORDEREDLIST: pnode_printlist(f, n); @@ -1219,6 +1223,19 @@ pnode_print(struct format *f, struct pnode *n) break; case NODE_SBR: macro_line(f, "br"); + break; + case NODE_SUBSCRIPT: + if (f->linestate == LINE_MACRO) + macro_addarg(f, "_", 0); + else + print_text(f, "_", 0); + if ((nc = TAILQ_FIRST(&n->childq)) != NULL) + nc->spc = 0; + break; + case NODE_SUPERSCRIPT: + fputs("\\(ha", stdout); + if ((nc = TAILQ_FIRST(&n->childq)) != NULL) + nc->spc = 0; break; case NODE_TEXT: case NODE_ESCAPE: