version 1.111, 2017/05/05 02:06:19 |
version 1.113, 2017/05/05 15:17:32 |
|
|
|
|
#define DECL_ARGS const struct roff_meta *meta, struct roff_node *n |
#define DECL_ARGS const struct roff_meta *meta, struct roff_node *n |
|
|
|
typedef int (*int_fp)(DECL_ARGS); |
|
typedef void (*void_fp)(DECL_ARGS); |
|
|
struct manact { |
struct manact { |
int (*cond)(DECL_ARGS); /* DON'T run actions */ |
int_fp cond; /* DON'T run actions */ |
int (*pre)(DECL_ARGS); /* pre-node action */ |
int_fp pre; /* pre-node action */ |
void (*post)(DECL_ARGS); /* post-node action */ |
void_fp post; /* post-node action */ |
const char *prefix; /* pre-node string constant */ |
const char *prefix; /* pre-node string constant */ |
const char *suffix; /* post-node string constant */ |
const char *suffix; /* post-node string constant */ |
}; |
}; |
Line 70 static void post_nm(DECL_ARGS); |
|
Line 73 static void post_nm(DECL_ARGS); |
|
static void post_percent(DECL_ARGS); |
static void post_percent(DECL_ARGS); |
static void post_pf(DECL_ARGS); |
static void post_pf(DECL_ARGS); |
static void post_sect(DECL_ARGS); |
static void post_sect(DECL_ARGS); |
static void post_sp(DECL_ARGS); |
|
static void post_vt(DECL_ARGS); |
static void post_vt(DECL_ARGS); |
static int pre__t(DECL_ARGS); |
static int pre__t(DECL_ARGS); |
static int pre_an(DECL_ARGS); |
static int pre_an(DECL_ARGS); |
Line 80 static int pre_bd(DECL_ARGS); |
|
Line 82 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_bl(DECL_ARGS); |
static int pre_br(DECL_ARGS); |
static void pre_br(DECL_ARGS); |
static int pre_dl(DECL_ARGS); |
static int pre_dl(DECL_ARGS); |
static int pre_en(DECL_ARGS); |
static int pre_en(DECL_ARGS); |
static int pre_enc(DECL_ARGS); |
static int pre_enc(DECL_ARGS); |
Line 93 static int pre_fd(DECL_ARGS); |
|
Line 95 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); |
static int pre_ft(DECL_ARGS); |
static void pre_ft(DECL_ARGS); |
static int pre_Ft(DECL_ARGS); |
static int pre_Ft(DECL_ARGS); |
static int pre_in(DECL_ARGS); |
static int pre_in(DECL_ARGS); |
static int pre_it(DECL_ARGS); |
static int pre_it(DECL_ARGS); |
static int pre_lk(DECL_ARGS); |
static int pre_lk(DECL_ARGS); |
static int pre_li(DECL_ARGS); |
static int pre_li(DECL_ARGS); |
static int pre_ll(DECL_ARGS); |
static void pre_ll(DECL_ARGS); |
static int pre_nm(DECL_ARGS); |
static int pre_nm(DECL_ARGS); |
static int pre_no(DECL_ARGS); |
static int pre_no(DECL_ARGS); |
static int pre_ns(DECL_ARGS); |
static int pre_ns(DECL_ARGS); |
static int pre_pp(DECL_ARGS); |
static int pre_pp(DECL_ARGS); |
static int pre_rs(DECL_ARGS); |
static int pre_rs(DECL_ARGS); |
static int pre_sm(DECL_ARGS); |
static int pre_sm(DECL_ARGS); |
static int pre_sp(DECL_ARGS); |
static void pre_sp(DECL_ARGS); |
static int pre_sect(DECL_ARGS); |
static int pre_sect(DECL_ARGS); |
static int pre_sy(DECL_ARGS); |
static int pre_sy(DECL_ARGS); |
static void pre_syn(const struct roff_node *); |
static void pre_syn(const struct roff_node *); |
Line 121 static void print_width(const struct mdoc_bl *, |
|
Line 123 static void print_width(const struct mdoc_bl *, |
|
static void print_count(int *); |
static void print_count(int *); |
static void print_node(DECL_ARGS); |
static void print_node(DECL_ARGS); |
|
|
|
static const void_fp roff_manacts[ROFF_MAX] = { |
|
pre_br, |
|
pre_ft, |
|
pre_ll, |
|
pre_sp, |
|
}; |
|
|
static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = { |
static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = { |
{ NULL, NULL, NULL, NULL, NULL }, /* Dd */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Dd */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Dt */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Dt */ |
Line 240 static const struct manact __manacts[MDOC_MAX - MDOC_D |
|
Line 249 static const struct manact __manacts[MDOC_MAX - MDOC_D |
|
{ cond_body, pre_en, post_en, NULL, NULL }, /* En */ |
{ cond_body, pre_en, post_en, NULL, NULL }, /* En */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Dx */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Dx */ |
{ NULL, NULL, post_percent, NULL, NULL }, /* %Q */ |
{ NULL, NULL, post_percent, NULL, NULL }, /* %Q */ |
{ NULL, pre_sp, post_sp, NULL, NULL }, /* sp */ |
|
{ NULL, NULL, post_percent, NULL, NULL }, /* %U */ |
{ NULL, NULL, post_percent, NULL, NULL }, /* %U */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Ta */ |
{ NULL, NULL, NULL, NULL, NULL }, /* Ta */ |
{ NULL, pre_ll, post_sp, NULL, NULL }, /* ll */ |
|
}; |
}; |
static const struct manact *const manacts = __manacts - MDOC_Dd; |
static const struct manact *const manacts = __manacts - MDOC_Dd; |
|
|
Line 653 print_node(DECL_ARGS) |
|
Line 660 print_node(DECL_ARGS) |
|
else if (outflags & MMAN_Sm) |
else if (outflags & MMAN_Sm) |
outflags |= MMAN_spc; |
outflags |= MMAN_spc; |
} else if (n->tok < ROFF_MAX) { |
} else if (n->tok < ROFF_MAX) { |
switch (n->tok) { |
(*roff_manacts[n->tok])(meta, n); |
case ROFF_br: |
return; |
do_sub = pre_br(meta, n); |
|
break; |
|
case ROFF_ft: |
|
do_sub = pre_ft(meta, n); |
|
break; |
|
default: |
|
abort(); |
|
} |
|
} else { |
} else { |
assert(n->tok >= MDOC_Dd && n->tok < MDOC_MAX); |
assert(n->tok >= MDOC_Dd && n->tok < MDOC_MAX); |
/* |
/* |
Line 1068 post_bl(DECL_ARGS) |
|
Line 1067 post_bl(DECL_ARGS) |
|
|
|
} |
} |
|
|
static int |
static void |
pre_br(DECL_ARGS) |
pre_br(DECL_ARGS) |
{ |
{ |
|
|
outflags |= MMAN_br; |
outflags |= MMAN_br; |
return 0; |
|
} |
} |
|
|
static int |
static int |
Line 1326 pre_Ft(DECL_ARGS) |
|
Line 1323 pre_Ft(DECL_ARGS) |
|
return 1; |
return 1; |
} |
} |
|
|
static int |
static void |
pre_ft(DECL_ARGS) |
pre_ft(DECL_ARGS) |
{ |
{ |
print_line(".ft", 0); |
print_line(".ft", 0); |
print_word(n->child->string); |
print_word(n->child->string); |
outflags |= MMAN_nl; |
outflags |= MMAN_nl; |
return 0; |
|
} |
} |
|
|
static int |
static int |
Line 1567 pre_lk(DECL_ARGS) |
|
Line 1563 pre_lk(DECL_ARGS) |
|
return 0; |
return 0; |
} |
} |
|
|
static int |
static void |
pre_ll(DECL_ARGS) |
pre_ll(DECL_ARGS) |
{ |
{ |
|
|
print_line(".ll", 0); |
print_line(".ll", 0); |
return 1; |
if (n->child != NULL) |
|
print_word(n->child->string); |
|
outflags |= MMAN_nl; |
} |
} |
|
|
static int |
static int |
Line 1696 pre_sm(DECL_ARGS) |
|
Line 1693 pre_sm(DECL_ARGS) |
|
return 0; |
return 0; |
} |
} |
|
|
static int |
static void |
pre_sp(DECL_ARGS) |
pre_sp(DECL_ARGS) |
{ |
{ |
|
if (outflags & MMAN_PP) { |
if (MMAN_PP & outflags) { |
|
outflags &= ~MMAN_PP; |
outflags &= ~MMAN_PP; |
print_line(".PP", 0); |
print_line(".PP", 0); |
} else |
} else { |
print_line(".sp", 0); |
print_line(".sp", 0); |
return 1; |
if (n->child != NULL) |
} |
print_word(n->child->string); |
|
} |
static void |
|
post_sp(DECL_ARGS) |
|
{ |
|
|
|
outflags |= MMAN_nl; |
outflags |= MMAN_nl; |
} |
} |
|
|