* added U+1E06-U+1E07, U+1E3A-U+1E3B, U+1E48-U+1E49, U+1E5E-U+1E5F, U+1E6E-U+1E6F...
[dejavu.git] / dejavu-fonts / kerning.pl
blobc95407a44c477cdb3b8668081477229c3d716095
1 #!/usr/bin/perl -w
3 # $Id$
5 %chardata = ();
6 %encmap = ();
8 $in_char = '';
9 while (<STDIN>) {
10 chomp ($_);
11 if (/^([^:]+):\s*(.*)$/) {
12 my ($name, $value) = ($1, $2);
13 $name = lc ($name);
14 if ($name eq 'startchar') {
15 $in_char = $value;
17 next if (!$in_char);
18 if ($name eq 'encoding') {
19 my ($enc) = split (/\s+/, $value, 2);
20 $encmap{$enc} = $in_char;
21 $chardata{$in_char}{'_enc'} = $enc;
23 $chardata{$in_char}{$name} = $value;
27 $asked_char = $ARGV[0];
28 $asked_char = '' if (!defined $asked_char);
29 $right_kern = '';
30 $left_kern = '';
32 foreach $enc (sort { $a <=> $b } keys %encmap) {
33 my $char = $encmap{$enc};
34 printf '%-16s %5d', $char, $enc;
35 print ' kerning:';
36 my $kern = $chardata{$char}{'kernsslifo'};
37 if ($kern) {
38 my @kern = split (/\s+/, $kern);
39 my $kern_str;
40 for (my $i = 0; $i < @kern; $i += 4) {
41 my $kern_char = $encmap{$kern[$i]};
42 $kern_str .= ' ' . $kern_char . '[' . sprintf('%x', $kern[$i]) . '] (' . $kern[$i+1] . ')';
43 if ($asked_char eq $kern_char) {
44 $left_kern .= ' ' . $char . '[' . sprintf('%x', $enc) . '] (' . $kern[$i+1] . ')';
47 print $kern_str;
48 if ($asked_char eq $char) {
49 $right_kern = $kern_str;
52 print "\n";
55 if ($asked_char) {
56 print "\n";
57 print $asked_char, "\n";
58 print "right kern chars:", $right_kern, "\n";
59 print " left kern chars:", $left_kern, "\n";