version 1.132, 2019/04/21 14:48:11 |
version 1.137, 2019/04/24 15:20:12 |
Line 90 pnode_printtext(struct format *f, struct pnode *n) |
|
Line 90 pnode_printtext(struct format *f, struct pnode *n) |
|
break; |
break; |
case LINE_TEXT: |
case LINE_TEXT: |
if (n->spc) { |
if (n->spc) { |
if (n->node == NODE_TEXT) |
if (pnode_class(n->node) == CLASS_TEXT) |
macro_close(f); |
macro_close(f); |
else |
else |
putchar(' '); |
putchar(' '); |
} |
} |
break; |
break; |
case LINE_MACRO: |
case LINE_MACRO: |
if (accept_arg) |
if (accept_arg == 0) |
putchar(' '); |
|
else |
|
macro_close(f); |
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; |
break; |
} |
} |
|
|
Line 812 pnode_printrefentry(struct format *f, struct pnode *n) |
|
Line 814 pnode_printrefentry(struct format *f, struct pnode *n) |
|
pnode_unlink(info); |
pnode_unlink(info); |
info = NULL; |
info = NULL; |
} |
} |
|
if (info == NULL) |
|
info = pnode_takefirst(n, NODE_INFO); |
meta = pnode_takefirst(n, NODE_REFMETA); |
meta = pnode_takefirst(n, NODE_REFMETA); |
if (meta != NULL && TAILQ_FIRST(&meta->childq) == NULL) { |
if (meta != NULL && TAILQ_FIRST(&meta->childq) == NULL) { |
pnode_unlink(meta); |
pnode_unlink(meta); |
Line 929 pnode_printrefentry(struct format *f, struct pnode *n) |
|
Line 933 pnode_printrefentry(struct format *f, struct pnode *n) |
|
static void |
static void |
pnode_printvarlistentry(struct format *f, struct pnode *n) |
pnode_printvarlistentry(struct format *f, struct pnode *n) |
{ |
{ |
struct pnode *nc, *nn; |
struct pnode *nc, *nn, *ncc; |
int first = 1; |
int comma; |
|
|
macro_open(f, "It"); |
macro_open(f, "It"); |
f->parastate = PARA_HAVE; |
f->parastate = PARA_HAVE; |
f->flags |= FMT_IMPL; |
f->flags |= FMT_IMPL; |
|
comma = -1; |
TAILQ_FOREACH_SAFE(nc, &n->childq, child, nn) { |
TAILQ_FOREACH_SAFE(nc, &n->childq, child, nn) { |
if (nc->node != NODE_TERM && nc->node != NODE_GLOSSTERM) |
if (nc->node != NODE_TERM && nc->node != NODE_GLOSSTERM) |
continue; |
continue; |
if (first == 0) { |
if (comma != -1) { |
switch (f->linestate) { |
switch (f->linestate) { |
case LINE_NEW: |
case LINE_NEW: |
break; |
break; |
Line 946 pnode_printvarlistentry(struct format *f, struct pnode |
|
Line 951 pnode_printvarlistentry(struct format *f, struct pnode |
|
print_text(f, ",", 0); |
print_text(f, ",", 0); |
break; |
break; |
case LINE_MACRO: |
case LINE_MACRO: |
macro_addarg(f, ",", 0); |
macro_addarg(f, ",", comma); |
break; |
break; |
} |
} |
} |
} |
f->parastate = PARA_HAVE; |
f->parastate = PARA_HAVE; |
|
comma = (ncc = TAILQ_FIRST(&nc->childq)) == NULL || |
|
pnode_class(ncc->node) == CLASS_TEXT ? 0 : ARG_SPACE; |
pnode_print(f, nc); |
pnode_print(f, nc); |
pnode_unlink(nc); |
pnode_unlink(nc); |
first = 0; |
|
} |
} |
macro_close(f); |
macro_close(f); |
f->parastate = PARA_HAVE; |
f->parastate = PARA_HAVE; |
Line 1033 pnode_printtgroup2(struct format *f, struct pnode *n) |
|
Line 1039 pnode_printtgroup2(struct format *f, struct pnode *n) |
|
pnode_unlink(nr); |
pnode_unlink(nr); |
} |
} |
macro_line(f, "El"); |
macro_line(f, "El"); |
|
f->parastate = PARA_WANT; |
pnode_unlinksub(n); |
pnode_unlinksub(n); |
} |
} |
|
|
Line 1059 pnode_printtgroup(struct format *f, struct pnode *n) |
|
Line 1066 pnode_printtgroup(struct format *f, struct pnode *n) |
|
pnode_printrow(f, nc); |
pnode_printrow(f, nc); |
} |
} |
macro_line(f, "El"); |
macro_line(f, "El"); |
|
f->parastate = PARA_WANT; |
pnode_unlinksub(n); |
pnode_unlinksub(n); |
} |
} |
|
|
Line 1078 pnode_printlist(struct format *f, struct pnode *n) |
|
Line 1086 pnode_printlist(struct format *f, struct pnode *n) |
|
f->parastate = PARA_HAVE; |
f->parastate = PARA_HAVE; |
} |
} |
macro_line(f, "El"); |
macro_line(f, "El"); |
|
f->parastate = PARA_WANT; |
pnode_unlinksub(n); |
pnode_unlinksub(n); |
} |
} |
|
|
Line 1096 pnode_printvariablelist(struct format *f, struct pnode |
|
Line 1105 pnode_printvariablelist(struct format *f, struct pnode |
|
macro_nodeline(f, "It", nc, 0); |
macro_nodeline(f, "It", nc, 0); |
} |
} |
macro_line(f, "El"); |
macro_line(f, "El"); |
|
f->parastate = PARA_WANT; |
pnode_unlinksub(n); |
pnode_unlinksub(n); |
} |
} |
|
|
Line 1476 pnode_print(struct format *f, struct pnode *n) |
|
Line 1486 pnode_print(struct format *f, struct pnode *n) |
|
case NODE_SYNOPSIS: |
case NODE_SYNOPSIS: |
f->parastate = PARA_HAVE; |
f->parastate = PARA_HAVE; |
macro_line(f, "Ed"); |
macro_line(f, "Ed"); |
|
f->parastate = PARA_WANT; |
break; |
break; |
case NODE_TITLE: |
case NODE_TITLE: |
case NODE_SUBTITLE: |
case NODE_SUBTITLE: |