git.shiar.nl
/
sheet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b4c97cd
)
charset: track table offset in loop
author
Mischa POSLAWSKY
<perl@shiar.org>
Thu, 6 Apr 2017 19:08:37 +0000
(21:08 +0200)
committer
Mischa POSLAWSKY
<perl@shiar.org>
Mon, 24 Apr 2017 23:51:42 +0000
(
01:51
+0200)
charset.plp
patch
|
blob
|
history
diff --git
a/charset.plp
b/charset.plp
index 8dfa91e358405680b2226fac6fa57494bf58d677..db178d9bfb383514a2c6e51a97cbf28b6081b9dc 100644
(file)
--- a/
charset.plp
+++ b/
charset.plp
@@
-162,6
+162,8
@@
for my $row (@request) {
my $colsize = $row->{cell} && $row->{cell}->{colsize} || 1;
my $coldigits = ceil(log($colsize * $cols) / log(16)); # uniform length of hexadecimal header
my $rowdiv = 16 ** $coldigits; # divider of row headers
my $colsize = $row->{cell} && $row->{cell}->{colsize} || 1;
my $coldigits = ceil(log($colsize * $cols) / log(16)); # uniform length of hexadecimal header
my $rowdiv = 16 ** $coldigits; # divider of row headers
+ my $offset = 0;
+ my $endpoint = $offset + (length($row->{table}) || 256) * $colsize;
printf '<div class="section"><table class="glyphs%s">', !$row->{cell} && ' charmap';
my $title = $row->{set};
printf '<div class="section"><table class="glyphs%s">', !$row->{cell} && ' charmap';
my $title = $row->{set};
@@
-174,27
+176,25
@@
for my $row (@request) {
print "\n";
}
print '<tbody>';
print "\n";
}
print '<tbody>';
-
for my $msb (0 .. ((length($row->{table}) || 256) - 1) / $cols
) {
+
while ($offset < $endpoint - 1
) {
print '<tr><th>';
{
print '<tr><th>';
{
- my $rowlabel = ($msb + int($row->{offset} / $cols)) * $cols * $colsize;
- if (my $rowmod = $rowlabel % $rowdiv) {
+ if (my $rowmod = $offset % $rowdiv) {
# offset in column units
printf '<small>+%X</small>', $rowmod;
}
else {
# divided row offset
# offset in column units
printf '<small>+%X</small>', $rowmod;
}
else {
# divided row offset
- printf '%X',
$rowlabel
/ $rowdiv;
+ printf '%X',
($offset + $row->{offset})
/ $rowdiv;
}
}
}
}
- for my $lsb (0 .. $cols - 1) {
- my $val = ( ($msb * $cols) + $lsb ) * $colsize;
+ for (1 .. $cols) {
if ($row->{cell}) {
if ($row->{cell}) {
- print range_cell($row, $
val
);
+ print range_cell($row, $
offset
);
next;
}
next;
}
- my $glyph = substr $row->{table}, $
val
, 1;
+ my $glyph = substr $row->{table}, $
offset
, 1;
if ($glyph eq $NOCHAR) {
print '<td>';
next;
if ($glyph eq $NOCHAR) {
print '<td>';
next;
@@
-202,6
+202,9
@@
for my $row (@request) {
print "\n".$glyphs->glyph_cell($glyph);
}
print "\n".$glyphs->glyph_cell($glyph);
}
+ continue {
+ $offset += $colsize;
+ }
print "\n";
}
say '</table></div>';
print "\n";
}
say '</table></div>';