blob: 8e141a2bb6b7232ef0e3b8f7ae93d5b0ab9f8be5 (
plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/usr/bin/perl
$enc2uni=$ARGV[0];
$encname=$ARGV[1];
shift;shift;
$glyph2uni=join("', `",@ARGV);
while(<>) {
if ($_ =~ /^#/) { next }
s/(....);([^;]*);/$glyphenc{$1}=$2/e;
}
print <<"ENDHEADER";
% This file is generated from `$enc2uni' and `$glyph2uni'
%
% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
% LIGKERN quoteleft quoteleft =: quotedblleft ;
% LIGKERN quoteright quoteright =: quotedblright ;
% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ;
% LIGKERN greater greater =: guillemotright ;
% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ;
%
% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
% LIGKERN nine {} * ; * {} nine ;
%
/${encname}Encoding [
ENDHEADER
$n=0;
open(ENC2UNI,$enc2uni);
while(<ENC2UNI>) {
if ($_ =~ /^#/) { next }
s/(..);([^;]*);/$codeenc=$1;$codeuni=$2/e;
if ($n % 16 == 0) { printf "%% 0x%02X\n",$n }
$n++;
if ($glyphenc{$codeuni} ne "") {
print "/$glyphenc{$codeuni}\n";
} else {
print "/.notdef\n";
}
}
close(ENC2UNI);
print "] def\n";
|