From c516e456aa90607875602699c239832b71f65359 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Tue, 27 Jan 2015 05:21:44 +0000 Subject: Multiple parser and formatter fixes for line drawing in tbl(7). * Allow mixing vertical line bars with the layout options of the preceding layout cell. * Correctly combine box options with layout lines. * Correctly print vertical lines in data rows, with the right spacing. * Correctly print cross markers and left and right ends of horizontal lines even if vertical lines differ above and below. * Avoid the bogus error message "no table data cells" when a table data section starts with a horizontal line. No increase in code size. --- tbl_data.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'tbl_data.c') diff --git a/tbl_data.c b/tbl_data.c index 16a8533c..c237ac86 100644 --- a/tbl_data.c +++ b/tbl_data.c @@ -1,7 +1,7 @@ -/* $Id: tbl_data.c,v 1.33 2015/01/21 00:47:04 schwarze Exp $ */ +/* $Id: tbl_data.c,v 1.34 2015/01/27 05:21:45 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons - * Copyright (c) 2011 Ingo Schwarze + * Copyright (c) 2011, 2015 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -190,15 +190,15 @@ newspan(struct tbl_node *tbl, int line, struct tbl_row *rp) dp->opts = &tbl->opts; dp->layout = rp; dp->head = tbl->first_head; + dp->prev = tbl->last_span; - if (tbl->last_span) { - tbl->last_span->next = dp; - tbl->last_span = dp; - } else { - tbl->last_span = tbl->first_span = dp; + if (dp->prev == NULL) { + tbl->first_span = dp; tbl->current_span = NULL; dp->flags |= TBL_SPAN_FIRST; - } + } else + dp->prev->next = dp; + tbl->last_span = dp; return(dp); } -- cgit v1.2.3-56-ge451