X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable-provider.h;h=b64410c22703b33f7f4b98bc49a624f016d0dfbc;hb=c972eebe3286130ba9af8b0520a35a42a8d5ef75;hp=36a666534fe42486fa1350f1d0775f0ca1bf308e;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp diff --git a/src/output/table-provider.h b/src/output/table-provider.h index 36a666534f..b64410c227 100644 --- a/src/output/table-provider.h +++ b/src/output/table-provider.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997, 1998, 1999, 2000, 2009, 2011 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2009, 2011, 2013, 2014 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,6 +19,20 @@ #include "output/table.h" +/* An item of contents within a table cell. */ +struct cell_contents + { + unsigned int options; /* TAB_*. */ + + /* Exactly one of these must be nonnull. */ + char *text; /* A paragraph of text. */ + struct table_item *table; /* A table nested within the cell. */ + + /* Optional footnote(s). */ + char **footnotes; + size_t n_footnotes; + }; + /* A cell in a table. */ struct table_cell { @@ -39,8 +53,18 @@ struct table_cell or both. */ int d[TABLE_N_AXES][2]; - const char *contents; /* Text string contents. */ - unsigned int options; /* TAB_* values. */ + /* The cell's contents. + + Most table cells contain only one item (a paragraph of text), but cells + are allowed to be empty (n_contents == 0) or contain a nested table, or + multiple items. + + 'inline_contents' provides a place to store a single item to handle the + common case. + */ + const struct cell_contents *contents; + size_t n_contents; + struct cell_contents inline_contents; /* Called to free the cell's data, if nonnull. */ void (*destructor) (void *destructor_aux); @@ -152,7 +176,7 @@ struct table_class RECT[TABLE_VERT][1], exclusive, and the TABLE's columns RECT[TABLE_HORZ][0] through RECT[TABLE_HORZ][1]. - Called only if TABLE is not shared (as returned by table_is_shared()).p + Called only if TABLE is not shared (as returned by table_is_shared()). This function may return a null pointer if it cannot implement the select operation, in which case the caller will use a fallback