version 1.44, 2010/07/31 21:43:07 |
version 1.45, 2010/10/16 13:38:29 |
|
|
#include "libmdoc.h" |
#include "libmdoc.h" |
#include "libmandoc.h" |
#include "libmandoc.h" |
|
|
|
#include "out.h" |
|
#include "term.h" |
|
#include "tbl.h" |
|
|
/* |
/* |
* FIXME: this file is deprecated. All future "actions" should be |
* FIXME: this file is deprecated. All future "actions" should be |
* pushed into mdoc_validate.c. |
* pushed into mdoc_validate.c. |
|
|
#define PRE_ARGS struct mdoc *m, struct mdoc_node *n |
#define PRE_ARGS struct mdoc *m, struct mdoc_node *n |
|
|
#define NUMSIZ 32 |
#define NUMSIZ 32 |
#define DATESIZ 32 |
#define DATESIZE 32 |
|
|
struct actions { |
struct actions { |
int (*pre)(PRE_ARGS); |
int (*pre)(PRE_ARGS); |
|
|
|
|
static int pre_bd(PRE_ARGS); |
static int pre_bd(PRE_ARGS); |
static int pre_dl(PRE_ARGS); |
static int pre_dl(PRE_ARGS); |
|
static int pre_ts(PRE_ARGS); |
|
|
static const struct actions mdoc_actions[MDOC_MAX] = { |
static const struct actions mdoc_actions[MDOC_MAX] = { |
{ NULL, NULL }, /* Ap */ |
{ NULL, NULL }, /* Ap */ |
|
|
{ NULL, NULL }, /* sp */ |
{ NULL, NULL }, /* sp */ |
{ NULL, NULL }, /* %U */ |
{ NULL, NULL }, /* %U */ |
{ NULL, NULL }, /* Ta */ |
{ NULL, NULL }, /* Ta */ |
|
{ pre_ts, NULL }, /* TS */ |
|
{ NULL, NULL }, /* TE */ |
}; |
}; |
|
|
#define RSORD_MAX 14 |
#define RSORD_MAX 14 |
|
|
static int |
static int |
post_dd(POST_ARGS) |
post_dd(POST_ARGS) |
{ |
{ |
char buf[DATESIZ]; |
char buf[DATESIZE]; |
|
|
if (NULL == n->child) { |
if (NULL == n->child) { |
m->meta.date = time(NULL); |
m->meta.date = time(NULL); |
return(post_prol(m, n)); |
return(post_prol(m, n)); |
} |
} |
|
|
if ( ! concat(m, buf, n->child, DATESIZ)) |
if ( ! concat(m, buf, n->child, DATESIZE)) |
return(0); |
return(0); |
|
|
m->meta.date = mandoc_a2time |
m->meta.date = mandoc_a2time |
|
|
m->flags |= MDOC_LITERAL; |
m->flags |= MDOC_LITERAL; |
if (DISP_unfilled == n->data.Bd->type) |
if (DISP_unfilled == n->data.Bd->type) |
m->flags |= MDOC_LITERAL; |
m->flags |= MDOC_LITERAL; |
|
|
|
return(1); |
|
} |
|
|
|
|
|
/* ARGSUSED */ |
|
static int |
|
pre_ts(PRE_ARGS) |
|
{ |
|
|
|
if (MDOC_BLOCK == n->type) |
|
n->data.TS = tbl_alloc(); |
|
|
return(1); |
return(1); |
} |
} |