diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-05-14 16:01:32 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-05-14 16:01:32 +0000 |
commit | 589b0bde0a07b3759eba854b4c2a5991a958f6c4 (patch) | |
tree | ae5b34288b175722b1328471a05c6c3a5c72ce79 /table.c | |
parent | [w3m-dev 03901] body with status-code 401 (diff) | |
download | w3m-589b0bde0a07b3759eba854b4c2a5991a958f6c4.tar.gz w3m-589b0bde0a07b3759eba854b4c2a5991a958f6c4.zip |
[w3m-dev 03902] Re: table rendering
* table.c (check_relative_width): check n_leftcell
check w <= r
From: Akinori Ito <aito@fw.ipsj.or.jp>
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; |