version 1.111, 2017/05/05 02:06:19 |
version 1.112, 2017/05/05 13:17:55 |
|
|
|
|
#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 80 static int pre_bd(DECL_ARGS); |
|
Line 83 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 96 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); |
Line 121 static void print_width(const struct mdoc_bl *, |
|
Line 124 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, |
|
}; |
|
|
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 243 static const struct manact __manacts[MDOC_MAX - MDOC_D |
|
Line 252 static const struct manact __manacts[MDOC_MAX - MDOC_D |
|
{ NULL, pre_sp, post_sp, NULL, NULL }, /* sp */ |
{ 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 661 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 1068 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 1324 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 1564 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 |