- if (my $fullinfo = Unicode::UCD::charinfo($codepoint)) {
- return [@$fullinfo{qw/category name - string/}];
- }
- } || [];
+ Unicode::UCD::charinfo($codepoint)
+ || { category => 'Xn', name => '' };
+ } or return;
+ my $string;
+ if ($info->{combining}) {
+ # overlay combining diacritics
+ $string = chr(9676) . chr($codepoint);
+ }
+ return [@$info{qw( category name )}, undef, $string];
+}
+
+sub glyph_info {
+ my ($self, $codepoint) = @_;
+ return $uc->{chr $codepoint} || $self->glyph_mkinfo($codepoint) || [];