diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2015-01-27 05:21:44 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2015-01-27 05:21:44 +0000 |
commit | c516e456aa90607875602699c239832b71f65359 (patch) | |
tree | 7e061471efcf32a09dbaf449f6912c38a6bdc6e3 /tbl_data.c | |
parent | b0aec68c2e236344e79a7ee4949b2e5c450d13f8 (diff) | |
download | mandoc-c516e456aa90607875602699c239832b71f65359.tar.gz mandoc-c516e456aa90607875602699c239832b71f65359.tar.zst mandoc-c516e456aa90607875602699c239832b71f65359.zip |
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.
Diffstat (limited to 'tbl_data.c')
-rw-r--r-- | tbl_data.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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 <kristaps@bsd.lv> - * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2011, 2015 Ingo Schwarze <schwarze@openbsd.org> * * 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); } |