aboutsummaryrefslogtreecommitdiffstatshomepage
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
commitb3c6910297c5c3ac3a504ac3e46fe4df7c5c7ad2 (patch)
tree877dddfefdb80054573a8839645aa1999152f48e
parent22263071d729e5d19d22c171e8f31fa516fb4721 (diff)
downloadmandoc-b3c6910297c5c3ac3a504ac3e46fe4df7c5c7ad2.tar.gz
mandoc-b3c6910297c5c3ac3a504ac3e46fe4df7c5c7ad2.tar.zst
mandoc-b3c6910297c5c3ac3a504ac3e46fe4df7c5c7ad2.zip
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.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/tbl_data.c b/tbl_data.c
index e2be64eb..3be66799 100644
--- a/tbl_data.c
+++ b/tbl_data.c
@@ -1,4 +1,4 @@
-/* $Id: tbl_data.c,v 1.39 2015/01/30 17:32:16 schwarze Exp $ */
+/* $Id: tbl_data.c,v 1.40 2015/04/19 20:35:20 schwarze Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -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;