grep { !defined $di->{$_} }
map { substr($_, 1, 1).substr($_, 0, 1) } sort keys %{$di}
);
-printf "q{%s}=>[%s],\n", $_, join(',',
+printf "q{%s}=>[%s],\n", s/(?=[\\}])/\\/gr, join(',',
ord $di->{$_}, # original code point
map {"'$_'"}
- $uninfo->{ $di->{$_} }->[1], # name
+ $uninfo->{ $di->{$_} }->[1] // '', # name
$vim->{$_}
- ? $rfc->{$_} ? 'u-di' : 'u-prop' # vim+rfc or vim-only
- : 'u-prop ex', # neither
- $uninfo->{ $di->{$_} }->[0] =~ s/ u-di| u-prop| ex//gr, # class
+ ? $rfc->{$_} ? 'u-di' : 'u-prop' # vim+rfc or vim only
+ : $rfc->{$_} ? 'ex' : 'u-prop ex', # rfc only or neither
+ ($uninfo->{ $di->{$_} }->[0] // '') =~ s/ u-di| u-prop| ex//gr, # class
$uninfo->{ $di->{$_} }->[4] // (), # string
) for sort keys %{$di};
print "}\n";