version 1.53, 2013/10/07 22:22:10 |
version 1.57, 2013/12/25 22:00:45 |
Line 256 static int outflags; |
|
Line 256 static int outflags; |
|
#define MMAN_An_split (1 << 9) /* author mode is "split" */ |
#define MMAN_An_split (1 << 9) /* author mode is "split" */ |
#define MMAN_An_nosplit (1 << 10) /* author mode is "nosplit" */ |
#define MMAN_An_nosplit (1 << 10) /* author mode is "nosplit" */ |
#define MMAN_PD (1 << 11) /* inter-paragraph spacing disabled */ |
#define MMAN_PD (1 << 11) /* inter-paragraph spacing disabled */ |
|
#define MMAN_nbrword (1 << 12) /* do not break the next word */ |
|
|
#define BL_STACK_MAX 32 |
#define BL_STACK_MAX 32 |
|
|
Line 364 print_word(const char *s) |
|
Line 365 print_word(const char *s) |
|
case (ASCII_HYPH): |
case (ASCII_HYPH): |
putchar('-'); |
putchar('-'); |
break; |
break; |
|
case (' '): |
|
if (MMAN_nbrword & outflags) { |
|
printf("\\ "); |
|
break; |
|
} |
|
/* FALLTHROUGH */ |
default: |
default: |
putchar((unsigned char)*s); |
putchar((unsigned char)*s); |
break; |
break; |
Line 371 print_word(const char *s) |
|
Line 378 print_word(const char *s) |
|
if (TPremain) |
if (TPremain) |
TPremain--; |
TPremain--; |
} |
} |
|
outflags &= ~MMAN_nbrword; |
} |
} |
|
|
static void |
static void |
|
|
pre_sect(DECL_ARGS) |
pre_sect(DECL_ARGS) |
{ |
{ |
|
|
switch (n->type) { |
if (MDOC_HEAD == n->type) { |
case (MDOC_HEAD): |
|
outflags |= MMAN_sp; |
outflags |= MMAN_sp; |
print_block(manacts[n->tok].prefix, 0); |
print_block(manacts[n->tok].prefix, 0); |
print_word(""); |
print_word(""); |
putchar('\"'); |
putchar('\"'); |
outflags &= ~MMAN_spc; |
outflags &= ~MMAN_spc; |
break; |
|
case (MDOC_BODY): |
|
if (MDOC_Sh == n->tok) { |
|
if (MDOC_SYNPRETTY & n->flags) |
|
outflags |= MMAN_Bk; |
|
else |
|
outflags &= ~MMAN_Bk; |
|
} |
|
break; |
|
default: |
|
break; |
|
} |
} |
return(1); |
return(1); |
} |
} |
|
|
post_bk(DECL_ARGS) |
post_bk(DECL_ARGS) |
{ |
{ |
|
|
if (MDOC_BODY == n->type && ! (MDOC_SYNPRETTY & n->flags)) |
if (MDOC_BODY == n->type) |
outflags &= ~MMAN_Bk; |
outflags &= ~MMAN_Bk; |
} |
} |
|
|
Line 1034 post_eo(DECL_ARGS) |
|
Line 1030 post_eo(DECL_ARGS) |
|
static int |
static int |
pre_fa(DECL_ARGS) |
pre_fa(DECL_ARGS) |
{ |
{ |
|
int am_Fa; |
|
|
if (MDOC_Fa == n->tok) |
am_Fa = MDOC_Fa == n->tok; |
|
|
|
if (am_Fa) |
n = n->child; |
n = n->child; |
|
|
while (NULL != n) { |
while (NULL != n) { |
font_push('I'); |
font_push('I'); |
|
if (am_Fa || MDOC_SYNPRETTY & n->flags) |
|
outflags |= MMAN_nbrword; |
print_node(meta, n); |
print_node(meta, n); |
font_pop(); |
font_pop(); |
if (NULL != (n = n->next)) |
if (NULL != (n = n->next)) |
Line 1103 pre_fn(DECL_ARGS) |
|
Line 1104 pre_fn(DECL_ARGS) |
|
if (NULL == n) |
if (NULL == n) |
return(0); |
return(0); |
|
|
|
if (MDOC_SYNPRETTY & n->flags) |
|
print_block(".HP 4n", MMAN_nl); |
|
|
font_push('B'); |
font_push('B'); |
print_node(meta, n); |
print_node(meta, n); |
font_pop(); |
font_pop(); |
Line 1123 post_fn(DECL_ARGS) |
|
Line 1127 post_fn(DECL_ARGS) |
|
print_word(")"); |
print_word(")"); |
if (MDOC_SYNPRETTY & n->flags) { |
if (MDOC_SYNPRETTY & n->flags) { |
print_word(";"); |
print_word(";"); |
outflags |= MMAN_br; |
outflags |= MMAN_PP; |
} |
} |
} |
} |
|
|
Line 1136 pre_fo(DECL_ARGS) |
|
Line 1140 pre_fo(DECL_ARGS) |
|
pre_syn(n); |
pre_syn(n); |
break; |
break; |
case (MDOC_HEAD): |
case (MDOC_HEAD): |
|
if (MDOC_SYNPRETTY & n->flags) |
|
print_block(".HP 4n", MMAN_nl); |
font_push('B'); |
font_push('B'); |
break; |
break; |
case (MDOC_BODY): |
case (MDOC_BODY): |
Line 1148 pre_fo(DECL_ARGS) |
|
Line 1154 pre_fo(DECL_ARGS) |
|
} |
} |
return(1); |
return(1); |
} |
} |
|
|
static void |
static void |
post_fo(DECL_ARGS) |
post_fo(DECL_ARGS) |
{ |
{ |
Line 1408 pre_nm(DECL_ARGS) |
|
Line 1414 pre_nm(DECL_ARGS) |
|
{ |
{ |
char *name; |
char *name; |
|
|
if (MDOC_BLOCK == n->type) |
if (MDOC_BLOCK == n->type) { |
|
outflags |= MMAN_Bk; |
pre_syn(n); |
pre_syn(n); |
|
} |
if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) |
if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) |
return(1); |
return(1); |
name = n->child ? n->child->string : meta->name; |
name = n->child ? n->child->string : meta->name; |
|
|
post_nm(DECL_ARGS) |
post_nm(DECL_ARGS) |
{ |
{ |
|
|
if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) |
switch (n->type) { |
return; |
case (MDOC_BLOCK): |
font_pop(); |
outflags &= ~MMAN_Bk; |
|
break; |
|
case (MDOC_HEAD): |
|
/* FALLTHROUGH */ |
|
case (MDOC_ELEM): |
|
font_pop(); |
|
break; |
|
default: |
|
break; |
|
} |
} |
} |
|
|
static int |
static int |