use Text::Unidecode ();
use Shiar_Sheet::FormatChar;
-our $VERSION = '1.02';
+our $VERSION = '1.03';
our @EXPORT = qw( kbchars kbmodes );
my $uc = Shiar_Sheet::FormatChar->new;
our %unaccent = qw(
⍺ a ⍵ w ∊ E ⍷ E ⍴ r ⍳ i ⍸ i ○ O ⍥ O ⌿ / ⍟ (*) ⊕ (+)
- Ʊ U ǝ e Ǝ E ʌ v χ X ɥ h ʘ O ɰ mw ɯ mw Ɯ MW ə @ae Ə @AE
+ Ʊ U ǝ e Ǝ E ʌ v ɥ h ʘ O ɰ mw ɯ mw Ɯ MW ə @ae Ə @AE
ɸ PF ʎ yl ɔ co Ɔ CO ɛ 3E ƣ q Ƣ Q ∀ A ∃ E ∪ u ∩ n ≠ !=
≈ =~ ∅ /0 ∘ o ⋅ . ∫ s ≝ =d ″ " ≤ < ≥ > √ rV ∛ 3V ∜ 4V
+ Α A Β B Γ G Δ D Ε E Ζ Z Η H Θ CQ Ι I Κ K Λ L Μ M
+ Ν N Ξ X Ο O Π P Ρ R Σ S Τ T Υ YU Φ F Χ CX Ψ Y Ω W
+ α a β b γ g δ d ε e ζ z η h θ cq ι i κ k λ l μ m
+ ν n ξ x ο o π p ρ r σ s τ t υ yu φ f χ cx ψ y ω w
+ ς sc ϑ cq µ mu
);
sub unidecode {
$info{mode}->{$lead} //= "mode $lead";
$info{def}->{$lead}{$lead} = 'g1 mode'; # back
}
- while (my ($c, $v) = each %{ $modes->{$lead} }) {
+ while (my ($k, $v) = each %{ $modes->{$lead} }) {
my ($glyph, $title) = $uc->glyph_html($v);
- $info{key}{$lead.$c} = join "\n", $glyph, $title;
+ $info{key}{$lead.$k} = join "\n", $glyph, $title;
+ my $c = $k =~ s/\A[+^](?=.)//r; # trim modifier indicator
my $class = 'g'.(
!defined $v || $c eq $v ? 1 # identical
: 6
);
$g{$class} = 1;
- $info{def}{$lead}{$c} //= $class;
+ $info{def}{$lead}{$k} //= $class;
}
}
$info{flag} = {%{{