git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
charset: offset parameter sets more common startpoint
[sheet.git]
/
charset.plp
diff --git
a/charset.plp
b/charset.plp
index 5358a37b47e716e6627b72ea80c706cfe8a92058..82f37f95afdea03d17810bd33857d329fa95000b 100644
(file)
--- a/
charset.plp
+++ b/
charset.plp
@@
-238,18
+238,18
@@
sub tabinput {
elsif ($param =~ m{ \A cols = (\d+) \z }x) {
$row{cols} = $1;
}
elsif ($param =~ m{ \A cols = (\d+) \z }x) {
$row{cols} = $1;
}
- elsif ($param =~ m{ \A (?<
offset> \d+) (?: [-] (?<endpoint
> \d+) )? \z }x) {
+ elsif ($param =~ m{ \A (?<
start> \d+) (?: [-] (?<end
> \d+) )? \z }x) {
if (defined $row{endpoint}) {
# extend earlier range
if (defined $row{endpoint}) {
# extend earlier range
- my $skip = int(($row{endpoint} || $row{
offse
t}) / $row{cols});
- for ($skip + 1 .. ($+{
offse
t} / $row{cols}) - 1) {
- $row{skip}->{ $_ * $row{cols} - $row{
offse
t} }++;
+ my $skip = int(($row{endpoint} || $row{
startpoin
t}) / $row{cols});
+ for ($skip + 1 .. ($+{
star
t} / $row{cols}) - 1) {
+ $row{skip}->{ $_ * $row{cols} - $row{
startpoin
t} }++;
}
}
else {
}
}
else {
- $row{
offset} = $+{offse
t};
+ $row{
startpoint} = $+{star
t};
}
}
- $row{endpoint} = $+{end
point
} || 0;
+ $row{endpoint} = $+{end} || 0;
}
else {
Alert("Unknown option <q>$param</q> for charset $input");
}
else {
Alert("Unknown option <q>$param</q> for charset $input");
@@
-268,6
+268,7
@@
sub tabinput {
$row{endpoint} = $end - $start;
$row{set} = sprintf 'Unicode block U+%02Xxx', $start >> 8;
$row{offset} = $start % 256;
$row{endpoint} = $end - $start;
$row{set} = sprintf 'Unicode block U+%02Xxx', $start >> 8;
$row{offset} = $start % 256;
+ $row{startpoint} = 0;
}
elsif (lc $input eq 'uu') {
$row{set} = 'Unicode planes';
}
elsif (lc $input eq 'uu') {
$row{set} = 'Unicode planes';
@@
-281,8
+282,7
@@
sub tabinput {
$row{endpoint} ||= 8191;
$row{endpoint} *= $row{cell}->{colsize};
$row{endpoint} ||= 8191;
$row{endpoint} *= $row{cell}->{colsize};
- $row{startpoint} = $row{cell}->{colsize} * $row{offset};
- $row{offset} = 0;
+ $row{startpoint} *= $row{cell}->{colsize};
$row{set} = 'Unicode ' . (
$row{startpoint} < 0x10000 && $row{endpoint} < 0x10000 ? 'BMP' :
$row{startpoint} >= 0x10000 && $row{endpoint} < 0x20000 ? 'SMP' :
$row{set} = 'Unicode ' . (
$row{startpoint} < 0x10000 && $row{endpoint} < 0x10000 ? 'BMP' :
$row{startpoint} >= 0x10000 && $row{endpoint} < 0x20000 ? 'SMP' :
@@
-296,6
+296,7
@@
sub tabinput {
$row{endpoint} = 255;
}
elsif ($row{set} = Encode::resolve_alias($input)) {
$row{endpoint} = 255;
}
elsif ($row{set} = Encode::resolve_alias($input)) {
+ $row{offset} = delete $row{startpoint};
$row{endpoint} ||= 255;
if ($row{set} eq 'MacHebrew' or $row{set} eq 'MacThai') {
# array of possibly multiple characters per code point
$row{endpoint} ||= 255;
if ($row{set} eq 'MacHebrew' or $row{set} eq 'MacThai') {
# array of possibly multiple characters per code point
@@
-363,7
+364,7
@@
sub range_cell {
$len /= $colsize;
$name //= $len <= 2 ? 'res' : 'reserved';
$len /= $colsize;
$name //= $len <= 2 ? 'res' : 'reserved';
- if (my $part =
$offset
/$colsize % $cols) {
+ if (my $part =
($offset - $info->{startpoint})
/$colsize % $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