version 1.221, 2011/03/22 10:13:01 |
version 1.225, 2011/04/04 16:21:51 |
Line 351 print_mdoc_node(DECL_ARGS) |
|
Line 351 print_mdoc_node(DECL_ARGS) |
|
case (MDOC_TEXT): |
case (MDOC_TEXT): |
if (' ' == *n->string && MDOC_LINE & n->flags) |
if (' ' == *n->string && MDOC_LINE & n->flags) |
term_newln(p); |
term_newln(p); |
|
if (MDOC_DELIMC & n->flags) |
|
p->flags |= TERMP_NOSPACE; |
term_word(p, n->string); |
term_word(p, n->string); |
|
if (MDOC_DELIMO & n->flags) |
|
p->flags |= TERMP_NOSPACE; |
break; |
break; |
case (MDOC_EQN): |
case (MDOC_EQN): |
term_word(p, n->eqn->data); |
term_word(p, n->eqn->data); |
Line 1179 termp_rs_pre(DECL_ARGS) |
|
Line 1183 termp_rs_pre(DECL_ARGS) |
|
static int |
static int |
termp_rv_pre(DECL_ARGS) |
termp_rv_pre(DECL_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
int nchild; |
|
|
term_newln(p); |
term_newln(p); |
term_word(p, "The"); |
term_word(p, "The"); |
|
|
for (nn = n->child; nn; nn = nn->next) { |
nchild = n->nchild; |
|
for (n = n->child; n; n = n->next) { |
term_fontpush(p, TERMFONT_BOLD); |
term_fontpush(p, TERMFONT_BOLD); |
term_word(p, nn->string); |
term_word(p, n->string); |
term_fontpop(p); |
term_fontpop(p); |
|
|
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
if (nn->next && NULL == nn->next->next) |
term_word(p, "()"); |
term_word(p, "(), and"); |
|
else if (nn->next) |
if (nchild > 2 && n->next) { |
term_word(p, "(),"); |
p->flags |= TERMP_NOSPACE; |
else |
term_word(p, ","); |
term_word(p, "()"); |
} |
|
|
|
if (n->next && NULL == n->next->next) |
|
term_word(p, "and"); |
} |
} |
|
|
if (n->child && n->child->next) |
if (nchild > 1) |
term_word(p, "functions return"); |
term_word(p, "functions return"); |
else |
else |
term_word(p, "function returns"); |
term_word(p, "function returns"); |
Line 1220 termp_rv_pre(DECL_ARGS) |
|
Line 1229 termp_rv_pre(DECL_ARGS) |
|
static int |
static int |
termp_ex_pre(DECL_ARGS) |
termp_ex_pre(DECL_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
int nchild; |
|
|
|
term_newln(p); |
term_word(p, "The"); |
term_word(p, "The"); |
|
|
for (nn = n->child; nn; nn = nn->next) { |
nchild = n->nchild; |
|
for (n = n->child; n; n = n->next) { |
term_fontpush(p, TERMFONT_BOLD); |
term_fontpush(p, TERMFONT_BOLD); |
term_word(p, nn->string); |
term_word(p, n->string); |
term_fontpop(p); |
term_fontpop(p); |
p->flags |= TERMP_NOSPACE; |
|
if (nn->next && NULL == nn->next->next) |
if (nchild > 2 && n->next) { |
term_word(p, ", and"); |
p->flags |= TERMP_NOSPACE; |
else if (nn->next) |
|
term_word(p, ","); |
term_word(p, ","); |
else |
} |
p->flags &= ~TERMP_NOSPACE; |
|
|
if (n->next && NULL == n->next->next) |
|
term_word(p, "and"); |
} |
} |
|
|
if (n->child && n->child->next) |
if (nchild > 1) |
term_word(p, "utilities exit"); |
term_word(p, "utilities exit"); |
else |
else |
term_word(p, "utility exits"); |
term_word(p, "utility exits"); |
|
|
term_word(p, "0 on success, and >0 if an error occurs."); |
term_word(p, "0 on success, and >0 if an error occurs."); |
p->flags |= TERMP_SENTENCE; |
|
|
|
|
p->flags |= TERMP_SENTENCE; |
return(0); |
return(0); |
} |
} |
|
|
Line 1284 termp_bl_post(DECL_ARGS) |
|
Line 1296 termp_bl_post(DECL_ARGS) |
|
term_newln(p); |
term_newln(p); |
} |
} |
|
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static int |
static int |
termp_xr_pre(DECL_ARGS) |
termp_xr_pre(DECL_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
|
|
|
if (NULL == n->child) |
if (NULL == (n = n->child)) |
return(0); |
return(0); |
|
|
assert(MDOC_TEXT == n->child->type); |
assert(MDOC_TEXT == n->type); |
nn = n->child; |
term_word(p, n->string); |
|
|
term_word(p, nn->string); |
if (NULL == (n = n->next)) |
if (NULL == (nn = nn->next)) |
|
return(0); |
return(0); |
|
|
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
term_word(p, "("); |
term_word(p, "("); |
term_word(p, nn->string); |
p->flags |= TERMP_NOSPACE; |
|
|
|
assert(MDOC_TEXT == n->type); |
|
term_word(p, n->string); |
|
|
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ")"); |
term_word(p, ")"); |
|
|
return(0); |
return(0); |
} |
} |
|
|
|
|
/* |
/* |
* This decides how to assert whitespace before any of the SYNOPSIS set |
* This decides how to assert whitespace before any of the SYNOPSIS set |
* of macros (which, as in the case of Ft/Fo and Ft/Fn, may contain |
* of macros (which, as in the case of Ft/Fo and Ft/Fn, may contain |
Line 1532 termp_fn_pre(DECL_ARGS) |
|
Line 1546 termp_fn_pre(DECL_ARGS) |
|
|
|
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
term_word(p, "("); |
term_word(p, "("); |
|
p->flags |= TERMP_NOSPACE; |
|
|
for (nn = n->child->next; nn; nn = nn->next) { |
for (nn = n->child->next; nn; nn = nn->next) { |
term_fontpush(p, TERMFONT_UNDER); |
term_fontpush(p, TERMFONT_UNDER); |
term_word(p, nn->string); |
term_word(p, nn->string); |
term_fontpop(p); |
term_fontpop(p); |
|
|
if (nn->next) |
if (nn->next) { |
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ","); |
term_word(p, ","); |
|
} |
} |
} |
|
|
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ")"); |
term_word(p, ")"); |
|
|
if (MDOC_SYNPRETTY & n->flags) |
if (MDOC_SYNPRETTY & n->flags) { |
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ";"); |
term_word(p, ";"); |
|
} |
|
|
return(0); |
return(0); |
} |
} |
Line 1567 termp_fa_pre(DECL_ARGS) |
|
Line 1587 termp_fa_pre(DECL_ARGS) |
|
term_word(p, nn->string); |
term_word(p, nn->string); |
term_fontpop(p); |
term_fontpop(p); |
|
|
if (nn->next) |
if (nn->next) { |
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ","); |
term_word(p, ","); |
|
} |
} |
} |
|
|
if (n->child && n->next && n->next->tok == MDOC_Fa) |
if (n->child && n->next && n->next->tok == MDOC_Fa) { |
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ","); |
term_word(p, ","); |
|
} |
|
|
return(0); |
return(0); |
} |
} |
Line 2007 termp_fo_pre(DECL_ARGS) |
|
Line 2031 termp_fo_pre(DECL_ARGS) |
|
} else if (MDOC_BODY == n->type) { |
} else if (MDOC_BODY == n->type) { |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
term_word(p, "("); |
term_word(p, "("); |
|
p->flags |= TERMP_NOSPACE; |
return(1); |
return(1); |
} |
} |
|
|
Line 2030 termp_fo_post(DECL_ARGS) |
|
Line 2055 termp_fo_post(DECL_ARGS) |
|
if (MDOC_BODY != n->type) |
if (MDOC_BODY != n->type) |
return; |
return; |
|
|
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ")"); |
term_word(p, ")"); |
|
|
if (MDOC_SYNPRETTY & n->flags) |
if (MDOC_SYNPRETTY & n->flags) { |
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ";"); |
term_word(p, ";"); |
|
} |
} |
} |
|
|
|
|
Line 2107 termp____post(DECL_ARGS) |
|
Line 2135 termp____post(DECL_ARGS) |
|
if (NULL == n->parent || MDOC_Rs != n->parent->tok) |
if (NULL == n->parent || MDOC_Rs != n->parent->tok) |
return; |
return; |
|
|
|
p->flags |= TERMP_NOSPACE; |
if (NULL == n->next) { |
if (NULL == n->next) { |
term_word(p, "."); |
term_word(p, "."); |
p->flags |= TERMP_SENTENCE; |
p->flags |= TERMP_SENTENCE; |
Line 2143 termp_lk_pre(DECL_ARGS) |
|
Line 2172 termp_lk_pre(DECL_ARGS) |
|
|
|
term_fontpop(p); |
term_fontpop(p); |
|
|
|
p->flags |= TERMP_NOSPACE; |
term_word(p, ":"); |
term_word(p, ":"); |
|
|
term_fontpush(p, TERMFONT_BOLD); |
term_fontpush(p, TERMFONT_BOLD); |