version 1.45, 2009/10/26 04:09:45 |
version 1.49, 2009/11/05 08:39:36 |
|
|
|
|
#include <assert.h> |
#include <assert.h> |
#include <ctype.h> |
#include <ctype.h> |
#include <err.h> |
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <string.h> |
#include <string.h> |
Line 86 static int pre_BI(DECL_ARGS); |
|
Line 85 static int pre_BI(DECL_ARGS); |
|
static int pre_HP(DECL_ARGS); |
static int pre_HP(DECL_ARGS); |
static int pre_I(DECL_ARGS); |
static int pre_I(DECL_ARGS); |
static int pre_IP(DECL_ARGS); |
static int pre_IP(DECL_ARGS); |
static int pre_IR(DECL_ARGS); |
|
static int pre_PP(DECL_ARGS); |
static int pre_PP(DECL_ARGS); |
static int pre_RB(DECL_ARGS); |
static int pre_RB(DECL_ARGS); |
static int pre_RI(DECL_ARGS); |
static int pre_RI(DECL_ARGS); |
Line 131 static const struct termact termacts[MAN_MAX] = { |
|
Line 129 static const struct termact termacts[MAN_MAX] = { |
|
{ NULL, NULL }, /* R */ |
{ NULL, NULL }, /* R */ |
{ pre_B, post_B }, /* B */ |
{ pre_B, post_B }, /* B */ |
{ pre_I, post_I }, /* I */ |
{ pre_I, post_I }, /* I */ |
{ pre_IR, NULL }, /* IR */ |
{ pre_RI, NULL }, /* IR */ |
{ pre_RI, NULL }, /* RI */ |
{ pre_RI, NULL }, /* RI */ |
{ NULL, NULL }, /* na */ |
{ NULL, NULL }, /* na */ |
{ pre_I, post_i }, /* i */ |
{ pre_I, post_i }, /* i */ |
Line 300 pre_nf(DECL_ARGS) |
|
Line 298 pre_nf(DECL_ARGS) |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static int |
static int |
pre_IR(DECL_ARGS) |
|
{ |
|
const struct man_node *nn; |
|
int i; |
|
|
|
for (i = 0, nn = n->child; nn; nn = nn->next, i++) { |
|
if ( ! (i % 2)) |
|
p->under++; |
|
if (i > 0) |
|
p->flags |= TERMP_NOSPACE; |
|
print_man_node(p, mt, nn, m); |
|
if ( ! (i % 2)) |
|
p->under--; |
|
} |
|
return(0); |
|
} |
|
|
|
|
|
/* ARGSUSED */ |
|
static int |
|
pre_RB(DECL_ARGS) |
pre_RB(DECL_ARGS) |
{ |
{ |
const struct man_node *nn; |
const struct man_node *nn; |
Line 353 pre_RI(DECL_ARGS) |
|
Line 331 pre_RI(DECL_ARGS) |
|
int i; |
int i; |
|
|
for (i = 0, nn = n->child; nn; nn = nn->next, i++) { |
for (i = 0, nn = n->child; nn; nn = nn->next, i++) { |
if ( ! (i % 2)) |
if (i % 2 && MAN_RI == n->tok) |
p->under++; |
p->under++; |
|
else if ( ! (i % 2) && MAN_RI != n->tok) |
|
p->under++; |
|
|
if (i > 0) |
if (i > 0) |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
print_man_node(p, mt, nn, m); |
print_man_node(p, mt, nn, m); |
if ( ! (i % 2)) |
|
|
if (i % 2 && MAN_RI == n->tok) |
p->under--; |
p->under--; |
|
else if ( ! (i % 2) && MAN_RI != n->tok) |
|
p->under--; |
} |
} |
return(0); |
return(0); |
} |
} |
Line 939 print_man_foot(struct termp *p, const struct man_meta |
|
Line 923 print_man_foot(struct termp *p, const struct man_meta |
|
|
|
|
|
static void |
static void |
print_man_head(struct termp *p, const struct man_meta *meta) |
print_man_head(struct termp *p, const struct man_meta *m) |
{ |
{ |
char *buf, *title; |
char buf[BUFSIZ], title[BUFSIZ]; |
|
|
p->rmargin = p->maxrmargin; |
p->rmargin = p->maxrmargin; |
p->offset = 0; |
p->offset = 0; |
|
buf[0] = title[0] = '\0'; |
|
|
if (NULL == (buf = malloc(p->rmargin))) |
if (m->vol) |
err(EXIT_FAILURE, "malloc"); |
strlcpy(buf, m->vol, BUFSIZ); |
if (NULL == (title = malloc(p->rmargin))) |
|
err(EXIT_FAILURE, "malloc"); |
|
|
|
if (meta->vol) |
snprintf(title, BUFSIZ, "%s(%d)", m->title, m->msec); |
(void)strlcpy(buf, meta->vol, p->rmargin); |
|
else |
|
*buf = 0; |
|
|
|
(void)snprintf(title, p->rmargin, "%s(%d)", |
|
meta->title, meta->msec); |
|
|
|
p->offset = 0; |
p->offset = 0; |
p->rmargin = (p->maxrmargin - strlen(buf) + 1) / 2; |
p->rmargin = (p->maxrmargin - strlen(buf) + 1) / 2; |
p->flags |= TERMP_NOBREAK | TERMP_NOSPACE; |
p->flags |= TERMP_NOBREAK | TERMP_NOSPACE; |
Line 984 print_man_head(struct termp *p, const struct man_meta |
|
Line 961 print_man_head(struct termp *p, const struct man_meta |
|
p->rmargin = p->maxrmargin; |
p->rmargin = p->maxrmargin; |
p->offset = 0; |
p->offset = 0; |
p->flags &= ~TERMP_NOSPACE; |
p->flags &= ~TERMP_NOSPACE; |
|
|
free(title); |
|
free(buf); |
|
} |
} |
|
|