}
elsif (my $rows = int($len / $cols)) {
# multiple full rows
+ my $rowsize = $colsize * $cols;
if ($len -= $rows * $cols) {
# partial row remains
- $table->{$offset + $colsize*$rows * $cols} //= [$len*$colsize, "$class joinu", '', $title];
+ $table->{$offset + $rowsize * $rows} //= [$len*$colsize, "$class joinu", '', $title];
$class .= ' joind';
}
+
+ # coalesce multiple rows
+ while ($rows > 3) {
+ $info->{skip}->{$offset += $rowsize}++;
+ $rows--;
+ }
+ if ($rows > 2) {
+ $info->{skip}->{$offset += $rowsize} = 0;
+ }
+
$attr .= sprintf ' rowspan=%d', $rows;
$len = $cols;
}
}
print '<tr><th>';
- {
+ if (defined $row->{skip}->{$offset}) {
+ print '⋮';
+ }
+ else {
if (my $rowmod = $offset % $rowdiv) {
# offset in column units
printf '<small>+%X</small>', $rowmod;