version 1.81, 2021/09/07 14:56:35 |
version 1.83, 2021/09/28 17:06:59 |
Line 278 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
Line 278 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
|
|
min1 = min2 = SIZE_MAX; |
min1 = min2 = SIZE_MAX; |
for (icol = 0; icol <= maxcol; icol++) { |
for (icol = 0; icol <= maxcol; icol++) { |
if (min1 > colwidth[icol]) { |
width = colwidth[icol]; |
|
if (min1 > width) { |
min2 = min1; |
min2 = min1; |
min1 = colwidth[icol]; |
min1 = width; |
} else if (min1 < colwidth[icol] && |
} else if (min1 < width && min2 > width) |
min2 > colwidth[icol]) |
min2 = width; |
min2 = colwidth[icol]; |
|
} |
} |
|
|
/* |
/* |
Line 296 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
Line 296 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
for (g = first_group; g != NULL; g = g->next) { |
for (g = first_group; g != NULL; g = g->next) { |
necol = 0; |
necol = 0; |
for (icol = g->startcol; icol <= g->endcol; icol++) |
for (icol = g->startcol; icol <= g->endcol; icol++) |
if (tbl->cols[icol].width == min1) |
if (colwidth[icol] == min1) |
necol++; |
necol++; |
if (necol == 0) |
if (necol == 0) |
continue; |
continue; |
Line 305 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
Line 305 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
width = min2; |
width = min2; |
if (wanted > width) |
if (wanted > width) |
wanted = width; |
wanted = width; |
for (icol = g->startcol; icol <= g->endcol; icol++) |
|
if (colwidth[icol] == min1 || |
|
(colwidth[icol] < min2 && |
|
colwidth[icol] > width)) |
|
colwidth[icol] = width; |
|
} |
} |
|
|
/* Record the effect of the widening on the group list. */ |
/* Record the effect of the widening. */ |
|
|
gp = &first_group; |
gp = &first_group; |
while ((g = *gp) != NULL) { |
while ((g = *gp) != NULL) { |
done = 0; |
done = 0; |
for (icol = g->startcol; icol <= g->endcol; icol++) { |
for (icol = g->startcol; icol <= g->endcol; icol++) { |
if (colwidth[icol] != wanted || |
if (colwidth[icol] != min1) |
tbl->cols[icol].width == wanted) |
|
continue; |
continue; |
if (g->wanted <= wanted - min1) { |
if (g->wanted <= wanted - min1) { |
|
tbl->cols[icol].width += g->wanted; |
done = 1; |
done = 1; |
break; |
break; |
} |
} |
|
tbl->cols[icol].width = wanted; |
g->wanted -= wanted - min1; |
g->wanted -= wanted - min1; |
} |
} |
if (done) { |
if (done) { |
Line 333 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
Line 329 tblcalc(struct rofftbl *tbl, const struct tbl_span *sp |
|
} else |
} else |
gp = &(*gp)->next; |
gp = &(*gp)->next; |
} |
} |
|
|
/* Record the effect of the widening on the columns. */ |
|
|
|
for (icol = 0; icol <= maxcol; icol++) |
|
if (colwidth[icol] == wanted) |
|
tbl->cols[icol].width = wanted; |
|
} |
} |
free(colwidth); |
free(colwidth); |
|
|