=================================================================== RCS file: /cvs/mandoc/roff.c,v retrieving revision 1.113 retrieving revision 1.115 diff -u -p -r1.113 -r1.115 --- mandoc/roff.c 2010/12/31 14:52:41 1.113 +++ mandoc/roff.c 2011/01/01 15:45:18 1.115 @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.113 2010/12/31 14:52:41 kristaps Exp $ */ +/* $Id: roff.c,v 1.115 2011/01/01 15:45:18 kristaps Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze @@ -1123,6 +1123,8 @@ roff_TE(ROFF_ARGS) if (NULL == r->tbl) (*r->msg)(MANDOCERR_NOSCOPE, r->data, ln, ppos, NULL); + else + tbl_end(r->tbl); r->tbl = NULL; return(ROFF_IGN); @@ -1147,10 +1149,12 @@ roff_TS(ROFF_ARGS) { struct tbl *t; - if (r->tbl) + if (r->tbl) { (*r->msg)(MANDOCERR_SCOPEBROKEN, r->data, ln, ppos, NULL); + tbl_end(r->tbl); + } - t = tbl_alloc(r->data, r->msg); + t = tbl_alloc(ppos, ln, r->data, r->msg); if (r->last_tbl) r->last_tbl->next = t; @@ -1374,4 +1378,11 @@ roff_freestr(struct roff *r) } r->first_string = NULL; +} + +const struct tbl_span * +roff_span(const struct roff *r) +{ + + return(r->tbl ? tbl_span(r->tbl) : NULL); }