version 1.116, 2011/01/01 16:10:40 |
version 1.118, 2011/01/02 10:10:57 |
|
|
struct regset *regs; /* read/writable registers */ |
struct regset *regs; /* read/writable registers */ |
struct roffstr *first_string; /* user-defined strings & macros */ |
struct roffstr *first_string; /* user-defined strings & macros */ |
const char *current_string; /* value of last called user macro */ |
const char *current_string; /* value of last called user macro */ |
struct tbl *first_tbl; /* first table parsed */ |
struct tbl_node *first_tbl; /* first table parsed */ |
struct tbl *last_tbl; /* last table parsed */ |
struct tbl_node *last_tbl; /* last table parsed */ |
struct tbl *tbl; /* current table being parsed */ |
struct tbl_node *tbl; /* current table being parsed */ |
}; |
}; |
|
|
struct roffnode { |
struct roffnode { |
Line 301 roffnode_push(struct roff *r, enum rofft tok, const ch |
|
Line 301 roffnode_push(struct roff *r, enum rofft tok, const ch |
|
static void |
static void |
roff_free1(struct roff *r) |
roff_free1(struct roff *r) |
{ |
{ |
struct tbl *t; |
struct tbl_node *t; |
|
|
while (r->first_tbl) { |
while (r->first_tbl) { |
t = r->first_tbl; |
t = r->first_tbl; |
Line 515 roff_parseln(struct roff *r, int ln, char **bufp, |
|
Line 515 roff_parseln(struct roff *r, int ln, char **bufp, |
|
} |
} |
|
|
|
|
int |
void |
roff_endparse(struct roff *r) |
roff_endparse(struct roff *r) |
{ |
{ |
|
|
/* FIXME: if r->tbl */ |
|
if (r->last) |
if (r->last) |
(*r->msg)(MANDOCERR_SCOPEEXIT, r->data, |
(*r->msg)(MANDOCERR_SCOPEEXIT, r->data, |
r->last->line, r->last->col, NULL); |
r->last->line, r->last->col, NULL); |
return(1); |
|
|
if (r->tbl) { |
|
(*r->msg)(MANDOCERR_SCOPEEXIT, r->data, |
|
r->tbl->line, r->tbl->pos, NULL); |
|
tbl_end(r->tbl); |
|
r->tbl = NULL; |
|
} |
} |
} |
|
|
|
|
Line 1147 roff_T_(ROFF_ARGS) |
|
Line 1152 roff_T_(ROFF_ARGS) |
|
static enum rofferr |
static enum rofferr |
roff_TS(ROFF_ARGS) |
roff_TS(ROFF_ARGS) |
{ |
{ |
struct tbl *t; |
struct tbl_node *t; |
|
|
if (r->tbl) { |
if (r->tbl) { |
(*r->msg)(MANDOCERR_SCOPEBROKEN, r->data, ln, ppos, NULL); |
(*r->msg)(MANDOCERR_SCOPEBROKEN, r->data, ln, ppos, NULL); |