formatchar: common &; optional for html entity annotation
[sheet.git] / Shiar_Sheet / FormatChar.pm
index 707fdc65298eadcc142579a05cde1a3a8bba5689..62f6791ba9f1e1d72332c87b30cc56b498d7dfe0 100644 (file)
@@ -109,17 +109,23 @@ sub cell {
 
        my $anno = '';
        for (@{ $self->{anno} }) {
-               if ($_ eq 'html') {
+               if (/html$/) {
                        require HTML::Entities;
-                       if (my $_ = $HTML::Entities::char2entity{$cell}) {
-                               $anno = sprintf(' <small class="digraph">%s</small>', EscapeHTML($_));
+                       if (my $entity = $HTML::Entities::char2entity{$cell}) {
+                               $entity = substr($entity, 1, -1) unless /^&/;
+                               $anno = sprintf(' <small class="digraph">%s</small>', EscapeHTML($entity));
                                last;
                        }
                }
                elsif ($_ eq 'xml') {
-                       require HTML::Entities;
                        $anno = sprintf(' <small class="digraph">%s</small>',
-                               sprintf "&amp;#%d;", ord($cell)
+                               sprintf '#%d', ord($cell)
+                       );
+                       last;
+               }
+               elsif ($_ eq '&xml') {
+                       $anno = sprintf(' <small class="digraph">%s</small>',
+                               sprintf '&amp;#%d;', ord($cell)
                        );
                        last;
                }