aboutsummaryrefslogtreecommitdiffstats
path: root/table.c
diff options
context:
space:
mode:
Diffstat (limited to 'table.c')
-rw-r--r--table.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/table.c b/table.c
index e1fa6ba..f03bc60 100644
--- a/table.c
+++ b/table.c
@@ -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;