summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/t2/enc-maps/make-enc.pl
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";