summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-04-19 20:35:20 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-04-19 20:35:20 +0000
commitadb61c0917d43d6cf61cc003e0b829293f796ec6 (patch)
tree9e65062c702eceb7a3d8f1e93852b65f12167055
parente18dbd74bdc94bba48047a6551e73170b54e8ed1 (diff)
downloadmandoc-adb61c0917d43d6cf61cc003e0b829293f796ec6.tar.gz
More than one data field may follow T} on the same input line.
Issue found by Christian Neukirchen <chneukirchen at gmail dot com> in the socket(2) manual on Linux. Also fixes major rendering bugs (including partial loss of content) in XkbChangeControls(3), XkbFreeClientMap(3), XkbGetMap(3), XkbKeyNumGroups(3), and XkbSetMap(3).
-rw-r--r--tbl_data.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tbl_data.c b/tbl_data.c
index b9a57622..b7c5350f 100644
--- a/tbl_data.c
+++ b/tbl_data.c
@@ -132,7 +132,8 @@ tbl_cdata(struct tbl_node *tbl, int ln, const char *p, int pos)
if (p[pos] == tbl->opts.tab) {
tbl->part = TBL_PART_DATA;
pos++;
- getdata(tbl, tbl->last_span, ln, p, &pos);
+ while (p[pos] != '\0')
+ getdata(tbl, tbl->last_span, ln, p, &pos);
return(1);
} else if (p[pos] == '\0') {
tbl->part = TBL_PART_DATA;