diff options
Diffstat (limited to 'table.c')
-rw-r--r-- | table.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -1,4 +1,4 @@ -/* $Id: table.c,v 1.43 2003/05/13 17:20:33 ukai Exp $ */ +/* $Id: table.c,v 1.44 2003/05/14 16:01:32 ukai Exp $ */ /* * HTML table */ @@ -3525,10 +3525,18 @@ check_relative_width(struct table *t, int maxwidth) else n_leftcell++; } - if (w < r || (w == r && n_leftcell > 0)) { - cell->fixed_width[i] = -100 * r; + if (n_leftcell == 0) { + /* w must be identical to r */ + if (w != r) + cell->fixed_width[i] = -100*r; } else { + if (w <= r) { + /* make room for the left(width-unspecified) cell */ + /* the next formula is an estimation of required width */ + w = r*cell->colspan[i]/(cell->colspan[i]-n_leftcell); + cell->fixed_width[i] = -100*w; + } for (j = 0; j < cell->colspan[i]; j++) { if (rcolwidth[j + k] == 0) rcolwidth[j + k] = (w - r) / n_leftcell; |