version 1.251, 2015/01/20 21:16:51 |
version 1.252, 2015/01/21 02:16:52 |
Line 1166 roff_parseln(struct roff *r, int ln, struct buf *buf, |
|
Line 1166 roff_parseln(struct roff *r, int ln, struct buf *buf, |
|
|
|
/* |
/* |
* First, if a scope is open and we're not a macro, pass the |
* First, if a scope is open and we're not a macro, pass the |
* text through the macro's filter. If a scope isn't open and |
* text through the macro's filter. |
* we're not a macro, just let it through. |
* Equations process all content themselves. |
* Finally, if there's an equation scope open, divert it into it |
* Tables process almost all content themselves, but we want |
* no matter our state. |
* to warn about macros before passing it there. |
*/ |
*/ |
|
|
if (r->last && ! ctl) { |
if (r->last != NULL && ! ctl) { |
t = r->last->tok; |
t = r->last->tok; |
assert(roffs[t].text); |
assert(roffs[t].text); |
e = (*roffs[t].text)(r, t, buf, ln, pos, pos, offs); |
e = (*roffs[t].text)(r, t, buf, ln, pos, pos, offs); |
Line 1180 roff_parseln(struct roff *r, int ln, struct buf *buf, |
|
Line 1180 roff_parseln(struct roff *r, int ln, struct buf *buf, |
|
if (e != ROFF_CONT) |
if (e != ROFF_CONT) |
return(e); |
return(e); |
} |
} |
if (r->eqn) |
if (r->eqn != NULL) |
return(eqn_read(&r->eqn, ln, buf->buf, ppos, offs)); |
return(eqn_read(&r->eqn, ln, buf->buf, ppos, offs)); |
if ( ! ctl) { |
if (r->tbl != NULL && ( ! ctl || buf->buf[pos] == '\0')) |
if (r->tbl) |
return(tbl_read(r->tbl, ln, buf->buf, pos)); |
return(tbl_read(r->tbl, ln, buf->buf, pos)); |
if ( ! ctl) |
return(roff_parsetext(buf, pos, offs)); |
return(roff_parsetext(buf, pos, offs)); |
} |
|
|
|
/* Skip empty request lines. */ |
/* Skip empty request lines. */ |
|
|