From b3c6910297c5c3ac3a504ac3e46fe4df7c5c7ad2 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sun, 19 Apr 2015 20:35:20 +0000 Subject: More than one data field may follow T} on the same input line. Issue found by Christian Neukirchen 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). --- tbl_data.c | 5 +++-- 1 file 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 * Copyright (c) 2011, 2015 Ingo Schwarze @@ -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; -- cgit v1.2.3-56-ge451