aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/roff.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-01-28 15:03:45 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-01-28 15:03:45 +0000
commit7793230177d864fb80c0c572a2b896f3ecb7df10 (patch)
tree9200fdac5fa9fae03f349e62032d6041b10d54d3 /roff.c
parentc49d930f6dcda366d67ac4b3bad9cc05ac3bc954 (diff)
downloadmandoc-7793230177d864fb80c0c572a2b896f3ecb7df10.tar.gz
mandoc-7793230177d864fb80c0c572a2b896f3ecb7df10.tar.zst
mandoc-7793230177d864fb80c0c572a2b896f3ecb7df10.zip
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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/roff.c b/roff.c
index f940913b..7e1360e2 100644
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/* $Id: roff.c,v 1.256 2015/01/24 02:41:49 schwarze Exp $ */
+/* $Id: roff.c,v 1.257 2015/01/28 15:03:45 schwarze Exp $ */
/*
* Copyright (c) 2010, 2011, 2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -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));
}
/*