version 1.165, 2010/07/01 22:56:17 |
version 1.168, 2010/07/02 15:03:14 |
Line 57 static size_t a2width(const struct termp *, const ch |
|
Line 57 static size_t a2width(const struct termp *, const ch |
|
static size_t a2height(const struct termp *, const char *); |
static size_t a2height(const struct termp *, const char *); |
static size_t a2offs(const struct termp *, const char *); |
static size_t a2offs(const struct termp *, const char *); |
|
|
static int arg_hasattr(int, const struct mdoc_node *); |
|
static int arg_getattr(int, const struct mdoc_node *); |
static int arg_getattr(int, const struct mdoc_node *); |
static void print_bvspace(struct termp *, |
static void print_bvspace(struct termp *, |
const struct mdoc_node *, |
const struct mdoc_node *, |
Line 528 a2offs(const struct termp *p, const char *v) |
|
Line 527 a2offs(const struct termp *p, const char *v) |
|
|
|
|
|
/* |
/* |
* Return 1 if an argument has a particular argument value or 0 if it |
|
* does not. See arg_getattr(). |
|
*/ |
|
static int |
|
arg_hasattr(int arg, const struct mdoc_node *n) |
|
{ |
|
|
|
return(-1 != arg_getattr(arg, n)); |
|
} |
|
|
|
|
|
/* |
|
* Get the index of an argument in a node's argument list or -1 if it |
* Get the index of an argument in a node's argument list or -1 if it |
* does not exist. |
* does not exist. |
*/ |
*/ |
Line 1141 termp_an_post(DECL_ARGS) |
|
Line 1128 termp_an_post(DECL_ARGS) |
|
return; |
return; |
} |
} |
|
|
if (arg_hasattr(MDOC_Split, n)) { |
if (AUTH_split == n->data.An.auth) { |
p->flags &= ~TERMP_NOSPLIT; |
p->flags &= ~TERMP_NOSPLIT; |
p->flags |= TERMP_SPLIT; |
p->flags |= TERMP_SPLIT; |
} else { |
} else if (AUTH_nosplit == n->data.An.auth) { |
p->flags &= ~TERMP_SPLIT; |
p->flags &= ~TERMP_SPLIT; |
p->flags |= TERMP_NOSPLIT; |
p->flags |= TERMP_NOSPLIT; |
} |
} |
Line 2057 termp_fo_post(DECL_ARGS) |
|
Line 2044 termp_fo_post(DECL_ARGS) |
|
static int |
static int |
termp_bf_pre(DECL_ARGS) |
termp_bf_pre(DECL_ARGS) |
{ |
{ |
const struct mdoc_node *nn; |
|
|
|
if (MDOC_HEAD == n->type) |
if (MDOC_HEAD == n->type) |
return(0); |
return(0); |
else if (MDOC_BLOCK != n->type) |
else if (MDOC_BLOCK != n->type) |
return(1); |
return(1); |
|
|
if (NULL == (nn = n->head->child)) { |
assert(n->data.Bf); |
if (arg_hasattr(MDOC_Emphasis, n)) |
|
term_fontpush(p, TERMFONT_UNDER); |
|
else if (arg_hasattr(MDOC_Symbolic, n)) |
|
term_fontpush(p, TERMFONT_BOLD); |
|
else |
|
term_fontpush(p, TERMFONT_NONE); |
|
|
|
return(1); |
if (FONT_Em == n->data.Bf->font) |
} |
|
|
|
assert(MDOC_TEXT == nn->type); |
|
if (0 == strcmp("Em", nn->string)) |
|
term_fontpush(p, TERMFONT_UNDER); |
term_fontpush(p, TERMFONT_UNDER); |
else if (0 == strcmp("Sy", nn->string)) |
else if (FONT_Sy == n->data.Bf->font) |
term_fontpush(p, TERMFONT_BOLD); |
term_fontpush(p, TERMFONT_BOLD); |
else |
else |
term_fontpush(p, TERMFONT_NONE); |
term_fontpush(p, TERMFONT_NONE); |
|
|
return(1); |
return(1); |
Line 2170 termp_bk_pre(DECL_ARGS) |
|
Line 2146 termp_bk_pre(DECL_ARGS) |
|
|
|
switch (n->type) { |
switch (n->type) { |
case (MDOC_BLOCK): |
case (MDOC_BLOCK): |
return(1); |
break; |
case (MDOC_HEAD): |
case (MDOC_HEAD): |
return(0); |
return(0); |
case (MDOC_BODY): |
case (MDOC_BODY): |
p->flags |= TERMP_PREKEEP; |
p->flags |= TERMP_PREKEEP; |
return(1); |
break; |
default: |
default: |
abort(); |
abort(); |
|
/* NOTREACHED */ |
} |
} |
|
|
|
return(1); |
} |
} |
|
|
|
|