$rest = $len if $len < $rest; #TODO: optimise
if ($len -= $rest) {
# continued on new row
- $table->{$offset + $colsize*$rest} //= [$len*$colsize, "$class joinu", $name, $title];
- $name = '';
+ my @next = ($len * $colsize, "$class joinu");
+ if ($len > $rest) {
+ # minority remains
+ push @next, $name, $title;
+ $title ||= $name;
+ $name = '';
+ }
+ else {
+ # minority on next row
+ push @next, '"', $title || $name;
+ }
+ $table->{$offset + $colsize*$rest} //= \@next;
$class .= ' joind';
}
$len = $rest;
for my $lsb (0 .. $cols - 1) {
my $val = ( ($msb * $cols) + $lsb ) * $colsize;
if ($row->{cell}) {
- if (ref $row->{cell} eq 'CODE') {
- print $row->{cell}->($val);
- next;
- }
print range_cell($row->{cell}, $val);
next;
}