version 1.177, 2010/07/21 21:55:33 |
version 1.182, 2010/08/20 22:51:29 |
Line 151 static const struct termact termacts[MDOC_MAX] = { |
|
Line 151 static const struct termact termacts[MDOC_MAX] = { |
|
{ termp_bl_pre, termp_bl_post }, /* Bl */ |
{ termp_bl_pre, termp_bl_post }, /* Bl */ |
{ NULL, NULL }, /* El */ |
{ NULL, NULL }, /* El */ |
{ termp_it_pre, termp_it_post }, /* It */ |
{ termp_it_pre, termp_it_post }, /* It */ |
{ NULL, NULL }, /* Ad */ |
{ termp_under_pre, NULL }, /* Ad */ |
{ termp_an_pre, termp_an_post }, /* An */ |
{ termp_an_pre, termp_an_post }, /* An */ |
{ termp_under_pre, NULL }, /* Ar */ |
{ termp_under_pre, NULL }, /* Ar */ |
{ termp_cd_pre, NULL }, /* Cd */ |
{ termp_cd_pre, NULL }, /* Cd */ |
Line 842 termp_it_pre(DECL_ARGS) |
|
Line 842 termp_it_pre(DECL_ARGS) |
|
if (MDOC_BODY == n->prev->type) |
if (MDOC_BODY == n->prev->type) |
p->flags |= TERMP_NOLPAD; |
p->flags |= TERMP_NOLPAD; |
|
|
|
p->flags |= TERMP_IGNDELIM; |
|
|
break; |
break; |
case (LIST_diag): |
case (LIST_diag): |
if (MDOC_HEAD == n->type) |
if (MDOC_HEAD == n->type) |
Line 1000 termp_it_post(DECL_ARGS) |
|
Line 1002 termp_it_post(DECL_ARGS) |
|
p->flags &= ~TERMP_TWOSPACE; |
p->flags &= ~TERMP_TWOSPACE; |
p->flags &= ~TERMP_NOLPAD; |
p->flags &= ~TERMP_NOLPAD; |
p->flags &= ~TERMP_HANG; |
p->flags &= ~TERMP_HANG; |
|
|
|
/* |
|
* TERMP_IGNDELIM is also set by `Pf', but it is safe |
|
* to clear it here because `Pf' cannot contain `It'. |
|
*/ |
|
|
|
p->flags &= ~TERMP_IGNDELIM; |
} |
} |
|
|
|
|
Line 1621 termp_fa_pre(DECL_ARGS) |
|
Line 1630 termp_fa_pre(DECL_ARGS) |
|
static int |
static int |
termp_bd_pre(DECL_ARGS) |
termp_bd_pre(DECL_ARGS) |
{ |
{ |
size_t tabwidth; |
size_t tabwidth, rm, rmax; |
size_t rm, rmax; |
|
const struct mdoc_node *nn; |
const struct mdoc_node *nn; |
|
|
if (MDOC_BLOCK == n->type) { |
if (MDOC_BLOCK == n->type) { |
Line 1654 termp_bd_pre(DECL_ARGS) |
|
Line 1662 termp_bd_pre(DECL_ARGS) |
|
p->rmargin = p->maxrmargin = TERM_MAXMARGIN; |
p->rmargin = p->maxrmargin = TERM_MAXMARGIN; |
|
|
for (nn = n->child; nn; nn = nn->next) { |
for (nn = n->child; nn; nn = nn->next) { |
p->flags |= TERMP_NOSPACE; |
|
print_mdoc_node(p, pair, m, nn); |
print_mdoc_node(p, pair, m, nn); |
if (NULL == nn->prev || |
if (nn->next && nn->next->line == nn->line) |
nn->prev->line < nn->line || |
continue; |
NULL == nn->next) |
term_flushln(p); |
term_flushln(p); |
p->flags |= TERMP_NOSPACE; |
} |
} |
|
|
p->tabwidth = tabwidth; |
p->tabwidth = tabwidth; |
|
|
termp_pf_post(DECL_ARGS) |
termp_pf_post(DECL_ARGS) |
{ |
{ |
|
|
|
/* |
|
* XXX Resetting TERMP_IGNDELIM here is not safe |
|
* because `Pf' can be used inside `Bl -column'. |
|
*/ |
p->flags &= ~TERMP_IGNDELIM; |
p->flags &= ~TERMP_IGNDELIM; |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
} |
} |
Line 2121 termp_li_pre(DECL_ARGS) |
|
Line 2132 termp_li_pre(DECL_ARGS) |
|
static int |
static int |
termp_lk_pre(DECL_ARGS) |
termp_lk_pre(DECL_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
const struct mdoc_node *nn, *sv; |
|
|
term_fontpush(p, TERMFONT_UNDER); |
term_fontpush(p, TERMFONT_UNDER); |
nn = n->child; |
|
|
|
|
nn = sv = n->child; |
|
|
if (NULL == nn->next) |
if (NULL == nn->next) |
return(1); |
return(1); |
|
|
term_word(p, nn->string); |
for (nn = nn->next; nn; nn = nn->next) |
|
term_word(p, nn->string); |
|
|
term_fontpop(p); |
term_fontpop(p); |
|
|
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
term_word(p, ":"); |
term_word(p, ":"); |
|
|
term_fontpush(p, TERMFONT_BOLD); |
term_fontpush(p, TERMFONT_BOLD); |
for (nn = nn->next; nn; nn = nn->next) |
term_word(p, sv->string); |
term_word(p, nn->string); |
|
term_fontpop(p); |
term_fontpop(p); |
|
|
return(0); |
return(0); |