From 49e1f5cf487fd2c297036e1873f357463817c13d Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Mon, 3 Jan 2011 13:59:21 +0000 Subject: Make width calculations occur within tbl_term.c, not tbl.c. This allows for front-ends to make decisions about widths, not the back-end. To pull this off, first make each tbl_head contain a unique index value (0 <= index < total tbl_head elements) and remove the tbl_calc() routine from the back-end. Then, when encountering the first tbl_span in the front-end, dynamically create an array of configurations (termp_tbl) keyed on each tbl_head's unique index value. Construct the decimals and widths at this time, then continue parsing as before. The termp_tbl and indexes are required because we pass a const tbl AST into the front-end. --- tree.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'tree.c') diff --git a/tree.c b/tree.c index 52e120f9..70bd73d9 100644 --- a/tree.c +++ b/tree.c @@ -1,4 +1,4 @@ -/* $Id: tree.c,v 1.30 2011/01/02 20:34:05 kristaps Exp $ */ +/* $Id: tree.c,v 1.31 2011/01/03 13:59:21 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -249,21 +249,8 @@ static void print_span(const struct tbl_span *sp, int indent) { const struct tbl_dat *dp; - const struct tbl_head *hp; int i; - if (TBL_SPAN_FIRST & sp->flags) { - for (i = 0; i < indent; i++) - putchar('\t'); - printf("tbl-head: "); - for (hp = sp->head; hp; hp = hp->next) { - printf("[%d]", hp->width); - if (hp->next) - putchar(' '); - } - putchar('\n'); - } - for (i = 0; i < indent; i++) putchar('\t'); -- cgit v1.2.3-56-ge451