summaryrefslogtreecommitdiffstats
path: root/mandoc.h
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-01-03 13:59:21 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-01-03 13:59:21 +0000
commit37cc2001c18336b17ab1db0fd5b493e86de5619a (patch)
treeb39a648728b8aeb8b18a965cbdb9f87f773bdfd2 /mandoc.h
parent014a5fb27cb61fd91481514f5e11ab50aefdbfdb (diff)
downloadmandoc-37cc2001c18336b17ab1db0fd5b493e86de5619a.tar.gz
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.
Diffstat (limited to 'mandoc.h')
-rw-r--r--mandoc.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/mandoc.h b/mandoc.h
index ffd9159f..c4edcf8f 100644
--- a/mandoc.h
+++ b/mandoc.h
@@ -149,7 +149,7 @@ struct tbl {
char tab; /* cell-separator */
char decimal; /* decimal point */
int linesize;
- char delims[2];
+ char delims[2]; /* FIXME: deprecate */
int opts;
#define TBL_OPT_CENTRE (1 << 0)
#define TBL_OPT_EXPAND (1 << 1)
@@ -158,6 +158,7 @@ struct tbl {
#define TBL_OPT_ALLBOX (1 << 4)
#define TBL_OPT_NOKEEP (1 << 5)
#define TBL_OPT_NOSPACE (1 << 6)
+ int cols; /* number of columns */
};
enum tbl_headt {
@@ -173,8 +174,7 @@ enum tbl_headt {
*/
struct tbl_head {
enum tbl_headt pos;
- int width; /* width of cell in fixed chars */
- int decimal; /* decimal point position */
+ int ident; /* 0 <= unique id < cols */
struct tbl_head *next;
struct tbl_head *prev;
};