version 1.111, 2019/04/12 11:37:09 |
version 1.115, 2019/04/12 21:37:07 |
Line 70 pnode_printtext(struct format *f, struct pnode *n) |
|
Line 70 pnode_printtext(struct format *f, struct pnode *n) |
|
*/ |
*/ |
|
|
if (f->linestate != LINE_MACRO && |
if (f->linestate != LINE_MACRO && |
(nn = TAILQ_NEXT(n, child)) != NULL && nn->spc == 0 && |
(nn = TAILQ_NEXT(n, child)) != NULL && nn->spc == 0) { |
(nn->node != NODE_TEXT && nn->node != NODE_ESCAPE)) { |
switch (pnode_class(nn->node)) { |
macro_open(f, "Pf"); |
case CLASS_LINE: |
accept_arg = 1; |
case CLASS_ENCL: |
f->flags |= FMT_CHILD; |
macro_open(f, "Pf"); |
nn->spc = 1; |
accept_arg = 1; |
|
f->flags |= FMT_CHILD; |
|
nn->spc = 1; |
|
break; |
|
default: |
|
break; |
|
} |
} |
} |
|
|
switch (f->linestate) { |
switch (f->linestate) { |
Line 192 pnode_printrefsynopsisdiv(struct format *f, struct pno |
|
Line 198 pnode_printrefsynopsisdiv(struct format *f, struct pno |
|
static void |
static void |
pnode_printrefsect(struct format *f, struct pnode *n) |
pnode_printrefsect(struct format *f, struct pnode *n) |
{ |
{ |
struct pnode *nc; |
struct pnode *nc, *ncc; |
const char *title; |
const char *title; |
int flags, level; |
int flags, level; |
|
|
Line 264 pnode_printrefsect(struct format *f, struct pnode *n) |
|
Line 270 pnode_printrefsect(struct format *f, struct pnode *n) |
|
break; |
break; |
} |
} |
|
|
if (nc != NULL) { |
if (nc != NULL) |
macro_addnode(f, nc, flags); |
macro_addnode(f, nc, flags); |
pnode_unlink(nc); |
else |
} else |
|
macro_addarg(f, title, flags | ARG_QUOTED); |
macro_addarg(f, title, flags | ARG_QUOTED); |
macro_close(f); |
macro_close(f); |
|
|
|
/* |
|
* DocBook has no equivalent for -split mode, |
|
* so just switch the default in the AUTHORS section. |
|
*/ |
|
|
|
if (nc != NULL) { |
|
ncc = TAILQ_FIRST(&nc->childq); |
|
if (ncc != NULL && ncc->node == NODE_TEXT && |
|
strcasecmp(ncc->b, "AUTHORS") == 0) |
|
macro_line(f, "An -nosplit"); |
|
pnode_unlink(nc); |
|
} |
} |
} |
|
|
/* |
/* |
Line 575 pnode_printauthor(struct format *f, struct pnode *n) |
|
Line 593 pnode_printauthor(struct format *f, struct pnode *n) |
|
|
|
if ((nc = pnode_findfirst(n, NODE_EMAIL)) != NULL) { |
if ((nc = pnode_findfirst(n, NODE_EMAIL)) != NULL) { |
f->flags |= FMT_CHILD; |
f->flags |= FMT_CHILD; |
pnode_print(f, nc); |
macro_open(f, "Aq Mt"); |
|
macro_addnode(f, nc, ARG_SPACE); |
pnode_unlink(nc); |
pnode_unlink(nc); |
} |
} |
|
|
|
|
pnode_print(struct format *f, struct pnode *n) |
pnode_print(struct format *f, struct pnode *n) |
{ |
{ |
struct pnode *nc, *nn; |
struct pnode *nc, *nn; |
enum linestate sv; |
int was_impl; |
|
|
if (n == NULL) |
if (n == NULL) |
return; |
return; |
|
|
sv = f->linestate; |
was_impl = f->flags & FMT_IMPL; |
if (n->spc) |
if (n->spc) |
f->flags &= ~FMT_NOSPC; |
f->flags &= ~FMT_NOSPC; |
else |
else |
Line 874 pnode_print(struct format *f, struct pnode *n) |
|
Line 893 pnode_print(struct format *f, struct pnode *n) |
|
break; |
break; |
case NODE_EDITOR: |
case NODE_EDITOR: |
print_text(f, "editor:", ARG_SPACE); |
print_text(f, "editor:", ARG_SPACE); |
sv = LINE_TEXT; |
|
macro_open(f, "An"); |
macro_open(f, "An"); |
break; |
break; |
case NODE_EMAIL: |
case NODE_EMAIL: |
macro_open(f, "Aq Mt"); |
if (was_impl) |
|
macro_open(f, "Ao Mt"); |
|
else { |
|
macro_open(f, "Aq Mt"); |
|
f->flags |= FMT_IMPL; |
|
} |
break; |
break; |
case NODE_EMPHASIS: |
case NODE_EMPHASIS: |
case NODE_FIRSTTERM: |
case NODE_FIRSTTERM: |
Line 922 pnode_print(struct format *f, struct pnode *n) |
|
Line 945 pnode_print(struct format *f, struct pnode *n) |
|
pnode_printlink(f, n); |
pnode_printlink(f, n); |
break; |
break; |
case NODE_LITERAL: |
case NODE_LITERAL: |
macro_open(f, "Ql"); |
if (was_impl) |
|
macro_open(f, "So"); |
|
else { |
|
macro_open(f, "Ql"); |
|
f->flags |= FMT_IMPL; |
|
} |
break; |
break; |
case NODE_LITERALLAYOUT: |
case NODE_LITERALLAYOUT: |
macro_close(f); |
macro_close(f); |
Line 965 pnode_print(struct format *f, struct pnode *n) |
|
Line 993 pnode_print(struct format *f, struct pnode *n) |
|
pnode_unlinksub(n); |
pnode_unlinksub(n); |
break; |
break; |
case NODE_QUOTE: |
case NODE_QUOTE: |
macro_open(f, "Qo"); |
if (was_impl) |
|
macro_open(f, "Do"); |
|
else { |
|
macro_open(f, "Dq"); |
|
f->flags |= FMT_IMPL; |
|
} |
break; |
break; |
case NODE_PROGRAMLISTING: |
case NODE_PROGRAMLISTING: |
case NODE_SCREEN: |
case NODE_SCREEN: |
Line 1039 pnode_print(struct format *f, struct pnode *n) |
|
Line 1072 pnode_print(struct format *f, struct pnode *n) |
|
pnode_print(f, nc); |
pnode_print(f, nc); |
|
|
switch (n->node) { |
switch (n->node) { |
|
case NODE_EMAIL: |
|
if (was_impl) { |
|
f->flags &= ~FMT_NOSPC; |
|
macro_open(f, "Ac"); |
|
} else |
|
f->flags &= ~FMT_IMPL; |
|
break; |
case NODE_ESCAPE: |
case NODE_ESCAPE: |
case NODE_TERM: |
case NODE_TERM: |
case NODE_TEXT: |
case NODE_TEXT: |
Line 1051 pnode_print(struct format *f, struct pnode *n) |
|
Line 1091 pnode_print(struct format *f, struct pnode *n) |
|
case NODE_INLINEEQUATION: |
case NODE_INLINEEQUATION: |
macro_line(f, "EN"); |
macro_line(f, "EN"); |
break; |
break; |
|
case NODE_LITERAL: |
|
if (was_impl) { |
|
f->flags &= ~FMT_NOSPC; |
|
macro_open(f, "Sc"); |
|
} else |
|
f->flags &= ~FMT_IMPL; |
|
break; |
case NODE_MEMBER: |
case NODE_MEMBER: |
if ((nn = TAILQ_NEXT(n, child)) != NULL && |
if ((nn = TAILQ_NEXT(n, child)) != NULL && |
nn->node != NODE_MEMBER) |
nn->node != NODE_MEMBER) |
Line 1078 pnode_print(struct format *f, struct pnode *n) |
|
Line 1125 pnode_print(struct format *f, struct pnode *n) |
|
fputs(" } ", stdout); |
fputs(" } ", stdout); |
break; |
break; |
case NODE_QUOTE: |
case NODE_QUOTE: |
if (sv == LINE_NEW) |
if (was_impl) { |
macro_close(f); |
f->flags &= ~FMT_NOSPC; |
sv = f->linestate; |
macro_open(f, "Dc"); |
macro_open(f, "Qc"); |
} else |
if (sv == LINE_NEW) |
f->flags &= ~FMT_IMPL; |
macro_close(f); |
|
break; |
break; |
case NODE_PREFACE: |
case NODE_PREFACE: |
case NODE_SECTION: |
case NODE_SECTION: |
Line 1114 pnode_print(struct format *f, struct pnode *n) |
|
Line 1160 pnode_print(struct format *f, struct pnode *n) |
|
} |
} |
|
|
void |
void |
ptree_print(struct ptree *tree) |
ptree_print_mdoc(struct ptree *tree) |
{ |
{ |
struct format formatter; |
struct format formatter; |
|
|