- const char *tag;
- bool is_header;
- int alignment, colspan, rowspan;
- int top, left, right, bottom, n_borders;
-
- table_get_cell (t, x, y, &cell);
- if (x != cell.d[TABLE_HORZ][0] || y != cell.d[TABLE_VERT][0])
- continue;
-
- /* Output <TD> or <TH> tag. */
- is_header = (y < table_ht (t)
- || y >= table_nr (t) - table_hb (t)
- || x < table_hl (t)
- || x >= table_nc (t) - table_hr (t));
- tag = is_header ? "TH" : "TD";
- fprintf (html->file, " <%s", tag);
-
- alignment = (cell.n_contents > 0
- ? cell.contents[0].options & TAB_ALIGNMENT
- : TAB_LEFT);
- if (alignment != TAB_LEFT)
- fprintf (html->file, " ALIGN=\"%s\"",
- alignment == TAB_RIGHT ? "RIGHT" : "CENTER");
-
- colspan = table_cell_colspan (&cell);
- if (colspan > 1)
- fprintf (html->file, " COLSPAN=\"%d\"", colspan);
-
- rowspan = table_cell_rowspan (&cell);
- if (rowspan > 1)
- fprintf (html->file, " ROWSPAN=\"%d\"", rowspan);
-
- if (html->borders)
- {
- /* Cell borders. */
- n_borders = 0;
-
- top = table_get_rule (t, TABLE_VERT, x, y);
- if (top > TAL_GAP)
- put_border (html->file, n_borders++, top, "top");
-
- if (y + rowspan == table_nr (t))
- {
- bottom = table_get_rule (t, TABLE_VERT, x, y + rowspan);
- if (bottom > TAL_GAP)
- put_border (html->file, n_borders++, bottom, "bottom");
- }
-
- left = table_get_rule (t, TABLE_HORZ, x, y);
- if (left > TAL_GAP)
- put_border (html->file, n_borders++, left, "left");
-
- if (x + colspan == table_nc (t))
- {
- right = table_get_rule (t, TABLE_HORZ, x + colspan, y);
- if (right > TAL_GAP)
- put_border (html->file, n_borders++, right, "right");
- }
-
- if (n_borders > 0)
- fputs ("\"", html->file);
- }
-
- putc ('>', html->file);
-
- /* Output cell contents. */
- for (c = cell.contents; c < &cell.contents[cell.n_contents]; c++)
+ table_get_cell (layers, 0, y, &cell);
+ cell.d[H][1] = body->n[H];
+ html_put_table_cell (html, pt, &cell, "td", NULL);
+
+ fputs ("</tr>\n", html->file);
+ }
+ fputs ("</thead>\n", html->file);
+ }
+
+ fputs ("<tbody>\n", html->file);
+ for (int y = 0; y < body->n[V]; y++)
+ {
+ fputs ("<tr>\n", html->file);
+ for (int x = 0; x < body->n[H]; )
+ {
+ struct table_cell cell;
+ table_get_cell (body, x, y, &cell);
+ if (x == cell.d[TABLE_HORZ][0] && y == cell.d[TABLE_VERT][0])