[w3m-dev 02919] wrong table width calculation
* table.c (set_table_matrix0): refine width calculation From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 02919] wrong table width calculation
|
||||||
|
* table.c (set_table_matrix0): refine width calculation
|
||||||
|
|
||||||
2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
2002-01-28 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
|
||||||
|
|
||||||
* [w3m-dev 02918] fixed scripts/w3mmail.cgi.in
|
* [w3m-dev 02918] fixed scripts/w3mmail.cgi.in
|
||||||
@@ -2322,4 +2327,4 @@
|
|||||||
* release-0-2-1
|
* release-0-2-1
|
||||||
* import w3m-0.2.1
|
* import w3m-0.2.1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.266 2002/01/27 18:59:57 ukai Exp $
|
$Id: ChangeLog,v 1.267 2002/01/28 14:42:30 ukai Exp $
|
||||||
|
|||||||
24
table.c
24
table.c
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: table.c,v 1.17 2002/01/25 17:25:44 ukai Exp $ */
|
/* $Id: table.c,v 1.18 2002/01/28 14:42:30 ukai Exp $ */
|
||||||
/*
|
/*
|
||||||
* HTML table
|
* HTML table
|
||||||
*/
|
*/
|
||||||
@@ -3216,7 +3216,7 @@ set_table_matrix0(struct table *t, int maxwidth)
|
|||||||
int size = t->maxcol + 1;
|
int size = t->maxcol + 1;
|
||||||
int i, j, k, bcol, ecol;
|
int i, j, k, bcol, ecol;
|
||||||
int width;
|
int width;
|
||||||
double w0, w1, w, e, s, b;
|
double w0, w1, w, s, b;
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
double we[size];
|
double we[size];
|
||||||
char expand[size];
|
char expand[size];
|
||||||
@@ -3249,22 +3249,14 @@ set_table_matrix0(struct table *t, int maxwidth)
|
|||||||
j = cell->eindex[k];
|
j = cell->eindex[k];
|
||||||
bcol = cell->col[j];
|
bcol = cell->col[j];
|
||||||
ecol = bcol + cell->colspan[j];
|
ecol = bcol + cell->colspan[j];
|
||||||
|
width = cell->width[j] - (cell->colspan[j] - 1) * t->cellspacing;
|
||||||
|
w1 = 0.;
|
||||||
for (i = bcol; i < ecol; i++) {
|
for (i = bcol; i < ecol; i++) {
|
||||||
|
w1 += t->tabwidth[i] + 0.1;
|
||||||
expand[i]++;
|
expand[i]++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for (k = 0; k < cell->necell; k++) {
|
|
||||||
j = cell->eindex[k];
|
|
||||||
bcol = cell->col[j];
|
|
||||||
ecol = bcol + cell->colspan[j];
|
|
||||||
width = cell->width[j] - (cell->colspan[j] - 1) * t->cellspacing;
|
|
||||||
e = 0.;
|
|
||||||
for (i = bcol; i < ecol; i++) {
|
for (i = bcol; i < ecol; i++) {
|
||||||
e += expand[i];
|
w = weight(width * (t->tabwidth[i] + 0.1) / w1);
|
||||||
}
|
|
||||||
for (i = bcol; i < ecol; i++) {
|
|
||||||
w = weight(width * expand[i] / e);
|
|
||||||
if (w > we[i])
|
if (w > we[i])
|
||||||
we[i] = w;
|
we[i] = w;
|
||||||
}
|
}
|
||||||
@@ -3286,11 +3278,7 @@ set_table_matrix0(struct table *t, int maxwidth)
|
|||||||
width = cell->width[j] - (cell->colspan[j] - 1) * t->cellspacing;
|
width = cell->width[j] - (cell->colspan[j] - 1) * t->cellspacing;
|
||||||
w = weight(width);
|
w = weight(width);
|
||||||
s = w / (w1 + w);
|
s = w / (w1 + w);
|
||||||
#if 0
|
|
||||||
b = sigma_td_nw((int)(s * maxwidth * cell->colspan[j]));
|
|
||||||
#else
|
|
||||||
b = sigma_td_nw((int)(s * maxwidth));
|
b = sigma_td_nw((int)(s * maxwidth));
|
||||||
#endif
|
|
||||||
correct_table_matrix4(t, bcol, cell->colspan[j], expand, s, b);
|
correct_table_matrix4(t, bcol, cell->colspan[j], expand, s, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user