charset: cp437 graphical chars table
[sheet.git] / charset.plp
index d3ddea72a4dc20d9dac554bef4e18132d874db95..fd8d2ad6aaec5bc21be5bf61ef9ef1df799c52c3 100644 (file)
@@ -30,9 +30,17 @@ use Encode qw(decode);
 # generate character table(s)
 # (~16x faster than decoding in loop;
 #  substr strings is twice as fast as splitting to an array)
 # generate character table(s)
 # (~16x faster than decoding in loop;
 #  substr strings is twice as fast as splitting to an array)
-my @tables = map { decode($_, pack 'C*', 0..255) } 'iso-8859-1';
+my @tables = map { decode($_, pack 'C*', 0..255) } 'iso-8859-1', 'cp437';
 my $NOCHAR = chr 0xFFFD;
 
 my $NOCHAR = chr 0xFFFD;
 
+for my $cp437 (grep {$request[$_] eq 'cp437'} 0 .. $#request) {
+       substr($tables[$cp437], 237, 1) = pack 'U*', 0x3D5; # phi sign
+       substr($tables[$cp437], 0, 32) = pack 'U*', map {hex} qw(
+               2007 263A 263B 2665 2666 2663 2660 2022 25D8 25CB 25D9 2642 2640 266A 266B 263C
+               25BA 25C4 2195 203C 00B6 00A7 25AC 21A8 2191 2193 2192 2190 221F 2194 25B2 25BC
+       );
+}
+
 sub quote {
        local $_ = shift;
        s/"/"/g;
 sub quote {
        local $_ = shift;
        s/"/"/g;