X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/0dd2b5ce328daf14b51f94c951acef2ca40a5fd4..v1.10-46-g4c43bcbed6:/Shiar_Sheet/FormatChar.pm
diff --git a/Shiar_Sheet/FormatChar.pm b/Shiar_Sheet/FormatChar.pm
index 78e4a21..c93a48a 100644
--- a/Shiar_Sheet/FormatChar.pm
+++ b/Shiar_Sheet/FormatChar.pm
@@ -8,9 +8,9 @@ use utf8;
use Data::Dump 'pp';
use PLP::Functions 'EscapeHTML';
-our $VERSION = '1.06';
+our $VERSION = '1.08';
-our $uc = do 'unicode-char.inc.pl';
+our $uc = do 'data/unicode-char.inc.pl';
sub new {
my ($class) = @_;
@@ -31,15 +31,15 @@ sub glyph_html {
my ($self, $char) = @_;
my $codepoint = ord $char;
my $info = $self->glyph_info($codepoint);
- my ($class, $name, $mnem, $html, $string) = @$info;
+ my ($class, $name, $mnem, $entity, $string) = @$info;
my $cell = EscapeHTML($string || $char);
- my $title = sprintf 'U+%04X%s', $codepoint, $name && " ($name)";
+ my $title = sprintf 'U+%04X%s', $codepoint, !!$name && " ($name)";
- $cell = "$cell" if $class =~ /\bZs\b/;
+ $cell = "$cell" if $class and $class =~ /\bZs\b/;
$cell = ' ' if $cell eq '';
- return ($cell, EscapeHTML($title), "X $class", $mnem, $html);
+ return ($cell, EscapeHTML($title), !!$class && "X $class", $mnem, $entity);
}
sub glyphs_html {
@@ -86,7 +86,7 @@ sub cell {
if ($self->{style} eq 'univer') {
if ($input =~ /\p{age=unassigned}/) {
# check include for assignments after unicode 6.0 (perl v5.14)
- state $agemap = do 'unicode-age.inc.pl';
+ state $agemap = do 'data/unicode-age.inc.pl';
my $version = $agemap->{$codepoint};
push @class, $version ? 'l2' : 'l1';
}
@@ -109,7 +109,7 @@ sub cell {
}
if ($self->{style} eq 'di') {
- if ($mnem =~ /â¦/) {
+ if ($mnem and $mnem =~ /â¦/) {
# incomplete representation, usually partial
}
elsif ($class =~ /\bu-di\b/) {
@@ -136,7 +136,7 @@ sub cell {
if ($input =~ /[ -~]/) {
push @class, 'l5', 'u-ascii'; # ascii
}
- elsif ($input =~ /^\p{in=6.0}+$/) {
+ elsif ($input =~ /^\p{in=6.0}+$/ and $input !~ /\p{Co}/) {
push @class, 'l2'; # in unicode 6.0
}
else {
@@ -173,8 +173,8 @@ sub cell {
}
}
else {
- if ($_ eq 'hex' or $cell =~ /^[^a-zA-Z]$/) {
- $anno = sprintf(' %04X', 'value', ord $cell);
+ if ($_ eq 'hex' or $input =~ /^[^a-zA-Z]$/) {
+ $anno = sprintf(' %04X', 'value', ord $input);
last;
}
}
@@ -183,7 +183,7 @@ sub cell {
return sprintf('<%s>%s%s',
join(' ', 'td',
- defined $title ? qq{ title="$title"} : (),
+ defined $title ? qq{title="$title"} : (),
@class ? sprintf('class="%s"', join ' ', @class) : (),
$html || (),
),
@@ -192,33 +192,20 @@ sub cell {
);
}
-sub table {
- my ($self, $digraphs) = @_;
-
- my @rows;
-
- my @colheads;
- while ($digraphs->[0] !~ /^\./) {
- my $cell = shift @$digraphs or last;
- push @colheads, sprintf(
- '<%s%s>%s',
- $cell =~ s/^-// ? 'td' : 'th',
- $cell =~ s/:(.*)// ? qq{ title="$1"} : '',
- $cell eq '_' ? ' ' : $cell
- );
- }
- push @rows, sprintf '%s
%s', @{$_} } @classes), + ' |