#!/usr/bin/perl -w %atascii = ( 0 => "♥", 1 => "┣", 2 => "┃", 3 => "┛", 4 => "┫", 5 => "┓", 6 => "╱", 7 => "╲", 8 => "◢", 9 => "▗", 10 => "◣", 11 => "▝", 12 => "▘", 13 => "▔", 14 => "▁", 15 => "▖", 16 => "♣", 17 => "┏", 18 => "━", 19 => "╋", 20 => "●", 21 => "▄", 22 => "▎", 23 => "┳", 24 => "┻", 25 => "▌", 26 => "┗", 27 => "␛", 28 => "↑", 29 => "↓", 30 => "←", 31 => "→", 34 => "\\\"", 92 => "\\\\", 96 => "◆", 123 => "♠", 125 => "↰", 126 => "◀", 127 => "▶", ); %xl = ( 0 => "á", 1 => "ù", 2 => "Ñ", 3 => "É", 4 => "ç", 5 => "ô", 6 => "ò", 7 => "ì", 8 => "£", 9 => "ï", 10 => "ü", 11 => "ä", 12 => "Ö", 13 => "ú", 14 => "ó", 15 => "ö", 16 => "Ü", 17 => "â", 18 => "û", 19 => "î", 20 => "é", 21 => "è", 22 => "ñ", 23 => "ê", 24 => "ȧ", 25 => "à", 26 => "Ȧ", 27 => "␛", 28 => "↑", 29 => "↓", 30 => "←", 31 => "→", 34 => "\\\"", 92 => "\\\\", 96 => "¡", 123 => "Ä", 125 => "↰", 126 => "◀", 127 => "▶", ); sub getcharname { my $c = shift; if($c == 127) { return "[del]"; } elsif($c < 32) { return "^" . chr($c + 64); } else { return chr($c); } } sub mktable { my ($name, $hash) = @_; print "const char *$name\[\] = {\n"; for (0..127) { my $cmt = sprintf("/* %3d \$%02x %5s */", $_, $_, getcharname($_)); print "\t\"" . ($hash->{$_} || chr($_)), "\", $cmt\n"; } print "};\n\n"; } print <