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 (from parent 1:
b1db176
)
charset: always respect colsize in start- and endpoint
author
Mischa POSLAWSKY
<perl@shiar.org>
Fri, 21 Apr 2017 20:42:16 +0000
(22:42 +0200)
committer
Mischa POSLAWSKY
<perl@shiar.org>
Thu, 25 May 2017 20:10:23 +0000
(22:10 +0200)
charset.plp
patch
|
blob
|
history
diff --git
a/charset.plp
b/charset.plp
index 05336c1e68a10086179a21382a017c29c7e3243c..d0dd864f70345259301537ee719ce1469cef1e45 100644
(file)
--- a/
charset.plp
+++ b/
charset.plp
@@
-275,19
+275,15
@@
sub tabinput {
$row{cell} = do 'charset-ucplanes.inc.pl'
or Alert('Table data could not be read', $@ || $!);
$row{endpoint} ||= 1023;
$row{cell} = do 'charset-ucplanes.inc.pl'
or Alert('Table data could not be read', $@ || $!);
$row{endpoint} ||= 1023;
- $row{endpoint} *= $row{cell}->{colsize};
- $row{startpoint} *= $row{cell}->{colsize};
}
elsif (lc $input eq 'u') {
$row{cell} = do 'charset-unicode.inc.pl'
or Alert('Table data could not be read', $@ || $!);
$row{endpoint} ||= 8191;
}
elsif (lc $input eq 'u') {
$row{cell} = do 'charset-unicode.inc.pl'
or Alert('Table data could not be read', $@ || $!);
$row{endpoint} ||= 8191;
- $row{endpoint} *= $row{cell}->{colsize};
- $row{startpoint} *= $row{cell}->{colsize};
$row{set} = 'Unicode ' . (
$row{set} = 'Unicode ' . (
- $row{startpoint} < 0x1000
0 && $row{endpoint} < 0x10
000 ? 'BMP' :
- $row{startpoint} >= 0x1000
0 && $row{endpoint} < 0x20
000 ? 'SMP' :
+ $row{startpoint} < 0x1000
&& $row{endpoint} < 0x1
000 ? 'BMP' :
+ $row{startpoint} >= 0x1000
&& $row{endpoint} < 0x2
000 ? 'SMP' :
'allocations'
);
}
'allocations'
);
}
@@
-366,7
+362,7
@@
sub range_cell {
$len /= $colsize;
$name //= $len <= 2 ? 'res' : 'reserved';
$len /= $colsize;
$name //= $len <= 2 ? 'res' : 'reserved';
- if (my $part = ($offset
- $info->{startpoint})/$colsize
% $cols) {
+ if (my $part = ($offset
/$colsize - $info->{startpoint})
% $cols) {
# continued row
my $rest = $cols - $part; # remaining
$rest = $len if $len < $rest; #TODO: optimise
# continued row
my $rest = $cols - $part; # remaining
$rest = $len if $len < $rest; #TODO: optimise
@@
-426,7
+422,7
@@
for my $row (@request) {
my $coldigits = ceil(log($colsize * $cols) / log(16)); # uniform length of hexadecimal header
my $rowdiv = 16 ** $coldigits; # row divide for column digits
$rowdiv = 1 if $rowdiv != $cols * $colsize; # divide only if all columns are matched
my $coldigits = ceil(log($colsize * $cols) / log(16)); # uniform length of hexadecimal header
my $rowdiv = 16 ** $coldigits; # row divide for column digits
$rowdiv = 1 if $rowdiv != $cols * $colsize; # divide only if all columns are matched
- my $offset = $row->{startpoint} || 0;
+ my $offset = $row->{startpoint}
* $colsize
|| 0;
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};
@@
-440,7
+436,7
@@
for my $row (@request) {
print "\n";
}
print '<tbody>';
print "\n";
}
print '<tbody>';
- while ($offset < $row->{endpoint}) {
+ while ($offset < $row->{endpoint}
* $colsize
) {
if ($row->{skip}->{$offset}) {
$offset += $cols * $colsize;
next;
if ($row->{skip}->{$offset}) {
$offset += $cols * $colsize;
next;