version 1.28, 2012/07/09 22:36:34 |
version 1.30, 2012/07/10 14:38:51 |
Line 46 static void font_pop(void); |
|
Line 46 static void font_pop(void); |
|
static void post_bd(DECL_ARGS); |
static void post_bd(DECL_ARGS); |
static void post_bf(DECL_ARGS); |
static void post_bf(DECL_ARGS); |
static void post_bk(DECL_ARGS); |
static void post_bk(DECL_ARGS); |
|
static void post_bl(DECL_ARGS); |
static void post_dl(DECL_ARGS); |
static void post_dl(DECL_ARGS); |
static void post_enc(DECL_ARGS); |
static void post_enc(DECL_ARGS); |
static void post_eo(DECL_ARGS); |
static void post_eo(DECL_ARGS); |
static void post_fa(DECL_ARGS); |
static void post_fa(DECL_ARGS); |
|
static void post_fd(DECL_ARGS); |
static void post_fl(DECL_ARGS); |
static void post_fl(DECL_ARGS); |
static void post_fn(DECL_ARGS); |
static void post_fn(DECL_ARGS); |
static void post_fo(DECL_ARGS); |
static void post_fo(DECL_ARGS); |
static void post_font(DECL_ARGS); |
static void post_font(DECL_ARGS); |
static void post_in(DECL_ARGS); |
static void post_in(DECL_ARGS); |
|
static void post_it(DECL_ARGS); |
static void post_lb(DECL_ARGS); |
static void post_lb(DECL_ARGS); |
static void post_nm(DECL_ARGS); |
static void post_nm(DECL_ARGS); |
static void post_percent(DECL_ARGS); |
static void post_percent(DECL_ARGS); |
Line 67 static int pre_ap(DECL_ARGS); |
|
Line 70 static int pre_ap(DECL_ARGS); |
|
static int pre_bd(DECL_ARGS); |
static int pre_bd(DECL_ARGS); |
static int pre_bf(DECL_ARGS); |
static int pre_bf(DECL_ARGS); |
static int pre_bk(DECL_ARGS); |
static int pre_bk(DECL_ARGS); |
|
static int pre_bl(DECL_ARGS); |
static int pre_br(DECL_ARGS); |
static int pre_br(DECL_ARGS); |
static int pre_bx(DECL_ARGS); |
static int pre_bx(DECL_ARGS); |
static int pre_dl(DECL_ARGS); |
static int pre_dl(DECL_ARGS); |
static int pre_enc(DECL_ARGS); |
static int pre_enc(DECL_ARGS); |
static int pre_em(DECL_ARGS); |
static int pre_em(DECL_ARGS); |
static int pre_fa(DECL_ARGS); |
static int pre_fa(DECL_ARGS); |
|
static int pre_fd(DECL_ARGS); |
static int pre_fl(DECL_ARGS); |
static int pre_fl(DECL_ARGS); |
static int pre_fn(DECL_ARGS); |
static int pre_fn(DECL_ARGS); |
static int pre_fo(DECL_ARGS); |
static int pre_fo(DECL_ARGS); |
Line 95 static int pre_ux(DECL_ARGS); |
|
Line 100 static int pre_ux(DECL_ARGS); |
|
static int pre_xr(DECL_ARGS); |
static int pre_xr(DECL_ARGS); |
static void print_word(const char *); |
static void print_word(const char *); |
static void print_offs(const char *); |
static void print_offs(const char *); |
|
static void print_width(const char *); |
|
static void print_count(int *); |
static void print_node(DECL_ARGS); |
static void print_node(DECL_ARGS); |
|
|
static const struct manact manacts[MDOC_MAX + 1] = { |
static const struct manact manacts[MDOC_MAX + 1] = { |
Line 109 static const struct manact manacts[MDOC_MAX + 1] = { |
|
Line 116 static const struct manact manacts[MDOC_MAX + 1] = { |
|
{ cond_body, pre_dl, post_dl, NULL, NULL }, /* Dl */ |
{ cond_body, pre_dl, post_dl, NULL, NULL }, /* Dl */ |
{ cond_body, pre_bd, post_bd, NULL, NULL }, /* Bd */ |
{ cond_body, pre_bd, post_bd, NULL, NULL }, /* Bd */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Ed */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Ed */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Bl */ |
{ cond_body, pre_bl, post_bl, NULL, NULL }, /* Bl */ |
{ NULL, NULL, NULL, NULL, NULL }, /* El */ |
{ NULL, NULL, NULL, NULL, NULL }, /* El */ |
{ NULL, pre_it, NULL, NULL, NULL }, /* _It */ |
{ NULL, pre_it, post_it, NULL, NULL }, /* It */ |
{ NULL, pre_em, post_font, NULL, NULL }, /* Ad */ |
{ NULL, pre_em, post_font, NULL, NULL }, /* Ad */ |
{ NULL, pre_an, NULL, NULL, NULL }, /* An */ |
{ NULL, pre_an, NULL, NULL, NULL }, /* An */ |
{ NULL, pre_em, post_font, NULL, NULL }, /* Ar */ |
{ NULL, pre_em, post_font, NULL, NULL }, /* Ar */ |
Line 124 static const struct manact manacts[MDOC_MAX + 1] = { |
|
Line 131 static const struct manact manacts[MDOC_MAX + 1] = { |
|
"\\fP\nutility exits 0 on success, and >0 if an error occurs." |
"\\fP\nutility exits 0 on success, and >0 if an error occurs." |
}, /* Ex */ |
}, /* Ex */ |
{ NULL, pre_fa, post_fa, NULL, NULL }, /* Fa */ |
{ NULL, pre_fa, post_fa, NULL, NULL }, /* Fa */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _Fd */ |
{ NULL, pre_fd, post_fd, NULL, NULL }, /* Fd */ |
{ NULL, pre_fl, post_fl, NULL, NULL }, /* Fl */ |
{ NULL, pre_fl, post_fl, NULL, NULL }, /* Fl */ |
{ NULL, pre_fn, post_fn, NULL, NULL }, /* Fn */ |
{ NULL, pre_fn, post_fn, NULL, NULL }, /* Fn */ |
{ NULL, pre_ft, post_font, NULL, NULL }, /* Ft */ |
{ NULL, pre_ft, post_font, NULL, NULL }, /* Ft */ |
Line 218 static const struct manact manacts[MDOC_MAX + 1] = { |
|
Line 225 static const struct manact manacts[MDOC_MAX + 1] = { |
|
{ cond_body, pre_enc, post_enc, "{", "}" }, /* Bro */ |
{ cond_body, pre_enc, post_enc, "{", "}" }, /* Bro */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Brc */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Brc */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _%C */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _%C */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _Es */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Es */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _En */ |
{ NULL, NULL, NULL, NULL, NULL }, /* En */ |
{ NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */ |
{ NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _%Q */ |
{ NULL, NULL, NULL, NULL, NULL }, /* _%Q */ |
{ NULL, pre_br, NULL, NULL, NULL }, /* br */ |
{ NULL, pre_br, NULL, NULL, NULL }, /* br */ |
Line 353 print_offs(const char *v) |
|
Line 360 print_offs(const char *v) |
|
} |
} |
|
|
void |
void |
|
print_width(const char *v) |
|
{ |
|
char buf[24]; |
|
struct roffsu su; |
|
size_t sz; |
|
|
|
if (a2roffsu(v, &su, SCALE_MAX)) { |
|
if (SCALE_EN == su.unit) |
|
sz = su.scale; |
|
else { |
|
print_word(v); |
|
return; |
|
} |
|
} else |
|
sz = strlen(v); |
|
|
|
snprintf(buf, sizeof(buf), "%ldn", sz + 2); |
|
print_word(buf); |
|
} |
|
|
|
void |
|
print_count(int *count) |
|
{ |
|
char buf[12]; |
|
|
|
snprintf(buf, sizeof(buf), "%d.", ++*count); |
|
print_word(buf); |
|
} |
|
|
|
void |
man_man(void *arg, const struct man *man) |
man_man(void *arg, const struct man *man) |
{ |
{ |
|
|
Line 703 post_bk(DECL_ARGS) |
|
Line 740 post_bk(DECL_ARGS) |
|
} |
} |
|
|
static int |
static int |
|
pre_bl(DECL_ARGS) |
|
{ |
|
|
|
if (LIST_enum == n->norm->Bl.type) |
|
n->norm->Bl.count = 0; |
|
return(1); |
|
} |
|
|
|
static void |
|
post_bl(DECL_ARGS) |
|
{ |
|
|
|
if (LIST_enum == n->norm->Bl.type) |
|
n->norm->Bl.count = 0; |
|
} |
|
|
|
static int |
pre_br(DECL_ARGS) |
pre_br(DECL_ARGS) |
{ |
{ |
|
|
Line 791 post_fa(DECL_ARGS) |
|
Line 845 post_fa(DECL_ARGS) |
|
} |
} |
|
|
static int |
static int |
|
pre_fd(DECL_ARGS) |
|
{ |
|
|
|
pre_syn(n); |
|
font_push('B'); |
|
return(1); |
|
} |
|
|
|
static void |
|
post_fd(DECL_ARGS) |
|
{ |
|
|
|
font_pop(); |
|
outflags |= MMAN_br; |
|
} |
|
|
|
static int |
pre_fl(DECL_ARGS) |
pre_fl(DECL_ARGS) |
{ |
{ |
|
|
Line 925 pre_it(DECL_ARGS) |
|
Line 996 pre_it(DECL_ARGS) |
|
{ |
{ |
const struct mdoc_node *bln; |
const struct mdoc_node *bln; |
|
|
if (MDOC_HEAD == n->type) { |
switch (n->type) { |
|
case (MDOC_HEAD): |
outflags |= MMAN_nl; |
outflags |= MMAN_nl; |
print_word(".TP"); |
bln = n->parent->parent; |
bln = n->parent->parent->prev; |
|
switch (bln->norm->Bl.type) { |
switch (bln->norm->Bl.type) { |
|
case (LIST_item): |
|
if (bln->norm->Bl.comp) |
|
outflags |= MMAN_br; |
|
else |
|
outflags |= MMAN_sp; |
|
return(0); |
|
case (LIST_inset): |
|
/* FALLTHROUGH */ |
|
case (LIST_diag): |
|
/* FALLTHROUGH */ |
|
case (LIST_ohang): |
|
if (bln->norm->Bl.comp) |
|
outflags |= MMAN_br; |
|
else |
|
outflags |= MMAN_sp; |
|
if (bln->norm->Bl.type == LIST_diag) |
|
print_word(".B \""); |
|
else |
|
print_word(".R \""); |
|
outflags &= ~MMAN_spc; |
|
return(1); |
case (LIST_bullet): |
case (LIST_bullet): |
print_word("4n"); |
/* FALLTHROUGH */ |
|
case (LIST_dash): |
|
/* FALLTHROUGH */ |
|
case (LIST_hyphen): |
|
print_word(".TP"); |
|
print_width(bln->norm->Bl.width); |
outflags |= MMAN_nl; |
outflags |= MMAN_nl; |
print_word("\\fBo\\fP"); |
font_push('B'); |
|
if (LIST_bullet == bln->norm->Bl.type) |
|
print_word("o"); |
|
else |
|
print_word("-"); |
|
font_pop(); |
break; |
break; |
|
case (LIST_enum): |
|
print_word(".TP"); |
|
print_width(bln->norm->Bl.width); |
|
outflags |= MMAN_nl; |
|
print_count(&bln->norm->Bl.count); |
|
outflags |= MMAN_nl; |
|
break; |
default: |
default: |
if (bln->norm->Bl.width) |
if (bln->norm->Bl.width) |
print_word(bln->norm->Bl.width); |
print_width(bln->norm->Bl.width); |
break; |
break; |
} |
} |
outflags |= MMAN_nl; |
outflags |= MMAN_nl; |
|
default: |
|
break; |
} |
} |
return(1); |
return(1); |
|
} |
|
|
|
static void |
|
post_it(DECL_ARGS) |
|
{ |
|
const struct mdoc_node *bln; |
|
|
|
if (MDOC_HEAD == n->type) { |
|
bln = n->parent->parent; |
|
switch (bln->norm->Bl.type) { |
|
case (LIST_diag): |
|
outflags &= ~MMAN_spc; |
|
print_word("\\ "); |
|
break; |
|
case (LIST_ohang): |
|
outflags |= MMAN_br; |
|
break; |
|
default: |
|
break; |
|
} |
|
} |
} |
} |
|
|
static void |
static void |