version 1.143, 2019/04/28 19:59:01 |
version 1.146, 2019/05/01 15:05:39 |
Line 345 pnode_printmath(struct format *f, struct pnode *n) |
|
Line 345 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 399 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 930 pnode_print(struct format *f, struct pnode *n) |
|
if (n == NULL) |
if (n == NULL) |
return; |
return; |
|
|
|
if (f->nofill && n->flags & NFLAG_LINE) |
|
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 1196 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 1284 pnode_print(struct format *f, struct pnode *n) |
|
Line 1299 pnode_print(struct format *f, struct pnode *n) |
|
case NODE_SUBTITLE: |
case NODE_SUBTITLE: |
f->parastate = PARA_WANT; |
f->parastate = PARA_WANT; |
break; |
break; |
|
case NODE_YEAR: |
|
if ((nn = TAILQ_NEXT(n, child)) != NULL && |
|
nn->node == NODE_YEAR && |
|
f->linestate == LINE_TEXT) { |
|
print_text(f, ",", 0); |
|
nn->flags |= NFLAG_SPC; |
|
if ((nc = TAILQ_FIRST(&nn->childq)) != NULL) |
|
nc->flags |= NFLAG_SPC; |
|
} |
default: |
default: |
break; |
break; |
} |
} |
f->flags &= ~FMT_ARG; |
f->flags &= ~FMT_ARG; |
|
if (pnode_class(n->node) == CLASS_NOFILL) |
|
f->nofill--; |
} |
} |
|
|
void |
void |
Line 1295 ptree_print_mdoc(struct ptree *tree) |
|
Line 1321 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); |