version 1.144, 2019/05/01 11:34:19 |
version 1.147, 2019/05/01 17:20:47 |
Line 40 pnode_printtext(struct format *f, struct pnode *n) |
|
Line 40 pnode_printtext(struct format *f, struct pnode *n) |
|
char *cp; |
char *cp; |
int accept_arg; |
int accept_arg; |
|
|
|
para_check(f); |
cp = n->b; |
cp = n->b; |
accept_arg = f->flags & FMT_ARG; |
accept_arg = f->flags & FMT_ARG; |
if (f->linestate == LINE_MACRO && !accept_arg && |
if (f->linestate == LINE_MACRO && !accept_arg && |
Line 345 pnode_printmath(struct format *f, struct pnode *n) |
|
Line 346 pnode_printmath(struct format *f, struct pnode *n) |
|
static void |
static void |
pnode_printfuncprototype(struct format *f, struct pnode *n) |
pnode_printfuncprototype(struct format *f, struct pnode *n) |
{ |
{ |
struct pnode *fdef, *ftype, *nc, *nn; |
struct pnode *fdef, *fps, *ftype, *nc, *nn; |
|
|
/* |
/* |
* Extract <funcdef> child and ignore <void> child. |
* Extract <funcdef> child and ignore <void> child. |
Line 399 pnode_printfuncprototype(struct format *f, struct pnod |
|
Line 400 pnode_printfuncprototype(struct format *f, struct pnod |
|
return; |
return; |
|
|
while (nc != NULL) { |
while (nc != NULL) { |
macro_nodeline(f, "Fa", nc, ARG_SINGLE); |
if ((fps = pnode_takefirst(nc, NODE_FUNCPARAMS)) != NULL) { |
|
macro_open(f, "Fa \""); |
|
macro_addnode(f, nc, ARG_QUOTED); |
|
macro_addarg(f, "(", ARG_QUOTED); |
|
macro_addnode(f, fps, ARG_QUOTED); |
|
macro_addarg(f, ")", ARG_QUOTED); |
|
putchar('"'); |
|
macro_close(f); |
|
} else |
|
macro_nodeline(f, "Fa", nc, ARG_SINGLE); |
pnode_unlink(nc); |
pnode_unlink(nc); |
nc = TAILQ_FIRST(&n->childq); |
nc = TAILQ_FIRST(&n->childq); |
} |
} |
Line 921 pnode_print(struct format *f, struct pnode *n) |
|
Line 931 pnode_print(struct format *f, struct pnode *n) |
|
if (n == NULL) |
if (n == NULL) |
return; |
return; |
|
|
|
if (n->flags & NFLAG_LINE && |
|
(f->nofill || (f->flags & (FMT_ARG | FMT_IMPL)) == 0)) |
|
macro_close(f); |
|
|
was_impl = f->flags & FMT_IMPL; |
was_impl = f->flags & FMT_IMPL; |
if (n->flags & NFLAG_SPC) |
if (n->flags & NFLAG_SPC) |
f->flags &= ~FMT_NOSPC; |
f->flags &= ~FMT_NOSPC; |
Line 1184 pnode_print(struct format *f, struct pnode *n) |
|
Line 1198 pnode_print(struct format *f, struct pnode *n) |
|
break; |
break; |
} |
} |
|
|
|
if (pnode_class(n->node) == CLASS_NOFILL) |
|
f->nofill++; |
|
|
TAILQ_FOREACH(nc, &n->childq, child) |
TAILQ_FOREACH(nc, &n->childq, child) |
pnode_print(f, nc); |
pnode_print(f, nc); |
|
|
Line 1297 pnode_print(struct format *f, struct pnode *n) |
|
Line 1314 pnode_print(struct format *f, struct pnode *n) |
|
break; |
break; |
} |
} |
f->flags &= ~FMT_ARG; |
f->flags &= ~FMT_ARG; |
|
if (pnode_class(n->node) == CLASS_NOFILL) |
|
f->nofill--; |
} |
} |
|
|
void |
void |
Line 1304 ptree_print_mdoc(struct ptree *tree) |
|
Line 1323 ptree_print_mdoc(struct ptree *tree) |
|
{ |
{ |
struct format formatter; |
struct format formatter; |
|
|
formatter.level = 0; |
formatter.level = formatter.nofill = 0; |
formatter.linestate = LINE_NEW; |
formatter.linestate = LINE_NEW; |
formatter.parastate = PARA_HAVE; |
formatter.parastate = PARA_HAVE; |
pnode_printprologue(&formatter, tree->root); |
pnode_printprologue(&formatter, tree->root); |