=================================================================== RCS file: /cvs/mandoc/roff.c,v retrieving revision 1.257 retrieving revision 1.259 diff -u -p -r1.257 -r1.259 --- mandoc/roff.c 2015/01/28 15:03:45 1.257 +++ mandoc/roff.c 2015/01/30 00:19:46 1.259 @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.257 2015/01/28 15:03:45 schwarze Exp $ */ +/* $Id: roff.c,v 1.259 2015/01/30 00:19:46 schwarze Exp $ */ /* * Copyright (c) 2010, 2011, 2012, 2014 Kristaps Dzonsons * Copyright (c) 2010-2015 Ingo Schwarze @@ -1202,7 +1202,7 @@ roff_parseln(struct roff *r, int ln, struct buf *buf, if (r->eqn != NULL) return(eqn_read(&r->eqn, ln, buf->buf, ppos, offs)); if (r->tbl != NULL && ( ! ctl || buf->buf[pos] == '\0')) - return(tbl_read(r->tbl, ln, buf->buf, pos)); + return(tbl_read(r->tbl, ln, buf->buf, ppos)); if ( ! ctl) return(roff_parsetext(buf, pos, offs)); @@ -2376,9 +2376,12 @@ roff_TE(ROFF_ARGS) if (NULL == r->tbl) mandoc_msg(MANDOCERR_BLK_NOTOPEN, r->parse, ln, ppos, "TE"); - else - tbl_end(&r->tbl); - + else if ( ! tbl_end(&r->tbl)) { + free(buf->buf); + buf->buf = mandoc_strdup(".sp"); + buf->sz = 4; + return(ROFF_REPARSE); + } return(ROFF_IGN); }