diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2015-01-28 15:03:45 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2015-01-28 15:03:45 +0000 |
commit | b8a3bef0831e00e2921ed5feb59338efcca0984d (patch) | |
tree | ff08f642c8b68a7908a923cd1e512ab4cdfee54e /roff.c | |
parent | 3a4b4e867c202716bfdde346a8fe008f2a6edd3a (diff) | |
download | mandoc-b8a3bef0831e00e2921ed5feb59338efcca0984d.tar.gz |
For now, it can't be helped that mandoc tbl(7) ignores high-level macros,
but stop throwing away their arguments. This fixes information loss in a
handful of Xenocara manuals, at the price of a small amount of formatting
noise creeping through.
Diffstat (limited to 'roff.c')
-rw-r--r-- | roff.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1237,7 +1237,13 @@ roff_parseln(struct roff *r, int ln, struct buf *buf, int *offs) if (r->tbl != NULL && (t == ROFF_MAX || t == ROFF_TS)) { mandoc_msg(MANDOCERR_TBLMACRO, r->parse, ln, pos, buf->buf + spos); - return(ROFF_IGN); + if (t == ROFF_TS) + return(ROFF_IGN); + while (buf->buf[pos] != '\0' && buf->buf[pos] != ' ') + pos++; + while (buf->buf[pos] != '\0' && buf->buf[pos] == ' ') + pos++; + return(tbl_read(r->tbl, ln, buf->buf, pos)); } /* |