summaryrefslogtreecommitdiff
path: root/Build/source/texk/lcdf-typetools
diff options
context:
space:
mode:
authorDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
committerDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
commitc6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch)
tree1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/texk/lcdf-typetools
parent07ee7222e389b0777456b427a55c22d0e6ffd267 (diff)
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/lcdf-typetools')
-rw-r--r--Build/source/texk/lcdf-typetools/ChangeLog221
-rw-r--r--Build/source/texk/lcdf-typetools/Makefile.am54
-rw-r--r--Build/source/texk/lcdf-typetools/Makefile.in1258
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/ChangeLog196
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/TL-Changes13
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw6411
-rw-r--r--Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32200
-rw-r--r--Build/source/texk/lcdf-typetools/ac/lcdf-typetools.ac15
-rw-r--r--Build/source/texk/lcdf-typetools/ac/withenable.ac8
-rw-r--r--Build/source/texk/lcdf-typetools/aclocal.m41179
-rw-r--r--Build/source/texk/lcdf-typetools/autoconf.h.in330
-rwxr-xr-xBuild/source/texk/lcdf-typetools/configure24054
-rw-r--r--Build/source/texk/lcdf-typetools/configure.ac427
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/7t.enc65
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/COPYING416
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/INSTALL176
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.am86
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.in808
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md1239
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ONEWS433
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md118
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/autoconf.h.in233
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.am15
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.in771
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.187
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc269
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc591
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.hh10
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac514
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphlist.txt4305
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphtounicode.tex5511
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/config.h49
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afm.hh59
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmparse.hh64
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmw.hh29
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/amfm.hh153
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh461
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/encoding.hh27
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/findmet.hh114
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/metrics.hh177
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otf.hh371
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfcmap.hh60
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfdata.hh216
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgpos.hh249
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgsub.hh415
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfname.hh122
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfos2.hh94
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfpost.hh62
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh113
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/psres.hh74
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh96
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1cs.hh345
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1csgen.hh127
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1font.hh167
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1interp.hh239
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1item.hh268
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1mm.hh108
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1rw.hh232
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1unparser.hh39
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfcs.hh40
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfhead.hh41
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfkern.hh42
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/bezier.hh136
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h303
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/error.hh877
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/filename.hh41
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/globmatch.hh8
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashcode.hh31
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.cc187
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.hh210
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/inttypes.h34
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/landmark.hh39
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/md5.h48
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/permstr.hh197
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/point.hh185
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/slurper.hh63
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/straccum.hh641
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/string.hh888
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/strtonum.h10
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/transform.hh147
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc202
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.hh324
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec99
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.am43
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.in778
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc586
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc365
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc190
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc850
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc1685
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc29
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc321
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc130
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc1491
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc462
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc43
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc717
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc328
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc1398
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc194
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc47
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc200
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc153
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc419
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc165
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc369
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc636
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc916
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc332
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc1377
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc861
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc393
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc613
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc137
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc232
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc69
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc116
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.am31
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.in736
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc376
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c2359
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc1185
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc130
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/fixlibc.c73
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc116
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc36
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/md5.c357
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc319
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc57
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc187
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc306
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc786
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/strtonum.c31
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc182
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/vectorv.cc112
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/m4/lcdf-typetools.m415
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.am14
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.in748
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc434
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1178
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.am17
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.in781
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc463
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1206
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc300
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.hh31
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc41
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.hh7
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc924
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.hh68
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.am16
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.in750
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1199
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc726
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.am35
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.in842
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc816
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.hh27
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc979
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.hh128
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc236
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh110
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c99
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.h23
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc1573
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh288
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.11669
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc2449
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.hh24
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc706
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh177
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/setting.hh18
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc483
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.hh34
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc299
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh37
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.am14
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.in748
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.196
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc425
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.am15
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.in771
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc553
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.hh136
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.148
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc450
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.am14
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.in748
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.155
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc369
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.am15
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.in771
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1205
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc1109
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc78
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.hh10
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.am14
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.in748
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.166
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc748
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist-g2u.txt1188
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist.txt386
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.am14
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.in748
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.178
-rw-r--r--Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc403
-rw-r--r--Build/source/texk/lcdf-typetools/m4/ac_cxx_template_objs.m469
-rw-r--r--Build/source/texk/lcdf-typetools/tests/Ant.enc54
-rw-r--r--Build/source/texk/lcdf-typetools/tests/Ant.map1
-rw-r--r--Build/source/texk/lcdf-typetools/tests/Ant.pfbbin152094 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/tests/Ant.pl2014
-rw-r--r--Build/source/texk/lcdf-typetools/tests/Fon.postbin32 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/tests/Fon.t42290
-rw-r--r--Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttfbin7376 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/tests/antpolt-regular.otfbin131876 -> 0 bytes
-rwxr-xr-xBuild/source/texk/lcdf-typetools/tests/t1.test58
-rw-r--r--Build/source/texk/lcdf-typetools/tests/t2c.enc290
-rw-r--r--Build/source/texk/lcdf-typetools/tests/texmfhome.otfbin1884 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/tests/texnansx.enc279
-rwxr-xr-xBuild/source/texk/lcdf-typetools/tests/tfm.test26
-rw-r--r--Build/source/texk/lcdf-typetools/tests/tmf.info8
-rw-r--r--Build/source/texk/lcdf-typetools/tests/tmf.pfa185
-rw-r--r--Build/source/texk/lcdf-typetools/tests/tmf.pfbbin7201 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/tests/tmf.tables10
-rwxr-xr-xBuild/source/texk/lcdf-typetools/tests/ttf.test48
-rw-r--r--Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa180
-rw-r--r--Build/source/texk/lcdf-typetools/tests/uhv_dl.pfbbin7056 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/tests/uhv_dl.ps208
-rw-r--r--Build/source/texk/lcdf-typetools/tests/uhv_re.afm254
-rw-r--r--Build/source/texk/lcdf-typetools/tests/uhv_re.pfa901
-rw-r--r--Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfbbin27330 -> 0 bytes
-rw-r--r--Build/source/texk/lcdf-typetools/version.ac11
232 files changed, 0 insertions, 109839 deletions
diff --git a/Build/source/texk/lcdf-typetools/ChangeLog b/Build/source/texk/lcdf-typetools/ChangeLog
deleted file mode 100644
index b846e857844..00000000000
--- a/Build/source/texk/lcdf-typetools/ChangeLog
+++ /dev/null
@@ -1,221 +0,0 @@
-2019-01-28 Akira Kakuto <kakuto@w32tex.org>
-
- Import lcdf-typetools-2.108.
- * version.ac: Adapted.
-
-2018-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import lcdf-typetools-2.107.
- * version.ac: Adapted.
-
-2017-03-27 Karl Berry <karl@freefriends.org>
-
- * Makefile.am (AM_TESTS_ENVIRONMENT): use instead of TESTS_ENVIRONMENT.
-
-2016-06-30 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * tests/[uhv_dl.pfa, uhv_dl.pfb, uhv_dl.ps, Ant.pfb, tmf.pfa, tmf.pfb]:
- Update for version 2.106.
-
-2016-06-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import lcdf-typetools-2.106.
- * configure.ac, version.ac: Adapted.
-
-2016-02-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * Makefile.am, configure.ac: New convention.
-
-2015-09-26 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.105.
- * version.ac: Adapted.
-
-2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Use the fragment ../../am/dist_hook.am.
-
-2014-07-08 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.104.
- * version.ac: Adapted.
-
-2014-07-07 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.103.
- * version.ac: Adapted.
-
-2014-07-05 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.102.
- * version.ac: Adapted.
-
-2014-06-17 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.101.
- * version.ac, tests/uhv_re.afm: Adapted.
-
-2014-01-09 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.100.
- * configure.ac, version.ac: Adapted.
-
-2013-09-11 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * configure.ac: Prepare for SELFAUTOGRANDPARENT in TL'14.
-
-2013-09-10 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.99.
- * version.ac: Adapted.
-
-2013-09-02 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Drop ACLOCAL_AMFLAGS.
- * configure.ac: Use AC_CONFIG_MACRO_DIRS.
-
-2013-04-11 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.98.
- * version.ac, configure.ac: Adapted.
-
-2012-12-30 Karl Berry <karl@tug.org>
-
- * configure.ac (AC_CONFIG_HEADERS): use instead of AM_CONFIG_HEADER,
- which was removed in automake-1.13.
-
-2012-10-26 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.97.
- * version.ac, configure.ac: Adapted.
-
-2012-10-23 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * tests/tfm.test: Add to PATH because otftotfm may need to run
- the uninstalled version of cfftot1, t1dotlessj, or ttftotype42.
-
-2012-10-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * lcdf-typetools-2.95-PATCHES/patch-30-W32TeX:
- * lcdf-typetools-2.95/otftotfm/automatic.cc:
- use a texmf.cnf variable jtex_filetype to distinguish TeX Live and
- W32TeX.
-
-2012-09-25 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.95, now into subdirectory.
- * version.ac: Adapted.
- * Makefile.am, configure.ac: Adapted to the new layout.
- * tests/{t1,tfm,ttf}.test: Adapted to the new layout.
-
-2012-08-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * tfm.test: New shell script for an additional test.
- * tests/antpolt-regular.otf, tests/texnansx.enc,
- tests/Ant.{enc,map,pfb,pl}: Tfm test input and expected output.
- * Makefile.am: Add the additional test and its data.
-
-2012-08-15 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * tests/t1.test tests/ttf.test: New shell scripts for tests.
- * tests/t2c.enc, tests/uhvrrc8a.pfb, tests/uhv_dl.{pfa,pfb,ps},
- tests/uhv_re.{afm,pfa}: T1 test input and expected output.
- * tests/FonetikaDaniaIwonaeBold.ttf, tests/texmfhome.otf,
- tests/Fon.{post,t42}, tests/tmf.{info,pfa,pfb,tables}:
- Ttf test input and expected output.
- * Makefile.am: Add the tests and their data.
-
-2012-08-05 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.94.
- * version.ac: Adapted.
- * configure.ac: Adapted.
-
-2011-12-22 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Replace DISTCHECK_CONFIGURE_FLAGS by
- AM_DISTCHECK_CONFIGURE_FLAGS (for automake-1.11.2).
-
-2011-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am (DISTCLEANFILES): Add CXXLD.sh.
-
-2011-09-07 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * Makefile.am: Avoid pkgdata_DATA in order not to install an
- empty $(pkgdatadir).
-
-2011-08-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.92.
- * version.ac: Adapt.
-
-2011-06-06 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.90.
- * version.ac: New file defining the lcdf-typetools version.
- * configure.ac: Adapt. Define SHAREDIR as "/nonesuch" to avoid
- useless build paths stored in the otftotfm binary.
-
-2011-03-09 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.88.
- * configure.ac, Makefile.am: Adapt.
-
-2010-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.85.
- * configure.ac, Makefile.am: Adapt.
-
-2010-06-07 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * configure.ac: Using AC_C_INLINE, there is no need to get rid
- of a possible inline macro under C++.
-
-2010-04-26 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.83.
- * configure.ac, Makefile.am: Adapt.
-
-2010-02-21 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * include/efont/otfdata.hh [WIN32]: From lcdf-typetools-2.83pre.
- * configure.ac: Fixed typo in generated AC_DEFINE descriptions.
-
-2010-02-21 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Various MinGW32 (cross) build fixes.
- * configure.ac, include/efont/otfdata.hh:
- MinGW32 has <sys/param.h> but also needs <winsock2.h>.
- MinGW32 uses <windows.h> instead of <win32lib.h>.
- * configure.ac (LIBS) [WIN32]: Add -lwsock32.
-
- * t1rawafm/t1rawafm.cc: Do not define away 'std'.
- * t1testpage/t1testpage.cc: Do not define away 'std'.
- * ttftotype42/ttftotype42.cc (do_file): Remove 'if(binary)'.
-
-2010-02-20 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * configure.ac: Don't fail configure if not building lcdf-typetools.
-
-2009-09-03 Karl Berry <karl@tug.org>
-
- * configure.ac: AC_DEFINE(HAVE_KPATHSEA) if we have it, else
- kpse stuff not really enabled, e.g., glyphlist.txt and
- texnansx.enc not found
- tlbuild mail from Jown Owens, 31 Aug 2009 14:34:39.
-
-2009-06-19 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * configure.ac: enable compiler warnings (TeX Live style).
- * liblcdf/clp.c (Clp_OptionChar, finish_string_list): declare
- as static.
-
-2009-04-22 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Adapt to TL2009 build system.
-
-
-
-Copyright (C) 2009-2012 Peter Breitenlohner <tex-live@tug.org>
-You may freely use, modify and/or distribute this file.
diff --git a/Build/source/texk/lcdf-typetools/Makefile.am b/Build/source/texk/lcdf-typetools/Makefile.am
deleted file mode 100644
index 10019fa2d37..00000000000
--- a/Build/source/texk/lcdf-typetools/Makefile.am
+++ /dev/null
@@ -1,54 +0,0 @@
-## $Id$
-## Makefile.am for the TeX Live subdirectory texk/lcdf-typetools/
-##
-## Copyright 2017 Karl Berry <tex-live@tug.org>
-## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
-## You may freely use, modify and/or distribute this file.
-##
-# Adapted for TeX Live from lcdf-typetools-src/Makefile.am
-# Copyright (c) 2003-2011 Eddie Kohler
-
-## We use the original lcdf-typetools source tree.
-SUBDIRS = . $(LCDF_TYPETOOLS_TREE)
-DIST_SUBDIRS = $(SUBDIRS)
-
-## Patches applied to the original source tree
-EXTRA_DIST = TLpatches
-
-## We must explicitly distribute some top-level files.
-EXTRA_DIST += \
- $(LCDF_TYPETOOLS_TREE)/autoconf.h.in \
- $(LCDF_TYPETOOLS_TREE)/configure.ac \
- $(LCDF_TYPETOOLS_TREE)/m4
-
-# Files not to be distributed
-include $(srcdir)/../../am/dist_hook.am
-
-all-local: config.force
-
-config.force: $(KPATHSEA_DEPEND)
- echo timestamp >config.force
- $(SHELL) ./config.status --recheck
-
-DISTCLEANFILES = config.force CXXLD.sh
-
-## Tests
-AM_TESTS_ENVIRONMENT = LCDF_TYPETOOLS_TREE=$(LCDF_TYPETOOLS_TREE); export LCDF_TYPETOOLS_TREE;
-
-TESTS = tests/t1.test tests/tfm.test tests/ttf.test
-EXTRA_DIST += $(TESTS)
-
-## tests/t1.test
-EXTRA_DIST += tests/t2c.enc tests/uhvrrc8a.pfb \
- tests/uhv_dl.pfa tests/uhv_dl.pfb tests/uhv_dl.ps \
- tests/uhv_re.afm tests/uhv_re.pfa
-DISTCLEANFILES += uhv*
-## tests/tfm.test
-EXTRA_DIST += tests/antpolt-regular.otf tests/texnansx.enc \
- tests/Ant.enc tests/Ant.map tests/Ant.pfb tests/Ant.pl
-DISTCLEANFILES += Ant* a_enhg3c.enc
-## tests/ttf.test
-EXTRA_DIST += tests/FonetikaDaniaIwonaeBold.ttf tests/texmfhome.otf \
- tests/Fon.post tests/Fon.t42 \
- tests/tmf.info tests/tmf.pfa tests/tmf.pfb tests/tmf.tables
-DISTCLEANFILES += Fon* tmf.*
diff --git a/Build/source/texk/lcdf-typetools/Makefile.in b/Build/source/texk/lcdf-typetools/Makefile.in
deleted file mode 100644
index 4a9543efdd6..00000000000
--- a/Build/source/texk/lcdf-typetools/Makefile.in
+++ /dev/null
@@ -1,1258 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Adapted for TeX Live from lcdf-typetools-src/Makefile.am
-# Copyright (c) 2003-2011 Eddie Kohler
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(am__DIST_COMMON)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- cscope check recheck distdir distdir-am dist dist-all \
- distcheck
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
- autoconf.h.in
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-am__tty_colors_dummy = \
- mgn= red= grn= lgn= blu= brg= std=; \
- am__color_tests=no
-am__tty_colors = { \
- $(am__tty_colors_dummy); \
- if test "X$(AM_COLOR_TESTS)" = Xno; then \
- am__color_tests=no; \
- elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
- am__color_tests=yes; \
- elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
- am__color_tests=yes; \
- fi; \
- if test $$am__color_tests = yes; then \
- red=''; \
- grn=''; \
- lgn=''; \
- blu=''; \
- mgn=''; \
- brg=''; \
- std=''; \
- fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__recheck_rx = ^[ ]*:recheck:[ ]*
-am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
-am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
- recheck = 1; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- { \
- if ((getline line2 < ($$0 ".log")) < 0) \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
- { \
- recheck = 0; \
- break; \
- } \
- else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
- { \
- break; \
- } \
- }; \
- if (recheck) \
- print $$0; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
- print "fatal: making $@: " msg | "cat >&2"; \
- exit 1; \
-} \
-function rst_section(header) \
-{ \
- print header; \
- len = length(header); \
- for (i = 1; i <= len; i = i + 1) \
- printf "="; \
- printf "\n\n"; \
-} \
-{ \
- copy_in_global_log = 1; \
- global_test_result = "RUN"; \
- while ((rc = (getline line < ($$0 ".trs"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".trs"); \
- if (line ~ /$(am__global_test_result_rx)/) \
- { \
- sub("$(am__global_test_result_rx)", "", line); \
- sub("[ ]*$$", "", line); \
- global_test_result = line; \
- } \
- else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
- copy_in_global_log = 0; \
- }; \
- if (copy_in_global_log) \
- { \
- rst_section(global_test_result ": " $$0); \
- while ((rc = (getline line < ($$0 ".log"))) != 0) \
- { \
- if (rc < 0) \
- fatal("failed to read from " $$0 ".log"); \
- print line; \
- }; \
- printf "\n"; \
- }; \
- close ($$0 ".trs"); \
- close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
- --color-tests "$$am__color_tests" \
- --enable-hard-errors "$$am__enable_hard_errors" \
- --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test. Creates the
-# directory for the log if needed. Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log. Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup); \
-$(am__vpath_adj_setup) $(am__vpath_adj) \
-$(am__tty_colors); \
-srcdir=$(srcdir); export srcdir; \
-case "$@" in \
- */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
- *) am__odir=.;; \
-esac; \
-test "x$$am__odir" = x"." || test -d "$$am__odir" \
- || $(MKDIR_P) "$$am__odir" || exit $$?; \
-if test -f "./$$f"; then dir=./; \
-elif test -f "$$f"; then dir=; \
-else dir="$(srcdir)/"; fi; \
-tst=$$dir$$f; log='$@'; \
-if test -n '$(DISABLE_HARD_ERRORS)'; then \
- am__enable_hard_errors=no; \
-else \
- am__enable_hard_errors=yes; \
-fi; \
-case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
- am__expect_failure=yes;; \
- *) \
- am__expect_failure=no;; \
-esac; \
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed). The result is saved in the shell variable
-# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
- bases='$(TEST_LOGS)'; \
- bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
- bases=`echo $$bases`
-AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
-RECHECK_LOGS = $(TEST_LOGS)
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
- $(TEST_LOG_FLAGS)
-am__set_b = \
- case '$@' in \
- */*) \
- case '$*' in \
- */*) b='$*';; \
- *) b=`echo '$@' | sed 's/\.log$$//'`; \
- esac;; \
- *) \
- b='$*';; \
- esac
-am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
- $(srcdir)/Makefile.in $(srcdir)/autoconf.h.in \
- $(top_srcdir)/../../build-aux/compile \
- $(top_srcdir)/../../build-aux/config.guess \
- $(top_srcdir)/../../build-aux/config.sub \
- $(top_srcdir)/../../build-aux/install-sh \
- $(top_srcdir)/../../build-aux/ltmain.sh \
- $(top_srcdir)/../../build-aux/missing \
- $(top_srcdir)/../../build-aux/test-driver \
- ../../build-aux/ar-lib ../../build-aux/compile \
- ../../build-aux/config.guess ../../build-aux/config.sub \
- ../../build-aux/depcomp ../../build-aux/install-sh \
- ../../build-aux/ltmain.sh ../../build-aux/missing \
- ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-# Exists only to be overridden by the user if desired.
-AM_DISTCHECK_DVI_TARGET = dvi
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = . $(LCDF_TYPETOOLS_TREE)
-DIST_SUBDIRS = $(SUBDIRS)
-EXTRA_DIST = TLpatches $(LCDF_TYPETOOLS_TREE)/autoconf.h.in \
- $(LCDF_TYPETOOLS_TREE)/configure.ac $(LCDF_TYPETOOLS_TREE)/m4 \
- $(TESTS) tests/t2c.enc tests/uhvrrc8a.pfb tests/uhv_dl.pfa \
- tests/uhv_dl.pfb tests/uhv_dl.ps tests/uhv_re.afm \
- tests/uhv_re.pfa tests/antpolt-regular.otf tests/texnansx.enc \
- tests/Ant.enc tests/Ant.map tests/Ant.pfb tests/Ant.pl \
- tests/FonetikaDaniaIwonaeBold.ttf tests/texmfhome.otf \
- tests/Fon.post tests/Fon.t42 tests/tmf.info tests/tmf.pfa \
- tests/tmf.pfb tests/tmf.tables
-NEVER_DIST = `find . $(NEVER_NAMES)`
-NEVER_NAMES = -name .svn
-NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
-NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
-DISTCLEANFILES = config.force CXXLD.sh uhv* Ant* a_enhg3c.enc Fon* \
- tmf.*
-AM_TESTS_ENVIRONMENT = LCDF_TYPETOOLS_TREE=$(LCDF_TYPETOOLS_TREE); export LCDF_TYPETOOLS_TREE;
-TESTS = tests/t1.test tests/tfm.test tests/ttf.test
-all: autoconf.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .log .test .test$(EXEEXT) .trs
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
- esac;
-$(srcdir)/../../am/dist_hook.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-autoconf.h: stamp-h1
- @test -f $@ || rm -f stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
-
-stamp-h1: $(srcdir)/autoconf.h.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status autoconf.h
-$(srcdir)/autoconf.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f autoconf.h stamp-h1
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
- test ! -s cscope.files \
- || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
- -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
- rm -f $< $@
- $(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
- @:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
- @$(am__set_TESTS_bases); \
- am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
- redo_bases=`for i in $$bases; do \
- am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
- done`; \
- if test -n "$$redo_bases"; then \
- redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
- redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
- if $(am__make_dryrun); then :; else \
- rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
- fi; \
- fi; \
- if test -n "$$am__remaking_logs"; then \
- echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
- "recursion detected" >&2; \
- elif test -n "$$redo_logs"; then \
- am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
- fi; \
- if $(am__make_dryrun); then :; else \
- st=0; \
- errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
- for i in $$redo_bases; do \
- test -f $$i.trs && test -r $$i.trs \
- || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
- test -f $$i.log && test -r $$i.log \
- || { echo "$$errmsg $$i.log" >&2; st=1; }; \
- done; \
- test $$st -eq 0 || exit 1; \
- fi
- @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
- ws='[ ]'; \
- results=`for b in $$bases; do echo $$b.trs; done`; \
- test -n "$$results" || results=/dev/null; \
- all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
- pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
- fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
- skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
- xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
- xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
- error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
- if test `expr $$fail + $$xpass + $$error` -eq 0; then \
- success=true; \
- else \
- success=false; \
- fi; \
- br='==================='; br=$$br$$br$$br$$br; \
- result_count () \
- { \
- if test x"$$1" = x"--maybe-color"; then \
- maybe_colorize=yes; \
- elif test x"$$1" = x"--no-color"; then \
- maybe_colorize=no; \
- else \
- echo "$@: invalid 'result_count' usage" >&2; exit 4; \
- fi; \
- shift; \
- desc=$$1 count=$$2; \
- if test $$maybe_colorize = yes && test $$count -gt 0; then \
- color_start=$$3 color_end=$$std; \
- else \
- color_start= color_end=; \
- fi; \
- echo "$${color_start}# $$desc $$count$${color_end}"; \
- }; \
- create_testsuite_report () \
- { \
- result_count $$1 "TOTAL:" $$all "$$brg"; \
- result_count $$1 "PASS: " $$pass "$$grn"; \
- result_count $$1 "SKIP: " $$skip "$$blu"; \
- result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
- result_count $$1 "FAIL: " $$fail "$$red"; \
- result_count $$1 "XPASS:" $$xpass "$$red"; \
- result_count $$1 "ERROR:" $$error "$$mgn"; \
- }; \
- { \
- echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
- $(am__rst_title); \
- create_testsuite_report --no-color; \
- echo; \
- echo ".. contents:: :depth: 2"; \
- echo; \
- for b in $$bases; do echo $$b; done \
- | $(am__create_global_log); \
- } >$(TEST_SUITE_LOG).tmp || exit 1; \
- mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
- if $$success; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
- fi; \
- echo "$${col}$$br$${std}"; \
- echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
- echo "$${col}$$br$${std}"; \
- create_testsuite_report --maybe-color; \
- echo "$$col$$br$$std"; \
- if $$success; then :; else \
- echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
- if test -n "$(PACKAGE_BUGREPORT)"; then \
- echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
- fi; \
- echo "$$col$$br$$std"; \
- fi; \
- $$success || exit 1
-
-check-TESTS:
- @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
- @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- trs_list=`for i in $$bases; do echo $$i.trs; done`; \
- log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
- exit $$?;
-recheck: all
- @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
- @set +e; $(am__set_TESTS_bases); \
- bases=`for i in $$bases; do echo $$i; done \
- | $(am__list_recheck_tests)` || exit 1; \
- log_list=`for i in $$bases; do echo $$i.log; done`; \
- log_list=`echo $$log_list`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
- am__force_recheck=am--force-recheck \
- TEST_LOGS="$$log_list"; \
- exit $$?
-.test.log:
- @p='$<'; \
- $(am__set_b); \
- $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
- --log-file $$b.log --trs-file $$b.trs \
- $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
- "$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@ @p='$<'; \
-@am__EXEEXT_TRUE@ $(am__set_b); \
-@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-zstd: distdir
- tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
- $(am__post_remove_distdir)
-
-dist-tarZ: distdir
- @echo WARNING: "Support for distribution archives compressed with" \
- "legacy program 'compress' is deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for shar distribution archives is" \
- "deprecated." >&2
- @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
- shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- *.tar.zst*) \
- zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build/sub \
- && ../../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=../.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
- sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-recursive
-all-am: Makefile autoconf.h all-local
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
- -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
- -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) all check-am install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
- am--refresh check check-TESTS check-am clean clean-cscope \
- clean-generic clean-libtool cscope cscopelist-am ctags \
- ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
- dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \
- distcheck distclean distclean-generic distclean-hdr \
- distclean-libtool distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am recheck tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-dist-hook:
- cd "$(distdir)" && rm -rf $(NEVER_DIST)
-
-# Files not to be distributed
-
-all-local: config.force
-
-config.force: $(KPATHSEA_DEPEND)
- echo timestamp >config.force
- $(SHELL) ./config.status --recheck
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog b/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
deleted file mode 100644
index a626ca3bda3..00000000000
--- a/Build/source/texk/lcdf-typetools/TLpatches/ChangeLog
+++ /dev/null
@@ -1,196 +0,0 @@
-2019-01-30 Akira Kakuto <kakuto@w32tex.org>
-
- * patch-03-w32: Remove wrong changes.
-
-2019-01-28 Akira Kakuto <kakuto@w32tex.org>
-
- Import lcdf-typetools-2.108.
- * patch-02-mingw64, patch-03-w32: Adapted.
-
-2018-02-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import lcdf-typetools-2.107.
- * patch-02-mingw64, patch-03-w32: Adapted.
-
-2016-06-22 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- Import lcdf-typetools-2.106.
- * patch-02-mingw64: Adapted.
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX:
- Unified as patch-03-w32.
-
-2015-09-26 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.105.
- * patch-01-win64 (removed): Now in distribution.
- * patch-02-mingw64, patch-20-TL-binary, patch-21-TL-paths,
- patch-30-W32TeX: Adapted.
-
-2014-11-06 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-02-mingw64 (new): Avoid MinGW64 warnings.
-
-2014-11-05 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-01-win64 (new): Required for MinGW64.
-
-2014-07-08 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.104.
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2014-07-07 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.103.
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2014-07-05 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.102.
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2014-06-17 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.101.
- * patch-10-SELFAUTO (removed): Now in distribution.
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2014-01-09 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.100.
-
- * patch-10-SELFAUTO, patch-20-TL-binary, patch-21-TL-paths,
- patch-30-W32TeX: Adapted.
-
-2013-09-17 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * patch-30-W32TeX: No need to #undefine max/min, instead
- compile with -DNOMINMAX.
-
-2013-09-11 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-10-SELFAUTO (new): Prepare for SELFAUTOGRANDPARENT.
-
- * patch-30-W32TeX: Now for Visual Studio 2010 (from Akira).
-
-2013-09-10 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.99.
-
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2013-04-11 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.98.
-
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2012-10-26 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.97.
- * patch-07-typos, patch-08-future, patch-31-WIN32 (removed):
- Now all distributed.
-
- * patch-20-TL-binary, patch-21-TL-paths, patch-30-W32TeX: Adapted.
-
-2012-10-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * patch-30-W32TeX: use a texmf.cnf variable jtex_filetype to
- distinguish TeX Live and W32TeX.
-
-2012-09-25 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.95.
- * patch-01-const, patch-02-WIN32, patch-03-manpage,
- patch-04-PFB_OPT, patch-05-backport, patch-06-enc_format
- (removed): Now all distributed.
-
- * patch-07-typos (new): Fix some typos.
- * patch-08-future (new): Use distributed top-level Makefile.
- * patch-20-TL-binary: Adapted.
- * patch-21-TL-paths (new): Use bin/win32/mktexupd.exe.
- * patch-30-W32TeX, patch-31-WIN32: Adapted.
-
-2012-09-24 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * patch-31-WIN32: Update using _tempnam().
-
-2012-09-21 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
-
- * patch-31-WIN32 (new): Avoid that WIN32 puts temporary files
- into the root directory resulting in 'Permission denied'.
-
-2012-08-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-06-enc_format (new): Bug fix.
- * patch-30-W32TeX: Adapted.
-
-2012-08-15 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-02-WIN32: Adapted from upstream.
- * patch-05-backport (new): From upstream.
-
-2012-08-14 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-03-manpage (new): Fix manpages.
- * patch-04-PFB_OPT (new): Correctly handle '-b' option.
-
-2012-08-13 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-02-WIN32: More WIN32.
- * patch-20-TL-binary: More binary mode for output files.
- * patch-30-W32TeX: W32TeX specific changes (from Akira).
-
-2012-08-11 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-02-WIN32 (new): Adapt for WIN32.
- * patch-20-TL-binary (new): Use binary mode for output files.
- From Akira Kakuto <kakuto@fuk.kindai.ac.jp> (W32TeX).
-
-2012-08-05 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.94.
- * patch-01-const: Adapted
-
-2011-09-25 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-01-const (new): Avoid cast from const to non-const.
-
-2011-08-16 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.92.
- * patch-01-void-func (removed): Now distributed.
-
-2011-06-14 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-01-void-func (new): Patch from
- Vladimir Volovich <vvv@vsu.ru>.
-
-2011-06-06 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.90.
- * patch-03-warning (removed): Now distributed.
-
-2011-03-09 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.88.
- * patch-02-warnings (removed): Now distributed.
-
- * patch-03-warning (new): Avoid `uninitialized' warning (the
- compiler may not realize that this actually can'thappen).
-
-2011-03-08 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- * patch-02-warnings (new): Remove unused variables; add explicit
- cast for `-1' used as `uint32_t'.
-
-2010-10-04 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.85.
- * patch-01-otftotfm-Makefile (removed): Now distributed.
-
-2010-04-26 Peter Breitenlohner <peb@mppmu.mpg.de>
-
- Import lcdf-typetools-2.83.
- * patch-01-otftotfm-Makefile (new): Adapt otftotfm/Makefile.am.
-
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes b/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
deleted file mode 100644
index 8de5cfa9857..00000000000
--- a/Build/source/texk/lcdf-typetools/TLpatches/TL-Changes
+++ /dev/null
@@ -1,13 +0,0 @@
-Changes applied to the lcdf-typetools tree as obtained from:
- http://www.lcdf.org/type/lcdf-typetools-2.108.tar.gz
-
-Removed:
- aclocal.m4
- compile
- configure
- depcomp
- install-sh
- missing
-
-Created Autoconf macro file ../m4/ac_cxx_template_objs.m4
- adapting code in configure.ac.
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64 b/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
deleted file mode 100644
index 401b55ace58..00000000000
--- a/Build/source/texk/lcdf-typetools/TLpatches/patch-02-mingw64
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur lcdf-typetools-2.108/include/config.h lcdf-typetools-src/include/config.h
---- lcdf-typetools-2.108/include/config.h Mon Jan 28 03:39:19 2019
-+++ lcdf-typetools-src/include/config.h Mon Jan 28 07:59:03 2019
-@@ -7,6 +7,7 @@
- #ifdef WIN32
- # ifdef __MINGW32__
- # include <winsock2.h>
-+# include <windows.h>
- # else
- # include <win32lib.h>
- # endif
diff --git a/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32 b/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
deleted file mode 100644
index e01b835b9db..00000000000
--- a/Build/source/texk/lcdf-typetools/TLpatches/patch-03-w32
+++ /dev/null
@@ -1,200 +0,0 @@
-diff -ur lcdf-typetools-2.108/liblcdf/filename.cc lcdf-typetools-src/liblcdf/filename.cc
---- lcdf-typetools-2.108/liblcdf/filename.cc Mon Jan 28 03:39:19 2019
-+++ lcdf-typetools-src/liblcdf/filename.cc Thu Jan 31 06:16:24 2019
-@@ -126,5 +126,5 @@
- if (_actual || !_path)
- return _actual;
- else
-- return fopen(_path.c_str(), binary ? "wb" : "w");
-+ return fopen(_path.c_str(), "wb");
- }
-diff -ur lcdf-typetools-2.108/otftotfm/automatic.cc lcdf-typetools-src/otftotfm/automatic.cc
---- lcdf-typetools-2.108/otftotfm/automatic.cc Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/otftotfm/automatic.cc Thu Jan 31 06:35:14 2019
-@@ -39,7 +39,9 @@
- #include <algorithm>
-
- #ifdef WIN32
--# define mkdir(dir, access) mkdir(dir)
-+# include <io.h>
-+# include <direct.h>
-+# define mkdir(dir, access) _mkdir(dir)
- # define COPY_CMD "copy"
- # define CMD_SEP "&"
- #else
-@@ -124,7 +126,18 @@
- static void
- find_writable_texdir(ErrorHandler *errh, const char *)
- {
-+#if defined(W32TEX)
-+// W32TeX does not have TEXMFVAR
-+ char *p = kpsei_var_value("TEXMFVAR");
-+ if (p == NULL) // W32TeX
-+ look_for_writable_texdir("$TEXMFLOCAL", true);
-+ else { // TeXLive
-+ free (p);
-+ look_for_writable_texdir("$TEXMFVAR", true);
-+ }
-+#else
- look_for_writable_texdir("$TEXMFVAR", true);
-+#endif
- if (!writable_texdir)
- look_for_writable_texdir("$VARTEXMF", false);
- if (!writable_texdir)
-@@ -313,7 +326,7 @@
- String ls_r = writable_texdir + "ls-R";
- bool success = false;
- if (access(ls_r.c_str(), R_OK) >= 0) // make sure it already exists
-- if (FILE *f = fopen(ls_r.c_str(), "a")) {
-+ if (FILE *f = fopen(ls_r.c_str(), "ab")) {
- fprintf(f, "./%s:\n%s\n", directory.c_str(), file.c_str());
- success = true;
- fclose(f);
-@@ -323,7 +336,11 @@
- if (!success && writable_texdir.find_left('\'') < 0 && directory.find_left('\'') < 0 && file.find_left('\'') < 0) {
- // look for mktexupd script
- if (!mktexupd_tried) {
-+#ifdef _WIN32
-+ mktexupd = "mktexupd.exe";
-+#else
- mktexupd = kpsei_string(kpsei_find_file("mktexupd", KPSEI_FMT_WEB2C));
-+#endif
- mktexupd_tried = true;
- }
-
-@@ -677,7 +694,7 @@
- #endif
- {
- fclose(f);
-- f = fopen(map_file.c_str(), "w");
-+ f = fopen(map_file.c_str(), "wb");
- fd = fileno(f);
- }
-
-diff -ur lcdf-typetools-2.108/otftotfm/kpseinterface.c lcdf-typetools-src/otftotfm/kpseinterface.c
---- lcdf-typetools-2.108/otftotfm/kpseinterface.c Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/otftotfm/kpseinterface.c Thu Jan 31 06:37:34 2019
-@@ -21,6 +21,9 @@
- #include <kpathsea/expand.h>
- #include <kpathsea/c-pathch.h>
- #include <kpathsea/tex-file.h>
-+#ifdef W32TEX
-+#include <kpathsea/variable.h>
-+#endif
- #include "kpseinterface.h"
-
- int kpsei_env_sep_char = ENV_SEP;
-@@ -86,3 +89,11 @@
- {
- kpathsea_debug = flags;
- }
-+
-+#ifdef W32TEX
-+char*
-+kpsei_var_value(const char *name)
-+{
-+ return kpse_var_value(name);
-+}
-+#endif
-diff -ur lcdf-typetools-2.108/otftotfm/kpseinterface.h lcdf-typetools-src/otftotfm/kpseinterface.h
---- lcdf-typetools-2.108/otftotfm/kpseinterface.h Thu Jun 23 21:25:52 2016
-+++ lcdf-typetools-src/otftotfm/kpseinterface.h Thu Jan 31 06:38:40 2019
-@@ -13,6 +13,10 @@
- char* kpsei_find_file(const char* name, int format);
- void kpsei_set_debug_flags(unsigned flags);
-
-+#ifdef W32TEX
-+char* kpsei_var_value(const char *name);
-+#endif
-+
- #ifdef __cplusplus
- }
- #endif
-diff -ur lcdf-typetools-2.108/otftotfm/otftotfm.cc lcdf-typetools-src/otftotfm/otftotfm.cc
---- lcdf-typetools-2.108/otftotfm/otftotfm.cc Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/otftotfm/otftotfm.cc Thu Jan 31 06:40:59 2019
-@@ -63,6 +63,9 @@
- #ifdef HAVE_FCNTL_H
- # include <fcntl.h>
- #endif
-+#ifdef _MSC_VER
-+# include <io.h>
-+#endif
-
- using namespace Efont;
-
-@@ -590,7 +593,7 @@
-
- if (verbose)
- errh->message("creating %s", filename.c_str());
-- FILE *f = fopen(filename.c_str(), "w");
-+ FILE *f = fopen(filename.c_str(), "wb");
- if (!f) {
- errh->error("%s: %s", filename.c_str(), strerror(errno));
- return;
-@@ -1048,7 +1051,7 @@
- #endif
- {
- fclose(f);
-- f = fopen(filename.c_str(), "w");
-+ f = fopen(filename.c_str(), "wb");
- fd = fileno(f);
- }
-
-diff -ur lcdf-typetools-2.108/t1dotlessj/t1dotlessj.cc lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
---- lcdf-typetools-2.108/t1dotlessj/t1dotlessj.cc Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/t1dotlessj/t1dotlessj.cc Thu Jan 31 06:43:35 2019
-@@ -410,10 +410,10 @@
- // write it to output
- if (!outputf)
- outputf = stdout;
-- if (binary) {
- #if defined(_MSDOS) || defined(_WIN32)
-- _setmode(_fileno(outputf), _O_BINARY);
-+ _setmode(_fileno(outputf), _O_BINARY);
- #endif
-+ if (binary) {
- Type1PFBWriter w(outputf);
- dotless_font->write(w);
- } else {
-diff -ur lcdf-typetools-2.108/t1rawafm/t1rawafm.cc lcdf-typetools-src/t1rawafm/t1rawafm.cc
---- lcdf-typetools-2.108/t1rawafm/t1rawafm.cc Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/t1rawafm/t1rawafm.cc Thu Jan 31 06:44:47 2019
-@@ -359,6 +359,9 @@
- if (!outf)
- errh->fatal("%s: %s", output_file, strerror(errno));
- }
-+#if defined(_MSDOS) || defined(_WIN32)
-+ _setmode(_fileno(outf), _O_BINARY);
-+#endif
-
- write_afm(outf, font);
-
-diff -ur lcdf-typetools-2.108/t1reencode/t1reencode.cc lcdf-typetools-src/t1reencode/t1reencode.cc
---- lcdf-typetools-2.108/t1reencode/t1reencode.cc Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/t1reencode/t1reencode.cc Thu Jan 31 06:46:38 2019
-@@ -1094,10 +1094,10 @@
- if (!outf)
- errh->fatal("%s: %s", output_file, strerror(errno));
- }
-- if (binary) {
- #if defined(_MSDOS) || defined(_WIN32)
-- _setmode(_fileno(outf), _O_BINARY);
-+ _setmode(_fileno(outf), _O_BINARY);
- #endif
-+ if (binary) {
- Type1PFBWriter w(outf);
- font->write(w);
- } else {
-diff -ur lcdf-typetools-2.108/t1testpage/t1testpage.cc lcdf-typetools-src/t1testpage/t1testpage.cc
---- lcdf-typetools-2.108/t1testpage/t1testpage.cc Mon Jan 28 03:39:20 2019
-+++ lcdf-typetools-src/t1testpage/t1testpage.cc Thu Jan 31 06:47:51 2019
-@@ -665,6 +665,9 @@
- if (!outf)
- errh->fatal("%s: %s", output_file, strerror(errno));
- }
-+#if defined(_MSDOS) || defined(_WIN32)
-+ _setmode(_fileno(outf), _O_BINARY);
-+#endif
-
- //font->undo_synthetic();
diff --git a/Build/source/texk/lcdf-typetools/ac/lcdf-typetools.ac b/Build/source/texk/lcdf-typetools/ac/lcdf-typetools.ac
deleted file mode 100644
index 7aaff4c33af..00000000000
--- a/Build/source/texk/lcdf-typetools/ac/lcdf-typetools.ac
+++ /dev/null
@@ -1,15 +0,0 @@
-## Define configure options for lcdf-typetools. Extracted from configure.ac
-## for ease of building TeX Live.
-m4_define_default([kpse_indent_26], [26])[]dnl
-m4_define([kpse_lcdf_typetools_progs], [cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42])[]dnl
-AC_FOREACH([Kpse_Prog], kpse_lcdf_typetools_progs,
- [AC_ARG_ENABLE(Kpse_Prog,
- AS_HELP_STRING([--disable-]Kpse_Prog,
- [do not build the ]Kpse_Prog[ program],
- kpse_indent_26))])
-m4_define([kpse_otftotfm_auto_opts], [cfftot1 t1dotlessj ttftotype42 updmap])[]dnl
-AC_FOREACH([Kpse_Opt], kpse_otftotfm_auto_opts,
- [AC_ARG_ENABLE(Kpse_Opt,
- AS_HELP_STRING([--disable-auto-]Kpse_Opt,
- [disable running ]Kpse_Opt[ from otftotfm],
- kpse_indent_26))])
diff --git a/Build/source/texk/lcdf-typetools/ac/withenable.ac b/Build/source/texk/lcdf-typetools/ac/withenable.ac
deleted file mode 100644
index 86de85c9e2e..00000000000
--- a/Build/source/texk/lcdf-typetools/ac/withenable.ac
+++ /dev/null
@@ -1,8 +0,0 @@
-## texk/lcdf-typetools/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/lcdf-typetools/
-dnl
-dnl Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
-dnl You may freely use, modify and/or distribute this file.
-dnl
-## configure options and TL libraries required for lcdf-typetools
-KPSE_ENABLE_PROG([lcdf-typetools], [kpathsea])
-m4_include(kpse_TL[texk/lcdf-typetools/ac/lcdf-typetools.ac])
diff --git a/Build/source/texk/lcdf-typetools/aclocal.m4 b/Build/source/texk/lcdf-typetools/aclocal.m4
deleted file mode 100644
index 9a16a4bdc52..00000000000
--- a/Build/source/texk/lcdf-typetools/aclocal.m4
+++ /dev/null
@@ -1,1179 +0,0 @@
-# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.16'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.3], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.3])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
- [$1], [CXX], [depcc="$CXX" am_compiler_list=],
- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
- [$1], [UPC], [depcc="$UPC" am_compiler_list=],
- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
- [--enable-dependency-tracking],
- [do not reject slow dependency extractors])
-AS_HELP_STRING(
- [--disable-dependency-tracking],
- [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- # TODO: see whether this extra hack can be removed once we start
- # requiring Autoconf 2.70 or later.
- AS_CASE([$CONFIG_FILES],
- [*\'*], [eval set x "$CONFIG_FILES"],
- [*], [set x $CONFIG_FILES])
- shift
- # Used to flag and report bootstrapping failures.
- am_rc=0
- for am_mf
- do
- # Strip MF so we end up with the name of the file.
- am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile which includes
- # dependency-tracking related rules and includes.
- # Grep'ing the whole file directly is not great: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
- || continue
- am_dirpart=`AS_DIRNAME(["$am_mf"])`
- am_filepart=`AS_BASENAME(["$am_mf"])`
- AM_RUN_LOG([cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles]) || am_rc=$?
- done
- if test $am_rc -ne 0; then
- AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. If GNU make was not used, consider
- re-running the configure script with MAKE="gmake" (or whatever is
- necessary). You can also try re-running configure with the
- '--disable-dependency-tracking' option to at least be able to build
- the package (albeit without support for automatic dependency tracking).])
- fi
- AS_UNSET([am_dirpart])
- AS_UNSET([am_filepart])
- AS_UNSET([am_mf])
- AS_UNSET([am_rc])
- rm -f conftest-deps.mk
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking is enabled.
-# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
-# order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi
-dnl The trailing newline in this macro's definition is deliberate, for
-dnl backward compatibility and to allow trailing 'dnl'-style comments
-dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
-])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless 'enable' is passed literally.
-# For symmetry, 'disable' may be passed as well. Anyway, the user
-# can override the default with the --enable/--disable switch.
-AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
- [enable], [m4_define([am_maintainer_other], [disable])],
- [disable], [m4_define([am_maintainer_other], [enable])],
- [m4_define([am_maintainer_other], [enable])
- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode's default is 'disable' unless 'enable' is passed
- AC_ARG_ENABLE([maintainer-mode],
- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
- am_maintainer_other[ make rules and dependencies not useful
- (and sometimes confusing) to the casual installer])],
- [USE_MAINTAINER_MODE=$enableval],
- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST([MAINT])dnl
-]
-)
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check whether make has an 'include' directive that can support all
-# the idioms we need for our automatic dependency tracking code.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
-cat > confinc.mk << 'END'
-am__doit:
- @echo this is the am__doit target >confinc.out
-.PHONY: am__doit
-END
-am__include="#"
-am__quote=
-# BSD make does it like this.
-echo '.include "confinc.mk" # ignored' > confmf.BSD
-# Other make implementations (GNU, Solaris 10, AIX) do it like this.
-echo 'include confinc.mk # ignored' > confmf.GNU
-_am_result=no
-for s in GNU BSD; do
- AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
- AS_CASE([$?:`cat confinc.out 2>/dev/null`],
- ['0:this is the am__doit target'],
- [AS_CASE([$s],
- [BSD], [am__include='.include' am__quote='"'],
- [am__include='include' am__quote=''])])
- if test "$am__include" != "#"; then
- _am_result="yes ($s style)"
- break
- fi
-done
-rm -f confinc.* confmf.*
-AC_MSG_RESULT([${_am_result}])
-AC_SUBST([am__include])])
-AC_SUBST([am__quote])])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- MISSING="\${SHELL} '$am_aux_dir/missing'"
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2020 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/ac_cxx_template_objs.m4])
-m4_include([../../m4/kpse-common.m4])
-m4_include([../../m4/kpse-cxx-hack.m4])
-m4_include([../../m4/kpse-kpathsea-flags.m4])
-m4_include([../../m4/kpse-warnings.m4])
-m4_include([../../m4/kpse-win32.m4])
-m4_include([../../m4/libtool.m4])
-m4_include([../../m4/ltoptions.m4])
-m4_include([../../m4/ltsugar.m4])
-m4_include([../../m4/ltversion.m4])
-m4_include([../../m4/lt~obsolete.m4])
diff --git a/Build/source/texk/lcdf-typetools/autoconf.h.in b/Build/source/texk/lcdf-typetools/autoconf.h.in
deleted file mode 100644
index 975c49e35fe..00000000000
--- a/Build/source/texk/lcdf-typetools/autoconf.h.in
+++ /dev/null
@@ -1,330 +0,0 @@
-/* autoconf.h.in. Generated from configure.ac by autoheader. */
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Define to 1 if the `closedir' function returns void instead of `int'. */
-#undef CLOSEDIR_VOID
-
-/* Directory for glyphlist.txt files. */
-#undef GLYPHLISTDIR
-
-/* Define if the va_list type is addressable. */
-#undef HAVE_ADDRESSABLE_VA_LIST
-
-/* Define to incldue Adobe code in output fonts. */
-#undef HAVE_ADOBE_CODE
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define to 1 if you have the <assert.h> header file. */
-#undef HAVE_ASSERT_H
-
-/* Define to run cfftot1 from otftotfm. */
-#undef HAVE_AUTO_CFFTOT1
-
-/* Define to run t1dotlessj from otftotfm. */
-#undef HAVE_AUTO_T1DOTLESSJ
-
-/* Define to run ttftotype42 from otftotfm. */
-#undef HAVE_AUTO_TTFTOTYPE42
-
-/* Define to run updmap from otftotfm. */
-#undef HAVE_AUTO_UPDMAP
-
-/* Define if strnlen is broken. */
-#undef HAVE_BROKEN_STRNLEN
-
-/* Define if strtod is broken. */
-#undef HAVE_BROKEN_STRTOD
-
-/* Define to 1 if you have the <byteorder.h> header file. */
-#undef HAVE_BYTEORDER_H
-
-/* Define to 1 if you have the `ctime' function. */
-#undef HAVE_CTIME
-
-/* Define to 1 if you have the declaration of `isascii', and to 0 if you
- don't. */
-#undef HAVE_DECL_ISASCII
-
-/* Define to 1 if you have the declaration of `kpse_enc_format', and to 0 if
- you don't. */
-#undef HAVE_DECL_KPSE_ENC_FORMAT
-
-/* Define to 1 if you have the declaration of `kpse_opentype_format', and to 0
- if you don't. */
-#undef HAVE_DECL_KPSE_OPENTYPE_FORMAT
-
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
- don't. */
-#undef HAVE_DECL_STRNLEN
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
- */
-#undef HAVE_DIRENT_H
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define if intXX_t types are not available. */
-#undef HAVE_FAKE_INT_TYPES
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <float.h> header file. */
-#undef HAVE_FLOAT_H
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#undef HAVE_FSEEKO
-
-/* Define to 1 if you have the `ftruncate' function. */
-#undef HAVE_FTRUNCATE
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `getwd' function. */
-#undef HAVE_GETWD
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <iostream> header file. */
-#undef HAVE_IOSTREAM
-
-/* Define if you want to use kpathsea. */
-#undef HAVE_KPATHSEA
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if you have the `memcmp' function. */
-#undef HAVE_MEMCMP
-
-/* Define to 1 if you have the `memcpy' function. */
-#undef HAVE_MEMCPY
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mkstemp' function. */
-#undef HAVE_MKSTEMP
-
-/* Define to 1 if you have the `mktemp' function. */
-#undef HAVE_MKTEMP
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#undef HAVE_NDIR_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <new.h> header file. */
-#undef HAVE_NEW_H
-
-/* Define if <new> exists and works. */
-#undef HAVE_NEW_HDR
-
-/* Define if PermStrings are available. */
-#undef HAVE_PERMSTRING
-
-/* Define to include precondition checking assertions. */
-#undef HAVE_PRECONDITION_CHECKING
-
-/* Define to 1 if you have the `putenv' function. */
-#undef HAVE_PUTENV
-
-/* Define to 1 if you have the <pwd.h> header file. */
-#undef HAVE_PWD_H
-
-/* Define to 1 if you have the `sigaction' function. */
-#undef HAVE_SIGACTION
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strnlen' function. */
-#undef HAVE_STRNLEN
-
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the `strtoul' function. */
-#undef HAVE_STRTOUL
-
-/* Define to 1 if `st_mtim' is a member of `struct stat'. */
-#undef HAVE_STRUCT_STAT_ST_MTIM
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
- */
-#undef HAVE_SYS_DIR_H
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
- */
-#undef HAVE_SYS_NDIR_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <sys/wait.h> header file. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if the system has the type `uintptr_t'. */
-#undef HAVE_UINTPTR_T
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have u_intXX_t types but not uintXX_t types. */
-#undef HAVE_U_INT_TYPES
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#undef HAVE_VSNPRINTF
-
-/* Define to 1 if you have the `waitpid' function. */
-#undef HAVE_WAITPID
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#undef LT_OBJDIR
-
-/* Define to 0 if you don't want mmafm to run mmpfb when it needs to get an
- intermediate master conversion program. */
-#undef MMAFM_RUN_MMPFB
-
-/* Define to 1 if you must include <arpa/inet.h> to get `ntohl'. */
-#undef NEED_ARPA_INET_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* kpsewhich's $SELFAUTODIR variable */
-#undef SELFAUTODIR
-
-/* kpsewhich's $SELFAUTOGRANDPARENT variable */
-#undef SELFAUTOGRANDPARENT
-
-/* kpsewhich's $SELFAUTOLOC variable */
-#undef SELFAUTOLOC
-
-/* kpsewhich's $SELFAUTOPARENT variable */
-#undef SELFAUTOPARENT
-
-/* The size of `unsigned int', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_INT
-
-/* The size of `unsigned long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG
-
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-# undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define if WORDS_BIGENDIAN has been set. */
-#undef WORDS_BIGENDIAN_SET
-
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-#undef _LARGEFILE_SOURCE
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
-
-/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
-#undef _UINT64_T
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to the type of a signed integer type of width exactly 64 bits if
- such a type exists and the standard includes do not define it. */
-#undef int64_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to the type of an unsigned integer type of width exactly 64 bits if
- such a type exists and the standard includes do not define it. */
-#undef uint64_t
diff --git a/Build/source/texk/lcdf-typetools/configure b/Build/source/texk/lcdf-typetools/configure
deleted file mode 100755
index 8bb80d5bc43..00000000000
--- a/Build/source/texk/lcdf-typetools/configure
+++ /dev/null
@@ -1,24054 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for LCDF typetools (TeX Live) 2.108.
-#
-# Report bugs to <tex-k@tug.org>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-
- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org
-$0: about your system, including any error possibly output
-$0: before this message. Then install a modern shell, or
-$0: manually run the script under such a shell if you do
-$0: have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='LCDF typetools (TeX Live)'
-PACKAGE_TARNAME='lcdf-typetools--tex-live-'
-PACKAGE_VERSION='2.108'
-PACKAGE_STRING='LCDF typetools (TeX Live) 2.108'
-PACKAGE_BUGREPORT='tex-k@tug.org'
-PACKAGE_URL=''
-
-ac_unique_file="lcdf-typetools-src/NEWS.md"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-LCDF_TYPETOOLS_TREE
-encdir
-glyphlistdir
-have_kpathsea_FALSE
-have_kpathsea_TRUE
-KPATHSEA_RULE
-KPATHSEA_DEPEND
-KPATHSEA_LIBS
-KPATHSEA_INCLUDES
-PKG_CONFIG
-texlive_build_FALSE
-texlive_build_TRUE
-SELECTED_SUBDIRS
-FIXLIBC_FALSE
-FIXLIBC_TRUE
-CXXLD
-TEMPLATE_OBJS
-CXXCPP
-WARNING_CXXFLAGS
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-LCDF_TYPETOOLS_VERSION
-CPP
-LT_SYS_LIBRARY_PATH
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-RANLIB
-ac_ct_AR
-AR
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
-WARNING_CFLAGS
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL
-am__quote'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_maintainer_mode
-enable_dependency_tracking
-enable_compiler_warnings
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_aix_soname
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_largefile
-enable_precondition_checking
-enable_adobe_code
-enable_cxx_runtime_hack
-enable_cfftot1
-enable_mmafm
-enable_mmpfb
-enable_otfinfo
-enable_otftotfm
-enable_t1dotlessj
-enable_t1lint
-enable_t1rawafm
-enable_t1reencode
-enable_t1testpage
-enable_ttftotype42
-enable_updmap
-with_kpathsea
-with_system_kpathsea
-enable_selfauto_set
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-LT_SYS_LIBRARY_PATH
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures LCDF typetools (TeX Live) 2.108 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root
- [DATAROOTDIR/doc/lcdf-typetools--tex-live-]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of LCDF typetools (TeX Live) 2.108:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-maintainer-mode
- enable make rules and dependencies not useful (and
- sometimes confusing) to the casual installer
- --enable-dependency-tracking
- do not reject slow dependency extractors
- --disable-dependency-tracking
- speeds up one-time build
- --enable-compiler-warnings=[no|min|yes|max|all]
- Turn on compiler warnings [default: yes if
- maintainer-mode, min otherwise]
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
- --disable-largefile omit support for large files
- --enable-precondition-checking
- include precondition checking assertions
- --disable-adobe-code do not include Adobe code
- --enable-cxx-runtime-hack link C++ runtime statically
- --disable-cfftot1 do not build the cfftot1 program
- --disable-mmafm do not build the mmafm program
- --disable-mmpfb do not build the mmpfb program
- --disable-otfinfo do not build the otfinfo program
- --disable-otftotfm do not build the otftotfm program
- --disable-t1dotlessj do not build the t1dotlessj program
- --disable-t1lint do not build the t1lint program
- --disable-t1rawafm do not build the t1rawafm program
- --disable-t1reencode do not build the t1reencode program
- --disable-t1testpage do not build the t1testpage program
- --disable-ttftotype42 do not build the ttftotype42 program
- --disable-auto-cfftot1 disable running cfftot1 from otftotfm
- --disable-auto-t1dotlessj
- disable running t1dotlessj from otftotfm
- --disable-auto-ttftotype42
- disable running ttftotype42 from otftotfm
- --disable-auto-updmap disable running updmap from otftotfm
- --disable-selfauto-set disable setting SELFAUTO variables from kpsewhich
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-aix-soname=aix|svr4|both
- shared library versioning (aka "SONAME") variant to
- provide on AIX, [default=aix].
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
- compiler's sysroot if not specified).
- --without-kpathsea build otftotfm without kpathsea
- --with-system-kpathsea use installed kpathsea headers and library (requires
- pkg-config)
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- LT_SYS_LIBRARY_PATH
- User-defined run-time library search path.
- CPP C preprocessor
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CXXCPP C++ preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <tex-k@tug.org>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-LCDF typetools (TeX Live) configure 2.108
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------- ##
-## Report this to tex-k@tug.org ##
-## ---------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_find_intX_t LINENO BITS VAR
-# -----------------------------------
-# Finds a signed integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_intX_t ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5
-$as_echo_n "checking for int$2_t... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- # Order is important - never check a type that is potentially smaller
- # than half of the expected target width.
- for ac_type in int$2_t 'int' 'long int' \
- 'long long int' 'short int' 'signed char'; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
- enum { N = $2 / 2 - 1 };
-int
-main ()
-{
-static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
- enum { N = $2 / 2 - 1 };
-int
-main ()
-{
-static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
- < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- case $ac_type in #(
- int$2_t) :
- eval "$3=yes" ;; #(
- *) :
- eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if eval test \"x\$"$3"\" = x"no"; then :
-
-else
- break
-fi
- done
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_find_intX_t
-
-# ac_fn_c_find_uintX_t LINENO BITS VAR
-# ------------------------------------
-# Finds an unsigned integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_uintX_t ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
-$as_echo_n "checking for uint$2_t... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- # Order is important - never check a type that is potentially smaller
- # than half of the expected target width.
- for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- case $ac_type in #(
- uint$2_t) :
- eval "$3=yes" ;; #(
- *) :
- eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if eval test \"x\$"$3"\" = x"no"; then :
-
-else
- break
-fi
- done
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_find_uintX_t
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
- (void) $as_decl_use;
-#else
- (void) $as_decl_name;
-#endif
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_decl
-
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$4=yes"
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$4=yes"
-else
- eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$4
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_member
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
-# ---------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_cxx_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------- ##
-## Report this to tex-k@tug.org ##
-## ---------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_cxx_check_header_mongrel
-
-# ac_fn_cxx_try_run LINENO
-# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_cxx_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_run
-
-# ac_fn_cxx_check_decl LINENO SYMBOL VAR INCLUDES
-# -----------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_cxx_check_decl ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
- (void) $as_decl_use;
-#else
- (void) $as_decl_name;
-#endif
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_cxx_check_decl
-
-# ac_fn_cxx_check_func LINENO FUNC VAR
-# ------------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_cxx_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_cxx_check_func
-
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=0 ac_mid=0
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid; break
-else
- as_fn_arith $ac_mid + 1 && ac_lo=$as_val
- if test $ac_lo -le $ac_mid; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=-1 ac_mid=-1
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=$ac_mid; break
-else
- as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
- if test $ac_mid -le $ac_hi; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid
-else
- as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (($2) < 0)
- {
- long int i = longval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* Do not output a trailing newline, as this causes \r\n confusion
- on some platforms. */
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
- ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
- fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by LCDF typetools (TeX Live) $as_me 2.108, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-
-
-am__api_version='1.16'
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-if test x"${MISSING+set}" != xset; then
- MISSING="\${SHELL} '$am_aux_dir/missing'"
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
-$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
-cat > confinc.mk << 'END'
-am__doit:
- @echo this is the am__doit target >confinc.out
-.PHONY: am__doit
-END
-am__include="#"
-am__quote=
-# BSD make does it like this.
-echo '.include "confinc.mk" # ignored' > confmf.BSD
-# Other make implementations (GNU, Solaris 10, AIX) do it like this.
-echo 'include confinc.mk # ignored' > confmf.GNU
-_am_result=no
-for s in GNU BSD; do
- { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
- (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- case $?:`cat confinc.out 2>/dev/null` in #(
- '0:this is the am__doit target') :
- case $s in #(
- BSD) :
- am__include='.include' am__quote='"' ;; #(
- *) :
- am__include='include' am__quote='' ;;
-esac ;; #(
- *) :
- ;;
-esac
- if test "$am__include" != "#"; then
- _am_result="yes ($s style)"
- break
- fi
-done
-rm -f confinc.* confmf.*
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
-$as_echo "${_am_result}" >&6; }
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-# Check whether --enable-compiler-warnings was given.
-if test "${enable_compiler_warnings+set}" = set; then :
- enableval=$enable_compiler_warnings;
-fi
-case $enable_compiler_warnings in #(
- no | min | yes | max | all) :
- ;; #(
- *) :
- if test "x$enable_maintainer_mode" = xyes; then :
- enable_compiler_warnings=yes
-else
- enable_compiler_warnings=min
-fi ;;
-esac
-
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.6'
-macro_revision='2.4.6'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain=$ac_aux_dir/ltmain.sh
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case $ECHO in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test yes = "$GCC"; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return, which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD=$ac_prog
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test yes = "$with_gnu_ld"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD=$ac_dir/$ac_prog
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test no != "$with_gnu_ld" && break
- ;;
- *)
- test yes != "$with_gnu_ld" && break
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
-else
- lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi
-fi
-
-LD=$lt_cv_path_LD
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM=$NM
-else
- lt_nm_to_check=${ac_tool_prefix}nm
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/$lt_tmp_nm
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
- case $build_os in
- mingw*) lt_bad_file=conftest.nm/nofile ;;
- *) lt_bad_file=/dev/null ;;
- esac
- case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
- *$lt_bad_file* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break 2
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break 2
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test no != "$lt_cv_path_NM"; then
- NM=$lt_cv_path_NM
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols -headers"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test : != "$DUMPBIN"; then
- NM=$DUMPBIN
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring=ABCD
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len" && \
- test undefined != "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test X`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test 17 != "$i" # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n "$lt_cv_sys_max_cmd_len"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test yes != "$GCC"; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test yes = "$GCC"; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# 'unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# that responds to the $file_magic_cmd with a given extended regex.
-# If you have 'file' or equivalent on your system and you're not sure
-# whether 'pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- if ( file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd* | bitrig*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-os2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh;
- # decide which one to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd=$ECHO
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test 0 -eq "$ac_status"; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test 0 -ne "$ac_status"; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test no = "$lt_cv_ar_at_file"; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- bitrig* | openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test ia64 = "$host_cpu"; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Gets list of data symbols to import.
- lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
- # Adjust the below global symbol transforms to fixup imported variables.
- lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
- lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
- lt_c_name_lib_hook="\
- -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
- -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
-else
- # Disable hooks by default.
- lt_cv_sys_global_symbol_to_import=
- lt_cdecl_hook=
- lt_c_name_hook=
- lt_c_name_lib_hook=
-fi
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n"\
-$lt_cdecl_hook\
-" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
-$lt_c_name_hook\
-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
-
-# Transform an extracted symbol line into symbol name with lib prefix and
-# symbol address.
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
-$lt_c_name_lib_hook\
-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function,
- # D for any global variable and I for any imported variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
-" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
-" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
-" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
-" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
-/* DATA imports from DLLs on WIN32 can't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined __osf__
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS=conftstm.$ac_objext
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest$ac_exeext; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test yes = "$pipe_works"; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
-else
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case $with_sysroot in #(
- yes)
- if test yes = "$GCC"; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-$as_echo "$with_sysroot" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-$as_echo_n "checking for a working dd... " >&6; }
-if ${ac_cv_path_lt_DD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-: ${lt_DD:=$DD}
-if test -z "$lt_DD"; then
- ac_path_lt_DD_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in dd; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_lt_DD" || continue
-if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
- cmp -s conftest.i conftest.out \
- && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
-fi
- $ac_path_lt_DD_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_lt_DD"; then
- :
- fi
-else
- ac_cv_path_lt_DD=$lt_DD
-fi
-
-rm -f conftest.i conftest2.i conftest.out
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-$as_echo "$ac_cv_path_lt_DD" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-$as_echo_n "checking how to truncate binary pipes... " >&6; }
-if ${lt_cv_truncate_bin+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- printf 0123456789abcdef0123456789abcdef >conftest.i
-cat conftest.i conftest.i >conftest2.i
-lt_cv_truncate_bin=
-if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
- cmp -s conftest.i conftest.out \
- && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
-fi
-rm -f conftest.i conftest2.i conftest.out
-test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-$as_echo "$lt_cv_truncate_bin" >&6; }
-
-
-
-
-
-
-
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
- for cc_temp in $*""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
- done
- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test no = "$enable_libtool_lock" || enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out what ABI is being produced by ac_compile, and set mode
- # options accordingly.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE=32
- ;;
- *ELF-64*)
- HPUX_IA64_MODE=64
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test yes = "$lt_cv_prog_gnu_ld"; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-mips64*-*linux*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- emul=elf
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- emul="${emul}32"
- ;;
- *64-bit*)
- emul="${emul}64"
- ;;
- esac
- case `/usr/bin/file conftest.$ac_objext` in
- *MSB*)
- emul="${emul}btsmip"
- ;;
- *LSB*)
- emul="${emul}ltsmip"
- ;;
- esac
- case `/usr/bin/file conftest.$ac_objext` in
- *N32*)
- emul="${emul}n32"
- ;;
- esac
- LD="${LD-ld} -m $emul"
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly. Note that the listed cases only cover the
- # situations where additional linker options are needed (such as when
- # doing 32-bit compilation for a host where ld defaults to 64-bit, or
- # vice versa); the common cases where no linker options are needed do
- # not appear in the list.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- case `/usr/bin/file conftest.o` in
- *x86-64*)
- LD="${LD-ld} -m elf32_x86_64"
- ;;
- *)
- LD="${LD-ld} -m elf_i386"
- ;;
- esac
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test yes != "$lt_cv_cc_needs_belf"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS=$SAVE_CFLAGS
- fi
- ;;
-*-*solaris*)
- # Find out what ABI is being produced by ac_compile, and set linker
- # options accordingly.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*|x86_64-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD=${LD-ld}_sol2
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks=$enable_libtool_lock
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test yes != "$lt_cv_path_mainfest_tool"; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "$LT_MULTI_MODULE"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
- 10.[012][,.]*)
- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test yes = "$lt_cv_apple_cc_single_mod"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test yes = "$lt_cv_ld_exported_symbols_list"; then
- _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
- fi
- if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-# string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-# string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-# "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-# VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
- case x$2 in
- x)
- ;;
- *:)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
- ;;
- x:*)
- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- *::*)
- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
- ;;
- *)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- esac
-}
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-##tldbg KPSE_COMMON: lcdf-typetools ().
-##tldbg KPSE_BASIC: Remember lcdf-typetools () as Kpse_Package (for future messages).
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='lcdf-typetools--tex-live-'
- VERSION='2.108'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
-$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
- # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then :
- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
-$as_echo "$USE_MAINTAINER_MODE" >&6; }
- if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
-$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
-if ${kb_cv_c_prototypes+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-int
-main ()
-{
-extern void foo(int i,...);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- kb_cv_c_prototypes=yes
-else
- kb_cv_c_prototypes=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
-$as_echo "$kb_cv_c_prototypes" >&6; }
-if test "x$kb_cv_c_prototypes" = xno; then
- as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
-$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
-if ${kpse_cv_warning_cflags+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$GCC" = xyes; then
- kpse_cv_warning_cflags=
-if test "x$enable_compiler_warnings" != xno; then
- kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
- case `$CC -dumpversion` in #(
- 3.4.* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
- *) :
- ;;
-esac
- case `$CC -dumpversion` in #(
- 3.[234].* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmin; then
- kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
- if test "x$enable_compiler_warnings" != xyes; then
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
- case `$CC -dumpversion` in #(
- 3.4.* | 4.* | 5.*) :
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmax; then
- kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
- fi
- fi
- fi
-fi
-elif test "x$enable_compiler_warnings" = xno; then
- kpse_cv_warning_cflags=
-else
- kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
-$as_echo "$kpse_cv_warning_cflags" >&6; }
-WARNING_CFLAGS=$kpse_cv_warning_cflags
-
-
-
-
-
-
-
-
-
-
-
-
-# Set options
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
- ac_ct_AS=$AS
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AS"; then
- ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AS="as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_AS" = x; then
- AS="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AS=$ac_ct_AS
- fi
-else
- AS="$ac_cv_prog_AS"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
- ;;
-esac
-
-test -z "$AS" && AS=as
-
-
-
-
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
- enable_dlopen=no
-
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for lt_pkg in $withval; do
- IFS=$lt_save_ifs
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else
- pic_mode=default
-fi
-
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
- for pkg in $enableval; do
- IFS=$lt_save_ifs
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS=$lt_save_ifs
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
- shared_archive_member_spec=
-case $host,$enable_shared in
-power*-*-aix[5-9]*,yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
-
-# Check whether --with-aix-soname was given.
-if test "${with_aix_soname+set}" = set; then :
- withval=$with_aix_soname; case $withval in
- aix|svr4|both)
- ;;
- *)
- as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
- ;;
- esac
- lt_cv_with_aix_soname=$with_aix_soname
-else
- if ${lt_cv_with_aix_soname+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_with_aix_soname=aix
-fi
-
- with_aix_soname=$lt_cv_with_aix_soname
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-$as_echo "$with_aix_soname" >&6; }
- if test aix != "$with_aix_soname"; then
- # For the AIX way of multilib, we name the shared archive member
- # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
- # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
- # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
- # the AIX toolchain works better with OBJECT_MODE set (default 32).
- if test 64 = "${OBJECT_MODE-32}"; then
- shared_archive_member_spec=shr_64
- else
- shared_archive_member_spec=shr
- fi
- fi
- ;;
-*)
- with_aix_soname=aix
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS=$ltmain
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-old_CC=$CC
-old_CFLAGS=$CFLAGS
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-func_cc_basename $compiler
-cc_basename=$func_cc_basename_result
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD=$MAGIC_CMD
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/${ac_tool_prefix}file"; then
- lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD=$lt_cv_path_MAGIC_CMD
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS=$lt_save_ifs
- MAGIC_CMD=$lt_save_MAGIC_CMD
- ;;
-esac
-fi
-
-MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD=$MAGIC_CMD
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/file"; then
- lt_cv_path_MAGIC_CMD=$ac_dir/"file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD=$lt_cv_path_MAGIC_CMD
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS=$lt_save_ifs
- MAGIC_CMD=$lt_save_MAGIC_CMD
- ;;
-esac
-fi
-
-MAGIC_CMD=$lt_cv_path_MAGIC_CMD
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC=$CC
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test yes = "$GCC"; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test yes = "$GCC"; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- lt_prog_compiler_pic='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the '-m68020' flag to GCC prevents building anything better,
- # like '-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static='$wl-static'
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- case $cc_basename in
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static='$wl-static'
- ;;
- esac
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='$wl-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- # old Intel for x86_64, which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms that do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_pic_works"; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_static_works"; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links=nottested
-if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test no = "$hard_links"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ' (' and ')$', so one must not match beginning or
- # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
- # as well as any symbol that contains 'd'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test yes != "$GCC"; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd* | bitrig*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test yes = "$with_gnu_ld"; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test yes = "$lt_use_gnu_ld_interface"; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='$wl'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- export_dynamic_flag_spec='$wl--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test ia64 != "$host_cpu"; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='$wl--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file, use it as
- # is; otherwise, prepend EXPORTS...
- archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- shrext_cmds=.dll
- archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- enable_shared_with_static_runtimes=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='$wl-rpath,$libdir'
- export_dynamic_flag_spec='$wl-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test linux-dietlibc = "$host_os"; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test no = "$tmp_diet"
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- nagfor*) # NAGFOR 5.3
- tmp_sharedflag='-Wl,-shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-
- if test yes = "$supports_anon_versioning"; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- tcc*)
- export_dynamic_flag_spec='-rdynamic'
- ;;
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test yes = "$supports_anon_versioning"; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test no = "$ld_shlibs"; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test ia64 = "$host_cpu"; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to GNU nm, but means don't demangle to AIX nm.
- # Without the "-l" option, or with the "-B" option, AIX nm treats
- # weak defined symbols like other global defined symbols, whereas
- # GNU nm marks them as "W".
- # While the 'weak' keyword is ignored in the Export File, we need
- # it in the Import File for the 'aix-soname' feature, so we have
- # to replace the "-B" option with "-P" for AIX nm.
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # have runtime linking enabled, and use it for executables.
- # For shared libraries, we enable/disable runtime linking
- # depending on the kind of the shared library created -
- # when "with_aix_soname,aix_use_runtimelinking" is:
- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
- # "aix,yes" lib.so shared, rtl:yes, for executables
- # lib.a static archive
- # "both,no" lib.so.V(shr.o) shared, rtl:yes
- # lib.a(lib.so.V) shared, rtl:no, for executables
- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a(lib.so.V) shared, rtl:no
- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a static archive
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
- # With aix-soname=svr4, we create the lib.so.V shared archives only,
- # so we don't have lib.a shared libs to link our executables.
- # We have to force runtime linking in this case.
- aix_use_runtimelinking=yes
- LDFLAGS="$LDFLAGS -Wl,-brtl"
- fi
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='$wl-f,'
- case $with_aix_soname,$aix_use_runtimelinking in
- aix,*) ;; # traditional, no import file
- svr4,* | *,yes) # use import file
- # The Import File defines what to hardcode.
- hardcode_direct=no
- hardcode_direct_absolute=no
- ;;
- esac
-
- if test yes = "$GCC"; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`$CC -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag="$shared_flag "'$wl-G'
- fi
- # Need to ensure runtime linking is disabled for the traditional
- # shared library, or the linker may eventually find shared libraries
- # /with/ Import File - we do not want to mix them.
- shared_flag_aix='-shared'
- shared_flag_svr4='-shared $wl-G'
- else
- # not using gcc
- if test ia64 = "$host_cpu"; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag='$wl-G'
- else
- shared_flag='$wl-bM:SRE'
- fi
- shared_flag_aix='$wl-bM:SRE'
- shared_flag_svr4='$wl-G'
- fi
- fi
-
- export_dynamic_flag_spec='$wl-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=/usr/lib:/lib
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
- else
- if test ia64 = "$host_cpu"; then
- hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=/usr/lib:/lib
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' $wl-bernotok'
- allow_undefined_flag=' $wl-berok'
- if test yes = "$with_gnu_ld"; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
- # -brtl affects multiple linker settings, -berok does not and is overridden later
- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
- if test svr4 != "$with_aix_soname"; then
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
- fi
- if test aix != "$with_aix_soname"; then
- archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
- else
- # used by -dlpreopen to get the symbols
- archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
- fi
- archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
- archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
- cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
- else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile=$lt_outputfile.exe
- lt_tool_outputfile=$lt_tool_outputfile.exe
- ;;
- esac~
- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test yes = "$lt_cv_ld_force_load"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag=$_lt_dar_allow_undefined
- case $cc_basename in
- ifort*|nagfor*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test yes = "$_lt_dar_can_shared"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
- archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
- module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test yes = "$GCC"; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='$wl+b $wl$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='$wl-E'
- ;;
-
- hpux10*)
- if test yes,no = "$GCC,$with_gnu_ld"; then
- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test no = "$with_gnu_ld"; then
- hardcode_libdir_flag_spec='$wl+b $wl$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='$wl-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test yes,no = "$GCC,$with_gnu_ld"; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test yes = "$lt_cv_prog_compiler__b"; then
- archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test no = "$with_gnu_ld"; then
- hardcode_libdir_flag_spec='$wl+b $wl$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='$wl-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test yes = "$GCC"; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
-else
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test yes = "$lt_cv_irix_exported_symbol"; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- linux*)
- case $cc_basename in
- tcc*)
- # Fabrice Bellard et al's Tiny C Compiler
- ld_shlibs=yes
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd* | bitrig*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='$wl-rpath,$libdir'
- export_dynamic_flag_spec='$wl-E'
- else
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='$wl-rpath,$libdir'
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- shrext_cmds=.dll
- archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- enable_shared_with_static_runtimes=yes
- ;;
-
- osf3*)
- if test yes = "$GCC"; then
- allow_undefined_flag=' $wl-expect_unresolved $wl\*'
- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test yes = "$GCC"; then
- allow_undefined_flag=' $wl-expect_unresolved $wl\*'
- archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test yes = "$GCC"; then
- wlarc='$wl'
- archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='$wl'
- archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands '-z linker_flag'. GCC discards it without '$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test yes = "$GCC"; then
- whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test sequent = "$host_vendor"; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='$wl-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test yes = "$GCC"; then
- archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We CANNOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='$wl-z,text'
- allow_undefined_flag='$wl-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='$wl-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='$wl-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test yes = "$GCC"; then
- archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test sni = "$host_vendor"; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='$wl-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test no = "$ld_shlibs" && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test yes,yes = "$GCC,$enable_shared"; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test yes = "$GCC"; then
- case $host_os in
- darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
- *) lt_awk_arg='/^libraries:/' ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
- *) lt_sed_strip_eq='s|=/|/|g' ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary...
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- # ...but if some path component already ends with the multilib dir we assume
- # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
- case "$lt_multi_os_dir; $lt_search_path_spec " in
- "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
- lt_multi_os_dir=
- ;;
- esac
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
- elif test -n "$lt_multi_os_dir"; then
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS = " "; FS = "/|\n";} {
- lt_foo = "";
- lt_count = 0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo = "/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=.so
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='$libname$release$shared_ext$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test ia64 = "$host_cpu"; then
- # AIX 5 supports IA64
- library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line '#! .'. This would cause the generated library to
- # depend on '.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # Using Import Files as archive members, it is possible to support
- # filename-based versioning of shared library archives on AIX. While
- # this would work for both with and without runtime linking, it will
- # prevent static linking of such archives. So we do filename-based
- # shared library versioning with .so extension only, which is used
- # when both runtime linking and shared linking is enabled.
- # Unfortunately, runtime linking may impact performance, so we do
- # not want this to be the default eventually. Also, we use the
- # versioned .so libs for executables only if there is the -brtl
- # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
- # To allow for filename-based versioning support, we need to create
- # libNAME.so.V as an archive file, containing:
- # *) an Import File, referring to the versioned filename of the
- # archive as well as the shared archive member, telling the
- # bitwidth (32 or 64) of that shared object, and providing the
- # list of exported symbols of that shared object, eventually
- # decorated with the 'weak' keyword
- # *) the shared object with the F_LOADONLY flag set, to really avoid
- # it being seen by the linker.
- # At run time we better use the real file rather than another symlink,
- # but for link time we create the symlink libNAME.so -> libNAME.so.V
-
- case $with_aix_soname,$aix_use_runtimelinking in
- # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- aix,yes) # traditional libtool
- dynamic_linker='AIX unversionable lib.so'
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- aix,no) # traditional AIX only
- dynamic_linker='AIX lib.a(lib.so.V)'
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- svr4,*) # full svr4 only
- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,yes) # both, prefer svr4
- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # unpreferred sharedlib libNAME.a needs extra handling
- postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
- postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,no) # both, prefer aix
- dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
- postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
- postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
- ;;
- esac
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='$libname$shared_ext'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- library_names_spec='$libname.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec=$LIB
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$major$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- if test 32 = "$HPUX_IA64_MODE"; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux32
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux64
- fi
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test yes = "$lt_cv_prog_gnu_ld"; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
- sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-linux*android*)
- version_type=none # Android doesn't support versioned libraries.
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext'
- soname_spec='$libname$release$shared_ext'
- finish_cmds=
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- dynamic_linker='Android linker'
- # Don't embed -rpath directories since the linker doesn't support them.
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Ideally, we could use ldconfig to report *all* directores which are
- # searched for libraries, however this is still not possible. Aside from not
- # being certain /sbin/ldconfig is available, command
- # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
- # even though it is searched at run-time. Try to do the best guess by
- # appending ld.so.conf contents (and includes) to the search path.
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd* | bitrig*)
- version_type=sunos
- sys_lib_dlsearch_path_spec=/usr/lib
- need_lib_prefix=no
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- need_version=no
- else
- need_version=yes
- fi
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-os2*)
- libname_spec='$name'
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
- # OS/2 can only load a DLL with a base name of 8 characters or less.
- soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
- v=$($ECHO $release$versuffix | tr -d .-);
- n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
- $ECHO $n$v`$shared_ext'
- library_names_spec='${libname}_dll.$libext'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=BEGINLIBPATH
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test yes = "$with_gnu_ld"; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec; then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
- soname_spec='$libname$shared_ext.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=sco
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test yes = "$with_gnu_ld"; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test no = "$dynamic_linker" && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test yes = "$GCC"; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
- sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
-fi
-
-if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
- sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
-fi
-
-# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
-
-# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
-
-# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test yes = "$hardcode_automatic"; then
-
- # We can hardcode non-existent directories.
- if test no != "$hardcode_direct" &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
- test no != "$hardcode_minus_L"; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test relink = "$hardcode_action" ||
- test yes = "$inherit_rpath"; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test yes = "$shlibpath_overrides_runpath" ||
- test no = "$enable_shared"; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test yes != "$enable_dlopen"; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen=load_add_on
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen=LoadLibrary
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen=dlopen
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
-
- lt_cv_dlopen=dyld
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- tpf*)
- # Don't try to run any link tests for TPF. We know it's impossible
- # because TPF is a cross-compiler, and we know how we open DSOs.
- lt_cv_dlopen=dlopen
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=no
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen=shl_load
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen=dlopen
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test no = "$lt_cv_dlopen"; then
- enable_dlopen=no
- else
- enable_dlopen=yes
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS=$CPPFLAGS
- test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS=$LDFLAGS
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS=$LIBS
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test yes = "$cross_compiling"; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisibility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test yes = "$lt_cv_dlopen_self"; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test yes = "$cross_compiling"; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisibility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS=$save_CPPFLAGS
- LDFLAGS=$save_LDFLAGS
- LIBS=$save_LIBS
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP"; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report what library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test no = "$can_build_shared" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test yes = "$enable_shared" && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test ia64 != "$host_cpu"; then
- case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
- yes,aix,yes) ;; # shared object as lib.so file only
- yes,svr4,*) ;; # shared object as lib.so archive member only
- yes,*) enable_static=no ;; # shared object in lib.a archive as well
- esac
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test yes = "$enable_shared" || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC=$lt_save_CC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-# Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
- enableval=$enable_largefile;
-fi
-
-if test "$enable_largefile" != no; then
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_sys_largefile_CC=no
- if test "$GCC" != yes; then
- ac_save_CC=$CC
- while :; do
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- if ac_fn_c_try_compile "$LINENO"; then :
- break
-fi
-rm -f core conftest.err conftest.$ac_objext
- CC="$CC -n32"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_largefile_CC=' -n32'; break
-fi
-rm -f core conftest.err conftest.$ac_objext
- break
- done
- CC=$ac_save_CC
- rm -f conftest.$ac_ext
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if ${ac_cv_sys_file_offset_bits+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_file_offset_bits=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_file_offset_bits=64; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cv_sys_file_offset_bits=unknown
- break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
-case $ac_cv_sys_file_offset_bits in #(
- no | unknown) ;;
- *)
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
-;;
-esac
-rm -rf conftest*
- if test $ac_cv_sys_file_offset_bits = unknown; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if ${ac_cv_sys_large_files+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_large_files=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_sys_large_files=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cv_sys_large_files=unknown
- break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-$as_echo "$ac_cv_sys_large_files" >&6; }
-case $ac_cv_sys_large_files in #(
- no | unknown) ;;
- *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
-;;
-esac
-rm -rf conftest*
- fi
-
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_source+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h> /* for off_t */
- #include <stdio.h>
-int
-main ()
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_sys_largefile_source=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#define _LARGEFILE_SOURCE 1
-#include <sys/types.h> /* for off_t */
- #include <stdio.h>
-int
-main ()
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_sys_largefile_source=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_cv_sys_largefile_source=unknown
- break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
-$as_echo "$ac_cv_sys_largefile_source" >&6; }
-case $ac_cv_sys_largefile_source in #(
- no | unknown) ;;
- *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
-_ACEOF
-;;
-esac
-rm -rf conftest*
-
-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-# in glibc 2.1.3, but that breaks too many other things.
-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-if test $ac_cv_sys_largefile_source != unknown; then
-
-$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
-
-fi
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
-$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if eval \${$as_ac_Header+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$as_ac_Header=yes"
-else
- eval "$as_ac_Header=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_ac_Header
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-_ACEOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' dir; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_opendir+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
-else
- ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' x; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_opendir+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
-else
- ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5
-$as_echo_n "checking whether closedir returns void... " >&6; }
-if ${ac_cv_func_closedir_void+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_closedir_void=yes
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header_dirent>
-#ifndef __cplusplus
-int closedir ();
-#endif
-
-int
-main ()
-{
-return closedir (opendir (".")) != 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_closedir_void=no
-else
- ac_cv_func_closedir_void=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5
-$as_echo "$ac_cv_func_closedir_void" >&6; }
-if test $ac_cv_func_closedir_void = yes; then
-
-$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h
-
-fi
-
-for ac_header in assert.h float.h limits.h pwd.h stdlib.h sys/param.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in putenv
-do :
- ac_fn_c_check_func "$LINENO" "putenv" "ac_cv_func_putenv"
-if test "x$ac_cv_func_putenv" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_PUTENV 1
-_ACEOF
-
-fi
-done
-
-for ac_func in getcwd getwd memcmp memcpy mkstemp mktemp strchr strrchr
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this sort of thing. */
- typedef int charset[2];
- const charset cs = { 0, 0 };
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *pcpcc;
- char **ppc;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- pcpcc = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++pcpcc;
- ppc = (char**) pcpcc;
- pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this sort of thing. */
- char tx;
- char *t = &tx;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- if (s) return 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; } bx;
- struct s *b = &bx; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- if (!foo) return 0;
- }
- return !cs[0] && !zero.x;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_const=yes
-else
- ac_cv_c_const=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-$as_echo "#define const /**/" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t"
-case $ac_cv_c_int64_t in #(
- no|yes) ;; #(
- *)
-
-cat >>confdefs.h <<_ACEOF
-#define int64_t $ac_cv_c_int64_t
-_ACEOF
-;;
-esac
-
-ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t"
-case $ac_cv_c_uint64_t in #(
- no|yes) ;; #(
- *)
-
-$as_echo "#define _UINT64_T 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint64_t $ac_cv_c_uint64_t
-_ACEOF
-;;
- esac
-
-case :$ac_cv_c_int64_t:$ac_cv_c_int64_t: in #(
- *':no:'*) :
- as_fn_error $? "Sorry, your compiler does not support 64-bit integer types." "$LINENO" 5 ;; #(
- *) :
- ;;
-esac
-ac_fn_c_check_decl "$LINENO" "isascii" "ac_cv_have_decl_isascii" "#include <ctype.h>
-"
-if test "x$ac_cv_have_decl_isascii" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISASCII $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_member "$LINENO" "struct stat" "st_mtim" "ac_cv_member_struct_stat_st_mtim" "$ac_includes_default"
-if test "x$ac_cv_member_struct_stat_st_mtim" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STAT_ST_MTIM 1
-_ACEOF
-
-
-fi
-
-
-
-LCDF_TYPETOOLS_VERSION=2.108
-
-
-ac_config_headers="$ac_config_headers autoconf.h"
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
- if test -n "$CCC"; then
- CXX=$CCC
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CXX" && break
- done
-fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CXX="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CXX" && break
-done
-
- if test "x$ac_ct_CXX" = x; then
- CXX="g++"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CXX=$ac_ct_CXX
- fi
-fi
-
- fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GXX=yes
-else
- GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_cxx_werror_flag=$ac_cxx_werror_flag
- ac_cxx_werror_flag=yes
- ac_cv_prog_cxx_g=no
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-else
- CXXFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CXX_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CXX_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
- am__fastdepCXX_TRUE=
- am__fastdepCXX_FALSE='#'
-else
- am__fastdepCXX_TRUE='#'
- am__fastdepCXX_FALSE=
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C++ compiler" >&5
-$as_echo_n "checking what warning flags to pass to the C++ compiler... " >&6; }
-if ${kpse_cv_warning_cxxflags+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$GXX" = xyes; then
- kpse_cv_warning_cxxflags=
-kpse_warn_strings="-Wno-write-strings"
-if test "x$enable_compiler_warnings" != xno; then
- kpse_cv_warning_cxxflags="-Wreturn-type"
- case `$CXX -dumpversion` in #(
- 3.* | 4.[012345].*) :
- kpse_cv_warning_cxxflags="-Wimplicit $kpse_cv_warning_cxxflags" ;; #(
- *) :
- ;;
-esac
- case `$CXX -dumpversion` in #(
- 3.[234].* | 4.* | 5.*) :
- kpse_cv_warning_cxxflags="$kpse_cv_warning_cxxflags -Wno-unknown-pragmas" ;; #(
- *) :
- ;;
-esac
- if test "x$enable_compiler_warnings" != xmin; then
- kpse_cv_warning_cxxflags="-Wall -Wunused $kpse_cv_warning_cxxflags"
- if test "x$enable_compiler_warnings" != xyes; then
- kpse_cv_warning_cxxflags="$kpse_cv_warning_cxxflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
- kpse_cv_warning_cxxflags="$kpse_cv_warning_cxxflags -Wcast-qual -Wcast-align"
- kpse_warn_strings="-Wwrite-strings"
- if test "x$enable_compiler_warnings" != xmax; then
- kpse_cv_warning_cxxflags="$kpse_cv_warning_cxxflags -Wshadow"
- fi
- fi
- fi
-fi
-kpse_cv_warning_cxxflags="$kpse_cv_warning_cxxflags $kpse_warn_strings"
-elif test "x$enable_compiler_warnings" = xno; then
- kpse_cv_warning_cxxflags=
-else
- kpse_cv_warning_cxxflags= # FIXME: warning flags for non-GNU C++ compilers
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cxxflags" >&5
-$as_echo "$kpse_cv_warning_cxxflags" >&6; }
-WARNING_CXXFLAGS=$kpse_cv_warning_cxxflags
-
-
-
-
-
-func_stripname_cnf ()
-{
- case $2 in
- .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;;
- *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;;
- esac
-} # func_stripname_cnf
-
- if test -n "$CXX" && ( test no != "$CXX" &&
- ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
- (test g++ != "$CXX"))); then
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
- if ${ac_cv_prog_CXXCPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
- _lt_caught_CXX_error=yes
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-reload_flag_CXX=$reload_flag
-reload_cmds_CXX=$reload_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test yes != "$_lt_caught_CXX_error"; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
- # save warnings/boilerplate of simple test code
- ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
- ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- compiler_CXX=$CC
- func_cc_basename $compiler
-cc_basename=$func_cc_basename_result
-
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test yes = "$GXX"; then
- lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
- else
- lt_prog_compiler_no_builtin_flag_CXX=
- fi
-
- if test yes = "$GXX"; then
- # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test yes = "$GCC"; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return, which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD=$ac_prog
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test yes = "$with_gnu_ld"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS=$lt_save_ifs
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD=$ac_dir/$ac_prog
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test no != "$with_gnu_ld" && break
- ;;
- *)
- test yes != "$with_gnu_ld" && break
- ;;
- esac
- fi
- done
- IFS=$lt_save_ifs
-else
- lt_cv_path_LD=$LD # Let the user override the test with a path.
-fi
-fi
-
-LD=$lt_cv_path_LD
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test yes = "$with_gnu_ld"; then
- archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-
- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
- export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='$wl'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- else
- whole_archive_flag_spec_CXX=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
- ld_shlibs_CXX=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aix[4-9]*)
- if test ia64 = "$host_cpu"; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # have runtime linking enabled, and use it for executables.
- # For shared libraries, we enable/disable runtime linking
- # depending on the kind of the shared library created -
- # when "with_aix_soname,aix_use_runtimelinking" is:
- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
- # "aix,yes" lib.so shared, rtl:yes, for executables
- # lib.a static archive
- # "both,no" lib.so.V(shr.o) shared, rtl:yes
- # lib.a(lib.so.V) shared, rtl:no, for executables
- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a(lib.so.V) shared, rtl:no
- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
- # lib.a static archive
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
- # With aix-soname=svr4, we create the lib.so.V shared archives only,
- # so we don't have lib.a shared libs to link our executables.
- # We have to force runtime linking in this case.
- aix_use_runtimelinking=yes
- LDFLAGS="$LDFLAGS -Wl,-brtl"
- fi
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds_CXX=''
- hardcode_direct_CXX=yes
- hardcode_direct_absolute_CXX=yes
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- file_list_spec_CXX='$wl-f,'
- case $with_aix_soname,$aix_use_runtimelinking in
- aix,*) ;; # no import file
- svr4,* | *,yes) # use import file
- # The Import File defines what to hardcode.
- hardcode_direct_CXX=no
- hardcode_direct_absolute_CXX=no
- ;;
- esac
-
- if test yes = "$GXX"; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`$CC -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct_CXX=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L_CXX=yes
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- hardcode_libdir_separator_CXX=
- fi
- esac
- shared_flag='-shared'
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag=$shared_flag' $wl-G'
- fi
- # Need to ensure runtime linking is disabled for the traditional
- # shared library, or the linker may eventually find shared libraries
- # /with/ Import File - we do not want to mix them.
- shared_flag_aix='-shared'
- shared_flag_svr4='-shared $wl-G'
- else
- # not using gcc
- if test ia64 = "$host_cpu"; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test yes = "$aix_use_runtimelinking"; then
- shared_flag='$wl-G'
- else
- shared_flag='$wl-bM:SRE'
- fi
- shared_flag_aix='$wl-bM:SRE'
- shared_flag_svr4='$wl-G'
- fi
- fi
-
- export_dynamic_flag_spec_CXX='$wl-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- always_export_symbols_CXX=yes
- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- # The "-G" linker flag allows undefined symbols.
- no_undefined_flag_CXX='-bernotok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath__CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=/usr/lib:/lib
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
- hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
-
- archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
- else
- if test ia64 = "$host_cpu"; then
- hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib'
- allow_undefined_flag_CXX="-z nodefs"
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test set = "${lt_cv_aix_libpath+set}"; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath__CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=/usr/lib:/lib
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
- hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_CXX=' $wl-bernotok'
- allow_undefined_flag_CXX=' $wl-berok'
- if test yes = "$with_gnu_ld"; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_CXX='$convenience'
- fi
- archive_cmds_need_lc_CXX=yes
- archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
- # -brtl affects multiple linker settings, -berok does not and is overridden later
- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
- if test svr4 != "$with_aix_soname"; then
- # This is similar to how AIX traditionally builds its shared
- # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
- fi
- if test aix != "$with_aix_soname"; then
- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
- else
- # used by -dlpreopen to get the symbols
- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
- fi
- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag_CXX=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec_CXX=' '
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=yes
- file_list_spec_CXX='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=.dll
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
- archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
- cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
- else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
- enable_shared_with_static_runtimes_CXX=yes
- # Don't use ranlib
- old_postinstall_cmds_CXX='chmod 644 $oldlib'
- postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile=$lt_outputfile.exe
- lt_tool_outputfile=$lt_tool_outputfile.exe
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- export_dynamic_flag_spec_CXX='$wl--export-all-symbols'
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=no
- enable_shared_with_static_runtimes_CXX=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file, use it as
- # is; otherwise, prepend EXPORTS...
- archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc_CXX=no
- hardcode_direct_CXX=no
- hardcode_automatic_CXX=yes
- hardcode_shlibpath_var_CXX=unsupported
- if test yes = "$lt_cv_ld_force_load"; then
- whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec_CXX=''
- fi
- link_all_deplibs_CXX=yes
- allow_undefined_flag_CXX=$_lt_dar_allow_undefined
- case $cc_basename in
- ifort*|nagfor*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test yes = "$_lt_dar_can_shared"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
- module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
- archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
- module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
- if test yes != "$lt_cv_apple_cc_single_mod"; then
- archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
- archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
- fi
-
- else
- ld_shlibs_CXX=no
- fi
-
- ;;
-
- os2*)
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- hardcode_minus_L_CXX=yes
- allow_undefined_flag_CXX=unsupported
- shrext_cmds=.dll
- archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
- $ECHO EXPORTS >> $output_objdir/$libname.def~
- prefix_cmds="$SED"~
- if test EXPORTS = "`$SED 1q $export_symbols`"; then
- prefix_cmds="$prefix_cmds -e 1d";
- fi~
- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
- emximp -o $lib $output_objdir/$libname.def'
- old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
- enable_shared_with_static_runtimes_CXX=yes
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- ld_shlibs_CXX=no
- ;;
-
- freebsd-elf*)
- archive_cmds_need_lc_CXX=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- ld_shlibs_CXX=yes
- ;;
-
- haiku*)
- archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- link_all_deplibs_CXX=yes
- ;;
-
- hpux9*)
- hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
- hardcode_libdir_separator_CXX=:
- export_dynamic_flag_spec_CXX='$wl-E'
- hardcode_direct_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test yes = "$GXX"; then
- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test no = "$with_gnu_ld"; then
- hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
- hardcode_libdir_separator_CXX=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- export_dynamic_flag_spec_CXX='$wl-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- ;;
- *)
- hardcode_direct_CXX=yes
- hardcode_direct_absolute_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test yes = "$GXX"; then
- if test no = "$with_gnu_ld"; then
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- interix[3-9]*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
- export_dynamic_flag_spec_CXX='$wl-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test yes = "$GXX"; then
- if test no = "$with_gnu_ld"; then
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- else
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
- fi
- fi
- link_all_deplibs_CXX=yes
- ;;
- esac
- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
- hardcode_libdir_separator_CXX=:
- inherit_rpath_CXX=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
- export_dynamic_flag_spec_CXX='$wl--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- archive_cmds_need_lc_CXX=no
- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
- export_dynamic_flag_spec_CXX='$wl--export-dynamic'
- whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
- prelink_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- old_archive_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- archive_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
-
- hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir'
- export_dynamic_flag_spec_CXX='$wl--export-dynamic'
- whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
- export_dynamic_flag_spec_CXX='$wl--export-dynamic'
- archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
- if test yes = "$supports_anon_versioning"; then
- archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
- compiler_needs_object_CXX=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- ld_shlibs_CXX=yes
- ;;
-
- openbsd* | bitrig*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- hardcode_direct_absolute_CXX=yes
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
- export_dynamic_flag_spec_CXX='$wl-E'
- whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- cxx*)
- case $host in
- osf3*)
- allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
- archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
- ;;
- *)
- allow_undefined_flag_CXX=' -expect_unresolved \*'
- archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
- archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
- $RM $lib.exp'
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- ;;
- esac
-
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test yes,no = "$GXX,$with_gnu_ld"; then
- allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
- case $host in
- osf3*)
- archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- ;;
- *)
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
- ;;
- esac
-
- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- archive_cmds_need_lc_CXX=yes
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_shlibpath_var_CXX=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands '-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
- ;;
- esac
- link_all_deplibs_CXX=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test yes,no = "$GXX,$with_gnu_ld"; then
- no_undefined_flag_CXX=' $wl-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require '-G' NOT '-shared' on this
- # platform.
- archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag_CXX='$wl-z,text'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We CANNOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag_CXX='$wl-z,text'
- allow_undefined_flag_CXX='$wl-z,nodefs'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='$wl-R,$libdir'
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- export_dynamic_flag_spec_CXX='$wl-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
- '"$old_archive_cmds_CXX"
- reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
- '"$reload_cmds_CXX"
- ;;
- *)
- archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
- test no = "$ld_shlibs_CXX" && can_build_shared=no
-
- GCC_CXX=$GXX
- LD_CXX=$LD
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case $prev$p in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test x-L = "$p" ||
- test x-R = "$p"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test no = "$pre_test_object_deps_done"; then
- case $prev in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$compiler_lib_search_path_CXX"; then
- compiler_lib_search_path_CXX=$prev$p
- else
- compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$postdeps_CXX"; then
- postdeps_CXX=$prev$p
- else
- postdeps_CXX="${postdeps_CXX} $prev$p"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test no = "$pre_test_object_deps_done"; then
- if test -z "$predep_objects_CXX"; then
- predep_objects_CXX=$p
- else
- predep_objects_CXX="$predep_objects_CXX $p"
- fi
- else
- if test -z "$postdep_objects_CXX"; then
- postdep_objects_CXX=$p
- else
- postdep_objects_CXX="$postdep_objects_CXX $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- predep_objects_CXX=
- postdep_objects_CXX=
- postdeps_CXX=
- ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-
- # C++ specific cases for pic, static, wl, etc.
- if test yes = "$GXX"; then
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- fi
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the '-m68020' flag to GCC prevents building anything better,
- # like '-m68040'.
- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- case $host_os in
- os2*)
- lt_prog_compiler_static_CXX='$wl-static'
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic_CXX='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- lt_prog_compiler_pic_CXX=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static_CXX=
- ;;
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic_CXX=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic_CXX='-fPIC -shared'
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[4-9]*)
- # All AIX code is PIC.
- if test ia64 = "$host_cpu"; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- else
- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
- if test ia64 != "$host_cpu"; then
- lt_prog_compiler_pic_CXX='+Z'
- fi
- ;;
- aCC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_CXX='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64, which still supported -KPIC.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fpic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-qpic'
- lt_prog_compiler_static_CXX='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- lt_prog_compiler_pic_CXX='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic_CXX='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- lt_prog_compiler_wl_CXX='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- lt_prog_compiler_pic_CXX='-pic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- lcc*)
- # Lucid
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- lt_prog_compiler_can_build_shared_CXX=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms that do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic_CXX=
- ;;
- *)
- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works_CXX=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works_CXX=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then
- case $lt_prog_compiler_pic_CXX in
- "" | " "*) ;;
- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
- esac
-else
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works_CXX=no
- save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works_CXX=yes
- fi
- else
- lt_cv_prog_compiler_static_works_CXX=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS=$save_LDFLAGS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then
- :
-else
- lt_prog_compiler_static_CXX=
-fi
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links=nottested
-if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test no = "$hard_links"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- case $host_os in
- aix[4-9]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to GNU nm, but means don't demangle to AIX nm.
- # Without the "-l" option, or with the "-B" option, AIX nm treats
- # weak defined symbols like other global defined symbols, whereas
- # GNU nm marks them as "W".
- # While the 'weak' keyword is ignored in the Export File, we need
- # it in the Import File for the 'aix-soname' feature, so we have
- # to replace the "-B" option with "-P" for AIX nm.
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- export_symbols_cmds_CXX=$ltdll_cmds
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
- ;;
- esac
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test no = "$ld_shlibs_CXX" && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc_CXX=yes
-
- if test yes,yes = "$GCC,$enable_shared"; then
- case $archive_cmds_CXX in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc_CXX=no
- else
- lt_cv_archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
- archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=.so
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='$libname$release$shared_ext$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test ia64 = "$host_cpu"; then
- # AIX 5 supports IA64
- library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line '#! .'. This would cause the generated library to
- # depend on '.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # Using Import Files as archive members, it is possible to support
- # filename-based versioning of shared library archives on AIX. While
- # this would work for both with and without runtime linking, it will
- # prevent static linking of such archives. So we do filename-based
- # shared library versioning with .so extension only, which is used
- # when both runtime linking and shared linking is enabled.
- # Unfortunately, runtime linking may impact performance, so we do
- # not want this to be the default eventually. Also, we use the
- # versioned .so libs for executables only if there is the -brtl
- # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
- # To allow for filename-based versioning support, we need to create
- # libNAME.so.V as an archive file, containing:
- # *) an Import File, referring to the versioned filename of the
- # archive as well as the shared archive member, telling the
- # bitwidth (32 or 64) of that shared object, and providing the
- # list of exported symbols of that shared object, eventually
- # decorated with the 'weak' keyword
- # *) the shared object with the F_LOADONLY flag set, to really avoid
- # it being seen by the linker.
- # At run time we better use the real file rather than another symlink,
- # but for link time we create the symlink libNAME.so -> libNAME.so.V
-
- case $with_aix_soname,$aix_use_runtimelinking in
- # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- aix,yes) # traditional libtool
- dynamic_linker='AIX unversionable lib.so'
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- aix,no) # traditional AIX only
- dynamic_linker='AIX lib.a(lib.so.V)'
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- svr4,*) # full svr4 only
- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,yes) # both, prefer svr4
- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
- # unpreferred sharedlib libNAME.a needs extra handling
- postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
- postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
- # We do not specify a path in Import Files, so LIBPATH fires.
- shlibpath_overrides_runpath=yes
- ;;
- *,no) # both, prefer aix
- dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
- library_names_spec='$libname$release.a $libname.a'
- soname_spec='$libname$release$shared_ext$major'
- # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
- postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
- postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
- ;;
- esac
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='$libname$shared_ext'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
-
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
- library_names_spec='$libname.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec=$LIB
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$major$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=no
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- if test 32 = "$HPUX_IA64_MODE"; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux32
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- sys_lib_dlsearch_path_spec=/usr/lib/hpux64
- fi
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test yes = "$lt_cv_prog_gnu_ld"; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
- sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-linux*android*)
- version_type=none # Android doesn't support versioned libraries.
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext'
- soname_spec='$libname$release$shared_ext'
- finish_cmds=
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- dynamic_linker='Android linker'
- # Don't embed -rpath directories since the linker doesn't support them.
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Ideally, we could use ldconfig to report *all* directores which are
- # searched for libraries, however this is still not possible. Aside from not
- # being certain /sbin/ldconfig is available, command
- # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
- # even though it is searched at run-time. Try to do the best guess by
- # appending ld.so.conf contents (and includes) to the search path.
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd* | bitrig*)
- version_type=sunos
- sys_lib_dlsearch_path_spec=/usr/lib
- need_lib_prefix=no
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
- need_version=no
- else
- need_version=yes
- fi
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-os2*)
- libname_spec='$name'
- version_type=windows
- shrext_cmds=.dll
- need_version=no
- need_lib_prefix=no
- # OS/2 can only load a DLL with a base name of 8 characters or less.
- soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
- v=$($ECHO $release$versuffix | tr -d .-);
- n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
- $ECHO $n$v`$shared_ext'
- library_names_spec='${libname}_dll.$libext'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=BEGINLIBPATH
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- postinstall_cmds='base_file=`basename \$file`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='$libname$release$shared_ext$major'
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test yes = "$with_gnu_ld"; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec; then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
- soname_spec='$libname$shared_ext.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=sco
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test yes = "$with_gnu_ld"; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
- soname_spec='$libname$release$shared_ext$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test no = "$dynamic_linker" && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test yes = "$GCC"; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
- sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
-fi
-
-if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
- sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
-fi
-
-# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
-
-# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
-
-# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
- test -n "$runpath_var_CXX" ||
- test yes = "$hardcode_automatic_CXX"; then
-
- # We can hardcode non-existent directories.
- if test no != "$hardcode_direct_CXX" &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" &&
- test no != "$hardcode_minus_L_CXX"; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action_CXX=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action_CXX=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test relink = "$hardcode_action_CXX" ||
- test yes = "$inherit_rpath_CXX"; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test yes = "$shlibpath_overrides_runpath" ||
- test no = "$enable_shared"; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
-
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test yes != "$_lt_caught_CXX_error"
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
- if ${ac_cv_prog_CXXCPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-CC="$CC $WARNING_CFLAGS"
-CXX="$CXX $WARNING_CXXFLAGS"
-
-# Check whether --enable-precondition-checking was given.
-if test "${enable_precondition_checking+set}" = set; then :
- enableval=$enable_precondition_checking; if test "$enableval" = yes; then
-
-$as_echo "#define HAVE_PRECONDITION_CHECKING 1" >>confdefs.h
-
- fi
-fi
-
-
-# Check whether --enable-adobe-code was given.
-if test "${enable_adobe_code+set}" = set; then :
- enableval=$enable_adobe_code;
-else
- enable_adobe_code=yes
-fi
-
-if test "$enable_adobe_code" = yes; then
-
-$as_echo "#define HAVE_ADOBE_CODE 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where template objects are stored" >&5
-$as_echo_n "checking where template objects are stored... " >&6; }
-if ${ac_cv_cxx_templobjs+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_cxx_templobjs='unknown'
- if test "$GXX" = yes; then
- ac_cv_cxx_templobjs='nowhere'
- else
- case $CXX in
- CC|*/CC)
- cat > conftest.cc <<EOF
-template<class T> class A { public : A () {} };
-template<class T> void f (const A<T>&) {}
-main()
-{ A<double> d;
- A<int> i;
- f (d);
- f (i);
- return 0;
-}
-EOF
- if test "$ac_cv_cxx_templobjs" = 'unknown' ; then
- if test -d Templates.DB ; then
- rm -fr Templates.DB
- fi
- if $CXX $CXXFLAGS -ptr. -c conftest.cc 1> /dev/null 2>&1; then
- if test -d Templates.DB ; then
-# this should be Sun CC <= 4.2
- CXXFLAGS="$CXXFLAGS -ptr."
- if test x"$LIBTOOL" = x ; then
- ac_cv_cxx_templobjs='Templates.DB/*.o'
- else
- ac_cv_cxx_templobjs='Templates.DB/*.lo'
- fi
- rm -fr Templates.DB
- fi
- fi
- fi
- if test "$ac_cv_cxx_templobjs" = 'unknown' ; then
- if test -d SunWS_cache ; then
- rm -fr SunWS_cache
- fi
- if $CXX $CXXFLAGS -c conftest.cc 1> /dev/null 2>&1; then
- if test -d SunWS_cache ; then
-# this should be Sun WorkShop C++ compiler 5.x
-# or Sun Forte C++ compiler >= 6.x
- if test x"$LIBTOOL" = x ; then
- ac_cv_cxx_templobjs='SunWS_cache/*/*.o'
- else
- ac_cv_cxx_templobjs='SunWS_cache/*/*.lo'
- fi
- rm -fr SunWS_cache
- fi
- fi
- fi
- rm -f conftest* ;;
- esac
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_templobjs" >&5
-$as_echo "$ac_cv_cxx_templobjs" >&6; }
-case $ac_cv_cxx_templobjs in
- unknown|nowhere)
- TEMPLATE_OBJS="" ;;
- *)
- TEMPLATE_OBJS="$ac_cv_cxx_templobjs" ;;
-esac
-
-
-# Check whether --enable-cxx-runtime-hack was given.
-if test "${enable_cxx_runtime_hack+set}" = set; then :
- enableval=$enable_cxx_runtime_hack;
-fi
-
-
-if test "x$GXX:$enable_cxx_runtime_hack" = xyes:yes; then
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-for ac_header in iostream
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "iostream" "ac_cv_header_iostream" "$ac_includes_default"
-if test "x$ac_cv_header_iostream" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_IOSTREAM 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for statically linking C++ runtime library" >&5
-$as_echo_n "checking for statically linking C++ runtime library... " >&6; }
-if ${kpse_cv_cxx_hack+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef HAVE_IOSTREAM
-#include <iostream>
-using namespace std;
-#else
-#include <iostream.h>
-#endif
-int
-main ()
-{
-cout <<"worksok\n";
- ;
- return 0;
-}
-_ACEOF
- case $host in #(
- *cygwin*) :
- flags_try0='-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic' ;; #(
- *) :
- flags_try0='-nodefaultlibs -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lm'
- flags_try1='-lgcc_eh -lgcc -lc -lgcc_eh -lgcc'
- flags_try2='-lgcc -lc -lgcc' ;;
-esac
- kpse_save_LIBS=$LIBS
- cpp_link_hack=false
- for flags in "$flags_try1" "$flags_try2"; do
- LIBS="$kpse_save_LIBS $flags_try0 $flags"
- if ac_fn_cxx_try_link "$LINENO"; then :
- if test "x$cross_compiling" = xyes; then :
- cpp_link_hack=true; break
-else
- case `(./conftest$ac_exeext; exit) 2>/dev/null` in #(
- worksok) :
- cpp_link_hack=true; break ;; #(
- *) :
- ;;
-esac
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- done
- LIBS=$kpse_save_LIBS
- if $cpp_link_hack; then
- kpse_cv_cxx_hack=ok
- kpse_cv_cxx_flags="$flags_try0 $flags"
- else
- kpse_cv_cxx_hack="not supported"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_cxx_hack" >&5
-$as_echo "$kpse_cv_cxx_hack" >&6; }
-if test "x$kpse_cv_cxx_hack" = xok; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: using $kpse_cv_cxx_flags" >&5
-$as_echo "$as_me: using $kpse_cv_cxx_flags" >&6;}
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-if test "x$kpse_cv_cxx_hack" = xok; then
- CXXLD='$(top_builddir)/CXXLD.sh'
- cxxld_sh="#! ${CONFIG_SHELL-/bin/sh}
-# CXXLD.sh. Generated by configure.
-set -- $CXX \"\$@\" $kpse_cv_cxx_flags
-echo \"\$0:\" \"\$@\"
-exec \"\$@\""
- ac_config_commands="$ac_config_commands CXXLD.sh"
-
-else
- CXXLD='$(CXX)'
-fi
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
-$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if eval \${$as_ac_Header+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$as_ac_Header=yes"
-else
- eval "$as_ac_Header=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_ac_Header
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-_ACEOF
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' dir; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_opendir+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
-else
- ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
-int
-main ()
-{
-return opendir ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' x; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_opendir+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
-else
- ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-fi
-
-for ac_header in fcntl.h unistd.h sys/time.h sys/wait.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <new> works" >&5
-$as_echo_n "checking whether <new> works... " >&6; }
-if ${ac_cv_good_new_hdr+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <new>
-int
-main ()
-{
-
- int a;
- int *b = new(&a) int;
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- ac_cv_good_new_hdr=yes
-else
- ac_cv_good_new_hdr=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_good_new_hdr" >&5
-$as_echo "$ac_cv_good_new_hdr" >&6; }
-if test "$ac_cv_good_new_hdr" = yes; then
-
-$as_echo "#define HAVE_NEW_HDR 1" >>confdefs.h
-
-fi
-for ac_header in new.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "new.h" "ac_cv_header_new_h" "$ac_includes_default"
-if test "x$ac_cv_header_new_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_NEW_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-$as_echo "#define WORDS_BIGENDIAN_SET 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_bigendian=unknown
- # See if we're dealing with a universal compiler.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __APPLE_CC__
- not a universal capable compiler
- #endif
- typedef int dummy;
-
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
- # Check for potential -arch flags. It is not universal unless
- # there are at least two -arch flags with different values.
- ac_arch=
- ac_prev=
- for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
- if test -n "$ac_prev"; then
- case $ac_word in
- i?86 | x86_64 | ppc | ppc64)
- if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
- ac_arch=$ac_word
- else
- ac_cv_c_bigendian=universal
- break
- fi
- ;;
- esac
- ac_prev=
- elif test "x$ac_word" = "x-arch"; then
- ac_prev=arch
- fi
- done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if test $ac_cv_c_bigendian = unknown; then
- # See if sys/param.h defines the BYTE_ORDER macro.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
- && LITTLE_ENDIAN)
- bogus endian macros
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- # It does; now see whether it defined to BIG_ENDIAN or not.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_c_bigendian=yes
-else
- ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
-
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
- bogus endian macros
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- # It does; now see whether it defined to _BIG_ENDIAN or not.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
-
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
- not big endian
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_c_bigendian=yes
-else
- ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # Compile a test program.
- if test "$cross_compiling" = yes; then :
- # Try to guess by grepping values from an object file.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-short int ascii_mm[] =
- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- short int ascii_ii[] =
- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
- int use_ascii (int i) {
- return ascii_mm[i] + ascii_ii[i];
- }
- short int ebcdic_ii[] =
- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- short int ebcdic_mm[] =
- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
- int use_ebcdic (int i) {
- return ebcdic_mm[i] + ebcdic_ii[i];
- }
- extern int foo;
-
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
- ac_cv_c_bigendian=yes
- fi
- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
- if test "$ac_cv_c_bigendian" = unknown; then
- ac_cv_c_bigendian=no
- else
- # finding both strings is unlikely to happen, but who knows?
- ac_cv_c_bigendian=unknown
- fi
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long int l;
- char c[sizeof (long int)];
- } u;
- u.l = 1;
- return u.c[sizeof (long int) - 1] == 1;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
- ac_cv_c_bigendian=no
-else
- ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
- yes)
- $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
- no)
- ;; #(
- universal)
-
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
- ;; #(
- *)
- as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
- esac
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-need_fixlibc=0
-for ac_func in strerror
-do :
- ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror"
-if test "x$ac_cv_func_strerror" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STRERROR 1
-_ACEOF
-
-else
- need_fixlibc=1
-fi
-done
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken strtod" >&5
-$as_echo_n "checking for broken strtod... " >&6; }
-if ${ac_cv_broken_strtod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_broken_strtod=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-#include <stdlib.h>
-int main(int c, char **v) {
- char s[] = "12 ";
- char *endp;
- double d = strtod(s, &endp);
- return (s + 2) == endp;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_broken_strtod=yes
-else
- ac_cv_broken_strtod=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_strtod" >&5
-$as_echo "$ac_cv_broken_strtod" >&6; }
-if test "x$ac_cv_broken_strtod" = xyes; then
- need_fixlibc=1
-
-$as_echo "#define HAVE_BROKEN_STRTOD 1" >>confdefs.h
-
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_fn_cxx_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "#include <string.h>
-"
-if test "x$ac_cv_have_decl_strnlen" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNLEN $ac_have_decl
-_ACEOF
-
-for ac_func in strnlen
-do :
- ac_fn_cxx_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
-if test "x$ac_cv_func_strnlen" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STRNLEN 1
-_ACEOF
- have_strnlen=1
-else
- need_fixlibc=1
-fi
-done
-
-if test "x$have_strnlen" = x1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken strnlen" >&5
-$as_echo_n "checking for broken strnlen... " >&6; }
-if ${ac_cv_broken_strnlen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_broken_strnlen=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-#include <stdio.h>
-int main(int c, char **v) {
- char s[] = "01234567891";
- return strnlen(s, 10) == 10;
-}
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
- ac_cv_broken_strnlen=yes
-else
- ac_cv_broken_strnlen=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_strnlen" >&5
-$as_echo "$ac_cv_broken_strnlen" >&6; }
- if test "x$ac_cv_broken_strnlen" = xyes; then
- need_fixlibc=1
-
-$as_echo "#define HAVE_BROKEN_STRNLEN 1" >>confdefs.h
-
- fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-for ac_func in ctime ftruncate mkstemp sigaction strdup strtoul vsnprintf waitpid
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-ac_fn_c_check_func "$LINENO" "floor" "ac_cv_func_floor"
-if test "x$ac_cv_func_floor" = xyes; then :
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for floor in -lm" >&5
-$as_echo_n "checking for floor in -lm... " >&6; }
-if ${ac_cv_lib_m_floor+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char floor ();
-int
-main ()
-{
-return floor ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_m_floor=yes
-else
- ac_cv_lib_m_floor=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_floor" >&5
-$as_echo "$ac_cv_lib_m_floor" >&6; }
-if test "x$ac_cv_lib_m_floor" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
- LIBS="-lm $LIBS"
-
-fi
-
-fi
-
-ac_fn_c_check_func "$LINENO" "fabs" "ac_cv_func_fabs"
-if test "x$ac_cv_func_fabs" = xyes; then :
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fabs in -lm" >&5
-$as_echo_n "checking for fabs in -lm... " >&6; }
-if ${ac_cv_lib_m_fabs+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char fabs ();
-int
-main ()
-{
-return fabs ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_m_fabs=yes
-else
- ac_cv_lib_m_fabs=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_fabs" >&5
-$as_echo "$ac_cv_lib_m_fabs" >&6; }
-if test "x$ac_cv_lib_m_fabs" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
- LIBS="-lm $LIBS"
-
-fi
-
-fi
-
- if test x$need_fixlibc = x1; then
- FIXLIBC_TRUE=
- FIXLIBC_FALSE='#'
-else
- FIXLIBC_TRUE='#'
- FIXLIBC_FALSE=
-fi
-
-
-
-
-for ac_header in inttypes.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H 1
-_ACEOF
- have_inttypes_h=yes
-else
- have_inttypes_h=no
-fi
-
-done
-
-for ac_header in sys/types.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_types_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_TYPES_H 1
-_ACEOF
- have_sys_types_h=yes
-else
- have_sys_types_h=no
-fi
-
-done
-
-
-if test $have_inttypes_h = no -a $have_sys_types_h = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uintXX_t typedefs" >&5
-$as_echo_n "checking for uintXX_t typedefs... " >&6; }
-if ${ac_cv_uint_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then :
- ac_cv_uint_t=yes
-else
- ac_cv_uint_t=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_uint_t" >&5
-$as_echo "$ac_cv_uint_t" >&6; }
-fi
-if test $have_inttypes_h = no -a $have_sys_types_h = yes -a "$ac_cv_uint_t" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for u_intXX_t typedefs" >&5
-$as_echo_n "checking for u_intXX_t typedefs... " >&6; }
-if ${ac_cv_u_int_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "(^|[^a-zA-Z_0-9])u_int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then :
- ac_cv_u_int_t=yes
-else
- ac_cv_u_int_t=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_u_int_t" >&5
-$as_echo "$ac_cv_u_int_t" >&6; }
-fi
-if test $have_inttypes_h = yes -o "$ac_cv_uint_t" = yes; then
- :
-elif test "$ac_cv_u_int_t" = yes; then
-
-$as_echo "#define HAVE_U_INT_TYPES 1" >>confdefs.h
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
-=========================================
-
-Neither uint32_t nor u_int32_t defined by <inttypes.h> or <sys/types.h>!
-Assuming \"short\" has 16 bits and \"int\" has 32 bits.
-
-=========================================" >&5
-$as_echo "$as_me: WARNING:
-=========================================
-
-Neither uint32_t nor u_int32_t defined by <inttypes.h> or <sys/types.h>!
-Assuming \"short\" has 16 bits and \"int\" has 32 bits.
-
-=========================================" >&2;}
-
-$as_echo "#define HAVE_FAKE_INT_TYPES 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-"
-if test "x$ac_cv_type_uintptr_t" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_UINTPTR_T 1
-_ACEOF
-
-
-fi
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if ${ac_cv_sizeof_void_p+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_void_p" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_void_p=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-_ACEOF
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5
-$as_echo_n "checking size of unsigned long... " >&6; }
-if ${ac_cv_sizeof_unsigned_long+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_unsigned_long" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned long)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_unsigned_long=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5
-$as_echo "$ac_cv_sizeof_unsigned_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long
-_ACEOF
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned int" >&5
-$as_echo_n "checking size of unsigned int... " >&6; }
-if ${ac_cv_sizeof_unsigned_int+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int))" "ac_cv_sizeof_unsigned_int" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_unsigned_int" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned int)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_unsigned_int=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_int" >&5
-$as_echo "$ac_cv_sizeof_unsigned_int" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int
-_ACEOF
-
-
-
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-for ac_header in byteorder.h netinet/in.h sys/param.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ntohs and ntohl are defined" >&5
-$as_echo_n "checking whether ntohs and ntohl are defined... " >&6; }
-ac_ntoh_defined=no
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_BYTEORDER_H
-# include <byteorder.h>
-#elif HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-#ifdef WIN32
-# ifdef __MSC_VER
-# pragma warning (disable: 4290)
-# endif
-# include <winsock2.h>
-#endif
-
-int
-main ()
-{
-(void) ntohs(0x0020), (void) ntohl(0x03040020);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-ac_ntoh_defined=yes
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-if test $ac_ntoh_defined = no; then
- for ac_header in arpa/inet.h
-do :
- ac_fn_cxx_check_header_mongrel "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default"
-if test "x$ac_cv_header_arpa_inet_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_ARPA_INET_H 1
-_ACEOF
- have_arpa_inet_h=yes
-else
- have_arpa_inet_h=no
-fi
-
-done
-
- if test $have_arpa_inet_h = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ntohs and ntohl are defined in <arpa/inet.h>" >&5
-$as_echo_n "checking whether ntohs and ntohl are defined in <arpa/inet.h>... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <arpa/inet.h>
-
-int
-main ()
-{
-(void) ntohs(0x0020), (void) ntohl(0x03040020);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define NEED_ARPA_INET_H 1" >>confdefs.h
-
-ac_ntoh_defined=yes
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
-fi
-if test $ac_ntoh_defined = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
-=========================================
-
-Cannot find a definition for ntohs and/or ntohl!
-
-=========================================" >&5
-$as_echo "$as_me: WARNING:
-=========================================
-
-Cannot find a definition for ntohs and/or ntohl!
-
-=========================================" >&2;}
- if test "x$enable_build" != xno; then
- as_fn_error $? "exiting" "$LINENO" 5
- fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing ntohs" >&5
-$as_echo_n "checking for library containing ntohs... " >&6; }
-if ${ac_cv_search_ntohs+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ntohs ();
-int
-main ()
-{
-return ntohs ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' -lnet -lwinsock32; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_ntohs=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_ntohs+:} false; then :
- break
-fi
-done
-if ${ac_cv_search_ntohs+:} false; then :
-
-else
- ac_cv_search_ntohs=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ntohs" >&5
-$as_echo "$ac_cv_search_ntohs" >&6; }
-ac_res=$ac_cv_search_ntohs
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native WIN32 or MINGW32" >&5
-$as_echo_n "checking for native WIN32 or MINGW32... " >&6; }
-if ${kpse_cv_have_win32+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef WIN32
- choke me
-#endif
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __MINGW32__
- choke me
-#endif
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- kpse_cv_have_win32=mingw32
-else
- kpse_cv_have_win32=native
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- kpse_cv_have_win32=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_win32" >&5
-$as_echo "$kpse_cv_have_win32" >&6; }
-
-if test "x$kpse_cv_have_win32" != xno; then
- LIBS="$LIBS -lwsock32"
-fi
-
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for addressable va_list type" >&5
-$as_echo_n "checking for addressable va_list type... " >&6; }
-if ${ac_cv_va_list_addr+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-void f(va_list *) {
-}
-void g(va_list val) {
- f(&val);
-}
-void h(int a, ...) {
- va_list val;
- va_start(val, a);
- g(val);
- va_end(val);
-}
-int
-main ()
-{
-h(2, 3, 4);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_va_list_addr=yes
-else
- ac_cv_va_list_addr=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_va_list_addr" >&5
-$as_echo "$ac_cv_va_list_addr" >&6; }
-if test "x$ac_cv_va_list_addr" = xyes; then
-
-$as_echo "#define HAVE_ADDRESSABLE_VA_LIST 1" >>confdefs.h
-
-fi
-
-
-
-## Define configure options for lcdf-typetools. Extracted from configure.ac
-## for ease of building TeX Live.
-# Check whether --enable-cfftot1 was given.
-if test "${enable_cfftot1+set}" = set; then :
- enableval=$enable_cfftot1;
-fi
-# Check whether --enable-mmafm was given.
-if test "${enable_mmafm+set}" = set; then :
- enableval=$enable_mmafm;
-fi
-# Check whether --enable-mmpfb was given.
-if test "${enable_mmpfb+set}" = set; then :
- enableval=$enable_mmpfb;
-fi
-# Check whether --enable-otfinfo was given.
-if test "${enable_otfinfo+set}" = set; then :
- enableval=$enable_otfinfo;
-fi
-# Check whether --enable-otftotfm was given.
-if test "${enable_otftotfm+set}" = set; then :
- enableval=$enable_otftotfm;
-fi
-# Check whether --enable-t1dotlessj was given.
-if test "${enable_t1dotlessj+set}" = set; then :
- enableval=$enable_t1dotlessj;
-fi
-# Check whether --enable-t1lint was given.
-if test "${enable_t1lint+set}" = set; then :
- enableval=$enable_t1lint;
-fi
-# Check whether --enable-t1rawafm was given.
-if test "${enable_t1rawafm+set}" = set; then :
- enableval=$enable_t1rawafm;
-fi
-# Check whether --enable-t1reencode was given.
-if test "${enable_t1reencode+set}" = set; then :
- enableval=$enable_t1reencode;
-fi
-# Check whether --enable-t1testpage was given.
-if test "${enable_t1testpage+set}" = set; then :
- enableval=$enable_t1testpage;
-fi
-# Check whether --enable-ttftotype42 was given.
-if test "${enable_ttftotype42+set}" = set; then :
- enableval=$enable_ttftotype42;
-fi
-
-# Check whether --enable-cfftot1 was given.
-if test "${enable_cfftot1+set}" = set; then :
- enableval=$enable_cfftot1;
-fi
-# Check whether --enable-t1dotlessj was given.
-if test "${enable_t1dotlessj+set}" = set; then :
- enableval=$enable_t1dotlessj;
-fi
-# Check whether --enable-ttftotype42 was given.
-if test "${enable_ttftotype42+set}" = set; then :
- enableval=$enable_ttftotype42;
-fi
-# Check whether --enable-updmap was given.
-if test "${enable_updmap+set}" = set; then :
- enableval=$enable_updmap;
-fi
-
-
-
-SELECTED_SUBDIRS=
-test "x$enable_cfftot1" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS cfftot1"
-test "x$enable_mmafm" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS mmafm"
-test "x$enable_mmpfb" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS mmpfb"
-test "x$enable_otfinfo" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS otfinfo"
-test "x$enable_otftotfm" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS otftotfm"
-test "x$enable_t1dotlessj" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS t1dotlessj"
-test "x$enable_t1lint" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS t1lint"
-test "x$enable_t1rawafm" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS t1rawafm"
-test "x$enable_t1reencode" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS t1reencode"
-test "x$enable_t1testpage" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS t1testpage"
-test "x$enable_ttftotype42" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS ttftotype42"
-
-
-
-if test "x$enable_auto_cfftot1" != xno; then :
-
-$as_echo "#define HAVE_AUTO_CFFTOT1 1" >>confdefs.h
-
-fi
-if test "x$enable_auto_t1dotlessj" != xno; then :
-
-$as_echo "#define HAVE_AUTO_T1DOTLESSJ 1" >>confdefs.h
-
-fi
-if test "x$enable_auto_ttftotype42" != xno; then :
-
-$as_echo "#define HAVE_AUTO_TTFTOTYPE42 1" >>confdefs.h
-
-fi
-if test "x$enable_auto_updmap" != xno; then :
-
-$as_echo "#define HAVE_AUTO_UPDMAP 1" >>confdefs.h
-
-fi
-
-
-
-
-
- if test "x$enable_texlive_build" = xyes; then
- texlive_build_TRUE=
- texlive_build_FALSE='#'
-else
- texlive_build_TRUE='#'
- texlive_build_FALSE=
-fi
-
-
-
-# Check whether --with-kpathsea was given.
-if test "${with_kpathsea+set}" = set; then :
- withval=$with_kpathsea;
-fi
-
-
-kpse_save_CPPFLAGS=$CPPFLAGS
-kpse_save_LIBS=$LIBS
-
-##tldbg _KPSE_INIT: Initialize TL infrastructure.
-kpse_BLD=`(cd "./../../." && pwd)`
-kpse_SRC=`(cd "$srcdir/../../." && pwd)`
-
-##tldbg _KPSE_USE_LIBTOOL: Generate a libtool script for use in configure tests.
-: ${CONFIG_LT=./config.lt}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_LT" >&5
-$as_echo "$as_me: creating $CONFIG_LT" >&6;}
-as_write_fail=0
-cat >"$CONFIG_LT" <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>"$CONFIG_LT" <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## --------------------------------- ##
-## Main body of "$CONFIG_LT" script. ##
-## --------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x "$CONFIG_LT"
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-
-lt_cl_help="\
-'$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $0 [OPTIONS]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool@gnu.org>."
-
-lt_cl_version="\
-LCDF typetools (TeX Live) config.lt 2.108
-configured by $0, generated by GNU Autoconf 2.69.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test 0 != $#
-do
- case $1 in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) as_fn_error $? "unrecognized option: $1
-Try '$0 --help' for more information." "$LINENO" 5 ;;
-
- *) as_fn_error $? "unrecognized argument: $1
-Try '$0 --help' for more information." "$LINENO" 5 ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec 6>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
-configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in AS \
-DLLTOOL \
-OBJDUMP \
-SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_import \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-lt_cv_nm_interface \
-nm_file_list_spec \
-lt_cv_truncate_bin \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-configure_time_dlsearch_path \
-configure_time_lt_sys_library_path \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-
-# See if we are running on zsh, and set the options that allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ofile" >&5
-$as_echo "$as_me: creating $ofile" >&6;}
-
-
- # See if we are running on zsh, and set the options that allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile=${ofile}T
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-
-# Provide generalized library-building support services.
-# Written by Gordon Matzigkeit, 1996
-
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program or library that is built
-# using GNU Libtool, you may include this file under the same
-# distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags='CXX '
-
-# Configured defaults for sys_lib_dlsearch_path munging.
-: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Assembler program.
-AS=$lt_AS
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$lt_OBJDUMP
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shared archive member basename,for filename based shared library versioning on AIX.
-shared_archive_member_spec=$shared_archive_member_spec
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm into a list of symbols to manually relocate.
-global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name lister interface.
-nm_interface=$lt_lt_cv_nm_interface
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and where our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# Command to truncate a binary pipe.
-lt_truncate_bin=$lt_lt_cv_truncate_bin
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Detected run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
-
-# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
-configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \$shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- cat <<'_LT_EOF' >> "$cfgfile"
-
-# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
-
-# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-# string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-# string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-# "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-# VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
- case x$2 in
- x)
- ;;
- *:)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
- ;;
- x:*)
- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- *::*)
- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
- ;;
- *)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- esac
-}
-
-
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
- for cc_temp in $*""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
- done
- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-
-
-# ### END FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain=$ac_aux_dir/ltmain.sh
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
-
- cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \$shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
-
-as_fn_exit 0
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test yes = "$silent" &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec 5>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec 5>>config.log
-$lt_cl_success || as_fn_exit 1
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_link="./libtool --mode=link --tag=CXX $ac_link"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$PKG_CONFIG"; then
- ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-PKG_CONFIG=$ac_cv_prog_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_PKG_CONFIG"; then
- ac_ct_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_PKG_CONFIG"; then
- ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG
-if test -n "$ac_ct_PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5
-$as_echo "$ac_ct_PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_PKG_CONFIG" = x; then
- PKG_CONFIG="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- PKG_CONFIG=$ac_ct_PKG_CONFIG
- fi
-else
- PKG_CONFIG="$ac_cv_prog_PKG_CONFIG"
-fi
-
-##tldbg _KPSE_LIB_FLAGS: Setup kpathsea (-lkpathsea) flags.
-echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=kpathsea, libname=kpathsea, options=lt, tlincl=-IBLD/texk -ISRC/texk, tllib=BLD/texk/kpathsea/libkpathsea.la, tlextra=, rebuildsrcdeps=${top_srcdir}/../kpathsea/*.[ch], rebuildblddeps=${top_builddir}/../kpathsea/paths.h.' >&5
-##tldbg _KPSE_LIB_FLAGS_TL: kpathsea (kpathsea) lt.
-
-# Check whether --with-system-kpathsea was given.
-if test "${with_system_kpathsea+set}" = set; then :
- withval=$with_system_kpathsea;
-fi
-if test "x$with_system_kpathsea" = xyes; then
- if $PKG_CONFIG kpathsea; then
- KPATHSEA_INCLUDES=`$PKG_CONFIG kpathsea --cflags`
- KPATHSEA_LIBS=`$PKG_CONFIG kpathsea --libs`
-elif test "x$need_kpathsea:$with_system_kpathsea" = xyes:yes; then
- as_fn_error $? "did not find kpathsea" "$LINENO" 5
-fi
-else
- KPATHSEA_INCLUDES="-I$kpse_BLD/texk -I$kpse_SRC/texk"
- KPATHSEA_LIBS="$kpse_BLD/texk/kpathsea/libkpathsea.la"
- KPATHSEA_DEPEND='${top_builddir}/../kpathsea/libkpathsea.la'
- KPATHSEA_RULE='# Rebuild libkpathsea
-$(KPATHSEA_DEPEND): ${top_srcdir}/../kpathsea/*.[ch] ${top_builddir}/../kpathsea/paths.h
- cd ${top_builddir}/../kpathsea && $(MAKE) $(AM_MAKEFLAGS) rebuild
-${top_builddir}/../kpathsea/paths.h:
- cd ${top_builddir}/../kpathsea && $(MAKE) $(AM_MAKEFLAGS) rebuild'
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if libkpathsea supports debugging" >&5
-$as_echo_n "checking if libkpathsea supports debugging... " >&6; }
-if ${kpse_cv_kpse_debug+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval CPPFLAGS=\"$KPATHSEA_INCLUDES \$CPPFLAGS\"
-eval LIBS=\"$KPATHSEA_LIBS \$LIBS\"
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <kpathsea/kpathsea.h>
-int
-main ()
-{
-FILE *f = fopen("f", "r")
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- kpse_cv_kpse_debug=yes
-else
- kpse_cv_kpse_debug=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CPPFLAGS=$kpse_save_CPPFLAGS
-LIBS=$kpse_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_kpse_debug" >&5
-$as_echo "$kpse_cv_kpse_debug" >&6; }
-if test "x$kpse_cv_kpse_debug" != xyes; then :
- KPATHSEA_INCLUDES="$KPATHSEA_INCLUDES -DNO_DEBUG"
-fi
-
-
-if test "x$enable_build" != xno || test -f config.force; then
-
-eval CPPFLAGS=\"$KPATHSEA_INCLUDES \$CPPFLAGS\"
-eval LIBS=\"$KPATHSEA_LIBS \$LIBS\"
-
-
-if test "x$with_kpathsea" != xno; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kpathsea headers and library" >&5
-$as_echo_n "checking for kpathsea headers and library... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <kpathsea/kpathsea.h>
-int
-main ()
-{
-kpse_tfm_format;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- ac_fn_cxx_check_decl "$LINENO" "kpse_opentype_format" "ac_cv_have_decl_kpse_opentype_format" "#include <kpathsea/kpathsea.h>
-"
-if test "x$ac_cv_have_decl_kpse_opentype_format" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_KPSE_OPENTYPE_FORMAT $ac_have_decl
-_ACEOF
-
- ac_fn_cxx_check_decl "$LINENO" "kpse_enc_format" "ac_cv_have_decl_kpse_enc_format" "#include <kpathsea/kpathsea.h>
-"
-if test "x$ac_cv_have_decl_kpse_enc_format" = xyes; then :
- ac_have_decl=1
-else
- ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_KPSE_ENC_FORMAT $ac_have_decl
-_ACEOF
-
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- with_kpathsea=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
- if test "x$with_kpathsea" = xno; then
- as_fn_error $? "
-=========================================
-
-I can't find the kpathsea library and/or header files. Tell me where to look
-using the --with-kpathsea-libdir=DIR option (library under DIR) and
---with-kpathsea-includes=DIR option (header files under DIR/kpathsea), or
-disable kpathsea support using --without-kpathsea.
-
-=========================================" "$LINENO" 5
- fi
-
-$as_echo "#define HAVE_KPATHSEA 1" >>confdefs.h
-
-fi
-
-CPPFLAGS=$kpse_save_CPPFLAGS
-LIBS=$kpse_save_LIBS
-
-
-echo timestamp >config.force
-fi
-
- if test "x$with_kpathsea" != xno; then
- have_kpathsea_TRUE=
- have_kpathsea_FALSE='#'
-else
- have_kpathsea_TRUE='#'
- have_kpathsea_FALSE=
-fi
-
-
-# Check whether --enable-selfauto-set was given.
-if test "${enable_selfauto_set+set}" = set; then :
- enableval=$enable_selfauto_set;
-else
- enable_selfauto_set=yes
-fi
-
-
-if test "x$enable_selfauto_set" = xyes -a "x$kpathsea" != xno -a "x$enable_texlive_build" != xyes; then
- kpsewhich='kpsewhich'
- test "x$kpathsea" != xyes -a -x "$kpathsea/bin/kpsewhich" && kpsewhich="$kpathsea/bin/kpsewhich"
- SELFAUTOLOC="`$kpsewhich --expand-var='$SELFAUTOLOC' 2>/dev/null`"
- SELFAUTODIR="`$kpsewhich --expand-var='$SELFAUTODIR' 2>/dev/null`"
- SELFAUTOPARENT="`$kpsewhich --expand-var='$SELFAUTOPARENT' 2>/dev/null`"
- SELFAUTOGRANDPARENT="`$kpsewhich --expand-var='$SELFAUTOGRANDPARENT' 2>/dev/null`"
- if test -z "$SELFAUTODIR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
-=========================================
-
-Could not extract SELFAUTO variables from $kpsewhich.
-Either supply the correct PREFIX to --with-kpathsea, or supply
---disable-selfauto-loc.
-
-=========================================" >&5
-$as_echo "$as_me: WARNING:
-=========================================
-
-Could not extract SELFAUTO variables from $kpsewhich.
-Either supply the correct PREFIX to --with-kpathsea, or supply
---disable-selfauto-loc.
-
-=========================================" >&2;}
- fi
-
-cat >>confdefs.h <<_ACEOF
-#define SELFAUTOLOC "$SELFAUTOLOC"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define SELFAUTODIR "$SELFAUTODIR"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define SELFAUTOPARENT "$SELFAUTOPARENT"
-_ACEOF
-
- if test -n "$SELFAUTOGRANDPARENT" -a "$SELFAUTOGRANDPARENT" != '$SELFAUTOGRANDPARENT'; then
-
-cat >>confdefs.h <<_ACEOF
-#define SELFAUTOGRANDPARENT "$SELFAUTOGRANDPARENT"
-_ACEOF
-
- fi
-fi
-
-
-glyphlistdir='${datarootdir}/texmf-dist/fonts/map/glyphlist'
-encdir='${datarootdir}/texmf-dist/fonts/enc/dvips/base'
-
-
-
-
-
-
-$as_echo "#define HAVE_PERMSTRING 1" >>confdefs.h
-
-
-$as_echo "#define MMAFM_RUN_MMPFB 1" >>confdefs.h
-
-
-
-
-shell_expand () {
- val=`eval echo '$'"$1"`
- while echo "x$val" | fgrep '$' >/dev/null 2>&1; do val=`eval echo "$val"`; done
- eval "$1='$val'"
-}
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-shell_expand datadir
-
-if test "x$enable_native_texlive_build" = xyes; then
- gdir=/nonesuch
-else
- gdir="$glyphlistdir"
- for i in data dataroot pkgdata g; do shell_expand ${i}dir; done
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define GLYPHLISTDIR "$gdir"
-_ACEOF
-
-
-
-
-LCDF_TYPETOOLS_TREE=lcdf-typetools-src
-
-
-ac_config_files="$ac_config_files Makefile lcdf-typetools-src/Makefile"
-
-ac_config_files="$ac_config_files lcdf-typetools-src/liblcdf/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/libefont/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/cfftot1/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/mmafm/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/mmpfb/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/otfinfo/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/otftotfm/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/t1dotlessj/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/t1lint/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/t1rawafm/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/t1reencode/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/t1testpage/Makefile"
-ac_config_files="$ac_config_files lcdf-typetools-src/ttftotype42/Makefile"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-if test -z "${FIXLIBC_TRUE}" && test -z "${FIXLIBC_FALSE}"; then
- as_fn_error $? "conditional \"FIXLIBC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${texlive_build_TRUE}" && test -z "${texlive_build_FALSE}"; then
- as_fn_error $? "conditional \"texlive_build\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${have_kpathsea_TRUE}" && test -z "${have_kpathsea_FALSE}"; then
- as_fn_error $? "conditional \"have_kpathsea\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by LCDF typetools (TeX Live) $as_me 2.108, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <tex-k@tug.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-LCDF typetools (TeX Live) config.status 2.108
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
-configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in AS \
-DLLTOOL \
-OBJDUMP \
-SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_import \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-lt_cv_nm_interface \
-nm_file_list_spec \
-lt_cv_truncate_bin \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-configure_time_dlsearch_path \
-configure_time_lt_sys_library_path \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-
-# See if we are running on zsh, and set the options that allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- RM='$RM'
- ofile='$ofile'
-
-
-
-ac_aux_dir='$ac_aux_dir'
-
-
-cxxld_sh='$cxxld_sh'
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "autoconf.h") CONFIG_HEADERS="$CONFIG_HEADERS autoconf.h" ;;
- "CXXLD.sh") CONFIG_COMMANDS="$CONFIG_COMMANDS CXXLD.sh" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "lcdf-typetools-src/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/Makefile" ;;
- "lcdf-typetools-src/liblcdf/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/liblcdf/Makefile" ;;
- "lcdf-typetools-src/libefont/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/libefont/Makefile" ;;
- "lcdf-typetools-src/cfftot1/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/cfftot1/Makefile" ;;
- "lcdf-typetools-src/mmafm/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/mmafm/Makefile" ;;
- "lcdf-typetools-src/mmpfb/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/mmpfb/Makefile" ;;
- "lcdf-typetools-src/otfinfo/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/otfinfo/Makefile" ;;
- "lcdf-typetools-src/otftotfm/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/otftotfm/Makefile" ;;
- "lcdf-typetools-src/t1dotlessj/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/t1dotlessj/Makefile" ;;
- "lcdf-typetools-src/t1lint/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/t1lint/Makefile" ;;
- "lcdf-typetools-src/t1rawafm/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/t1rawafm/Makefile" ;;
- "lcdf-typetools-src/t1reencode/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/t1reencode/Makefile" ;;
- "lcdf-typetools-src/t1testpage/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/t1testpage/Makefile" ;;
- "lcdf-typetools-src/ttftotype42/Makefile") CONFIG_FILES="$CONFIG_FILES lcdf-typetools-src/ttftotype42/Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- # TODO: see whether this extra hack can be removed once we start
- # requiring Autoconf 2.70 or later.
- case $CONFIG_FILES in #(
- *\'*) :
- eval set x "$CONFIG_FILES" ;; #(
- *) :
- set x $CONFIG_FILES ;; #(
- *) :
- ;;
-esac
- shift
- # Used to flag and report bootstrapping failures.
- am_rc=0
- for am_mf
- do
- # Strip MF so we end up with the name of the file.
- am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile which includes
- # dependency-tracking related rules and includes.
- # Grep'ing the whole file directly is not great: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
- || continue
- am_dirpart=`$as_dirname -- "$am_mf" ||
-$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$am_mf" : 'X\(//\)[^/]' \| \
- X"$am_mf" : 'X\(//\)$' \| \
- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$am_mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- am_filepart=`$as_basename -- "$am_mf" ||
-$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
- X"$am_mf" : 'X\(//\)$' \| \
- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$am_mf" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- { echo "$as_me:$LINENO: cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles" >&5
- (cd "$am_dirpart" \
- && sed -e '/# am--include-marker/d' "$am_filepart" \
- | $MAKE -f - am--depfiles) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } || am_rc=$?
- done
- if test $am_rc -ne 0; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. If GNU make was not used, consider
- re-running the configure script with MAKE=\"gmake\" (or whatever is
- necessary). You can also try re-running configure with the
- '--disable-dependency-tracking' option to at least be able to build
- the package (albeit without support for automatic dependency tracking).
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- { am_dirpart=; unset am_dirpart;}
- { am_filepart=; unset am_filepart;}
- { am_mf=; unset am_mf;}
- { am_rc=; unset am_rc;}
- rm -f conftest-deps.mk
-}
- ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options that allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}"; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile=${ofile}T
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-# Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-
-# Provide generalized library-building support services.
-# Written by Gordon Matzigkeit, 1996
-
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program or library that is built
-# using GNU Libtool, you may include this file under the same
-# distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags='CXX '
-
-# Configured defaults for sys_lib_dlsearch_path munging.
-: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Assembler program.
-AS=$lt_AS
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$lt_OBJDUMP
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shared archive member basename,for filename based shared library versioning on AIX.
-shared_archive_member_spec=$shared_archive_member_spec
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm into a list of symbols to manually relocate.
-global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# The name lister interface.
-nm_interface=$lt_lt_cv_nm_interface
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and where our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# Command to truncate a binary pipe.
-lt_truncate_bin=$lt_lt_cv_truncate_bin
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Detected run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
-
-# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
-configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \$shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- cat <<'_LT_EOF' >> "$cfgfile"
-
-# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
-
-# func_munge_path_list VARIABLE PATH
-# -----------------------------------
-# VARIABLE is name of variable containing _space_ separated list of
-# directories to be munged by the contents of PATH, which is string
-# having a format:
-# "DIR[:DIR]:"
-# string "DIR[ DIR]" will be prepended to VARIABLE
-# ":DIR[:DIR]"
-# string "DIR[ DIR]" will be appended to VARIABLE
-# "DIRP[:DIRP]::[DIRA:]DIRA"
-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
-# "DIRA[ DIRA]" will be appended to VARIABLE
-# "DIR[:DIR]"
-# VARIABLE will be replaced by "DIR[ DIR]"
-func_munge_path_list ()
-{
- case x$2 in
- x)
- ;;
- *:)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
- ;;
- x:*)
- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- *::*)
- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
- ;;
- *)
- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
- ;;
- esac
-}
-
-
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-func_cc_basename ()
-{
- for cc_temp in $*""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
- done
- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-}
-
-
-# ### END FUNCTIONS SHARED WITH CONFIGURE
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test set != "${COLLECT_NAMES+set}"; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain=$ac_aux_dir/ltmain.sh
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
-
- cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \$shlibpath_var if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
- "CXXLD.sh":C) echo "$cxxld_sh" >CXXLD.sh; chmod +x CXXLD.sh ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/Build/source/texk/lcdf-typetools/configure.ac b/Build/source/texk/lcdf-typetools/configure.ac
deleted file mode 100644
index 829db6ef763..00000000000
--- a/Build/source/texk/lcdf-typetools/configure.ac
+++ /dev/null
@@ -1,427 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl Copyright (C) 2009-2014 Peter Breitenlohner <tex-live@tug.org>
-dnl
-dnl This file is free software; the copyright holder
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl *********************************************************************
-dnl
-dnl Adapted for TeX Live from lcdf-typetools-src/configure.ac
-dnl Copyright (c) 1997-2011 Eddie Kohler
-dnl
-dnl *********************************************************************
-dnl
-m4_include([version.ac])[] dnl define lcdf_typetools_version
-AC_INIT([LCDF typetools (TeX Live)], lcdf_typetools_version, [tex-k@tug.org])
-AC_PREREQ([2.65])
-AC_CONFIG_SRCDIR([lcdf-typetools-src/NEWS.md])
-AC_CONFIG_AUX_DIR([../../build-aux])
-AC_CONFIG_MACRO_DIRS([../../m4 m4])
-
-dnl Common code for all programs using libkpathsea.
-KPSE_COMMON([lcdf-typetools])
-
-AC_SUBST([LCDF_TYPETOOLS_VERSION], lcdf_typetools_version)
-
-AC_CONFIG_HEADERS([autoconf.h])
-
-AC_PROG_CXX
-AC_PROG_CXXCPP
-
-CC="$CC $WARNING_CFLAGS"
-CXX="$CXX $WARNING_CXXFLAGS"
-
-AC_ARG_ENABLE([precondition-checking],
- [AS_HELP_STRING([--enable-precondition-checking], [include precondition checking assertions])],
- [if test "$enableval" = yes; then
- AC_DEFINE([HAVE_PRECONDITION_CHECKING], [1], [Define to include precondition checking assertions.])
- fi])
-
-AC_ARG_ENABLE([adobe-code],
- [AS_HELP_STRING([--disable-adobe-code], [do not include Adobe code])],
- [], [enable_adobe_code=yes])
-if test "$enable_adobe_code" = yes; then
- AC_DEFINE([HAVE_ADOBE_CODE], [1], [Define to incldue Adobe code in output fonts.])
-fi
-
-AC_CXX_TEMPLATE_OBJS
-
-KPSE_CXX_HACK
-
-
-dnl
-dnl directory searching
-dnl
-
-AC_LANG_C
-AC_HEADER_DIRENT
-AC_CHECK_HEADERS([fcntl.h unistd.h sys/time.h sys/wait.h])
-
-
-dnl
-dnl <new> and/or <new.h>
-dnl
-
-AC_LANG_CPLUSPLUS
-AC_CACHE_CHECK([whether <new> works], ac_cv_good_new_hdr,
-[AC_TRY_LINK([#include <new>], [
- int a;
- int *b = new(&a) int;
- return 0;
-], ac_cv_good_new_hdr=yes, ac_cv_good_new_hdr=no)])
-if test "$ac_cv_good_new_hdr" = yes; then
- AC_DEFINE([HAVE_NEW_HDR], [1], [Define if <new> exists and works.])
-fi
-AC_CHECK_HEADERS([new.h])
-
-
-dnl
-dnl endianness
-dnl
-
-AC_DEFINE([WORDS_BIGENDIAN_SET], [1], [Define if WORDS_BIGENDIAN has been set.])
-AC_C_BIGENDIAN()
-
-
-dnl
-dnl functions such as strerror, working strtod, working strnlen, strtoul,
-dnl time headers such as unistd.h
-dnl
-
-AC_LANG_C
-need_fixlibc=0
-AC_CHECK_FUNCS([strerror], [], [need_fixlibc=1])
-
-AC_CACHE_CHECK([for broken strtod], [ac_cv_broken_strtod],
-[AC_TRY_RUN([#include <stdio.h>
-#include <stdlib.h>
-int main(int c, char **v) {
- char s[] = "12 ";
- char *endp;
- double d = strtod(s, &endp);
- return (s + 2) == endp;
-}], [ac_cv_broken_strtod=yes], [ac_cv_broken_strtod=no],
-[ac_cv_broken_strtod=no])])
-if test "x$ac_cv_broken_strtod" = xyes; then
- need_fixlibc=1
- AC_DEFINE([HAVE_BROKEN_STRTOD], [1], [Define if strtod is broken.])
-fi
-
-AC_LANG_CPLUSPLUS
-AC_CHECK_DECLS([strnlen], [], [], [#include <string.h>])
-AC_CHECK_FUNCS([strnlen], [have_strnlen=1], [need_fixlibc=1])
-if test "x$have_strnlen" = x1; then
- AC_CACHE_CHECK([for broken strnlen], [ac_cv_broken_strnlen],
- [AC_TRY_RUN([#include <string.h>
-#include <stdio.h>
-int main(int c, char **v) {
- char s[] = "01234567891";
- return strnlen(s, 10) == 10;
-}], [ac_cv_broken_strnlen=yes], [ac_cv_broken_strnlen=no],
-[ac_cv_broken_strnlen=no])])
- if test "x$ac_cv_broken_strnlen" = xyes; then
- need_fixlibc=1
- AC_DEFINE([HAVE_BROKEN_STRNLEN], [1], [Define if strnlen is broken.])
- fi
-fi
-AC_LANG_C
-
-AC_CHECK_FUNCS([ctime ftruncate mkstemp sigaction strdup strtoul vsnprintf waitpid])
-AC_CHECK_FUNC([floor], [], [AC_CHECK_LIB([m], [floor])])
-AC_CHECK_FUNC([fabs], [], [AC_CHECK_LIB([m], [fabs])])
-AM_CONDITIONAL([FIXLIBC], [test x$need_fixlibc = x1])
-
-
-dnl
-dnl integer types
-dnl
-
-AC_CHECK_HEADERS(inttypes.h, have_inttypes_h=yes, have_inttypes_h=no)
-AC_CHECK_HEADERS(sys/types.h, have_sys_types_h=yes, have_sys_types_h=no)
-
-if test $have_inttypes_h = no -a $have_sys_types_h = yes; then
- AC_CACHE_CHECK([for uintXX_t typedefs], ac_cv_uint_t,
- [AC_EGREP_HEADER(dnl
-changequote(<<,>>)<<(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]>>changequote([,]),
- sys/types.h, ac_cv_uint_t=yes, ac_cv_uint_t=no)])
-fi
-if test $have_inttypes_h = no -a $have_sys_types_h = yes -a "$ac_cv_uint_t" = no; then
- AC_CACHE_CHECK([for u_intXX_t typedefs], ac_cv_u_int_t,
- [AC_EGREP_HEADER(dnl
-changequote(<<,>>)<<(^|[^a-zA-Z_0-9])u_int32_t[^a-zA-Z_0-9]>>changequote([,]),
- sys/types.h, ac_cv_u_int_t=yes, ac_cv_u_int_t=no)])
-fi
-if test $have_inttypes_h = yes -o "$ac_cv_uint_t" = yes; then
- :
-elif test "$ac_cv_u_int_t" = yes; then
- AC_DEFINE(HAVE_U_INT_TYPES, 1, [Define if you have u_intXX_t types but not uintXX_t types.])
-else
- AC_MSG_WARN([
-=========================================
-
-Neither uint32_t nor u_int32_t defined by <inttypes.h> or <sys/types.h>!
-Assuming "short" has 16 bits and "int" has 32 bits.
-
-=========================================])
- AC_DEFINE(HAVE_FAKE_INT_TYPES, 1, [Define if intXX_t types are not available.])
-fi
-
-AC_CHECK_TYPES(uintptr_t, [], [],
-[#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-])
-
-AC_CHECK_SIZEOF(void *)
-AC_CHECK_SIZEOF(unsigned long)
-AC_CHECK_SIZEOF(unsigned int)
-
-
-dnl
-dnl ntohs, ntohl (need them in C++ code)
-dnl
-
-AC_LANG_CPLUSPLUS
-AC_CHECK_HEADERS(byteorder.h netinet/in.h sys/param.h)
-AC_MSG_CHECKING([whether ntohs and ntohl are defined])
-ac_ntoh_defined=no
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_BYTEORDER_H
-# include <byteorder.h>
-#elif HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-#ifdef WIN32
-# ifdef __MSC_VER
-# pragma warning (disable: 4290)
-# endif
-# include <winsock2.h>
-#endif
-]], [[(void) ntohs(0x0020), (void) ntohl(0x03040020);]])],
- [AC_MSG_RESULT(yes)
-ac_ntoh_defined=yes],
- [AC_MSG_RESULT(no)])
-if test $ac_ntoh_defined = no; then
- AC_CHECK_HEADERS([arpa/inet.h], [have_arpa_inet_h=yes], [have_arpa_inet_h=no])
- if test $have_arpa_inet_h = yes; then
- AC_MSG_CHECKING([whether ntohs and ntohl are defined in <arpa/inet.h>])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <arpa/inet.h>
-]], [[(void) ntohs(0x0020), (void) ntohl(0x03040020);]])],
- [AC_MSG_RESULT(yes)
-AC_DEFINE(NEED_ARPA_INET_H, 1, [Define to 1 if you must include <arpa/inet.h> to get `ntohl'.])
-ac_ntoh_defined=yes],
- [AC_MSG_RESULT(no)])
- fi
-fi
-if test $ac_ntoh_defined = no; then
- AC_MSG_WARN([
-=========================================
-
-Cannot find a definition for ntohs and/or ntohl!
-
-=========================================])
- if test "x$enable_build" != xno; then
- AC_MSG_ERROR([exiting])
- fi
-fi
-AC_LANG_C
-AC_SEARCH_LIBS([ntohs], [-lnet -lwinsock32])
-
-KPSE_CHECK_WIN32
-if test "x$kpse_cv_have_win32" != xno; then
- LIBS="$LIBS -lwsock32"
-fi
-
-dnl
-dnl is va_list addressable?
-dnl
-
-AC_LANG_CPLUSPLUS
-AC_CACHE_CHECK([for addressable va_list type],
- ac_cv_va_list_addr,
- [AC_TRY_COMPILE([#include <stdarg.h>
-void f(va_list *) {
-}
-void g(va_list val) {
- f(&val);
-}
-void h(int a, ...) {
- va_list val;
- va_start(val, a);
- g(val);
- va_end(val);
-}], [h(2, 3, 4);], ac_cv_va_list_addr=yes, ac_cv_va_list_addr=no)])
-if test "x$ac_cv_va_list_addr" = xyes; then
- AC_DEFINE(HAVE_ADDRESSABLE_VA_LIST, 1, [Define if the va_list type is addressable.])
-fi
-
-
-dnl
-dnl select programs to be compiled and automatically run
-dnl
-
-m4_include([ac/lcdf-typetools.ac])
-
-SELECTED_SUBDIRS=
-AC_FOREACH([Kpse_Prog], kpse_lcdf_typetools_progs,
- [test "x$enable_[]Kpse_Prog" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS Kpse_Prog"
-])
-AC_SUBST(SELECTED_SUBDIRS)
-
-AC_FOREACH([Kpse_Opt], kpse_otftotfm_auto_opts,
- [AS_IF([test "x$enable_auto_]Kpse_Opt[" != xno],
- [AC_DEFINE([HAVE_AUTO_]AS_TR_CPP(Kpse_Opt), 1,
- [Define to run ]Kpse_Opt[ from otftotfm.])])
-])
-
-
-dnl
-dnl kpathsea
-dnl
-
-dnl The configure option '--enable-texlive-build' is inherited
-dnl and automatically enabled, when built as part of TeX Live.
-
-AM_CONDITIONAL([texlive_build], [test "x$enable_texlive_build" = xyes])
-
-AC_ARG_WITH([kpathsea],
- AS_HELP_STRING([--without-kpathsea],
- [build otftotfm without kpathsea]))
-
-KPSE_KPATHSEA_FLAGS
-
-if test "x$enable_build" != xno || test -f config.force; then
-
-KPSE_ADD_FLAGS([kpathsea])
-
-if test "x$with_kpathsea" != xno; then
- AC_MSG_CHECKING([for kpathsea headers and library])
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <kpathsea/kpathsea.h>]],
- [[kpse_tfm_format;]])],
- [AC_MSG_RESULT([yes])
- AC_CHECK_DECLS([kpse_opentype_format], , ,
- [#include <kpathsea/kpathsea.h>])
- AC_CHECK_DECLS([kpse_enc_format], , ,
- [#include <kpathsea/kpathsea.h>])],
- [AC_MSG_RESULT([no])
- with_kpathsea=no])
-
- if test "x$with_kpathsea" = xno; then
- AC_MSG_ERROR([
-=========================================
-
-I can't find the kpathsea library and/or header files. Tell me where to look
-using the --with-kpathsea-libdir=DIR option (library under DIR) and
---with-kpathsea-includes=DIR option (header files under DIR/kpathsea), or
-disable kpathsea support using --without-kpathsea.
-
-=========================================])
- fi
- AC_DEFINE(HAVE_KPATHSEA, 1, [Define if you want to use kpathsea.])
-fi
-
-KPSE_RESTORE_FLAGS
-
-echo timestamp >config.force
-fi
-
-AM_CONDITIONAL([have_kpathsea], [test "x$with_kpathsea" != xno])
-
-AC_ARG_ENABLE([selfauto-set],
- AS_HELP_STRING([--disable-selfauto-set], [disable setting SELFAUTO variables from kpsewhich]),
- [], [enable_selfauto_set=yes])
-
-if test "x$enable_selfauto_set" = xyes -a "x$kpathsea" != xno -a "x$enable_texlive_build" != xyes; then
- kpsewhich='kpsewhich'
- test "x$kpathsea" != xyes -a -x "$kpathsea/bin/kpsewhich" && kpsewhich="$kpathsea/bin/kpsewhich"
- SELFAUTOLOC="`$kpsewhich --expand-var='$SELFAUTOLOC' 2>/dev/null`"
- SELFAUTODIR="`$kpsewhich --expand-var='$SELFAUTODIR' 2>/dev/null`"
- SELFAUTOPARENT="`$kpsewhich --expand-var='$SELFAUTOPARENT' 2>/dev/null`"
- SELFAUTOGRANDPARENT="`$kpsewhich --expand-var='$SELFAUTOGRANDPARENT' 2>/dev/null`"
- if test -z "$SELFAUTODIR"; then
- AC_MSG_WARN([
-=========================================
-
-Could not extract SELFAUTO variables from $kpsewhich.
-Either supply the correct PREFIX to --with-kpathsea, or supply
---disable-selfauto-loc.
-
-=========================================])
- fi
- AC_DEFINE_UNQUOTED([SELFAUTOLOC], "$SELFAUTOLOC", [kpsewhich's $SELFAUTOLOC variable])
- AC_DEFINE_UNQUOTED([SELFAUTODIR], "$SELFAUTODIR", [kpsewhich's $SELFAUTODIR variable])
- AC_DEFINE_UNQUOTED([SELFAUTOPARENT], "$SELFAUTOPARENT", [kpsewhich's $SELFAUTOPARENT variable])
- if test -n "$SELFAUTOGRANDPARENT" -a "$SELFAUTOGRANDPARENT" != '$SELFAUTOGRANDPARENT'; then
- AC_DEFINE_UNQUOTED([SELFAUTOGRANDPARENT], "$SELFAUTOGRANDPARENT", [kpsewhich's $SELFAUTOGRANDPARENT variable])
- fi
-fi
-
-
-dnl
-dnl glyphlist.txt and *.enc installation locations
-dnl
-glyphlistdir='${datarootdir}/texmf-dist/fonts/map/glyphlist'
-encdir='${datarootdir}/texmf-dist/fonts/enc/dvips/base'
-AC_SUBST([glyphlistdir])
-AC_SUBST([encdir])
-
-
-dnl
-dnl verbatim portions of the header
-dnl
-
-AC_DEFINE(HAVE_PERMSTRING, 1, [Define if PermStrings are available.])
-AC_DEFINE(MMAFM_RUN_MMPFB, 1, [Define to 0 if you don't want mmafm to run mmpfb when it needs to get an intermediate master conversion program.])
-dnl PATHNAME_SEPARATOR?
-
-
-dnl
-dnl set path variables
-dnl
-
-shell_expand () {
- val=`eval echo '$'"$1"`
- while echo "x$val" | fgrep '$' >/dev/null 2>&1; do val=`eval echo "$val"`; done
- eval "$1='$val'"
-}
-
-dnl Preset $prefix and $exec_prefix.
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-shell_expand datadir
-
-if test "x$enable_native_texlive_build" = xyes; then
- gdir=/nonesuch
-else
- gdir="$glyphlistdir"
- for i in data dataroot pkgdata g; do shell_expand ${i}dir; done
-fi
-AC_DEFINE_UNQUOTED([GLYPHLISTDIR], ["$gdir"], [Directory for glyphlist.txt files.])
-
-
-dnl
-dnl Output
-dnl
-
-AC_SUBST([LCDF_TYPETOOLS_TREE], [lcdf-typetools-src])
-
-AC_CONFIG_FILES([Makefile lcdf-typetools-src/Makefile])
-AC_FOREACH([Kpse_Prog], [liblcdf libefont] kpse_lcdf_typetools_progs,
- [AC_CONFIG_FILES([lcdf-typetools-src/]Kpse_Prog[/Makefile])])
-
-AC_OUTPUT
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/7t.enc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/7t.enc
deleted file mode 100644
index 727f29e5f8c..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/7t.enc
+++ /dev/null
@@ -1,65 +0,0 @@
-% A version of the 7t/OT1 encoding, with useful UNICODING comments,
-% intended for use with otftotfm.
-% We do not remove kerns between digits and other characters; a user who wants
-% tabular digits should select the OpenType "tnum" feature.
-% We also do not remove kerns between space and other characters; space is our
-% boundary character.
-
-/LCDF7TEncoding [
-%00
- /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon
- /Phi /Psi /Omega /ff /fi /fl /ffi /ffl
-%10
- /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
- /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
-%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
-%60
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
-%70
- /p /q /r /s /t /u /v /w
- /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis
-%80
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%90
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%A0
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%B0
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%C0
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%D0
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%E0
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%F0
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % LIGKERN question quoteleft =: questiondown ;
- % LIGKERN exclam quoteleft =: exclamdown ;
- % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
- % LIGKERN quoteleft quoteleft =: quotedblleft ;
- % LIGKERN quoteright quoteright =: quotedblright ;
- % LIGKERN || = 32 ;
- % UNICODING Delta =: Deltagreek Delta ; Omega =: Omegagreek Omega ;
- % UNICODING ff =: ; fi =: ; fl =: ; ffi =: ; ffl =: ;
-] def
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/COPYING b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/COPYING
deleted file mode 100644
index 67572846722..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/COPYING
+++ /dev/null
@@ -1,416 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-
-
-
-
-
-
-
-
-
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-
-
-
-
-
-
-
-
-
-
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/INSTALL b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/INSTALL
deleted file mode 100644
index 95d84c820fb..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/INSTALL
+++ /dev/null
@@ -1,176 +0,0 @@
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.in' is used to create `configure' by a program
-called `autoconf'. You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made.
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.am
deleted file mode 100644
index 0bb3d977ad2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.am
+++ /dev/null
@@ -1,86 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-SUBDIRS = liblcdf libefont @SELECTED_SUBDIRS@
-DIST_SUBDIRS = liblcdf libefont cfftot1 mmafm mmpfb otfinfo otftotfm \
- t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42
-
-EXTRA_DIST = \
- ONEWS README.md NEWS.md \
- lcdf-typetools.spec \
- include/config.h \
- include/lcdf/bezier.hh \
- include/lcdf/clp.h \
- include/lcdf/error.hh \
- include/lcdf/filename.hh \
- include/lcdf/globmatch.hh \
- include/lcdf/hashcode.hh \
- include/lcdf/hashmap.hh include/lcdf/hashmap.cc \
- include/lcdf/inttypes.h \
- include/lcdf/landmark.hh \
- include/lcdf/md5.h \
- include/lcdf/permstr.hh \
- include/lcdf/point.hh \
- include/lcdf/slurper.hh \
- include/lcdf/straccum.hh \
- include/lcdf/string.hh \
- include/lcdf/strtonum.h \
- include/lcdf/transform.hh \
- include/lcdf/vector.hh include/lcdf/vector.cc \
- include/efont/afm.hh \
- include/efont/afmparse.hh \
- include/efont/afmw.hh \
- include/efont/amfm.hh \
- include/efont/cff.hh \
- include/efont/encoding.hh \
- include/efont/findmet.hh \
- include/efont/metrics.hh \
- include/efont/otf.hh \
- include/efont/otfcmap.hh \
- include/efont/otfdata.hh \
- include/efont/otfgpos.hh \
- include/efont/otfgsub.hh \
- include/efont/otfname.hh \
- include/efont/otfos2.hh \
- include/efont/otfpost.hh \
- include/efont/pairop.hh \
- include/efont/psres.hh \
- include/efont/t1bounds.hh \
- include/efont/t1cs.hh \
- include/efont/t1csgen.hh \
- include/efont/t1font.hh \
- include/efont/t1interp.hh \
- include/efont/t1item.hh \
- include/efont/t1mm.hh \
- include/efont/t1rw.hh \
- include/efont/t1unparser.hh \
- include/efont/ttfcs.hh \
- include/efont/ttfhead.hh \
- include/efont/ttfkern.hh \
- glyphlist.txt \
- texglyphlist.txt \
- texglyphlist-g2u.txt \
- 7t.enc
-
-glyphlist_DATA = glyphlist.txt texglyphlist.txt
-enc_DATA = 7t.enc
-
-liblcdf libefont:
- cd $@ && $(MAKE)
-libefont: liblcdf
-cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm \
-t1reencode t1testpage ttftotype42: liblcdf libefont
- cd $@ && $(MAKE)
-
-versionize:
- perl -pi -e 's/^\.ds V.*/.ds V $(VERSION)/;' $(srcdir)/cfftot1/cfftot1.1 $(srcdir)/mmafm/mmafm.1 $(srcdir)/mmpfb/mmpfb.1 $(srcdir)/otfinfo/otfinfo.1 $(srcdir)/otftotfm/otftotfm.1 $(srcdir)/t1dotlessj/t1dotlessj.1 $(srcdir)/t1lint/t1lint.1 $(srcdir)/t1rawafm/t1rawafm.1 $(srcdir)/t1reencode/t1reencode.1 $(srcdir)/t1testpage/t1testpage.1 $(srcdir)/ttftotype42/ttftotype42.1
- perl -pi -e 's/^(\U$(PACKAGE)\E) [\d.ab]+$$/$$1 $(VERSION)/;' $(srcdir)/README.md
- perl -pi -e 's/^Version: [\d.ab]+$$/Version: $(VERSION)/;' $(srcdir)/lcdf-typetools.spec
-
-dist-hook:
- if test -f $(srcdir)/make-glyphtounicode.pl; then (cd $(srcdir); perl make-glyphtounicode.pl) > $(distdir)/glyphtounicode.tex; elif test -f $(srcdir)/glyphtounicode.tex; then cp $(srcdir)/glyphtounicode.tex $(distdir); fi
-
-$(srcdir)/glyphtounicode.tex: $(srcdir)/glyphlist.txt $(srcdir)/texglyphlist.txt $(srcdir)/texglyphlist-g2u.txt $(srcdir)/make-glyphtounicode.pl
- cd $(srcdir); perl make-glyphtounicode.pl > glyphtounicode.tex
-
-.PHONY: rpm liblcdf libefont cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.in
deleted file mode 100644
index 796dafa82a2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/Makefile.in
+++ /dev/null
@@ -1,808 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = lcdf-typetools-src
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(encdir)" "$(DESTDIR)$(glyphlistdir)"
-DATA = $(enc_DATA) $(glyphlist_DATA)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir distdir-am
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in COPYING INSTALL
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-SUBDIRS = liblcdf libefont @SELECTED_SUBDIRS@
-DIST_SUBDIRS = liblcdf libefont cfftot1 mmafm mmpfb otfinfo otftotfm \
- t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42
-
-EXTRA_DIST = \
- ONEWS README.md NEWS.md \
- lcdf-typetools.spec \
- include/config.h \
- include/lcdf/bezier.hh \
- include/lcdf/clp.h \
- include/lcdf/error.hh \
- include/lcdf/filename.hh \
- include/lcdf/globmatch.hh \
- include/lcdf/hashcode.hh \
- include/lcdf/hashmap.hh include/lcdf/hashmap.cc \
- include/lcdf/inttypes.h \
- include/lcdf/landmark.hh \
- include/lcdf/md5.h \
- include/lcdf/permstr.hh \
- include/lcdf/point.hh \
- include/lcdf/slurper.hh \
- include/lcdf/straccum.hh \
- include/lcdf/string.hh \
- include/lcdf/strtonum.h \
- include/lcdf/transform.hh \
- include/lcdf/vector.hh include/lcdf/vector.cc \
- include/efont/afm.hh \
- include/efont/afmparse.hh \
- include/efont/afmw.hh \
- include/efont/amfm.hh \
- include/efont/cff.hh \
- include/efont/encoding.hh \
- include/efont/findmet.hh \
- include/efont/metrics.hh \
- include/efont/otf.hh \
- include/efont/otfcmap.hh \
- include/efont/otfdata.hh \
- include/efont/otfgpos.hh \
- include/efont/otfgsub.hh \
- include/efont/otfname.hh \
- include/efont/otfos2.hh \
- include/efont/otfpost.hh \
- include/efont/pairop.hh \
- include/efont/psres.hh \
- include/efont/t1bounds.hh \
- include/efont/t1cs.hh \
- include/efont/t1csgen.hh \
- include/efont/t1font.hh \
- include/efont/t1interp.hh \
- include/efont/t1item.hh \
- include/efont/t1mm.hh \
- include/efont/t1rw.hh \
- include/efont/t1unparser.hh \
- include/efont/ttfcs.hh \
- include/efont/ttfhead.hh \
- include/efont/ttfkern.hh \
- glyphlist.txt \
- texglyphlist.txt \
- texglyphlist-g2u.txt \
- 7t.enc
-
-glyphlist_DATA = glyphlist.txt texglyphlist.txt
-enc_DATA = 7t.enc
-all: all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-encDATA: $(enc_DATA)
- @$(NORMAL_INSTALL)
- @list='$(enc_DATA)'; test -n "$(encdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(encdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(encdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(encdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(encdir)" || exit $$?; \
- done
-
-uninstall-encDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(enc_DATA)'; test -n "$(encdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(encdir)'; $(am__uninstall_files_from_dir)
-install-glyphlistDATA: $(glyphlist_DATA)
- @$(NORMAL_INSTALL)
- @list='$(glyphlist_DATA)'; test -n "$(glyphlistdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(glyphlistdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(glyphlistdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glyphlistdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(glyphlistdir)" || exit $$?; \
- done
-
-uninstall-glyphlistDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(glyphlist_DATA)'; test -n "$(glyphlistdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(glyphlistdir)'; $(am__uninstall_files_from_dir)
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(DATA)
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(encdir)" "$(DESTDIR)$(glyphlistdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-encDATA install-glyphlistDATA
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-encDATA uninstall-glyphlistDATA
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-generic clean-libtool cscopelist-am ctags \
- ctags-am dist-hook distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-encDATA \
- install-exec install-exec-am install-glyphlistDATA \
- install-html install-html-am install-info install-info-am \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-encDATA uninstall-glyphlistDATA
-
-.PRECIOUS: Makefile
-
-
-liblcdf libefont:
- cd $@ && $(MAKE)
-libefont: liblcdf
-cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm \
-t1reencode t1testpage ttftotype42: liblcdf libefont
- cd $@ && $(MAKE)
-
-versionize:
- perl -pi -e 's/^\.ds V.*/.ds V $(VERSION)/;' $(srcdir)/cfftot1/cfftot1.1 $(srcdir)/mmafm/mmafm.1 $(srcdir)/mmpfb/mmpfb.1 $(srcdir)/otfinfo/otfinfo.1 $(srcdir)/otftotfm/otftotfm.1 $(srcdir)/t1dotlessj/t1dotlessj.1 $(srcdir)/t1lint/t1lint.1 $(srcdir)/t1rawafm/t1rawafm.1 $(srcdir)/t1reencode/t1reencode.1 $(srcdir)/t1testpage/t1testpage.1 $(srcdir)/ttftotype42/ttftotype42.1
- perl -pi -e 's/^(\U$(PACKAGE)\E) [\d.ab]+$$/$$1 $(VERSION)/;' $(srcdir)/README.md
- perl -pi -e 's/^Version: [\d.ab]+$$/Version: $(VERSION)/;' $(srcdir)/lcdf-typetools.spec
-
-dist-hook:
- if test -f $(srcdir)/make-glyphtounicode.pl; then (cd $(srcdir); perl make-glyphtounicode.pl) > $(distdir)/glyphtounicode.tex; elif test -f $(srcdir)/glyphtounicode.tex; then cp $(srcdir)/glyphtounicode.tex $(distdir); fi
-
-$(srcdir)/glyphtounicode.tex: $(srcdir)/glyphlist.txt $(srcdir)/texglyphlist.txt $(srcdir)/texglyphlist-g2u.txt $(srcdir)/make-glyphtounicode.pl
- cd $(srcdir); perl make-glyphtounicode.pl > glyphtounicode.tex
-
-.PHONY: rpm liblcdf libefont cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
deleted file mode 100644
index 68382c0e911..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/NEWS.md
+++ /dev/null
@@ -1,1239 +0,0 @@
-LCDF Typetools NEWS
-===================
-
-## Version 2.108 – 27.Jan.2019
-
-* Handle more fonts.
-
-* `otftotfm -a`: Run `updmap-sys` by default.
-
-
-## Version 2.107 – 22.Feb.2018
-
-* Some corrections to output of `--math-spacing`.
-
-* Reduce undefined behavior.
-
-* Handle some incorrect fonts more gracefully.
-
-
-## Version 2.106 – 21.Jun.2016
-
-* Minor updates, mostly involving licensing of Adobe code and data.
-
-
-## Version 2.105 – 15.Sep.2015
-
-* Several crash fixes.
-
-* `otfinfo -g`: Print all Unicode mappings for a glyph.
-
-* t1lint: Support counter control hints.
-
-* Thanks to Github issue contributors.
-
-
-## Version 2.104 – 7.Jul.2014
-
-* Fix a nit with format-1 chaining context substitutions.
-
-
-## Version 2.103 – 6.Jul.2014
-
-* otftotfm: Address a problem experienced by Bob Tennent where a
- ligature setting wasn't included in the output VPL.
-
-
-## Version 2.102 – 4.Jul.2014
-
-* otftotfm: Fix the construction of multi-character secondary
- replacements; they were given enormous widths. Reported by Wydra
- Dennis.
-
-
-## Version 2.101 – 16.Jun.2014
-
-* otftotfm: Handle fonts with unexpected transformation matrices,
- such as CFF fonts with 2048 units per em.
-
-* otftotfm: Add `--x-height` option.
-
-* otftotfm: Handle more TrueType fonts by fixing otftotfm bugs and
- compensating for some TTF bugs.
-
-* Thanks to Bob Tennent and Marc Penninga.
-
-
-## Version 2.100 – 8.Jan.2014
-
-* otftotfm: On some fonts, ligature handling could enter an infinite
- loop. Fix this. Reported by Marc Penninga and Bob Tennent.
-
-* Fix updmap runs.
-
-* Build updates for C++11 and other compilers.
-
-
-## Version 2.99 – 13.Aug.2013
-
-* cfftot1: Correct bug that rarely corrupted Type 1 output fonts.
- Reported by Sebastian Schubert.
-
-
-## Version 2.98 – 10.Apr.2013
-
-* Fix alignment bug that corrupted output fonts on some platforms
- (MIPS especially). Reported by Norbert Preining.
-
-
-## Version 2.97 – 25.Oct.2012
-
-* Same.
-
-
-## Version 2.96 – 25.Oct.2012
-
-* Build improvements inspired by Peter Breitenlohner.
-
-
-## Version 2.95 – 21.Sep.2012
-
-* Fix cfftot1: Don't crash on problematic fonts. Bob Tennent report.
-
-
-## Version 2.94 – 3.Aug.2012
-
-* More compilation updates.
-
-
-## Version 2.93 – 23.Jul.2012
-
-* Correct compilation problem reported by Dennis Veatch.
-
-* Update OpenType feature, script, and language lists, and some other nits.
-
-
-## Version 2.92 – 14.Aug.2011
-
-* Correct horrible x86-64 byte-order issue. Bug reported by Michael Ummels.
-
-
-## Version 2.91 – 13.Jun.2011
-
-* Correct some compilation problems on unusual systems reported by Vladimir
- Volovich.
-
-
-## Version 2.90 – 3.Jun.2011
-
-* Correct crash on glyph names that start with a dot. Marc van Dongen
- report.
-
-
-## Version 2.89 – 2.Jun.2011
-
-* Better handle combinations of fonts and options that would create so many
- substitutions that otftotfm would run out of memory. Marc van Dongen
- report.
-
-* Thanks to Peter Breitenlohner.
-
-
-## Version 2.88 – 8.Mar.2011
-
-* Warning reduction.
-
-
-## Version 2.87 – 27.Jan.2011
-
-* Avoid double-free error in t1testpage. Reported by Kurt Pfeifle.
-
-
-## Version 2.86 – 16.Dec.2010
-
-* Support version 4 of the OpenType OS/2 table. Reported by Thomas
- Zumbrunn.
-
-
-## Version 2.85 – 26.Sep.2010
-
-* Correct otftotfm bug with glyphlist.txt mappings like I_J.
-
-
-## Version 2.84 – 15.Sep.2010
-
-* otftotfm: Avoid crashes on very large fonts and other odd situations.
- Bugs reported by Martin Schröder.
-
-* Include new Unicode mappings for glyph names from MSAM and MSBM.
-
-* Bug fixes to texglyphlist.txt Unicode mappings. Thanks to Clea F. Rees.
-
-
-## Version 2.83 – 23.Apr.2010
-
-* otftotfm: If `-fkern` loads no GPOS lookups, apply the TTF kern table (if
- it exists). This should use the TTF kern table strictly more often than
- the previous version. Based on draft changes to the OpenType spec.
-
-* Update with changes from TeX Live. Thanks to Peter Breitenlohner.
-
-
-## Version 2.82 – 19.Jan.2010
-
-* otftotfm: Correctly handle multiply-encoded glyphs (for example, if "j"
- ends up encoded in more than one slot, apply the j => j.smcp feature to
- both occurrences). Reported by Michael Ummels.
-
-
-## Version 2.81 – 7.Jan.2010
-
-* otftotfm: Fix "em" and "ex" measurements (QUAD and XHEIGHT font
- dimensions) for TrueType fonts. Problem reported by Nico Schlömer.
-
-* otftotfm: Add `--type42` option.
-
-
-## Version 2.80 – 10.Nov.2009
-
-* otftotfm: Add `--fixed-width`, `--proportional-width`, and `--italic-angle`
- options. Requested by Karl Berry.
-
-
-## Version 2.79 – 12.Jun.2009
-
-* otftotfm: Use TrueType "kern" tables to satisfy the `-fkern` feature if
- GPOS information isn't available. Requested by Nico Schlömer.
-
-* ttftotype42: Split very large non-glyf tables, as well as very large glyf
- tables. Requested by Mark DeVries.
-
-* otfinfo: The `-T` option dumps a table's contents to standard out.
-
-* Introduce and use a consistent hashcode_t type. Reported by Karl Berry.
-
-
-## Version 2.78 – 6.Apr.2009
-
-* t1lint: Report warnings when a font charstring command has too many
- arguments. Requested by Han The Thanh.
-
-
-## Version 2.77 – 6.Apr.2009
-
-* Font library changes: correctly implement binary search in a couple
- places -- unexpected sizes could lead to overflow and bad behavior.
- Reported by Mark DeVries for ttftotype42 and CharisSILR.
-
-
-## Version 2.76 – 27.Mar.2009
-
-* mmpfb: Ensure all output subroutines end in the "return" command; some
- type 1 processors treat a subroutine ending in "endchar" as an error.
- Reported by Melissa O'Neill.
-
-* mmpfb, cfftot1: Ensure that stem3 hints (hstem3, vstem3) meet the
- necessary constraints, even despite rounding.
-
-* t1lint: Add checks for some more problems, such as subroutines that do
- not end in "return." Reported/requested by Melissa O'Neill and Han The
- Thanh.
-
-
-## Version 2.75 – 22.Feb.2009
-
-* Report a helpful warning if automatic mode is specified to a version
- without kpathsea support. Question from Keith Briggs.
-
-
-## Version 2.74 – 16.Feb.2009
-
-* Correctly detect <unistd.h>. Problem reported by C.M. Connelly.
-
-
-## Version 2.73 – 15.Feb.2009
-
-* cfftot1 bug fix: Avoid introducing stray "rmoveto" commands and attendant
- visual artifacts into the output. The problem was caused by some
- coordinate system confusion. Reported by John Owens, who had tried to
- convert Inconsolata.
-
-
-## Version 2.72 – 27.Oct.2008
-
-* t1rawafm: Add missing newlines; thanks, Michael Zedler.
-
-* otftotfm: Understand "UniXXXX" glyph names. They're not standard, but
- it's pretty obvious what they imply. Reported by Vasile Gaburici.
-
-
-## Version 2.71 – 8.Aug.2008
-
-* otftotfm: Correctly install TrueType files when `--force`. Reported by
- Vasile Gaburici.
-
-
-## Version 2.70 – 8.Aug.2008
-
-* Add new t1rawafm program, which generates a "raw" (kernless and
- ligatureless) AFM file given a font file (PFB/PFA).
-
-* otftotfm: When installing, `--automatic` ignores files existing in the
- current directory. Confusion reported by Vasile Gaburici.
-
-* Type 1 parsing: Parse fonts with rare encoding formats, such as bases
- other than 10.
-
-
-## Version 2.69 – 5.May.2008
-
-* Mini portability fix for problem reported by Vladimir Volovich.
-
-
-## Version 2.68 – 2.May.2008
-
-* otftotfm: Tweak the ligature sorting algorithm. Prefer lowercase
- ligatures to mixed-case and uppercase ligatures; prefer the conventional
- f-ligatures to all others. Reported by Ulrich Dirr.
-
-
-## Version 2.67 – 25.Apr.2008
-
-* otftotfm: Improve font name construction for base fonts. Reported by
- Ulrich Dirr.
-
-
-## Version 2.66 – 3.Aug.2007
-
-* otftotfm: TrueType fonts had inappropriately large kerning pairs; fixed.
- Reported by Marc Penninga.
-
-
-## Version 2.65 – 22.Jul.2007
-
-* t1testpage: Fix bug triggered by fonts with empty encoding slots.
- Reported by Michael Zedler.
-
-
-## Version 2.64 – 25.Jun.2007
-
-* Handle Extension format GPOS and GSUB lookup tables, used for very large
- fonts. Reported by Marc Penninga.
-
-* cfftot1, t1lint: Correct misunderstanding of the Flex spec: there MUST be
- an rmoveto in between any two Flex subroutines, even if that rmoveto
- doesn't move anywhere. (Question: Are hmoveto/vmoveto acceptable? Adobe
- Reader seems to think so.) Reported by John Owens with respect to
- Caslon-Antique.
-
-
-## Version 2.63 – 12.Jun.2007
-
-* Correctly handle fonts with 4-byte character code cmap tables. Reported
- by Alexey Vikhlinin.
-
-
-## Version 2.62 – 11.Apr.2007
-
-* t1dotlessj: Do not use the same UniqueID as the input font. Inspired by
- Reinhard Kotucha.
-
-* otftotfm: Generate a map line even if there was a missing character in
- some UNICODING. Reported by Andreas BĂĽhmann.
-
-
-## Version 2.61 – 25.Mar.2007
-
-* otftotfm: Automatically reduce DESIGNUNITS and try again if a font has
- humungocharacters that overflow PL files' limited range of allowed real
- numbers. Reported by John Owens.
-
-
-## Version 2.60 – 27.Feb.2007
-
-* otftotfm: Rearrange order of virtual fonts so most-frequently-used font
- comes in position 0. Requested by Michael Zedler.
-
-* otftotfm: Apply letterspacing to "dotlessj". Maybe finally this is right.
-
-
-## Version 2.59 – 23.Feb.2007
-
-* otftotfm: %POSITION commands don't add glyphs to the encoding. Requested
- by Achim Blumensath.
-
-
-## Version 2.58 – 22.Feb.2007
-
-* otftotfm: More of the same (with respect to "Germandbls"), again reported
- by Michael Zedler.
-
-
-## Version 2.57 – 21.Feb.2007
-
-* otftotfm: More of the same: "emptyslot" glyphs don't generate spurious
- base fonts. Again reported by Michael Zedler.
-
-
-## Version 2.56 – 13.Feb.2007
-
-* otftotfm: Guess what?
-
-
-## Version 2.55 – 13.Feb.2007
-
-* otftotfm: Finally fix (?) letterspacing for simulated characters.
-
-
-## Version 2.54 – 12.Feb.2007
-
-* otftotfm: Include letterspacing for simulated characters. Bug reported
- by Michael Zedler.
-
-
-## Version 2.53 – 11.Feb.2007
-
-* otftotfm: Positionings and letterspacing apply even with
- `--base-encodings`. Bug reported by Michael Zedler.
-
-
-## Version 2.52 – 6.Feb.2007
-
-* otftotfm: `--base-encodings` fixes for dotless-J fonts.
-
-
-## Version 2.51 – 6.Feb.2007
-
-* otftotfm: Some `--base-encodings` fixes.
-
-
-## Version 2.50 – 6.Feb.2007
-
-* otftotfm: Add `--base-encodings` option. Requested by Michael Zedler.
-
-
-## Version 2.49 – 11.Jan.2007
-
-* Report certain types of invalid 'size' features that occasionally occur
- in old fonts. Thanks to John Owens and Read Roberts.
-
-
-## Version 2.48 – 11.Dec.2006
-
-* Translate font names into UTF-8 encoding. Reported by John Owens.
-
-
-## Version 2.47 – 10.Dec.2006
-
-* otfinfo: Add new names, such as "Preferred Family", to `otfinfo -i` output.
- Requested by John Owens.
-
-
-## Version 2.46 – 29.Oct.2006
-
-* otftotfm: Base metrics files now reflect the actual base font metrics
- more accurately (rather than containing virtual-font-only metrics
- information, such as letterspacing). This should make it easier to tell,
- using "diff", whether two base metrics files contain the same data.
-
-* otftotfm: `--no-type1` does not affect dotless-j font generation; use
- `--no-dotlessj` for that (Michael Zedler).
-
-* otftotfm: Don't generate virtual fonts unless you have to (Michael
- Zedler).
-
-
-## Version 2.45 – 17.Sep.2006
-
-* Include new ttftotype42 program.
-
-
-## Version 2.44 – 16.Sep.2006
-
-* otfinfo/otftotfm: Support new fonts whose 'size' features are defined
- correctly. Thanks to Read Roberts for defining the compatibility check.
-
-
-## Version 2.43 – 22.Aug.2006
-
-* otftotfm: Check for availability of kpse_opentype_format. Bug reported
- by Carsten Luckmann.
-
-
-## Version 2.42 – 22.Aug.2006
-
-* otftotfm: Any `--altselector-char` is actually encoded, so you can use it as
- a regular character as well as an altselector. Suggested by Carsten
- Luckmann.
-
-
-## Version 2.41 – 12.Aug.2006
-
-* otftotfm: Some TrueType fixes. Problems reported by Michael Zedler.
-
-
-## Version 2.40 – 1.Aug.2006
-
-* otftotfm: Initial support for TrueType-flavored OpenType fonts. Inspired
- because John Owens is working with Microsoft's Calibri et al.
-
-
-## Version 2.39 – 11.Jul.2006
-
-* cfftot1: Unify some subroutines previously missed, for slightly smaller
- output. Reported by Michael Zedler.
-
-
-## Version 2.38 – 8.May.2006
-
-* otfinfo: Add `--info` option. Requested by John Owens.
-
-
-## Version 2.37 – 25.Jan.2006
-
-* otftotfm: Add 'ringfitted'. Requested by Michael Zedler. Required bug
- fix.
-
-
-## Version 2.36 – 9.Nov.2005
-
-* otfinfo: Add `-a/--family` option. Based on patch from Ottavio G. Rizzo.
-
-* otftotfm: Fix bug where `-q` would inhibit map line output, reported by
- Achim Blumensath.
-
-
-## Version 2.35 – 3.Oct.2005
-
-* otftotfm: Allow `--ligkern "T h=:T_h"` (note lack of spaces around '=:').
- Inspired by Michael Saunders.
-
-* otftotfm: Split TeX extensions out from 'glyphlist.txt' into
- 'texglyphlist.txt', leaving 'glyphlist.txt' exactly as distributed by
- Adobe. Otftotfm reads both files. Requested by Werner Lemberg.
-
-* otftotfm: Add `% WARNMISSING` and `--warn-missing`, so that missing
- characters result in blots and cause warnings when processed by dvips.
- Requested by Michael Zedler.
-
-* otfinfo: Add `-v/--font-version` option and document `-t/--tables` option.
-
-* t1reencode: Add many more standard encodings to t1reencode, and fix
- existing ones. Patch from Peter Betzler.
-
-
-## Version 2.34 – 11.Jun.2005
-
-* otftotfm: Search for 'glyphlist.txt' using kpathsea, and set kpathsea
- program name to 'lcdftools'. Requested by Karl Berry.
-
-
-## Version 2.33 – 3.Jun.2005
-
-* otftotfm: Include more secondary replacements, including double-bar,
- centered asterisk, per-ten-thousand, and so forth. Patch from Michael
- Zedler.
-
-* otftotfm: Add `% POSITION` and `--position`. Requested by Michael
- Zedler.
-
-
-## Version 2.32 – 31.May.2005
-
-* otftotfm: Report correct dimensions for characters only in the base
- encoding. Reported by Michael Zedler.
-
-
-## Version 2.31 – 30.May.2005
-
-* otftotfm: Fix crash tickled by constructed characters, reported by
- Michael Zedler.
-
-* Compilation fixes suggested by Nelson H.F. Beebe.
-
-
-## Version 2.30 – 8.May.2005
-
-* otftotfm: Add support for 'dblbracketleft' and 'dblbracketright'.
- Secondary replacement can add characters to the font.
-
-* otftotfm: Ligkern commands 'A {5} B' and 'A {L} B' can coexist, leading
- to a 5-character kern and no ligature. Requested by Michael Zedler.
-
-
-## Version 2.29 – 7.May.2005
-
-* otftotfm: Fix crash reported by Ryuji Suzuki.
-
-* otftotfm: Add support for 'capitalcompwordmark' and
- 'ascendercompwordmark', requested by Michael Zedler.
-
-* otftotfm: Use OpenType OS/2 table to determine x-height, if available.
-
-
-## Version 2.28 – 25.Apr.2005
-
-* otftotfm: `--math-spacing` doesn't set italic corrections to 0. Thanks
- to Achim Blumensath.
-
-
-## Version 2.27 – 24.Apr.2005
-
-* otftotfm: Add support for setting kerns: `--ligkern "A {5} B"`. Thanks
- to Achim Blumensath for a patch.
-
-* otftotfm: Add preliminary support for heuristically-derived math accent
- positions via a 'skewchar' argument to `--math-spacing`. Thanks again to
- Achim Blumensath.
-
-
-## Version 2.26 – 2.Apr.2005
-
-* otftotfm: Support more kinds of substitution.
-
-* otftotfm: Support old-style and new-style chaining context substitutions
- using Adobe's procedure. Older fonts had erroneous substitutions because
- of a software error; newer fonts don't.
-
-* otftotfm: Fix crash tickled by newer versions of MinionPro and other
- fonts, reported by Michael Zedler and Oliver M. Haynold.
-
-
-## Version 2.25 – 10.Mar.2005
-
-* otftotfm: Ignore unencoded default ligkerns (don't try to encode their
- characters). Reported by Michael Zedler.
-
-
-## Version 2.24 – 10.Mar.2005
-
-* otftotfm: Fix assertion failure introduced in 2.23.
-
-
-## Version 2.23 – 8.Mar.2005
-
-* otftotfm: Fix bug present since 2.20 where, for example, `--unicoding
- "germandbls =: SSsmall"` was ignored in favor of a named 'germandbls'
- character. Reported by Michael Zedler.
-
-
-## Version 2.22 – 2.Mar.2005
-
-* otftotfm: Include default ligatures unless `--no-default-ligkern` is
- given. This seems cleaner than the previous semantics (which included
- the default ligatures unless there were ligatures in the encoding and/or
- the command line), but it is incompatible. Inspired by question from
- Christopher Swingely.
-
-
-## Version 2.21 – 16.Feb.2005
-
-* otftotfm: Base fonts include no kerns or ligatures. Requested by Michael
- Zedler.
-
-* cfftot1: Correctly handle default values for CFF fonts, so that, for
- example, isFixedPitch is defined to false even when the font doesn't
- mention it. Requested by Huver.
-
-
-## Version 2.20 – 9.Feb.2005
-
-* otftotfm: Add `--space-factor` and `--math-spacing` options, based on
- patches from Achim Blumensath.
-
-* otftotfm: Improve handling of explicit `--ligkern` ligatures: they override
- default ligatures, and any characters mentioned are shoehorned into the
- encoding. Catalyzed by Michael Zedler.
-
-
-## Version 2.19 – 4.Feb.2005
-
-* otftotfm: Add `--subs-filter`, `--include-subs`, `--exclude-subs`, and
- `--clear-subs` options (inspired by patch from Achim Blumensath).
-
-* otftotfm: Update documentation and behavior for newer teTeX
- installations. For instance, run the system `updmap` by default (unless
- you give the `--no-updmap` option). This makes automatic mode much
- easier to set up.
-
-* otftotfm: Output pltotf and vptovf messages to standard error (Achim
- Blumensath).
-
-* otftotfm: Protect arguments given to the shell (Achim Blumensath).
-
-* otfinfo: Add `-g` option to query all glyphs in a font.
-
-
-## Version 2.18 – 26.Jan.2005
-
-* otftotfm: Fix bug that could cause infinite loops on FreeBSD machines.
-
-
-## Version 2.17 – 4.Jan.2005
-
-* Add t1reencode program. Requested by Ralph Aichinger.
-
-* otftotfm: Add `--output-encoding` option.
-
-* t1lint: Check that UniqueID and XUID values are in range.
-
-
-## Version 2.16 – 19.Nov.2004
-
-* `--include-alternates` and `--exclude-alternates` options only apply to
- features that appear later in the options list.
-
-* Fix bug where not all `--altselector-feature` features would be used.
- Problem reported by Emil Lohse.
-
-* Add `--clear-alternates` option.
-
-
-## Version 2.15 – 21.Sep.2004
-
-* AIX compile fixes. Reported by Vladimir Volovich.
-
-* Include RPM .spec file, provided by C.M. Connelly.
-
-
-## Version 2.14 – 16.Sep.2004
-
-* Use AM_MAINTAINER_MODE. Suggested by Karl Berry.
-
-* IRIX compile fixes. Reported by Olaf Weber.
-
-
-## Version 2.13 – 12.Sep.2004
-
-* otftotfm: Check $TEXMF if $VARTEXMF has no writable directory. Reported
- by Simon Patarin.
-
-* Add `--enable-selfauto-loc` configuration option, enabled by default, to
- help otftotfm run with TeX configuration files that use SELFAUTODIR and
- related variables. Suggested by Thomas Esser; mechanism from dvipng.
-
-
-## Version 2.12 – 19.Aug.2004
-
-* Catch bug that would affect otftotfm on 64-bit machines.
-
-
-## Version 2.11 – 18.Aug.2004
-
-* otftotfm: Adjust TDS 1.1 support thanks to Olaf Weber.
-
-
-## Version 2.10 – 18.Aug.2004
-
-* otftotfm: Add preliminary support for the TeX Directory Structure 1.1
- standard.
-
-* Bug fix that should let us compile on Cygwin. Problem reported by
- Christian Gudrian.
-
-
-## Version 2.9 – 10.Aug.2004
-
-* otftotfm: Add `--letter-feature` option, inspired by Michael Zedler.
-
-
-## Version 2.8 – 5.Aug.2004
-
-* otftotfm: Fix bug where missing GPOS or GSUB tables would cause an abort.
- Reported by Ryuji Suzuki.
-
-
-## Version 2.7 – 3.Aug.2004
-
-* otftotfm: Bug fix for obscure cases involving 'dotlessj' characters: the
- output VPL could contain a reference to "(SETCHAR X)", which is illegal.
- Reported by Marco Kuhlmann.
-
-
-## Version 2.6 – 12.Jul.2004
-
-* t1testpage adds preliminary support for font smoke proofs with `--smoke`.
- Requested by Karl Berry.
-
-* t1testpage adds `--glyph` option.
-
-
-## Version 2.5 – 6.Jul.2004
-
-* Support compilation with gcc-3.4.1. Reported by Thomas Esser.
-
-
-## Version 2.4 – 30.Jun.2004
-
-* cfftot1: Fix off-by-one bug where the encoding of the last encoded
- character was ignored, reported by Detlev Droege.
-
-* otftotfm: Some internal changes; bugs are possible.
-
-
-## Version 2.3 – 15.Jun.2004
-
-* otftotfm: Add `--default-ligkern` and `--no-encoding-commands` options,
- to address problem with "t1.enc" reported by Ulrich Dirr.
-
-* otftotfm documentation updates.
-
-
-## Version 2.2 – 8.May.2004
-
-* otftotfm: 't1dotlessj' errors don't prevent 'psfonts.map' from being
- updated. Reported by Stephen Moye.
-
-* t1dotlessj: Report different kinds of errors with different exit statuses.
-
-
-## Version 2.1 – 5.Apr.2004
-
-* otftotfm: Warn if no encoding specified. Requested by Zsolt Kiraly.
-
-* otftotfm: Improve documentation, particularly by adding example run with
- ".fd" file.
-
-
-## Version 2.0 – 21.Mar.2004
-
-* mmpfb, t1dotlessj, t1lint, t1testpage: On Windows, add _O_BINARY flag
- when appropriate. Reported by Fabrice Popineau.
-
-
-## Version 1.99 – 24.Feb.2004
-
-* otftotfm: Fix overfull encoding bug that could cause an assertion
- failure, reported by Adam Lindsay.
-
-* otftotfm: Speed improvement.
-
-
-## Version 1.98 – 22.Feb.2004
-
-* otftotfm: Add support for 'SSsmall' glyph. Einar Smith noted that the
- OpenType 'smcp' feature doesn't translate the sharp-S character to
- small-caps "SS" in most fonts. Now, add `--unicoding "germandbls =:
- SSsmall"` to get that behavior.
-
-* otftotfm: Compilation fix for problem reported by Nelson H.F. Beebe.
-
-
-## Version 1.97 – 6.Feb.2004
-
-* cfftot1: Fix bug in handling fonts with supplemental encodings. Problem
- reported by Eike <eiked>.
-
-
-## Version 1.96 – 11.Jan.2004
-
-* otftotfm: Handle alternate characters like 'Q.alt' in the input encoding:
- map them to the actual alternate glyph, rather than to the base Unicode
- value ('Q'). Reported by Ulrich Dirr.
-
-
-## Version 1.95 – 3.Jan.2004
-
-* otftotfm: Add automatic support for t1dotlessj. If the desired encoding
- has a 'dotlessj' character, and the input font doesn't, then otftotfm
- will run 't1dotlessj', create a dotless-J font, and include it using
- virtual fonts.
-
-* otftotfm: Avoid warnings about bad "(STOP)" commands in pltotf
- (introduced by the `--min-kern` facility).
-
-
-## Version 1.91 – 31.Dec.2003
-
-* mmpfb, t1dotlessj: Fix sidebearing problems.
-
-
-## Version 1.90 – 29.Dec.2003
-
-* mmpfb: Fix behavior with Adobe Jenson and other fonts with intermediate
- masters, and `--minimize` output, which had been broken since 1.65.
-
-* Add t1dotlessj program.
-
-
-## Version 1.88 – 23.Dec.2003
-
-* otfinfo: Change coding to be friendlier to older C++ compilers. Requested
- by Ulrich Dirr.
-
-
-## Version 1.87 – 22.Dec.2003
-
-* otftotfm: Fix `--extend` bug reported by Ulrich Dirr (the expansion factor
- was formerly applied to character heights and depths, not widths).
-
-
-## Version 1.86 – 19.Dec.2003
-
-* otftotfm: Change where `--base` is added to support pdftex: If the font
- name is "WarnoPro+10", the base font name is "WarnoPro--base+10".
- Reported by Ulrich Dirr.
-
-
-## Version 1.85 – 10.Dec.2003
-
-* otftotfm: Add `--altselector-feature` option, so you can specify the
- features activated by `--altselector-char`. Defaults to salt and dlig.
-
-* otftotfm: Fix intermittent hang.
-
-
-## Version 1.80 – 4.Dec.2003
-
-* otftotfm: Add `--altselector-char` option, and `--include-alternates` and
- `--exclude-alternates` options. These options support access to alternate
- characters through ligatures, using a mechanism originally planned by Sivan
- Toledo ("Exploiting Rich Fonts", TUGboat 21(2), 2000). Requested by Martin
- Budaj.
-
-* Add default encoding for 'SS' character (same as 'Germandbls'). Reported
- by Ulrich Dirr.
-
-
-## Version 1.75 – 3.Dec.2003
-
-* cfftot1: Handle the case when 'hintmask' is the first operator in a Type 2
- charstring. Reported by Tom Kacvinsky.
-
-
-## Version 1.70 – 1.Dec.2003
-
-* otftotfm: Add `--min-kern` option requested by Ulrich Dirr.
-
-* mmafm: Add `--min-kern` as a preferred synonym for `--kern-precision`.
-
-
-## Version 1.67 – 29.Nov.2003
-
-* otftotfm: Don't run off the end of an array. Bug reported and patch
- provided by Akira Kakuto.
-
-
-## Version 1.66 – 24.Nov.2003
-
-* cfftot1: Don't generate "currentfile eexec" twice. Bug reported by Adam
- Lindsay.
-
-
-## Version 1.65 – 24.Nov.2003
-
-* otftotfm: Include default ligatures if user does not specify ligatures.
- Requested by Adam Lindsay.
-
-* otftotfm: Generated VPL includes FONTDSIZE when referring to base. Bug
- reported by Adam Lindsay.
-
-* Preliminary support for CID-keyed OpenType fonts.
-
-
-## Version 1.60 – 7.Oct.2003
-
-* cfftot1: Support fonts using the 'seac' operator. Requested by Ralf
- Koenig.
-
-
-## Version 1.52 – 4.Sep.2003
-
-* otftotfm: Add `--design-size` option requested by Johannes Kuester.
-
-* t1testpage: Fix `--help` and add manual page at C.M. Connelly's request.
-
-
-## Version 1.51 – 2.Sep.2003
-
-* otftotfm: Generated TFM and PL files have DESIGNSIZE set to the font's
- actual design size, as read from the 'size' feature. Requested by
- Johannes Kuester.
-
-
-## Version 1.50 – 26.Aug.2003
-
-* Minor compilation fix; problem reported by Nelson H.F. Beebe.
-
-
-## Version 1.50b4 – 26.Aug.2003
-
-* otfinfo: Minor compilation fix from Tom Kacvinsky.
-
-
-## Version 1.50b3 – 25.Aug.2003
-
-* cfftot1: Emit UniqueID as an integer. Reported by Tom Kacvinsky.
-
-* otftotfm: `--without-kpathsea` fix. Patch provided by Adam Lindsay.
-
-* More compilation fixes provided by Tom Kacvinsky.
-
-
-## Version 1.50b2 – 24.Aug.2003
-
-* otfinfo: New program, requested by Adam Lindsay.
-
-* otftotfm: The `--query-scripts` and `--query-features` options are no
- longer supported. Use `otfinfo -s` and `otfinfo -f` instead.
-
-* otftotfm: Fix crash reported by Adam Lindsay.
-
-* otftotfm: In automatic mode, after modifying a 'psfonts.map' file, run
- the script 'TEXMF/dvips/updmap' if present.
-
-* Compilation fixes for Solaris provided by Tom Kacvinsky and Nelson
- H.F. Beebe.
-
-
-## Version 1.50b1 – 20.Aug.2003
-
-* Integrate mminstance (the mmafm and mmpfb programs), and bump the version
- number to reflect this.
-
-
-## Version 0.53 – 10.Aug.2003
-
-* Fix problem with Type 1 output in `--without-kpathsea` reported by Adam
- Lindsay.
-
-* Fix crash on encodings containing 'emptyslot' reported by Marco Kuhlmann.
-
-
-## Version 0.52 – 7.Aug.2003
-
-* Attempt to fix some build problems reported by Nelson H.F. Beebe.
-
-
-## Version 0.51 – 5.Aug.2003
-
-* otftotfm: Fix crashes with small encodings and absent boundary
- characters. Reported by Bruce D'Arcus.
-
-* otftotfm: Add `--boundary-char` and `--kpathsea-debug` options.
-
-
-## Version 0.50 – 4.Aug.2003
-
-* otftotfm: Handle more complex substitutions, such as those required to
- support `-fordn` and `-ffrac`.
-
-* otftotfm: The output virtual and base fonts can have different
- "encodings" with overlapping encoding slots. This can make fonts more
- compact.
-
-* When assigning slots to introduced characters, otftotfm prefers
- characters introduced by earlier lookups. This follows the spirit of the
- OpenType specification, since early lookups in some ways "override" later
- ones. The previous scoring mechanism remains in force within each
- individual lookup.
-
-* otftotfm: Rewrite GsubEncoding to Metrics, changing its fundamental
- abstraction (to two-ligatures). Simpler and cleaner overall.
-
-* otftotfm TODO: Ligatures that apply to middle or right context (for
- example, the two substitutions "a b c d => a b c y" and "b c => x" should
- combine to "a b c d => a x y", but they won't yet).
-
-
-## Version 0.19 – 30.Jul.2003
-
-* otftotfm: Add support for 'emptyslot' UNICODINGs. Requested by Marco
- Kuhlmann.
-
-
-## Version 0.18 – 9.Jul.2003
-
-* Otftotfm will now synthesize characters for some T1 glyphs automatically,
- specifically 'cwm' (compound word mark), 'visualspace', and 'Germandbls'.
- Requested by Marco Kuhlmann.
-
-* The glyphlist.txt file contains Unicode mappings for character names
- found in the BlueSky Computer Modern math italic and symbol fonts.
-
-* It also contains fake Unicode mappings for the 'cwm', 'visualspace', and
- 'Germandbls' characters found in EC.enc.
-
-* otftotfm: Don't output a KRN between two characters if there exists a LIG
- for those two characters.
-
-
-## Version 0.17 – 6.Jul.2003
-
-* otftotfm: Ligatures removed with LIGKERN commands won't show up in the
- encoding.
-
-* Improve scoring heuristics by which otftotfm decides which characters are
- more important (for when there isn't enough encoding space for all new
- glyphs).
-
-
-## Version 0.16 – 6.Jul.2003
-
-* otftotfm: In automatic mode, store dvips files (encodings and
- psfonts.map) in 'TEXMF/dvips/VENDOR', rather than 'TEXMF/dvips'. Users of
- previous versions will probably want to move their 'TEXMF/dvips/a_*.enc'
- and 'TEXMF/dvips/lcdftools.map' files to a 'TEXMF/dvips/lcdftools/'
- directory, and run 'mktexlsr TEXMF'.
-
-* otftotfm: When there isn't enough encoding space for all new glyphs,
- prefer shorter ligatures made out of regular letters -- for instance,
- prefer f_j to f_f_j, and T_h to f_iacute. Requested by Bruce D'Arcus.
-
-* otftotfm: Add `--ligkern` and `--unicoding` options.
-
-* otftotfm: Add `--coding-scheme` option and `% CODINGSCHEME` encoding
- comment, to define the PL/TFM coding scheme for the font. Apparently
- fontinst actually looks at the coding scheme. Also, when you specify a
- coding scheme, set DESIGNUNITS to 1, again to satisfy fontinst. Requested
- by Marco Kuhlmann.
-
-* otftotfm: Remove virtual font 'N.vf' when installing a regular font
- 'N.tfm' in automatic mode. This reduces the risk that an old virtual font
- will screw up your installation.
-
-
-## Version 0.15 – 4.Jul.2003
-
-* otftotfm: Bug fix: Don't multiply apply substitutions and kerns from the
- same lookup.
-
-* otftotfm: Supports simple left-contextual substitutions, necessary for
- ExPontoPro's 'calt' (Contextual Alternates) feature.
-
-
-## Version 0.14 – 2.Jul.2003
-
-* otftotfm: Add `-L/--letterspacing` option at Bruce D'Arcus's request.
-
-* otftotfm: Hypothetically supports the contextual substitutions necessary
- for the 'init' (Initial Forms) feature.
-
-* otftotfm: When you make a virtual font named "foo", remove any entries
- for "foo" from VENDOR.map.
-
-
-## Version 0.13 – 27.Jun.2003
-
-* `--without-kpathsea` works. Problem reported by Adam Lindsay.
-
-
-## Version 0.12 – 27.Jun.2003
-
-* otftotfm: Better error messages when directories cannot be found.
- Reported by Bruce D'Arcus.
-
-
-## Version 0.11 – 26.Jun.2003
-
-* otftotfm: Handles the contextual substitutions necessary for 'cswh'
- (Contextual Swash) and 'fina' (Terminal Forms) features.
-
-
-## Version 0.10 – 26.Jun.2003
-
-* otftotfm: Update ls-R files for new encodings.
-
-
-## Version 0.9 – 25.Jun.2003
-
-* otftotfm: psfonts.map lines contain the file name only (no directories).
- Requested by Norbert Preining.
-
-* otftotfm: Properly report errors when encoding files can't be found.
-
-* Fix kpathsea searching and dependency problems reported by Bruce D'Arcus
- and Claire Connelly, among others.
-
-* Fix templates to allow compilation with GCC 2.95.
-
-
-## Version 0.8 – 23.Jun.2003
-
-* otftopl has been renamed to otftotfm. The new program takes different
- options. Automatic mode is particularly different, and TFM output is now
- the default.
-
-* otftotfm: Automatic mode now sticks files into a TeX Directory Structure
- hierarchy. This works well with many TeX installations. It also
- automatically translates OpenType fonts into Type 1 PostScript with
- cfftot1 (unless you configure with `--disable-cfftot1`), and modifies a
- psfonts.map file for each font. See the manual page for more information.
-
-* otftotfm: Generates virtual fonts when required to support glyph
- positioning features. (`-f cpsp` is one example.)
-
-* otftotfm: Warns when a feature could not be completely implemented.
-
-* otftotfm: Add `--verbose` and `--no-create` options, among others
- (`--no-virtual`, `--map-file`, `--vendor`, `--typeface`, `--no-type1`...).
-
-* otftotfm: Encoding files are now named "a_SIGNATURE.enc", not
- "auto_SIGNATURE.enc".
-
-* The configure script now searches for the kpathsea library, since
- otftotfm's automatic mode depends on kpathsea. Provide
- `--without-kpathsea` to disable it.
-
-
-## Version 0.7 – 13.Jun.2003
-
-* cfftot1: Fix bug to handle MinionPro-Italic without crashing.
-
-
-## Version 0.6 – 12.Jun.2003
-
-* cfftot1: Fix definitions of Subrs entries 1 and 2; now fonts with flex
- hints will work.
-
-* cfftot1: Reduce noise generated by fonts with flex hints.
-
-* cfftot1: Generates valid character strings for characters whose first
- point is at the origin. (Previously, such charstrings wouldn't begin with
- a "moveto".)
-
-* otftopl: Support simple context substitutions and chained context
- substitutions. Required to support ACaslonPro-Italic's "swsh" feature.
- Reported by Adam Lindsay <atl@comp.lancs.ac.uk>.
-
-* otftopl: Prefer `--query-features` and `--query-scripts` to
- `--print-features` and `--print-scripts`.
-
-* otftopl: Better warnings and error messages for bad LIGKERN/UNICODING
- commands in encoding files, and when there isn't enough room in an
- encoding for ligature glyphs.
-
-* t1lint: Reads stdin if no filenames supplied on the command line.
-
-
-## Version 0.5 – 5.Jun.2003
-
-* Template reorganization so the typetools compile with GCC 3.3.
-
-
-## Version 0.4 – 3.Jun.2003
-
-* otftopl: Added `--slant` and `--extend` options.
-
-* otftopl's generated encodings have slightly different form, and are thus
- friendlier to ps2pk's bad parser.
-
-
-## Version 0.3 – 3.Jun.2003
-
-* Fixed bug: cfftot1 produced invalid results for fonts with encodings
- other than StandardEncoding, due to a misbehavior in the way Type 1 fonts
- were stored. Reported by Vladimir Volovich <vvv@vsu.ru>.
-
-
-## Version 0.2 – 3.Jun.2003
-
-* Fix CFF parsing bugs and configure errors reported by Vladimir Volovich
- <vvv@vsu.ru>.
-
-
-## Version 0.1 – 2.Jun.2003
-
-* Initial release.
-
-* See also the ONEWS file for older news about mmafm and mmpfb.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ONEWS b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ONEWS
deleted file mode 100644
index 6bd9dc8c42d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ONEWS
+++ /dev/null
@@ -1,433 +0,0 @@
-Mminstance NEWS
-
-This file contains news relevant to the mmafm and mmpfb programs, which
-used to be distributed separately in the mminstance package.
-
-Version 1.50 20.Aug.2003
-
-* As of version 1.50, mminstance is distributed as part of the
- lcdf-typetools package. Changes for versions 1.50 and up are listed in
- NEWS.
-
-
-Version 1.26.3 14.Aug.2003
-
-* Library changes to attempt to satisfy more C++ compilers. Again massive
- thanks to Nelson H.F. Beebe, and new massive thanks to Fabrice Popineau.
-
-
-Version 1.26.2 13.Aug.2003
-
-* Revert from '#include <cXXX>' to '#include <XXX.h>'.
-
-
-Version 1.26.1 11.Aug.2003
-
-* 'uintptr_t' configury, and more template changes.
-
-
-Version 1.26 10.Aug.2003
-
-* Further address build problems reported by Nelson Beebe.
-
-
-Version 1.25 7.Aug.2003
-
-* Address build problems reported by Nelson H.F. Beebe.
-
-
-Version 1.24 30.Jul.2003
-
-* Fix configure check for whether va_list is addressable. Ryan Murray found
- the bug; thanks hugely to Claire Connelly for testing resources.
-
-* Minor code restructuring.
-
-* mmpfb: --minimize is the default.
-
-* mmpfb: --minimize additionally forces some interpolated values to
- integers, specifically BlueValues, OtherBlues, FamilyBlues,
- FamilyOtherBlues, and BlueShift. Maybe this will avoid some problems
- people have had with embedding mmpfb-generated fonts and Acrobat 6.
-
-* Change rounding procedures. Now fonts generated on different platforms
- will likely not differ in rounding details. (What a difference 0.00001
- makes!)
-
-
-Version 1.23 9.Jul.2003
-
-* Add configure check for whether va_list is addressable. Thanks to Claire
- Connelly.
-
-
-Version 1.22 5.Jun.2003
-
-* More template nonsense. Mea culpa to Melissa O'Neill and Claire Connelly.
-
-
-Version 1.21 4.Jun.2003
-
-* GCC 3.3 would not link mminstance due to missing template instantiations.
- Moved templatei.cc into libefont.a to fix this. Reported by Melissa
- O'Neill <oneill@cs.hmc.edu>.
-
-
-Version 1.20 26.Jan.2003
-
-* mmafm: Fix bug with parsing intermediate-master files that made AJensonMM
- unusable. Reported by Fulko van Westrenen <westrenen@fvw.cistron.nl>.
-
-
-Version 1.19 5.Jan.2003
-
-* mmpfb: Previously, error introduced by the rounding process could build
- up over the length of a path, causing an anomaly when the path was
- closed. Now mmpfb compensates for rounding error, resulting in a path
- with better fidelity.
-
-* mmpfb: Add the `--minimize' option to minimize output fonts, allowing the
- X font server to load mmpfb-generated fonts. Problem with the X font
- server reported by Joerg Lippman <joerg.lippmann@o3-software.de>.
-
-* mmpfb: Add placeholder subroutines to fill in any gaps in the subroutine
- array, which the X font server doesn't like (that IBM Type 1 code is
- bad!). Probably this should be optional, since it makes the font bigger.
-
-* mmpfb: Renumber subroutines consecutively.
-
-* mmpfb: Generate a new FullName as well as a new FontName.
-
-* Adapt to newer Automake and LCDF and Efont libraries.
-
-
-Version 1.18 5.Oct.2002
-
-* Fix for compilation with newer C++ compilers.
-
-
-Version 1.17 30.Sep.2002
-
-* Fix for NuevaMM-It: the ItalicAngle array was not being properly
- commented out. Reported by Thomas Wu <twu@gene.com>.
-
-
-Version 1.16.3 17.Sep.2001
-
-* Workaround for Mac OS X: its sscanf() function behaves incorrectly when a
- format string ends with ` %n'. Reported and patched by Melissa O'Neill
- <oneill@cs.sfu.ca>.
-
-
-Version 1.16.2 6.Sep.2001
-
-* Improvements so mminstance compiles on more platforms. Problems reported
- by Nelson H. F. Beebe <beebe@math.utah.edu>.
-
-
-Version 1.16.1 15.Jul.2001
-
-* Bug fix: more cleanups for newer GCCs. Reported by C. M. Connelly
- <c@eskimo.com>.
-
-
-Version 1.16 18.Jun.2001
-
-* Bug fix: now newer C++ compilers will compile mminstance. Reported by
- Melissa O'Neill <oneill@cs.sfu.ca>.
-
-
-Version 1.15.1 12.Aug.2000
-
-* Don't use `-Wall' by default; old C++ compilers generate huge numbers of
- irrelevant warnings. Reported by Tom Kacvinsky <tjk@ams.org>.
-
-
-Version 1.15 12.Jul.2000
-
-* mmpfb: Remove calls to nonexistent subroutines. (This was not actually a
- bug; the calls to nonexistent subroutines would never execute anyway. The
- font ITCGaramondMM-It had characters like `/question { A callsubr B
- callsubr }', where the `A' subroutine would either draw an entire
- character and call `endchar' -- so `B' would never get called -- or it
- would do nothing at all. Previous mmpfb versions would remove the `B'
- subroutine but keep the `B callsubr' call if the interpolated `A' called
- `endchar'.) Requested by Han The Thanh <thanh@informatics.muni.cz>.
-
-* mmpfb: Removed warning about `strange othersubr commands'.
-
-
-Version 1.14 22.Jun.2000
-
-* mmpfb: Fixed a bug with large UniqueID values. Reported by Sivan Toledo
- <sivan@math.tau.ac.il>.
-
-* mmpfb: Support for interpolating BlueFuzz without any warnings.
-
-
-Version 1.13 16.Apr.2000
-
-* mmpfb: Can handle synthetic fonts like TektonMM-Oblique. Requested by
- Melissa O'Neill <oneill@cs.sfu.ca>.
-
-
-Version 1.12 5.Apr.2000
-
-* mmpfb: Make sure to remove multiple master commands from hint replacement
- subroutines. Required another overhaul. Requested by Han The Thanh
- <thanh@informatics.muni.cz>.
-
-
-Version 1.11 3.Apr.2000
-
-* mmafm: Added `--kern-precision' option. Requested by Han The Thanh
- <thanh@informatics.muni.cz>.
-
-* Bug fix: now mminstance can be compiled with recent versions of gcc. The
- error was a strange use of va_arg(). Reported by C. M. Connelly
- <c@eskimo.com>.
-
-
-Version 1.10 21.Feb.2000
-
-* mmpfb: Comment out DesignVector, NormDesignVector, and WeightVector
- entries. Now Ghostscript 6.0's ps2pdf script will work with
- mmpfb-generated fonts. Change requested by Melissa O'Neill
- <oneill@cs.sfu.ca>.
-
-
-Version 1.9 18.Jan.2000
-
-* mmpfb: Bug fix in special callothersubrs code introduced in Version 1.8.
- This bug probably did not affect anyone.
-
-
-Version 1.8 10.Jan.2000
-
-* mmpfb: Don't warn when encountering `BuildCharArray'. This shows up in
- some ITC multiple masters. Requested by Han The Thanh
- <thanh@informatics.muni.cz>.
-
-* mmpfb: Handle special callothersubrs from ITC Garamond MM. This required
- big changes, but the code is cleaner now, and more likely to be right in
- future: best of both worlds. Requested by Han The Thanh
- <thanh@informatics.muni.cz>.
-
-
-Version 1.7 30.Dec.1999
-
-* mmpfb: Fixed bug where garbled encoding vectors could be produced.
- Patch sent in by Christopher League <league@contrapunctus.net>.
-
-* Bug fix: Some error messages used to cause assertion failures.
-
-
-Version 1.6 28.Nov.1999
-
-* mmafm: Added `--precision' option for optionally rounding AFM dimensions.
- Requested by Christopher League <league@contrapunctus.net>.
-
-* Many bug fixes for compiling under NeXTSTEP or g++ 2.95. Patches sent in
- by Melissa O'Neill <oneill@cs.sfu.ca>.
-
-* Bug fix: numbers with both decimal point and exponent, like `1.2e5', are
- parsed correctly.
-
-
-Version 1.5 4.Jul.1999
-
-* mmpfb: Added `--subrs' option for reducing the number of subroutines in
- the output font. Use this option if you plan to use Acrobat Distiller 3.0
- to distill PostScript files including mmpfb-generated fonts. Distiller
- 3.0 has a low limit on the number of subroutines per font. Several
- changes to the Type 1 library support this. Problem reported by Thierry
- Bouche <Thierry.Bouche@ujf-grenoble.fr>; tracking help by Tom Kacvinsky
- <tjk@ams.org>.
-
-* Both programs accept multiple master instance names, like
- `MinionMM_367_400_18_', and will interpolate that instance from the
- multiple master font.
-
-* Removed `FONTPATH' and `AFMPATH'. `PSRESOURCEPATH' has been preferred for
- a couple months.
-
-* Updated ErrorHandler.
-
-
-Version 1.4.1 26.Jun.1999
-
-* mmpfb: Also comment out the /UniqueID in the Private dictionary, if any.
- Reported by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr>.
-
-
-Version 1.4 25.Jun.1999
-
-* mmpfb: Always comment out any /UniqueID in the font. This bug prevented
- some printers from printing files with mmpfb-interpolated fonts. Reported
- by Thierry Bouche <Thierry.Bouche@ujf-grenoble.fr>.
-
-* mmpfb: Comment out `Blend...' entries in the FontInfo dictionary. Now
- Adobe Acrobat Distiller can handle mmpfb-interpolated fonts; it correctly
- treats them like single-master fonts. Problem reported by Thierry Bouche
- <Thierry.Bouche@ujf-grenoble.fr>.
-
-* mmpfb: Comment out multiple-master-specific dictionary entries, rather
- than removing them entirely.
-
-* mmpfb: Interpolates Blend FontInfo dictionary entries, like
- `UnderlinePosition' (maybe; can't find any fonts that use them, so it's
- untested).
-
-
-Version 1.3.1 21.May.1999
-
-* Changed libraries to conform to STL interfaces.
-
-* Change to psres.cc to fix compilation bug under old C++ compilers.
-
-
-Version 1.3 11.Apr.1999
-
-* Mmafm will now automatically run `mmpfb --amcp-info' when necessary, so
- you don't have to create the AMCP files yourself. Caveat: This will only
- work if you use the PSRESOURCEPATH environment variable and have
- PSres.upr files set up correctly.
-
-* mmafm: Added the PSRESOURCEPATH environment variable, in favor of
- AFMPATH and FONTPATH.
-
-* mmafm: Checks for completely unknown design vectors.
-
-* mmpfb: Now uses the PSRESOURCEPATH environment variable to look for fonts
- by name.
-
-* mmpfb: Modifies the output font's XUID to prevent font cache pollution.
-
-* Improved documentation.
-
-* Unfortunately, this version still doesn't work under NeXTSTEP.
-
-
-Version 1.3b2 22.Jan.1999
-
-* Don't use `index' as a method name; it's a macro under NeXTSTEP. Reported
- by Melissa O'Neill <oneill@cs.sfu.ca>.
-
-* Patch around problems with NeXTSTEP's strtod and strtol. Also reported by
- Melissa O'Neill <oneill@cs.sfu.ca>.
-
-
-Version 1.3b1 12.Jan.1999
-
-* Han The Thanh <thanh@informatics.muni.cz> reports that Acrobat Reader
- gives a "bad /BBox" warning on mmpfb-interpolated fonts. This seems to be
- because mmpfb would produce fractional FontBBox entries. Fix: round the
- FontBBox entries so it contains integers.
-
-* Small bug fix: negative non-integers were formerly read incorrectly,
- introducing an error of not more than 2 integer units.
-
-
-Version 1.2 18.Dec.1998
-
-* Better error messages and fewer coredumps on bad files.
-
-* The mminstance package now uses automake.
-
-
-Version 1.1 27.Sep.1998
-
-* mmpfb: Changes to remove all multiple master commands in the output font,
- not just most of them.
-
-* mmpfb: Added error message on bad input file.
-
-* Removed hackery which prevented linking with -lstdc++.
-
-* `--help' now prints on stdout, as the GNU standards require.
-
-* Makefiles: added `make uninstall' target, enabled `./configure's program
- name transformations, made VPATH builds possible.
-
-
-Version 1.0 17.Sep.1998
-
-* No changes; just decided it was stable.
-
-
-Version 0.92 2.Sep.1998
-
-* Code reorganization in metrics. (Removed LineScanner, which wasn't a general
- design; split into a more general Slurper and a specific AfmParser.)
-
-
-Version 0.91 15.May.1998
-
-* mmafm: Nonexistent files caused a coredump instead of an error (fixed).
-
-* mmafm: Added support for finding AMFMs via path variables and PSres.upr
- files (you don't have to give an AMFM filename on the command line, you can
- give a font name).
-
-
-Version 0.9 4.Mar.1998
-
-* Fixed a bug in parsing fonts with intermediate masters.
-
-* mmafm: Added support for finding AFMs via path variables and PSres.upr
- files, and for giving their filenames on the command line.
-
-* Wrote manual pages.
-
-
-Version 0.8
-
-* Major release: Mmafm uses a new AFM/AMFM parsing library.
-
-* Restructured the two packages (mmafm and mmpfb) into one package
- (mminstance) containing both programs.
-
-* Improved error messages, command line behavior, usage, and help.
-
-
-Version 0.62
-
-* Fixed small bug in t1interp.cc which caused serious problems. (Function
- Type1Interp::number() fell off the end instead of returning true.) Bug
- reported by Melissa O'Neill <oneill@cs.sfu.ca>.
-
-
-Version 0.6
-
-* Major release: Both programs use a new, modular Type 1 parsing library,
- they take real numbers as arguments, and the configure scripts no longer
- try to link with -lstdc++. Thanks to Melissa O'Neill <oneill@cs.sfu.ca>
- for suggestions.
-
-* mmafm looks for separate .amcp files for intermediate master conversion
- programs. Suggested by Melissa O'Neill <oneill@cs.sfu.ca>.
-
-* mmpfb can read and generate PFA fonts.
-
-* Other fixes.
-
-
-Version 0.5
-
-* Fixed bug preventing the programs from working with Kepler.
-
-
-Version 0.4
-
-* Fixed mmpfb to handle older multiple master fonts (Myriad and Minion) and
- to generate non-truncated PFBs.
-
-
-Version 0.2 16.Aug.1997
-
-* Fixed serious bug in normalize_vector that resulted in incorrect output.
-
-
-Version 0.1 21.Jul.1997
-
-* Initial release.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
deleted file mode 100644
index 8666241a121..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/README.md
+++ /dev/null
@@ -1,118 +0,0 @@
-LCDF Typetools
-==============
-
-LCDF Typetools comprises several programs for manipulating PostScript
-Type 1, Type 1 Multiple Master, OpenType, and TrueType fonts.
-
-**cfftot1** translates a Compact Font Format (CFF) font, or a
-PostScript-flavored OpenType font, into PostScript Type 1 format. It
-correctly handles subroutines and hints.
-
-**mmafm** creates an AFM file (font metrics) corresponding to an instance of
-a Type 1 Multiple Master font. It reads the AMFM and AFM files distributed
-with the font.
-
-**mmpfb** creates a normal, single-master font program which looks like an
-instance of a Type 1 Multiple Master font. It reads the multiple master font
-program in PFA or PFB format.
-
-**otfinfo** reports information about OpenType and TrueType fonts, such as
-the OpenType features and Unicode code points they support, or the contents
-of their `size` optical size features.
-
-**otftotfm** creates TeX font metrics and encodings that correspond to an
-OpenType or TrueType font. It interprets glyph positionings, substitutions,
-and ligatures as far as it is able. You can say which OpenType features
-should be activated.
-
-**t1dotlessj** reads a Type 1 font, then creates a new Type 1 font whose
-only character is a dotless lower-case j matching the input font’s design.
-
-**t1lint** checks Type 1 fonts for correctness. It tests most of the
-requirements listed in Adobe Systems’ Black Book (“Adobe Type 1 Font
-Format”), and some others.
-
-**t1rawafm** creates an AFM font metrics file corresponding to a raw Type 1
-font file (in PFA or PFB format).
-
-**t1reencode** reencodes a Type 1 font, replacing its internal encoding with
-one you specify.
-
-**t1testpage** creates PostScript test pages for a given Type 1 font. These
-pages show every character defined in the font.
-
-**ttftotype42** creates a Type 42 wrapper for a TrueType or
-TrueType-flavored OpenType font. This allows the font to be embedded in a
-PostScript file.
-
-Each of these programs has a manual page; `man PROGRAMNAME/PROGRAMNAME.1`
-for more information.
-
-See `NEWS` in this directory for changes in recent versions. The LCDF
-Typetools home page is:
-
-http://www.lcdf.org/type/
-
-
-Installation
-------------
-
-Type `./configure`, then `make`.
-
-If `./configure` does not exist (you downloaded from Github), run
-`./bootstrap.sh` first.
-
-`./configure` accepts the usual options; see `INSTALL` for details.
-Some of the typetools programs can link with additional libraries. Otftotfm
-can use the Kpathsea library for integration with TeX directories; if your
-version of this library is in a nonstandard place, supply `./configure` with
-the `--with-kpathsea=PREFIX` option to find it.
-
-You can also disable individual programs by supplying `./configure` with
-`--disable-PROGNAME` options. See `./configure --help` for more
-information.
-
-
-Mmafm and mmpfb
----------------
-
-Run `mmafm --help` and `mmpfb --help` for a full option summary. Here are
-two example runs:
-
- % mmafm MyriadMM.amfm --weight=300 --width=585 > MyriadMM_300_585_.afm
- % mmpfb MyriadMM.pfb --weight=300 --width=585 > MyriadMM_300_585_.pfb
-
-Mmafm expects the name of an AMFM file on the command line. It also needs
-an AFM file for each master (these should have been distributed with the
-AMFM file). You can give the AFM files’ names on the command line, along
-with the AMFM file, or you let mmafm find the AFM files automatically. For
-the automatic method, you must follow one of these 2 conventions:
-
-1. The AFM files are in the same directory as the AMFM file. They are
-named `FONTNAME.afm` -- `MyriadMM-LightCn.afm`, for example.
-
-2. There is a `PSres.upr` file that lists the AFMs by font name, and the
-`PSRESOURCEPATH` environment variable contains the directory with that
-`PSres.upr` file. (`ps2pk` comes with a sample `PSres.upr` file.)
-
-
-Copyright and license
----------------------
-
-All source code is Copyright (c) 1997-2019 Eddie Kohler.
-
-This code is distributed under the GNU General Public License, Version 2
-(and only Version 2). The GNU General Public License is available via the
-Web at <http://www.gnu.org/licenses/gpl.html>, or in the COPYING file in
-this directory.
-
-
-Author
-------
-
-Eddie Kohler <ekohler@gmail.com>, http://www.lcdf.org/
-
-The current version of the lcdf-typetools package is available on the Web at
-http://www.lcdf.org/type/
-
-LCDF stands for Little Cambridgeport Design Factory.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/autoconf.h.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/autoconf.h.in
deleted file mode 100644
index 178587ae6d4..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/autoconf.h.in
+++ /dev/null
@@ -1,233 +0,0 @@
-/* autoconf.h.in. Generated from configure.ac by autoheader. */
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Directory for glyphlist.txt files. */
-#undef GLYPHLISTDIR
-
-/* Define if the va_list type is addressable. */
-#undef HAVE_ADDRESSABLE_VA_LIST
-
-/* Define to incldue Adobe code in output fonts. */
-#undef HAVE_ADOBE_CODE
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define to run cfftot1 from otftotfm. */
-#undef HAVE_AUTO_CFFTOT1
-
-/* Define to run t1dotlessj from otftotfm. */
-#undef HAVE_AUTO_T1DOTLESSJ
-
-/* Define to run ttftotype42 from otftotfm. */
-#undef HAVE_AUTO_TTFTOTYPE42
-
-/* Define to run updmap from otftotfm. */
-#undef HAVE_AUTO_UPDMAP
-
-/* Define if strnlen is broken. */
-#undef HAVE_BROKEN_STRNLEN
-
-/* Define if strtod is broken. */
-#undef HAVE_BROKEN_STRTOD
-
-/* Define to 1 if you have the <byteorder.h> header file. */
-#undef HAVE_BYTEORDER_H
-
-/* Define to 1 if you have the `ctime' function. */
-#undef HAVE_CTIME
-
-/* Define to 1 if you have the declaration of `kpse_enc_format', and to 0 if
- you don't. */
-#undef HAVE_DECL_KPSE_ENC_FORMAT
-
-/* Define to 1 if you have the declaration of `kpse_opentype_format', and to 0
- if you don't. */
-#undef HAVE_DECL_KPSE_OPENTYPE_FORMAT
-
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
- don't. */
-#undef HAVE_DECL_STRNLEN
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
- */
-#undef HAVE_DIRENT_H
-
-/* Define if intXX_t types are not available. */
-#undef HAVE_FAKE_INT_TYPES
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the `ftruncate' function. */
-#undef HAVE_FTRUNCATE
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if you want to use kpathsea. */
-#undef HAVE_KPATHSEA
-
-/* Define to 1 if you have the `m' library (-lm). */
-#undef HAVE_LIBM
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mkstemp' function. */
-#undef HAVE_MKSTEMP
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#undef HAVE_NDIR_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <new.h> header file. */
-#undef HAVE_NEW_H
-
-/* Define if <new> exists and works. */
-#undef HAVE_NEW_HDR
-
-/* Define if PermStrings are available. */
-#undef HAVE_PERMSTRING
-
-/* Define to include precondition checking assertions. */
-#undef HAVE_PRECONDITION_CHECKING
-
-/* Define to 1 if you have the `sigaction' function. */
-#undef HAVE_SIGACTION
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strnlen' function. */
-#undef HAVE_STRNLEN
-
-/* Define to 1 if you have the `strtoul' function. */
-#undef HAVE_STRTOUL
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
- */
-#undef HAVE_SYS_DIR_H
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
- */
-#undef HAVE_SYS_NDIR_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <sys/wait.h> header file. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to 1 if the system has the type `uintptr_t'. */
-#undef HAVE_UINTPTR_T
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have u_intXX_t types but not uintXX_t types. */
-#undef HAVE_U_INT_TYPES
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#undef HAVE_VSNPRINTF
-
-/* Define to 1 if you have the `waitpid' function. */
-#undef HAVE_WAITPID
-
-/* Define to 0 if you don't want mmafm to run mmpfb when it needs to get an
- intermediate master conversion program. */
-#undef MMAFM_RUN_MMPFB
-
-/* Define to 1 if you must include <arpa/inet.h> to get `ntohl'. */
-#undef NEED_ARPA_INET_H
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* kpsewhich's $SELFAUTODIR variable */
-#undef SELFAUTODIR
-
-/* kpsewhich's $SELFAUTOGRANDPARENT variable */
-#undef SELFAUTOGRANDPARENT
-
-/* kpsewhich's $SELFAUTOLOC variable */
-#undef SELFAUTOLOC
-
-/* kpsewhich's $SELFAUTOPARENT variable */
-#undef SELFAUTOPARENT
-
-/* The size of `unsigned int', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_INT
-
-/* The size of `unsigned long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG
-
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-# undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define if WORDS_BIGENDIAN has been set. */
-#undef WORDS_BIGENDIAN_SET
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.am
deleted file mode 100644
index 8f63f7a06e8..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = cfftot1
-man_MANS = cfftot1.1
-
-cfftot1_SOURCES = cfftot1.cc \
- maket1font.cc maket1font.hh
-
-cfftot1_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = cfftot1.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.in
deleted file mode 100644
index e7e03ce5594..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/Makefile.in
+++ /dev/null
@@ -1,771 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = cfftot1$(EXEEXT)
-subdir = lcdf-typetools-src/cfftot1
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_cfftot1_OBJECTS = cfftot1.$(OBJEXT) maket1font.$(OBJEXT)
-cfftot1_OBJECTS = $(am_cfftot1_OBJECTS)
-cfftot1_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/cfftot1.Po ./$(DEPDIR)/maket1font.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(cfftot1_SOURCES)
-DIST_SOURCES = $(cfftot1_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = cfftot1.1
-cfftot1_SOURCES = cfftot1.cc \
- maket1font.cc maket1font.hh
-
-cfftot1_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = cfftot1.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/cfftot1/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/cfftot1/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-cfftot1$(EXEEXT): $(cfftot1_OBJECTS) $(cfftot1_DEPENDENCIES) $(EXTRA_cfftot1_DEPENDENCIES)
- @rm -f cfftot1$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(cfftot1_OBJECTS) $(cfftot1_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfftot1.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maket1font.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/cfftot1.Po
- -rm -f ./$(DEPDIR)/maket1font.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/cfftot1.Po
- -rm -f ./$(DEPDIR)/maket1font.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
deleted file mode 100644
index 43057e099eb..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.1
+++ /dev/null
@@ -1,87 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH CFFTOT1 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-cfftot1 \- convert PostScript font from CFF to Type 1
-.SH SYNOPSIS
-.B cfftot1
-\%[\fB\-a\fR]
-\%[\fIinput\fR [\fIoutput\fR]]
-.SH DESCRIPTION
-.BR Cfftot1
-converts PostScript font programs in the Compact Font Format (CFF) into
-Type 1 font programs in PFB or PFA format, preserving all hints that can be
-represented in Type 1. The input file should be a raw CFF file or a
-PostScript-flavored OpenType font. If the file
-.I output
-is not specified output goes to the standard output.
-If the file
-.I input
-is not specified input comes from the standard input.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BI \-a "\fR, " \-\-pfa
-Output font in ASCII PFA format.
-'
-.Sp
-.TP 5
-.BI \-b "\fR, " \-\-pfb
-Output font in binary PFB format. This is the default.
-'
-.Sp
-.TP 5
-.BI \-n " name\fR, " \-\-name " name"
-Output the CFF's component font named
-.IR name .
-CFF files can contain more than one font, although few do. Use this option
-to select a particular font from a multi-font collection. By default
-cfftot1 chooses the collection's first font.
-'
-.Sp
-.TP 5
-.BI \-o " file\fR, " \-\-output " file"
-Write output font to
-.IR file
-instead of the standard output.
-'
-.Sp
-.TP 5
-.BR \-q ", " \-\-quiet
-Do not generate any error messages.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-v ", " \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "SEE ALSO"
-.LP
-.M t1binary 1 ,
-.M t1ascii 1
-.LP
-.I "Adobe Type 1 Font Format"
-.LP
-Adobe Technical Notes #5176,
-.IR "The Compact Font Format Specification" ,
-and #5177,
-.I "The Type 2 Charstring Format"
-.LP
-.IR "OpenType Specification" ,
-Version 1.4
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
deleted file mode 100644
index c77ddd2f512..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/cfftot1.cc
+++ /dev/null
@@ -1,269 +0,0 @@
-/* cfftot1.cc -- driver for translating CFF fonts to Type 1 fonts
- *
- * Copyright (c) 2002-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include "maket1font.hh"
-#include <efont/cff.hh>
-#include <efont/otf.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define QUIET_OPT 303
-#define PFB_OPT 304
-#define PFA_OPT 305
-#define OUTPUT_OPT 306
-#define NAME_OPT 307
-
-const Clp_Option options[] = {
- { "ascii", 'a', PFA_OPT, 0, 0 },
- { "binary", 'b', PFB_OPT, 0, 0 },
- { "help", 'h', HELP_OPT, 0, 0 },
- { "name", 'n', NAME_OPT, Clp_ValString, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "pfa", 'a', PFA_OPT, 0, 0 },
- { "pfb", 'b', PFB_OPT, 0, 0 },
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "version", 'v', VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-static bool binary = true;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTIONS] [FONTFILE [OUTPUTFILE]]", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<Cfftot1%> translates a PostScript font from the Compact Font Format (CFF) to\n\
-the usual Type 1 format. The input file should be either a raw CFF font or a\n\
-PostScript-flavored OpenType font. The result, which is usually written to the\n\
-standard output, is written in PFB or PFA format.\n\
-\n\
-Usage: %s [OPTIONS] [FONTFILE [OUTPUTFILE]]\n\
-\n\
-Options:\n\
- -a, --pfa Output PFA font.\n\
- -b, --pfb Output PFB font. This is the default.\n\
- -n, --name=NAME Select font NAME from CFF.\n\
- -o, --output=FILE Write output to FILE.\n\
- -q, --quiet Do not generate any error messages.\n\
- -h, --help Print this message and exit.\n\
- -v, --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-// MAIN
-
-static void
-do_file(const char *infn, const char *outfn, PermString name, ErrorHandler *errh)
-{
- FILE *f;
- if (!infn || strcmp(infn, "-") == 0) {
- f = stdin;
- infn = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else if (!(f = fopen(infn, "rb")))
- errh->fatal("%s: %s", infn, strerror(errno));
-
- int c = getc(f);
- ungetc(c, f);
-
- Cff::Font *font = 0;
-
- if (c == EOF)
- errh->fatal("%s: empty file", infn);
- if (c != 1 && c != 'O')
- errh->fatal("%s: not a CFF or OpenType/CFF font", infn);
-
- StringAccum sa(150000);
- int amt;
- do {
- if (char *x = sa.reserve(32768)) {
- amt = fread(x, 1, 32768, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f) || ferror(f))
- errh->lerror(infn, "%s", strerror(errno));
- if (f != stdin)
- fclose(f);
-
- ContextErrorHandler cerrh(errh, "While processing %s:", infn);
- cerrh.set_indent(0);
- String data = sa.take_string();
- unsigned units_per_em = 0;
- if (c == 'O') {
- Efont::OpenType::Font font(data, &cerrh);
- data = font.table("CFF");
- units_per_em = font.units_per_em();
- }
-
- Cff *cff = new Cff(data, units_per_em, &cerrh);
- Cff::FontParent *fp = cff->font(name, &cerrh);
- if (errh->nerrors() == 0
- && !(font = dynamic_cast<Cff::Font *>(fp)))
- errh->fatal("%s: CID-keyed fonts not supported", infn);
-
- if (errh->nerrors() > 0)
- return;
-
- Type1Font *font1 = create_type1_font(font, &cerrh);
-
- if (!outfn || strcmp(outfn, "-") == 0) {
- f = stdout;
- outfn = "<stdout>";
- } else if (!(f = fopen(outfn, "wb")))
- errh->fatal("%s: %s", outfn, strerror(errno));
-
- if (binary) {
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- Type1PFBWriter t1w(f);
- font1->write(t1w);
- } else {
- Type1PFAWriter t1w(f);
- font1->write(t1w);
- }
-
- if (f != stdout)
- fclose(f);
-}
-
-int
-main(int argc, char *argv[])
-{
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr, String(program_name) + ": "));
- const char *input_file = 0;
- const char *output_file = 0;
- const char *font_name = 0;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case PFA_OPT:
- binary = false;
- break;
-
- case PFB_OPT:
- binary = true;
- break;
-
- case NAME_OPT:
- if (font_name)
- usage_error(errh, "font name specified twice");
- font_name = clp->vstr;
- break;
-
- case QUIET_OPT:
- if (clp->negated)
- errh = ErrorHandler::default_handler();
- else
- errh = new SilentErrorHandler;
- break;
-
- case VERSION_OPT:
- printf("cfftot1 (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 2002-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case OUTPUT_OPT:
- output_file:
- if (output_file)
- usage_error(errh, "output file specified twice");
- output_file = clp->vstr;
- break;
-
- case Clp_NotOption:
- if (input_file && output_file)
- usage_error(errh, "too many arguments");
- else if (input_file)
- goto output_file;
- else
- input_file = clp->vstr;
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- do_file(input_file, output_file, font_name, errh);
-
- return (errh->nerrors() == 0 ? 0 : 1);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
deleted file mode 100644
index 54a4000b9bd..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.cc
+++ /dev/null
@@ -1,591 +0,0 @@
-/* maket1font.{cc,hh} -- translate CFF fonts to Type 1 fonts
- *
- * Copyright (c) 2002-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "maket1font.hh"
-#include <efont/t1interp.hh>
-#include <efont/t1csgen.hh>
-#include <lcdf/point.hh>
-#include <lcdf/error.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1unparser.hh>
-
-using namespace Efont;
-
-typedef unsigned CsRef;
-enum { CSR_GLYPH = 0x00000000, CSR_SUBR = 0x80000000,
- CSR_GSUBR = 0xC0000000,
- CSR_TYPE = 0xC0000000, CSR_NUM = 0x3FFFFFFF };
-
-class MakeType1CharstringInterp : public Type1CharstringGenInterp { public:
-
- MakeType1CharstringInterp(int precision = 5);
- ~MakeType1CharstringInterp();
-
- Type1Font *output() const { return _output; }
-
- void run(const CharstringProgram *, Type1Font *, PermString glyph_definer, ErrorHandler *);
- void run(const CharstringContext &, Type1Charstring &, ErrorHandler *);
-
- bool type2_command(int, const uint8_t *, int *);
-
- String landmark(ErrorHandler *errh) const;
-
- class Subr;
-
- private:
-
- // output
- Type1Font *_output;
- int _flex_message;
-
- // subroutines
- int _subr_bias;
- int _gsubr_bias;
- mutable Vector<Subr *> _glyphs;
- mutable Vector<Subr *> _subrs;
- mutable Vector<Subr *> _gsubrs;
-
- Subr *_cur_subr;
- int _cur_glyph;
-
- Subr *csr_subr(CsRef, bool force) const;
- Type1Charstring *csr_charstring(CsRef) const;
-
-};
-
-class MakeType1CharstringInterp::Subr { public:
-
- Subr(CsRef csr) : _csr(csr), _output_subrno(-1), _stamp(0) { }
-
- bool up_to_date() const { return _stamp == max_stamp; }
- void update() { _stamp = max_stamp; }
- static void bump_date() { max_stamp++; }
-
- //String name(const MakeType1CharstringInterp *) const;
- Type1Charstring *charstring(const MakeType1CharstringInterp *) const;
-
- int ncalls() const { return _calls.size(); }
- Subr *call(int i) const { return _calls[i]; }
- bool has_call(Subr *) const;
-
- struct Caller {
- Subr *subr;
- int pos;
- int len;
- Caller(Subr *s, int p, int l)
- : subr(s), pos(p), len(l) {
- }
- String charstring(MakeType1CharstringInterp *mcsi) const {
- Type1Charstring *t1cs = subr->charstring(mcsi);
- return t1cs->substring(pos, len);
- }
- };
-
- int ncallers() const { return _callers.size(); }
- const Caller &caller(int i) const { return _callers[i]; }
-
- void add_call(Subr *s) { _calls.push_back(s); }
- void add_caller(Subr *s, int pos, int len);
-
- int output_subrno() const { return _output_subrno; }
- void set_output_subrno(int n) { _output_subrno = n; }
-
- void transfer_nested_calls(int pos, int length, Subr *new_caller) const;
- void change_callers(Subr *, int pos, int length, int new_length);
- bool unify(MakeType1CharstringInterp *);
-
- private:
-
- CsRef _csr;
- Vector<Subr *> _calls;
- Vector<Caller> _callers;
-
- int _output_subrno;
- int _stamp;
-
- static int max_stamp;
-
- friend class MakeType1CharstringInterp;
-
-};
-
-int MakeType1CharstringInterp::Subr::max_stamp = 1;
-
-inline void
-MakeType1CharstringInterp::Subr::add_caller(Subr *s, int pos, int len)
-{
- _callers.push_back(Caller(s, pos, len));
-}
-
-bool
-MakeType1CharstringInterp::Subr::has_call(Subr *s) const
-{
- for (int i = 0; i < _calls.size(); i++)
- if (_calls[i] == s)
- return true;
- return false;
-}
-
-
-/*****
- * MakeType1CharstringInterp
- **/
-
-MakeType1CharstringInterp::MakeType1CharstringInterp(int precision)
- : Type1CharstringGenInterp(precision), _flex_message(0)
-{
-}
-
-MakeType1CharstringInterp::~MakeType1CharstringInterp()
-{
- for (int i = 0; i < _glyphs.size(); i++)
- delete _glyphs[i];
- for (int i = 0; i < _subrs.size(); i++)
- delete _subrs[i];
- for (int i = 0; i < _gsubrs.size(); i++)
- delete _gsubrs[i];
-}
-
-String
-MakeType1CharstringInterp::landmark(ErrorHandler *errh) const
-{
- if (_cur_glyph >= 0 && _cur_glyph < program()->nglyphs())
- return errh->format("glyph %<%s%>", program()->glyph_name(_cur_glyph).c_str());
- else
- return String();
-}
-
-
-// subroutines
-
-MakeType1CharstringInterp::Subr *
-MakeType1CharstringInterp::csr_subr(CsRef csr, bool force) const
-{
- Vector<Subr *> *vp;
- if ((csr & CSR_TYPE) == CSR_SUBR)
- vp = &_subrs;
- else if ((csr & CSR_TYPE) == CSR_GSUBR)
- vp = &_gsubrs;
- else if ((csr & CSR_TYPE) == CSR_GLYPH)
- vp = &_glyphs;
- else
- return 0;
-
- int n = (csr & CSR_NUM);
- if (n >= vp->size())
- return 0;
-
- Subr *&what = (*vp)[n];
- if (!what && force)
- what = new Subr(csr);
- return what;
-}
-
-#if 0
-String
-MakeType1CharstringInterp::Subr::name(const MakeType1CharstringInterp *mcsi) const
-{
- int n = (_csr & CSR_NUM);
- switch (_csr & CSR_TYPE) {
- case CSR_SUBR:
- return "subr" + String(n);
- case CSR_GSUBR:
- return "gsubr" + String(n);
- case CSR_GLYPH:
- if (String name = mcsi->output()->glyph_name(n))
- return name;
- else
- return "??glyph" + String(n) + "??";
- default:
- return "";
- }
-}
-#endif
-
-Type1Charstring *
-MakeType1CharstringInterp::Subr::charstring(const MakeType1CharstringInterp *mcsi) const
-{
- int n = (_csr & CSR_NUM);
- switch (_csr & CSR_TYPE) {
- case CSR_SUBR:
- case CSR_GSUBR:
- if (_output_subrno >= 0)
- return static_cast<Type1Charstring *>(mcsi->output()->subr(_output_subrno));
- return 0;
- case CSR_GLYPH:
- return static_cast<Type1Charstring *>(mcsi->output()->glyph(n));
- default:
- return 0;
- }
-}
-
-void
-MakeType1CharstringInterp::Subr::transfer_nested_calls(int pos, int length, Subr *new_caller) const
-{
- int right = pos + length;
- for (int i = 0; i < _calls.size(); i++) {
- Subr *cs = _calls[i];
- // 11.Jul.2006 - remember not to shift the new caller's records! (Michael Zedler)
- if (cs != new_caller)
- for (int j = 0; j < cs->_callers.size(); j++) {
- Caller &c = cs->_callers[j];
- if (c.subr == this && pos <= c.pos && c.pos + c.len <= right) {
- // shift caller to point at the subroutine
- c.subr = new_caller;
- c.pos -= pos;
- new_caller->add_call(cs);
- }
- }
- }
-}
-
-void
-MakeType1CharstringInterp::Subr::change_callers(Subr *caller, int pos, int length, int new_length)
-{
- if (up_to_date())
- return;
- update();
-
- int right = pos + length;
- int delta = new_length - length;
- for (int i = 0; i < _callers.size(); i++) {
- Caller &c = _callers[i];
- if (c.subr != caller)
- /* nada */;
- else if (pos <= c.pos && c.pos + c.len <= right) {
- // erase
- //if (c.debug) fprintf(stderr, " ERASE caller %08x:%d+%d [%d+%d]\n", c.subr->_csr, c.pos, c.len, pos, length);
- c.subr = 0;
- } else if (right <= c.pos) {
- //if (c.debug) fprintf(stderr, " ADJUST caller %08x:%d+%d -> %d+%d [%d+%d]\n", c.subr->_csr, c.pos, c.len, c.pos+delta, c.len, pos, length);
- c.pos += delta;
- } else if (c.pos <= pos && right <= c.pos + c.len) {
- //if (c.debug) fprintf(stderr, " ADJUST caller %08x:%d+%d -> %d+%d [%d+%d]\n", c.subr->_csr, c.pos, c.len, c.pos, c.len+delta, pos, length);
- c.len += delta;
- } else
- c.subr = 0;
- }
-}
-
-bool
-MakeType1CharstringInterp::Subr::unify(MakeType1CharstringInterp *mcsi)
-{
- // clean up caller list
- for (int i = 0; i < _callers.size(); i++)
- if (!_callers[i].subr) {
- _callers[i] = _callers.back();
- _callers.pop_back();
- i--;
- }
-
- if (!_callers.size())
- return false;
- assert(!_calls.size()); // because this hasn't been unified yet
-
- // Find the smallest shared complete charstring.
- String substr = _callers[0].charstring(mcsi);
- int suboff = 0;
- for (int i = 1; i < _callers.size(); i++) {
- String substr1 = _callers[i].charstring(mcsi);
- const char *d = substr.data() + suboff, *d1 = substr1.data();
- const char *dx = substr.data() + substr.length(), *d1x = d1 + substr1.length();
- while (dx > d && d1x > d1 && dx[-1] == d1x[-1])
- dx--, d1x--;
- if (d1x != d1) {
- // 8.13.2013 -- We might have stopped in the middle of a number
- // or command in d1 -- even if we absorbed all of d! For
- // example, maybe d's version is "15 rlineto" (encoded "154 5"),
- // and our version is "518 rlineto" (encoded "248 154 5")! So
- // whenever we stop before the end of d1, we must adjust our
- // position to the next caret in d1, which, in the example,
- // would be after "248 154" and before "5".
- int suboff1 = Type1Charstring(substr1).first_caret_after(d1x - d1);
- dx += suboff1 - (d1x - d1);
- }
- suboff = dx - substr.data();
- }
- substr = substr.substring(Type1Charstring(substr).first_caret_after(suboff));
- if (!substr.length())
- return false;
- for (int i = 0; i < _callers.size(); i++) {
- Caller &c = _callers[i];
- if (int delta = c.len - substr.length()) {
- //if (c.debug) fprintf(stderr, " PREFIX caller %08x:%d+%d -> %d+%d [%s]\n", c.subr->_csr, c.pos, c.len, c.pos+delta, c.len+delta, CharstringUnparser::unparse(Type1Charstring(substr)).c_str());
- c.pos += delta;
- c.len -= delta;
- }
- }
-
- // otherwise, success
- _output_subrno = mcsi->output()->nsubrs();
- mcsi->output()->set_subr(_output_subrno, Type1Charstring(substr + "\013"));
-
- // This subr has become real, so it is suitable for later unifications.
- // Mark it as having called any subroutines contained completely within itself.
- // How to do this? Look at one caller, and go over all its calls.
- _callers[0].subr->transfer_nested_calls(_callers[0].pos, _callers[0].len, this);
-
- // adapt callers
- String callsubr_string = Type1CharstringGen::callsubr_string(_output_subrno);
-
- for (int i = 0; i < _callers.size(); i++)
- // 13.Jun.2003 - must check whether _callers[i].subr exists: if we
- // called a subroutine more than once, change_callers() might have
- // zeroed it out.
- if (_callers[i].subr && _callers[i].subr != this) {
- Subr::Caller c = _callers[i];
- c.subr->charstring(mcsi)->assign_substring(c.pos, c.len, callsubr_string);
- Subr::bump_date();
- for (int j = 0; j < c.subr->ncalls(); j++)
- c.subr->call(j)->change_callers(c.subr, c.pos, c.len, callsubr_string.length());
- assert(!_callers[i].subr);
- }
-
- // this subr is no longer "called"/interpolated from anywhere
- _callers.clear();
-
- //fprintf(stderr, "Succeeded %x\n", _csr);
- return true;
-}
-
-
-// running
-
-bool
-MakeType1CharstringInterp::type2_command(int cmd, const uint8_t *data, int *left)
-{
- switch (cmd) {
-
- case Cs::cCallsubr:
- case Cs::cCallgsubr:
- if (subr_depth() < MAX_SUBR_DEPTH && size() == 1) {
- //fprintf(stderr, "succeeded %d\n", (int) top());
- bool g = (cmd == Cs::cCallgsubr);
- CsRef csref = ((int)top() + program()->xsubr_bias(g)) | (g ? CSR_GSUBR : CSR_SUBR);
- Subr *callee = csr_subr(csref, true);
- if (callee)
- _cur_subr->add_call(callee);
-
- int left = csgen().length();
-
- bool more = callxsubr_command(g);
-
- int right = csgen().length();
- if (error() >= 0 && callee)
- callee->add_caller(_cur_subr, left, right - left);
- return more;
- } else {
- //fprintf(stderr, "failed %d\n", (int) top());
- goto normal;
- }
-
- normal:
- default:
- return CharstringInterp::type2_command(cmd, data, left);
-
- }
-}
-
-void
-MakeType1CharstringInterp::run(const CharstringContext &g, Type1Charstring &out, ErrorHandler *errh)
-{
- Type1CharstringGenInterp::run(g, out);
-
- if (Type1CharstringGenInterp::had_bad_flex() && !(_flex_message & 1)) {
- errh->lwarning(landmark(errh), "complex flex hint replaced with curves");
- errh->message("(This font contains flex hints prohibited by Type 1. They%,ve been\nreplaced by ordinary curves.)");
- _flex_message |= 1;
- }
-#if !HAVE_ADOBE_CODE
- if (Type1CharstringGenInterp::had_flex() && !(_flex_message & 2)) {
- errh->lwarning(landmark(errh), "flex hints required");
- errh->message("(This program was compiled without Adobe code for flex hint support,\nso its output may not work on all devices.)");
- _flex_message |= 2;
- }
- if (Type1CharstringGenInterp::had_hr() && !(_flex_message & 4)) {
- errh->lwarning(landmark(errh), "hint replacement required");
- errh->message("(This program was compiled without Adobe code for hint replacement,\nso its output may not work on all devices.)");
- _flex_message |= 4;
- }
-#endif
-}
-
-void
-MakeType1CharstringInterp::run(const CharstringProgram *program, Type1Font *output, PermString glyph_definer, ErrorHandler *errh)
-{
- _output = output;
- set_hint_replacement_storage(output);
-
- _glyphs.assign(program->nglyphs(), 0);
- _subrs.assign(program->nsubrs(), 0);
- _subr_bias = program->subr_bias();
- _gsubrs.assign(program->ngsubrs(), 0);
- _gsubr_bias = program->gsubr_bias();
-
- // run over the glyphs
- int nglyphs = program->nglyphs();
- Type1Charstring receptacle;
- for (int i = 0; i < nglyphs; i++) {
- _cur_subr = _glyphs[i] = new Subr(CSR_GLYPH | i);
- _cur_glyph = i;
- run(program->glyph_context(i), receptacle, errh);
-#if 0
- PermString n = program->glyph_name(i);
- if (i == 408 || i == 20) {
- fprintf(stderr, "%d: %s was %s\n", i, n.c_str(), CharstringUnparser::unparse(*program->glyph(i)).c_str());
- fprintf(stderr, " now %s\n", CharstringUnparser::unparse(receptacle).c_str());
- fprintf(stderr, " *** %d.%d: %s\n", 134, 30, CharstringUnparser::unparse(Type1Charstring(receptacle.data_string().substring(134, 30))).c_str());
- }
-#endif
- PermString name = program->glyph_name(i);
- if (output->glyph(name)) {
- errh->warning("glyph %<%s%> defined more than once", name.c_str());
- int i = 1;
- do {
- name = program->glyph_name(i) + String(".") + String(i);
- ++i;
- } while (output->glyph(name));
- }
- output->add_glyph(Type1Subr::make_glyph(name, receptacle, glyph_definer));
- }
-
- // unify Subrs
- for (int i = 0; i < _subrs.size(); i++)
- if (_subrs[i])
- _subrs[i]->unify(this);
-
- for (int i = 0; i < _gsubrs.size(); i++)
- if (_gsubrs[i])
- _gsubrs[i]->unify(this);
-}
-
-
-/*****
- * main
- **/
-
-static void
-add_number_def(Type1Font *output, int dict, PermString name, const Cff::Font *font, Cff::DictOperator op)
-{
- double v;
- if (font->dict_value(op, &v))
- output->add_definition(dict, Type1Definition::make(name, v, "def"));
-}
-
-static void
-add_delta_def(Type1Font *output, int dict, PermString name, const Cff::Font *font, Cff::DictOperator op)
-{
- Vector<double> vec;
- if (font->dict_value(op, vec)) {
- for (int i = 1; i < vec.size(); i++)
- vec[i] += vec[i - 1];
- StringAccum sa;
- for (int i = 0; i < vec.size(); i++)
- sa << (i ? ' ' : '[') << vec[i];
- sa << ']';
- output->add_definition(dict, Type1Definition::make_literal(name, sa.take_string(), (dict == Type1Font::dP ? "|-" : "readonly def")));
- }
-}
-
-Type1Font *
-create_type1_font(Cff::Font *font, ErrorHandler *errh)
-{
- String version = font->dict_string(Cff::oVersion);
- Type1Font *output = Type1Font::skeleton_make(font->font_name(), version);
- output->skeleton_comments_end();
- StringAccum sa;
-
- // FontInfo dictionary
- if (version)
- output->add_definition(Type1Font::dFI, Type1Definition::make_string("version", version, "readonly def"));
- if (String s = font->dict_string(Cff::oNotice))
- output->add_definition(Type1Font::dFI, Type1Definition::make_string("Notice", s, "readonly def"));
- if (String s = font->dict_string(Cff::oCopyright))
- output->add_definition(Type1Font::dFI, Type1Definition::make_string("Copyright", s, "readonly def"));
- if (String s = font->dict_string(Cff::oFullName))
- output->add_definition(Type1Font::dFI, Type1Definition::make_string("FullName", s, "readonly def"));
- if (String s = font->dict_string(Cff::oFamilyName))
- output->add_definition(Type1Font::dFI, Type1Definition::make_string("FamilyName", s, "readonly def"));
- if (String s = font->dict_string(Cff::oWeight))
- output->add_definition(Type1Font::dFI, Type1Definition::make_string("Weight", s, "readonly def"));
- double v;
- if (font->dict_value(Cff::oIsFixedPitch, &v))
- output->add_definition(Type1Font::dFI, Type1Definition::make_literal("isFixedPitch", (v ? "true" : "false"), "def"));
- add_number_def(output, Type1Font::dFI, "ItalicAngle", font, Cff::oItalicAngle);
- add_number_def(output, Type1Font::dFI, "UnderlinePosition", font, Cff::oUnderlinePosition);
- add_number_def(output, Type1Font::dFI, "UnderlineThickness", font, Cff::oUnderlineThickness);
- output->skeleton_fontinfo_end();
-
- // Encoding, other font dictionary entries
- output->add_item(font->type1_encoding_copy());
- font->dict_value(Cff::oPaintType, &v);
- output->add_definition(Type1Font::dF, Type1Definition::make("PaintType", v, "def"));
- output->add_definition(Type1Font::dF, Type1Definition::make("FontType", 1.0, "def"));
- Vector<double> vec;
- if (font->dict_value(Cff::oFontMatrix, vec) && vec.size() == 6) {
- sa << '[' << vec[0] << ' ' << vec[1] << ' ' << vec[2] << ' ' << vec[3] << ' ' << vec[4] << ' ' << vec[5] << ']';
- output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontMatrix", sa.take_string(), "readonly def"));
- } else
- output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontMatrix", "[0.001 0 0 0.001 0 0]", "readonly def"));
- add_number_def(output, Type1Font::dF, "StrokeWidth", font, Cff::oStrokeWidth);
- add_number_def(output, Type1Font::dF, "UniqueID", font, Cff::oUniqueID);
- if (font->dict_value(Cff::oXUID, vec) && vec.size()) {
- for (int i = 0; i < vec.size(); i++)
- sa << (i ? ' ' : '[') << vec[i];
- sa << ']';
- output->add_definition(Type1Font::dF, Type1Definition::make_literal("XUID", sa.take_string(), "readonly def"));
- }
- if (font->dict_value(Cff::oFontBBox, vec) && vec.size() == 4) {
- sa << '{' << vec[0] << ' ' << vec[1] << ' ' << vec[2] << ' ' << vec[3] << '}';
- output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontBBox", sa.take_string(), "readonly def"));
- } else
- output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontBBox", "{0 0 0 0}", "readonly def"));
- output->skeleton_fontdict_end();
-
- // Private dictionary
- add_delta_def(output, Type1Font::dP, "BlueValues", font, Cff::oBlueValues);
- add_delta_def(output, Type1Font::dP, "OtherBlues", font, Cff::oOtherBlues);
- add_delta_def(output, Type1Font::dP, "FamilyBlues", font, Cff::oFamilyBlues);
- add_delta_def(output, Type1Font::dP, "FamilyOtherBlues", font, Cff::oFamilyOtherBlues);
- add_number_def(output, Type1Font::dP, "BlueScale", font, Cff::oBlueScale);
- add_number_def(output, Type1Font::dP, "BlueShift", font, Cff::oBlueShift);
- add_number_def(output, Type1Font::dP, "BlueFuzz", font, Cff::oBlueFuzz);
- if (font->dict_value(Cff::oStdHW, &v))
- output->add_definition(Type1Font::dP, Type1Definition::make_literal("StdHW", String("[") + String(v) + "]", "|-"));
- if (font->dict_value(Cff::oStdVW, &v))
- output->add_definition(Type1Font::dP, Type1Definition::make_literal("StdVW", String("[") + String(v) + "]", "|-"));
- add_delta_def(output, Type1Font::dP, "StemSnapH", font, Cff::oStemSnapH);
- add_delta_def(output, Type1Font::dP, "StemSnapV", font, Cff::oStemSnapV);
- if (font->dict_value(Cff::oForceBold, &v))
- output->add_definition(Type1Font::dP, Type1Definition::make_literal("ForceBold", (v ? "true" : "false"), "def"));
- add_number_def(output, Type1Font::dP, "LanguageGroup", font, Cff::oLanguageGroup);
- add_number_def(output, Type1Font::dP, "ExpansionFactor", font, Cff::oExpansionFactor);
- add_number_def(output, Type1Font::dP, "UniqueID", font, Cff::oUniqueID);
- output->add_definition(Type1Font::dP, Type1Definition::make_literal("MinFeature", "{16 16}", "|-"));
- output->add_definition(Type1Font::dP, Type1Definition::make_literal("password", "5839", "def"));
- output->add_definition(Type1Font::dP, Type1Definition::make_literal("lenIV", "0", "def"));
- output->skeleton_private_end();
- output->skeleton_common_subrs();
-
- // add glyphs
- MakeType1CharstringInterp maker(5);
- maker.run(font, output, " |-", errh);
-
- return output;
-}
-
-#include <lcdf/vector.cc>
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.hh
deleted file mode 100644
index 75f2527897f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/cfftot1/maket1font.hh
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef EFONT_MAKET1FONT_HH
-#define EFONT_MAKET1FONT_HH
-#include <efont/cff.hh>
-namespace Efont {
-class Type1Font;
-}
-
-Efont::Type1Font *create_type1_font(Efont::Cff::Font *, ErrorHandler *);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
deleted file mode 100644
index a18a8979d5b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/configure.ac
+++ /dev/null
@@ -1,514 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT([lcdf-typetools], [2.108])
-AC_CONFIG_SRCDIR([NEWS.md])
-AM_INIT_AUTOMAKE
-AC_CONFIG_HEADERS([autoconf.h])
-AM_MAINTAINER_MODE
-
-AC_PROG_MAKE_SET
-
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_CXX
-AC_PROG_CXXCPP
-
-AC_ARG_ENABLE([warnings],
- [AS_HELP_STRING([--enable-warnings], [compile with -W -Wall])],
- [if test "$enableval" = yes; then
- CFLAGS="$CFLAGS -W -Wall"; CXXFLAGS="$CXXFLAGS -W -Wall"
- fi])
-
-AC_ARG_ENABLE([precondition-checking],
- [AS_HELP_STRING([--enable-precondition-checking], [include precondition checking assertions])],
- [if test "$enableval" = yes; then
- AC_DEFINE([HAVE_PRECONDITION_CHECKING], [1], [Define to include precondition checking assertions.])
- fi])
-
-AC_ARG_ENABLE([adobe-code],
- [AS_HELP_STRING([--disable-adobe-code], [do not include Adobe code])],
- [], [enable_adobe_code=yes])
-if test "$enable_adobe_code" = yes; then
- AC_DEFINE([HAVE_ADOBE_CODE], [1], [Define to incldue Adobe code in output fonts.])
-fi
-
-
-dnl AN_MAKEVAR([AR], [AC_PROG_AR])
-dnl AN_PROGRAM([ar], [AC_PROG_AR])
-dnl AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
-dnl AC_PROG_AR
-
-AC_PROG_RANLIB
-
-
-dnl Available from the GNU Autoconf Macro Archive at:
-dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_template_objs.html
-dnl
-AC_DEFUN([AC_CXX_TEMPLATE_OBJS],
-[AC_CACHE_CHECK(where template objects are stored, ac_cv_cxx_templobjs,
- [ ac_cv_cxx_templobjs='unknown'
- if test "$GXX" = yes; then
- ac_cv_cxx_templobjs='nowhere'
- else
- case $CXX in
- CC|*/CC)
- cat > conftest.cc <<EOF
-template<class T> class A { public : A () {} };
-template<class T> void f (const A<T>&) {}
-main()
-{ A<double> d;
- A<int> i;
- f (d);
- f (i);
- return 0;
-}
-EOF
- if test "$ac_cv_cxx_templobjs" = 'unknown' ; then
- if test -d Templates.DB ; then
- rm -fr Templates.DB
- fi
- if $CXX $CXXFLAGS -ptr. -c conftest.cc 1> /dev/null 2>&1; then
- if test -d Templates.DB ; then
-# this should be Sun CC <= 4.2
- CXXFLAGS="$CXXFLAGS -ptr."
- if test x"$LIBTOOL" = x ; then
- ac_cv_cxx_templobjs='Templates.DB/*.o'
- else
- ac_cv_cxx_templobjs='Templates.DB/*.lo'
- fi
- rm -fr Templates.DB
- fi
- fi
- fi
- if test "$ac_cv_cxx_templobjs" = 'unknown' ; then
- if test -d SunWS_cache ; then
- rm -fr SunWS_cache
- fi
- if $CXX $CXXFLAGS -c conftest.cc 1> /dev/null 2>&1; then
- if test -d SunWS_cache ; then
-# this should be Sun WorkShop C++ compiler 5.x
-# or Sun Forte C++ compiler >= 6.x
- if test x"$LIBTOOL" = x ; then
- ac_cv_cxx_templobjs='SunWS_cache/*/*.o'
- else
- ac_cv_cxx_templobjs='SunWS_cache/*/*.lo'
- fi
- rm -fr SunWS_cache
- fi
- fi
- fi
- rm -f conftest* ;;
- esac
- fi
- case "x$ac_cv_cxx_templobjs" in
- xunknown|xnowhere)
- TEMPLATE_OBJS="" ;;
- *)
- TEMPLATE_OBJS="$ac_cv_cxx_templobjs" ;;
- esac])
- AC_SUBST(TEMPLATE_OBJS)])
-
-AC_CXX_TEMPLATE_OBJS
-
-
-dnl
-dnl standard headers
-dnl (Though obsolete, AC_HEADER_STC changes the standard includes.)
-dnl
-
-AC_LANG_C
-AC_HEADER_STDC
-AC_HEADER_DIRENT
-AC_CHECK_HEADERS([fcntl.h unistd.h sys/time.h sys/wait.h])
-
-
-dnl
-dnl <new> and/or <new.h>
-dnl
-
-AC_LANG_CPLUSPLUS
-AC_CACHE_CHECK([whether <new> works], ac_cv_good_new_hdr,
-[AC_TRY_LINK([#include <new>], [
- int a;
- int *b = new(&a) int;
- return 0;
-], ac_cv_good_new_hdr=yes, ac_cv_good_new_hdr=no)])
-if test "$ac_cv_good_new_hdr" = yes; then
- AC_DEFINE([HAVE_NEW_HDR], [1], [Define if <new> exists and works.])
-fi
-AC_CHECK_HEADERS([new.h])
-
-
-dnl
-dnl endianness
-dnl
-
-AC_DEFINE([WORDS_BIGENDIAN_SET], [1], [Define if WORDS_BIGENDIAN has been set.])
-AC_C_BIGENDIAN()
-
-
-dnl
-dnl functions such as strerror, working strtod, working strnlen, strtoul,
-dnl time headers such as unistd.h
-dnl
-
-AC_LANG_C
-need_fixlibc=0
-AC_CHECK_FUNCS([strerror], [], [need_fixlibc=1])
-
-AC_CACHE_CHECK([for broken strtod], [ac_cv_broken_strtod],
-[AC_TRY_RUN([#include <stdio.h>
-#include <stdlib.h>
-int main(int c, char **v) {
- char s[] = "12 ";
- char *endp;
- double d = strtod(s, &endp);
- return (s + 2) == endp;
-}], [ac_cv_broken_strtod=yes], [ac_cv_broken_strtod=no],
-[ac_cv_broken_strtod=no])])
-if test "x$ac_cv_broken_strtod" = xyes; then
- need_fixlibc=1
- AC_DEFINE([HAVE_BROKEN_STRTOD], [1], [Define if strtod is broken.])
-fi
-
-AC_LANG_CPLUSPLUS
-AC_CHECK_DECLS([strnlen], [], [], [#include <string.h>])
-AC_CHECK_FUNCS([strnlen], [have_strnlen=1], [need_fixlibc=1])
-if test "x$have_strnlen" = x1; then
- AC_CACHE_CHECK([for broken strnlen], [ac_cv_broken_strnlen],
- [AC_TRY_RUN([#include <string.h>
-#include <stdio.h>
-int main(int c, char **v) {
- char s[] = "01234567891";
- return strnlen(s, 10) == 10;
-}], [ac_cv_broken_strnlen=yes], [ac_cv_broken_strnlen=no],
-[ac_cv_broken_strnlen=no])])
- if test "x$ac_cv_broken_strnlen" = xyes; then
- need_fixlibc=1
- AC_DEFINE([HAVE_BROKEN_STRNLEN], [1], [Define if strnlen is broken.])
- fi
-fi
-AC_LANG_C
-
-AC_CHECK_FUNCS([ctime ftruncate mkstemp sigaction strdup strtoul vsnprintf waitpid])
-AC_CHECK_FUNC([floor], [], [AC_CHECK_LIB([m], [floor])])
-AC_CHECK_FUNC([fabs], [], [AC_CHECK_LIB([m], [fabs])])
-AM_CONDITIONAL([FIXLIBC], [test x$need_fixlibc = x1])
-
-
-dnl
-dnl integer types
-dnl
-
-AC_CHECK_HEADERS(inttypes.h, have_inttypes_h=yes, have_inttypes_h=no)
-AC_CHECK_HEADERS(sys/types.h, have_sys_types_h=yes, have_sys_types_h=no)
-
-if test $have_inttypes_h = no -a $have_sys_types_h = yes; then
- AC_CACHE_CHECK([for uintXX_t typedefs], ac_cv_uint_t,
- [AC_EGREP_HEADER(dnl
-changequote(<<,>>)<<(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]>>changequote([,]),
- sys/types.h, ac_cv_uint_t=yes, ac_cv_uint_t=no)])
-fi
-if test $have_inttypes_h = no -a $have_sys_types_h = yes -a "$ac_cv_uint_t" = no; then
- AC_CACHE_CHECK([for u_intXX_t typedefs], ac_cv_u_int_t,
- [AC_EGREP_HEADER(dnl
-changequote(<<,>>)<<(^|[^a-zA-Z_0-9])u_int32_t[^a-zA-Z_0-9]>>changequote([,]),
- sys/types.h, ac_cv_u_int_t=yes, ac_cv_u_int_t=no)])
-fi
-if test $have_inttypes_h = yes -o "$ac_cv_uint_t" = yes; then
- :
-elif test "$ac_cv_u_int_t" = yes; then
- AC_DEFINE(HAVE_U_INT_TYPES, 1, [Define if you have u_intXX_t types but not uintXX_t types.])
-else
- AC_MSG_WARN([
-=========================================
-
-Neither uint32_t nor u_int32_t defined by <inttypes.h> or <sys/types.h>!
-Assuming "short" has 16 bits and "int" has 32 bits.
-
-=========================================])
- AC_DEFINE(HAVE_FAKE_INT_TYPES, 1, [Define if intXX_t types are not available.])
-fi
-
-AC_CHECK_TYPES(uintptr_t, [], [],
-[#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-])
-
-AC_CHECK_SIZEOF(void *)
-AC_CHECK_SIZEOF(unsigned long)
-AC_CHECK_SIZEOF(unsigned int)
-
-
-dnl
-dnl ntohs, ntohl (need them in C++ code)
-dnl
-
-AC_LANG_CPLUSPLUS
-AC_CHECK_HEADERS([byteorder.h netinet/in.h sys/param.h])
-AC_MSG_CHECKING([whether ntohs and ntohl are defined])
-ac_ntoh_defined=no
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_BYTEORDER_H
-# include <byteorder.h>
-#elif HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-#ifdef WIN32
-# ifdef __MSC_VER
-# pragma warning (disable: 4290)
-# endif
-# include <winsock2.h>
-#endif
-]], [[(void) ntohs(0x0020), (void) ntohl(0x03040020);]])],
- [AC_MSG_RESULT(yes)
-ac_ntoh_defined=yes],
- [AC_MSG_RESULT(no)])
-if test $ac_ntoh_defined = no; then
- AC_CHECK_HEADERS([arpa/inet.h], [have_arpa_inet_h=yes], [have_arpa_inet_h=no])
- if test $have_arpa_inet_h = yes; then
- AC_MSG_CHECKING([whether ntohs and ntohl are defined in <arpa/inet.h>])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <arpa/inet.h>
-]], [[(void) ntohs(0x0020), (void) ntohl(0x03040020);]])],
- [AC_MSG_RESULT(yes)
-AC_DEFINE(NEED_ARPA_INET_H, 1, [Define to 1 if you must include <arpa/inet.h> to get `ntohl'.])
-ac_ntoh_defined=yes],
- [AC_MSG_RESULT(no)])
- fi
-fi
-if test $ac_ntoh_defined = no; then
- AC_MSG_ERROR([
-=========================================
-
-Cannot find a definition for ntohs and/or ntohl!
-
-=========================================])
-fi
-AC_LANG_C
-AC_SEARCH_LIBS([ntohs], [-lnet -lwinsock32])
-
-
-dnl
-dnl is va_list addressable?
-dnl
-
-AC_LANG_CPLUSPLUS
-AC_CACHE_CHECK([for addressable va_list type],
- ac_cv_va_list_addr,
- [AC_TRY_COMPILE([#include <stdarg.h>
-void f(va_list *) {
-}
-void g(va_list val) {
- f(&val);
-}
-void h(int a, ...) {
- va_list val;
- va_start(val, a);
- g(val);
- va_end(val);
-}], [h(2, 3, 4);], ac_cv_va_list_addr=yes, ac_cv_va_list_addr=no)])
-if test "x$ac_cv_va_list_addr" = xyes; then
- AC_DEFINE(HAVE_ADDRESSABLE_VA_LIST, 1, [Define if the va_list type is addressable.])
-fi
-
-
-dnl
-dnl select programs to be compiled and automatically run
-dnl
-
-m4_include([m4/lcdf-typetools.m4])
-
-SELECTED_SUBDIRS=
-AC_FOREACH([Kpse_Prog], kpse_lcdf_typetools_progs,
- [test "x$enable_[]Kpse_Prog" = xno || SELECTED_SUBDIRS="$SELECTED_SUBDIRS Kpse_Prog"
-])
-AC_SUBST(SELECTED_SUBDIRS)
-
-AC_FOREACH([Kpse_Opt], kpse_otftotfm_auto_opts,
- [AS_IF([test "x$enable_auto_]Kpse_Opt[" != xno],
- [AC_DEFINE([HAVE_AUTO_]AS_TR_CPP(Kpse_Opt), 1,
- [Define to run ]Kpse_Opt[ from otftotfm.])])
-])
-
-
-dnl
-dnl kpathsea
-dnl
-
-AC_ARG_WITH([kpathsea],
- [AS_HELP_STRING([--with-kpathsea=PREFIX], [Kpathsea is installed (under PREFIX)])],
- [kpathsea=$withval], [kpathsea=])
-
-KPATHSEA_INCLUDES=
-KPATHSEA_LIBS=
-KPATHSEA_DEPEND=
-
-if test "x$kpathsea" != xno; then
- SAVE_CPPFLAGS="$CPPFLAGS"; SAVE_LDFLAGS="$LDFLAGS"
- if test "x$kpathsea" != x -a "x$kpathsea" != xyes; then
- KPATHSEA_INCLUDES="-I$kpathsea/include"
- KPATHSEA_LIBS="-L$kpathsea/lib"
- else
- kpathsea=yes
- fi
-
- dnl check for kpathsea/kpathsea.h
- if true; then
- CPPFLAGS="$SAVE_CPPFLAGS $KPATHSEA_INCLUDES"
- AC_CHECK_HEADER([kpathsea/kpathsea.h], [kpse_header=yes], [kpse_header=no])
- fi
-
- dnl if not found and kpathsea prefix not set, check /usr/local
- if test "x$kpse_header" != xyes -a "x$kpathsea" = xyes -a -r /usr/local/include/kpathsea/tex-file.h; then
- KPATHSEA_INCLUDES="-I/usr/local/include"
- KPATHSEA_LIBS="-L/usr/local/lib"
- CPPFLAGS="$SAVE_CPPFLAGS $KPATHSEA_INCLUDES"
- AC_CHECK_HEADER([kpathsea/tex-file.h], [kpse_header=yes], [kpse_header=no])
- fi
-
- dnl check for -lkpathsea
- if true; then
- LDFLAGS="$SAVE_LDFLAGS $KPATHSEA_LIBS"
- AC_CHECK_LIB([kpathsea], [kpse_set_program_name], [kpse_library=yes], [kpse_library=no])
- fi
-
- dnl bail out if not found
- if test "x$kpse_header" != xyes -o "x$kpse_library" != xyes; then
- AC_MSG_ERROR([
-=========================================
-
-I can't find the kpathsea library and/or header files. Tell me where to look
-using the --with-kpathsea=PREFIX option (header files should be under
-PREFIX/include/kpathsea, and library under PREFIX/lib), or disable support
-using --without-kpathsea.
-
-=========================================])
- fi
-
- dnl OK, found
- AC_DEFINE(HAVE_KPATHSEA, 1, [Define if you want to use kpathsea.])
- if true; then
- KPATHSEA_LIBS="$KPATHSEA_LIBS -lkpathsea"
- fi
-
- dnl does it have opentype support?
- if false; then
- AC_DEFINE(HAVE_DECL_KPSE_OPENTYPE_FORMAT)
- else
- AC_CHECK_DECLS([kpse_opentype_format], [], [], [#include <kpathsea/kpathsea.h>])
- fi
-
- dnl does it have a separate format for encoding files?
- AC_CHECK_DECLS([kpse_enc_format], [], [], [#include <kpathsea/kpathsea.h>])
-
- CPPFLAGS="$SAVE_CPPFLAGS"; LDFLAGS="$SAVE_LDFLAGS"
-fi
-
-AM_CONDITIONAL([have_kpathsea], [test "x$with_kpathsea" != xno])
-AC_SUBST([KPATHSEA_INCLUDES])
-AC_SUBST([KPATHSEA_LIBS])
-AC_SUBST([KPATHSEA_DEPEND])
-
-AC_ARG_ENABLE([selfauto-set],
- [AS_HELP_STRING([--disable-selfauto-set], [disable setting SELFAUTO variables from kpsewhich])],
- [], [enable_selfauto_set=yes])
-
-if test "x$enable_selfauto_set" = xyes -a "x$kpathsea" != xno; then
- kpsewhich='kpsewhich'
- test "x$kpathsea" != xyes -a -x "$kpathsea/bin/kpsewhich" && kpsewhich="$kpathsea/bin/kpsewhich"
- SELFAUTOLOC="`$kpsewhich --expand-var='$SELFAUTOLOC' 2>/dev/null`"
- SELFAUTODIR="`$kpsewhich --expand-var='$SELFAUTODIR' 2>/dev/null`"
- SELFAUTOPARENT="`$kpsewhich --expand-var='$SELFAUTOPARENT' 2>/dev/null`"
- SELFAUTOGRANDPARENT="`$kpsewhich --expand-var='$SELFAUTOGRANDPARENT' 2>/dev/null`"
- if test -z "$SELFAUTODIR"; then
- AC_MSG_WARN([
-=========================================
-
-Could not extract SELFAUTO variables from $kpsewhich.
-Either supply the correct PREFIX to --with-kpathsea, or supply
---disable-selfauto-loc.
-
-=========================================])
- fi
- AC_DEFINE_UNQUOTED([SELFAUTOLOC], "$SELFAUTOLOC", [kpsewhich's $SELFAUTOLOC variable])
- AC_DEFINE_UNQUOTED([SELFAUTODIR], "$SELFAUTODIR", [kpsewhich's $SELFAUTODIR variable])
- AC_DEFINE_UNQUOTED([SELFAUTOPARENT], "$SELFAUTOPARENT", [kpsewhich's $SELFAUTOPARENT variable])
- if test -n "$SELFAUTOGRANDPARENT" -a "$SELFAUTOGRANDPARENT" != '$SELFAUTOGRANDPARENT'; then
- AC_DEFINE_UNQUOTED([SELFAUTOGRANDPARENT], "$SELFAUTOGRANDPARENT", [kpsewhich's $SELFAUTOGRANDPARENT variable])
- fi
-fi
-
-
-dnl
-dnl glyphlist.txt and *.enc installation locations
-dnl
-
-AC_ARG_ENABLE([glyphlistdir],
- [AS_HELP_STRING([--enable-glyphlistdir=DIR], [store glyphlist.txt files in DIR [pkgdatadir]])], [glyphlistdir="$enableval"], [glyphlistdir=NONE])
-AC_ARG_ENABLE([encdir],
- [AS_HELP_STRING([--enable-encdir=DIR], [store encoding files in DIR [pkgdatadir]])], [encdir="$enableval"], [encdir=NONE])
-
-test "x$glyphlistdir" = xNONE -o "x$glyphlistdir" = xno \
- -o "x$glyphlistdir" = x && glyphlistdir='${pkgdatadir}'
-test "x$encdir" = xNONE -o "x$encdir" = xno \
- -o "x$encdir" = x && encdir='${pkgdatadir}'
-
-AC_SUBST([glyphlistdir])
-AC_SUBST([encdir])
-
-
-dnl
-dnl TeX Live build stub
-dnl
-
-KPATHSEA_RULE=
-AC_SUBST([KPATHSEA_RULE])
-
-
-dnl
-dnl verbatim portions of the header
-dnl
-
-AC_DEFINE(HAVE_PERMSTRING, 1, [Define if PermStrings are available.])
-AC_DEFINE(MMAFM_RUN_MMPFB, 1, [Define to 0 if you don't want mmafm to run mmpfb when it needs to get an intermediate master conversion program.])
-dnl PATHNAME_SEPARATOR?
-
-
-dnl
-dnl set path variables
-dnl
-
-shell_expand () {
- val=`eval echo '$'"$1"`
- while echo "x$val" | grep '\$' >/dev/null 2>&1; do val=`eval echo "$val"`; done
- val=`echo "$val" | sed 's,//*,/,g'`
- eval "$1='$val'"
-}
-
-dnl Preset $prefix and $exec_prefix.
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-pkgdatadir="${datadir}/$PACKAGE"
-gdir="$glyphlistdir"
-for i in data dataroot pkgdata g; do shell_expand ${i}dir; done
-AC_DEFINE_UNQUOTED([GLYPHLISTDIR], ["$gdir"], [Directory for glyphlist.txt files.])
-
-
-dnl
-dnl Output
-dnl
-
-AC_OUTPUT(Makefile liblcdf/Makefile libefont/Makefile cfftot1/Makefile mmafm/Makefile mmpfb/Makefile otfinfo/Makefile otftotfm/Makefile t1dotlessj/Makefile t1lint/Makefile t1rawafm/Makefile t1reencode/Makefile t1testpage/Makefile ttftotype42/Makefile)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphlist.txt b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphlist.txt
deleted file mode 100644
index dcc9573c324..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphlist.txt
+++ /dev/null
@@ -1,4305 +0,0 @@
-# -----------------------------------------------------------
-# Copyright 2002, 2010, 2015 Adobe Systems Incorporated.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you
-# may not use this file except in compliance with the License. You may
-# obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0.html
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# permissions and limitations under the License.
-# -----------------------------------------------------------
-# Name: Adobe Glyph List
-# Table version: 2.0
-# Date: September 20, 2002
-# URL: https://github.com/adobe-type-tools/agl-aglfn
-#
-# Format: two semicolon-delimited fields:
-# (1) glyph name--upper/lowercase letters and digits
-# (2) Unicode scalar value--four uppercase hexadecimal digits
-#
-A;0041
-AE;00C6
-AEacute;01FC
-AEmacron;01E2
-AEsmall;F7E6
-Aacute;00C1
-Aacutesmall;F7E1
-Abreve;0102
-Abreveacute;1EAE
-Abrevecyrillic;04D0
-Abrevedotbelow;1EB6
-Abrevegrave;1EB0
-Abrevehookabove;1EB2
-Abrevetilde;1EB4
-Acaron;01CD
-Acircle;24B6
-Acircumflex;00C2
-Acircumflexacute;1EA4
-Acircumflexdotbelow;1EAC
-Acircumflexgrave;1EA6
-Acircumflexhookabove;1EA8
-Acircumflexsmall;F7E2
-Acircumflextilde;1EAA
-Acute;F6C9
-Acutesmall;F7B4
-Acyrillic;0410
-Adblgrave;0200
-Adieresis;00C4
-Adieresiscyrillic;04D2
-Adieresismacron;01DE
-Adieresissmall;F7E4
-Adotbelow;1EA0
-Adotmacron;01E0
-Agrave;00C0
-Agravesmall;F7E0
-Ahookabove;1EA2
-Aiecyrillic;04D4
-Ainvertedbreve;0202
-Alpha;0391
-Alphatonos;0386
-Amacron;0100
-Amonospace;FF21
-Aogonek;0104
-Aring;00C5
-Aringacute;01FA
-Aringbelow;1E00
-Aringsmall;F7E5
-Asmall;F761
-Atilde;00C3
-Atildesmall;F7E3
-Aybarmenian;0531
-B;0042
-Bcircle;24B7
-Bdotaccent;1E02
-Bdotbelow;1E04
-Becyrillic;0411
-Benarmenian;0532
-Beta;0392
-Bhook;0181
-Blinebelow;1E06
-Bmonospace;FF22
-Brevesmall;F6F4
-Bsmall;F762
-Btopbar;0182
-C;0043
-Caarmenian;053E
-Cacute;0106
-Caron;F6CA
-Caronsmall;F6F5
-Ccaron;010C
-Ccedilla;00C7
-Ccedillaacute;1E08
-Ccedillasmall;F7E7
-Ccircle;24B8
-Ccircumflex;0108
-Cdot;010A
-Cdotaccent;010A
-Cedillasmall;F7B8
-Chaarmenian;0549
-Cheabkhasiancyrillic;04BC
-Checyrillic;0427
-Chedescenderabkhasiancyrillic;04BE
-Chedescendercyrillic;04B6
-Chedieresiscyrillic;04F4
-Cheharmenian;0543
-Chekhakassiancyrillic;04CB
-Cheverticalstrokecyrillic;04B8
-Chi;03A7
-Chook;0187
-Circumflexsmall;F6F6
-Cmonospace;FF23
-Coarmenian;0551
-Csmall;F763
-D;0044
-DZ;01F1
-DZcaron;01C4
-Daarmenian;0534
-Dafrican;0189
-Dcaron;010E
-Dcedilla;1E10
-Dcircle;24B9
-Dcircumflexbelow;1E12
-Dcroat;0110
-Ddotaccent;1E0A
-Ddotbelow;1E0C
-Decyrillic;0414
-Deicoptic;03EE
-Delta;2206
-Deltagreek;0394
-Dhook;018A
-Dieresis;F6CB
-DieresisAcute;F6CC
-DieresisGrave;F6CD
-Dieresissmall;F7A8
-Digammagreek;03DC
-Djecyrillic;0402
-Dlinebelow;1E0E
-Dmonospace;FF24
-Dotaccentsmall;F6F7
-Dslash;0110
-Dsmall;F764
-Dtopbar;018B
-Dz;01F2
-Dzcaron;01C5
-Dzeabkhasiancyrillic;04E0
-Dzecyrillic;0405
-Dzhecyrillic;040F
-E;0045
-Eacute;00C9
-Eacutesmall;F7E9
-Ebreve;0114
-Ecaron;011A
-Ecedillabreve;1E1C
-Echarmenian;0535
-Ecircle;24BA
-Ecircumflex;00CA
-Ecircumflexacute;1EBE
-Ecircumflexbelow;1E18
-Ecircumflexdotbelow;1EC6
-Ecircumflexgrave;1EC0
-Ecircumflexhookabove;1EC2
-Ecircumflexsmall;F7EA
-Ecircumflextilde;1EC4
-Ecyrillic;0404
-Edblgrave;0204
-Edieresis;00CB
-Edieresissmall;F7EB
-Edot;0116
-Edotaccent;0116
-Edotbelow;1EB8
-Efcyrillic;0424
-Egrave;00C8
-Egravesmall;F7E8
-Eharmenian;0537
-Ehookabove;1EBA
-Eightroman;2167
-Einvertedbreve;0206
-Eiotifiedcyrillic;0464
-Elcyrillic;041B
-Elevenroman;216A
-Emacron;0112
-Emacronacute;1E16
-Emacrongrave;1E14
-Emcyrillic;041C
-Emonospace;FF25
-Encyrillic;041D
-Endescendercyrillic;04A2
-Eng;014A
-Enghecyrillic;04A4
-Enhookcyrillic;04C7
-Eogonek;0118
-Eopen;0190
-Epsilon;0395
-Epsilontonos;0388
-Ercyrillic;0420
-Ereversed;018E
-Ereversedcyrillic;042D
-Escyrillic;0421
-Esdescendercyrillic;04AA
-Esh;01A9
-Esmall;F765
-Eta;0397
-Etarmenian;0538
-Etatonos;0389
-Eth;00D0
-Ethsmall;F7F0
-Etilde;1EBC
-Etildebelow;1E1A
-Euro;20AC
-Ezh;01B7
-Ezhcaron;01EE
-Ezhreversed;01B8
-F;0046
-Fcircle;24BB
-Fdotaccent;1E1E
-Feharmenian;0556
-Feicoptic;03E4
-Fhook;0191
-Fitacyrillic;0472
-Fiveroman;2164
-Fmonospace;FF26
-Fourroman;2163
-Fsmall;F766
-G;0047
-GBsquare;3387
-Gacute;01F4
-Gamma;0393
-Gammaafrican;0194
-Gangiacoptic;03EA
-Gbreve;011E
-Gcaron;01E6
-Gcedilla;0122
-Gcircle;24BC
-Gcircumflex;011C
-Gcommaaccent;0122
-Gdot;0120
-Gdotaccent;0120
-Gecyrillic;0413
-Ghadarmenian;0542
-Ghemiddlehookcyrillic;0494
-Ghestrokecyrillic;0492
-Gheupturncyrillic;0490
-Ghook;0193
-Gimarmenian;0533
-Gjecyrillic;0403
-Gmacron;1E20
-Gmonospace;FF27
-Grave;F6CE
-Gravesmall;F760
-Gsmall;F767
-Gsmallhook;029B
-Gstroke;01E4
-H;0048
-H18533;25CF
-H18543;25AA
-H18551;25AB
-H22073;25A1
-HPsquare;33CB
-Haabkhasiancyrillic;04A8
-Hadescendercyrillic;04B2
-Hardsigncyrillic;042A
-Hbar;0126
-Hbrevebelow;1E2A
-Hcedilla;1E28
-Hcircle;24BD
-Hcircumflex;0124
-Hdieresis;1E26
-Hdotaccent;1E22
-Hdotbelow;1E24
-Hmonospace;FF28
-Hoarmenian;0540
-Horicoptic;03E8
-Hsmall;F768
-Hungarumlaut;F6CF
-Hungarumlautsmall;F6F8
-Hzsquare;3390
-I;0049
-IAcyrillic;042F
-IJ;0132
-IUcyrillic;042E
-Iacute;00CD
-Iacutesmall;F7ED
-Ibreve;012C
-Icaron;01CF
-Icircle;24BE
-Icircumflex;00CE
-Icircumflexsmall;F7EE
-Icyrillic;0406
-Idblgrave;0208
-Idieresis;00CF
-Idieresisacute;1E2E
-Idieresiscyrillic;04E4
-Idieresissmall;F7EF
-Idot;0130
-Idotaccent;0130
-Idotbelow;1ECA
-Iebrevecyrillic;04D6
-Iecyrillic;0415
-Ifraktur;2111
-Igrave;00CC
-Igravesmall;F7EC
-Ihookabove;1EC8
-Iicyrillic;0418
-Iinvertedbreve;020A
-Iishortcyrillic;0419
-Imacron;012A
-Imacroncyrillic;04E2
-Imonospace;FF29
-Iniarmenian;053B
-Iocyrillic;0401
-Iogonek;012E
-Iota;0399
-Iotaafrican;0196
-Iotadieresis;03AA
-Iotatonos;038A
-Ismall;F769
-Istroke;0197
-Itilde;0128
-Itildebelow;1E2C
-Izhitsacyrillic;0474
-Izhitsadblgravecyrillic;0476
-J;004A
-Jaarmenian;0541
-Jcircle;24BF
-Jcircumflex;0134
-Jecyrillic;0408
-Jheharmenian;054B
-Jmonospace;FF2A
-Jsmall;F76A
-K;004B
-KBsquare;3385
-KKsquare;33CD
-Kabashkircyrillic;04A0
-Kacute;1E30
-Kacyrillic;041A
-Kadescendercyrillic;049A
-Kahookcyrillic;04C3
-Kappa;039A
-Kastrokecyrillic;049E
-Kaverticalstrokecyrillic;049C
-Kcaron;01E8
-Kcedilla;0136
-Kcircle;24C0
-Kcommaaccent;0136
-Kdotbelow;1E32
-Keharmenian;0554
-Kenarmenian;053F
-Khacyrillic;0425
-Kheicoptic;03E6
-Khook;0198
-Kjecyrillic;040C
-Klinebelow;1E34
-Kmonospace;FF2B
-Koppacyrillic;0480
-Koppagreek;03DE
-Ksicyrillic;046E
-Ksmall;F76B
-L;004C
-LJ;01C7
-LL;F6BF
-Lacute;0139
-Lambda;039B
-Lcaron;013D
-Lcedilla;013B
-Lcircle;24C1
-Lcircumflexbelow;1E3C
-Lcommaaccent;013B
-Ldot;013F
-Ldotaccent;013F
-Ldotbelow;1E36
-Ldotbelowmacron;1E38
-Liwnarmenian;053C
-Lj;01C8
-Ljecyrillic;0409
-Llinebelow;1E3A
-Lmonospace;FF2C
-Lslash;0141
-Lslashsmall;F6F9
-Lsmall;F76C
-M;004D
-MBsquare;3386
-Macron;F6D0
-Macronsmall;F7AF
-Macute;1E3E
-Mcircle;24C2
-Mdotaccent;1E40
-Mdotbelow;1E42
-Menarmenian;0544
-Mmonospace;FF2D
-Msmall;F76D
-Mturned;019C
-Mu;039C
-N;004E
-NJ;01CA
-Nacute;0143
-Ncaron;0147
-Ncedilla;0145
-Ncircle;24C3
-Ncircumflexbelow;1E4A
-Ncommaaccent;0145
-Ndotaccent;1E44
-Ndotbelow;1E46
-Nhookleft;019D
-Nineroman;2168
-Nj;01CB
-Njecyrillic;040A
-Nlinebelow;1E48
-Nmonospace;FF2E
-Nowarmenian;0546
-Nsmall;F76E
-Ntilde;00D1
-Ntildesmall;F7F1
-Nu;039D
-O;004F
-OE;0152
-OEsmall;F6FA
-Oacute;00D3
-Oacutesmall;F7F3
-Obarredcyrillic;04E8
-Obarreddieresiscyrillic;04EA
-Obreve;014E
-Ocaron;01D1
-Ocenteredtilde;019F
-Ocircle;24C4
-Ocircumflex;00D4
-Ocircumflexacute;1ED0
-Ocircumflexdotbelow;1ED8
-Ocircumflexgrave;1ED2
-Ocircumflexhookabove;1ED4
-Ocircumflexsmall;F7F4
-Ocircumflextilde;1ED6
-Ocyrillic;041E
-Odblacute;0150
-Odblgrave;020C
-Odieresis;00D6
-Odieresiscyrillic;04E6
-Odieresissmall;F7F6
-Odotbelow;1ECC
-Ogoneksmall;F6FB
-Ograve;00D2
-Ogravesmall;F7F2
-Oharmenian;0555
-Ohm;2126
-Ohookabove;1ECE
-Ohorn;01A0
-Ohornacute;1EDA
-Ohorndotbelow;1EE2
-Ohorngrave;1EDC
-Ohornhookabove;1EDE
-Ohorntilde;1EE0
-Ohungarumlaut;0150
-Oi;01A2
-Oinvertedbreve;020E
-Omacron;014C
-Omacronacute;1E52
-Omacrongrave;1E50
-Omega;2126
-Omegacyrillic;0460
-Omegagreek;03A9
-Omegaroundcyrillic;047A
-Omegatitlocyrillic;047C
-Omegatonos;038F
-Omicron;039F
-Omicrontonos;038C
-Omonospace;FF2F
-Oneroman;2160
-Oogonek;01EA
-Oogonekmacron;01EC
-Oopen;0186
-Oslash;00D8
-Oslashacute;01FE
-Oslashsmall;F7F8
-Osmall;F76F
-Ostrokeacute;01FE
-Otcyrillic;047E
-Otilde;00D5
-Otildeacute;1E4C
-Otildedieresis;1E4E
-Otildesmall;F7F5
-P;0050
-Pacute;1E54
-Pcircle;24C5
-Pdotaccent;1E56
-Pecyrillic;041F
-Peharmenian;054A
-Pemiddlehookcyrillic;04A6
-Phi;03A6
-Phook;01A4
-Pi;03A0
-Piwrarmenian;0553
-Pmonospace;FF30
-Psi;03A8
-Psicyrillic;0470
-Psmall;F770
-Q;0051
-Qcircle;24C6
-Qmonospace;FF31
-Qsmall;F771
-R;0052
-Raarmenian;054C
-Racute;0154
-Rcaron;0158
-Rcedilla;0156
-Rcircle;24C7
-Rcommaaccent;0156
-Rdblgrave;0210
-Rdotaccent;1E58
-Rdotbelow;1E5A
-Rdotbelowmacron;1E5C
-Reharmenian;0550
-Rfraktur;211C
-Rho;03A1
-Ringsmall;F6FC
-Rinvertedbreve;0212
-Rlinebelow;1E5E
-Rmonospace;FF32
-Rsmall;F772
-Rsmallinverted;0281
-Rsmallinvertedsuperior;02B6
-S;0053
-SF010000;250C
-SF020000;2514
-SF030000;2510
-SF040000;2518
-SF050000;253C
-SF060000;252C
-SF070000;2534
-SF080000;251C
-SF090000;2524
-SF100000;2500
-SF110000;2502
-SF190000;2561
-SF200000;2562
-SF210000;2556
-SF220000;2555
-SF230000;2563
-SF240000;2551
-SF250000;2557
-SF260000;255D
-SF270000;255C
-SF280000;255B
-SF360000;255E
-SF370000;255F
-SF380000;255A
-SF390000;2554
-SF400000;2569
-SF410000;2566
-SF420000;2560
-SF430000;2550
-SF440000;256C
-SF450000;2567
-SF460000;2568
-SF470000;2564
-SF480000;2565
-SF490000;2559
-SF500000;2558
-SF510000;2552
-SF520000;2553
-SF530000;256B
-SF540000;256A
-Sacute;015A
-Sacutedotaccent;1E64
-Sampigreek;03E0
-Scaron;0160
-Scarondotaccent;1E66
-Scaronsmall;F6FD
-Scedilla;015E
-Schwa;018F
-Schwacyrillic;04D8
-Schwadieresiscyrillic;04DA
-Scircle;24C8
-Scircumflex;015C
-Scommaaccent;0218
-Sdotaccent;1E60
-Sdotbelow;1E62
-Sdotbelowdotaccent;1E68
-Seharmenian;054D
-Sevenroman;2166
-Shaarmenian;0547
-Shacyrillic;0428
-Shchacyrillic;0429
-Sheicoptic;03E2
-Shhacyrillic;04BA
-Shimacoptic;03EC
-Sigma;03A3
-Sixroman;2165
-Smonospace;FF33
-Softsigncyrillic;042C
-Ssmall;F773
-Stigmagreek;03DA
-T;0054
-Tau;03A4
-Tbar;0166
-Tcaron;0164
-Tcedilla;0162
-Tcircle;24C9
-Tcircumflexbelow;1E70
-Tcommaaccent;0162
-Tdotaccent;1E6A
-Tdotbelow;1E6C
-Tecyrillic;0422
-Tedescendercyrillic;04AC
-Tenroman;2169
-Tetsecyrillic;04B4
-Theta;0398
-Thook;01AC
-Thorn;00DE
-Thornsmall;F7FE
-Threeroman;2162
-Tildesmall;F6FE
-Tiwnarmenian;054F
-Tlinebelow;1E6E
-Tmonospace;FF34
-Toarmenian;0539
-Tonefive;01BC
-Tonesix;0184
-Tonetwo;01A7
-Tretroflexhook;01AE
-Tsecyrillic;0426
-Tshecyrillic;040B
-Tsmall;F774
-Twelveroman;216B
-Tworoman;2161
-U;0055
-Uacute;00DA
-Uacutesmall;F7FA
-Ubreve;016C
-Ucaron;01D3
-Ucircle;24CA
-Ucircumflex;00DB
-Ucircumflexbelow;1E76
-Ucircumflexsmall;F7FB
-Ucyrillic;0423
-Udblacute;0170
-Udblgrave;0214
-Udieresis;00DC
-Udieresisacute;01D7
-Udieresisbelow;1E72
-Udieresiscaron;01D9
-Udieresiscyrillic;04F0
-Udieresisgrave;01DB
-Udieresismacron;01D5
-Udieresissmall;F7FC
-Udotbelow;1EE4
-Ugrave;00D9
-Ugravesmall;F7F9
-Uhookabove;1EE6
-Uhorn;01AF
-Uhornacute;1EE8
-Uhorndotbelow;1EF0
-Uhorngrave;1EEA
-Uhornhookabove;1EEC
-Uhorntilde;1EEE
-Uhungarumlaut;0170
-Uhungarumlautcyrillic;04F2
-Uinvertedbreve;0216
-Ukcyrillic;0478
-Umacron;016A
-Umacroncyrillic;04EE
-Umacrondieresis;1E7A
-Umonospace;FF35
-Uogonek;0172
-Upsilon;03A5
-Upsilon1;03D2
-Upsilonacutehooksymbolgreek;03D3
-Upsilonafrican;01B1
-Upsilondieresis;03AB
-Upsilondieresishooksymbolgreek;03D4
-Upsilonhooksymbol;03D2
-Upsilontonos;038E
-Uring;016E
-Ushortcyrillic;040E
-Usmall;F775
-Ustraightcyrillic;04AE
-Ustraightstrokecyrillic;04B0
-Utilde;0168
-Utildeacute;1E78
-Utildebelow;1E74
-V;0056
-Vcircle;24CB
-Vdotbelow;1E7E
-Vecyrillic;0412
-Vewarmenian;054E
-Vhook;01B2
-Vmonospace;FF36
-Voarmenian;0548
-Vsmall;F776
-Vtilde;1E7C
-W;0057
-Wacute;1E82
-Wcircle;24CC
-Wcircumflex;0174
-Wdieresis;1E84
-Wdotaccent;1E86
-Wdotbelow;1E88
-Wgrave;1E80
-Wmonospace;FF37
-Wsmall;F777
-X;0058
-Xcircle;24CD
-Xdieresis;1E8C
-Xdotaccent;1E8A
-Xeharmenian;053D
-Xi;039E
-Xmonospace;FF38
-Xsmall;F778
-Y;0059
-Yacute;00DD
-Yacutesmall;F7FD
-Yatcyrillic;0462
-Ycircle;24CE
-Ycircumflex;0176
-Ydieresis;0178
-Ydieresissmall;F7FF
-Ydotaccent;1E8E
-Ydotbelow;1EF4
-Yericyrillic;042B
-Yerudieresiscyrillic;04F8
-Ygrave;1EF2
-Yhook;01B3
-Yhookabove;1EF6
-Yiarmenian;0545
-Yicyrillic;0407
-Yiwnarmenian;0552
-Ymonospace;FF39
-Ysmall;F779
-Ytilde;1EF8
-Yusbigcyrillic;046A
-Yusbigiotifiedcyrillic;046C
-Yuslittlecyrillic;0466
-Yuslittleiotifiedcyrillic;0468
-Z;005A
-Zaarmenian;0536
-Zacute;0179
-Zcaron;017D
-Zcaronsmall;F6FF
-Zcircle;24CF
-Zcircumflex;1E90
-Zdot;017B
-Zdotaccent;017B
-Zdotbelow;1E92
-Zecyrillic;0417
-Zedescendercyrillic;0498
-Zedieresiscyrillic;04DE
-Zeta;0396
-Zhearmenian;053A
-Zhebrevecyrillic;04C1
-Zhecyrillic;0416
-Zhedescendercyrillic;0496
-Zhedieresiscyrillic;04DC
-Zlinebelow;1E94
-Zmonospace;FF3A
-Zsmall;F77A
-Zstroke;01B5
-a;0061
-aabengali;0986
-aacute;00E1
-aadeva;0906
-aagujarati;0A86
-aagurmukhi;0A06
-aamatragurmukhi;0A3E
-aarusquare;3303
-aavowelsignbengali;09BE
-aavowelsigndeva;093E
-aavowelsigngujarati;0ABE
-abbreviationmarkarmenian;055F
-abbreviationsigndeva;0970
-abengali;0985
-abopomofo;311A
-abreve;0103
-abreveacute;1EAF
-abrevecyrillic;04D1
-abrevedotbelow;1EB7
-abrevegrave;1EB1
-abrevehookabove;1EB3
-abrevetilde;1EB5
-acaron;01CE
-acircle;24D0
-acircumflex;00E2
-acircumflexacute;1EA5
-acircumflexdotbelow;1EAD
-acircumflexgrave;1EA7
-acircumflexhookabove;1EA9
-acircumflextilde;1EAB
-acute;00B4
-acutebelowcmb;0317
-acutecmb;0301
-acutecomb;0301
-acutedeva;0954
-acutelowmod;02CF
-acutetonecmb;0341
-acyrillic;0430
-adblgrave;0201
-addakgurmukhi;0A71
-adeva;0905
-adieresis;00E4
-adieresiscyrillic;04D3
-adieresismacron;01DF
-adotbelow;1EA1
-adotmacron;01E1
-ae;00E6
-aeacute;01FD
-aekorean;3150
-aemacron;01E3
-afii00208;2015
-afii08941;20A4
-afii10017;0410
-afii10018;0411
-afii10019;0412
-afii10020;0413
-afii10021;0414
-afii10022;0415
-afii10023;0401
-afii10024;0416
-afii10025;0417
-afii10026;0418
-afii10027;0419
-afii10028;041A
-afii10029;041B
-afii10030;041C
-afii10031;041D
-afii10032;041E
-afii10033;041F
-afii10034;0420
-afii10035;0421
-afii10036;0422
-afii10037;0423
-afii10038;0424
-afii10039;0425
-afii10040;0426
-afii10041;0427
-afii10042;0428
-afii10043;0429
-afii10044;042A
-afii10045;042B
-afii10046;042C
-afii10047;042D
-afii10048;042E
-afii10049;042F
-afii10050;0490
-afii10051;0402
-afii10052;0403
-afii10053;0404
-afii10054;0405
-afii10055;0406
-afii10056;0407
-afii10057;0408
-afii10058;0409
-afii10059;040A
-afii10060;040B
-afii10061;040C
-afii10062;040E
-afii10063;F6C4
-afii10064;F6C5
-afii10065;0430
-afii10066;0431
-afii10067;0432
-afii10068;0433
-afii10069;0434
-afii10070;0435
-afii10071;0451
-afii10072;0436
-afii10073;0437
-afii10074;0438
-afii10075;0439
-afii10076;043A
-afii10077;043B
-afii10078;043C
-afii10079;043D
-afii10080;043E
-afii10081;043F
-afii10082;0440
-afii10083;0441
-afii10084;0442
-afii10085;0443
-afii10086;0444
-afii10087;0445
-afii10088;0446
-afii10089;0447
-afii10090;0448
-afii10091;0449
-afii10092;044A
-afii10093;044B
-afii10094;044C
-afii10095;044D
-afii10096;044E
-afii10097;044F
-afii10098;0491
-afii10099;0452
-afii10100;0453
-afii10101;0454
-afii10102;0455
-afii10103;0456
-afii10104;0457
-afii10105;0458
-afii10106;0459
-afii10107;045A
-afii10108;045B
-afii10109;045C
-afii10110;045E
-afii10145;040F
-afii10146;0462
-afii10147;0472
-afii10148;0474
-afii10192;F6C6
-afii10193;045F
-afii10194;0463
-afii10195;0473
-afii10196;0475
-afii10831;F6C7
-afii10832;F6C8
-afii10846;04D9
-afii299;200E
-afii300;200F
-afii301;200D
-afii57381;066A
-afii57388;060C
-afii57392;0660
-afii57393;0661
-afii57394;0662
-afii57395;0663
-afii57396;0664
-afii57397;0665
-afii57398;0666
-afii57399;0667
-afii57400;0668
-afii57401;0669
-afii57403;061B
-afii57407;061F
-afii57409;0621
-afii57410;0622
-afii57411;0623
-afii57412;0624
-afii57413;0625
-afii57414;0626
-afii57415;0627
-afii57416;0628
-afii57417;0629
-afii57418;062A
-afii57419;062B
-afii57420;062C
-afii57421;062D
-afii57422;062E
-afii57423;062F
-afii57424;0630
-afii57425;0631
-afii57426;0632
-afii57427;0633
-afii57428;0634
-afii57429;0635
-afii57430;0636
-afii57431;0637
-afii57432;0638
-afii57433;0639
-afii57434;063A
-afii57440;0640
-afii57441;0641
-afii57442;0642
-afii57443;0643
-afii57444;0644
-afii57445;0645
-afii57446;0646
-afii57448;0648
-afii57449;0649
-afii57450;064A
-afii57451;064B
-afii57452;064C
-afii57453;064D
-afii57454;064E
-afii57455;064F
-afii57456;0650
-afii57457;0651
-afii57458;0652
-afii57470;0647
-afii57505;06A4
-afii57506;067E
-afii57507;0686
-afii57508;0698
-afii57509;06AF
-afii57511;0679
-afii57512;0688
-afii57513;0691
-afii57514;06BA
-afii57519;06D2
-afii57534;06D5
-afii57636;20AA
-afii57645;05BE
-afii57658;05C3
-afii57664;05D0
-afii57665;05D1
-afii57666;05D2
-afii57667;05D3
-afii57668;05D4
-afii57669;05D5
-afii57670;05D6
-afii57671;05D7
-afii57672;05D8
-afii57673;05D9
-afii57674;05DA
-afii57675;05DB
-afii57676;05DC
-afii57677;05DD
-afii57678;05DE
-afii57679;05DF
-afii57680;05E0
-afii57681;05E1
-afii57682;05E2
-afii57683;05E3
-afii57684;05E4
-afii57685;05E5
-afii57686;05E6
-afii57687;05E7
-afii57688;05E8
-afii57689;05E9
-afii57690;05EA
-afii57694;FB2A
-afii57695;FB2B
-afii57700;FB4B
-afii57705;FB1F
-afii57716;05F0
-afii57717;05F1
-afii57718;05F2
-afii57723;FB35
-afii57793;05B4
-afii57794;05B5
-afii57795;05B6
-afii57796;05BB
-afii57797;05B8
-afii57798;05B7
-afii57799;05B0
-afii57800;05B2
-afii57801;05B1
-afii57802;05B3
-afii57803;05C2
-afii57804;05C1
-afii57806;05B9
-afii57807;05BC
-afii57839;05BD
-afii57841;05BF
-afii57842;05C0
-afii57929;02BC
-afii61248;2105
-afii61289;2113
-afii61352;2116
-afii61573;202C
-afii61574;202D
-afii61575;202E
-afii61664;200C
-afii63167;066D
-afii64937;02BD
-agrave;00E0
-agujarati;0A85
-agurmukhi;0A05
-ahiragana;3042
-ahookabove;1EA3
-aibengali;0990
-aibopomofo;311E
-aideva;0910
-aiecyrillic;04D5
-aigujarati;0A90
-aigurmukhi;0A10
-aimatragurmukhi;0A48
-ainarabic;0639
-ainfinalarabic;FECA
-aininitialarabic;FECB
-ainmedialarabic;FECC
-ainvertedbreve;0203
-aivowelsignbengali;09C8
-aivowelsigndeva;0948
-aivowelsigngujarati;0AC8
-akatakana;30A2
-akatakanahalfwidth;FF71
-akorean;314F
-alef;05D0
-alefarabic;0627
-alefdageshhebrew;FB30
-aleffinalarabic;FE8E
-alefhamzaabovearabic;0623
-alefhamzaabovefinalarabic;FE84
-alefhamzabelowarabic;0625
-alefhamzabelowfinalarabic;FE88
-alefhebrew;05D0
-aleflamedhebrew;FB4F
-alefmaddaabovearabic;0622
-alefmaddaabovefinalarabic;FE82
-alefmaksuraarabic;0649
-alefmaksurafinalarabic;FEF0
-alefmaksurainitialarabic;FEF3
-alefmaksuramedialarabic;FEF4
-alefpatahhebrew;FB2E
-alefqamatshebrew;FB2F
-aleph;2135
-allequal;224C
-alpha;03B1
-alphatonos;03AC
-amacron;0101
-amonospace;FF41
-ampersand;0026
-ampersandmonospace;FF06
-ampersandsmall;F726
-amsquare;33C2
-anbopomofo;3122
-angbopomofo;3124
-angkhankhuthai;0E5A
-angle;2220
-anglebracketleft;3008
-anglebracketleftvertical;FE3F
-anglebracketright;3009
-anglebracketrightvertical;FE40
-angleleft;2329
-angleright;232A
-angstrom;212B
-anoteleia;0387
-anudattadeva;0952
-anusvarabengali;0982
-anusvaradeva;0902
-anusvaragujarati;0A82
-aogonek;0105
-apaatosquare;3300
-aparen;249C
-apostrophearmenian;055A
-apostrophemod;02BC
-apple;F8FF
-approaches;2250
-approxequal;2248
-approxequalorimage;2252
-approximatelyequal;2245
-araeaekorean;318E
-araeakorean;318D
-arc;2312
-arighthalfring;1E9A
-aring;00E5
-aringacute;01FB
-aringbelow;1E01
-arrowboth;2194
-arrowdashdown;21E3
-arrowdashleft;21E0
-arrowdashright;21E2
-arrowdashup;21E1
-arrowdblboth;21D4
-arrowdbldown;21D3
-arrowdblleft;21D0
-arrowdblright;21D2
-arrowdblup;21D1
-arrowdown;2193
-arrowdownleft;2199
-arrowdownright;2198
-arrowdownwhite;21E9
-arrowheaddownmod;02C5
-arrowheadleftmod;02C2
-arrowheadrightmod;02C3
-arrowheadupmod;02C4
-arrowhorizex;F8E7
-arrowleft;2190
-arrowleftdbl;21D0
-arrowleftdblstroke;21CD
-arrowleftoverright;21C6
-arrowleftwhite;21E6
-arrowright;2192
-arrowrightdblstroke;21CF
-arrowrightheavy;279E
-arrowrightoverleft;21C4
-arrowrightwhite;21E8
-arrowtableft;21E4
-arrowtabright;21E5
-arrowup;2191
-arrowupdn;2195
-arrowupdnbse;21A8
-arrowupdownbase;21A8
-arrowupleft;2196
-arrowupleftofdown;21C5
-arrowupright;2197
-arrowupwhite;21E7
-arrowvertex;F8E6
-asciicircum;005E
-asciicircummonospace;FF3E
-asciitilde;007E
-asciitildemonospace;FF5E
-ascript;0251
-ascriptturned;0252
-asmallhiragana;3041
-asmallkatakana;30A1
-asmallkatakanahalfwidth;FF67
-asterisk;002A
-asteriskaltonearabic;066D
-asteriskarabic;066D
-asteriskmath;2217
-asteriskmonospace;FF0A
-asterisksmall;FE61
-asterism;2042
-asuperior;F6E9
-asymptoticallyequal;2243
-at;0040
-atilde;00E3
-atmonospace;FF20
-atsmall;FE6B
-aturned;0250
-aubengali;0994
-aubopomofo;3120
-audeva;0914
-augujarati;0A94
-augurmukhi;0A14
-aulengthmarkbengali;09D7
-aumatragurmukhi;0A4C
-auvowelsignbengali;09CC
-auvowelsigndeva;094C
-auvowelsigngujarati;0ACC
-avagrahadeva;093D
-aybarmenian;0561
-ayin;05E2
-ayinaltonehebrew;FB20
-ayinhebrew;05E2
-b;0062
-babengali;09AC
-backslash;005C
-backslashmonospace;FF3C
-badeva;092C
-bagujarati;0AAC
-bagurmukhi;0A2C
-bahiragana;3070
-bahtthai;0E3F
-bakatakana;30D0
-bar;007C
-barmonospace;FF5C
-bbopomofo;3105
-bcircle;24D1
-bdotaccent;1E03
-bdotbelow;1E05
-beamedsixteenthnotes;266C
-because;2235
-becyrillic;0431
-beharabic;0628
-behfinalarabic;FE90
-behinitialarabic;FE91
-behiragana;3079
-behmedialarabic;FE92
-behmeeminitialarabic;FC9F
-behmeemisolatedarabic;FC08
-behnoonfinalarabic;FC6D
-bekatakana;30D9
-benarmenian;0562
-bet;05D1
-beta;03B2
-betasymbolgreek;03D0
-betdagesh;FB31
-betdageshhebrew;FB31
-bethebrew;05D1
-betrafehebrew;FB4C
-bhabengali;09AD
-bhadeva;092D
-bhagujarati;0AAD
-bhagurmukhi;0A2D
-bhook;0253
-bihiragana;3073
-bikatakana;30D3
-bilabialclick;0298
-bindigurmukhi;0A02
-birusquare;3331
-blackcircle;25CF
-blackdiamond;25C6
-blackdownpointingtriangle;25BC
-blackleftpointingpointer;25C4
-blackleftpointingtriangle;25C0
-blacklenticularbracketleft;3010
-blacklenticularbracketleftvertical;FE3B
-blacklenticularbracketright;3011
-blacklenticularbracketrightvertical;FE3C
-blacklowerlefttriangle;25E3
-blacklowerrighttriangle;25E2
-blackrectangle;25AC
-blackrightpointingpointer;25BA
-blackrightpointingtriangle;25B6
-blacksmallsquare;25AA
-blacksmilingface;263B
-blacksquare;25A0
-blackstar;2605
-blackupperlefttriangle;25E4
-blackupperrighttriangle;25E5
-blackuppointingsmalltriangle;25B4
-blackuppointingtriangle;25B2
-blank;2423
-blinebelow;1E07
-block;2588
-bmonospace;FF42
-bobaimaithai;0E1A
-bohiragana;307C
-bokatakana;30DC
-bparen;249D
-bqsquare;33C3
-braceex;F8F4
-braceleft;007B
-braceleftbt;F8F3
-braceleftmid;F8F2
-braceleftmonospace;FF5B
-braceleftsmall;FE5B
-bracelefttp;F8F1
-braceleftvertical;FE37
-braceright;007D
-bracerightbt;F8FE
-bracerightmid;F8FD
-bracerightmonospace;FF5D
-bracerightsmall;FE5C
-bracerighttp;F8FC
-bracerightvertical;FE38
-bracketleft;005B
-bracketleftbt;F8F0
-bracketleftex;F8EF
-bracketleftmonospace;FF3B
-bracketlefttp;F8EE
-bracketright;005D
-bracketrightbt;F8FB
-bracketrightex;F8FA
-bracketrightmonospace;FF3D
-bracketrighttp;F8F9
-breve;02D8
-brevebelowcmb;032E
-brevecmb;0306
-breveinvertedbelowcmb;032F
-breveinvertedcmb;0311
-breveinverteddoublecmb;0361
-bridgebelowcmb;032A
-bridgeinvertedbelowcmb;033A
-brokenbar;00A6
-bstroke;0180
-bsuperior;F6EA
-btopbar;0183
-buhiragana;3076
-bukatakana;30D6
-bullet;2022
-bulletinverse;25D8
-bulletoperator;2219
-bullseye;25CE
-c;0063
-caarmenian;056E
-cabengali;099A
-cacute;0107
-cadeva;091A
-cagujarati;0A9A
-cagurmukhi;0A1A
-calsquare;3388
-candrabindubengali;0981
-candrabinducmb;0310
-candrabindudeva;0901
-candrabindugujarati;0A81
-capslock;21EA
-careof;2105
-caron;02C7
-caronbelowcmb;032C
-caroncmb;030C
-carriagereturn;21B5
-cbopomofo;3118
-ccaron;010D
-ccedilla;00E7
-ccedillaacute;1E09
-ccircle;24D2
-ccircumflex;0109
-ccurl;0255
-cdot;010B
-cdotaccent;010B
-cdsquare;33C5
-cedilla;00B8
-cedillacmb;0327
-cent;00A2
-centigrade;2103
-centinferior;F6DF
-centmonospace;FFE0
-centoldstyle;F7A2
-centsuperior;F6E0
-chaarmenian;0579
-chabengali;099B
-chadeva;091B
-chagujarati;0A9B
-chagurmukhi;0A1B
-chbopomofo;3114
-cheabkhasiancyrillic;04BD
-checkmark;2713
-checyrillic;0447
-chedescenderabkhasiancyrillic;04BF
-chedescendercyrillic;04B7
-chedieresiscyrillic;04F5
-cheharmenian;0573
-chekhakassiancyrillic;04CC
-cheverticalstrokecyrillic;04B9
-chi;03C7
-chieuchacirclekorean;3277
-chieuchaparenkorean;3217
-chieuchcirclekorean;3269
-chieuchkorean;314A
-chieuchparenkorean;3209
-chochangthai;0E0A
-chochanthai;0E08
-chochingthai;0E09
-chochoethai;0E0C
-chook;0188
-cieucacirclekorean;3276
-cieucaparenkorean;3216
-cieuccirclekorean;3268
-cieuckorean;3148
-cieucparenkorean;3208
-cieucuparenkorean;321C
-circle;25CB
-circlemultiply;2297
-circleot;2299
-circleplus;2295
-circlepostalmark;3036
-circlewithlefthalfblack;25D0
-circlewithrighthalfblack;25D1
-circumflex;02C6
-circumflexbelowcmb;032D
-circumflexcmb;0302
-clear;2327
-clickalveolar;01C2
-clickdental;01C0
-clicklateral;01C1
-clickretroflex;01C3
-club;2663
-clubsuitblack;2663
-clubsuitwhite;2667
-cmcubedsquare;33A4
-cmonospace;FF43
-cmsquaredsquare;33A0
-coarmenian;0581
-colon;003A
-colonmonetary;20A1
-colonmonospace;FF1A
-colonsign;20A1
-colonsmall;FE55
-colontriangularhalfmod;02D1
-colontriangularmod;02D0
-comma;002C
-commaabovecmb;0313
-commaaboverightcmb;0315
-commaaccent;F6C3
-commaarabic;060C
-commaarmenian;055D
-commainferior;F6E1
-commamonospace;FF0C
-commareversedabovecmb;0314
-commareversedmod;02BD
-commasmall;FE50
-commasuperior;F6E2
-commaturnedabovecmb;0312
-commaturnedmod;02BB
-compass;263C
-congruent;2245
-contourintegral;222E
-control;2303
-controlACK;0006
-controlBEL;0007
-controlBS;0008
-controlCAN;0018
-controlCR;000D
-controlDC1;0011
-controlDC2;0012
-controlDC3;0013
-controlDC4;0014
-controlDEL;007F
-controlDLE;0010
-controlEM;0019
-controlENQ;0005
-controlEOT;0004
-controlESC;001B
-controlETB;0017
-controlETX;0003
-controlFF;000C
-controlFS;001C
-controlGS;001D
-controlHT;0009
-controlLF;000A
-controlNAK;0015
-controlRS;001E
-controlSI;000F
-controlSO;000E
-controlSOT;0002
-controlSTX;0001
-controlSUB;001A
-controlSYN;0016
-controlUS;001F
-controlVT;000B
-copyright;00A9
-copyrightsans;F8E9
-copyrightserif;F6D9
-cornerbracketleft;300C
-cornerbracketlefthalfwidth;FF62
-cornerbracketleftvertical;FE41
-cornerbracketright;300D
-cornerbracketrighthalfwidth;FF63
-cornerbracketrightvertical;FE42
-corporationsquare;337F
-cosquare;33C7
-coverkgsquare;33C6
-cparen;249E
-cruzeiro;20A2
-cstretched;0297
-curlyand;22CF
-curlyor;22CE
-currency;00A4
-cyrBreve;F6D1
-cyrFlex;F6D2
-cyrbreve;F6D4
-cyrflex;F6D5
-d;0064
-daarmenian;0564
-dabengali;09A6
-dadarabic;0636
-dadeva;0926
-dadfinalarabic;FEBE
-dadinitialarabic;FEBF
-dadmedialarabic;FEC0
-dagesh;05BC
-dageshhebrew;05BC
-dagger;2020
-daggerdbl;2021
-dagujarati;0AA6
-dagurmukhi;0A26
-dahiragana;3060
-dakatakana;30C0
-dalarabic;062F
-dalet;05D3
-daletdagesh;FB33
-daletdageshhebrew;FB33
-dalethatafpatah;05D3 05B2
-dalethatafpatahhebrew;05D3 05B2
-dalethatafsegol;05D3 05B1
-dalethatafsegolhebrew;05D3 05B1
-dalethebrew;05D3
-dalethiriq;05D3 05B4
-dalethiriqhebrew;05D3 05B4
-daletholam;05D3 05B9
-daletholamhebrew;05D3 05B9
-daletpatah;05D3 05B7
-daletpatahhebrew;05D3 05B7
-daletqamats;05D3 05B8
-daletqamatshebrew;05D3 05B8
-daletqubuts;05D3 05BB
-daletqubutshebrew;05D3 05BB
-daletsegol;05D3 05B6
-daletsegolhebrew;05D3 05B6
-daletsheva;05D3 05B0
-daletshevahebrew;05D3 05B0
-dalettsere;05D3 05B5
-dalettserehebrew;05D3 05B5
-dalfinalarabic;FEAA
-dammaarabic;064F
-dammalowarabic;064F
-dammatanaltonearabic;064C
-dammatanarabic;064C
-danda;0964
-dargahebrew;05A7
-dargalefthebrew;05A7
-dasiapneumatacyrilliccmb;0485
-dblGrave;F6D3
-dblanglebracketleft;300A
-dblanglebracketleftvertical;FE3D
-dblanglebracketright;300B
-dblanglebracketrightvertical;FE3E
-dblarchinvertedbelowcmb;032B
-dblarrowleft;21D4
-dblarrowright;21D2
-dbldanda;0965
-dblgrave;F6D6
-dblgravecmb;030F
-dblintegral;222C
-dbllowline;2017
-dbllowlinecmb;0333
-dbloverlinecmb;033F
-dblprimemod;02BA
-dblverticalbar;2016
-dblverticallineabovecmb;030E
-dbopomofo;3109
-dbsquare;33C8
-dcaron;010F
-dcedilla;1E11
-dcircle;24D3
-dcircumflexbelow;1E13
-dcroat;0111
-ddabengali;09A1
-ddadeva;0921
-ddagujarati;0AA1
-ddagurmukhi;0A21
-ddalarabic;0688
-ddalfinalarabic;FB89
-dddhadeva;095C
-ddhabengali;09A2
-ddhadeva;0922
-ddhagujarati;0AA2
-ddhagurmukhi;0A22
-ddotaccent;1E0B
-ddotbelow;1E0D
-decimalseparatorarabic;066B
-decimalseparatorpersian;066B
-decyrillic;0434
-degree;00B0
-dehihebrew;05AD
-dehiragana;3067
-deicoptic;03EF
-dekatakana;30C7
-deleteleft;232B
-deleteright;2326
-delta;03B4
-deltaturned;018D
-denominatorminusonenumeratorbengali;09F8
-dezh;02A4
-dhabengali;09A7
-dhadeva;0927
-dhagujarati;0AA7
-dhagurmukhi;0A27
-dhook;0257
-dialytikatonos;0385
-dialytikatonoscmb;0344
-diamond;2666
-diamondsuitwhite;2662
-dieresis;00A8
-dieresisacute;F6D7
-dieresisbelowcmb;0324
-dieresiscmb;0308
-dieresisgrave;F6D8
-dieresistonos;0385
-dihiragana;3062
-dikatakana;30C2
-dittomark;3003
-divide;00F7
-divides;2223
-divisionslash;2215
-djecyrillic;0452
-dkshade;2593
-dlinebelow;1E0F
-dlsquare;3397
-dmacron;0111
-dmonospace;FF44
-dnblock;2584
-dochadathai;0E0E
-dodekthai;0E14
-dohiragana;3069
-dokatakana;30C9
-dollar;0024
-dollarinferior;F6E3
-dollarmonospace;FF04
-dollaroldstyle;F724
-dollarsmall;FE69
-dollarsuperior;F6E4
-dong;20AB
-dorusquare;3326
-dotaccent;02D9
-dotaccentcmb;0307
-dotbelowcmb;0323
-dotbelowcomb;0323
-dotkatakana;30FB
-dotlessi;0131
-dotlessj;F6BE
-dotlessjstrokehook;0284
-dotmath;22C5
-dottedcircle;25CC
-doubleyodpatah;FB1F
-doubleyodpatahhebrew;FB1F
-downtackbelowcmb;031E
-downtackmod;02D5
-dparen;249F
-dsuperior;F6EB
-dtail;0256
-dtopbar;018C
-duhiragana;3065
-dukatakana;30C5
-dz;01F3
-dzaltone;02A3
-dzcaron;01C6
-dzcurl;02A5
-dzeabkhasiancyrillic;04E1
-dzecyrillic;0455
-dzhecyrillic;045F
-e;0065
-eacute;00E9
-earth;2641
-ebengali;098F
-ebopomofo;311C
-ebreve;0115
-ecandradeva;090D
-ecandragujarati;0A8D
-ecandravowelsigndeva;0945
-ecandravowelsigngujarati;0AC5
-ecaron;011B
-ecedillabreve;1E1D
-echarmenian;0565
-echyiwnarmenian;0587
-ecircle;24D4
-ecircumflex;00EA
-ecircumflexacute;1EBF
-ecircumflexbelow;1E19
-ecircumflexdotbelow;1EC7
-ecircumflexgrave;1EC1
-ecircumflexhookabove;1EC3
-ecircumflextilde;1EC5
-ecyrillic;0454
-edblgrave;0205
-edeva;090F
-edieresis;00EB
-edot;0117
-edotaccent;0117
-edotbelow;1EB9
-eegurmukhi;0A0F
-eematragurmukhi;0A47
-efcyrillic;0444
-egrave;00E8
-egujarati;0A8F
-eharmenian;0567
-ehbopomofo;311D
-ehiragana;3048
-ehookabove;1EBB
-eibopomofo;311F
-eight;0038
-eightarabic;0668
-eightbengali;09EE
-eightcircle;2467
-eightcircleinversesansserif;2791
-eightdeva;096E
-eighteencircle;2471
-eighteenparen;2485
-eighteenperiod;2499
-eightgujarati;0AEE
-eightgurmukhi;0A6E
-eighthackarabic;0668
-eighthangzhou;3028
-eighthnotebeamed;266B
-eightideographicparen;3227
-eightinferior;2088
-eightmonospace;FF18
-eightoldstyle;F738
-eightparen;247B
-eightperiod;248F
-eightpersian;06F8
-eightroman;2177
-eightsuperior;2078
-eightthai;0E58
-einvertedbreve;0207
-eiotifiedcyrillic;0465
-ekatakana;30A8
-ekatakanahalfwidth;FF74
-ekonkargurmukhi;0A74
-ekorean;3154
-elcyrillic;043B
-element;2208
-elevencircle;246A
-elevenparen;247E
-elevenperiod;2492
-elevenroman;217A
-ellipsis;2026
-ellipsisvertical;22EE
-emacron;0113
-emacronacute;1E17
-emacrongrave;1E15
-emcyrillic;043C
-emdash;2014
-emdashvertical;FE31
-emonospace;FF45
-emphasismarkarmenian;055B
-emptyset;2205
-enbopomofo;3123
-encyrillic;043D
-endash;2013
-endashvertical;FE32
-endescendercyrillic;04A3
-eng;014B
-engbopomofo;3125
-enghecyrillic;04A5
-enhookcyrillic;04C8
-enspace;2002
-eogonek;0119
-eokorean;3153
-eopen;025B
-eopenclosed;029A
-eopenreversed;025C
-eopenreversedclosed;025E
-eopenreversedhook;025D
-eparen;24A0
-epsilon;03B5
-epsilontonos;03AD
-equal;003D
-equalmonospace;FF1D
-equalsmall;FE66
-equalsuperior;207C
-equivalence;2261
-erbopomofo;3126
-ercyrillic;0440
-ereversed;0258
-ereversedcyrillic;044D
-escyrillic;0441
-esdescendercyrillic;04AB
-esh;0283
-eshcurl;0286
-eshortdeva;090E
-eshortvowelsigndeva;0946
-eshreversedloop;01AA
-eshsquatreversed;0285
-esmallhiragana;3047
-esmallkatakana;30A7
-esmallkatakanahalfwidth;FF6A
-estimated;212E
-esuperior;F6EC
-eta;03B7
-etarmenian;0568
-etatonos;03AE
-eth;00F0
-etilde;1EBD
-etildebelow;1E1B
-etnahtafoukhhebrew;0591
-etnahtafoukhlefthebrew;0591
-etnahtahebrew;0591
-etnahtalefthebrew;0591
-eturned;01DD
-eukorean;3161
-euro;20AC
-evowelsignbengali;09C7
-evowelsigndeva;0947
-evowelsigngujarati;0AC7
-exclam;0021
-exclamarmenian;055C
-exclamdbl;203C
-exclamdown;00A1
-exclamdownsmall;F7A1
-exclammonospace;FF01
-exclamsmall;F721
-existential;2203
-ezh;0292
-ezhcaron;01EF
-ezhcurl;0293
-ezhreversed;01B9
-ezhtail;01BA
-f;0066
-fadeva;095E
-fagurmukhi;0A5E
-fahrenheit;2109
-fathaarabic;064E
-fathalowarabic;064E
-fathatanarabic;064B
-fbopomofo;3108
-fcircle;24D5
-fdotaccent;1E1F
-feharabic;0641
-feharmenian;0586
-fehfinalarabic;FED2
-fehinitialarabic;FED3
-fehmedialarabic;FED4
-feicoptic;03E5
-female;2640
-ff;FB00
-ffi;FB03
-ffl;FB04
-fi;FB01
-fifteencircle;246E
-fifteenparen;2482
-fifteenperiod;2496
-figuredash;2012
-filledbox;25A0
-filledrect;25AC
-finalkaf;05DA
-finalkafdagesh;FB3A
-finalkafdageshhebrew;FB3A
-finalkafhebrew;05DA
-finalkafqamats;05DA 05B8
-finalkafqamatshebrew;05DA 05B8
-finalkafsheva;05DA 05B0
-finalkafshevahebrew;05DA 05B0
-finalmem;05DD
-finalmemhebrew;05DD
-finalnun;05DF
-finalnunhebrew;05DF
-finalpe;05E3
-finalpehebrew;05E3
-finaltsadi;05E5
-finaltsadihebrew;05E5
-firsttonechinese;02C9
-fisheye;25C9
-fitacyrillic;0473
-five;0035
-fivearabic;0665
-fivebengali;09EB
-fivecircle;2464
-fivecircleinversesansserif;278E
-fivedeva;096B
-fiveeighths;215D
-fivegujarati;0AEB
-fivegurmukhi;0A6B
-fivehackarabic;0665
-fivehangzhou;3025
-fiveideographicparen;3224
-fiveinferior;2085
-fivemonospace;FF15
-fiveoldstyle;F735
-fiveparen;2478
-fiveperiod;248C
-fivepersian;06F5
-fiveroman;2174
-fivesuperior;2075
-fivethai;0E55
-fl;FB02
-florin;0192
-fmonospace;FF46
-fmsquare;3399
-fofanthai;0E1F
-fofathai;0E1D
-fongmanthai;0E4F
-forall;2200
-four;0034
-fourarabic;0664
-fourbengali;09EA
-fourcircle;2463
-fourcircleinversesansserif;278D
-fourdeva;096A
-fourgujarati;0AEA
-fourgurmukhi;0A6A
-fourhackarabic;0664
-fourhangzhou;3024
-fourideographicparen;3223
-fourinferior;2084
-fourmonospace;FF14
-fournumeratorbengali;09F7
-fouroldstyle;F734
-fourparen;2477
-fourperiod;248B
-fourpersian;06F4
-fourroman;2173
-foursuperior;2074
-fourteencircle;246D
-fourteenparen;2481
-fourteenperiod;2495
-fourthai;0E54
-fourthtonechinese;02CB
-fparen;24A1
-fraction;2044
-franc;20A3
-g;0067
-gabengali;0997
-gacute;01F5
-gadeva;0917
-gafarabic;06AF
-gaffinalarabic;FB93
-gafinitialarabic;FB94
-gafmedialarabic;FB95
-gagujarati;0A97
-gagurmukhi;0A17
-gahiragana;304C
-gakatakana;30AC
-gamma;03B3
-gammalatinsmall;0263
-gammasuperior;02E0
-gangiacoptic;03EB
-gbopomofo;310D
-gbreve;011F
-gcaron;01E7
-gcedilla;0123
-gcircle;24D6
-gcircumflex;011D
-gcommaaccent;0123
-gdot;0121
-gdotaccent;0121
-gecyrillic;0433
-gehiragana;3052
-gekatakana;30B2
-geometricallyequal;2251
-gereshaccenthebrew;059C
-gereshhebrew;05F3
-gereshmuqdamhebrew;059D
-germandbls;00DF
-gershayimaccenthebrew;059E
-gershayimhebrew;05F4
-getamark;3013
-ghabengali;0998
-ghadarmenian;0572
-ghadeva;0918
-ghagujarati;0A98
-ghagurmukhi;0A18
-ghainarabic;063A
-ghainfinalarabic;FECE
-ghaininitialarabic;FECF
-ghainmedialarabic;FED0
-ghemiddlehookcyrillic;0495
-ghestrokecyrillic;0493
-gheupturncyrillic;0491
-ghhadeva;095A
-ghhagurmukhi;0A5A
-ghook;0260
-ghzsquare;3393
-gihiragana;304E
-gikatakana;30AE
-gimarmenian;0563
-gimel;05D2
-gimeldagesh;FB32
-gimeldageshhebrew;FB32
-gimelhebrew;05D2
-gjecyrillic;0453
-glottalinvertedstroke;01BE
-glottalstop;0294
-glottalstopinverted;0296
-glottalstopmod;02C0
-glottalstopreversed;0295
-glottalstopreversedmod;02C1
-glottalstopreversedsuperior;02E4
-glottalstopstroke;02A1
-glottalstopstrokereversed;02A2
-gmacron;1E21
-gmonospace;FF47
-gohiragana;3054
-gokatakana;30B4
-gparen;24A2
-gpasquare;33AC
-gradient;2207
-grave;0060
-gravebelowcmb;0316
-gravecmb;0300
-gravecomb;0300
-gravedeva;0953
-gravelowmod;02CE
-gravemonospace;FF40
-gravetonecmb;0340
-greater;003E
-greaterequal;2265
-greaterequalorless;22DB
-greatermonospace;FF1E
-greaterorequivalent;2273
-greaterorless;2277
-greateroverequal;2267
-greatersmall;FE65
-gscript;0261
-gstroke;01E5
-guhiragana;3050
-guillemotleft;00AB
-guillemotright;00BB
-guilsinglleft;2039
-guilsinglright;203A
-gukatakana;30B0
-guramusquare;3318
-gysquare;33C9
-h;0068
-haabkhasiancyrillic;04A9
-haaltonearabic;06C1
-habengali;09B9
-hadescendercyrillic;04B3
-hadeva;0939
-hagujarati;0AB9
-hagurmukhi;0A39
-haharabic;062D
-hahfinalarabic;FEA2
-hahinitialarabic;FEA3
-hahiragana;306F
-hahmedialarabic;FEA4
-haitusquare;332A
-hakatakana;30CF
-hakatakanahalfwidth;FF8A
-halantgurmukhi;0A4D
-hamzaarabic;0621
-hamzadammaarabic;0621 064F
-hamzadammatanarabic;0621 064C
-hamzafathaarabic;0621 064E
-hamzafathatanarabic;0621 064B
-hamzalowarabic;0621
-hamzalowkasraarabic;0621 0650
-hamzalowkasratanarabic;0621 064D
-hamzasukunarabic;0621 0652
-hangulfiller;3164
-hardsigncyrillic;044A
-harpoonleftbarbup;21BC
-harpoonrightbarbup;21C0
-hasquare;33CA
-hatafpatah;05B2
-hatafpatah16;05B2
-hatafpatah23;05B2
-hatafpatah2f;05B2
-hatafpatahhebrew;05B2
-hatafpatahnarrowhebrew;05B2
-hatafpatahquarterhebrew;05B2
-hatafpatahwidehebrew;05B2
-hatafqamats;05B3
-hatafqamats1b;05B3
-hatafqamats28;05B3
-hatafqamats34;05B3
-hatafqamatshebrew;05B3
-hatafqamatsnarrowhebrew;05B3
-hatafqamatsquarterhebrew;05B3
-hatafqamatswidehebrew;05B3
-hatafsegol;05B1
-hatafsegol17;05B1
-hatafsegol24;05B1
-hatafsegol30;05B1
-hatafsegolhebrew;05B1
-hatafsegolnarrowhebrew;05B1
-hatafsegolquarterhebrew;05B1
-hatafsegolwidehebrew;05B1
-hbar;0127
-hbopomofo;310F
-hbrevebelow;1E2B
-hcedilla;1E29
-hcircle;24D7
-hcircumflex;0125
-hdieresis;1E27
-hdotaccent;1E23
-hdotbelow;1E25
-he;05D4
-heart;2665
-heartsuitblack;2665
-heartsuitwhite;2661
-hedagesh;FB34
-hedageshhebrew;FB34
-hehaltonearabic;06C1
-heharabic;0647
-hehebrew;05D4
-hehfinalaltonearabic;FBA7
-hehfinalalttwoarabic;FEEA
-hehfinalarabic;FEEA
-hehhamzaabovefinalarabic;FBA5
-hehhamzaaboveisolatedarabic;FBA4
-hehinitialaltonearabic;FBA8
-hehinitialarabic;FEEB
-hehiragana;3078
-hehmedialaltonearabic;FBA9
-hehmedialarabic;FEEC
-heiseierasquare;337B
-hekatakana;30D8
-hekatakanahalfwidth;FF8D
-hekutaarusquare;3336
-henghook;0267
-herutusquare;3339
-het;05D7
-hethebrew;05D7
-hhook;0266
-hhooksuperior;02B1
-hieuhacirclekorean;327B
-hieuhaparenkorean;321B
-hieuhcirclekorean;326D
-hieuhkorean;314E
-hieuhparenkorean;320D
-hihiragana;3072
-hikatakana;30D2
-hikatakanahalfwidth;FF8B
-hiriq;05B4
-hiriq14;05B4
-hiriq21;05B4
-hiriq2d;05B4
-hiriqhebrew;05B4
-hiriqnarrowhebrew;05B4
-hiriqquarterhebrew;05B4
-hiriqwidehebrew;05B4
-hlinebelow;1E96
-hmonospace;FF48
-hoarmenian;0570
-hohipthai;0E2B
-hohiragana;307B
-hokatakana;30DB
-hokatakanahalfwidth;FF8E
-holam;05B9
-holam19;05B9
-holam26;05B9
-holam32;05B9
-holamhebrew;05B9
-holamnarrowhebrew;05B9
-holamquarterhebrew;05B9
-holamwidehebrew;05B9
-honokhukthai;0E2E
-hookabovecomb;0309
-hookcmb;0309
-hookpalatalizedbelowcmb;0321
-hookretroflexbelowcmb;0322
-hoonsquare;3342
-horicoptic;03E9
-horizontalbar;2015
-horncmb;031B
-hotsprings;2668
-house;2302
-hparen;24A3
-hsuperior;02B0
-hturned;0265
-huhiragana;3075
-huiitosquare;3333
-hukatakana;30D5
-hukatakanahalfwidth;FF8C
-hungarumlaut;02DD
-hungarumlautcmb;030B
-hv;0195
-hyphen;002D
-hypheninferior;F6E5
-hyphenmonospace;FF0D
-hyphensmall;FE63
-hyphensuperior;F6E6
-hyphentwo;2010
-i;0069
-iacute;00ED
-iacyrillic;044F
-ibengali;0987
-ibopomofo;3127
-ibreve;012D
-icaron;01D0
-icircle;24D8
-icircumflex;00EE
-icyrillic;0456
-idblgrave;0209
-ideographearthcircle;328F
-ideographfirecircle;328B
-ideographicallianceparen;323F
-ideographiccallparen;323A
-ideographiccentrecircle;32A5
-ideographicclose;3006
-ideographiccomma;3001
-ideographiccommaleft;FF64
-ideographiccongratulationparen;3237
-ideographiccorrectcircle;32A3
-ideographicearthparen;322F
-ideographicenterpriseparen;323D
-ideographicexcellentcircle;329D
-ideographicfestivalparen;3240
-ideographicfinancialcircle;3296
-ideographicfinancialparen;3236
-ideographicfireparen;322B
-ideographichaveparen;3232
-ideographichighcircle;32A4
-ideographiciterationmark;3005
-ideographiclaborcircle;3298
-ideographiclaborparen;3238
-ideographicleftcircle;32A7
-ideographiclowcircle;32A6
-ideographicmedicinecircle;32A9
-ideographicmetalparen;322E
-ideographicmoonparen;322A
-ideographicnameparen;3234
-ideographicperiod;3002
-ideographicprintcircle;329E
-ideographicreachparen;3243
-ideographicrepresentparen;3239
-ideographicresourceparen;323E
-ideographicrightcircle;32A8
-ideographicsecretcircle;3299
-ideographicselfparen;3242
-ideographicsocietyparen;3233
-ideographicspace;3000
-ideographicspecialparen;3235
-ideographicstockparen;3231
-ideographicstudyparen;323B
-ideographicsunparen;3230
-ideographicsuperviseparen;323C
-ideographicwaterparen;322C
-ideographicwoodparen;322D
-ideographiczero;3007
-ideographmetalcircle;328E
-ideographmooncircle;328A
-ideographnamecircle;3294
-ideographsuncircle;3290
-ideographwatercircle;328C
-ideographwoodcircle;328D
-ideva;0907
-idieresis;00EF
-idieresisacute;1E2F
-idieresiscyrillic;04E5
-idotbelow;1ECB
-iebrevecyrillic;04D7
-iecyrillic;0435
-ieungacirclekorean;3275
-ieungaparenkorean;3215
-ieungcirclekorean;3267
-ieungkorean;3147
-ieungparenkorean;3207
-igrave;00EC
-igujarati;0A87
-igurmukhi;0A07
-ihiragana;3044
-ihookabove;1EC9
-iibengali;0988
-iicyrillic;0438
-iideva;0908
-iigujarati;0A88
-iigurmukhi;0A08
-iimatragurmukhi;0A40
-iinvertedbreve;020B
-iishortcyrillic;0439
-iivowelsignbengali;09C0
-iivowelsigndeva;0940
-iivowelsigngujarati;0AC0
-ij;0133
-ikatakana;30A4
-ikatakanahalfwidth;FF72
-ikorean;3163
-ilde;02DC
-iluyhebrew;05AC
-imacron;012B
-imacroncyrillic;04E3
-imageorapproximatelyequal;2253
-imatragurmukhi;0A3F
-imonospace;FF49
-increment;2206
-infinity;221E
-iniarmenian;056B
-integral;222B
-integralbottom;2321
-integralbt;2321
-integralex;F8F5
-integraltop;2320
-integraltp;2320
-intersection;2229
-intisquare;3305
-invbullet;25D8
-invcircle;25D9
-invsmileface;263B
-iocyrillic;0451
-iogonek;012F
-iota;03B9
-iotadieresis;03CA
-iotadieresistonos;0390
-iotalatin;0269
-iotatonos;03AF
-iparen;24A4
-irigurmukhi;0A72
-ismallhiragana;3043
-ismallkatakana;30A3
-ismallkatakanahalfwidth;FF68
-issharbengali;09FA
-istroke;0268
-isuperior;F6ED
-iterationhiragana;309D
-iterationkatakana;30FD
-itilde;0129
-itildebelow;1E2D
-iubopomofo;3129
-iucyrillic;044E
-ivowelsignbengali;09BF
-ivowelsigndeva;093F
-ivowelsigngujarati;0ABF
-izhitsacyrillic;0475
-izhitsadblgravecyrillic;0477
-j;006A
-jaarmenian;0571
-jabengali;099C
-jadeva;091C
-jagujarati;0A9C
-jagurmukhi;0A1C
-jbopomofo;3110
-jcaron;01F0
-jcircle;24D9
-jcircumflex;0135
-jcrossedtail;029D
-jdotlessstroke;025F
-jecyrillic;0458
-jeemarabic;062C
-jeemfinalarabic;FE9E
-jeeminitialarabic;FE9F
-jeemmedialarabic;FEA0
-jeharabic;0698
-jehfinalarabic;FB8B
-jhabengali;099D
-jhadeva;091D
-jhagujarati;0A9D
-jhagurmukhi;0A1D
-jheharmenian;057B
-jis;3004
-jmonospace;FF4A
-jparen;24A5
-jsuperior;02B2
-k;006B
-kabashkircyrillic;04A1
-kabengali;0995
-kacute;1E31
-kacyrillic;043A
-kadescendercyrillic;049B
-kadeva;0915
-kaf;05DB
-kafarabic;0643
-kafdagesh;FB3B
-kafdageshhebrew;FB3B
-kaffinalarabic;FEDA
-kafhebrew;05DB
-kafinitialarabic;FEDB
-kafmedialarabic;FEDC
-kafrafehebrew;FB4D
-kagujarati;0A95
-kagurmukhi;0A15
-kahiragana;304B
-kahookcyrillic;04C4
-kakatakana;30AB
-kakatakanahalfwidth;FF76
-kappa;03BA
-kappasymbolgreek;03F0
-kapyeounmieumkorean;3171
-kapyeounphieuphkorean;3184
-kapyeounpieupkorean;3178
-kapyeounssangpieupkorean;3179
-karoriisquare;330D
-kashidaautoarabic;0640
-kashidaautonosidebearingarabic;0640
-kasmallkatakana;30F5
-kasquare;3384
-kasraarabic;0650
-kasratanarabic;064D
-kastrokecyrillic;049F
-katahiraprolongmarkhalfwidth;FF70
-kaverticalstrokecyrillic;049D
-kbopomofo;310E
-kcalsquare;3389
-kcaron;01E9
-kcedilla;0137
-kcircle;24DA
-kcommaaccent;0137
-kdotbelow;1E33
-keharmenian;0584
-kehiragana;3051
-kekatakana;30B1
-kekatakanahalfwidth;FF79
-kenarmenian;056F
-kesmallkatakana;30F6
-kgreenlandic;0138
-khabengali;0996
-khacyrillic;0445
-khadeva;0916
-khagujarati;0A96
-khagurmukhi;0A16
-khaharabic;062E
-khahfinalarabic;FEA6
-khahinitialarabic;FEA7
-khahmedialarabic;FEA8
-kheicoptic;03E7
-khhadeva;0959
-khhagurmukhi;0A59
-khieukhacirclekorean;3278
-khieukhaparenkorean;3218
-khieukhcirclekorean;326A
-khieukhkorean;314B
-khieukhparenkorean;320A
-khokhaithai;0E02
-khokhonthai;0E05
-khokhuatthai;0E03
-khokhwaithai;0E04
-khomutthai;0E5B
-khook;0199
-khorakhangthai;0E06
-khzsquare;3391
-kihiragana;304D
-kikatakana;30AD
-kikatakanahalfwidth;FF77
-kiroguramusquare;3315
-kiromeetorusquare;3316
-kirosquare;3314
-kiyeokacirclekorean;326E
-kiyeokaparenkorean;320E
-kiyeokcirclekorean;3260
-kiyeokkorean;3131
-kiyeokparenkorean;3200
-kiyeoksioskorean;3133
-kjecyrillic;045C
-klinebelow;1E35
-klsquare;3398
-kmcubedsquare;33A6
-kmonospace;FF4B
-kmsquaredsquare;33A2
-kohiragana;3053
-kohmsquare;33C0
-kokaithai;0E01
-kokatakana;30B3
-kokatakanahalfwidth;FF7A
-kooposquare;331E
-koppacyrillic;0481
-koreanstandardsymbol;327F
-koroniscmb;0343
-kparen;24A6
-kpasquare;33AA
-ksicyrillic;046F
-ktsquare;33CF
-kturned;029E
-kuhiragana;304F
-kukatakana;30AF
-kukatakanahalfwidth;FF78
-kvsquare;33B8
-kwsquare;33BE
-l;006C
-labengali;09B2
-lacute;013A
-ladeva;0932
-lagujarati;0AB2
-lagurmukhi;0A32
-lakkhangyaothai;0E45
-lamaleffinalarabic;FEFC
-lamalefhamzaabovefinalarabic;FEF8
-lamalefhamzaaboveisolatedarabic;FEF7
-lamalefhamzabelowfinalarabic;FEFA
-lamalefhamzabelowisolatedarabic;FEF9
-lamalefisolatedarabic;FEFB
-lamalefmaddaabovefinalarabic;FEF6
-lamalefmaddaaboveisolatedarabic;FEF5
-lamarabic;0644
-lambda;03BB
-lambdastroke;019B
-lamed;05DC
-lameddagesh;FB3C
-lameddageshhebrew;FB3C
-lamedhebrew;05DC
-lamedholam;05DC 05B9
-lamedholamdagesh;05DC 05B9 05BC
-lamedholamdageshhebrew;05DC 05B9 05BC
-lamedholamhebrew;05DC 05B9
-lamfinalarabic;FEDE
-lamhahinitialarabic;FCCA
-laminitialarabic;FEDF
-lamjeeminitialarabic;FCC9
-lamkhahinitialarabic;FCCB
-lamlamhehisolatedarabic;FDF2
-lammedialarabic;FEE0
-lammeemhahinitialarabic;FD88
-lammeeminitialarabic;FCCC
-lammeemjeeminitialarabic;FEDF FEE4 FEA0
-lammeemkhahinitialarabic;FEDF FEE4 FEA8
-largecircle;25EF
-lbar;019A
-lbelt;026C
-lbopomofo;310C
-lcaron;013E
-lcedilla;013C
-lcircle;24DB
-lcircumflexbelow;1E3D
-lcommaaccent;013C
-ldot;0140
-ldotaccent;0140
-ldotbelow;1E37
-ldotbelowmacron;1E39
-leftangleabovecmb;031A
-lefttackbelowcmb;0318
-less;003C
-lessequal;2264
-lessequalorgreater;22DA
-lessmonospace;FF1C
-lessorequivalent;2272
-lessorgreater;2276
-lessoverequal;2266
-lesssmall;FE64
-lezh;026E
-lfblock;258C
-lhookretroflex;026D
-lira;20A4
-liwnarmenian;056C
-lj;01C9
-ljecyrillic;0459
-ll;F6C0
-lladeva;0933
-llagujarati;0AB3
-llinebelow;1E3B
-llladeva;0934
-llvocalicbengali;09E1
-llvocalicdeva;0961
-llvocalicvowelsignbengali;09E3
-llvocalicvowelsigndeva;0963
-lmiddletilde;026B
-lmonospace;FF4C
-lmsquare;33D0
-lochulathai;0E2C
-logicaland;2227
-logicalnot;00AC
-logicalnotreversed;2310
-logicalor;2228
-lolingthai;0E25
-longs;017F
-lowlinecenterline;FE4E
-lowlinecmb;0332
-lowlinedashed;FE4D
-lozenge;25CA
-lparen;24A7
-lslash;0142
-lsquare;2113
-lsuperior;F6EE
-ltshade;2591
-luthai;0E26
-lvocalicbengali;098C
-lvocalicdeva;090C
-lvocalicvowelsignbengali;09E2
-lvocalicvowelsigndeva;0962
-lxsquare;33D3
-m;006D
-mabengali;09AE
-macron;00AF
-macronbelowcmb;0331
-macroncmb;0304
-macronlowmod;02CD
-macronmonospace;FFE3
-macute;1E3F
-madeva;092E
-magujarati;0AAE
-magurmukhi;0A2E
-mahapakhhebrew;05A4
-mahapakhlefthebrew;05A4
-mahiragana;307E
-maichattawalowleftthai;F895
-maichattawalowrightthai;F894
-maichattawathai;0E4B
-maichattawaupperleftthai;F893
-maieklowleftthai;F88C
-maieklowrightthai;F88B
-maiekthai;0E48
-maiekupperleftthai;F88A
-maihanakatleftthai;F884
-maihanakatthai;0E31
-maitaikhuleftthai;F889
-maitaikhuthai;0E47
-maitholowleftthai;F88F
-maitholowrightthai;F88E
-maithothai;0E49
-maithoupperleftthai;F88D
-maitrilowleftthai;F892
-maitrilowrightthai;F891
-maitrithai;0E4A
-maitriupperleftthai;F890
-maiyamokthai;0E46
-makatakana;30DE
-makatakanahalfwidth;FF8F
-male;2642
-mansyonsquare;3347
-maqafhebrew;05BE
-mars;2642
-masoracirclehebrew;05AF
-masquare;3383
-mbopomofo;3107
-mbsquare;33D4
-mcircle;24DC
-mcubedsquare;33A5
-mdotaccent;1E41
-mdotbelow;1E43
-meemarabic;0645
-meemfinalarabic;FEE2
-meeminitialarabic;FEE3
-meemmedialarabic;FEE4
-meemmeeminitialarabic;FCD1
-meemmeemisolatedarabic;FC48
-meetorusquare;334D
-mehiragana;3081
-meizierasquare;337E
-mekatakana;30E1
-mekatakanahalfwidth;FF92
-mem;05DE
-memdagesh;FB3E
-memdageshhebrew;FB3E
-memhebrew;05DE
-menarmenian;0574
-merkhahebrew;05A5
-merkhakefulahebrew;05A6
-merkhakefulalefthebrew;05A6
-merkhalefthebrew;05A5
-mhook;0271
-mhzsquare;3392
-middledotkatakanahalfwidth;FF65
-middot;00B7
-mieumacirclekorean;3272
-mieumaparenkorean;3212
-mieumcirclekorean;3264
-mieumkorean;3141
-mieumpansioskorean;3170
-mieumparenkorean;3204
-mieumpieupkorean;316E
-mieumsioskorean;316F
-mihiragana;307F
-mikatakana;30DF
-mikatakanahalfwidth;FF90
-minus;2212
-minusbelowcmb;0320
-minuscircle;2296
-minusmod;02D7
-minusplus;2213
-minute;2032
-miribaarusquare;334A
-mirisquare;3349
-mlonglegturned;0270
-mlsquare;3396
-mmcubedsquare;33A3
-mmonospace;FF4D
-mmsquaredsquare;339F
-mohiragana;3082
-mohmsquare;33C1
-mokatakana;30E2
-mokatakanahalfwidth;FF93
-molsquare;33D6
-momathai;0E21
-moverssquare;33A7
-moverssquaredsquare;33A8
-mparen;24A8
-mpasquare;33AB
-mssquare;33B3
-msuperior;F6EF
-mturned;026F
-mu;00B5
-mu1;00B5
-muasquare;3382
-muchgreater;226B
-muchless;226A
-mufsquare;338C
-mugreek;03BC
-mugsquare;338D
-muhiragana;3080
-mukatakana;30E0
-mukatakanahalfwidth;FF91
-mulsquare;3395
-multiply;00D7
-mumsquare;339B
-munahhebrew;05A3
-munahlefthebrew;05A3
-musicalnote;266A
-musicalnotedbl;266B
-musicflatsign;266D
-musicsharpsign;266F
-mussquare;33B2
-muvsquare;33B6
-muwsquare;33BC
-mvmegasquare;33B9
-mvsquare;33B7
-mwmegasquare;33BF
-mwsquare;33BD
-n;006E
-nabengali;09A8
-nabla;2207
-nacute;0144
-nadeva;0928
-nagujarati;0AA8
-nagurmukhi;0A28
-nahiragana;306A
-nakatakana;30CA
-nakatakanahalfwidth;FF85
-napostrophe;0149
-nasquare;3381
-nbopomofo;310B
-nbspace;00A0
-ncaron;0148
-ncedilla;0146
-ncircle;24DD
-ncircumflexbelow;1E4B
-ncommaaccent;0146
-ndotaccent;1E45
-ndotbelow;1E47
-nehiragana;306D
-nekatakana;30CD
-nekatakanahalfwidth;FF88
-newsheqelsign;20AA
-nfsquare;338B
-ngabengali;0999
-ngadeva;0919
-ngagujarati;0A99
-ngagurmukhi;0A19
-ngonguthai;0E07
-nhiragana;3093
-nhookleft;0272
-nhookretroflex;0273
-nieunacirclekorean;326F
-nieunaparenkorean;320F
-nieuncieuckorean;3135
-nieuncirclekorean;3261
-nieunhieuhkorean;3136
-nieunkorean;3134
-nieunpansioskorean;3168
-nieunparenkorean;3201
-nieunsioskorean;3167
-nieuntikeutkorean;3166
-nihiragana;306B
-nikatakana;30CB
-nikatakanahalfwidth;FF86
-nikhahitleftthai;F899
-nikhahitthai;0E4D
-nine;0039
-ninearabic;0669
-ninebengali;09EF
-ninecircle;2468
-ninecircleinversesansserif;2792
-ninedeva;096F
-ninegujarati;0AEF
-ninegurmukhi;0A6F
-ninehackarabic;0669
-ninehangzhou;3029
-nineideographicparen;3228
-nineinferior;2089
-ninemonospace;FF19
-nineoldstyle;F739
-nineparen;247C
-nineperiod;2490
-ninepersian;06F9
-nineroman;2178
-ninesuperior;2079
-nineteencircle;2472
-nineteenparen;2486
-nineteenperiod;249A
-ninethai;0E59
-nj;01CC
-njecyrillic;045A
-nkatakana;30F3
-nkatakanahalfwidth;FF9D
-nlegrightlong;019E
-nlinebelow;1E49
-nmonospace;FF4E
-nmsquare;339A
-nnabengali;09A3
-nnadeva;0923
-nnagujarati;0AA3
-nnagurmukhi;0A23
-nnnadeva;0929
-nohiragana;306E
-nokatakana;30CE
-nokatakanahalfwidth;FF89
-nonbreakingspace;00A0
-nonenthai;0E13
-nonuthai;0E19
-noonarabic;0646
-noonfinalarabic;FEE6
-noonghunnaarabic;06BA
-noonghunnafinalarabic;FB9F
-noonhehinitialarabic;FEE7 FEEC
-nooninitialarabic;FEE7
-noonjeeminitialarabic;FCD2
-noonjeemisolatedarabic;FC4B
-noonmedialarabic;FEE8
-noonmeeminitialarabic;FCD5
-noonmeemisolatedarabic;FC4E
-noonnoonfinalarabic;FC8D
-notcontains;220C
-notelement;2209
-notelementof;2209
-notequal;2260
-notgreater;226F
-notgreaternorequal;2271
-notgreaternorless;2279
-notidentical;2262
-notless;226E
-notlessnorequal;2270
-notparallel;2226
-notprecedes;2280
-notsubset;2284
-notsucceeds;2281
-notsuperset;2285
-nowarmenian;0576
-nparen;24A9
-nssquare;33B1
-nsuperior;207F
-ntilde;00F1
-nu;03BD
-nuhiragana;306C
-nukatakana;30CC
-nukatakanahalfwidth;FF87
-nuktabengali;09BC
-nuktadeva;093C
-nuktagujarati;0ABC
-nuktagurmukhi;0A3C
-numbersign;0023
-numbersignmonospace;FF03
-numbersignsmall;FE5F
-numeralsigngreek;0374
-numeralsignlowergreek;0375
-numero;2116
-nun;05E0
-nundagesh;FB40
-nundageshhebrew;FB40
-nunhebrew;05E0
-nvsquare;33B5
-nwsquare;33BB
-nyabengali;099E
-nyadeva;091E
-nyagujarati;0A9E
-nyagurmukhi;0A1E
-o;006F
-oacute;00F3
-oangthai;0E2D
-obarred;0275
-obarredcyrillic;04E9
-obarreddieresiscyrillic;04EB
-obengali;0993
-obopomofo;311B
-obreve;014F
-ocandradeva;0911
-ocandragujarati;0A91
-ocandravowelsigndeva;0949
-ocandravowelsigngujarati;0AC9
-ocaron;01D2
-ocircle;24DE
-ocircumflex;00F4
-ocircumflexacute;1ED1
-ocircumflexdotbelow;1ED9
-ocircumflexgrave;1ED3
-ocircumflexhookabove;1ED5
-ocircumflextilde;1ED7
-ocyrillic;043E
-odblacute;0151
-odblgrave;020D
-odeva;0913
-odieresis;00F6
-odieresiscyrillic;04E7
-odotbelow;1ECD
-oe;0153
-oekorean;315A
-ogonek;02DB
-ogonekcmb;0328
-ograve;00F2
-ogujarati;0A93
-oharmenian;0585
-ohiragana;304A
-ohookabove;1ECF
-ohorn;01A1
-ohornacute;1EDB
-ohorndotbelow;1EE3
-ohorngrave;1EDD
-ohornhookabove;1EDF
-ohorntilde;1EE1
-ohungarumlaut;0151
-oi;01A3
-oinvertedbreve;020F
-okatakana;30AA
-okatakanahalfwidth;FF75
-okorean;3157
-olehebrew;05AB
-omacron;014D
-omacronacute;1E53
-omacrongrave;1E51
-omdeva;0950
-omega;03C9
-omega1;03D6
-omegacyrillic;0461
-omegalatinclosed;0277
-omegaroundcyrillic;047B
-omegatitlocyrillic;047D
-omegatonos;03CE
-omgujarati;0AD0
-omicron;03BF
-omicrontonos;03CC
-omonospace;FF4F
-one;0031
-onearabic;0661
-onebengali;09E7
-onecircle;2460
-onecircleinversesansserif;278A
-onedeva;0967
-onedotenleader;2024
-oneeighth;215B
-onefitted;F6DC
-onegujarati;0AE7
-onegurmukhi;0A67
-onehackarabic;0661
-onehalf;00BD
-onehangzhou;3021
-oneideographicparen;3220
-oneinferior;2081
-onemonospace;FF11
-onenumeratorbengali;09F4
-oneoldstyle;F731
-oneparen;2474
-oneperiod;2488
-onepersian;06F1
-onequarter;00BC
-oneroman;2170
-onesuperior;00B9
-onethai;0E51
-onethird;2153
-oogonek;01EB
-oogonekmacron;01ED
-oogurmukhi;0A13
-oomatragurmukhi;0A4B
-oopen;0254
-oparen;24AA
-openbullet;25E6
-option;2325
-ordfeminine;00AA
-ordmasculine;00BA
-orthogonal;221F
-oshortdeva;0912
-oshortvowelsigndeva;094A
-oslash;00F8
-oslashacute;01FF
-osmallhiragana;3049
-osmallkatakana;30A9
-osmallkatakanahalfwidth;FF6B
-ostrokeacute;01FF
-osuperior;F6F0
-otcyrillic;047F
-otilde;00F5
-otildeacute;1E4D
-otildedieresis;1E4F
-oubopomofo;3121
-overline;203E
-overlinecenterline;FE4A
-overlinecmb;0305
-overlinedashed;FE49
-overlinedblwavy;FE4C
-overlinewavy;FE4B
-overscore;00AF
-ovowelsignbengali;09CB
-ovowelsigndeva;094B
-ovowelsigngujarati;0ACB
-p;0070
-paampssquare;3380
-paasentosquare;332B
-pabengali;09AA
-pacute;1E55
-padeva;092A
-pagedown;21DF
-pageup;21DE
-pagujarati;0AAA
-pagurmukhi;0A2A
-pahiragana;3071
-paiyannoithai;0E2F
-pakatakana;30D1
-palatalizationcyrilliccmb;0484
-palochkacyrillic;04C0
-pansioskorean;317F
-paragraph;00B6
-parallel;2225
-parenleft;0028
-parenleftaltonearabic;FD3E
-parenleftbt;F8ED
-parenleftex;F8EC
-parenleftinferior;208D
-parenleftmonospace;FF08
-parenleftsmall;FE59
-parenleftsuperior;207D
-parenlefttp;F8EB
-parenleftvertical;FE35
-parenright;0029
-parenrightaltonearabic;FD3F
-parenrightbt;F8F8
-parenrightex;F8F7
-parenrightinferior;208E
-parenrightmonospace;FF09
-parenrightsmall;FE5A
-parenrightsuperior;207E
-parenrighttp;F8F6
-parenrightvertical;FE36
-partialdiff;2202
-paseqhebrew;05C0
-pashtahebrew;0599
-pasquare;33A9
-patah;05B7
-patah11;05B7
-patah1d;05B7
-patah2a;05B7
-patahhebrew;05B7
-patahnarrowhebrew;05B7
-patahquarterhebrew;05B7
-patahwidehebrew;05B7
-pazerhebrew;05A1
-pbopomofo;3106
-pcircle;24DF
-pdotaccent;1E57
-pe;05E4
-pecyrillic;043F
-pedagesh;FB44
-pedageshhebrew;FB44
-peezisquare;333B
-pefinaldageshhebrew;FB43
-peharabic;067E
-peharmenian;057A
-pehebrew;05E4
-pehfinalarabic;FB57
-pehinitialarabic;FB58
-pehiragana;307A
-pehmedialarabic;FB59
-pekatakana;30DA
-pemiddlehookcyrillic;04A7
-perafehebrew;FB4E
-percent;0025
-percentarabic;066A
-percentmonospace;FF05
-percentsmall;FE6A
-period;002E
-periodarmenian;0589
-periodcentered;00B7
-periodhalfwidth;FF61
-periodinferior;F6E7
-periodmonospace;FF0E
-periodsmall;FE52
-periodsuperior;F6E8
-perispomenigreekcmb;0342
-perpendicular;22A5
-perthousand;2030
-peseta;20A7
-pfsquare;338A
-phabengali;09AB
-phadeva;092B
-phagujarati;0AAB
-phagurmukhi;0A2B
-phi;03C6
-phi1;03D5
-phieuphacirclekorean;327A
-phieuphaparenkorean;321A
-phieuphcirclekorean;326C
-phieuphkorean;314D
-phieuphparenkorean;320C
-philatin;0278
-phinthuthai;0E3A
-phisymbolgreek;03D5
-phook;01A5
-phophanthai;0E1E
-phophungthai;0E1C
-phosamphaothai;0E20
-pi;03C0
-pieupacirclekorean;3273
-pieupaparenkorean;3213
-pieupcieuckorean;3176
-pieupcirclekorean;3265
-pieupkiyeokkorean;3172
-pieupkorean;3142
-pieupparenkorean;3205
-pieupsioskiyeokkorean;3174
-pieupsioskorean;3144
-pieupsiostikeutkorean;3175
-pieupthieuthkorean;3177
-pieuptikeutkorean;3173
-pihiragana;3074
-pikatakana;30D4
-pisymbolgreek;03D6
-piwrarmenian;0583
-plus;002B
-plusbelowcmb;031F
-pluscircle;2295
-plusminus;00B1
-plusmod;02D6
-plusmonospace;FF0B
-plussmall;FE62
-plussuperior;207A
-pmonospace;FF50
-pmsquare;33D8
-pohiragana;307D
-pointingindexdownwhite;261F
-pointingindexleftwhite;261C
-pointingindexrightwhite;261E
-pointingindexupwhite;261D
-pokatakana;30DD
-poplathai;0E1B
-postalmark;3012
-postalmarkface;3020
-pparen;24AB
-precedes;227A
-prescription;211E
-primemod;02B9
-primereversed;2035
-product;220F
-projective;2305
-prolongedkana;30FC
-propellor;2318
-propersubset;2282
-propersuperset;2283
-proportion;2237
-proportional;221D
-psi;03C8
-psicyrillic;0471
-psilipneumatacyrilliccmb;0486
-pssquare;33B0
-puhiragana;3077
-pukatakana;30D7
-pvsquare;33B4
-pwsquare;33BA
-q;0071
-qadeva;0958
-qadmahebrew;05A8
-qafarabic;0642
-qaffinalarabic;FED6
-qafinitialarabic;FED7
-qafmedialarabic;FED8
-qamats;05B8
-qamats10;05B8
-qamats1a;05B8
-qamats1c;05B8
-qamats27;05B8
-qamats29;05B8
-qamats33;05B8
-qamatsde;05B8
-qamatshebrew;05B8
-qamatsnarrowhebrew;05B8
-qamatsqatanhebrew;05B8
-qamatsqatannarrowhebrew;05B8
-qamatsqatanquarterhebrew;05B8
-qamatsqatanwidehebrew;05B8
-qamatsquarterhebrew;05B8
-qamatswidehebrew;05B8
-qarneyparahebrew;059F
-qbopomofo;3111
-qcircle;24E0
-qhook;02A0
-qmonospace;FF51
-qof;05E7
-qofdagesh;FB47
-qofdageshhebrew;FB47
-qofhatafpatah;05E7 05B2
-qofhatafpatahhebrew;05E7 05B2
-qofhatafsegol;05E7 05B1
-qofhatafsegolhebrew;05E7 05B1
-qofhebrew;05E7
-qofhiriq;05E7 05B4
-qofhiriqhebrew;05E7 05B4
-qofholam;05E7 05B9
-qofholamhebrew;05E7 05B9
-qofpatah;05E7 05B7
-qofpatahhebrew;05E7 05B7
-qofqamats;05E7 05B8
-qofqamatshebrew;05E7 05B8
-qofqubuts;05E7 05BB
-qofqubutshebrew;05E7 05BB
-qofsegol;05E7 05B6
-qofsegolhebrew;05E7 05B6
-qofsheva;05E7 05B0
-qofshevahebrew;05E7 05B0
-qoftsere;05E7 05B5
-qoftserehebrew;05E7 05B5
-qparen;24AC
-quarternote;2669
-qubuts;05BB
-qubuts18;05BB
-qubuts25;05BB
-qubuts31;05BB
-qubutshebrew;05BB
-qubutsnarrowhebrew;05BB
-qubutsquarterhebrew;05BB
-qubutswidehebrew;05BB
-question;003F
-questionarabic;061F
-questionarmenian;055E
-questiondown;00BF
-questiondownsmall;F7BF
-questiongreek;037E
-questionmonospace;FF1F
-questionsmall;F73F
-quotedbl;0022
-quotedblbase;201E
-quotedblleft;201C
-quotedblmonospace;FF02
-quotedblprime;301E
-quotedblprimereversed;301D
-quotedblright;201D
-quoteleft;2018
-quoteleftreversed;201B
-quotereversed;201B
-quoteright;2019
-quoterightn;0149
-quotesinglbase;201A
-quotesingle;0027
-quotesinglemonospace;FF07
-r;0072
-raarmenian;057C
-rabengali;09B0
-racute;0155
-radeva;0930
-radical;221A
-radicalex;F8E5
-radoverssquare;33AE
-radoverssquaredsquare;33AF
-radsquare;33AD
-rafe;05BF
-rafehebrew;05BF
-ragujarati;0AB0
-ragurmukhi;0A30
-rahiragana;3089
-rakatakana;30E9
-rakatakanahalfwidth;FF97
-ralowerdiagonalbengali;09F1
-ramiddlediagonalbengali;09F0
-ramshorn;0264
-ratio;2236
-rbopomofo;3116
-rcaron;0159
-rcedilla;0157
-rcircle;24E1
-rcommaaccent;0157
-rdblgrave;0211
-rdotaccent;1E59
-rdotbelow;1E5B
-rdotbelowmacron;1E5D
-referencemark;203B
-reflexsubset;2286
-reflexsuperset;2287
-registered;00AE
-registersans;F8E8
-registerserif;F6DA
-reharabic;0631
-reharmenian;0580
-rehfinalarabic;FEAE
-rehiragana;308C
-rehyehaleflamarabic;0631 FEF3 FE8E 0644
-rekatakana;30EC
-rekatakanahalfwidth;FF9A
-resh;05E8
-reshdageshhebrew;FB48
-reshhatafpatah;05E8 05B2
-reshhatafpatahhebrew;05E8 05B2
-reshhatafsegol;05E8 05B1
-reshhatafsegolhebrew;05E8 05B1
-reshhebrew;05E8
-reshhiriq;05E8 05B4
-reshhiriqhebrew;05E8 05B4
-reshholam;05E8 05B9
-reshholamhebrew;05E8 05B9
-reshpatah;05E8 05B7
-reshpatahhebrew;05E8 05B7
-reshqamats;05E8 05B8
-reshqamatshebrew;05E8 05B8
-reshqubuts;05E8 05BB
-reshqubutshebrew;05E8 05BB
-reshsegol;05E8 05B6
-reshsegolhebrew;05E8 05B6
-reshsheva;05E8 05B0
-reshshevahebrew;05E8 05B0
-reshtsere;05E8 05B5
-reshtserehebrew;05E8 05B5
-reversedtilde;223D
-reviahebrew;0597
-reviamugrashhebrew;0597
-revlogicalnot;2310
-rfishhook;027E
-rfishhookreversed;027F
-rhabengali;09DD
-rhadeva;095D
-rho;03C1
-rhook;027D
-rhookturned;027B
-rhookturnedsuperior;02B5
-rhosymbolgreek;03F1
-rhotichookmod;02DE
-rieulacirclekorean;3271
-rieulaparenkorean;3211
-rieulcirclekorean;3263
-rieulhieuhkorean;3140
-rieulkiyeokkorean;313A
-rieulkiyeoksioskorean;3169
-rieulkorean;3139
-rieulmieumkorean;313B
-rieulpansioskorean;316C
-rieulparenkorean;3203
-rieulphieuphkorean;313F
-rieulpieupkorean;313C
-rieulpieupsioskorean;316B
-rieulsioskorean;313D
-rieulthieuthkorean;313E
-rieultikeutkorean;316A
-rieulyeorinhieuhkorean;316D
-rightangle;221F
-righttackbelowcmb;0319
-righttriangle;22BF
-rihiragana;308A
-rikatakana;30EA
-rikatakanahalfwidth;FF98
-ring;02DA
-ringbelowcmb;0325
-ringcmb;030A
-ringhalfleft;02BF
-ringhalfleftarmenian;0559
-ringhalfleftbelowcmb;031C
-ringhalfleftcentered;02D3
-ringhalfright;02BE
-ringhalfrightbelowcmb;0339
-ringhalfrightcentered;02D2
-rinvertedbreve;0213
-rittorusquare;3351
-rlinebelow;1E5F
-rlongleg;027C
-rlonglegturned;027A
-rmonospace;FF52
-rohiragana;308D
-rokatakana;30ED
-rokatakanahalfwidth;FF9B
-roruathai;0E23
-rparen;24AD
-rrabengali;09DC
-rradeva;0931
-rragurmukhi;0A5C
-rreharabic;0691
-rrehfinalarabic;FB8D
-rrvocalicbengali;09E0
-rrvocalicdeva;0960
-rrvocalicgujarati;0AE0
-rrvocalicvowelsignbengali;09C4
-rrvocalicvowelsigndeva;0944
-rrvocalicvowelsigngujarati;0AC4
-rsuperior;F6F1
-rtblock;2590
-rturned;0279
-rturnedsuperior;02B4
-ruhiragana;308B
-rukatakana;30EB
-rukatakanahalfwidth;FF99
-rupeemarkbengali;09F2
-rupeesignbengali;09F3
-rupiah;F6DD
-ruthai;0E24
-rvocalicbengali;098B
-rvocalicdeva;090B
-rvocalicgujarati;0A8B
-rvocalicvowelsignbengali;09C3
-rvocalicvowelsigndeva;0943
-rvocalicvowelsigngujarati;0AC3
-s;0073
-sabengali;09B8
-sacute;015B
-sacutedotaccent;1E65
-sadarabic;0635
-sadeva;0938
-sadfinalarabic;FEBA
-sadinitialarabic;FEBB
-sadmedialarabic;FEBC
-sagujarati;0AB8
-sagurmukhi;0A38
-sahiragana;3055
-sakatakana;30B5
-sakatakanahalfwidth;FF7B
-sallallahoualayhewasallamarabic;FDFA
-samekh;05E1
-samekhdagesh;FB41
-samekhdageshhebrew;FB41
-samekhhebrew;05E1
-saraaathai;0E32
-saraaethai;0E41
-saraaimaimalaithai;0E44
-saraaimaimuanthai;0E43
-saraamthai;0E33
-saraathai;0E30
-saraethai;0E40
-saraiileftthai;F886
-saraiithai;0E35
-saraileftthai;F885
-saraithai;0E34
-saraothai;0E42
-saraueeleftthai;F888
-saraueethai;0E37
-saraueleftthai;F887
-sarauethai;0E36
-sarauthai;0E38
-sarauuthai;0E39
-sbopomofo;3119
-scaron;0161
-scarondotaccent;1E67
-scedilla;015F
-schwa;0259
-schwacyrillic;04D9
-schwadieresiscyrillic;04DB
-schwahook;025A
-scircle;24E2
-scircumflex;015D
-scommaaccent;0219
-sdotaccent;1E61
-sdotbelow;1E63
-sdotbelowdotaccent;1E69
-seagullbelowcmb;033C
-second;2033
-secondtonechinese;02CA
-section;00A7
-seenarabic;0633
-seenfinalarabic;FEB2
-seeninitialarabic;FEB3
-seenmedialarabic;FEB4
-segol;05B6
-segol13;05B6
-segol1f;05B6
-segol2c;05B6
-segolhebrew;05B6
-segolnarrowhebrew;05B6
-segolquarterhebrew;05B6
-segoltahebrew;0592
-segolwidehebrew;05B6
-seharmenian;057D
-sehiragana;305B
-sekatakana;30BB
-sekatakanahalfwidth;FF7E
-semicolon;003B
-semicolonarabic;061B
-semicolonmonospace;FF1B
-semicolonsmall;FE54
-semivoicedmarkkana;309C
-semivoicedmarkkanahalfwidth;FF9F
-sentisquare;3322
-sentosquare;3323
-seven;0037
-sevenarabic;0667
-sevenbengali;09ED
-sevencircle;2466
-sevencircleinversesansserif;2790
-sevendeva;096D
-seveneighths;215E
-sevengujarati;0AED
-sevengurmukhi;0A6D
-sevenhackarabic;0667
-sevenhangzhou;3027
-sevenideographicparen;3226
-seveninferior;2087
-sevenmonospace;FF17
-sevenoldstyle;F737
-sevenparen;247A
-sevenperiod;248E
-sevenpersian;06F7
-sevenroman;2176
-sevensuperior;2077
-seventeencircle;2470
-seventeenparen;2484
-seventeenperiod;2498
-seventhai;0E57
-sfthyphen;00AD
-shaarmenian;0577
-shabengali;09B6
-shacyrillic;0448
-shaddaarabic;0651
-shaddadammaarabic;FC61
-shaddadammatanarabic;FC5E
-shaddafathaarabic;FC60
-shaddafathatanarabic;0651 064B
-shaddakasraarabic;FC62
-shaddakasratanarabic;FC5F
-shade;2592
-shadedark;2593
-shadelight;2591
-shademedium;2592
-shadeva;0936
-shagujarati;0AB6
-shagurmukhi;0A36
-shalshelethebrew;0593
-shbopomofo;3115
-shchacyrillic;0449
-sheenarabic;0634
-sheenfinalarabic;FEB6
-sheeninitialarabic;FEB7
-sheenmedialarabic;FEB8
-sheicoptic;03E3
-sheqel;20AA
-sheqelhebrew;20AA
-sheva;05B0
-sheva115;05B0
-sheva15;05B0
-sheva22;05B0
-sheva2e;05B0
-shevahebrew;05B0
-shevanarrowhebrew;05B0
-shevaquarterhebrew;05B0
-shevawidehebrew;05B0
-shhacyrillic;04BB
-shimacoptic;03ED
-shin;05E9
-shindagesh;FB49
-shindageshhebrew;FB49
-shindageshshindot;FB2C
-shindageshshindothebrew;FB2C
-shindageshsindot;FB2D
-shindageshsindothebrew;FB2D
-shindothebrew;05C1
-shinhebrew;05E9
-shinshindot;FB2A
-shinshindothebrew;FB2A
-shinsindot;FB2B
-shinsindothebrew;FB2B
-shook;0282
-sigma;03C3
-sigma1;03C2
-sigmafinal;03C2
-sigmalunatesymbolgreek;03F2
-sihiragana;3057
-sikatakana;30B7
-sikatakanahalfwidth;FF7C
-siluqhebrew;05BD
-siluqlefthebrew;05BD
-similar;223C
-sindothebrew;05C2
-siosacirclekorean;3274
-siosaparenkorean;3214
-sioscieuckorean;317E
-sioscirclekorean;3266
-sioskiyeokkorean;317A
-sioskorean;3145
-siosnieunkorean;317B
-siosparenkorean;3206
-siospieupkorean;317D
-siostikeutkorean;317C
-six;0036
-sixarabic;0666
-sixbengali;09EC
-sixcircle;2465
-sixcircleinversesansserif;278F
-sixdeva;096C
-sixgujarati;0AEC
-sixgurmukhi;0A6C
-sixhackarabic;0666
-sixhangzhou;3026
-sixideographicparen;3225
-sixinferior;2086
-sixmonospace;FF16
-sixoldstyle;F736
-sixparen;2479
-sixperiod;248D
-sixpersian;06F6
-sixroman;2175
-sixsuperior;2076
-sixteencircle;246F
-sixteencurrencydenominatorbengali;09F9
-sixteenparen;2483
-sixteenperiod;2497
-sixthai;0E56
-slash;002F
-slashmonospace;FF0F
-slong;017F
-slongdotaccent;1E9B
-smileface;263A
-smonospace;FF53
-sofpasuqhebrew;05C3
-softhyphen;00AD
-softsigncyrillic;044C
-sohiragana;305D
-sokatakana;30BD
-sokatakanahalfwidth;FF7F
-soliduslongoverlaycmb;0338
-solidusshortoverlaycmb;0337
-sorusithai;0E29
-sosalathai;0E28
-sosothai;0E0B
-sosuathai;0E2A
-space;0020
-spacehackarabic;0020
-spade;2660
-spadesuitblack;2660
-spadesuitwhite;2664
-sparen;24AE
-squarebelowcmb;033B
-squarecc;33C4
-squarecm;339D
-squarediagonalcrosshatchfill;25A9
-squarehorizontalfill;25A4
-squarekg;338F
-squarekm;339E
-squarekmcapital;33CE
-squareln;33D1
-squarelog;33D2
-squaremg;338E
-squaremil;33D5
-squaremm;339C
-squaremsquared;33A1
-squareorthogonalcrosshatchfill;25A6
-squareupperlefttolowerrightfill;25A7
-squareupperrighttolowerleftfill;25A8
-squareverticalfill;25A5
-squarewhitewithsmallblack;25A3
-srsquare;33DB
-ssabengali;09B7
-ssadeva;0937
-ssagujarati;0AB7
-ssangcieuckorean;3149
-ssanghieuhkorean;3185
-ssangieungkorean;3180
-ssangkiyeokkorean;3132
-ssangnieunkorean;3165
-ssangpieupkorean;3143
-ssangsioskorean;3146
-ssangtikeutkorean;3138
-ssuperior;F6F2
-sterling;00A3
-sterlingmonospace;FFE1
-strokelongoverlaycmb;0336
-strokeshortoverlaycmb;0335
-subset;2282
-subsetnotequal;228A
-subsetorequal;2286
-succeeds;227B
-suchthat;220B
-suhiragana;3059
-sukatakana;30B9
-sukatakanahalfwidth;FF7D
-sukunarabic;0652
-summation;2211
-sun;263C
-superset;2283
-supersetnotequal;228B
-supersetorequal;2287
-svsquare;33DC
-syouwaerasquare;337C
-t;0074
-tabengali;09A4
-tackdown;22A4
-tackleft;22A3
-tadeva;0924
-tagujarati;0AA4
-tagurmukhi;0A24
-taharabic;0637
-tahfinalarabic;FEC2
-tahinitialarabic;FEC3
-tahiragana;305F
-tahmedialarabic;FEC4
-taisyouerasquare;337D
-takatakana;30BF
-takatakanahalfwidth;FF80
-tatweelarabic;0640
-tau;03C4
-tav;05EA
-tavdages;FB4A
-tavdagesh;FB4A
-tavdageshhebrew;FB4A
-tavhebrew;05EA
-tbar;0167
-tbopomofo;310A
-tcaron;0165
-tccurl;02A8
-tcedilla;0163
-tcheharabic;0686
-tchehfinalarabic;FB7B
-tchehinitialarabic;FB7C
-tchehmedialarabic;FB7D
-tchehmeeminitialarabic;FB7C FEE4
-tcircle;24E3
-tcircumflexbelow;1E71
-tcommaaccent;0163
-tdieresis;1E97
-tdotaccent;1E6B
-tdotbelow;1E6D
-tecyrillic;0442
-tedescendercyrillic;04AD
-teharabic;062A
-tehfinalarabic;FE96
-tehhahinitialarabic;FCA2
-tehhahisolatedarabic;FC0C
-tehinitialarabic;FE97
-tehiragana;3066
-tehjeeminitialarabic;FCA1
-tehjeemisolatedarabic;FC0B
-tehmarbutaarabic;0629
-tehmarbutafinalarabic;FE94
-tehmedialarabic;FE98
-tehmeeminitialarabic;FCA4
-tehmeemisolatedarabic;FC0E
-tehnoonfinalarabic;FC73
-tekatakana;30C6
-tekatakanahalfwidth;FF83
-telephone;2121
-telephoneblack;260E
-telishagedolahebrew;05A0
-telishaqetanahebrew;05A9
-tencircle;2469
-tenideographicparen;3229
-tenparen;247D
-tenperiod;2491
-tenroman;2179
-tesh;02A7
-tet;05D8
-tetdagesh;FB38
-tetdageshhebrew;FB38
-tethebrew;05D8
-tetsecyrillic;04B5
-tevirhebrew;059B
-tevirlefthebrew;059B
-thabengali;09A5
-thadeva;0925
-thagujarati;0AA5
-thagurmukhi;0A25
-thalarabic;0630
-thalfinalarabic;FEAC
-thanthakhatlowleftthai;F898
-thanthakhatlowrightthai;F897
-thanthakhatthai;0E4C
-thanthakhatupperleftthai;F896
-theharabic;062B
-thehfinalarabic;FE9A
-thehinitialarabic;FE9B
-thehmedialarabic;FE9C
-thereexists;2203
-therefore;2234
-theta;03B8
-theta1;03D1
-thetasymbolgreek;03D1
-thieuthacirclekorean;3279
-thieuthaparenkorean;3219
-thieuthcirclekorean;326B
-thieuthkorean;314C
-thieuthparenkorean;320B
-thirteencircle;246C
-thirteenparen;2480
-thirteenperiod;2494
-thonangmonthothai;0E11
-thook;01AD
-thophuthaothai;0E12
-thorn;00FE
-thothahanthai;0E17
-thothanthai;0E10
-thothongthai;0E18
-thothungthai;0E16
-thousandcyrillic;0482
-thousandsseparatorarabic;066C
-thousandsseparatorpersian;066C
-three;0033
-threearabic;0663
-threebengali;09E9
-threecircle;2462
-threecircleinversesansserif;278C
-threedeva;0969
-threeeighths;215C
-threegujarati;0AE9
-threegurmukhi;0A69
-threehackarabic;0663
-threehangzhou;3023
-threeideographicparen;3222
-threeinferior;2083
-threemonospace;FF13
-threenumeratorbengali;09F6
-threeoldstyle;F733
-threeparen;2476
-threeperiod;248A
-threepersian;06F3
-threequarters;00BE
-threequartersemdash;F6DE
-threeroman;2172
-threesuperior;00B3
-threethai;0E53
-thzsquare;3394
-tihiragana;3061
-tikatakana;30C1
-tikatakanahalfwidth;FF81
-tikeutacirclekorean;3270
-tikeutaparenkorean;3210
-tikeutcirclekorean;3262
-tikeutkorean;3137
-tikeutparenkorean;3202
-tilde;02DC
-tildebelowcmb;0330
-tildecmb;0303
-tildecomb;0303
-tildedoublecmb;0360
-tildeoperator;223C
-tildeoverlaycmb;0334
-tildeverticalcmb;033E
-timescircle;2297
-tipehahebrew;0596
-tipehalefthebrew;0596
-tippigurmukhi;0A70
-titlocyrilliccmb;0483
-tiwnarmenian;057F
-tlinebelow;1E6F
-tmonospace;FF54
-toarmenian;0569
-tohiragana;3068
-tokatakana;30C8
-tokatakanahalfwidth;FF84
-tonebarextrahighmod;02E5
-tonebarextralowmod;02E9
-tonebarhighmod;02E6
-tonebarlowmod;02E8
-tonebarmidmod;02E7
-tonefive;01BD
-tonesix;0185
-tonetwo;01A8
-tonos;0384
-tonsquare;3327
-topatakthai;0E0F
-tortoiseshellbracketleft;3014
-tortoiseshellbracketleftsmall;FE5D
-tortoiseshellbracketleftvertical;FE39
-tortoiseshellbracketright;3015
-tortoiseshellbracketrightsmall;FE5E
-tortoiseshellbracketrightvertical;FE3A
-totaothai;0E15
-tpalatalhook;01AB
-tparen;24AF
-trademark;2122
-trademarksans;F8EA
-trademarkserif;F6DB
-tretroflexhook;0288
-triagdn;25BC
-triaglf;25C4
-triagrt;25BA
-triagup;25B2
-ts;02A6
-tsadi;05E6
-tsadidagesh;FB46
-tsadidageshhebrew;FB46
-tsadihebrew;05E6
-tsecyrillic;0446
-tsere;05B5
-tsere12;05B5
-tsere1e;05B5
-tsere2b;05B5
-tserehebrew;05B5
-tserenarrowhebrew;05B5
-tserequarterhebrew;05B5
-tserewidehebrew;05B5
-tshecyrillic;045B
-tsuperior;F6F3
-ttabengali;099F
-ttadeva;091F
-ttagujarati;0A9F
-ttagurmukhi;0A1F
-tteharabic;0679
-ttehfinalarabic;FB67
-ttehinitialarabic;FB68
-ttehmedialarabic;FB69
-tthabengali;09A0
-tthadeva;0920
-tthagujarati;0AA0
-tthagurmukhi;0A20
-tturned;0287
-tuhiragana;3064
-tukatakana;30C4
-tukatakanahalfwidth;FF82
-tusmallhiragana;3063
-tusmallkatakana;30C3
-tusmallkatakanahalfwidth;FF6F
-twelvecircle;246B
-twelveparen;247F
-twelveperiod;2493
-twelveroman;217B
-twentycircle;2473
-twentyhangzhou;5344
-twentyparen;2487
-twentyperiod;249B
-two;0032
-twoarabic;0662
-twobengali;09E8
-twocircle;2461
-twocircleinversesansserif;278B
-twodeva;0968
-twodotenleader;2025
-twodotleader;2025
-twodotleadervertical;FE30
-twogujarati;0AE8
-twogurmukhi;0A68
-twohackarabic;0662
-twohangzhou;3022
-twoideographicparen;3221
-twoinferior;2082
-twomonospace;FF12
-twonumeratorbengali;09F5
-twooldstyle;F732
-twoparen;2475
-twoperiod;2489
-twopersian;06F2
-tworoman;2171
-twostroke;01BB
-twosuperior;00B2
-twothai;0E52
-twothirds;2154
-u;0075
-uacute;00FA
-ubar;0289
-ubengali;0989
-ubopomofo;3128
-ubreve;016D
-ucaron;01D4
-ucircle;24E4
-ucircumflex;00FB
-ucircumflexbelow;1E77
-ucyrillic;0443
-udattadeva;0951
-udblacute;0171
-udblgrave;0215
-udeva;0909
-udieresis;00FC
-udieresisacute;01D8
-udieresisbelow;1E73
-udieresiscaron;01DA
-udieresiscyrillic;04F1
-udieresisgrave;01DC
-udieresismacron;01D6
-udotbelow;1EE5
-ugrave;00F9
-ugujarati;0A89
-ugurmukhi;0A09
-uhiragana;3046
-uhookabove;1EE7
-uhorn;01B0
-uhornacute;1EE9
-uhorndotbelow;1EF1
-uhorngrave;1EEB
-uhornhookabove;1EED
-uhorntilde;1EEF
-uhungarumlaut;0171
-uhungarumlautcyrillic;04F3
-uinvertedbreve;0217
-ukatakana;30A6
-ukatakanahalfwidth;FF73
-ukcyrillic;0479
-ukorean;315C
-umacron;016B
-umacroncyrillic;04EF
-umacrondieresis;1E7B
-umatragurmukhi;0A41
-umonospace;FF55
-underscore;005F
-underscoredbl;2017
-underscoremonospace;FF3F
-underscorevertical;FE33
-underscorewavy;FE4F
-union;222A
-universal;2200
-uogonek;0173
-uparen;24B0
-upblock;2580
-upperdothebrew;05C4
-upsilon;03C5
-upsilondieresis;03CB
-upsilondieresistonos;03B0
-upsilonlatin;028A
-upsilontonos;03CD
-uptackbelowcmb;031D
-uptackmod;02D4
-uragurmukhi;0A73
-uring;016F
-ushortcyrillic;045E
-usmallhiragana;3045
-usmallkatakana;30A5
-usmallkatakanahalfwidth;FF69
-ustraightcyrillic;04AF
-ustraightstrokecyrillic;04B1
-utilde;0169
-utildeacute;1E79
-utildebelow;1E75
-uubengali;098A
-uudeva;090A
-uugujarati;0A8A
-uugurmukhi;0A0A
-uumatragurmukhi;0A42
-uuvowelsignbengali;09C2
-uuvowelsigndeva;0942
-uuvowelsigngujarati;0AC2
-uvowelsignbengali;09C1
-uvowelsigndeva;0941
-uvowelsigngujarati;0AC1
-v;0076
-vadeva;0935
-vagujarati;0AB5
-vagurmukhi;0A35
-vakatakana;30F7
-vav;05D5
-vavdagesh;FB35
-vavdagesh65;FB35
-vavdageshhebrew;FB35
-vavhebrew;05D5
-vavholam;FB4B
-vavholamhebrew;FB4B
-vavvavhebrew;05F0
-vavyodhebrew;05F1
-vcircle;24E5
-vdotbelow;1E7F
-vecyrillic;0432
-veharabic;06A4
-vehfinalarabic;FB6B
-vehinitialarabic;FB6C
-vehmedialarabic;FB6D
-vekatakana;30F9
-venus;2640
-verticalbar;007C
-verticallineabovecmb;030D
-verticallinebelowcmb;0329
-verticallinelowmod;02CC
-verticallinemod;02C8
-vewarmenian;057E
-vhook;028B
-vikatakana;30F8
-viramabengali;09CD
-viramadeva;094D
-viramagujarati;0ACD
-visargabengali;0983
-visargadeva;0903
-visargagujarati;0A83
-vmonospace;FF56
-voarmenian;0578
-voicediterationhiragana;309E
-voicediterationkatakana;30FE
-voicedmarkkana;309B
-voicedmarkkanahalfwidth;FF9E
-vokatakana;30FA
-vparen;24B1
-vtilde;1E7D
-vturned;028C
-vuhiragana;3094
-vukatakana;30F4
-w;0077
-wacute;1E83
-waekorean;3159
-wahiragana;308F
-wakatakana;30EF
-wakatakanahalfwidth;FF9C
-wakorean;3158
-wasmallhiragana;308E
-wasmallkatakana;30EE
-wattosquare;3357
-wavedash;301C
-wavyunderscorevertical;FE34
-wawarabic;0648
-wawfinalarabic;FEEE
-wawhamzaabovearabic;0624
-wawhamzaabovefinalarabic;FE86
-wbsquare;33DD
-wcircle;24E6
-wcircumflex;0175
-wdieresis;1E85
-wdotaccent;1E87
-wdotbelow;1E89
-wehiragana;3091
-weierstrass;2118
-wekatakana;30F1
-wekorean;315E
-weokorean;315D
-wgrave;1E81
-whitebullet;25E6
-whitecircle;25CB
-whitecircleinverse;25D9
-whitecornerbracketleft;300E
-whitecornerbracketleftvertical;FE43
-whitecornerbracketright;300F
-whitecornerbracketrightvertical;FE44
-whitediamond;25C7
-whitediamondcontainingblacksmalldiamond;25C8
-whitedownpointingsmalltriangle;25BF
-whitedownpointingtriangle;25BD
-whiteleftpointingsmalltriangle;25C3
-whiteleftpointingtriangle;25C1
-whitelenticularbracketleft;3016
-whitelenticularbracketright;3017
-whiterightpointingsmalltriangle;25B9
-whiterightpointingtriangle;25B7
-whitesmallsquare;25AB
-whitesmilingface;263A
-whitesquare;25A1
-whitestar;2606
-whitetelephone;260F
-whitetortoiseshellbracketleft;3018
-whitetortoiseshellbracketright;3019
-whiteuppointingsmalltriangle;25B5
-whiteuppointingtriangle;25B3
-wihiragana;3090
-wikatakana;30F0
-wikorean;315F
-wmonospace;FF57
-wohiragana;3092
-wokatakana;30F2
-wokatakanahalfwidth;FF66
-won;20A9
-wonmonospace;FFE6
-wowaenthai;0E27
-wparen;24B2
-wring;1E98
-wsuperior;02B7
-wturned;028D
-wynn;01BF
-x;0078
-xabovecmb;033D
-xbopomofo;3112
-xcircle;24E7
-xdieresis;1E8D
-xdotaccent;1E8B
-xeharmenian;056D
-xi;03BE
-xmonospace;FF58
-xparen;24B3
-xsuperior;02E3
-y;0079
-yaadosquare;334E
-yabengali;09AF
-yacute;00FD
-yadeva;092F
-yaekorean;3152
-yagujarati;0AAF
-yagurmukhi;0A2F
-yahiragana;3084
-yakatakana;30E4
-yakatakanahalfwidth;FF94
-yakorean;3151
-yamakkanthai;0E4E
-yasmallhiragana;3083
-yasmallkatakana;30E3
-yasmallkatakanahalfwidth;FF6C
-yatcyrillic;0463
-ycircle;24E8
-ycircumflex;0177
-ydieresis;00FF
-ydotaccent;1E8F
-ydotbelow;1EF5
-yeharabic;064A
-yehbarreearabic;06D2
-yehbarreefinalarabic;FBAF
-yehfinalarabic;FEF2
-yehhamzaabovearabic;0626
-yehhamzaabovefinalarabic;FE8A
-yehhamzaaboveinitialarabic;FE8B
-yehhamzaabovemedialarabic;FE8C
-yehinitialarabic;FEF3
-yehmedialarabic;FEF4
-yehmeeminitialarabic;FCDD
-yehmeemisolatedarabic;FC58
-yehnoonfinalarabic;FC94
-yehthreedotsbelowarabic;06D1
-yekorean;3156
-yen;00A5
-yenmonospace;FFE5
-yeokorean;3155
-yeorinhieuhkorean;3186
-yerahbenyomohebrew;05AA
-yerahbenyomolefthebrew;05AA
-yericyrillic;044B
-yerudieresiscyrillic;04F9
-yesieungkorean;3181
-yesieungpansioskorean;3183
-yesieungsioskorean;3182
-yetivhebrew;059A
-ygrave;1EF3
-yhook;01B4
-yhookabove;1EF7
-yiarmenian;0575
-yicyrillic;0457
-yikorean;3162
-yinyang;262F
-yiwnarmenian;0582
-ymonospace;FF59
-yod;05D9
-yoddagesh;FB39
-yoddageshhebrew;FB39
-yodhebrew;05D9
-yodyodhebrew;05F2
-yodyodpatahhebrew;FB1F
-yohiragana;3088
-yoikorean;3189
-yokatakana;30E8
-yokatakanahalfwidth;FF96
-yokorean;315B
-yosmallhiragana;3087
-yosmallkatakana;30E7
-yosmallkatakanahalfwidth;FF6E
-yotgreek;03F3
-yoyaekorean;3188
-yoyakorean;3187
-yoyakthai;0E22
-yoyingthai;0E0D
-yparen;24B4
-ypogegrammeni;037A
-ypogegrammenigreekcmb;0345
-yr;01A6
-yring;1E99
-ysuperior;02B8
-ytilde;1EF9
-yturned;028E
-yuhiragana;3086
-yuikorean;318C
-yukatakana;30E6
-yukatakanahalfwidth;FF95
-yukorean;3160
-yusbigcyrillic;046B
-yusbigiotifiedcyrillic;046D
-yuslittlecyrillic;0467
-yuslittleiotifiedcyrillic;0469
-yusmallhiragana;3085
-yusmallkatakana;30E5
-yusmallkatakanahalfwidth;FF6D
-yuyekorean;318B
-yuyeokorean;318A
-yyabengali;09DF
-yyadeva;095F
-z;007A
-zaarmenian;0566
-zacute;017A
-zadeva;095B
-zagurmukhi;0A5B
-zaharabic;0638
-zahfinalarabic;FEC6
-zahinitialarabic;FEC7
-zahiragana;3056
-zahmedialarabic;FEC8
-zainarabic;0632
-zainfinalarabic;FEB0
-zakatakana;30B6
-zaqefgadolhebrew;0595
-zaqefqatanhebrew;0594
-zarqahebrew;0598
-zayin;05D6
-zayindagesh;FB36
-zayindageshhebrew;FB36
-zayinhebrew;05D6
-zbopomofo;3117
-zcaron;017E
-zcircle;24E9
-zcircumflex;1E91
-zcurl;0291
-zdot;017C
-zdotaccent;017C
-zdotbelow;1E93
-zecyrillic;0437
-zedescendercyrillic;0499
-zedieresiscyrillic;04DF
-zehiragana;305C
-zekatakana;30BC
-zero;0030
-zeroarabic;0660
-zerobengali;09E6
-zerodeva;0966
-zerogujarati;0AE6
-zerogurmukhi;0A66
-zerohackarabic;0660
-zeroinferior;2080
-zeromonospace;FF10
-zerooldstyle;F730
-zeropersian;06F0
-zerosuperior;2070
-zerothai;0E50
-zerowidthjoiner;FEFF
-zerowidthnonjoiner;200C
-zerowidthspace;200B
-zeta;03B6
-zhbopomofo;3113
-zhearmenian;056A
-zhebrevecyrillic;04C2
-zhecyrillic;0436
-zhedescendercyrillic;0497
-zhedieresiscyrillic;04DD
-zihiragana;3058
-zikatakana;30B8
-zinorhebrew;05AE
-zlinebelow;1E95
-zmonospace;FF5A
-zohiragana;305E
-zokatakana;30BE
-zparen;24B5
-zretroflexhook;0290
-zstroke;01B6
-zuhiragana;305A
-zukatakana;30BA
-#END
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphtounicode.tex b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphtounicode.tex
deleted file mode 100644
index adaf8c82fc1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/glyphtounicode.tex
+++ /dev/null
@@ -1,5511 +0,0 @@
-% lcdf-typetools glyphtounicode.tex, Version 2.95
-% Contents: Glyph mapping information for pdftex, used for PDF searching
-% Generated from:
-% - glyphlist.txt, Version 2.0
-% - texglyphlist.txt, Version 2.95
-% - texglyphlist-g2u.txt, Version 2.95
-\pdfglyphtounicode{A}{0041}
-\pdfglyphtounicode{AE}{00C6}
-\pdfglyphtounicode{AEacute}{01FC}
-\pdfglyphtounicode{AEmacron}{01E2}
-\pdfglyphtounicode{AEsmall}{00E6}
-\pdfglyphtounicode{Aacute}{00C1}
-\pdfglyphtounicode{Aacutesmall}{00E1}
-\pdfglyphtounicode{Abreve}{0102}
-\pdfglyphtounicode{Abreveacute}{1EAE}
-\pdfglyphtounicode{Abrevecyrillic}{04D0}
-\pdfglyphtounicode{Abrevedotbelow}{1EB6}
-\pdfglyphtounicode{Abrevegrave}{1EB0}
-\pdfglyphtounicode{Abrevehookabove}{1EB2}
-\pdfglyphtounicode{Abrevetilde}{1EB4}
-\pdfglyphtounicode{Acaron}{01CD}
-\pdfglyphtounicode{Acircle}{24B6}
-\pdfglyphtounicode{Acircumflex}{00C2}
-\pdfglyphtounicode{Acircumflexacute}{1EA4}
-\pdfglyphtounicode{Acircumflexdotbelow}{1EAC}
-\pdfglyphtounicode{Acircumflexgrave}{1EA6}
-\pdfglyphtounicode{Acircumflexhookabove}{1EA8}
-\pdfglyphtounicode{Acircumflexsmall}{00E2}
-\pdfglyphtounicode{Acircumflextilde}{1EAA}
-\pdfglyphtounicode{Acute}{00B4}
-\pdfglyphtounicode{Acutesmall}{00B4}
-\pdfglyphtounicode{Acyrillic}{0410}
-\pdfglyphtounicode{Adblgrave}{0200}
-\pdfglyphtounicode{Adieresis}{00C4}
-\pdfglyphtounicode{Adieresiscyrillic}{04D2}
-\pdfglyphtounicode{Adieresismacron}{01DE}
-\pdfglyphtounicode{Adieresissmall}{00E4}
-\pdfglyphtounicode{Adotbelow}{1EA0}
-\pdfglyphtounicode{Adotmacron}{01E0}
-\pdfglyphtounicode{Agrave}{00C0}
-\pdfglyphtounicode{Agravesmall}{00E0}
-\pdfglyphtounicode{Ahookabove}{1EA2}
-\pdfglyphtounicode{Aiecyrillic}{04D4}
-\pdfglyphtounicode{Ainvertedbreve}{0202}
-\pdfglyphtounicode{Alpha}{0391}
-\pdfglyphtounicode{Alphatonos}{0386}
-\pdfglyphtounicode{Amacron}{0100}
-\pdfglyphtounicode{Amonospace}{FF21}
-\pdfglyphtounicode{Aogonek}{0104}
-\pdfglyphtounicode{Aring}{00C5}
-\pdfglyphtounicode{Aringacute}{01FA}
-\pdfglyphtounicode{Aringbelow}{1E00}
-\pdfglyphtounicode{Aringsmall}{00E5}
-\pdfglyphtounicode{Asmall}{0061}
-\pdfglyphtounicode{Atilde}{00C3}
-\pdfglyphtounicode{Atildesmall}{00E3}
-\pdfglyphtounicode{Aybarmenian}{0531}
-\pdfglyphtounicode{B}{0042}
-\pdfglyphtounicode{Bcircle}{24B7}
-\pdfglyphtounicode{Bdotaccent}{1E02}
-\pdfglyphtounicode{Bdotbelow}{1E04}
-\pdfglyphtounicode{Becyrillic}{0411}
-\pdfglyphtounicode{Benarmenian}{0532}
-\pdfglyphtounicode{Beta}{0392}
-\pdfglyphtounicode{Bhook}{0181}
-\pdfglyphtounicode{Blinebelow}{1E06}
-\pdfglyphtounicode{Bmonospace}{FF22}
-\pdfglyphtounicode{Brevesmall}{02D8}
-\pdfglyphtounicode{Bsmall}{0062}
-\pdfglyphtounicode{Btopbar}{0182}
-\pdfglyphtounicode{C}{0043}
-\pdfglyphtounicode{Caarmenian}{053E}
-\pdfglyphtounicode{Cacute}{0106}
-\pdfglyphtounicode{Caron}{02C7}
-\pdfglyphtounicode{Caronsmall}{02C7}
-\pdfglyphtounicode{Ccaron}{010C}
-\pdfglyphtounicode{Ccedilla}{00C7}
-\pdfglyphtounicode{Ccedillaacute}{1E08}
-\pdfglyphtounicode{Ccedillasmall}{00E7}
-\pdfglyphtounicode{Ccircle}{24B8}
-\pdfglyphtounicode{Ccircumflex}{0108}
-\pdfglyphtounicode{Cdot}{010A}
-\pdfglyphtounicode{Cdotaccent}{010A}
-\pdfglyphtounicode{Cedillasmall}{00B8}
-\pdfglyphtounicode{Chaarmenian}{0549}
-\pdfglyphtounicode{Cheabkhasiancyrillic}{04BC}
-\pdfglyphtounicode{Checyrillic}{0427}
-\pdfglyphtounicode{Chedescenderabkhasiancyrillic}{04BE}
-\pdfglyphtounicode{Chedescendercyrillic}{04B6}
-\pdfglyphtounicode{Chedieresiscyrillic}{04F4}
-\pdfglyphtounicode{Cheharmenian}{0543}
-\pdfglyphtounicode{Chekhakassiancyrillic}{04CB}
-\pdfglyphtounicode{Cheverticalstrokecyrillic}{04B8}
-\pdfglyphtounicode{Chi}{03A7}
-\pdfglyphtounicode{Chook}{0187}
-\pdfglyphtounicode{Circumflexsmall}{02C6}
-\pdfglyphtounicode{Cmonospace}{FF23}
-\pdfglyphtounicode{Coarmenian}{0551}
-\pdfglyphtounicode{Csmall}{0063}
-\pdfglyphtounicode{D}{0044}
-\pdfglyphtounicode{DZ}{01F1}
-\pdfglyphtounicode{DZcaron}{01C4}
-\pdfglyphtounicode{Daarmenian}{0534}
-\pdfglyphtounicode{Dafrican}{0189}
-\pdfglyphtounicode{Dbar}{0110}
-\pdfglyphtounicode{Dcaron}{010E}
-\pdfglyphtounicode{Dcedilla}{1E10}
-\pdfglyphtounicode{Dcircle}{24B9}
-\pdfglyphtounicode{Dcircumflexbelow}{1E12}
-\pdfglyphtounicode{Dcroat}{0110}
-\pdfglyphtounicode{Ddotaccent}{1E0A}
-\pdfglyphtounicode{Ddotbelow}{1E0C}
-\pdfglyphtounicode{Decyrillic}{0414}
-\pdfglyphtounicode{Deicoptic}{03EE}
-\pdfglyphtounicode{Delta}{2206}
-\pdfglyphtounicode{Deltagreek}{0394}
-\pdfglyphtounicode{Dhook}{018A}
-\pdfglyphtounicode{Dieresis}{00A8}
-\pdfglyphtounicode{DieresisAcute}{F6CC}
-\pdfglyphtounicode{DieresisGrave}{F6CD}
-\pdfglyphtounicode{Dieresissmall}{00A8}
-\pdfglyphtounicode{Digamma}{D875 DFCB}
-\pdfglyphtounicode{Digammagreek}{03DC}
-\pdfglyphtounicode{Djecyrillic}{0402}
-\pdfglyphtounicode{Dlinebelow}{1E0E}
-\pdfglyphtounicode{Dmonospace}{FF24}
-\pdfglyphtounicode{Dotaccentsmall}{02D9}
-\pdfglyphtounicode{Dslash}{0110}
-\pdfglyphtounicode{Dsmall}{0064}
-\pdfglyphtounicode{Dtopbar}{018B}
-\pdfglyphtounicode{Dz}{01F2}
-\pdfglyphtounicode{Dzcaron}{01C5}
-\pdfglyphtounicode{Dzeabkhasiancyrillic}{04E0}
-\pdfglyphtounicode{Dzecyrillic}{0405}
-\pdfglyphtounicode{Dzhecyrillic}{040F}
-\pdfglyphtounicode{E}{0045}
-\pdfglyphtounicode{Eacute}{00C9}
-\pdfglyphtounicode{Eacutesmall}{00E9}
-\pdfglyphtounicode{Ebreve}{0114}
-\pdfglyphtounicode{Ecaron}{011A}
-\pdfglyphtounicode{Ecedillabreve}{1E1C}
-\pdfglyphtounicode{Echarmenian}{0535}
-\pdfglyphtounicode{Ecircle}{24BA}
-\pdfglyphtounicode{Ecircumflex}{00CA}
-\pdfglyphtounicode{Ecircumflexacute}{1EBE}
-\pdfglyphtounicode{Ecircumflexbelow}{1E18}
-\pdfglyphtounicode{Ecircumflexdotbelow}{1EC6}
-\pdfglyphtounicode{Ecircumflexgrave}{1EC0}
-\pdfglyphtounicode{Ecircumflexhookabove}{1EC2}
-\pdfglyphtounicode{Ecircumflexsmall}{00EA}
-\pdfglyphtounicode{Ecircumflextilde}{1EC4}
-\pdfglyphtounicode{Ecyrillic}{0404}
-\pdfglyphtounicode{Edblgrave}{0204}
-\pdfglyphtounicode{Edieresis}{00CB}
-\pdfglyphtounicode{Edieresissmall}{00EB}
-\pdfglyphtounicode{Edot}{0116}
-\pdfglyphtounicode{Edotaccent}{0116}
-\pdfglyphtounicode{Edotbelow}{1EB8}
-\pdfglyphtounicode{Efcyrillic}{0424}
-\pdfglyphtounicode{Egrave}{00C8}
-\pdfglyphtounicode{Egravesmall}{00E8}
-\pdfglyphtounicode{Eharmenian}{0537}
-\pdfglyphtounicode{Ehookabove}{1EBA}
-\pdfglyphtounicode{Eightroman}{2167}
-\pdfglyphtounicode{Einvertedbreve}{0206}
-\pdfglyphtounicode{Eiotifiedcyrillic}{0464}
-\pdfglyphtounicode{Elcyrillic}{041B}
-\pdfglyphtounicode{Elevenroman}{216A}
-\pdfglyphtounicode{Emacron}{0112}
-\pdfglyphtounicode{Emacronacute}{1E16}
-\pdfglyphtounicode{Emacrongrave}{1E14}
-\pdfglyphtounicode{Emcyrillic}{041C}
-\pdfglyphtounicode{Emonospace}{FF25}
-\pdfglyphtounicode{Encyrillic}{041D}
-\pdfglyphtounicode{Endescendercyrillic}{04A2}
-\pdfglyphtounicode{Eng}{014A}
-\pdfglyphtounicode{Enghecyrillic}{04A4}
-\pdfglyphtounicode{Enhookcyrillic}{04C7}
-\pdfglyphtounicode{Eogonek}{0118}
-\pdfglyphtounicode{Eopen}{0190}
-\pdfglyphtounicode{Epsilon}{0395}
-\pdfglyphtounicode{Epsilontonos}{0388}
-\pdfglyphtounicode{Ercyrillic}{0420}
-\pdfglyphtounicode{Ereversed}{018E}
-\pdfglyphtounicode{Ereversedcyrillic}{042D}
-\pdfglyphtounicode{Escyrillic}{0421}
-\pdfglyphtounicode{Esdescendercyrillic}{04AA}
-\pdfglyphtounicode{Esh}{01A9}
-\pdfglyphtounicode{Esmall}{0065}
-\pdfglyphtounicode{Eta}{0397}
-\pdfglyphtounicode{Etarmenian}{0538}
-\pdfglyphtounicode{Etatonos}{0389}
-\pdfglyphtounicode{Eth}{00D0}
-\pdfglyphtounicode{Ethsmall}{00F0}
-\pdfglyphtounicode{Etilde}{1EBC}
-\pdfglyphtounicode{Etildebelow}{1E1A}
-\pdfglyphtounicode{Euro}{20AC}
-\pdfglyphtounicode{Ezh}{01B7}
-\pdfglyphtounicode{Ezhcaron}{01EE}
-\pdfglyphtounicode{Ezhreversed}{01B8}
-\pdfglyphtounicode{F}{0046}
-\pdfglyphtounicode{FFIsmall}{0066 0066 0069}
-\pdfglyphtounicode{FFLsmall}{0066 0066 006C}
-\pdfglyphtounicode{FFsmall}{0066 0066}
-\pdfglyphtounicode{FIsmall}{0066 0069}
-\pdfglyphtounicode{FLsmall}{0066 006C}
-\pdfglyphtounicode{Fcircle}{24BB}
-\pdfglyphtounicode{Fdotaccent}{1E1E}
-\pdfglyphtounicode{Feharmenian}{0556}
-\pdfglyphtounicode{Feicoptic}{03E4}
-\pdfglyphtounicode{Fhook}{0191}
-\pdfglyphtounicode{Finv}{2132}
-\pdfglyphtounicode{Fitacyrillic}{0472}
-\pdfglyphtounicode{Fiveroman}{2164}
-\pdfglyphtounicode{Fmonospace}{FF26}
-\pdfglyphtounicode{Fourroman}{2163}
-\pdfglyphtounicode{Fsmall}{0066}
-\pdfglyphtounicode{G}{0047}
-\pdfglyphtounicode{GBsquare}{3387}
-\pdfglyphtounicode{Gacute}{01F4}
-\pdfglyphtounicode{Gamma}{0393}
-\pdfglyphtounicode{Gammaafrican}{0194}
-\pdfglyphtounicode{Gangiacoptic}{03EA}
-\pdfglyphtounicode{Gbreve}{011E}
-\pdfglyphtounicode{Gcaron}{01E6}
-\pdfglyphtounicode{Gcedilla}{0122}
-\pdfglyphtounicode{Gcircle}{24BC}
-\pdfglyphtounicode{Gcircumflex}{011C}
-\pdfglyphtounicode{Gcommaaccent}{0122}
-\pdfglyphtounicode{Gdot}{0120}
-\pdfglyphtounicode{Gdotaccent}{0120}
-\pdfglyphtounicode{Gecyrillic}{0413}
-\pdfglyphtounicode{Germandbls}{0053 0053}
-\pdfglyphtounicode{Germandblssmall}{0073 0073}
-\pdfglyphtounicode{Ghadarmenian}{0542}
-\pdfglyphtounicode{Ghemiddlehookcyrillic}{0494}
-\pdfglyphtounicode{Ghestrokecyrillic}{0492}
-\pdfglyphtounicode{Gheupturncyrillic}{0490}
-\pdfglyphtounicode{Ghook}{0193}
-\pdfglyphtounicode{Gimarmenian}{0533}
-\pdfglyphtounicode{Gjecyrillic}{0403}
-\pdfglyphtounicode{Gmacron}{1E20}
-\pdfglyphtounicode{Gmir}{2141}
-\pdfglyphtounicode{Gmonospace}{FF27}
-\pdfglyphtounicode{Grave}{0060}
-\pdfglyphtounicode{Gravesmall}{0060}
-\pdfglyphtounicode{Gsmall}{0067}
-\pdfglyphtounicode{Gsmallhook}{029B}
-\pdfglyphtounicode{Gstroke}{01E4}
-\pdfglyphtounicode{H}{0048}
-\pdfglyphtounicode{H18533}{25CF}
-\pdfglyphtounicode{H18543}{25AA}
-\pdfglyphtounicode{H18551}{25AB}
-\pdfglyphtounicode{H22073}{25A1}
-\pdfglyphtounicode{HPsquare}{33CB}
-\pdfglyphtounicode{Haabkhasiancyrillic}{04A8}
-\pdfglyphtounicode{Hadescendercyrillic}{04B2}
-\pdfglyphtounicode{Hardsigncyrillic}{042A}
-\pdfglyphtounicode{Hbar}{0126}
-\pdfglyphtounicode{Hbrevebelow}{1E2A}
-\pdfglyphtounicode{Hcedilla}{1E28}
-\pdfglyphtounicode{Hcircle}{24BD}
-\pdfglyphtounicode{Hcircumflex}{0124}
-\pdfglyphtounicode{Hdieresis}{1E26}
-\pdfglyphtounicode{Hdotaccent}{1E22}
-\pdfglyphtounicode{Hdotbelow}{1E24}
-\pdfglyphtounicode{Hmonospace}{FF28}
-\pdfglyphtounicode{Hoarmenian}{0540}
-\pdfglyphtounicode{Horicoptic}{03E8}
-\pdfglyphtounicode{Hsmall}{0068}
-\pdfglyphtounicode{Hungarumlaut}{02DD}
-\pdfglyphtounicode{Hungarumlautsmall}{02DD}
-\pdfglyphtounicode{Hzsquare}{3390}
-\pdfglyphtounicode{I}{0049}
-\pdfglyphtounicode{IAcyrillic}{042F}
-\pdfglyphtounicode{IJ}{0132}
-\pdfglyphtounicode{IUcyrillic}{042E}
-\pdfglyphtounicode{Iacute}{00CD}
-\pdfglyphtounicode{Iacutesmall}{00ED}
-\pdfglyphtounicode{Ibreve}{012C}
-\pdfglyphtounicode{Icaron}{01CF}
-\pdfglyphtounicode{Icircle}{24BE}
-\pdfglyphtounicode{Icircumflex}{00CE}
-\pdfglyphtounicode{Icircumflexsmall}{00EE}
-\pdfglyphtounicode{Icyrillic}{0406}
-\pdfglyphtounicode{Idblgrave}{0208}
-\pdfglyphtounicode{Idieresis}{00CF}
-\pdfglyphtounicode{Idieresisacute}{1E2E}
-\pdfglyphtounicode{Idieresiscyrillic}{04E4}
-\pdfglyphtounicode{Idieresissmall}{00EF}
-\pdfglyphtounicode{Idot}{0130}
-\pdfglyphtounicode{Idotaccent}{0130}
-\pdfglyphtounicode{Idotbelow}{1ECA}
-\pdfglyphtounicode{Iebrevecyrillic}{04D6}
-\pdfglyphtounicode{Iecyrillic}{0415}
-\pdfglyphtounicode{Ifractur}{2111}
-\pdfglyphtounicode{Ifraktur}{2111}
-\pdfglyphtounicode{Igrave}{00CC}
-\pdfglyphtounicode{Igravesmall}{00EC}
-\pdfglyphtounicode{Ihookabove}{1EC8}
-\pdfglyphtounicode{Iicyrillic}{0418}
-\pdfglyphtounicode{Iinvertedbreve}{020A}
-\pdfglyphtounicode{Iishortcyrillic}{0419}
-\pdfglyphtounicode{Imacron}{012A}
-\pdfglyphtounicode{Imacroncyrillic}{04E2}
-\pdfglyphtounicode{Imonospace}{FF29}
-\pdfglyphtounicode{Iniarmenian}{053B}
-\pdfglyphtounicode{Iocyrillic}{0401}
-\pdfglyphtounicode{Iogonek}{012E}
-\pdfglyphtounicode{Iota}{0399}
-\pdfglyphtounicode{Iotaafrican}{0196}
-\pdfglyphtounicode{Iotadieresis}{03AA}
-\pdfglyphtounicode{Iotatonos}{038A}
-\pdfglyphtounicode{Ismall}{0069}
-\pdfglyphtounicode{Istroke}{0197}
-\pdfglyphtounicode{Itilde}{0128}
-\pdfglyphtounicode{Itildebelow}{1E2C}
-\pdfglyphtounicode{Izhitsacyrillic}{0474}
-\pdfglyphtounicode{Izhitsadblgravecyrillic}{0476}
-\pdfglyphtounicode{J}{004A}
-\pdfglyphtounicode{Jaarmenian}{0541}
-\pdfglyphtounicode{Jcircle}{24BF}
-\pdfglyphtounicode{Jcircumflex}{0134}
-\pdfglyphtounicode{Jecyrillic}{0408}
-\pdfglyphtounicode{Jheharmenian}{054B}
-\pdfglyphtounicode{Jmonospace}{FF2A}
-\pdfglyphtounicode{Jsmall}{006A}
-\pdfglyphtounicode{K}{004B}
-\pdfglyphtounicode{KBsquare}{3385}
-\pdfglyphtounicode{KKsquare}{33CD}
-\pdfglyphtounicode{Kabashkircyrillic}{04A0}
-\pdfglyphtounicode{Kacute}{1E30}
-\pdfglyphtounicode{Kacyrillic}{041A}
-\pdfglyphtounicode{Kadescendercyrillic}{049A}
-\pdfglyphtounicode{Kahookcyrillic}{04C3}
-\pdfglyphtounicode{Kappa}{039A}
-\pdfglyphtounicode{Kastrokecyrillic}{049E}
-\pdfglyphtounicode{Kaverticalstrokecyrillic}{049C}
-\pdfglyphtounicode{Kcaron}{01E8}
-\pdfglyphtounicode{Kcedilla}{0136}
-\pdfglyphtounicode{Kcircle}{24C0}
-\pdfglyphtounicode{Kcommaaccent}{0136}
-\pdfglyphtounicode{Kdotbelow}{1E32}
-\pdfglyphtounicode{Keharmenian}{0554}
-\pdfglyphtounicode{Kenarmenian}{053F}
-\pdfglyphtounicode{Khacyrillic}{0425}
-\pdfglyphtounicode{Kheicoptic}{03E6}
-\pdfglyphtounicode{Khook}{0198}
-\pdfglyphtounicode{Kjecyrillic}{040C}
-\pdfglyphtounicode{Klinebelow}{1E34}
-\pdfglyphtounicode{Kmonospace}{FF2B}
-\pdfglyphtounicode{Koppacyrillic}{0480}
-\pdfglyphtounicode{Koppagreek}{03DE}
-\pdfglyphtounicode{Ksicyrillic}{046E}
-\pdfglyphtounicode{Ksmall}{006B}
-\pdfglyphtounicode{L}{004C}
-\pdfglyphtounicode{LJ}{01C7}
-\pdfglyphtounicode{LL}{004C 004C}
-\pdfglyphtounicode{Lacute}{0139}
-\pdfglyphtounicode{Lambda}{039B}
-\pdfglyphtounicode{Lcaron}{013D}
-\pdfglyphtounicode{Lcedilla}{013B}
-\pdfglyphtounicode{Lcircle}{24C1}
-\pdfglyphtounicode{Lcircumflexbelow}{1E3C}
-\pdfglyphtounicode{Lcommaaccent}{013B}
-\pdfglyphtounicode{Ldot}{013F}
-\pdfglyphtounicode{Ldotaccent}{013F}
-\pdfglyphtounicode{Ldotbelow}{1E36}
-\pdfglyphtounicode{Ldotbelowmacron}{1E38}
-\pdfglyphtounicode{Liwnarmenian}{053C}
-\pdfglyphtounicode{Lj}{01C8}
-\pdfglyphtounicode{Ljecyrillic}{0409}
-\pdfglyphtounicode{Llinebelow}{1E3A}
-\pdfglyphtounicode{Lmonospace}{FF2C}
-\pdfglyphtounicode{Lslash}{0141}
-\pdfglyphtounicode{Lslashsmall}{0142}
-\pdfglyphtounicode{Lsmall}{006C}
-\pdfglyphtounicode{M}{004D}
-\pdfglyphtounicode{MBsquare}{3386}
-\pdfglyphtounicode{Macron}{00AF}
-\pdfglyphtounicode{Macronsmall}{00AF}
-\pdfglyphtounicode{Macute}{1E3E}
-\pdfglyphtounicode{Mcircle}{24C2}
-\pdfglyphtounicode{Mdotaccent}{1E40}
-\pdfglyphtounicode{Mdotbelow}{1E42}
-\pdfglyphtounicode{Menarmenian}{0544}
-\pdfglyphtounicode{Mmonospace}{FF2D}
-\pdfglyphtounicode{Msmall}{006D}
-\pdfglyphtounicode{Mturned}{019C}
-\pdfglyphtounicode{Mu}{039C}
-\pdfglyphtounicode{N}{004E}
-\pdfglyphtounicode{NJ}{01CA}
-\pdfglyphtounicode{Nacute}{0143}
-\pdfglyphtounicode{Ncaron}{0147}
-\pdfglyphtounicode{Ncedilla}{0145}
-\pdfglyphtounicode{Ncircle}{24C3}
-\pdfglyphtounicode{Ncircumflexbelow}{1E4A}
-\pdfglyphtounicode{Ncommaaccent}{0145}
-\pdfglyphtounicode{Ndotaccent}{1E44}
-\pdfglyphtounicode{Ndotbelow}{1E46}
-\pdfglyphtounicode{Ng}{014A}
-\pdfglyphtounicode{Nhookleft}{019D}
-\pdfglyphtounicode{Nineroman}{2168}
-\pdfglyphtounicode{Nj}{01CB}
-\pdfglyphtounicode{Njecyrillic}{040A}
-\pdfglyphtounicode{Nlinebelow}{1E48}
-\pdfglyphtounicode{Nmonospace}{FF2E}
-\pdfglyphtounicode{Nowarmenian}{0546}
-\pdfglyphtounicode{Nsmall}{006E}
-\pdfglyphtounicode{Ntilde}{00D1}
-\pdfglyphtounicode{Ntildesmall}{00F1}
-\pdfglyphtounicode{Nu}{039D}
-\pdfglyphtounicode{O}{004F}
-\pdfglyphtounicode{OE}{0152}
-\pdfglyphtounicode{OEsmall}{0153}
-\pdfglyphtounicode{Oacute}{00D3}
-\pdfglyphtounicode{Oacutesmall}{00F3}
-\pdfglyphtounicode{Obarredcyrillic}{04E8}
-\pdfglyphtounicode{Obarreddieresiscyrillic}{04EA}
-\pdfglyphtounicode{Obreve}{014E}
-\pdfglyphtounicode{Ocaron}{01D1}
-\pdfglyphtounicode{Ocenteredtilde}{019F}
-\pdfglyphtounicode{Ocircle}{24C4}
-\pdfglyphtounicode{Ocircumflex}{00D4}
-\pdfglyphtounicode{Ocircumflexacute}{1ED0}
-\pdfglyphtounicode{Ocircumflexdotbelow}{1ED8}
-\pdfglyphtounicode{Ocircumflexgrave}{1ED2}
-\pdfglyphtounicode{Ocircumflexhookabove}{1ED4}
-\pdfglyphtounicode{Ocircumflexsmall}{00F4}
-\pdfglyphtounicode{Ocircumflextilde}{1ED6}
-\pdfglyphtounicode{Ocyrillic}{041E}
-\pdfglyphtounicode{Odblacute}{0150}
-\pdfglyphtounicode{Odblgrave}{020C}
-\pdfglyphtounicode{Odieresis}{00D6}
-\pdfglyphtounicode{Odieresiscyrillic}{04E6}
-\pdfglyphtounicode{Odieresissmall}{00F6}
-\pdfglyphtounicode{Odotbelow}{1ECC}
-\pdfglyphtounicode{Ogoneksmall}{02DB}
-\pdfglyphtounicode{Ograve}{00D2}
-\pdfglyphtounicode{Ogravesmall}{00F2}
-\pdfglyphtounicode{Oharmenian}{0555}
-\pdfglyphtounicode{Ohm}{2126}
-\pdfglyphtounicode{Ohookabove}{1ECE}
-\pdfglyphtounicode{Ohorn}{01A0}
-\pdfglyphtounicode{Ohornacute}{1EDA}
-\pdfglyphtounicode{Ohorndotbelow}{1EE2}
-\pdfglyphtounicode{Ohorngrave}{1EDC}
-\pdfglyphtounicode{Ohornhookabove}{1EDE}
-\pdfglyphtounicode{Ohorntilde}{1EE0}
-\pdfglyphtounicode{Ohungarumlaut}{0150}
-\pdfglyphtounicode{Oi}{01A2}
-\pdfglyphtounicode{Oinvertedbreve}{020E}
-\pdfglyphtounicode{Omacron}{014C}
-\pdfglyphtounicode{Omacronacute}{1E52}
-\pdfglyphtounicode{Omacrongrave}{1E50}
-\pdfglyphtounicode{Omega}{2126}
-\pdfglyphtounicode{Omegacyrillic}{0460}
-\pdfglyphtounicode{Omegagreek}{03A9}
-\pdfglyphtounicode{Omegainv}{2127}
-\pdfglyphtounicode{Omegaroundcyrillic}{047A}
-\pdfglyphtounicode{Omegatitlocyrillic}{047C}
-\pdfglyphtounicode{Omegatonos}{038F}
-\pdfglyphtounicode{Omicron}{039F}
-\pdfglyphtounicode{Omicrontonos}{038C}
-\pdfglyphtounicode{Omonospace}{FF2F}
-\pdfglyphtounicode{Oneroman}{2160}
-\pdfglyphtounicode{Oogonek}{01EA}
-\pdfglyphtounicode{Oogonekmacron}{01EC}
-\pdfglyphtounicode{Oopen}{0186}
-\pdfglyphtounicode{Oslash}{00D8}
-\pdfglyphtounicode{Oslashacute}{01FE}
-\pdfglyphtounicode{Oslashsmall}{00F8}
-\pdfglyphtounicode{Osmall}{006F}
-\pdfglyphtounicode{Ostrokeacute}{01FE}
-\pdfglyphtounicode{Otcyrillic}{047E}
-\pdfglyphtounicode{Otilde}{00D5}
-\pdfglyphtounicode{Otildeacute}{1E4C}
-\pdfglyphtounicode{Otildedieresis}{1E4E}
-\pdfglyphtounicode{Otildesmall}{00F5}
-\pdfglyphtounicode{P}{0050}
-\pdfglyphtounicode{Pacute}{1E54}
-\pdfglyphtounicode{Pcircle}{24C5}
-\pdfglyphtounicode{Pdotaccent}{1E56}
-\pdfglyphtounicode{Pecyrillic}{041F}
-\pdfglyphtounicode{Peharmenian}{054A}
-\pdfglyphtounicode{Pemiddlehookcyrillic}{04A6}
-\pdfglyphtounicode{Phi}{03A6}
-\pdfglyphtounicode{Phook}{01A4}
-\pdfglyphtounicode{Pi}{03A0}
-\pdfglyphtounicode{Piwrarmenian}{0553}
-\pdfglyphtounicode{Pmonospace}{FF30}
-\pdfglyphtounicode{Psi}{03A8}
-\pdfglyphtounicode{Psicyrillic}{0470}
-\pdfglyphtounicode{Psmall}{0070}
-\pdfglyphtounicode{Q}{0051}
-\pdfglyphtounicode{Qcircle}{24C6}
-\pdfglyphtounicode{Qmonospace}{FF31}
-\pdfglyphtounicode{Qsmall}{0071}
-\pdfglyphtounicode{R}{0052}
-\pdfglyphtounicode{Raarmenian}{054C}
-\pdfglyphtounicode{Racute}{0154}
-\pdfglyphtounicode{Rcaron}{0158}
-\pdfglyphtounicode{Rcedilla}{0156}
-\pdfglyphtounicode{Rcircle}{24C7}
-\pdfglyphtounicode{Rcommaaccent}{0156}
-\pdfglyphtounicode{Rdblgrave}{0210}
-\pdfglyphtounicode{Rdotaccent}{1E58}
-\pdfglyphtounicode{Rdotbelow}{1E5A}
-\pdfglyphtounicode{Rdotbelowmacron}{1E5C}
-\pdfglyphtounicode{Reharmenian}{0550}
-\pdfglyphtounicode{Rfractur}{211C}
-\pdfglyphtounicode{Rfraktur}{211C}
-\pdfglyphtounicode{Rho}{03A1}
-\pdfglyphtounicode{Ringsmall}{02DA}
-\pdfglyphtounicode{Rinvertedbreve}{0212}
-\pdfglyphtounicode{Rlinebelow}{1E5E}
-\pdfglyphtounicode{Rmonospace}{FF32}
-\pdfglyphtounicode{Rsmall}{0072}
-\pdfglyphtounicode{Rsmallinverted}{0281}
-\pdfglyphtounicode{Rsmallinvertedsuperior}{02B6}
-\pdfglyphtounicode{S}{0053}
-\pdfglyphtounicode{SF010000}{250C}
-\pdfglyphtounicode{SF020000}{2514}
-\pdfglyphtounicode{SF030000}{2510}
-\pdfglyphtounicode{SF040000}{2518}
-\pdfglyphtounicode{SF050000}{253C}
-\pdfglyphtounicode{SF060000}{252C}
-\pdfglyphtounicode{SF070000}{2534}
-\pdfglyphtounicode{SF080000}{251C}
-\pdfglyphtounicode{SF090000}{2524}
-\pdfglyphtounicode{SF100000}{2500}
-\pdfglyphtounicode{SF110000}{2502}
-\pdfglyphtounicode{SF190000}{2561}
-\pdfglyphtounicode{SF200000}{2562}
-\pdfglyphtounicode{SF210000}{2556}
-\pdfglyphtounicode{SF220000}{2555}
-\pdfglyphtounicode{SF230000}{2563}
-\pdfglyphtounicode{SF240000}{2551}
-\pdfglyphtounicode{SF250000}{2557}
-\pdfglyphtounicode{SF260000}{255D}
-\pdfglyphtounicode{SF270000}{255C}
-\pdfglyphtounicode{SF280000}{255B}
-\pdfglyphtounicode{SF360000}{255E}
-\pdfglyphtounicode{SF370000}{255F}
-\pdfglyphtounicode{SF380000}{255A}
-\pdfglyphtounicode{SF390000}{2554}
-\pdfglyphtounicode{SF400000}{2569}
-\pdfglyphtounicode{SF410000}{2566}
-\pdfglyphtounicode{SF420000}{2560}
-\pdfglyphtounicode{SF430000}{2550}
-\pdfglyphtounicode{SF440000}{256C}
-\pdfglyphtounicode{SF450000}{2567}
-\pdfglyphtounicode{SF460000}{2568}
-\pdfglyphtounicode{SF470000}{2564}
-\pdfglyphtounicode{SF480000}{2565}
-\pdfglyphtounicode{SF490000}{2559}
-\pdfglyphtounicode{SF500000}{2558}
-\pdfglyphtounicode{SF510000}{2552}
-\pdfglyphtounicode{SF520000}{2553}
-\pdfglyphtounicode{SF530000}{256B}
-\pdfglyphtounicode{SF540000}{256A}
-\pdfglyphtounicode{SS}{0053 0053}
-\pdfglyphtounicode{SSsmall}{0073 0073}
-\pdfglyphtounicode{Sacute}{015A}
-\pdfglyphtounicode{Sacutedotaccent}{1E64}
-\pdfglyphtounicode{Sampigreek}{03E0}
-\pdfglyphtounicode{Scaron}{0160}
-\pdfglyphtounicode{Scarondotaccent}{1E66}
-\pdfglyphtounicode{Scaronsmall}{0161}
-\pdfglyphtounicode{Scedilla}{015E}
-\pdfglyphtounicode{Schwa}{018F}
-\pdfglyphtounicode{Schwacyrillic}{04D8}
-\pdfglyphtounicode{Schwadieresiscyrillic}{04DA}
-\pdfglyphtounicode{Scircle}{24C8}
-\pdfglyphtounicode{Scircumflex}{015C}
-\pdfglyphtounicode{Scommaaccent}{0218}
-\pdfglyphtounicode{Sdotaccent}{1E60}
-\pdfglyphtounicode{Sdotbelow}{1E62}
-\pdfglyphtounicode{Sdotbelowdotaccent}{1E68}
-\pdfglyphtounicode{Seharmenian}{054D}
-\pdfglyphtounicode{Sevenroman}{2166}
-\pdfglyphtounicode{Shaarmenian}{0547}
-\pdfglyphtounicode{Shacyrillic}{0428}
-\pdfglyphtounicode{Shchacyrillic}{0429}
-\pdfglyphtounicode{Sheicoptic}{03E2}
-\pdfglyphtounicode{Shhacyrillic}{04BA}
-\pdfglyphtounicode{Shimacoptic}{03EC}
-\pdfglyphtounicode{Sigma}{03A3}
-\pdfglyphtounicode{Sixroman}{2165}
-\pdfglyphtounicode{Smonospace}{FF33}
-\pdfglyphtounicode{Softsigncyrillic}{042C}
-\pdfglyphtounicode{Ssmall}{0073}
-\pdfglyphtounicode{Stigmagreek}{03DA}
-\pdfglyphtounicode{T}{0054}
-\pdfglyphtounicode{Tau}{03A4}
-\pdfglyphtounicode{Tbar}{0166}
-\pdfglyphtounicode{Tcaron}{0164}
-\pdfglyphtounicode{Tcedilla}{0162}
-\pdfglyphtounicode{Tcircle}{24C9}
-\pdfglyphtounicode{Tcircumflexbelow}{1E70}
-\pdfglyphtounicode{Tcommaaccent}{0162}
-\pdfglyphtounicode{Tdotaccent}{1E6A}
-\pdfglyphtounicode{Tdotbelow}{1E6C}
-\pdfglyphtounicode{Tecyrillic}{0422}
-\pdfglyphtounicode{Tedescendercyrillic}{04AC}
-\pdfglyphtounicode{Tenroman}{2169}
-\pdfglyphtounicode{Tetsecyrillic}{04B4}
-\pdfglyphtounicode{Theta}{0398}
-\pdfglyphtounicode{Thook}{01AC}
-\pdfglyphtounicode{Thorn}{00DE}
-\pdfglyphtounicode{Thornsmall}{00FE}
-\pdfglyphtounicode{Threeroman}{2162}
-\pdfglyphtounicode{Tildesmall}{02DC}
-\pdfglyphtounicode{Tiwnarmenian}{054F}
-\pdfglyphtounicode{Tlinebelow}{1E6E}
-\pdfglyphtounicode{Tmonospace}{FF34}
-\pdfglyphtounicode{Toarmenian}{0539}
-\pdfglyphtounicode{Tonefive}{01BC}
-\pdfglyphtounicode{Tonesix}{0184}
-\pdfglyphtounicode{Tonetwo}{01A7}
-\pdfglyphtounicode{Tretroflexhook}{01AE}
-\pdfglyphtounicode{Tsecyrillic}{0426}
-\pdfglyphtounicode{Tshecyrillic}{040B}
-\pdfglyphtounicode{Tsmall}{0074}
-\pdfglyphtounicode{Twelveroman}{216B}
-\pdfglyphtounicode{Tworoman}{2161}
-\pdfglyphtounicode{U}{0055}
-\pdfglyphtounicode{Uacute}{00DA}
-\pdfglyphtounicode{Uacutesmall}{00FA}
-\pdfglyphtounicode{Ubreve}{016C}
-\pdfglyphtounicode{Ucaron}{01D3}
-\pdfglyphtounicode{Ucircle}{24CA}
-\pdfglyphtounicode{Ucircumflex}{00DB}
-\pdfglyphtounicode{Ucircumflexbelow}{1E76}
-\pdfglyphtounicode{Ucircumflexsmall}{00FB}
-\pdfglyphtounicode{Ucyrillic}{0423}
-\pdfglyphtounicode{Udblacute}{0170}
-\pdfglyphtounicode{Udblgrave}{0214}
-\pdfglyphtounicode{Udieresis}{00DC}
-\pdfglyphtounicode{Udieresisacute}{01D7}
-\pdfglyphtounicode{Udieresisbelow}{1E72}
-\pdfglyphtounicode{Udieresiscaron}{01D9}
-\pdfglyphtounicode{Udieresiscyrillic}{04F0}
-\pdfglyphtounicode{Udieresisgrave}{01DB}
-\pdfglyphtounicode{Udieresismacron}{01D5}
-\pdfglyphtounicode{Udieresissmall}{00FC}
-\pdfglyphtounicode{Udotbelow}{1EE4}
-\pdfglyphtounicode{Ugrave}{00D9}
-\pdfglyphtounicode{Ugravesmall}{00F9}
-\pdfglyphtounicode{Uhookabove}{1EE6}
-\pdfglyphtounicode{Uhorn}{01AF}
-\pdfglyphtounicode{Uhornacute}{1EE8}
-\pdfglyphtounicode{Uhorndotbelow}{1EF0}
-\pdfglyphtounicode{Uhorngrave}{1EEA}
-\pdfglyphtounicode{Uhornhookabove}{1EEC}
-\pdfglyphtounicode{Uhorntilde}{1EEE}
-\pdfglyphtounicode{Uhungarumlaut}{0170}
-\pdfglyphtounicode{Uhungarumlautcyrillic}{04F2}
-\pdfglyphtounicode{Uinvertedbreve}{0216}
-\pdfglyphtounicode{Ukcyrillic}{0478}
-\pdfglyphtounicode{Umacron}{016A}
-\pdfglyphtounicode{Umacroncyrillic}{04EE}
-\pdfglyphtounicode{Umacrondieresis}{1E7A}
-\pdfglyphtounicode{Umonospace}{FF35}
-\pdfglyphtounicode{Uogonek}{0172}
-\pdfglyphtounicode{Upsilon}{03A5}
-\pdfglyphtounicode{Upsilon1}{03D2}
-\pdfglyphtounicode{Upsilonacutehooksymbolgreek}{03D3}
-\pdfglyphtounicode{Upsilonafrican}{01B1}
-\pdfglyphtounicode{Upsilondieresis}{03AB}
-\pdfglyphtounicode{Upsilondieresishooksymbolgreek}{03D4}
-\pdfglyphtounicode{Upsilonhooksymbol}{03D2}
-\pdfglyphtounicode{Upsilontonos}{038E}
-\pdfglyphtounicode{Uring}{016E}
-\pdfglyphtounicode{Ushortcyrillic}{040E}
-\pdfglyphtounicode{Usmall}{0075}
-\pdfglyphtounicode{Ustraightcyrillic}{04AE}
-\pdfglyphtounicode{Ustraightstrokecyrillic}{04B0}
-\pdfglyphtounicode{Utilde}{0168}
-\pdfglyphtounicode{Utildeacute}{1E78}
-\pdfglyphtounicode{Utildebelow}{1E74}
-\pdfglyphtounicode{V}{0056}
-\pdfglyphtounicode{Vcircle}{24CB}
-\pdfglyphtounicode{Vdotbelow}{1E7E}
-\pdfglyphtounicode{Vecyrillic}{0412}
-\pdfglyphtounicode{Vewarmenian}{054E}
-\pdfglyphtounicode{Vhook}{01B2}
-\pdfglyphtounicode{Vmonospace}{FF36}
-\pdfglyphtounicode{Voarmenian}{0548}
-\pdfglyphtounicode{Vsmall}{0076}
-\pdfglyphtounicode{Vtilde}{1E7C}
-\pdfglyphtounicode{W}{0057}
-\pdfglyphtounicode{Wacute}{1E82}
-\pdfglyphtounicode{Wcircle}{24CC}
-\pdfglyphtounicode{Wcircumflex}{0174}
-\pdfglyphtounicode{Wdieresis}{1E84}
-\pdfglyphtounicode{Wdotaccent}{1E86}
-\pdfglyphtounicode{Wdotbelow}{1E88}
-\pdfglyphtounicode{Wgrave}{1E80}
-\pdfglyphtounicode{Wmonospace}{FF37}
-\pdfglyphtounicode{Wsmall}{0077}
-\pdfglyphtounicode{X}{0058}
-\pdfglyphtounicode{Xcircle}{24CD}
-\pdfglyphtounicode{Xdieresis}{1E8C}
-\pdfglyphtounicode{Xdotaccent}{1E8A}
-\pdfglyphtounicode{Xeharmenian}{053D}
-\pdfglyphtounicode{Xi}{039E}
-\pdfglyphtounicode{Xmonospace}{FF38}
-\pdfglyphtounicode{Xsmall}{0078}
-\pdfglyphtounicode{Y}{0059}
-\pdfglyphtounicode{Yacute}{00DD}
-\pdfglyphtounicode{Yacutesmall}{00FD}
-\pdfglyphtounicode{Yatcyrillic}{0462}
-\pdfglyphtounicode{Ycircle}{24CE}
-\pdfglyphtounicode{Ycircumflex}{0176}
-\pdfglyphtounicode{Ydieresis}{0178}
-\pdfglyphtounicode{Ydieresissmall}{00FF}
-\pdfglyphtounicode{Ydotaccent}{1E8E}
-\pdfglyphtounicode{Ydotbelow}{1EF4}
-\pdfglyphtounicode{Yen}{00A5}
-\pdfglyphtounicode{Yericyrillic}{042B}
-\pdfglyphtounicode{Yerudieresiscyrillic}{04F8}
-\pdfglyphtounicode{Ygrave}{1EF2}
-\pdfglyphtounicode{Yhook}{01B3}
-\pdfglyphtounicode{Yhookabove}{1EF6}
-\pdfglyphtounicode{Yiarmenian}{0545}
-\pdfglyphtounicode{Yicyrillic}{0407}
-\pdfglyphtounicode{Yiwnarmenian}{0552}
-\pdfglyphtounicode{Ymonospace}{FF39}
-\pdfglyphtounicode{Ysmall}{0079}
-\pdfglyphtounicode{Ytilde}{1EF8}
-\pdfglyphtounicode{Yusbigcyrillic}{046A}
-\pdfglyphtounicode{Yusbigiotifiedcyrillic}{046C}
-\pdfglyphtounicode{Yuslittlecyrillic}{0466}
-\pdfglyphtounicode{Yuslittleiotifiedcyrillic}{0468}
-\pdfglyphtounicode{Z}{005A}
-\pdfglyphtounicode{Zaarmenian}{0536}
-\pdfglyphtounicode{Zacute}{0179}
-\pdfglyphtounicode{Zcaron}{017D}
-\pdfglyphtounicode{Zcaronsmall}{017E}
-\pdfglyphtounicode{Zcircle}{24CF}
-\pdfglyphtounicode{Zcircumflex}{1E90}
-\pdfglyphtounicode{Zdot}{017B}
-\pdfglyphtounicode{Zdotaccent}{017B}
-\pdfglyphtounicode{Zdotbelow}{1E92}
-\pdfglyphtounicode{Zecyrillic}{0417}
-\pdfglyphtounicode{Zedescendercyrillic}{0498}
-\pdfglyphtounicode{Zedieresiscyrillic}{04DE}
-\pdfglyphtounicode{Zeta}{0396}
-\pdfglyphtounicode{Zhearmenian}{053A}
-\pdfglyphtounicode{Zhebrevecyrillic}{04C1}
-\pdfglyphtounicode{Zhecyrillic}{0416}
-\pdfglyphtounicode{Zhedescendercyrillic}{0496}
-\pdfglyphtounicode{Zhedieresiscyrillic}{04DC}
-\pdfglyphtounicode{Zlinebelow}{1E94}
-\pdfglyphtounicode{Zmonospace}{FF3A}
-\pdfglyphtounicode{Zsmall}{007A}
-\pdfglyphtounicode{Zstroke}{01B5}
-\pdfglyphtounicode{a}{0061}
-\pdfglyphtounicode{aabengali}{0986}
-\pdfglyphtounicode{aacute}{00E1}
-\pdfglyphtounicode{aadeva}{0906}
-\pdfglyphtounicode{aagujarati}{0A86}
-\pdfglyphtounicode{aagurmukhi}{0A06}
-\pdfglyphtounicode{aamatragurmukhi}{0A3E}
-\pdfglyphtounicode{aarusquare}{3303}
-\pdfglyphtounicode{aavowelsignbengali}{09BE}
-\pdfglyphtounicode{aavowelsigndeva}{093E}
-\pdfglyphtounicode{aavowelsigngujarati}{0ABE}
-\pdfglyphtounicode{abbreviationmarkarmenian}{055F}
-\pdfglyphtounicode{abbreviationsigndeva}{0970}
-\pdfglyphtounicode{abengali}{0985}
-\pdfglyphtounicode{abopomofo}{311A}
-\pdfglyphtounicode{abreve}{0103}
-\pdfglyphtounicode{abreveacute}{1EAF}
-\pdfglyphtounicode{abrevecyrillic}{04D1}
-\pdfglyphtounicode{abrevedotbelow}{1EB7}
-\pdfglyphtounicode{abrevegrave}{1EB1}
-\pdfglyphtounicode{abrevehookabove}{1EB3}
-\pdfglyphtounicode{abrevetilde}{1EB5}
-\pdfglyphtounicode{acaron}{01CE}
-\pdfglyphtounicode{acircle}{24D0}
-\pdfglyphtounicode{acircumflex}{00E2}
-\pdfglyphtounicode{acircumflexacute}{1EA5}
-\pdfglyphtounicode{acircumflexdotbelow}{1EAD}
-\pdfglyphtounicode{acircumflexgrave}{1EA7}
-\pdfglyphtounicode{acircumflexhookabove}{1EA9}
-\pdfglyphtounicode{acircumflextilde}{1EAB}
-\pdfglyphtounicode{acute}{00B4}
-\pdfglyphtounicode{acutebelowcmb}{0317}
-\pdfglyphtounicode{acutecmb}{0301}
-\pdfglyphtounicode{acutecomb}{0301}
-\pdfglyphtounicode{acutedeva}{0954}
-\pdfglyphtounicode{acutelowmod}{02CF}
-\pdfglyphtounicode{acutetonecmb}{0341}
-\pdfglyphtounicode{acyrillic}{0430}
-\pdfglyphtounicode{adblgrave}{0201}
-\pdfglyphtounicode{addakgurmukhi}{0A71}
-\pdfglyphtounicode{adeva}{0905}
-\pdfglyphtounicode{adieresis}{00E4}
-\pdfglyphtounicode{adieresiscyrillic}{04D3}
-\pdfglyphtounicode{adieresismacron}{01DF}
-\pdfglyphtounicode{adotbelow}{1EA1}
-\pdfglyphtounicode{adotmacron}{01E1}
-\pdfglyphtounicode{ae}{00E6}
-\pdfglyphtounicode{aeacute}{01FD}
-\pdfglyphtounicode{aekorean}{3150}
-\pdfglyphtounicode{aemacron}{01E3}
-\pdfglyphtounicode{afii00208}{2015}
-\pdfglyphtounicode{afii08941}{20A4}
-\pdfglyphtounicode{afii10017}{0410}
-\pdfglyphtounicode{afii10018}{0411}
-\pdfglyphtounicode{afii10019}{0412}
-\pdfglyphtounicode{afii10020}{0413}
-\pdfglyphtounicode{afii10021}{0414}
-\pdfglyphtounicode{afii10022}{0415}
-\pdfglyphtounicode{afii10023}{0401}
-\pdfglyphtounicode{afii10024}{0416}
-\pdfglyphtounicode{afii10025}{0417}
-\pdfglyphtounicode{afii10026}{0418}
-\pdfglyphtounicode{afii10027}{0419}
-\pdfglyphtounicode{afii10028}{041A}
-\pdfglyphtounicode{afii10029}{041B}
-\pdfglyphtounicode{afii10030}{041C}
-\pdfglyphtounicode{afii10031}{041D}
-\pdfglyphtounicode{afii10032}{041E}
-\pdfglyphtounicode{afii10033}{041F}
-\pdfglyphtounicode{afii10034}{0420}
-\pdfglyphtounicode{afii10035}{0421}
-\pdfglyphtounicode{afii10036}{0422}
-\pdfglyphtounicode{afii10037}{0423}
-\pdfglyphtounicode{afii10038}{0424}
-\pdfglyphtounicode{afii10039}{0425}
-\pdfglyphtounicode{afii10040}{0426}
-\pdfglyphtounicode{afii10041}{0427}
-\pdfglyphtounicode{afii10042}{0428}
-\pdfglyphtounicode{afii10043}{0429}
-\pdfglyphtounicode{afii10044}{042A}
-\pdfglyphtounicode{afii10045}{042B}
-\pdfglyphtounicode{afii10046}{042C}
-\pdfglyphtounicode{afii10047}{042D}
-\pdfglyphtounicode{afii10048}{042E}
-\pdfglyphtounicode{afii10049}{042F}
-\pdfglyphtounicode{afii10050}{0490}
-\pdfglyphtounicode{afii10051}{0402}
-\pdfglyphtounicode{afii10052}{0403}
-\pdfglyphtounicode{afii10053}{0404}
-\pdfglyphtounicode{afii10054}{0405}
-\pdfglyphtounicode{afii10055}{0406}
-\pdfglyphtounicode{afii10056}{0407}
-\pdfglyphtounicode{afii10057}{0408}
-\pdfglyphtounicode{afii10058}{0409}
-\pdfglyphtounicode{afii10059}{040A}
-\pdfglyphtounicode{afii10060}{040B}
-\pdfglyphtounicode{afii10061}{040C}
-\pdfglyphtounicode{afii10062}{040E}
-\pdfglyphtounicode{afii10063}{F6C4}
-\pdfglyphtounicode{afii10064}{F6C5}
-\pdfglyphtounicode{afii10065}{0430}
-\pdfglyphtounicode{afii10066}{0431}
-\pdfglyphtounicode{afii10067}{0432}
-\pdfglyphtounicode{afii10068}{0433}
-\pdfglyphtounicode{afii10069}{0434}
-\pdfglyphtounicode{afii10070}{0435}
-\pdfglyphtounicode{afii10071}{0451}
-\pdfglyphtounicode{afii10072}{0436}
-\pdfglyphtounicode{afii10073}{0437}
-\pdfglyphtounicode{afii10074}{0438}
-\pdfglyphtounicode{afii10075}{0439}
-\pdfglyphtounicode{afii10076}{043A}
-\pdfglyphtounicode{afii10077}{043B}
-\pdfglyphtounicode{afii10078}{043C}
-\pdfglyphtounicode{afii10079}{043D}
-\pdfglyphtounicode{afii10080}{043E}
-\pdfglyphtounicode{afii10081}{043F}
-\pdfglyphtounicode{afii10082}{0440}
-\pdfglyphtounicode{afii10083}{0441}
-\pdfglyphtounicode{afii10084}{0442}
-\pdfglyphtounicode{afii10085}{0443}
-\pdfglyphtounicode{afii10086}{0444}
-\pdfglyphtounicode{afii10087}{0445}
-\pdfglyphtounicode{afii10088}{0446}
-\pdfglyphtounicode{afii10089}{0447}
-\pdfglyphtounicode{afii10090}{0448}
-\pdfglyphtounicode{afii10091}{0449}
-\pdfglyphtounicode{afii10092}{044A}
-\pdfglyphtounicode{afii10093}{044B}
-\pdfglyphtounicode{afii10094}{044C}
-\pdfglyphtounicode{afii10095}{044D}
-\pdfglyphtounicode{afii10096}{044E}
-\pdfglyphtounicode{afii10097}{044F}
-\pdfglyphtounicode{afii10098}{0491}
-\pdfglyphtounicode{afii10099}{0452}
-\pdfglyphtounicode{afii10100}{0453}
-\pdfglyphtounicode{afii10101}{0454}
-\pdfglyphtounicode{afii10102}{0455}
-\pdfglyphtounicode{afii10103}{0456}
-\pdfglyphtounicode{afii10104}{0457}
-\pdfglyphtounicode{afii10105}{0458}
-\pdfglyphtounicode{afii10106}{0459}
-\pdfglyphtounicode{afii10107}{045A}
-\pdfglyphtounicode{afii10108}{045B}
-\pdfglyphtounicode{afii10109}{045C}
-\pdfglyphtounicode{afii10110}{045E}
-\pdfglyphtounicode{afii10145}{040F}
-\pdfglyphtounicode{afii10146}{0462}
-\pdfglyphtounicode{afii10147}{0472}
-\pdfglyphtounicode{afii10148}{0474}
-\pdfglyphtounicode{afii10192}{F6C6}
-\pdfglyphtounicode{afii10193}{045F}
-\pdfglyphtounicode{afii10194}{0463}
-\pdfglyphtounicode{afii10195}{0473}
-\pdfglyphtounicode{afii10196}{0475}
-\pdfglyphtounicode{afii10831}{F6C7}
-\pdfglyphtounicode{afii10832}{F6C8}
-\pdfglyphtounicode{afii10846}{04D9}
-\pdfglyphtounicode{afii299}{200E}
-\pdfglyphtounicode{afii300}{200F}
-\pdfglyphtounicode{afii301}{200D}
-\pdfglyphtounicode{afii57381}{066A}
-\pdfglyphtounicode{afii57388}{060C}
-\pdfglyphtounicode{afii57392}{0660}
-\pdfglyphtounicode{afii57393}{0661}
-\pdfglyphtounicode{afii57394}{0662}
-\pdfglyphtounicode{afii57395}{0663}
-\pdfglyphtounicode{afii57396}{0664}
-\pdfglyphtounicode{afii57397}{0665}
-\pdfglyphtounicode{afii57398}{0666}
-\pdfglyphtounicode{afii57399}{0667}
-\pdfglyphtounicode{afii57400}{0668}
-\pdfglyphtounicode{afii57401}{0669}
-\pdfglyphtounicode{afii57403}{061B}
-\pdfglyphtounicode{afii57407}{061F}
-\pdfglyphtounicode{afii57409}{0621}
-\pdfglyphtounicode{afii57410}{0622}
-\pdfglyphtounicode{afii57411}{0623}
-\pdfglyphtounicode{afii57412}{0624}
-\pdfglyphtounicode{afii57413}{0625}
-\pdfglyphtounicode{afii57414}{0626}
-\pdfglyphtounicode{afii57415}{0627}
-\pdfglyphtounicode{afii57416}{0628}
-\pdfglyphtounicode{afii57417}{0629}
-\pdfglyphtounicode{afii57418}{062A}
-\pdfglyphtounicode{afii57419}{062B}
-\pdfglyphtounicode{afii57420}{062C}
-\pdfglyphtounicode{afii57421}{062D}
-\pdfglyphtounicode{afii57422}{062E}
-\pdfglyphtounicode{afii57423}{062F}
-\pdfglyphtounicode{afii57424}{0630}
-\pdfglyphtounicode{afii57425}{0631}
-\pdfglyphtounicode{afii57426}{0632}
-\pdfglyphtounicode{afii57427}{0633}
-\pdfglyphtounicode{afii57428}{0634}
-\pdfglyphtounicode{afii57429}{0635}
-\pdfglyphtounicode{afii57430}{0636}
-\pdfglyphtounicode{afii57431}{0637}
-\pdfglyphtounicode{afii57432}{0638}
-\pdfglyphtounicode{afii57433}{0639}
-\pdfglyphtounicode{afii57434}{063A}
-\pdfglyphtounicode{afii57440}{0640}
-\pdfglyphtounicode{afii57441}{0641}
-\pdfglyphtounicode{afii57442}{0642}
-\pdfglyphtounicode{afii57443}{0643}
-\pdfglyphtounicode{afii57444}{0644}
-\pdfglyphtounicode{afii57445}{0645}
-\pdfglyphtounicode{afii57446}{0646}
-\pdfglyphtounicode{afii57448}{0648}
-\pdfglyphtounicode{afii57449}{0649}
-\pdfglyphtounicode{afii57450}{064A}
-\pdfglyphtounicode{afii57451}{064B}
-\pdfglyphtounicode{afii57452}{064C}
-\pdfglyphtounicode{afii57453}{064D}
-\pdfglyphtounicode{afii57454}{064E}
-\pdfglyphtounicode{afii57455}{064F}
-\pdfglyphtounicode{afii57456}{0650}
-\pdfglyphtounicode{afii57457}{0651}
-\pdfglyphtounicode{afii57458}{0652}
-\pdfglyphtounicode{afii57470}{0647}
-\pdfglyphtounicode{afii57505}{06A4}
-\pdfglyphtounicode{afii57506}{067E}
-\pdfglyphtounicode{afii57507}{0686}
-\pdfglyphtounicode{afii57508}{0698}
-\pdfglyphtounicode{afii57509}{06AF}
-\pdfglyphtounicode{afii57511}{0679}
-\pdfglyphtounicode{afii57512}{0688}
-\pdfglyphtounicode{afii57513}{0691}
-\pdfglyphtounicode{afii57514}{06BA}
-\pdfglyphtounicode{afii57519}{06D2}
-\pdfglyphtounicode{afii57534}{06D5}
-\pdfglyphtounicode{afii57636}{20AA}
-\pdfglyphtounicode{afii57645}{05BE}
-\pdfglyphtounicode{afii57658}{05C3}
-\pdfglyphtounicode{afii57664}{05D0}
-\pdfglyphtounicode{afii57665}{05D1}
-\pdfglyphtounicode{afii57666}{05D2}
-\pdfglyphtounicode{afii57667}{05D3}
-\pdfglyphtounicode{afii57668}{05D4}
-\pdfglyphtounicode{afii57669}{05D5}
-\pdfglyphtounicode{afii57670}{05D6}
-\pdfglyphtounicode{afii57671}{05D7}
-\pdfglyphtounicode{afii57672}{05D8}
-\pdfglyphtounicode{afii57673}{05D9}
-\pdfglyphtounicode{afii57674}{05DA}
-\pdfglyphtounicode{afii57675}{05DB}
-\pdfglyphtounicode{afii57676}{05DC}
-\pdfglyphtounicode{afii57677}{05DD}
-\pdfglyphtounicode{afii57678}{05DE}
-\pdfglyphtounicode{afii57679}{05DF}
-\pdfglyphtounicode{afii57680}{05E0}
-\pdfglyphtounicode{afii57681}{05E1}
-\pdfglyphtounicode{afii57682}{05E2}
-\pdfglyphtounicode{afii57683}{05E3}
-\pdfglyphtounicode{afii57684}{05E4}
-\pdfglyphtounicode{afii57685}{05E5}
-\pdfglyphtounicode{afii57686}{05E6}
-\pdfglyphtounicode{afii57687}{05E7}
-\pdfglyphtounicode{afii57688}{05E8}
-\pdfglyphtounicode{afii57689}{05E9}
-\pdfglyphtounicode{afii57690}{05EA}
-\pdfglyphtounicode{afii57694}{FB2A}
-\pdfglyphtounicode{afii57695}{FB2B}
-\pdfglyphtounicode{afii57700}{FB4B}
-\pdfglyphtounicode{afii57705}{FB1F}
-\pdfglyphtounicode{afii57716}{05F0}
-\pdfglyphtounicode{afii57717}{05F1}
-\pdfglyphtounicode{afii57718}{05F2}
-\pdfglyphtounicode{afii57723}{FB35}
-\pdfglyphtounicode{afii57793}{05B4}
-\pdfglyphtounicode{afii57794}{05B5}
-\pdfglyphtounicode{afii57795}{05B6}
-\pdfglyphtounicode{afii57796}{05BB}
-\pdfglyphtounicode{afii57797}{05B8}
-\pdfglyphtounicode{afii57798}{05B7}
-\pdfglyphtounicode{afii57799}{05B0}
-\pdfglyphtounicode{afii57800}{05B2}
-\pdfglyphtounicode{afii57801}{05B1}
-\pdfglyphtounicode{afii57802}{05B3}
-\pdfglyphtounicode{afii57803}{05C2}
-\pdfglyphtounicode{afii57804}{05C1}
-\pdfglyphtounicode{afii57806}{05B9}
-\pdfglyphtounicode{afii57807}{05BC}
-\pdfglyphtounicode{afii57839}{05BD}
-\pdfglyphtounicode{afii57841}{05BF}
-\pdfglyphtounicode{afii57842}{05C0}
-\pdfglyphtounicode{afii57929}{02BC}
-\pdfglyphtounicode{afii61248}{2105}
-\pdfglyphtounicode{afii61289}{2113}
-\pdfglyphtounicode{afii61352}{2116}
-\pdfglyphtounicode{afii61573}{202C}
-\pdfglyphtounicode{afii61574}{202D}
-\pdfglyphtounicode{afii61575}{202E}
-\pdfglyphtounicode{afii61664}{200C}
-\pdfglyphtounicode{afii63167}{066D}
-\pdfglyphtounicode{afii64937}{02BD}
-\pdfglyphtounicode{agrave}{00E0}
-\pdfglyphtounicode{agujarati}{0A85}
-\pdfglyphtounicode{agurmukhi}{0A05}
-\pdfglyphtounicode{ahiragana}{3042}
-\pdfglyphtounicode{ahookabove}{1EA3}
-\pdfglyphtounicode{aibengali}{0990}
-\pdfglyphtounicode{aibopomofo}{311E}
-\pdfglyphtounicode{aideva}{0910}
-\pdfglyphtounicode{aiecyrillic}{04D5}
-\pdfglyphtounicode{aigujarati}{0A90}
-\pdfglyphtounicode{aigurmukhi}{0A10}
-\pdfglyphtounicode{aimatragurmukhi}{0A48}
-\pdfglyphtounicode{ainarabic}{0639}
-\pdfglyphtounicode{ainfinalarabic}{FECA}
-\pdfglyphtounicode{aininitialarabic}{FECB}
-\pdfglyphtounicode{ainmedialarabic}{FECC}
-\pdfglyphtounicode{ainvertedbreve}{0203}
-\pdfglyphtounicode{aivowelsignbengali}{09C8}
-\pdfglyphtounicode{aivowelsigndeva}{0948}
-\pdfglyphtounicode{aivowelsigngujarati}{0AC8}
-\pdfglyphtounicode{akatakana}{30A2}
-\pdfglyphtounicode{akatakanahalfwidth}{FF71}
-\pdfglyphtounicode{akorean}{314F}
-\pdfglyphtounicode{alef}{05D0}
-\pdfglyphtounicode{alefarabic}{0627}
-\pdfglyphtounicode{alefdageshhebrew}{FB30}
-\pdfglyphtounicode{aleffinalarabic}{FE8E}
-\pdfglyphtounicode{alefhamzaabovearabic}{0623}
-\pdfglyphtounicode{alefhamzaabovefinalarabic}{FE84}
-\pdfglyphtounicode{alefhamzabelowarabic}{0625}
-\pdfglyphtounicode{alefhamzabelowfinalarabic}{FE88}
-\pdfglyphtounicode{alefhebrew}{05D0}
-\pdfglyphtounicode{aleflamedhebrew}{FB4F}
-\pdfglyphtounicode{alefmaddaabovearabic}{0622}
-\pdfglyphtounicode{alefmaddaabovefinalarabic}{FE82}
-\pdfglyphtounicode{alefmaksuraarabic}{0649}
-\pdfglyphtounicode{alefmaksurafinalarabic}{FEF0}
-\pdfglyphtounicode{alefmaksurainitialarabic}{FEF3}
-\pdfglyphtounicode{alefmaksuramedialarabic}{FEF4}
-\pdfglyphtounicode{alefpatahhebrew}{FB2E}
-\pdfglyphtounicode{alefqamatshebrew}{FB2F}
-\pdfglyphtounicode{aleph}{2135}
-\pdfglyphtounicode{allequal}{224C}
-\pdfglyphtounicode{alpha}{03B1}
-\pdfglyphtounicode{alphatonos}{03AC}
-\pdfglyphtounicode{amacron}{0101}
-\pdfglyphtounicode{amonospace}{FF41}
-\pdfglyphtounicode{ampersand}{0026}
-\pdfglyphtounicode{ampersandmonospace}{FF06}
-\pdfglyphtounicode{ampersandsmall}{0026}
-\pdfglyphtounicode{amsquare}{33C2}
-\pdfglyphtounicode{anbopomofo}{3122}
-\pdfglyphtounicode{angbopomofo}{3124}
-\pdfglyphtounicode{angbracketleft}{27E8}
-\pdfglyphtounicode{angbracketright}{27E9}
-\pdfglyphtounicode{angkhankhuthai}{0E5A}
-\pdfglyphtounicode{angle}{2220}
-\pdfglyphtounicode{anglebracketleft}{3008}
-\pdfglyphtounicode{anglebracketleftvertical}{FE3F}
-\pdfglyphtounicode{anglebracketright}{3009}
-\pdfglyphtounicode{anglebracketrightvertical}{FE40}
-\pdfglyphtounicode{angleleft}{2329}
-\pdfglyphtounicode{angleright}{232A}
-\pdfglyphtounicode{angstrom}{212B}
-\pdfglyphtounicode{anoteleia}{0387}
-\pdfglyphtounicode{anticlockwise}{27F2}
-\pdfglyphtounicode{anudattadeva}{0952}
-\pdfglyphtounicode{anusvarabengali}{0982}
-\pdfglyphtounicode{anusvaradeva}{0902}
-\pdfglyphtounicode{anusvaragujarati}{0A82}
-\pdfglyphtounicode{aogonek}{0105}
-\pdfglyphtounicode{apaatosquare}{3300}
-\pdfglyphtounicode{aparen}{249C}
-\pdfglyphtounicode{apostrophearmenian}{055A}
-\pdfglyphtounicode{apostrophemod}{02BC}
-\pdfglyphtounicode{apple}{F8FF}
-\pdfglyphtounicode{approaches}{2250}
-\pdfglyphtounicode{approxequal}{2248}
-\pdfglyphtounicode{approxequalorimage}{2252}
-\pdfglyphtounicode{approximatelyequal}{2245}
-\pdfglyphtounicode{approxorequal}{224A}
-\pdfglyphtounicode{araeaekorean}{318E}
-\pdfglyphtounicode{araeakorean}{318D}
-\pdfglyphtounicode{arc}{2312}
-\pdfglyphtounicode{archleftdown}{21B6}
-\pdfglyphtounicode{archrightdown}{21B7}
-\pdfglyphtounicode{arighthalfring}{1E9A}
-\pdfglyphtounicode{aring}{00E5}
-\pdfglyphtounicode{aringacute}{01FB}
-\pdfglyphtounicode{aringbelow}{1E01}
-\pdfglyphtounicode{arrowboth}{2194}
-\pdfglyphtounicode{arrowbothv}{2195}
-\pdfglyphtounicode{arrowdashdown}{21E3}
-\pdfglyphtounicode{arrowdashleft}{21E0}
-\pdfglyphtounicode{arrowdashright}{21E2}
-\pdfglyphtounicode{arrowdashup}{21E1}
-\pdfglyphtounicode{arrowdblboth}{21D4}
-\pdfglyphtounicode{arrowdblbothv}{21D5}
-\pdfglyphtounicode{arrowdbldown}{21D3}
-\pdfglyphtounicode{arrowdblleft}{21D0}
-\pdfglyphtounicode{arrowdblright}{21D2}
-\pdfglyphtounicode{arrowdblup}{21D1}
-\pdfglyphtounicode{arrowdown}{2193}
-\pdfglyphtounicode{arrowdownleft}{2199}
-\pdfglyphtounicode{arrowdownright}{2198}
-\pdfglyphtounicode{arrowdownwhite}{21E9}
-\pdfglyphtounicode{arrowheaddownmod}{02C5}
-\pdfglyphtounicode{arrowheadleftmod}{02C2}
-\pdfglyphtounicode{arrowheadrightmod}{02C3}
-\pdfglyphtounicode{arrowheadupmod}{02C4}
-\pdfglyphtounicode{arrowhorizex}{F8E7}
-\pdfglyphtounicode{arrowleft}{2190}
-\pdfglyphtounicode{arrowleftbothalf}{21BD}
-\pdfglyphtounicode{arrowleftdbl}{21D0}
-\pdfglyphtounicode{arrowleftdblstroke}{21CD}
-\pdfglyphtounicode{arrowleftoverright}{21C6}
-\pdfglyphtounicode{arrowlefttophalf}{21BC}
-\pdfglyphtounicode{arrowleftwhite}{21E6}
-\pdfglyphtounicode{arrownortheast}{2197}
-\pdfglyphtounicode{arrownorthwest}{2196}
-\pdfglyphtounicode{arrowparrleftright}{21C6}
-\pdfglyphtounicode{arrowparrrightleft}{21C4}
-\pdfglyphtounicode{arrowright}{2192}
-\pdfglyphtounicode{arrowrightbothalf}{21C1}
-\pdfglyphtounicode{arrowrightdblstroke}{21CF}
-\pdfglyphtounicode{arrowrightheavy}{279E}
-\pdfglyphtounicode{arrowrightoverleft}{21C4}
-\pdfglyphtounicode{arrowrighttophalf}{21C0}
-\pdfglyphtounicode{arrowrightwhite}{21E8}
-\pdfglyphtounicode{arrowsoutheast}{2198}
-\pdfglyphtounicode{arrowsouthwest}{2199}
-\pdfglyphtounicode{arrowtableft}{21E4}
-\pdfglyphtounicode{arrowtabright}{21E5}
-\pdfglyphtounicode{arrowtailleft}{21A2}
-\pdfglyphtounicode{arrowtailright}{21A3}
-\pdfglyphtounicode{arrowtripleleft}{21DA}
-\pdfglyphtounicode{arrowtripleright}{21DB}
-\pdfglyphtounicode{arrowup}{2191}
-\pdfglyphtounicode{arrowupdn}{2195}
-\pdfglyphtounicode{arrowupdnbse}{21A8}
-\pdfglyphtounicode{arrowupdownbase}{21A8}
-\pdfglyphtounicode{arrowupleft}{2196}
-\pdfglyphtounicode{arrowupleftofdown}{21C5}
-\pdfglyphtounicode{arrowupright}{2197}
-\pdfglyphtounicode{arrowupwhite}{21E7}
-\pdfglyphtounicode{arrowvertex}{F8E6}
-\pdfglyphtounicode{asciicircum}{005E}
-\pdfglyphtounicode{asciicircummonospace}{FF3E}
-\pdfglyphtounicode{asciitilde}{007E}
-\pdfglyphtounicode{asciitildemonospace}{FF5E}
-\pdfglyphtounicode{ascript}{0251}
-\pdfglyphtounicode{ascriptturned}{0252}
-\pdfglyphtounicode{asmallhiragana}{3041}
-\pdfglyphtounicode{asmallkatakana}{30A1}
-\pdfglyphtounicode{asmallkatakanahalfwidth}{FF67}
-\pdfglyphtounicode{asterisk}{002A}
-\pdfglyphtounicode{asteriskaltonearabic}{066D}
-\pdfglyphtounicode{asteriskarabic}{066D}
-\pdfglyphtounicode{asteriskcentered}{2217}
-\pdfglyphtounicode{asteriskmath}{2217}
-\pdfglyphtounicode{asteriskmonospace}{FF0A}
-\pdfglyphtounicode{asterisksmall}{FE61}
-\pdfglyphtounicode{asterism}{2042}
-\pdfglyphtounicode{asuperior}{0061}
-\pdfglyphtounicode{asymptoticallyequal}{2243}
-\pdfglyphtounicode{at}{0040}
-\pdfglyphtounicode{atilde}{00E3}
-\pdfglyphtounicode{atmonospace}{FF20}
-\pdfglyphtounicode{atsmall}{FE6B}
-\pdfglyphtounicode{aturned}{0250}
-\pdfglyphtounicode{aubengali}{0994}
-\pdfglyphtounicode{aubopomofo}{3120}
-\pdfglyphtounicode{audeva}{0914}
-\pdfglyphtounicode{augujarati}{0A94}
-\pdfglyphtounicode{augurmukhi}{0A14}
-\pdfglyphtounicode{aulengthmarkbengali}{09D7}
-\pdfglyphtounicode{aumatragurmukhi}{0A4C}
-\pdfglyphtounicode{auvowelsignbengali}{09CC}
-\pdfglyphtounicode{auvowelsigndeva}{094C}
-\pdfglyphtounicode{auvowelsigngujarati}{0ACC}
-\pdfglyphtounicode{avagrahadeva}{093D}
-\pdfglyphtounicode{aybarmenian}{0561}
-\pdfglyphtounicode{ayin}{05E2}
-\pdfglyphtounicode{ayinaltonehebrew}{FB20}
-\pdfglyphtounicode{ayinhebrew}{05E2}
-\pdfglyphtounicode{b}{0062}
-\pdfglyphtounicode{babengali}{09AC}
-\pdfglyphtounicode{backslash}{005C}
-\pdfglyphtounicode{backslashmonospace}{FF3C}
-\pdfglyphtounicode{badeva}{092C}
-\pdfglyphtounicode{bagujarati}{0AAC}
-\pdfglyphtounicode{bagurmukhi}{0A2C}
-\pdfglyphtounicode{bahiragana}{3070}
-\pdfglyphtounicode{bahtthai}{0E3F}
-\pdfglyphtounicode{bakatakana}{30D0}
-\pdfglyphtounicode{bar}{007C}
-\pdfglyphtounicode{bardbl}{2225}
-\pdfglyphtounicode{barmonospace}{FF5C}
-\pdfglyphtounicode{bbopomofo}{3105}
-\pdfglyphtounicode{bcircle}{24D1}
-\pdfglyphtounicode{bdotaccent}{1E03}
-\pdfglyphtounicode{bdotbelow}{1E05}
-\pdfglyphtounicode{beamedsixteenthnotes}{266C}
-\pdfglyphtounicode{because}{2235}
-\pdfglyphtounicode{becyrillic}{0431}
-\pdfglyphtounicode{beharabic}{0628}
-\pdfglyphtounicode{behfinalarabic}{FE90}
-\pdfglyphtounicode{behinitialarabic}{FE91}
-\pdfglyphtounicode{behiragana}{3079}
-\pdfglyphtounicode{behmedialarabic}{FE92}
-\pdfglyphtounicode{behmeeminitialarabic}{FC9F}
-\pdfglyphtounicode{behmeemisolatedarabic}{FC08}
-\pdfglyphtounicode{behnoonfinalarabic}{FC6D}
-\pdfglyphtounicode{bekatakana}{30D9}
-\pdfglyphtounicode{benarmenian}{0562}
-\pdfglyphtounicode{bet}{05D1}
-\pdfglyphtounicode{beta}{03B2}
-\pdfglyphtounicode{betasymbolgreek}{03D0}
-\pdfglyphtounicode{betdagesh}{FB31}
-\pdfglyphtounicode{betdageshhebrew}{FB31}
-\pdfglyphtounicode{beth}{2136}
-\pdfglyphtounicode{bethebrew}{05D1}
-\pdfglyphtounicode{betrafehebrew}{FB4C}
-\pdfglyphtounicode{between}{226C}
-\pdfglyphtounicode{bhabengali}{09AD}
-\pdfglyphtounicode{bhadeva}{092D}
-\pdfglyphtounicode{bhagujarati}{0AAD}
-\pdfglyphtounicode{bhagurmukhi}{0A2D}
-\pdfglyphtounicode{bhook}{0253}
-\pdfglyphtounicode{bihiragana}{3073}
-\pdfglyphtounicode{bikatakana}{30D3}
-\pdfglyphtounicode{bilabialclick}{0298}
-\pdfglyphtounicode{bindigurmukhi}{0A02}
-\pdfglyphtounicode{birusquare}{3331}
-\pdfglyphtounicode{blackcircle}{25CF}
-\pdfglyphtounicode{blackdiamond}{25C6}
-\pdfglyphtounicode{blackdownpointingtriangle}{25BC}
-\pdfglyphtounicode{blackleftpointingpointer}{25C4}
-\pdfglyphtounicode{blackleftpointingtriangle}{25C0}
-\pdfglyphtounicode{blacklenticularbracketleft}{3010}
-\pdfglyphtounicode{blacklenticularbracketleftvertical}{FE3B}
-\pdfglyphtounicode{blacklenticularbracketright}{3011}
-\pdfglyphtounicode{blacklenticularbracketrightvertical}{FE3C}
-\pdfglyphtounicode{blacklowerlefttriangle}{25E3}
-\pdfglyphtounicode{blacklowerrighttriangle}{25E2}
-\pdfglyphtounicode{blackrectangle}{25AC}
-\pdfglyphtounicode{blackrightpointingpointer}{25BA}
-\pdfglyphtounicode{blackrightpointingtriangle}{25B6}
-\pdfglyphtounicode{blacksmallsquare}{25AA}
-\pdfglyphtounicode{blacksmilingface}{263B}
-\pdfglyphtounicode{blacksquare}{25A0}
-\pdfglyphtounicode{blackstar}{2605}
-\pdfglyphtounicode{blackupperlefttriangle}{25E4}
-\pdfglyphtounicode{blackupperrighttriangle}{25E5}
-\pdfglyphtounicode{blackuppointingsmalltriangle}{25B4}
-\pdfglyphtounicode{blackuppointingtriangle}{25B2}
-\pdfglyphtounicode{blank}{2423}
-\pdfglyphtounicode{blinebelow}{1E07}
-\pdfglyphtounicode{block}{2588}
-\pdfglyphtounicode{bmonospace}{FF42}
-\pdfglyphtounicode{bobaimaithai}{0E1A}
-\pdfglyphtounicode{bohiragana}{307C}
-\pdfglyphtounicode{bokatakana}{30DC}
-\pdfglyphtounicode{bparen}{249D}
-\pdfglyphtounicode{bqsquare}{33C3}
-\pdfglyphtounicode{braceex}{F8F4}
-\pdfglyphtounicode{braceleft}{007B}
-\pdfglyphtounicode{braceleftbt}{F8F3}
-\pdfglyphtounicode{braceleftmid}{F8F2}
-\pdfglyphtounicode{braceleftmonospace}{FF5B}
-\pdfglyphtounicode{braceleftsmall}{FE5B}
-\pdfglyphtounicode{bracelefttp}{F8F1}
-\pdfglyphtounicode{braceleftvertical}{FE37}
-\pdfglyphtounicode{braceright}{007D}
-\pdfglyphtounicode{bracerightbt}{F8FE}
-\pdfglyphtounicode{bracerightmid}{F8FD}
-\pdfglyphtounicode{bracerightmonospace}{FF5D}
-\pdfglyphtounicode{bracerightsmall}{FE5C}
-\pdfglyphtounicode{bracerighttp}{F8FC}
-\pdfglyphtounicode{bracerightvertical}{FE38}
-\pdfglyphtounicode{bracketleft}{005B}
-\pdfglyphtounicode{bracketleftbt}{F8F0}
-\pdfglyphtounicode{bracketleftex}{F8EF}
-\pdfglyphtounicode{bracketleftmonospace}{FF3B}
-\pdfglyphtounicode{bracketlefttp}{F8EE}
-\pdfglyphtounicode{bracketright}{005D}
-\pdfglyphtounicode{bracketrightbt}{F8FB}
-\pdfglyphtounicode{bracketrightex}{F8FA}
-\pdfglyphtounicode{bracketrightmonospace}{FF3D}
-\pdfglyphtounicode{bracketrighttp}{F8F9}
-\pdfglyphtounicode{breve}{02D8}
-\pdfglyphtounicode{brevebelowcmb}{032E}
-\pdfglyphtounicode{brevecmb}{0306}
-\pdfglyphtounicode{breveinvertedbelowcmb}{032F}
-\pdfglyphtounicode{breveinvertedcmb}{0311}
-\pdfglyphtounicode{breveinverteddoublecmb}{0361}
-\pdfglyphtounicode{bridgebelowcmb}{032A}
-\pdfglyphtounicode{bridgeinvertedbelowcmb}{033A}
-\pdfglyphtounicode{brokenbar}{00A6}
-\pdfglyphtounicode{bstroke}{0180}
-\pdfglyphtounicode{bsuperior}{0062}
-\pdfglyphtounicode{btopbar}{0183}
-\pdfglyphtounicode{buhiragana}{3076}
-\pdfglyphtounicode{bukatakana}{30D6}
-\pdfglyphtounicode{bullet}{2022}
-\pdfglyphtounicode{bulletinverse}{25D8}
-\pdfglyphtounicode{bulletoperator}{2219}
-\pdfglyphtounicode{bullseye}{25CE}
-\pdfglyphtounicode{c}{0063}
-\pdfglyphtounicode{caarmenian}{056E}
-\pdfglyphtounicode{cabengali}{099A}
-\pdfglyphtounicode{cacute}{0107}
-\pdfglyphtounicode{cadeva}{091A}
-\pdfglyphtounicode{cagujarati}{0A9A}
-\pdfglyphtounicode{cagurmukhi}{0A1A}
-\pdfglyphtounicode{calsquare}{3388}
-\pdfglyphtounicode{candrabindubengali}{0981}
-\pdfglyphtounicode{candrabinducmb}{0310}
-\pdfglyphtounicode{candrabindudeva}{0901}
-\pdfglyphtounicode{candrabindugujarati}{0A81}
-\pdfglyphtounicode{capslock}{21EA}
-\pdfglyphtounicode{careof}{2105}
-\pdfglyphtounicode{caron}{02C7}
-\pdfglyphtounicode{caronbelowcmb}{032C}
-\pdfglyphtounicode{caroncmb}{030C}
-\pdfglyphtounicode{carriagereturn}{21B5}
-\pdfglyphtounicode{cbopomofo}{3118}
-\pdfglyphtounicode{ccaron}{010D}
-\pdfglyphtounicode{ccedilla}{00E7}
-\pdfglyphtounicode{ccedillaacute}{1E09}
-\pdfglyphtounicode{ccircle}{24D2}
-\pdfglyphtounicode{ccircumflex}{0109}
-\pdfglyphtounicode{ccurl}{0255}
-\pdfglyphtounicode{cdot}{010B}
-\pdfglyphtounicode{cdotaccent}{010B}
-\pdfglyphtounicode{cdsquare}{33C5}
-\pdfglyphtounicode{cedilla}{00B8}
-\pdfglyphtounicode{cedillacmb}{0327}
-\pdfglyphtounicode{ceilingleft}{2308}
-\pdfglyphtounicode{ceilingright}{2309}
-\pdfglyphtounicode{cent}{00A2}
-\pdfglyphtounicode{centigrade}{2103}
-\pdfglyphtounicode{centinferior}{00A2}
-\pdfglyphtounicode{centmonospace}{FFE0}
-\pdfglyphtounicode{centoldstyle}{00A2}
-\pdfglyphtounicode{centsuperior}{00A2}
-\pdfglyphtounicode{chaarmenian}{0579}
-\pdfglyphtounicode{chabengali}{099B}
-\pdfglyphtounicode{chadeva}{091B}
-\pdfglyphtounicode{chagujarati}{0A9B}
-\pdfglyphtounicode{chagurmukhi}{0A1B}
-\pdfglyphtounicode{chbopomofo}{3114}
-\pdfglyphtounicode{cheabkhasiancyrillic}{04BD}
-\pdfglyphtounicode{check}{2713}
-\pdfglyphtounicode{checkmark}{2713}
-\pdfglyphtounicode{checyrillic}{0447}
-\pdfglyphtounicode{chedescenderabkhasiancyrillic}{04BF}
-\pdfglyphtounicode{chedescendercyrillic}{04B7}
-\pdfglyphtounicode{chedieresiscyrillic}{04F5}
-\pdfglyphtounicode{cheharmenian}{0573}
-\pdfglyphtounicode{chekhakassiancyrillic}{04CC}
-\pdfglyphtounicode{cheverticalstrokecyrillic}{04B9}
-\pdfglyphtounicode{chi}{03C7}
-\pdfglyphtounicode{chieuchacirclekorean}{3277}
-\pdfglyphtounicode{chieuchaparenkorean}{3217}
-\pdfglyphtounicode{chieuchcirclekorean}{3269}
-\pdfglyphtounicode{chieuchkorean}{314A}
-\pdfglyphtounicode{chieuchparenkorean}{3209}
-\pdfglyphtounicode{chochangthai}{0E0A}
-\pdfglyphtounicode{chochanthai}{0E08}
-\pdfglyphtounicode{chochingthai}{0E09}
-\pdfglyphtounicode{chochoethai}{0E0C}
-\pdfglyphtounicode{chook}{0188}
-\pdfglyphtounicode{cieucacirclekorean}{3276}
-\pdfglyphtounicode{cieucaparenkorean}{3216}
-\pdfglyphtounicode{cieuccirclekorean}{3268}
-\pdfglyphtounicode{cieuckorean}{3148}
-\pdfglyphtounicode{cieucparenkorean}{3208}
-\pdfglyphtounicode{cieucuparenkorean}{321C}
-\pdfglyphtounicode{circle}{25CB}
-\pdfglyphtounicode{circleR}{00AE}
-\pdfglyphtounicode{circleS}{24C8}
-\pdfglyphtounicode{circleasterisk}{229B}
-\pdfglyphtounicode{circlecopyrt}{20DD}
-\pdfglyphtounicode{circledivide}{2298}
-\pdfglyphtounicode{circledot}{2299}
-\pdfglyphtounicode{circleequal}{229C}
-\pdfglyphtounicode{circleminus}{2296}
-\pdfglyphtounicode{circlemultiply}{2297}
-\pdfglyphtounicode{circleot}{2299}
-\pdfglyphtounicode{circleplus}{2295}
-\pdfglyphtounicode{circlepostalmark}{3036}
-\pdfglyphtounicode{circlering}{229A}
-\pdfglyphtounicode{circlewithlefthalfblack}{25D0}
-\pdfglyphtounicode{circlewithrighthalfblack}{25D1}
-\pdfglyphtounicode{circumflex}{02C6}
-\pdfglyphtounicode{circumflexbelowcmb}{032D}
-\pdfglyphtounicode{circumflexcmb}{0302}
-\pdfglyphtounicode{clear}{2327}
-\pdfglyphtounicode{clickalveolar}{01C2}
-\pdfglyphtounicode{clickdental}{01C0}
-\pdfglyphtounicode{clicklateral}{01C1}
-\pdfglyphtounicode{clickretroflex}{01C3}
-\pdfglyphtounicode{clockwise}{27F3}
-\pdfglyphtounicode{club}{2663}
-\pdfglyphtounicode{clubsuitblack}{2663}
-\pdfglyphtounicode{clubsuitwhite}{2667}
-\pdfglyphtounicode{cmcubedsquare}{33A4}
-\pdfglyphtounicode{cmonospace}{FF43}
-\pdfglyphtounicode{cmsquaredsquare}{33A0}
-\pdfglyphtounicode{coarmenian}{0581}
-\pdfglyphtounicode{colon}{003A}
-\pdfglyphtounicode{colonmonetary}{20A1}
-\pdfglyphtounicode{colonmonospace}{FF1A}
-\pdfglyphtounicode{colonsign}{20A1}
-\pdfglyphtounicode{colonsmall}{FE55}
-\pdfglyphtounicode{colontriangularhalfmod}{02D1}
-\pdfglyphtounicode{colontriangularmod}{02D0}
-\pdfglyphtounicode{comma}{002C}
-\pdfglyphtounicode{commaabovecmb}{0313}
-\pdfglyphtounicode{commaaboverightcmb}{0315}
-\pdfglyphtounicode{commaaccent}{F6C3}
-\pdfglyphtounicode{commaarabic}{060C}
-\pdfglyphtounicode{commaarmenian}{055D}
-\pdfglyphtounicode{commainferior}{002C}
-\pdfglyphtounicode{commamonospace}{FF0C}
-\pdfglyphtounicode{commareversedabovecmb}{0314}
-\pdfglyphtounicode{commareversedmod}{02BD}
-\pdfglyphtounicode{commasmall}{FE50}
-\pdfglyphtounicode{commasuperior}{002C}
-\pdfglyphtounicode{commaturnedabovecmb}{0312}
-\pdfglyphtounicode{commaturnedmod}{02BB}
-\pdfglyphtounicode{compass}{263C}
-\pdfglyphtounicode{complement}{2201}
-\pdfglyphtounicode{compwordmark}{200C}
-\pdfglyphtounicode{congruent}{2245}
-\pdfglyphtounicode{contourintegral}{222E}
-\pdfglyphtounicode{control}{2303}
-\pdfglyphtounicode{controlACK}{0006}
-\pdfglyphtounicode{controlBEL}{0007}
-\pdfglyphtounicode{controlBS}{0008}
-\pdfglyphtounicode{controlCAN}{0018}
-\pdfglyphtounicode{controlCR}{000D}
-\pdfglyphtounicode{controlDC1}{0011}
-\pdfglyphtounicode{controlDC2}{0012}
-\pdfglyphtounicode{controlDC3}{0013}
-\pdfglyphtounicode{controlDC4}{0014}
-\pdfglyphtounicode{controlDEL}{007F}
-\pdfglyphtounicode{controlDLE}{0010}
-\pdfglyphtounicode{controlEM}{0019}
-\pdfglyphtounicode{controlENQ}{0005}
-\pdfglyphtounicode{controlEOT}{0004}
-\pdfglyphtounicode{controlESC}{001B}
-\pdfglyphtounicode{controlETB}{0017}
-\pdfglyphtounicode{controlETX}{0003}
-\pdfglyphtounicode{controlFF}{000C}
-\pdfglyphtounicode{controlFS}{001C}
-\pdfglyphtounicode{controlGS}{001D}
-\pdfglyphtounicode{controlHT}{0009}
-\pdfglyphtounicode{controlLF}{000A}
-\pdfglyphtounicode{controlNAK}{0015}
-\pdfglyphtounicode{controlRS}{001E}
-\pdfglyphtounicode{controlSI}{000F}
-\pdfglyphtounicode{controlSO}{000E}
-\pdfglyphtounicode{controlSOT}{0002}
-\pdfglyphtounicode{controlSTX}{0001}
-\pdfglyphtounicode{controlSUB}{001A}
-\pdfglyphtounicode{controlSYN}{0016}
-\pdfglyphtounicode{controlUS}{001F}
-\pdfglyphtounicode{controlVT}{000B}
-\pdfglyphtounicode{coproduct}{2A3F}
-\pdfglyphtounicode{copyright}{00A9}
-\pdfglyphtounicode{copyrightsans}{00A9}
-\pdfglyphtounicode{copyrightserif}{00A9}
-\pdfglyphtounicode{cornerbracketleft}{300C}
-\pdfglyphtounicode{cornerbracketlefthalfwidth}{FF62}
-\pdfglyphtounicode{cornerbracketleftvertical}{FE41}
-\pdfglyphtounicode{cornerbracketright}{300D}
-\pdfglyphtounicode{cornerbracketrighthalfwidth}{FF63}
-\pdfglyphtounicode{cornerbracketrightvertical}{FE42}
-\pdfglyphtounicode{corporationsquare}{337F}
-\pdfglyphtounicode{cosquare}{33C7}
-\pdfglyphtounicode{coverkgsquare}{33C6}
-\pdfglyphtounicode{cparen}{249E}
-\pdfglyphtounicode{cruzeiro}{20A2}
-\pdfglyphtounicode{cstretched}{0297}
-\pdfglyphtounicode{ct}{0063 0074}
-\pdfglyphtounicode{curlyand}{22CF}
-\pdfglyphtounicode{curlyleft}{21AB}
-\pdfglyphtounicode{curlyor}{22CE}
-\pdfglyphtounicode{curlyright}{21AC}
-\pdfglyphtounicode{currency}{00A4}
-\pdfglyphtounicode{cwm}{200C}
-\pdfglyphtounicode{cyrBreve}{02D8}
-\pdfglyphtounicode{cyrFlex}{00A0 0311}
-\pdfglyphtounicode{cyrbreve}{02D8}
-\pdfglyphtounicode{cyrflex}{00A0 0311}
-\pdfglyphtounicode{d}{0064}
-\pdfglyphtounicode{daarmenian}{0564}
-\pdfglyphtounicode{dabengali}{09A6}
-\pdfglyphtounicode{dadarabic}{0636}
-\pdfglyphtounicode{dadeva}{0926}
-\pdfglyphtounicode{dadfinalarabic}{FEBE}
-\pdfglyphtounicode{dadinitialarabic}{FEBF}
-\pdfglyphtounicode{dadmedialarabic}{FEC0}
-\pdfglyphtounicode{dagesh}{05BC}
-\pdfglyphtounicode{dageshhebrew}{05BC}
-\pdfglyphtounicode{dagger}{2020}
-\pdfglyphtounicode{daggerdbl}{2021}
-\pdfglyphtounicode{dagujarati}{0AA6}
-\pdfglyphtounicode{dagurmukhi}{0A26}
-\pdfglyphtounicode{dahiragana}{3060}
-\pdfglyphtounicode{dakatakana}{30C0}
-\pdfglyphtounicode{dalarabic}{062F}
-\pdfglyphtounicode{dalet}{05D3}
-\pdfglyphtounicode{daletdagesh}{FB33}
-\pdfglyphtounicode{daletdageshhebrew}{FB33}
-\pdfglyphtounicode{daleth}{2138}
-\pdfglyphtounicode{dalethatafpatah}{05D3 05B2}
-\pdfglyphtounicode{dalethatafpatahhebrew}{05D3 05B2}
-\pdfglyphtounicode{dalethatafsegol}{05D3 05B1}
-\pdfglyphtounicode{dalethatafsegolhebrew}{05D3 05B1}
-\pdfglyphtounicode{dalethebrew}{05D3}
-\pdfglyphtounicode{dalethiriq}{05D3 05B4}
-\pdfglyphtounicode{dalethiriqhebrew}{05D3 05B4}
-\pdfglyphtounicode{daletholam}{05D3 05B9}
-\pdfglyphtounicode{daletholamhebrew}{05D3 05B9}
-\pdfglyphtounicode{daletpatah}{05D3 05B7}
-\pdfglyphtounicode{daletpatahhebrew}{05D3 05B7}
-\pdfglyphtounicode{daletqamats}{05D3 05B8}
-\pdfglyphtounicode{daletqamatshebrew}{05D3 05B8}
-\pdfglyphtounicode{daletqubuts}{05D3 05BB}
-\pdfglyphtounicode{daletqubutshebrew}{05D3 05BB}
-\pdfglyphtounicode{daletsegol}{05D3 05B6}
-\pdfglyphtounicode{daletsegolhebrew}{05D3 05B6}
-\pdfglyphtounicode{daletsheva}{05D3 05B0}
-\pdfglyphtounicode{daletshevahebrew}{05D3 05B0}
-\pdfglyphtounicode{dalettsere}{05D3 05B5}
-\pdfglyphtounicode{dalettserehebrew}{05D3 05B5}
-\pdfglyphtounicode{dalfinalarabic}{FEAA}
-\pdfglyphtounicode{dammaarabic}{064F}
-\pdfglyphtounicode{dammalowarabic}{064F}
-\pdfglyphtounicode{dammatanaltonearabic}{064C}
-\pdfglyphtounicode{dammatanarabic}{064C}
-\pdfglyphtounicode{danda}{0964}
-\pdfglyphtounicode{dargahebrew}{05A7}
-\pdfglyphtounicode{dargalefthebrew}{05A7}
-\pdfglyphtounicode{dasiapneumatacyrilliccmb}{0485}
-\pdfglyphtounicode{dbar}{0111}
-\pdfglyphtounicode{dblGrave}{00A0 030F}
-\pdfglyphtounicode{dblanglebracketleft}{300A}
-\pdfglyphtounicode{dblanglebracketleftvertical}{FE3D}
-\pdfglyphtounicode{dblanglebracketright}{300B}
-\pdfglyphtounicode{dblanglebracketrightvertical}{FE3E}
-\pdfglyphtounicode{dblarchinvertedbelowcmb}{032B}
-\pdfglyphtounicode{dblarrowdwn}{21CA}
-\pdfglyphtounicode{dblarrowheadleft}{219E}
-\pdfglyphtounicode{dblarrowheadright}{21A0}
-\pdfglyphtounicode{dblarrowleft}{21D4}
-\pdfglyphtounicode{dblarrowright}{21D2}
-\pdfglyphtounicode{dblarrowup}{21C8}
-\pdfglyphtounicode{dblbracketleft}{27E6}
-\pdfglyphtounicode{dblbracketright}{27E7}
-\pdfglyphtounicode{dbldanda}{0965}
-\pdfglyphtounicode{dblgrave}{00A0 030F}
-\pdfglyphtounicode{dblgravecmb}{030F}
-\pdfglyphtounicode{dblintegral}{222C}
-\pdfglyphtounicode{dbllowline}{2017}
-\pdfglyphtounicode{dbllowlinecmb}{0333}
-\pdfglyphtounicode{dbloverlinecmb}{033F}
-\pdfglyphtounicode{dblprimemod}{02BA}
-\pdfglyphtounicode{dblverticalbar}{2016}
-\pdfglyphtounicode{dblverticallineabovecmb}{030E}
-\pdfglyphtounicode{dbopomofo}{3109}
-\pdfglyphtounicode{dbsquare}{33C8}
-\pdfglyphtounicode{dcaron}{010F}
-\pdfglyphtounicode{dcedilla}{1E11}
-\pdfglyphtounicode{dcircle}{24D3}
-\pdfglyphtounicode{dcircumflexbelow}{1E13}
-\pdfglyphtounicode{dcroat}{0111}
-\pdfglyphtounicode{ddabengali}{09A1}
-\pdfglyphtounicode{ddadeva}{0921}
-\pdfglyphtounicode{ddagujarati}{0AA1}
-\pdfglyphtounicode{ddagurmukhi}{0A21}
-\pdfglyphtounicode{ddalarabic}{0688}
-\pdfglyphtounicode{ddalfinalarabic}{FB89}
-\pdfglyphtounicode{dddhadeva}{095C}
-\pdfglyphtounicode{ddhabengali}{09A2}
-\pdfglyphtounicode{ddhadeva}{0922}
-\pdfglyphtounicode{ddhagujarati}{0AA2}
-\pdfglyphtounicode{ddhagurmukhi}{0A22}
-\pdfglyphtounicode{ddotaccent}{1E0B}
-\pdfglyphtounicode{ddotbelow}{1E0D}
-\pdfglyphtounicode{decimalseparatorarabic}{066B}
-\pdfglyphtounicode{decimalseparatorpersian}{066B}
-\pdfglyphtounicode{decyrillic}{0434}
-\pdfglyphtounicode{defines}{225C}
-\pdfglyphtounicode{degree}{00B0}
-\pdfglyphtounicode{dehihebrew}{05AD}
-\pdfglyphtounicode{dehiragana}{3067}
-\pdfglyphtounicode{deicoptic}{03EF}
-\pdfglyphtounicode{dekatakana}{30C7}
-\pdfglyphtounicode{deleteleft}{232B}
-\pdfglyphtounicode{deleteright}{2326}
-\pdfglyphtounicode{delta}{03B4}
-\pdfglyphtounicode{deltaturned}{018D}
-\pdfglyphtounicode{denominatorminusonenumeratorbengali}{09F8}
-\pdfglyphtounicode{dezh}{02A4}
-\pdfglyphtounicode{dhabengali}{09A7}
-\pdfglyphtounicode{dhadeva}{0927}
-\pdfglyphtounicode{dhagujarati}{0AA7}
-\pdfglyphtounicode{dhagurmukhi}{0A27}
-\pdfglyphtounicode{dhook}{0257}
-\pdfglyphtounicode{dialytikatonos}{0385}
-\pdfglyphtounicode{dialytikatonoscmb}{0344}
-\pdfglyphtounicode{diamond}{2666}
-\pdfglyphtounicode{diamondmath}{22C4}
-\pdfglyphtounicode{diamondsolid}{2666}
-\pdfglyphtounicode{diamondsuitwhite}{2662}
-\pdfglyphtounicode{dieresis}{00A8}
-\pdfglyphtounicode{dieresisacute}{00A0 0308 0301}
-\pdfglyphtounicode{dieresisbelowcmb}{0324}
-\pdfglyphtounicode{dieresiscmb}{0308}
-\pdfglyphtounicode{dieresisgrave}{00A0 0308 0300}
-\pdfglyphtounicode{dieresistonos}{0385}
-\pdfglyphtounicode{difference}{224F}
-\pdfglyphtounicode{dihiragana}{3062}
-\pdfglyphtounicode{dikatakana}{30C2}
-\pdfglyphtounicode{dittomark}{3003}
-\pdfglyphtounicode{divide}{00F7}
-\pdfglyphtounicode{dividemultiply}{22C7}
-\pdfglyphtounicode{divides}{2223}
-\pdfglyphtounicode{divisionslash}{2215}
-\pdfglyphtounicode{djecyrillic}{0452}
-\pdfglyphtounicode{dkshade}{2593}
-\pdfglyphtounicode{dlinebelow}{1E0F}
-\pdfglyphtounicode{dlsquare}{3397}
-\pdfglyphtounicode{dmacron}{0111}
-\pdfglyphtounicode{dmonospace}{FF44}
-\pdfglyphtounicode{dnblock}{2584}
-\pdfglyphtounicode{dochadathai}{0E0E}
-\pdfglyphtounicode{dodekthai}{0E14}
-\pdfglyphtounicode{dohiragana}{3069}
-\pdfglyphtounicode{dokatakana}{30C9}
-\pdfglyphtounicode{dollar}{0024}
-\pdfglyphtounicode{dollarinferior}{0024}
-\pdfglyphtounicode{dollarmonospace}{FF04}
-\pdfglyphtounicode{dollaroldstyle}{0024}
-\pdfglyphtounicode{dollarsmall}{FE69}
-\pdfglyphtounicode{dollarsuperior}{0024}
-\pdfglyphtounicode{dong}{20AB}
-\pdfglyphtounicode{dorusquare}{3326}
-\pdfglyphtounicode{dotaccent}{02D9}
-\pdfglyphtounicode{dotaccentcmb}{0307}
-\pdfglyphtounicode{dotbelowcmb}{0323}
-\pdfglyphtounicode{dotbelowcomb}{0323}
-\pdfglyphtounicode{dotkatakana}{30FB}
-\pdfglyphtounicode{dotlessi}{0131}
-\pdfglyphtounicode{dotlessj}{0237}
-\pdfglyphtounicode{dotlessjstrokehook}{0284}
-\pdfglyphtounicode{dotmath}{22C5}
-\pdfglyphtounicode{dotplus}{2214}
-\pdfglyphtounicode{dottedcircle}{25CC}
-\pdfglyphtounicode{doubleyodpatah}{FB1F}
-\pdfglyphtounicode{doubleyodpatahhebrew}{FB1F}
-\pdfglyphtounicode{downfall}{22CE}
-\pdfglyphtounicode{downslope}{29F9}
-\pdfglyphtounicode{downtackbelowcmb}{031E}
-\pdfglyphtounicode{downtackmod}{02D5}
-\pdfglyphtounicode{dparen}{249F}
-\pdfglyphtounicode{dsuperior}{0064}
-\pdfglyphtounicode{dtail}{0256}
-\pdfglyphtounicode{dtopbar}{018C}
-\pdfglyphtounicode{duhiragana}{3065}
-\pdfglyphtounicode{dukatakana}{30C5}
-\pdfglyphtounicode{dz}{01F3}
-\pdfglyphtounicode{dzaltone}{02A3}
-\pdfglyphtounicode{dzcaron}{01C6}
-\pdfglyphtounicode{dzcurl}{02A5}
-\pdfglyphtounicode{dzeabkhasiancyrillic}{04E1}
-\pdfglyphtounicode{dzecyrillic}{0455}
-\pdfglyphtounicode{dzhecyrillic}{045F}
-\pdfglyphtounicode{e}{0065}
-\pdfglyphtounicode{eacute}{00E9}
-\pdfglyphtounicode{earth}{2641}
-\pdfglyphtounicode{ebengali}{098F}
-\pdfglyphtounicode{ebopomofo}{311C}
-\pdfglyphtounicode{ebreve}{0115}
-\pdfglyphtounicode{ecandradeva}{090D}
-\pdfglyphtounicode{ecandragujarati}{0A8D}
-\pdfglyphtounicode{ecandravowelsigndeva}{0945}
-\pdfglyphtounicode{ecandravowelsigngujarati}{0AC5}
-\pdfglyphtounicode{ecaron}{011B}
-\pdfglyphtounicode{ecedillabreve}{1E1D}
-\pdfglyphtounicode{echarmenian}{0565}
-\pdfglyphtounicode{echyiwnarmenian}{0587}
-\pdfglyphtounicode{ecircle}{24D4}
-\pdfglyphtounicode{ecircumflex}{00EA}
-\pdfglyphtounicode{ecircumflexacute}{1EBF}
-\pdfglyphtounicode{ecircumflexbelow}{1E19}
-\pdfglyphtounicode{ecircumflexdotbelow}{1EC7}
-\pdfglyphtounicode{ecircumflexgrave}{1EC1}
-\pdfglyphtounicode{ecircumflexhookabove}{1EC3}
-\pdfglyphtounicode{ecircumflextilde}{1EC5}
-\pdfglyphtounicode{ecyrillic}{0454}
-\pdfglyphtounicode{edblgrave}{0205}
-\pdfglyphtounicode{edeva}{090F}
-\pdfglyphtounicode{edieresis}{00EB}
-\pdfglyphtounicode{edot}{0117}
-\pdfglyphtounicode{edotaccent}{0117}
-\pdfglyphtounicode{edotbelow}{1EB9}
-\pdfglyphtounicode{eegurmukhi}{0A0F}
-\pdfglyphtounicode{eematragurmukhi}{0A47}
-\pdfglyphtounicode{efcyrillic}{0444}
-\pdfglyphtounicode{egrave}{00E8}
-\pdfglyphtounicode{egujarati}{0A8F}
-\pdfglyphtounicode{eharmenian}{0567}
-\pdfglyphtounicode{ehbopomofo}{311D}
-\pdfglyphtounicode{ehiragana}{3048}
-\pdfglyphtounicode{ehookabove}{1EBB}
-\pdfglyphtounicode{eibopomofo}{311F}
-\pdfglyphtounicode{eight}{0038}
-\pdfglyphtounicode{eightarabic}{0668}
-\pdfglyphtounicode{eightbengali}{09EE}
-\pdfglyphtounicode{eightcircle}{2467}
-\pdfglyphtounicode{eightcircleinversesansserif}{2791}
-\pdfglyphtounicode{eightdeva}{096E}
-\pdfglyphtounicode{eighteencircle}{2471}
-\pdfglyphtounicode{eighteenparen}{2485}
-\pdfglyphtounicode{eighteenperiod}{2499}
-\pdfglyphtounicode{eightgujarati}{0AEE}
-\pdfglyphtounicode{eightgurmukhi}{0A6E}
-\pdfglyphtounicode{eighthackarabic}{0668}
-\pdfglyphtounicode{eighthangzhou}{3028}
-\pdfglyphtounicode{eighthnotebeamed}{266B}
-\pdfglyphtounicode{eightideographicparen}{3227}
-\pdfglyphtounicode{eightinferior}{2088}
-\pdfglyphtounicode{eightmonospace}{FF18}
-\pdfglyphtounicode{eightoldstyle}{0038}
-\pdfglyphtounicode{eightparen}{247B}
-\pdfglyphtounicode{eightperiod}{248F}
-\pdfglyphtounicode{eightpersian}{06F8}
-\pdfglyphtounicode{eightroman}{2177}
-\pdfglyphtounicode{eightsuperior}{2078}
-\pdfglyphtounicode{eightthai}{0E58}
-\pdfglyphtounicode{einvertedbreve}{0207}
-\pdfglyphtounicode{eiotifiedcyrillic}{0465}
-\pdfglyphtounicode{ekatakana}{30A8}
-\pdfglyphtounicode{ekatakanahalfwidth}{FF74}
-\pdfglyphtounicode{ekonkargurmukhi}{0A74}
-\pdfglyphtounicode{ekorean}{3154}
-\pdfglyphtounicode{elcyrillic}{043B}
-\pdfglyphtounicode{element}{2208}
-\pdfglyphtounicode{elevencircle}{246A}
-\pdfglyphtounicode{elevenparen}{247E}
-\pdfglyphtounicode{elevenperiod}{2492}
-\pdfglyphtounicode{elevenroman}{217A}
-\pdfglyphtounicode{ellipsis}{2026}
-\pdfglyphtounicode{ellipsisvertical}{22EE}
-\pdfglyphtounicode{emacron}{0113}
-\pdfglyphtounicode{emacronacute}{1E17}
-\pdfglyphtounicode{emacrongrave}{1E15}
-\pdfglyphtounicode{emcyrillic}{043C}
-\pdfglyphtounicode{emdash}{2014}
-\pdfglyphtounicode{emdashvertical}{FE31}
-\pdfglyphtounicode{emonospace}{FF45}
-\pdfglyphtounicode{emphasismarkarmenian}{055B}
-\pdfglyphtounicode{emptyset}{2205}
-\pdfglyphtounicode{enbopomofo}{3123}
-\pdfglyphtounicode{encyrillic}{043D}
-\pdfglyphtounicode{endash}{2013}
-\pdfglyphtounicode{endashvertical}{FE32}
-\pdfglyphtounicode{endescendercyrillic}{04A3}
-\pdfglyphtounicode{eng}{014B}
-\pdfglyphtounicode{engbopomofo}{3125}
-\pdfglyphtounicode{enghecyrillic}{04A5}
-\pdfglyphtounicode{enhookcyrillic}{04C8}
-\pdfglyphtounicode{enspace}{2002}
-\pdfglyphtounicode{eogonek}{0119}
-\pdfglyphtounicode{eokorean}{3153}
-\pdfglyphtounicode{eopen}{025B}
-\pdfglyphtounicode{eopenclosed}{029A}
-\pdfglyphtounicode{eopenreversed}{025C}
-\pdfglyphtounicode{eopenreversedclosed}{025E}
-\pdfglyphtounicode{eopenreversedhook}{025D}
-\pdfglyphtounicode{eparen}{24A0}
-\pdfglyphtounicode{epsilon}{03B5}
-\pdfglyphtounicode{epsilon1}{03F5}
-\pdfglyphtounicode{epsiloninv}{03F6}
-\pdfglyphtounicode{epsilontonos}{03AD}
-\pdfglyphtounicode{equal}{003D}
-\pdfglyphtounicode{equaldotleftright}{2252}
-\pdfglyphtounicode{equaldotrightleft}{2253}
-\pdfglyphtounicode{equalmonospace}{FF1D}
-\pdfglyphtounicode{equalorfollows}{22DF}
-\pdfglyphtounicode{equalorgreater}{2A96}
-\pdfglyphtounicode{equalorless}{2A95}
-\pdfglyphtounicode{equalorprecedes}{22DE}
-\pdfglyphtounicode{equalorsimilar}{2242}
-\pdfglyphtounicode{equalsdots}{2251}
-\pdfglyphtounicode{equalsmall}{FE66}
-\pdfglyphtounicode{equalsuperior}{207C}
-\pdfglyphtounicode{equivalence}{2261}
-\pdfglyphtounicode{equivasymptotic}{224D}
-\pdfglyphtounicode{erbopomofo}{3126}
-\pdfglyphtounicode{ercyrillic}{0440}
-\pdfglyphtounicode{ereversed}{0258}
-\pdfglyphtounicode{ereversedcyrillic}{044D}
-\pdfglyphtounicode{escyrillic}{0441}
-\pdfglyphtounicode{esdescendercyrillic}{04AB}
-\pdfglyphtounicode{esh}{0283}
-\pdfglyphtounicode{eshcurl}{0286}
-\pdfglyphtounicode{eshortdeva}{090E}
-\pdfglyphtounicode{eshortvowelsigndeva}{0946}
-\pdfglyphtounicode{eshreversedloop}{01AA}
-\pdfglyphtounicode{eshsquatreversed}{0285}
-\pdfglyphtounicode{esmallhiragana}{3047}
-\pdfglyphtounicode{esmallkatakana}{30A7}
-\pdfglyphtounicode{esmallkatakanahalfwidth}{FF6A}
-\pdfglyphtounicode{estimated}{212E}
-\pdfglyphtounicode{esuperior}{0065}
-\pdfglyphtounicode{eta}{03B7}
-\pdfglyphtounicode{etarmenian}{0568}
-\pdfglyphtounicode{etatonos}{03AE}
-\pdfglyphtounicode{eth}{00F0}
-\pdfglyphtounicode{etilde}{1EBD}
-\pdfglyphtounicode{etildebelow}{1E1B}
-\pdfglyphtounicode{etnahtafoukhhebrew}{0591}
-\pdfglyphtounicode{etnahtafoukhlefthebrew}{0591}
-\pdfglyphtounicode{etnahtahebrew}{0591}
-\pdfglyphtounicode{etnahtalefthebrew}{0591}
-\pdfglyphtounicode{eturned}{01DD}
-\pdfglyphtounicode{eukorean}{3161}
-\pdfglyphtounicode{euro}{20AC}
-\pdfglyphtounicode{evowelsignbengali}{09C7}
-\pdfglyphtounicode{evowelsigndeva}{0947}
-\pdfglyphtounicode{evowelsigngujarati}{0AC7}
-\pdfglyphtounicode{exclam}{0021}
-\pdfglyphtounicode{exclamarmenian}{055C}
-\pdfglyphtounicode{exclamdbl}{203C}
-\pdfglyphtounicode{exclamdown}{00A1}
-\pdfglyphtounicode{exclamdownsmall}{00A1}
-\pdfglyphtounicode{exclammonospace}{FF01}
-\pdfglyphtounicode{exclamsmall}{0021}
-\pdfglyphtounicode{existential}{2203}
-\pdfglyphtounicode{ezh}{0292}
-\pdfglyphtounicode{ezhcaron}{01EF}
-\pdfglyphtounicode{ezhcurl}{0293}
-\pdfglyphtounicode{ezhreversed}{01B9}
-\pdfglyphtounicode{ezhtail}{01BA}
-\pdfglyphtounicode{f}{0066}
-\pdfglyphtounicode{fadeva}{095E}
-\pdfglyphtounicode{fagurmukhi}{0A5E}
-\pdfglyphtounicode{fahrenheit}{2109}
-\pdfglyphtounicode{fathaarabic}{064E}
-\pdfglyphtounicode{fathalowarabic}{064E}
-\pdfglyphtounicode{fathatanarabic}{064B}
-\pdfglyphtounicode{fbopomofo}{3108}
-\pdfglyphtounicode{fcircle}{24D5}
-\pdfglyphtounicode{fdotaccent}{1E1F}
-\pdfglyphtounicode{feharabic}{0641}
-\pdfglyphtounicode{feharmenian}{0586}
-\pdfglyphtounicode{fehfinalarabic}{FED2}
-\pdfglyphtounicode{fehinitialarabic}{FED3}
-\pdfglyphtounicode{fehmedialarabic}{FED4}
-\pdfglyphtounicode{feicoptic}{03E5}
-\pdfglyphtounicode{female}{2640}
-\pdfglyphtounicode{ff}{0066 0066}
-\pdfglyphtounicode{ffi}{0066 0066 0069}
-\pdfglyphtounicode{ffl}{0066 0066 006C}
-\pdfglyphtounicode{fi}{0066 0069}
-\pdfglyphtounicode{fifteencircle}{246E}
-\pdfglyphtounicode{fifteenparen}{2482}
-\pdfglyphtounicode{fifteenperiod}{2496}
-\pdfglyphtounicode{figuredash}{2012}
-\pdfglyphtounicode{filledbox}{25A0}
-\pdfglyphtounicode{filledrect}{25AC}
-\pdfglyphtounicode{finalkaf}{05DA}
-\pdfglyphtounicode{finalkafdagesh}{FB3A}
-\pdfglyphtounicode{finalkafdageshhebrew}{FB3A}
-\pdfglyphtounicode{finalkafhebrew}{05DA}
-\pdfglyphtounicode{finalkafqamats}{05DA 05B8}
-\pdfglyphtounicode{finalkafqamatshebrew}{05DA 05B8}
-\pdfglyphtounicode{finalkafsheva}{05DA 05B0}
-\pdfglyphtounicode{finalkafshevahebrew}{05DA 05B0}
-\pdfglyphtounicode{finalmem}{05DD}
-\pdfglyphtounicode{finalmemhebrew}{05DD}
-\pdfglyphtounicode{finalnun}{05DF}
-\pdfglyphtounicode{finalnunhebrew}{05DF}
-\pdfglyphtounicode{finalpe}{05E3}
-\pdfglyphtounicode{finalpehebrew}{05E3}
-\pdfglyphtounicode{finaltsadi}{05E5}
-\pdfglyphtounicode{finaltsadihebrew}{05E5}
-\pdfglyphtounicode{firsttonechinese}{02C9}
-\pdfglyphtounicode{fisheye}{25C9}
-\pdfglyphtounicode{fitacyrillic}{0473}
-\pdfglyphtounicode{five}{0035}
-\pdfglyphtounicode{fivearabic}{0665}
-\pdfglyphtounicode{fivebengali}{09EB}
-\pdfglyphtounicode{fivecircle}{2464}
-\pdfglyphtounicode{fivecircleinversesansserif}{278E}
-\pdfglyphtounicode{fivedeva}{096B}
-\pdfglyphtounicode{fiveeighths}{215D}
-\pdfglyphtounicode{fivegujarati}{0AEB}
-\pdfglyphtounicode{fivegurmukhi}{0A6B}
-\pdfglyphtounicode{fivehackarabic}{0665}
-\pdfglyphtounicode{fivehangzhou}{3025}
-\pdfglyphtounicode{fiveideographicparen}{3224}
-\pdfglyphtounicode{fiveinferior}{2085}
-\pdfglyphtounicode{fivemonospace}{FF15}
-\pdfglyphtounicode{fiveoldstyle}{0035}
-\pdfglyphtounicode{fiveparen}{2478}
-\pdfglyphtounicode{fiveperiod}{248C}
-\pdfglyphtounicode{fivepersian}{06F5}
-\pdfglyphtounicode{fiveroman}{2174}
-\pdfglyphtounicode{fivesuperior}{2075}
-\pdfglyphtounicode{fivethai}{0E55}
-\pdfglyphtounicode{fl}{0066 006C}
-\pdfglyphtounicode{flat}{266D}
-\pdfglyphtounicode{floorleft}{230A}
-\pdfglyphtounicode{floorright}{230B}
-\pdfglyphtounicode{florin}{0192}
-\pdfglyphtounicode{fmonospace}{FF46}
-\pdfglyphtounicode{fmsquare}{3399}
-\pdfglyphtounicode{fofanthai}{0E1F}
-\pdfglyphtounicode{fofathai}{0E1D}
-\pdfglyphtounicode{follownotdbleqv}{2ABA}
-\pdfglyphtounicode{follownotslnteql}{2AB6}
-\pdfglyphtounicode{followornoteqvlnt}{22E9}
-\pdfglyphtounicode{follows}{227B}
-\pdfglyphtounicode{followsequal}{2AB0}
-\pdfglyphtounicode{followsorcurly}{227D}
-\pdfglyphtounicode{followsorequal}{227F}
-\pdfglyphtounicode{fongmanthai}{0E4F}
-\pdfglyphtounicode{forall}{2200}
-\pdfglyphtounicode{forces}{22A9}
-\pdfglyphtounicode{forcesbar}{22AA}
-\pdfglyphtounicode{fork}{22D4}
-\pdfglyphtounicode{four}{0034}
-\pdfglyphtounicode{fourarabic}{0664}
-\pdfglyphtounicode{fourbengali}{09EA}
-\pdfglyphtounicode{fourcircle}{2463}
-\pdfglyphtounicode{fourcircleinversesansserif}{278D}
-\pdfglyphtounicode{fourdeva}{096A}
-\pdfglyphtounicode{fourgujarati}{0AEA}
-\pdfglyphtounicode{fourgurmukhi}{0A6A}
-\pdfglyphtounicode{fourhackarabic}{0664}
-\pdfglyphtounicode{fourhangzhou}{3024}
-\pdfglyphtounicode{fourideographicparen}{3223}
-\pdfglyphtounicode{fourinferior}{2084}
-\pdfglyphtounicode{fourmonospace}{FF14}
-\pdfglyphtounicode{fournumeratorbengali}{09F7}
-\pdfglyphtounicode{fouroldstyle}{0034}
-\pdfglyphtounicode{fourparen}{2477}
-\pdfglyphtounicode{fourperiod}{248B}
-\pdfglyphtounicode{fourpersian}{06F4}
-\pdfglyphtounicode{fourroman}{2173}
-\pdfglyphtounicode{foursuperior}{2074}
-\pdfglyphtounicode{fourteencircle}{246D}
-\pdfglyphtounicode{fourteenparen}{2481}
-\pdfglyphtounicode{fourteenperiod}{2495}
-\pdfglyphtounicode{fourthai}{0E54}
-\pdfglyphtounicode{fourthtonechinese}{02CB}
-\pdfglyphtounicode{fparen}{24A1}
-\pdfglyphtounicode{fraction}{2044}
-\pdfglyphtounicode{franc}{20A3}
-\pdfglyphtounicode{frown}{2322}
-\pdfglyphtounicode{g}{0067}
-\pdfglyphtounicode{gabengali}{0997}
-\pdfglyphtounicode{gacute}{01F5}
-\pdfglyphtounicode{gadeva}{0917}
-\pdfglyphtounicode{gafarabic}{06AF}
-\pdfglyphtounicode{gaffinalarabic}{FB93}
-\pdfglyphtounicode{gafinitialarabic}{FB94}
-\pdfglyphtounicode{gafmedialarabic}{FB95}
-\pdfglyphtounicode{gagujarati}{0A97}
-\pdfglyphtounicode{gagurmukhi}{0A17}
-\pdfglyphtounicode{gahiragana}{304C}
-\pdfglyphtounicode{gakatakana}{30AC}
-\pdfglyphtounicode{gamma}{03B3}
-\pdfglyphtounicode{gammalatinsmall}{0263}
-\pdfglyphtounicode{gammasuperior}{02E0}
-\pdfglyphtounicode{gangiacoptic}{03EB}
-\pdfglyphtounicode{gbopomofo}{310D}
-\pdfglyphtounicode{gbreve}{011F}
-\pdfglyphtounicode{gcaron}{01E7}
-\pdfglyphtounicode{gcedilla}{0123}
-\pdfglyphtounicode{gcircle}{24D6}
-\pdfglyphtounicode{gcircumflex}{011D}
-\pdfglyphtounicode{gcommaaccent}{0123}
-\pdfglyphtounicode{gdot}{0121}
-\pdfglyphtounicode{gdotaccent}{0121}
-\pdfglyphtounicode{gecyrillic}{0433}
-\pdfglyphtounicode{gehiragana}{3052}
-\pdfglyphtounicode{gekatakana}{30B2}
-\pdfglyphtounicode{geomequivalent}{224E}
-\pdfglyphtounicode{geometricallyequal}{2251}
-\pdfglyphtounicode{gereshaccenthebrew}{059C}
-\pdfglyphtounicode{gereshhebrew}{05F3}
-\pdfglyphtounicode{gereshmuqdamhebrew}{059D}
-\pdfglyphtounicode{germandbls}{00DF}
-\pdfglyphtounicode{gershayimaccenthebrew}{059E}
-\pdfglyphtounicode{gershayimhebrew}{05F4}
-\pdfglyphtounicode{getamark}{3013}
-\pdfglyphtounicode{ghabengali}{0998}
-\pdfglyphtounicode{ghadarmenian}{0572}
-\pdfglyphtounicode{ghadeva}{0918}
-\pdfglyphtounicode{ghagujarati}{0A98}
-\pdfglyphtounicode{ghagurmukhi}{0A18}
-\pdfglyphtounicode{ghainarabic}{063A}
-\pdfglyphtounicode{ghainfinalarabic}{FECE}
-\pdfglyphtounicode{ghaininitialarabic}{FECF}
-\pdfglyphtounicode{ghainmedialarabic}{FED0}
-\pdfglyphtounicode{ghemiddlehookcyrillic}{0495}
-\pdfglyphtounicode{ghestrokecyrillic}{0493}
-\pdfglyphtounicode{gheupturncyrillic}{0491}
-\pdfglyphtounicode{ghhadeva}{095A}
-\pdfglyphtounicode{ghhagurmukhi}{0A5A}
-\pdfglyphtounicode{ghook}{0260}
-\pdfglyphtounicode{ghzsquare}{3393}
-\pdfglyphtounicode{gihiragana}{304E}
-\pdfglyphtounicode{gikatakana}{30AE}
-\pdfglyphtounicode{gimarmenian}{0563}
-\pdfglyphtounicode{gimel}{05D2}
-\pdfglyphtounicode{gimeldagesh}{FB32}
-\pdfglyphtounicode{gimeldageshhebrew}{FB32}
-\pdfglyphtounicode{gimelhebrew}{05D2}
-\pdfglyphtounicode{gjecyrillic}{0453}
-\pdfglyphtounicode{glottalinvertedstroke}{01BE}
-\pdfglyphtounicode{glottalstop}{0294}
-\pdfglyphtounicode{glottalstopinverted}{0296}
-\pdfglyphtounicode{glottalstopmod}{02C0}
-\pdfglyphtounicode{glottalstopreversed}{0295}
-\pdfglyphtounicode{glottalstopreversedmod}{02C1}
-\pdfglyphtounicode{glottalstopreversedsuperior}{02E4}
-\pdfglyphtounicode{glottalstopstroke}{02A1}
-\pdfglyphtounicode{glottalstopstrokereversed}{02A2}
-\pdfglyphtounicode{gmacron}{1E21}
-\pdfglyphtounicode{gmonospace}{FF47}
-\pdfglyphtounicode{gohiragana}{3054}
-\pdfglyphtounicode{gokatakana}{30B4}
-\pdfglyphtounicode{gparen}{24A2}
-\pdfglyphtounicode{gpasquare}{33AC}
-\pdfglyphtounicode{gradient}{2207}
-\pdfglyphtounicode{grave}{0060}
-\pdfglyphtounicode{gravebelowcmb}{0316}
-\pdfglyphtounicode{gravecmb}{0300}
-\pdfglyphtounicode{gravecomb}{0300}
-\pdfglyphtounicode{gravedeva}{0953}
-\pdfglyphtounicode{gravelowmod}{02CE}
-\pdfglyphtounicode{gravemonospace}{FF40}
-\pdfglyphtounicode{gravetonecmb}{0340}
-\pdfglyphtounicode{greater}{003E}
-\pdfglyphtounicode{greaterdbleqlless}{2A8C}
-\pdfglyphtounicode{greaterdblequal}{2267}
-\pdfglyphtounicode{greaterdot}{22D7}
-\pdfglyphtounicode{greaterequal}{2265}
-\pdfglyphtounicode{greaterequalorless}{22DB}
-\pdfglyphtounicode{greaterlessequal}{22DB}
-\pdfglyphtounicode{greatermonospace}{FF1E}
-\pdfglyphtounicode{greatermuch}{226B}
-\pdfglyphtounicode{greaternotdblequal}{2A8A}
-\pdfglyphtounicode{greaternotequal}{2A88}
-\pdfglyphtounicode{greaterorapproxeql}{2A86}
-\pdfglyphtounicode{greaterorequalslant}{2A7E}
-\pdfglyphtounicode{greaterorequivalent}{2273}
-\pdfglyphtounicode{greaterorless}{2277}
-\pdfglyphtounicode{greaterornotdbleql}{2269}
-\pdfglyphtounicode{greaterornotequal}{2269}
-\pdfglyphtounicode{greaterorsimilar}{2273}
-\pdfglyphtounicode{greateroverequal}{2267}
-\pdfglyphtounicode{greatersmall}{FE65}
-\pdfglyphtounicode{gscript}{0261}
-\pdfglyphtounicode{gstroke}{01E5}
-\pdfglyphtounicode{guhiragana}{3050}
-\pdfglyphtounicode{guillemotleft}{00AB}
-\pdfglyphtounicode{guillemotright}{00BB}
-\pdfglyphtounicode{guilsinglleft}{2039}
-\pdfglyphtounicode{guilsinglright}{203A}
-\pdfglyphtounicode{gukatakana}{30B0}
-\pdfglyphtounicode{guramusquare}{3318}
-\pdfglyphtounicode{gysquare}{33C9}
-\pdfglyphtounicode{h}{0068}
-\pdfglyphtounicode{haabkhasiancyrillic}{04A9}
-\pdfglyphtounicode{haaltonearabic}{06C1}
-\pdfglyphtounicode{habengali}{09B9}
-\pdfglyphtounicode{hadescendercyrillic}{04B3}
-\pdfglyphtounicode{hadeva}{0939}
-\pdfglyphtounicode{hagujarati}{0AB9}
-\pdfglyphtounicode{hagurmukhi}{0A39}
-\pdfglyphtounicode{haharabic}{062D}
-\pdfglyphtounicode{hahfinalarabic}{FEA2}
-\pdfglyphtounicode{hahinitialarabic}{FEA3}
-\pdfglyphtounicode{hahiragana}{306F}
-\pdfglyphtounicode{hahmedialarabic}{FEA4}
-\pdfglyphtounicode{haitusquare}{332A}
-\pdfglyphtounicode{hakatakana}{30CF}
-\pdfglyphtounicode{hakatakanahalfwidth}{FF8A}
-\pdfglyphtounicode{halantgurmukhi}{0A4D}
-\pdfglyphtounicode{hamzaarabic}{0621}
-\pdfglyphtounicode{hamzadammaarabic}{0621 064F}
-\pdfglyphtounicode{hamzadammatanarabic}{0621 064C}
-\pdfglyphtounicode{hamzafathaarabic}{0621 064E}
-\pdfglyphtounicode{hamzafathatanarabic}{0621 064B}
-\pdfglyphtounicode{hamzalowarabic}{0621}
-\pdfglyphtounicode{hamzalowkasraarabic}{0621 0650}
-\pdfglyphtounicode{hamzalowkasratanarabic}{0621 064D}
-\pdfglyphtounicode{hamzasukunarabic}{0621 0652}
-\pdfglyphtounicode{hangulfiller}{3164}
-\pdfglyphtounicode{hardsigncyrillic}{044A}
-\pdfglyphtounicode{harpoondownleft}{21C3}
-\pdfglyphtounicode{harpoondownright}{21C2}
-\pdfglyphtounicode{harpoonleftbarbup}{21BC}
-\pdfglyphtounicode{harpoonleftright}{21CC}
-\pdfglyphtounicode{harpoonrightbarbup}{21C0}
-\pdfglyphtounicode{harpoonrightleft}{21CB}
-\pdfglyphtounicode{harpoonupleft}{21BF}
-\pdfglyphtounicode{harpoonupright}{21BE}
-\pdfglyphtounicode{hasquare}{33CA}
-\pdfglyphtounicode{hatafpatah}{05B2}
-\pdfglyphtounicode{hatafpatah16}{05B2}
-\pdfglyphtounicode{hatafpatah23}{05B2}
-\pdfglyphtounicode{hatafpatah2f}{05B2}
-\pdfglyphtounicode{hatafpatahhebrew}{05B2}
-\pdfglyphtounicode{hatafpatahnarrowhebrew}{05B2}
-\pdfglyphtounicode{hatafpatahquarterhebrew}{05B2}
-\pdfglyphtounicode{hatafpatahwidehebrew}{05B2}
-\pdfglyphtounicode{hatafqamats}{05B3}
-\pdfglyphtounicode{hatafqamats1b}{05B3}
-\pdfglyphtounicode{hatafqamats28}{05B3}
-\pdfglyphtounicode{hatafqamats34}{05B3}
-\pdfglyphtounicode{hatafqamatshebrew}{05B3}
-\pdfglyphtounicode{hatafqamatsnarrowhebrew}{05B3}
-\pdfglyphtounicode{hatafqamatsquarterhebrew}{05B3}
-\pdfglyphtounicode{hatafqamatswidehebrew}{05B3}
-\pdfglyphtounicode{hatafsegol}{05B1}
-\pdfglyphtounicode{hatafsegol17}{05B1}
-\pdfglyphtounicode{hatafsegol24}{05B1}
-\pdfglyphtounicode{hatafsegol30}{05B1}
-\pdfglyphtounicode{hatafsegolhebrew}{05B1}
-\pdfglyphtounicode{hatafsegolnarrowhebrew}{05B1}
-\pdfglyphtounicode{hatafsegolquarterhebrew}{05B1}
-\pdfglyphtounicode{hatafsegolwidehebrew}{05B1}
-\pdfglyphtounicode{hbar}{0127}
-\pdfglyphtounicode{hbopomofo}{310F}
-\pdfglyphtounicode{hbrevebelow}{1E2B}
-\pdfglyphtounicode{hcedilla}{1E29}
-\pdfglyphtounicode{hcircle}{24D7}
-\pdfglyphtounicode{hcircumflex}{0125}
-\pdfglyphtounicode{hdieresis}{1E27}
-\pdfglyphtounicode{hdotaccent}{1E23}
-\pdfglyphtounicode{hdotbelow}{1E25}
-\pdfglyphtounicode{he}{05D4}
-\pdfglyphtounicode{heart}{2665}
-\pdfglyphtounicode{heartsuitblack}{2665}
-\pdfglyphtounicode{heartsuitwhite}{2661}
-\pdfglyphtounicode{hedagesh}{FB34}
-\pdfglyphtounicode{hedageshhebrew}{FB34}
-\pdfglyphtounicode{hehaltonearabic}{06C1}
-\pdfglyphtounicode{heharabic}{0647}
-\pdfglyphtounicode{hehebrew}{05D4}
-\pdfglyphtounicode{hehfinalaltonearabic}{FBA7}
-\pdfglyphtounicode{hehfinalalttwoarabic}{FEEA}
-\pdfglyphtounicode{hehfinalarabic}{FEEA}
-\pdfglyphtounicode{hehhamzaabovefinalarabic}{FBA5}
-\pdfglyphtounicode{hehhamzaaboveisolatedarabic}{FBA4}
-\pdfglyphtounicode{hehinitialaltonearabic}{FBA8}
-\pdfglyphtounicode{hehinitialarabic}{FEEB}
-\pdfglyphtounicode{hehiragana}{3078}
-\pdfglyphtounicode{hehmedialaltonearabic}{FBA9}
-\pdfglyphtounicode{hehmedialarabic}{FEEC}
-\pdfglyphtounicode{heiseierasquare}{337B}
-\pdfglyphtounicode{hekatakana}{30D8}
-\pdfglyphtounicode{hekatakanahalfwidth}{FF8D}
-\pdfglyphtounicode{hekutaarusquare}{3336}
-\pdfglyphtounicode{henghook}{0267}
-\pdfglyphtounicode{herutusquare}{3339}
-\pdfglyphtounicode{het}{05D7}
-\pdfglyphtounicode{hethebrew}{05D7}
-\pdfglyphtounicode{hhook}{0266}
-\pdfglyphtounicode{hhooksuperior}{02B1}
-\pdfglyphtounicode{hieuhacirclekorean}{327B}
-\pdfglyphtounicode{hieuhaparenkorean}{321B}
-\pdfglyphtounicode{hieuhcirclekorean}{326D}
-\pdfglyphtounicode{hieuhkorean}{314E}
-\pdfglyphtounicode{hieuhparenkorean}{320D}
-\pdfglyphtounicode{hihiragana}{3072}
-\pdfglyphtounicode{hikatakana}{30D2}
-\pdfglyphtounicode{hikatakanahalfwidth}{FF8B}
-\pdfglyphtounicode{hiriq}{05B4}
-\pdfglyphtounicode{hiriq14}{05B4}
-\pdfglyphtounicode{hiriq21}{05B4}
-\pdfglyphtounicode{hiriq2d}{05B4}
-\pdfglyphtounicode{hiriqhebrew}{05B4}
-\pdfglyphtounicode{hiriqnarrowhebrew}{05B4}
-\pdfglyphtounicode{hiriqquarterhebrew}{05B4}
-\pdfglyphtounicode{hiriqwidehebrew}{05B4}
-\pdfglyphtounicode{hlinebelow}{1E96}
-\pdfglyphtounicode{hmonospace}{FF48}
-\pdfglyphtounicode{hoarmenian}{0570}
-\pdfglyphtounicode{hohipthai}{0E2B}
-\pdfglyphtounicode{hohiragana}{307B}
-\pdfglyphtounicode{hokatakana}{30DB}
-\pdfglyphtounicode{hokatakanahalfwidth}{FF8E}
-\pdfglyphtounicode{holam}{05B9}
-\pdfglyphtounicode{holam19}{05B9}
-\pdfglyphtounicode{holam26}{05B9}
-\pdfglyphtounicode{holam32}{05B9}
-\pdfglyphtounicode{holamhebrew}{05B9}
-\pdfglyphtounicode{holamnarrowhebrew}{05B9}
-\pdfglyphtounicode{holamquarterhebrew}{05B9}
-\pdfglyphtounicode{holamwidehebrew}{05B9}
-\pdfglyphtounicode{honokhukthai}{0E2E}
-\pdfglyphtounicode{hookabovecomb}{0309}
-\pdfglyphtounicode{hookcmb}{0309}
-\pdfglyphtounicode{hookpalatalizedbelowcmb}{0321}
-\pdfglyphtounicode{hookretroflexbelowcmb}{0322}
-\pdfglyphtounicode{hoonsquare}{3342}
-\pdfglyphtounicode{horicoptic}{03E9}
-\pdfglyphtounicode{horizontalbar}{2015}
-\pdfglyphtounicode{horncmb}{031B}
-\pdfglyphtounicode{hotsprings}{2668}
-\pdfglyphtounicode{house}{2302}
-\pdfglyphtounicode{hparen}{24A3}
-\pdfglyphtounicode{hsuperior}{02B0}
-\pdfglyphtounicode{hturned}{0265}
-\pdfglyphtounicode{huhiragana}{3075}
-\pdfglyphtounicode{huiitosquare}{3333}
-\pdfglyphtounicode{hukatakana}{30D5}
-\pdfglyphtounicode{hukatakanahalfwidth}{FF8C}
-\pdfglyphtounicode{hungarumlaut}{02DD}
-\pdfglyphtounicode{hungarumlautcmb}{030B}
-\pdfglyphtounicode{hv}{0195}
-\pdfglyphtounicode{hyphen}{002D}
-\pdfglyphtounicode{hyphenchar}{002D}
-\pdfglyphtounicode{hypheninferior}{002D}
-\pdfglyphtounicode{hyphenmonospace}{FF0D}
-\pdfglyphtounicode{hyphensmall}{FE63}
-\pdfglyphtounicode{hyphensuperior}{002D}
-\pdfglyphtounicode{hyphentwo}{2010}
-\pdfglyphtounicode{i}{0069}
-\pdfglyphtounicode{iacute}{00ED}
-\pdfglyphtounicode{iacyrillic}{044F}
-\pdfglyphtounicode{ibengali}{0987}
-\pdfglyphtounicode{ibopomofo}{3127}
-\pdfglyphtounicode{ibreve}{012D}
-\pdfglyphtounicode{icaron}{01D0}
-\pdfglyphtounicode{icircle}{24D8}
-\pdfglyphtounicode{icircumflex}{00EE}
-\pdfglyphtounicode{icyrillic}{0456}
-\pdfglyphtounicode{idblgrave}{0209}
-\pdfglyphtounicode{ideographearthcircle}{328F}
-\pdfglyphtounicode{ideographfirecircle}{328B}
-\pdfglyphtounicode{ideographicallianceparen}{323F}
-\pdfglyphtounicode{ideographiccallparen}{323A}
-\pdfglyphtounicode{ideographiccentrecircle}{32A5}
-\pdfglyphtounicode{ideographicclose}{3006}
-\pdfglyphtounicode{ideographiccomma}{3001}
-\pdfglyphtounicode{ideographiccommaleft}{FF64}
-\pdfglyphtounicode{ideographiccongratulationparen}{3237}
-\pdfglyphtounicode{ideographiccorrectcircle}{32A3}
-\pdfglyphtounicode{ideographicearthparen}{322F}
-\pdfglyphtounicode{ideographicenterpriseparen}{323D}
-\pdfglyphtounicode{ideographicexcellentcircle}{329D}
-\pdfglyphtounicode{ideographicfestivalparen}{3240}
-\pdfglyphtounicode{ideographicfinancialcircle}{3296}
-\pdfglyphtounicode{ideographicfinancialparen}{3236}
-\pdfglyphtounicode{ideographicfireparen}{322B}
-\pdfglyphtounicode{ideographichaveparen}{3232}
-\pdfglyphtounicode{ideographichighcircle}{32A4}
-\pdfglyphtounicode{ideographiciterationmark}{3005}
-\pdfglyphtounicode{ideographiclaborcircle}{3298}
-\pdfglyphtounicode{ideographiclaborparen}{3238}
-\pdfglyphtounicode{ideographicleftcircle}{32A7}
-\pdfglyphtounicode{ideographiclowcircle}{32A6}
-\pdfglyphtounicode{ideographicmedicinecircle}{32A9}
-\pdfglyphtounicode{ideographicmetalparen}{322E}
-\pdfglyphtounicode{ideographicmoonparen}{322A}
-\pdfglyphtounicode{ideographicnameparen}{3234}
-\pdfglyphtounicode{ideographicperiod}{3002}
-\pdfglyphtounicode{ideographicprintcircle}{329E}
-\pdfglyphtounicode{ideographicreachparen}{3243}
-\pdfglyphtounicode{ideographicrepresentparen}{3239}
-\pdfglyphtounicode{ideographicresourceparen}{323E}
-\pdfglyphtounicode{ideographicrightcircle}{32A8}
-\pdfglyphtounicode{ideographicsecretcircle}{3299}
-\pdfglyphtounicode{ideographicselfparen}{3242}
-\pdfglyphtounicode{ideographicsocietyparen}{3233}
-\pdfglyphtounicode{ideographicspace}{3000}
-\pdfglyphtounicode{ideographicspecialparen}{3235}
-\pdfglyphtounicode{ideographicstockparen}{3231}
-\pdfglyphtounicode{ideographicstudyparen}{323B}
-\pdfglyphtounicode{ideographicsunparen}{3230}
-\pdfglyphtounicode{ideographicsuperviseparen}{323C}
-\pdfglyphtounicode{ideographicwaterparen}{322C}
-\pdfglyphtounicode{ideographicwoodparen}{322D}
-\pdfglyphtounicode{ideographiczero}{3007}
-\pdfglyphtounicode{ideographmetalcircle}{328E}
-\pdfglyphtounicode{ideographmooncircle}{328A}
-\pdfglyphtounicode{ideographnamecircle}{3294}
-\pdfglyphtounicode{ideographsuncircle}{3290}
-\pdfglyphtounicode{ideographwatercircle}{328C}
-\pdfglyphtounicode{ideographwoodcircle}{328D}
-\pdfglyphtounicode{ideva}{0907}
-\pdfglyphtounicode{idieresis}{00EF}
-\pdfglyphtounicode{idieresisacute}{1E2F}
-\pdfglyphtounicode{idieresiscyrillic}{04E5}
-\pdfglyphtounicode{idotbelow}{1ECB}
-\pdfglyphtounicode{iebrevecyrillic}{04D7}
-\pdfglyphtounicode{iecyrillic}{0435}
-\pdfglyphtounicode{ieungacirclekorean}{3275}
-\pdfglyphtounicode{ieungaparenkorean}{3215}
-\pdfglyphtounicode{ieungcirclekorean}{3267}
-\pdfglyphtounicode{ieungkorean}{3147}
-\pdfglyphtounicode{ieungparenkorean}{3207}
-\pdfglyphtounicode{igrave}{00EC}
-\pdfglyphtounicode{igujarati}{0A87}
-\pdfglyphtounicode{igurmukhi}{0A07}
-\pdfglyphtounicode{ihiragana}{3044}
-\pdfglyphtounicode{ihookabove}{1EC9}
-\pdfglyphtounicode{iibengali}{0988}
-\pdfglyphtounicode{iicyrillic}{0438}
-\pdfglyphtounicode{iideva}{0908}
-\pdfglyphtounicode{iigujarati}{0A88}
-\pdfglyphtounicode{iigurmukhi}{0A08}
-\pdfglyphtounicode{iimatragurmukhi}{0A40}
-\pdfglyphtounicode{iinvertedbreve}{020B}
-\pdfglyphtounicode{iishortcyrillic}{0439}
-\pdfglyphtounicode{iivowelsignbengali}{09C0}
-\pdfglyphtounicode{iivowelsigndeva}{0940}
-\pdfglyphtounicode{iivowelsigngujarati}{0AC0}
-\pdfglyphtounicode{ij}{0133}
-\pdfglyphtounicode{ikatakana}{30A4}
-\pdfglyphtounicode{ikatakanahalfwidth}{FF72}
-\pdfglyphtounicode{ikorean}{3163}
-\pdfglyphtounicode{ilde}{02DC}
-\pdfglyphtounicode{iluyhebrew}{05AC}
-\pdfglyphtounicode{imacron}{012B}
-\pdfglyphtounicode{imacroncyrillic}{04E3}
-\pdfglyphtounicode{imageorapproximatelyequal}{2253}
-\pdfglyphtounicode{imatragurmukhi}{0A3F}
-\pdfglyphtounicode{imonospace}{FF49}
-\pdfglyphtounicode{increment}{2206}
-\pdfglyphtounicode{infinity}{221E}
-\pdfglyphtounicode{iniarmenian}{056B}
-\pdfglyphtounicode{integerdivide}{2216}
-\pdfglyphtounicode{integral}{222B}
-\pdfglyphtounicode{integralbottom}{2321}
-\pdfglyphtounicode{integralbt}{2321}
-\pdfglyphtounicode{integralex}{F8F5}
-\pdfglyphtounicode{integraltop}{2320}
-\pdfglyphtounicode{integraltp}{2320}
-\pdfglyphtounicode{intercal}{22BA}
-\pdfglyphtounicode{interrobang}{203D}
-\pdfglyphtounicode{interrobangdown}{2E18}
-\pdfglyphtounicode{intersection}{2229}
-\pdfglyphtounicode{intersectiondbl}{22D2}
-\pdfglyphtounicode{intersectionsq}{2293}
-\pdfglyphtounicode{intisquare}{3305}
-\pdfglyphtounicode{invbullet}{25D8}
-\pdfglyphtounicode{invcircle}{25D9}
-\pdfglyphtounicode{invsmileface}{263B}
-\pdfglyphtounicode{iocyrillic}{0451}
-\pdfglyphtounicode{iogonek}{012F}
-\pdfglyphtounicode{iota}{03B9}
-\pdfglyphtounicode{iotadieresis}{03CA}
-\pdfglyphtounicode{iotadieresistonos}{0390}
-\pdfglyphtounicode{iotalatin}{0269}
-\pdfglyphtounicode{iotatonos}{03AF}
-\pdfglyphtounicode{iparen}{24A4}
-\pdfglyphtounicode{irigurmukhi}{0A72}
-\pdfglyphtounicode{ismallhiragana}{3043}
-\pdfglyphtounicode{ismallkatakana}{30A3}
-\pdfglyphtounicode{ismallkatakanahalfwidth}{FF68}
-\pdfglyphtounicode{issharbengali}{09FA}
-\pdfglyphtounicode{istroke}{0268}
-\pdfglyphtounicode{isuperior}{0069}
-\pdfglyphtounicode{iterationhiragana}{309D}
-\pdfglyphtounicode{iterationkatakana}{30FD}
-\pdfglyphtounicode{itilde}{0129}
-\pdfglyphtounicode{itildebelow}{1E2D}
-\pdfglyphtounicode{iubopomofo}{3129}
-\pdfglyphtounicode{iucyrillic}{044E}
-\pdfglyphtounicode{ivowelsignbengali}{09BF}
-\pdfglyphtounicode{ivowelsigndeva}{093F}
-\pdfglyphtounicode{ivowelsigngujarati}{0ABF}
-\pdfglyphtounicode{izhitsacyrillic}{0475}
-\pdfglyphtounicode{izhitsadblgravecyrillic}{0477}
-\pdfglyphtounicode{j}{006A}
-\pdfglyphtounicode{jaarmenian}{0571}
-\pdfglyphtounicode{jabengali}{099C}
-\pdfglyphtounicode{jadeva}{091C}
-\pdfglyphtounicode{jagujarati}{0A9C}
-\pdfglyphtounicode{jagurmukhi}{0A1C}
-\pdfglyphtounicode{jbopomofo}{3110}
-\pdfglyphtounicode{jcaron}{01F0}
-\pdfglyphtounicode{jcircle}{24D9}
-\pdfglyphtounicode{jcircumflex}{0135}
-\pdfglyphtounicode{jcrossedtail}{029D}
-\pdfglyphtounicode{jdotlessstroke}{025F}
-\pdfglyphtounicode{jecyrillic}{0458}
-\pdfglyphtounicode{jeemarabic}{062C}
-\pdfglyphtounicode{jeemfinalarabic}{FE9E}
-\pdfglyphtounicode{jeeminitialarabic}{FE9F}
-\pdfglyphtounicode{jeemmedialarabic}{FEA0}
-\pdfglyphtounicode{jeharabic}{0698}
-\pdfglyphtounicode{jehfinalarabic}{FB8B}
-\pdfglyphtounicode{jhabengali}{099D}
-\pdfglyphtounicode{jhadeva}{091D}
-\pdfglyphtounicode{jhagujarati}{0A9D}
-\pdfglyphtounicode{jhagurmukhi}{0A1D}
-\pdfglyphtounicode{jheharmenian}{057B}
-\pdfglyphtounicode{jis}{3004}
-\pdfglyphtounicode{jmonospace}{FF4A}
-\pdfglyphtounicode{jparen}{24A5}
-\pdfglyphtounicode{jsuperior}{02B2}
-\pdfglyphtounicode{k}{006B}
-\pdfglyphtounicode{kabashkircyrillic}{04A1}
-\pdfglyphtounicode{kabengali}{0995}
-\pdfglyphtounicode{kacute}{1E31}
-\pdfglyphtounicode{kacyrillic}{043A}
-\pdfglyphtounicode{kadescendercyrillic}{049B}
-\pdfglyphtounicode{kadeva}{0915}
-\pdfglyphtounicode{kaf}{05DB}
-\pdfglyphtounicode{kafarabic}{0643}
-\pdfglyphtounicode{kafdagesh}{FB3B}
-\pdfglyphtounicode{kafdageshhebrew}{FB3B}
-\pdfglyphtounicode{kaffinalarabic}{FEDA}
-\pdfglyphtounicode{kafhebrew}{05DB}
-\pdfglyphtounicode{kafinitialarabic}{FEDB}
-\pdfglyphtounicode{kafmedialarabic}{FEDC}
-\pdfglyphtounicode{kafrafehebrew}{FB4D}
-\pdfglyphtounicode{kagujarati}{0A95}
-\pdfglyphtounicode{kagurmukhi}{0A15}
-\pdfglyphtounicode{kahiragana}{304B}
-\pdfglyphtounicode{kahookcyrillic}{04C4}
-\pdfglyphtounicode{kakatakana}{30AB}
-\pdfglyphtounicode{kakatakanahalfwidth}{FF76}
-\pdfglyphtounicode{kappa}{03BA}
-\pdfglyphtounicode{kappasymbolgreek}{03F0}
-\pdfglyphtounicode{kapyeounmieumkorean}{3171}
-\pdfglyphtounicode{kapyeounphieuphkorean}{3184}
-\pdfglyphtounicode{kapyeounpieupkorean}{3178}
-\pdfglyphtounicode{kapyeounssangpieupkorean}{3179}
-\pdfglyphtounicode{karoriisquare}{330D}
-\pdfglyphtounicode{kashidaautoarabic}{0640}
-\pdfglyphtounicode{kashidaautonosidebearingarabic}{0640}
-\pdfglyphtounicode{kasmallkatakana}{30F5}
-\pdfglyphtounicode{kasquare}{3384}
-\pdfglyphtounicode{kasraarabic}{0650}
-\pdfglyphtounicode{kasratanarabic}{064D}
-\pdfglyphtounicode{kastrokecyrillic}{049F}
-\pdfglyphtounicode{katahiraprolongmarkhalfwidth}{FF70}
-\pdfglyphtounicode{kaverticalstrokecyrillic}{049D}
-\pdfglyphtounicode{kbopomofo}{310E}
-\pdfglyphtounicode{kcalsquare}{3389}
-\pdfglyphtounicode{kcaron}{01E9}
-\pdfglyphtounicode{kcedilla}{0137}
-\pdfglyphtounicode{kcircle}{24DA}
-\pdfglyphtounicode{kcommaaccent}{0137}
-\pdfglyphtounicode{kdotbelow}{1E33}
-\pdfglyphtounicode{keharmenian}{0584}
-\pdfglyphtounicode{kehiragana}{3051}
-\pdfglyphtounicode{kekatakana}{30B1}
-\pdfglyphtounicode{kekatakanahalfwidth}{FF79}
-\pdfglyphtounicode{kenarmenian}{056F}
-\pdfglyphtounicode{kesmallkatakana}{30F6}
-\pdfglyphtounicode{kgreenlandic}{0138}
-\pdfglyphtounicode{khabengali}{0996}
-\pdfglyphtounicode{khacyrillic}{0445}
-\pdfglyphtounicode{khadeva}{0916}
-\pdfglyphtounicode{khagujarati}{0A96}
-\pdfglyphtounicode{khagurmukhi}{0A16}
-\pdfglyphtounicode{khaharabic}{062E}
-\pdfglyphtounicode{khahfinalarabic}{FEA6}
-\pdfglyphtounicode{khahinitialarabic}{FEA7}
-\pdfglyphtounicode{khahmedialarabic}{FEA8}
-\pdfglyphtounicode{kheicoptic}{03E7}
-\pdfglyphtounicode{khhadeva}{0959}
-\pdfglyphtounicode{khhagurmukhi}{0A59}
-\pdfglyphtounicode{khieukhacirclekorean}{3278}
-\pdfglyphtounicode{khieukhaparenkorean}{3218}
-\pdfglyphtounicode{khieukhcirclekorean}{326A}
-\pdfglyphtounicode{khieukhkorean}{314B}
-\pdfglyphtounicode{khieukhparenkorean}{320A}
-\pdfglyphtounicode{khokhaithai}{0E02}
-\pdfglyphtounicode{khokhonthai}{0E05}
-\pdfglyphtounicode{khokhuatthai}{0E03}
-\pdfglyphtounicode{khokhwaithai}{0E04}
-\pdfglyphtounicode{khomutthai}{0E5B}
-\pdfglyphtounicode{khook}{0199}
-\pdfglyphtounicode{khorakhangthai}{0E06}
-\pdfglyphtounicode{khzsquare}{3391}
-\pdfglyphtounicode{kihiragana}{304D}
-\pdfglyphtounicode{kikatakana}{30AD}
-\pdfglyphtounicode{kikatakanahalfwidth}{FF77}
-\pdfglyphtounicode{kiroguramusquare}{3315}
-\pdfglyphtounicode{kiromeetorusquare}{3316}
-\pdfglyphtounicode{kirosquare}{3314}
-\pdfglyphtounicode{kiyeokacirclekorean}{326E}
-\pdfglyphtounicode{kiyeokaparenkorean}{320E}
-\pdfglyphtounicode{kiyeokcirclekorean}{3260}
-\pdfglyphtounicode{kiyeokkorean}{3131}
-\pdfglyphtounicode{kiyeokparenkorean}{3200}
-\pdfglyphtounicode{kiyeoksioskorean}{3133}
-\pdfglyphtounicode{kjecyrillic}{045C}
-\pdfglyphtounicode{klinebelow}{1E35}
-\pdfglyphtounicode{klsquare}{3398}
-\pdfglyphtounicode{kmcubedsquare}{33A6}
-\pdfglyphtounicode{kmonospace}{FF4B}
-\pdfglyphtounicode{kmsquaredsquare}{33A2}
-\pdfglyphtounicode{kohiragana}{3053}
-\pdfglyphtounicode{kohmsquare}{33C0}
-\pdfglyphtounicode{kokaithai}{0E01}
-\pdfglyphtounicode{kokatakana}{30B3}
-\pdfglyphtounicode{kokatakanahalfwidth}{FF7A}
-\pdfglyphtounicode{kooposquare}{331E}
-\pdfglyphtounicode{koppacyrillic}{0481}
-\pdfglyphtounicode{koreanstandardsymbol}{327F}
-\pdfglyphtounicode{koroniscmb}{0343}
-\pdfglyphtounicode{kparen}{24A6}
-\pdfglyphtounicode{kpasquare}{33AA}
-\pdfglyphtounicode{ksicyrillic}{046F}
-\pdfglyphtounicode{ktsquare}{33CF}
-\pdfglyphtounicode{kturned}{029E}
-\pdfglyphtounicode{kuhiragana}{304F}
-\pdfglyphtounicode{kukatakana}{30AF}
-\pdfglyphtounicode{kukatakanahalfwidth}{FF78}
-\pdfglyphtounicode{kvsquare}{33B8}
-\pdfglyphtounicode{kwsquare}{33BE}
-\pdfglyphtounicode{l}{006C}
-\pdfglyphtounicode{labengali}{09B2}
-\pdfglyphtounicode{lacute}{013A}
-\pdfglyphtounicode{ladeva}{0932}
-\pdfglyphtounicode{lagujarati}{0AB2}
-\pdfglyphtounicode{lagurmukhi}{0A32}
-\pdfglyphtounicode{lakkhangyaothai}{0E45}
-\pdfglyphtounicode{lamaleffinalarabic}{FEFC}
-\pdfglyphtounicode{lamalefhamzaabovefinalarabic}{FEF8}
-\pdfglyphtounicode{lamalefhamzaaboveisolatedarabic}{FEF7}
-\pdfglyphtounicode{lamalefhamzabelowfinalarabic}{FEFA}
-\pdfglyphtounicode{lamalefhamzabelowisolatedarabic}{FEF9}
-\pdfglyphtounicode{lamalefisolatedarabic}{FEFB}
-\pdfglyphtounicode{lamalefmaddaabovefinalarabic}{FEF6}
-\pdfglyphtounicode{lamalefmaddaaboveisolatedarabic}{FEF5}
-\pdfglyphtounicode{lamarabic}{0644}
-\pdfglyphtounicode{lambda}{03BB}
-\pdfglyphtounicode{lambdastroke}{019B}
-\pdfglyphtounicode{lamed}{05DC}
-\pdfglyphtounicode{lameddagesh}{FB3C}
-\pdfglyphtounicode{lameddageshhebrew}{FB3C}
-\pdfglyphtounicode{lamedhebrew}{05DC}
-\pdfglyphtounicode{lamedholam}{05DC 05B9}
-\pdfglyphtounicode{lamedholamdagesh}{05DC 05B9 05BC}
-\pdfglyphtounicode{lamedholamdageshhebrew}{05DC 05B9 05BC}
-\pdfglyphtounicode{lamedholamhebrew}{05DC 05B9}
-\pdfglyphtounicode{lamfinalarabic}{FEDE}
-\pdfglyphtounicode{lamhahinitialarabic}{FCCA}
-\pdfglyphtounicode{laminitialarabic}{FEDF}
-\pdfglyphtounicode{lamjeeminitialarabic}{FCC9}
-\pdfglyphtounicode{lamkhahinitialarabic}{FCCB}
-\pdfglyphtounicode{lamlamhehisolatedarabic}{FDF2}
-\pdfglyphtounicode{lammedialarabic}{FEE0}
-\pdfglyphtounicode{lammeemhahinitialarabic}{FD88}
-\pdfglyphtounicode{lammeeminitialarabic}{FCCC}
-\pdfglyphtounicode{lammeemjeeminitialarabic}{FEDF FEE4 FEA0}
-\pdfglyphtounicode{lammeemkhahinitialarabic}{FEDF FEE4 FEA8}
-\pdfglyphtounicode{largecircle}{25EF}
-\pdfglyphtounicode{latticetop}{22A4}
-\pdfglyphtounicode{lbar}{019A}
-\pdfglyphtounicode{lbelt}{026C}
-\pdfglyphtounicode{lbopomofo}{310C}
-\pdfglyphtounicode{lcaron}{013E}
-\pdfglyphtounicode{lcedilla}{013C}
-\pdfglyphtounicode{lcircle}{24DB}
-\pdfglyphtounicode{lcircumflexbelow}{1E3D}
-\pdfglyphtounicode{lcommaaccent}{013C}
-\pdfglyphtounicode{ldot}{0140}
-\pdfglyphtounicode{ldotaccent}{0140}
-\pdfglyphtounicode{ldotbelow}{1E37}
-\pdfglyphtounicode{ldotbelowmacron}{1E39}
-\pdfglyphtounicode{leftangleabovecmb}{031A}
-\pdfglyphtounicode{lefttackbelowcmb}{0318}
-\pdfglyphtounicode{less}{003C}
-\pdfglyphtounicode{lessdbleqlgreater}{2A8B}
-\pdfglyphtounicode{lessdblequal}{2266}
-\pdfglyphtounicode{lessdot}{22D6}
-\pdfglyphtounicode{lessequal}{2264}
-\pdfglyphtounicode{lessequalgreater}{22DA}
-\pdfglyphtounicode{lessequalorgreater}{22DA}
-\pdfglyphtounicode{lessmonospace}{FF1C}
-\pdfglyphtounicode{lessmuch}{226A}
-\pdfglyphtounicode{lessnotdblequal}{2A89}
-\pdfglyphtounicode{lessnotequal}{2A87}
-\pdfglyphtounicode{lessorapproxeql}{2A85}
-\pdfglyphtounicode{lessorequalslant}{2A7D}
-\pdfglyphtounicode{lessorequivalent}{2272}
-\pdfglyphtounicode{lessorgreater}{2276}
-\pdfglyphtounicode{lessornotdbleql}{2268}
-\pdfglyphtounicode{lessornotequal}{2268}
-\pdfglyphtounicode{lessorsimilar}{2272}
-\pdfglyphtounicode{lessoverequal}{2266}
-\pdfglyphtounicode{lesssmall}{FE64}
-\pdfglyphtounicode{lezh}{026E}
-\pdfglyphtounicode{lfblock}{258C}
-\pdfglyphtounicode{lhookretroflex}{026D}
-\pdfglyphtounicode{lira}{20A4}
-\pdfglyphtounicode{liwnarmenian}{056C}
-\pdfglyphtounicode{lj}{01C9}
-\pdfglyphtounicode{ljecyrillic}{0459}
-\pdfglyphtounicode{ll}{006C 006C}
-\pdfglyphtounicode{lladeva}{0933}
-\pdfglyphtounicode{llagujarati}{0AB3}
-\pdfglyphtounicode{llinebelow}{1E3B}
-\pdfglyphtounicode{llladeva}{0934}
-\pdfglyphtounicode{llvocalicbengali}{09E1}
-\pdfglyphtounicode{llvocalicdeva}{0961}
-\pdfglyphtounicode{llvocalicvowelsignbengali}{09E3}
-\pdfglyphtounicode{llvocalicvowelsigndeva}{0963}
-\pdfglyphtounicode{lmiddletilde}{026B}
-\pdfglyphtounicode{lmonospace}{FF4C}
-\pdfglyphtounicode{lmsquare}{33D0}
-\pdfglyphtounicode{lochulathai}{0E2C}
-\pdfglyphtounicode{logicaland}{2227}
-\pdfglyphtounicode{logicalnot}{00AC}
-\pdfglyphtounicode{logicalnotreversed}{2310}
-\pdfglyphtounicode{logicalor}{2228}
-\pdfglyphtounicode{lolingthai}{0E25}
-\pdfglyphtounicode{longdbls}{017F 017F}
-\pdfglyphtounicode{longs}{017F}
-\pdfglyphtounicode{longsh}{017F 0068}
-\pdfglyphtounicode{longsi}{017F 0069}
-\pdfglyphtounicode{longsl}{017F 006C}
-\pdfglyphtounicode{longst}{017F 0074}
-\pdfglyphtounicode{lowlinecenterline}{FE4E}
-\pdfglyphtounicode{lowlinecmb}{0332}
-\pdfglyphtounicode{lowlinedashed}{FE4D}
-\pdfglyphtounicode{lozenge}{25CA}
-\pdfglyphtounicode{lparen}{24A7}
-\pdfglyphtounicode{lscript}{2113}
-\pdfglyphtounicode{lslash}{0142}
-\pdfglyphtounicode{lsquare}{2113}
-\pdfglyphtounicode{lsuperior}{006C}
-\pdfglyphtounicode{ltshade}{2591}
-\pdfglyphtounicode{luthai}{0E26}
-\pdfglyphtounicode{lvocalicbengali}{098C}
-\pdfglyphtounicode{lvocalicdeva}{090C}
-\pdfglyphtounicode{lvocalicvowelsignbengali}{09E2}
-\pdfglyphtounicode{lvocalicvowelsigndeva}{0962}
-\pdfglyphtounicode{lxsquare}{33D3}
-\pdfglyphtounicode{m}{006D}
-\pdfglyphtounicode{mabengali}{09AE}
-\pdfglyphtounicode{macron}{00AF}
-\pdfglyphtounicode{macronbelowcmb}{0331}
-\pdfglyphtounicode{macroncmb}{0304}
-\pdfglyphtounicode{macronlowmod}{02CD}
-\pdfglyphtounicode{macronmonospace}{FFE3}
-\pdfglyphtounicode{macute}{1E3F}
-\pdfglyphtounicode{madeva}{092E}
-\pdfglyphtounicode{magujarati}{0AAE}
-\pdfglyphtounicode{magurmukhi}{0A2E}
-\pdfglyphtounicode{mahapakhhebrew}{05A4}
-\pdfglyphtounicode{mahapakhlefthebrew}{05A4}
-\pdfglyphtounicode{mahiragana}{307E}
-\pdfglyphtounicode{maichattawalowleftthai}{F895}
-\pdfglyphtounicode{maichattawalowrightthai}{F894}
-\pdfglyphtounicode{maichattawathai}{0E4B}
-\pdfglyphtounicode{maichattawaupperleftthai}{F893}
-\pdfglyphtounicode{maieklowleftthai}{F88C}
-\pdfglyphtounicode{maieklowrightthai}{F88B}
-\pdfglyphtounicode{maiekthai}{0E48}
-\pdfglyphtounicode{maiekupperleftthai}{F88A}
-\pdfglyphtounicode{maihanakatleftthai}{F884}
-\pdfglyphtounicode{maihanakatthai}{0E31}
-\pdfglyphtounicode{maitaikhuleftthai}{F889}
-\pdfglyphtounicode{maitaikhuthai}{0E47}
-\pdfglyphtounicode{maitholowleftthai}{F88F}
-\pdfglyphtounicode{maitholowrightthai}{F88E}
-\pdfglyphtounicode{maithothai}{0E49}
-\pdfglyphtounicode{maithoupperleftthai}{F88D}
-\pdfglyphtounicode{maitrilowleftthai}{F892}
-\pdfglyphtounicode{maitrilowrightthai}{F891}
-\pdfglyphtounicode{maitrithai}{0E4A}
-\pdfglyphtounicode{maitriupperleftthai}{F890}
-\pdfglyphtounicode{maiyamokthai}{0E46}
-\pdfglyphtounicode{makatakana}{30DE}
-\pdfglyphtounicode{makatakanahalfwidth}{FF8F}
-\pdfglyphtounicode{male}{2642}
-\pdfglyphtounicode{maltesecross}{2720}
-\pdfglyphtounicode{mansyonsquare}{3347}
-\pdfglyphtounicode{maqafhebrew}{05BE}
-\pdfglyphtounicode{mars}{2642}
-\pdfglyphtounicode{masoracirclehebrew}{05AF}
-\pdfglyphtounicode{masquare}{3383}
-\pdfglyphtounicode{mbopomofo}{3107}
-\pdfglyphtounicode{mbsquare}{33D4}
-\pdfglyphtounicode{mcircle}{24DC}
-\pdfglyphtounicode{mcubedsquare}{33A5}
-\pdfglyphtounicode{mdotaccent}{1E41}
-\pdfglyphtounicode{mdotbelow}{1E43}
-\pdfglyphtounicode{measuredangle}{2221}
-\pdfglyphtounicode{meemarabic}{0645}
-\pdfglyphtounicode{meemfinalarabic}{FEE2}
-\pdfglyphtounicode{meeminitialarabic}{FEE3}
-\pdfglyphtounicode{meemmedialarabic}{FEE4}
-\pdfglyphtounicode{meemmeeminitialarabic}{FCD1}
-\pdfglyphtounicode{meemmeemisolatedarabic}{FC48}
-\pdfglyphtounicode{meetorusquare}{334D}
-\pdfglyphtounicode{mehiragana}{3081}
-\pdfglyphtounicode{meizierasquare}{337E}
-\pdfglyphtounicode{mekatakana}{30E1}
-\pdfglyphtounicode{mekatakanahalfwidth}{FF92}
-\pdfglyphtounicode{mem}{05DE}
-\pdfglyphtounicode{memdagesh}{FB3E}
-\pdfglyphtounicode{memdageshhebrew}{FB3E}
-\pdfglyphtounicode{memhebrew}{05DE}
-\pdfglyphtounicode{menarmenian}{0574}
-\pdfglyphtounicode{merkhahebrew}{05A5}
-\pdfglyphtounicode{merkhakefulahebrew}{05A6}
-\pdfglyphtounicode{merkhakefulalefthebrew}{05A6}
-\pdfglyphtounicode{merkhalefthebrew}{05A5}
-\pdfglyphtounicode{mhook}{0271}
-\pdfglyphtounicode{mhzsquare}{3392}
-\pdfglyphtounicode{middledotkatakanahalfwidth}{FF65}
-\pdfglyphtounicode{middot}{00B7}
-\pdfglyphtounicode{mieumacirclekorean}{3272}
-\pdfglyphtounicode{mieumaparenkorean}{3212}
-\pdfglyphtounicode{mieumcirclekorean}{3264}
-\pdfglyphtounicode{mieumkorean}{3141}
-\pdfglyphtounicode{mieumpansioskorean}{3170}
-\pdfglyphtounicode{mieumparenkorean}{3204}
-\pdfglyphtounicode{mieumpieupkorean}{316E}
-\pdfglyphtounicode{mieumsioskorean}{316F}
-\pdfglyphtounicode{mihiragana}{307F}
-\pdfglyphtounicode{mikatakana}{30DF}
-\pdfglyphtounicode{mikatakanahalfwidth}{FF90}
-\pdfglyphtounicode{minus}{2212}
-\pdfglyphtounicode{minusbelowcmb}{0320}
-\pdfglyphtounicode{minuscircle}{2296}
-\pdfglyphtounicode{minusmod}{02D7}
-\pdfglyphtounicode{minusplus}{2213}
-\pdfglyphtounicode{minute}{2032}
-\pdfglyphtounicode{miribaarusquare}{334A}
-\pdfglyphtounicode{mirisquare}{3349}
-\pdfglyphtounicode{mlonglegturned}{0270}
-\pdfglyphtounicode{mlsquare}{3396}
-\pdfglyphtounicode{mmcubedsquare}{33A3}
-\pdfglyphtounicode{mmonospace}{FF4D}
-\pdfglyphtounicode{mmsquaredsquare}{339F}
-\pdfglyphtounicode{mohiragana}{3082}
-\pdfglyphtounicode{mohmsquare}{33C1}
-\pdfglyphtounicode{mokatakana}{30E2}
-\pdfglyphtounicode{mokatakanahalfwidth}{FF93}
-\pdfglyphtounicode{molsquare}{33D6}
-\pdfglyphtounicode{momathai}{0E21}
-\pdfglyphtounicode{moverssquare}{33A7}
-\pdfglyphtounicode{moverssquaredsquare}{33A8}
-\pdfglyphtounicode{mparen}{24A8}
-\pdfglyphtounicode{mpasquare}{33AB}
-\pdfglyphtounicode{mssquare}{33B3}
-\pdfglyphtounicode{msuperior}{006D}
-\pdfglyphtounicode{mturned}{026F}
-\pdfglyphtounicode{mu}{00B5}
-\pdfglyphtounicode{mu1}{00B5}
-\pdfglyphtounicode{muasquare}{3382}
-\pdfglyphtounicode{muchgreater}{226B}
-\pdfglyphtounicode{muchless}{226A}
-\pdfglyphtounicode{mufsquare}{338C}
-\pdfglyphtounicode{mugreek}{03BC}
-\pdfglyphtounicode{mugsquare}{338D}
-\pdfglyphtounicode{muhiragana}{3080}
-\pdfglyphtounicode{mukatakana}{30E0}
-\pdfglyphtounicode{mukatakanahalfwidth}{FF91}
-\pdfglyphtounicode{mulsquare}{3395}
-\pdfglyphtounicode{multicloseleft}{22C9}
-\pdfglyphtounicode{multicloseright}{22CA}
-\pdfglyphtounicode{multimap}{22B8}
-\pdfglyphtounicode{multiopenleft}{22CB}
-\pdfglyphtounicode{multiopenright}{22CC}
-\pdfglyphtounicode{multiply}{00D7}
-\pdfglyphtounicode{mumsquare}{339B}
-\pdfglyphtounicode{munahhebrew}{05A3}
-\pdfglyphtounicode{munahlefthebrew}{05A3}
-\pdfglyphtounicode{musicalnote}{266A}
-\pdfglyphtounicode{musicalnotedbl}{266B}
-\pdfglyphtounicode{musicflatsign}{266D}
-\pdfglyphtounicode{musicsharpsign}{266F}
-\pdfglyphtounicode{mussquare}{33B2}
-\pdfglyphtounicode{muvsquare}{33B6}
-\pdfglyphtounicode{muwsquare}{33BC}
-\pdfglyphtounicode{mvmegasquare}{33B9}
-\pdfglyphtounicode{mvsquare}{33B7}
-\pdfglyphtounicode{mwmegasquare}{33BF}
-\pdfglyphtounicode{mwsquare}{33BD}
-\pdfglyphtounicode{n}{006E}
-\pdfglyphtounicode{nabengali}{09A8}
-\pdfglyphtounicode{nabla}{2207}
-\pdfglyphtounicode{nacute}{0144}
-\pdfglyphtounicode{nadeva}{0928}
-\pdfglyphtounicode{nagujarati}{0AA8}
-\pdfglyphtounicode{nagurmukhi}{0A28}
-\pdfglyphtounicode{nahiragana}{306A}
-\pdfglyphtounicode{nakatakana}{30CA}
-\pdfglyphtounicode{nakatakanahalfwidth}{FF85}
-\pdfglyphtounicode{nand}{22BC}
-\pdfglyphtounicode{napostrophe}{0149}
-\pdfglyphtounicode{nasquare}{3381}
-\pdfglyphtounicode{natural}{266E}
-\pdfglyphtounicode{nbopomofo}{310B}
-\pdfglyphtounicode{nbspace}{00A0}
-\pdfglyphtounicode{ncaron}{0148}
-\pdfglyphtounicode{ncedilla}{0146}
-\pdfglyphtounicode{ncircle}{24DD}
-\pdfglyphtounicode{ncircumflexbelow}{1E4B}
-\pdfglyphtounicode{ncommaaccent}{0146}
-\pdfglyphtounicode{ndotaccent}{1E45}
-\pdfglyphtounicode{ndotbelow}{1E47}
-\pdfglyphtounicode{negationslash}{0338}
-\pdfglyphtounicode{nehiragana}{306D}
-\pdfglyphtounicode{nekatakana}{30CD}
-\pdfglyphtounicode{nekatakanahalfwidth}{FF88}
-\pdfglyphtounicode{newsheqelsign}{20AA}
-\pdfglyphtounicode{nfsquare}{338B}
-\pdfglyphtounicode{ng}{014B}
-\pdfglyphtounicode{ngabengali}{0999}
-\pdfglyphtounicode{ngadeva}{0919}
-\pdfglyphtounicode{ngagujarati}{0A99}
-\pdfglyphtounicode{ngagurmukhi}{0A19}
-\pdfglyphtounicode{ngonguthai}{0E07}
-\pdfglyphtounicode{nhiragana}{3093}
-\pdfglyphtounicode{nhookleft}{0272}
-\pdfglyphtounicode{nhookretroflex}{0273}
-\pdfglyphtounicode{nieunacirclekorean}{326F}
-\pdfglyphtounicode{nieunaparenkorean}{320F}
-\pdfglyphtounicode{nieuncieuckorean}{3135}
-\pdfglyphtounicode{nieuncirclekorean}{3261}
-\pdfglyphtounicode{nieunhieuhkorean}{3136}
-\pdfglyphtounicode{nieunkorean}{3134}
-\pdfglyphtounicode{nieunpansioskorean}{3168}
-\pdfglyphtounicode{nieunparenkorean}{3201}
-\pdfglyphtounicode{nieunsioskorean}{3167}
-\pdfglyphtounicode{nieuntikeutkorean}{3166}
-\pdfglyphtounicode{nihiragana}{306B}
-\pdfglyphtounicode{nikatakana}{30CB}
-\pdfglyphtounicode{nikatakanahalfwidth}{FF86}
-\pdfglyphtounicode{nikhahitleftthai}{F899}
-\pdfglyphtounicode{nikhahitthai}{0E4D}
-\pdfglyphtounicode{nine}{0039}
-\pdfglyphtounicode{ninearabic}{0669}
-\pdfglyphtounicode{ninebengali}{09EF}
-\pdfglyphtounicode{ninecircle}{2468}
-\pdfglyphtounicode{ninecircleinversesansserif}{2792}
-\pdfglyphtounicode{ninedeva}{096F}
-\pdfglyphtounicode{ninegujarati}{0AEF}
-\pdfglyphtounicode{ninegurmukhi}{0A6F}
-\pdfglyphtounicode{ninehackarabic}{0669}
-\pdfglyphtounicode{ninehangzhou}{3029}
-\pdfglyphtounicode{nineideographicparen}{3228}
-\pdfglyphtounicode{nineinferior}{2089}
-\pdfglyphtounicode{ninemonospace}{FF19}
-\pdfglyphtounicode{nineoldstyle}{0039}
-\pdfglyphtounicode{nineparen}{247C}
-\pdfglyphtounicode{nineperiod}{2490}
-\pdfglyphtounicode{ninepersian}{06F9}
-\pdfglyphtounicode{nineroman}{2178}
-\pdfglyphtounicode{ninesuperior}{2079}
-\pdfglyphtounicode{nineteencircle}{2472}
-\pdfglyphtounicode{nineteenparen}{2486}
-\pdfglyphtounicode{nineteenperiod}{249A}
-\pdfglyphtounicode{ninethai}{0E59}
-\pdfglyphtounicode{nj}{01CC}
-\pdfglyphtounicode{njecyrillic}{045A}
-\pdfglyphtounicode{nkatakana}{30F3}
-\pdfglyphtounicode{nkatakanahalfwidth}{FF9D}
-\pdfglyphtounicode{nlegrightlong}{019E}
-\pdfglyphtounicode{nlinebelow}{1E49}
-\pdfglyphtounicode{nmonospace}{FF4E}
-\pdfglyphtounicode{nmsquare}{339A}
-\pdfglyphtounicode{nnabengali}{09A3}
-\pdfglyphtounicode{nnadeva}{0923}
-\pdfglyphtounicode{nnagujarati}{0AA3}
-\pdfglyphtounicode{nnagurmukhi}{0A23}
-\pdfglyphtounicode{nnnadeva}{0929}
-\pdfglyphtounicode{nohiragana}{306E}
-\pdfglyphtounicode{nokatakana}{30CE}
-\pdfglyphtounicode{nokatakanahalfwidth}{FF89}
-\pdfglyphtounicode{nonbreakingspace}{00A0}
-\pdfglyphtounicode{nonenthai}{0E13}
-\pdfglyphtounicode{nonuthai}{0E19}
-\pdfglyphtounicode{noonarabic}{0646}
-\pdfglyphtounicode{noonfinalarabic}{FEE6}
-\pdfglyphtounicode{noonghunnaarabic}{06BA}
-\pdfglyphtounicode{noonghunnafinalarabic}{FB9F}
-\pdfglyphtounicode{noonhehinitialarabic}{FEE7 FEEC}
-\pdfglyphtounicode{nooninitialarabic}{FEE7}
-\pdfglyphtounicode{noonjeeminitialarabic}{FCD2}
-\pdfglyphtounicode{noonjeemisolatedarabic}{FC4B}
-\pdfglyphtounicode{noonmedialarabic}{FEE8}
-\pdfglyphtounicode{noonmeeminitialarabic}{FCD5}
-\pdfglyphtounicode{noonmeemisolatedarabic}{FC4E}
-\pdfglyphtounicode{noonnoonfinalarabic}{FC8D}
-\pdfglyphtounicode{notapproxequal}{2247}
-\pdfglyphtounicode{notarrowboth}{21AE}
-\pdfglyphtounicode{notarrowleft}{219A}
-\pdfglyphtounicode{notarrowright}{219B}
-\pdfglyphtounicode{notbar}{2224}
-\pdfglyphtounicode{notcontains}{220C}
-\pdfglyphtounicode{notdblarrowboth}{21CE}
-\pdfglyphtounicode{notdblarrowleft}{21CD}
-\pdfglyphtounicode{notdblarrowright}{21CF}
-\pdfglyphtounicode{notelement}{2209}
-\pdfglyphtounicode{notelementof}{2209}
-\pdfglyphtounicode{notequal}{2260}
-\pdfglyphtounicode{notexistential}{2204}
-\pdfglyphtounicode{notfollows}{2281}
-\pdfglyphtounicode{notfollowsoreql}{2AB0 0338}
-\pdfglyphtounicode{notforces}{22AE}
-\pdfglyphtounicode{notforcesextra}{22AF}
-\pdfglyphtounicode{notgreater}{226F}
-\pdfglyphtounicode{notgreaterdblequal}{2267 0338}
-\pdfglyphtounicode{notgreaterequal}{2271}
-\pdfglyphtounicode{notgreaternorequal}{2271}
-\pdfglyphtounicode{notgreaternorless}{2279}
-\pdfglyphtounicode{notgreaterorslnteql}{2A7E 0338}
-\pdfglyphtounicode{notidentical}{2262}
-\pdfglyphtounicode{notless}{226E}
-\pdfglyphtounicode{notlessdblequal}{2266 0338}
-\pdfglyphtounicode{notlessequal}{2270}
-\pdfglyphtounicode{notlessnorequal}{2270}
-\pdfglyphtounicode{notlessorslnteql}{2A7D 0338}
-\pdfglyphtounicode{notparallel}{2226}
-\pdfglyphtounicode{notprecedes}{2280}
-\pdfglyphtounicode{notprecedesoreql}{2AAF 0338}
-\pdfglyphtounicode{notsatisfies}{22AD}
-\pdfglyphtounicode{notsimilar}{2241}
-\pdfglyphtounicode{notsubset}{2284}
-\pdfglyphtounicode{notsubseteql}{2288}
-\pdfglyphtounicode{notsubsetordbleql}{2AC5 0338}
-\pdfglyphtounicode{notsubsetoreql}{228A}
-\pdfglyphtounicode{notsucceeds}{2281}
-\pdfglyphtounicode{notsuperset}{2285}
-\pdfglyphtounicode{notsuperseteql}{2289}
-\pdfglyphtounicode{notsupersetordbleql}{2AC6 0338}
-\pdfglyphtounicode{notsupersetoreql}{228B}
-\pdfglyphtounicode{nottriangeqlleft}{22EC}
-\pdfglyphtounicode{nottriangeqlright}{22ED}
-\pdfglyphtounicode{nottriangleleft}{22EA}
-\pdfglyphtounicode{nottriangleright}{22EB}
-\pdfglyphtounicode{notturnstile}{22AC}
-\pdfglyphtounicode{nowarmenian}{0576}
-\pdfglyphtounicode{nparen}{24A9}
-\pdfglyphtounicode{nssquare}{33B1}
-\pdfglyphtounicode{nsuperior}{207F}
-\pdfglyphtounicode{ntilde}{00F1}
-\pdfglyphtounicode{nu}{03BD}
-\pdfglyphtounicode{nuhiragana}{306C}
-\pdfglyphtounicode{nukatakana}{30CC}
-\pdfglyphtounicode{nukatakanahalfwidth}{FF87}
-\pdfglyphtounicode{nuktabengali}{09BC}
-\pdfglyphtounicode{nuktadeva}{093C}
-\pdfglyphtounicode{nuktagujarati}{0ABC}
-\pdfglyphtounicode{nuktagurmukhi}{0A3C}
-\pdfglyphtounicode{numbersign}{0023}
-\pdfglyphtounicode{numbersignmonospace}{FF03}
-\pdfglyphtounicode{numbersignsmall}{FE5F}
-\pdfglyphtounicode{numeralsigngreek}{0374}
-\pdfglyphtounicode{numeralsignlowergreek}{0375}
-\pdfglyphtounicode{numero}{2116}
-\pdfglyphtounicode{nun}{05E0}
-\pdfglyphtounicode{nundagesh}{FB40}
-\pdfglyphtounicode{nundageshhebrew}{FB40}
-\pdfglyphtounicode{nunhebrew}{05E0}
-\pdfglyphtounicode{nvsquare}{33B5}
-\pdfglyphtounicode{nwsquare}{33BB}
-\pdfglyphtounicode{nyabengali}{099E}
-\pdfglyphtounicode{nyadeva}{091E}
-\pdfglyphtounicode{nyagujarati}{0A9E}
-\pdfglyphtounicode{nyagurmukhi}{0A1E}
-\pdfglyphtounicode{o}{006F}
-\pdfglyphtounicode{oacute}{00F3}
-\pdfglyphtounicode{oangthai}{0E2D}
-\pdfglyphtounicode{obarred}{0275}
-\pdfglyphtounicode{obarredcyrillic}{04E9}
-\pdfglyphtounicode{obarreddieresiscyrillic}{04EB}
-\pdfglyphtounicode{obengali}{0993}
-\pdfglyphtounicode{obopomofo}{311B}
-\pdfglyphtounicode{obreve}{014F}
-\pdfglyphtounicode{ocandradeva}{0911}
-\pdfglyphtounicode{ocandragujarati}{0A91}
-\pdfglyphtounicode{ocandravowelsigndeva}{0949}
-\pdfglyphtounicode{ocandravowelsigngujarati}{0AC9}
-\pdfglyphtounicode{ocaron}{01D2}
-\pdfglyphtounicode{ocircle}{24DE}
-\pdfglyphtounicode{ocircumflex}{00F4}
-\pdfglyphtounicode{ocircumflexacute}{1ED1}
-\pdfglyphtounicode{ocircumflexdotbelow}{1ED9}
-\pdfglyphtounicode{ocircumflexgrave}{1ED3}
-\pdfglyphtounicode{ocircumflexhookabove}{1ED5}
-\pdfglyphtounicode{ocircumflextilde}{1ED7}
-\pdfglyphtounicode{ocyrillic}{043E}
-\pdfglyphtounicode{odblacute}{0151}
-\pdfglyphtounicode{odblgrave}{020D}
-\pdfglyphtounicode{odeva}{0913}
-\pdfglyphtounicode{odieresis}{00F6}
-\pdfglyphtounicode{odieresiscyrillic}{04E7}
-\pdfglyphtounicode{odotbelow}{1ECD}
-\pdfglyphtounicode{oe}{0153}
-\pdfglyphtounicode{oekorean}{315A}
-\pdfglyphtounicode{ogonek}{02DB}
-\pdfglyphtounicode{ogonekcmb}{0328}
-\pdfglyphtounicode{ograve}{00F2}
-\pdfglyphtounicode{ogujarati}{0A93}
-\pdfglyphtounicode{oharmenian}{0585}
-\pdfglyphtounicode{ohiragana}{304A}
-\pdfglyphtounicode{ohookabove}{1ECF}
-\pdfglyphtounicode{ohorn}{01A1}
-\pdfglyphtounicode{ohornacute}{1EDB}
-\pdfglyphtounicode{ohorndotbelow}{1EE3}
-\pdfglyphtounicode{ohorngrave}{1EDD}
-\pdfglyphtounicode{ohornhookabove}{1EDF}
-\pdfglyphtounicode{ohorntilde}{1EE1}
-\pdfglyphtounicode{ohungarumlaut}{0151}
-\pdfglyphtounicode{oi}{01A3}
-\pdfglyphtounicode{oinvertedbreve}{020F}
-\pdfglyphtounicode{okatakana}{30AA}
-\pdfglyphtounicode{okatakanahalfwidth}{FF75}
-\pdfglyphtounicode{okorean}{3157}
-\pdfglyphtounicode{olehebrew}{05AB}
-\pdfglyphtounicode{omacron}{014D}
-\pdfglyphtounicode{omacronacute}{1E53}
-\pdfglyphtounicode{omacrongrave}{1E51}
-\pdfglyphtounicode{omdeva}{0950}
-\pdfglyphtounicode{omega}{03C9}
-\pdfglyphtounicode{omega1}{03D6}
-\pdfglyphtounicode{omegacyrillic}{0461}
-\pdfglyphtounicode{omegalatinclosed}{0277}
-\pdfglyphtounicode{omegaroundcyrillic}{047B}
-\pdfglyphtounicode{omegatitlocyrillic}{047D}
-\pdfglyphtounicode{omegatonos}{03CE}
-\pdfglyphtounicode{omgujarati}{0AD0}
-\pdfglyphtounicode{omicron}{03BF}
-\pdfglyphtounicode{omicrontonos}{03CC}
-\pdfglyphtounicode{omonospace}{FF4F}
-\pdfglyphtounicode{one}{0031}
-\pdfglyphtounicode{onearabic}{0661}
-\pdfglyphtounicode{onebengali}{09E7}
-\pdfglyphtounicode{onecircle}{2460}
-\pdfglyphtounicode{onecircleinversesansserif}{278A}
-\pdfglyphtounicode{onedeva}{0967}
-\pdfglyphtounicode{onedotenleader}{2024}
-\pdfglyphtounicode{oneeighth}{215B}
-\pdfglyphtounicode{onefitted}{0031}
-\pdfglyphtounicode{onegujarati}{0AE7}
-\pdfglyphtounicode{onegurmukhi}{0A67}
-\pdfglyphtounicode{onehackarabic}{0661}
-\pdfglyphtounicode{onehalf}{00BD}
-\pdfglyphtounicode{onehangzhou}{3021}
-\pdfglyphtounicode{oneideographicparen}{3220}
-\pdfglyphtounicode{oneinferior}{2081}
-\pdfglyphtounicode{onemonospace}{FF11}
-\pdfglyphtounicode{onenumeratorbengali}{09F4}
-\pdfglyphtounicode{oneoldstyle}{0031}
-\pdfglyphtounicode{oneparen}{2474}
-\pdfglyphtounicode{oneperiod}{2488}
-\pdfglyphtounicode{onepersian}{06F1}
-\pdfglyphtounicode{onequarter}{00BC}
-\pdfglyphtounicode{oneroman}{2170}
-\pdfglyphtounicode{onesuperior}{00B9}
-\pdfglyphtounicode{onethai}{0E51}
-\pdfglyphtounicode{onethird}{2153}
-\pdfglyphtounicode{oogonek}{01EB}
-\pdfglyphtounicode{oogonekmacron}{01ED}
-\pdfglyphtounicode{oogurmukhi}{0A13}
-\pdfglyphtounicode{oomatragurmukhi}{0A4B}
-\pdfglyphtounicode{oopen}{0254}
-\pdfglyphtounicode{oparen}{24AA}
-\pdfglyphtounicode{openbullet}{25E6}
-\pdfglyphtounicode{option}{2325}
-\pdfglyphtounicode{ordfeminine}{00AA}
-\pdfglyphtounicode{ordmasculine}{00BA}
-\pdfglyphtounicode{orthogonal}{221F}
-\pdfglyphtounicode{orunderscore}{22BB}
-\pdfglyphtounicode{oshortdeva}{0912}
-\pdfglyphtounicode{oshortvowelsigndeva}{094A}
-\pdfglyphtounicode{oslash}{00F8}
-\pdfglyphtounicode{oslashacute}{01FF}
-\pdfglyphtounicode{osmallhiragana}{3049}
-\pdfglyphtounicode{osmallkatakana}{30A9}
-\pdfglyphtounicode{osmallkatakanahalfwidth}{FF6B}
-\pdfglyphtounicode{ostrokeacute}{01FF}
-\pdfglyphtounicode{osuperior}{006F}
-\pdfglyphtounicode{otcyrillic}{047F}
-\pdfglyphtounicode{otilde}{00F5}
-\pdfglyphtounicode{otildeacute}{1E4D}
-\pdfglyphtounicode{otildedieresis}{1E4F}
-\pdfglyphtounicode{oubopomofo}{3121}
-\pdfglyphtounicode{overline}{203E}
-\pdfglyphtounicode{overlinecenterline}{FE4A}
-\pdfglyphtounicode{overlinecmb}{0305}
-\pdfglyphtounicode{overlinedashed}{FE49}
-\pdfglyphtounicode{overlinedblwavy}{FE4C}
-\pdfglyphtounicode{overlinewavy}{FE4B}
-\pdfglyphtounicode{overscore}{00AF}
-\pdfglyphtounicode{ovowelsignbengali}{09CB}
-\pdfglyphtounicode{ovowelsigndeva}{094B}
-\pdfglyphtounicode{ovowelsigngujarati}{0ACB}
-\pdfglyphtounicode{owner}{220B}
-\pdfglyphtounicode{p}{0070}
-\pdfglyphtounicode{paampssquare}{3380}
-\pdfglyphtounicode{paasentosquare}{332B}
-\pdfglyphtounicode{pabengali}{09AA}
-\pdfglyphtounicode{pacute}{1E55}
-\pdfglyphtounicode{padeva}{092A}
-\pdfglyphtounicode{pagedown}{21DF}
-\pdfglyphtounicode{pageup}{21DE}
-\pdfglyphtounicode{pagujarati}{0AAA}
-\pdfglyphtounicode{pagurmukhi}{0A2A}
-\pdfglyphtounicode{pahiragana}{3071}
-\pdfglyphtounicode{paiyannoithai}{0E2F}
-\pdfglyphtounicode{pakatakana}{30D1}
-\pdfglyphtounicode{palatalizationcyrilliccmb}{0484}
-\pdfglyphtounicode{palochkacyrillic}{04C0}
-\pdfglyphtounicode{pansioskorean}{317F}
-\pdfglyphtounicode{paragraph}{00B6}
-\pdfglyphtounicode{parallel}{2225}
-\pdfglyphtounicode{parenleft}{0028}
-\pdfglyphtounicode{parenleftaltonearabic}{FD3E}
-\pdfglyphtounicode{parenleftbt}{F8ED}
-\pdfglyphtounicode{parenleftex}{F8EC}
-\pdfglyphtounicode{parenleftinferior}{208D}
-\pdfglyphtounicode{parenleftmonospace}{FF08}
-\pdfglyphtounicode{parenleftsmall}{FE59}
-\pdfglyphtounicode{parenleftsuperior}{207D}
-\pdfglyphtounicode{parenlefttp}{F8EB}
-\pdfglyphtounicode{parenleftvertical}{FE35}
-\pdfglyphtounicode{parenright}{0029}
-\pdfglyphtounicode{parenrightaltonearabic}{FD3F}
-\pdfglyphtounicode{parenrightbt}{F8F8}
-\pdfglyphtounicode{parenrightex}{F8F7}
-\pdfglyphtounicode{parenrightinferior}{208E}
-\pdfglyphtounicode{parenrightmonospace}{FF09}
-\pdfglyphtounicode{parenrightsmall}{FE5A}
-\pdfglyphtounicode{parenrightsuperior}{207E}
-\pdfglyphtounicode{parenrighttp}{F8F6}
-\pdfglyphtounicode{parenrightvertical}{FE36}
-\pdfglyphtounicode{partialdiff}{2202}
-\pdfglyphtounicode{paseqhebrew}{05C0}
-\pdfglyphtounicode{pashtahebrew}{0599}
-\pdfglyphtounicode{pasquare}{33A9}
-\pdfglyphtounicode{patah}{05B7}
-\pdfglyphtounicode{patah11}{05B7}
-\pdfglyphtounicode{patah1d}{05B7}
-\pdfglyphtounicode{patah2a}{05B7}
-\pdfglyphtounicode{patahhebrew}{05B7}
-\pdfglyphtounicode{patahnarrowhebrew}{05B7}
-\pdfglyphtounicode{patahquarterhebrew}{05B7}
-\pdfglyphtounicode{patahwidehebrew}{05B7}
-\pdfglyphtounicode{pazerhebrew}{05A1}
-\pdfglyphtounicode{pbopomofo}{3106}
-\pdfglyphtounicode{pcircle}{24DF}
-\pdfglyphtounicode{pdotaccent}{1E57}
-\pdfglyphtounicode{pe}{05E4}
-\pdfglyphtounicode{pecyrillic}{043F}
-\pdfglyphtounicode{pedagesh}{FB44}
-\pdfglyphtounicode{pedageshhebrew}{FB44}
-\pdfglyphtounicode{peezisquare}{333B}
-\pdfglyphtounicode{pefinaldageshhebrew}{FB43}
-\pdfglyphtounicode{peharabic}{067E}
-\pdfglyphtounicode{peharmenian}{057A}
-\pdfglyphtounicode{pehebrew}{05E4}
-\pdfglyphtounicode{pehfinalarabic}{FB57}
-\pdfglyphtounicode{pehinitialarabic}{FB58}
-\pdfglyphtounicode{pehiragana}{307A}
-\pdfglyphtounicode{pehmedialarabic}{FB59}
-\pdfglyphtounicode{pekatakana}{30DA}
-\pdfglyphtounicode{pemiddlehookcyrillic}{04A7}
-\pdfglyphtounicode{perafehebrew}{FB4E}
-\pdfglyphtounicode{percent}{0025}
-\pdfglyphtounicode{percentarabic}{066A}
-\pdfglyphtounicode{percentmonospace}{FF05}
-\pdfglyphtounicode{percentsmall}{FE6A}
-\pdfglyphtounicode{period}{002E}
-\pdfglyphtounicode{periodarmenian}{0589}
-\pdfglyphtounicode{periodcentered}{00B7}
-\pdfglyphtounicode{periodhalfwidth}{FF61}
-\pdfglyphtounicode{periodinferior}{002E}
-\pdfglyphtounicode{periodmonospace}{FF0E}
-\pdfglyphtounicode{periodsmall}{FE52}
-\pdfglyphtounicode{periodsuperior}{002E}
-\pdfglyphtounicode{perispomenigreekcmb}{0342}
-\pdfglyphtounicode{perpcorrespond}{2A5E}
-\pdfglyphtounicode{perpendicular}{22A5}
-\pdfglyphtounicode{pertenthousand}{2031}
-\pdfglyphtounicode{perthousand}{2030}
-\pdfglyphtounicode{peseta}{20A7}
-\pdfglyphtounicode{pfsquare}{338A}
-\pdfglyphtounicode{phabengali}{09AB}
-\pdfglyphtounicode{phadeva}{092B}
-\pdfglyphtounicode{phagujarati}{0AAB}
-\pdfglyphtounicode{phagurmukhi}{0A2B}
-\pdfglyphtounicode{phi}{03C6}
-\pdfglyphtounicode{phi1}{03D5}
-\pdfglyphtounicode{phieuphacirclekorean}{327A}
-\pdfglyphtounicode{phieuphaparenkorean}{321A}
-\pdfglyphtounicode{phieuphcirclekorean}{326C}
-\pdfglyphtounicode{phieuphkorean}{314D}
-\pdfglyphtounicode{phieuphparenkorean}{320C}
-\pdfglyphtounicode{philatin}{0278}
-\pdfglyphtounicode{phinthuthai}{0E3A}
-\pdfglyphtounicode{phisymbolgreek}{03D5}
-\pdfglyphtounicode{phook}{01A5}
-\pdfglyphtounicode{phophanthai}{0E1E}
-\pdfglyphtounicode{phophungthai}{0E1C}
-\pdfglyphtounicode{phosamphaothai}{0E20}
-\pdfglyphtounicode{pi}{03C0}
-\pdfglyphtounicode{pi1}{03D6}
-\pdfglyphtounicode{pieupacirclekorean}{3273}
-\pdfglyphtounicode{pieupaparenkorean}{3213}
-\pdfglyphtounicode{pieupcieuckorean}{3176}
-\pdfglyphtounicode{pieupcirclekorean}{3265}
-\pdfglyphtounicode{pieupkiyeokkorean}{3172}
-\pdfglyphtounicode{pieupkorean}{3142}
-\pdfglyphtounicode{pieupparenkorean}{3205}
-\pdfglyphtounicode{pieupsioskiyeokkorean}{3174}
-\pdfglyphtounicode{pieupsioskorean}{3144}
-\pdfglyphtounicode{pieupsiostikeutkorean}{3175}
-\pdfglyphtounicode{pieupthieuthkorean}{3177}
-\pdfglyphtounicode{pieuptikeutkorean}{3173}
-\pdfglyphtounicode{pihiragana}{3074}
-\pdfglyphtounicode{pikatakana}{30D4}
-\pdfglyphtounicode{pisymbolgreek}{03D6}
-\pdfglyphtounicode{piwrarmenian}{0583}
-\pdfglyphtounicode{planckover2pi}{210F}
-\pdfglyphtounicode{planckover2pi1}{210F}
-\pdfglyphtounicode{plus}{002B}
-\pdfglyphtounicode{plusbelowcmb}{031F}
-\pdfglyphtounicode{pluscircle}{2295}
-\pdfglyphtounicode{plusminus}{00B1}
-\pdfglyphtounicode{plusmod}{02D6}
-\pdfglyphtounicode{plusmonospace}{FF0B}
-\pdfglyphtounicode{plussmall}{FE62}
-\pdfglyphtounicode{plussuperior}{207A}
-\pdfglyphtounicode{pmonospace}{FF50}
-\pdfglyphtounicode{pmsquare}{33D8}
-\pdfglyphtounicode{pohiragana}{307D}
-\pdfglyphtounicode{pointingindexdownwhite}{261F}
-\pdfglyphtounicode{pointingindexleftwhite}{261C}
-\pdfglyphtounicode{pointingindexrightwhite}{261E}
-\pdfglyphtounicode{pointingindexupwhite}{261D}
-\pdfglyphtounicode{pokatakana}{30DD}
-\pdfglyphtounicode{poplathai}{0E1B}
-\pdfglyphtounicode{postalmark}{3012}
-\pdfglyphtounicode{postalmarkface}{3020}
-\pdfglyphtounicode{pparen}{24AB}
-\pdfglyphtounicode{precedenotdbleqv}{2AB9}
-\pdfglyphtounicode{precedenotslnteql}{2AB5}
-\pdfglyphtounicode{precedeornoteqvlnt}{22E8}
-\pdfglyphtounicode{precedes}{227A}
-\pdfglyphtounicode{precedesequal}{2AAF}
-\pdfglyphtounicode{precedesorcurly}{227C}
-\pdfglyphtounicode{precedesorequal}{227E}
-\pdfglyphtounicode{prescription}{211E}
-\pdfglyphtounicode{prime}{2032}
-\pdfglyphtounicode{primemod}{02B9}
-\pdfglyphtounicode{primereverse}{2035}
-\pdfglyphtounicode{primereversed}{2035}
-\pdfglyphtounicode{product}{220F}
-\pdfglyphtounicode{projective}{2305}
-\pdfglyphtounicode{prolongedkana}{30FC}
-\pdfglyphtounicode{propellor}{2318}
-\pdfglyphtounicode{propersubset}{2282}
-\pdfglyphtounicode{propersuperset}{2283}
-\pdfglyphtounicode{proportion}{2237}
-\pdfglyphtounicode{proportional}{221D}
-\pdfglyphtounicode{psi}{03C8}
-\pdfglyphtounicode{psicyrillic}{0471}
-\pdfglyphtounicode{psilipneumatacyrilliccmb}{0486}
-\pdfglyphtounicode{pssquare}{33B0}
-\pdfglyphtounicode{puhiragana}{3077}
-\pdfglyphtounicode{pukatakana}{30D7}
-\pdfglyphtounicode{punctdash}{2014}
-\pdfglyphtounicode{pvsquare}{33B4}
-\pdfglyphtounicode{pwsquare}{33BA}
-\pdfglyphtounicode{q}{0071}
-\pdfglyphtounicode{qadeva}{0958}
-\pdfglyphtounicode{qadmahebrew}{05A8}
-\pdfglyphtounicode{qafarabic}{0642}
-\pdfglyphtounicode{qaffinalarabic}{FED6}
-\pdfglyphtounicode{qafinitialarabic}{FED7}
-\pdfglyphtounicode{qafmedialarabic}{FED8}
-\pdfglyphtounicode{qamats}{05B8}
-\pdfglyphtounicode{qamats10}{05B8}
-\pdfglyphtounicode{qamats1a}{05B8}
-\pdfglyphtounicode{qamats1c}{05B8}
-\pdfglyphtounicode{qamats27}{05B8}
-\pdfglyphtounicode{qamats29}{05B8}
-\pdfglyphtounicode{qamats33}{05B8}
-\pdfglyphtounicode{qamatsde}{05B8}
-\pdfglyphtounicode{qamatshebrew}{05B8}
-\pdfglyphtounicode{qamatsnarrowhebrew}{05B8}
-\pdfglyphtounicode{qamatsqatanhebrew}{05B8}
-\pdfglyphtounicode{qamatsqatannarrowhebrew}{05B8}
-\pdfglyphtounicode{qamatsqatanquarterhebrew}{05B8}
-\pdfglyphtounicode{qamatsqatanwidehebrew}{05B8}
-\pdfglyphtounicode{qamatsquarterhebrew}{05B8}
-\pdfglyphtounicode{qamatswidehebrew}{05B8}
-\pdfglyphtounicode{qarneyparahebrew}{059F}
-\pdfglyphtounicode{qbopomofo}{3111}
-\pdfglyphtounicode{qcircle}{24E0}
-\pdfglyphtounicode{qhook}{02A0}
-\pdfglyphtounicode{qmonospace}{FF51}
-\pdfglyphtounicode{qof}{05E7}
-\pdfglyphtounicode{qofdagesh}{FB47}
-\pdfglyphtounicode{qofdageshhebrew}{FB47}
-\pdfglyphtounicode{qofhatafpatah}{05E7 05B2}
-\pdfglyphtounicode{qofhatafpatahhebrew}{05E7 05B2}
-\pdfglyphtounicode{qofhatafsegol}{05E7 05B1}
-\pdfglyphtounicode{qofhatafsegolhebrew}{05E7 05B1}
-\pdfglyphtounicode{qofhebrew}{05E7}
-\pdfglyphtounicode{qofhiriq}{05E7 05B4}
-\pdfglyphtounicode{qofhiriqhebrew}{05E7 05B4}
-\pdfglyphtounicode{qofholam}{05E7 05B9}
-\pdfglyphtounicode{qofholamhebrew}{05E7 05B9}
-\pdfglyphtounicode{qofpatah}{05E7 05B7}
-\pdfglyphtounicode{qofpatahhebrew}{05E7 05B7}
-\pdfglyphtounicode{qofqamats}{05E7 05B8}
-\pdfglyphtounicode{qofqamatshebrew}{05E7 05B8}
-\pdfglyphtounicode{qofqubuts}{05E7 05BB}
-\pdfglyphtounicode{qofqubutshebrew}{05E7 05BB}
-\pdfglyphtounicode{qofsegol}{05E7 05B6}
-\pdfglyphtounicode{qofsegolhebrew}{05E7 05B6}
-\pdfglyphtounicode{qofsheva}{05E7 05B0}
-\pdfglyphtounicode{qofshevahebrew}{05E7 05B0}
-\pdfglyphtounicode{qoftsere}{05E7 05B5}
-\pdfglyphtounicode{qoftserehebrew}{05E7 05B5}
-\pdfglyphtounicode{qparen}{24AC}
-\pdfglyphtounicode{quarternote}{2669}
-\pdfglyphtounicode{qubuts}{05BB}
-\pdfglyphtounicode{qubuts18}{05BB}
-\pdfglyphtounicode{qubuts25}{05BB}
-\pdfglyphtounicode{qubuts31}{05BB}
-\pdfglyphtounicode{qubutshebrew}{05BB}
-\pdfglyphtounicode{qubutsnarrowhebrew}{05BB}
-\pdfglyphtounicode{qubutsquarterhebrew}{05BB}
-\pdfglyphtounicode{qubutswidehebrew}{05BB}
-\pdfglyphtounicode{question}{003F}
-\pdfglyphtounicode{questionarabic}{061F}
-\pdfglyphtounicode{questionarmenian}{055E}
-\pdfglyphtounicode{questiondown}{00BF}
-\pdfglyphtounicode{questiondownsmall}{00BF}
-\pdfglyphtounicode{questiongreek}{037E}
-\pdfglyphtounicode{questionmonospace}{FF1F}
-\pdfglyphtounicode{questionsmall}{003F}
-\pdfglyphtounicode{quotedbl}{0022}
-\pdfglyphtounicode{quotedblbase}{201E}
-\pdfglyphtounicode{quotedblleft}{201C}
-\pdfglyphtounicode{quotedblmonospace}{FF02}
-\pdfglyphtounicode{quotedblprime}{301E}
-\pdfglyphtounicode{quotedblprimereversed}{301D}
-\pdfglyphtounicode{quotedblright}{201D}
-\pdfglyphtounicode{quoteleft}{2018}
-\pdfglyphtounicode{quoteleftreversed}{201B}
-\pdfglyphtounicode{quotereversed}{201B}
-\pdfglyphtounicode{quoteright}{2019}
-\pdfglyphtounicode{quoterightn}{0149}
-\pdfglyphtounicode{quotesinglbase}{201A}
-\pdfglyphtounicode{quotesingle}{0027}
-\pdfglyphtounicode{quotesinglemonospace}{FF07}
-\pdfglyphtounicode{r}{0072}
-\pdfglyphtounicode{raarmenian}{057C}
-\pdfglyphtounicode{rabengali}{09B0}
-\pdfglyphtounicode{racute}{0155}
-\pdfglyphtounicode{radeva}{0930}
-\pdfglyphtounicode{radical}{221A}
-\pdfglyphtounicode{radicalex}{F8E5}
-\pdfglyphtounicode{radoverssquare}{33AE}
-\pdfglyphtounicode{radoverssquaredsquare}{33AF}
-\pdfglyphtounicode{radsquare}{33AD}
-\pdfglyphtounicode{rafe}{05BF}
-\pdfglyphtounicode{rafehebrew}{05BF}
-\pdfglyphtounicode{ragujarati}{0AB0}
-\pdfglyphtounicode{ragurmukhi}{0A30}
-\pdfglyphtounicode{rahiragana}{3089}
-\pdfglyphtounicode{rakatakana}{30E9}
-\pdfglyphtounicode{rakatakanahalfwidth}{FF97}
-\pdfglyphtounicode{ralowerdiagonalbengali}{09F1}
-\pdfglyphtounicode{ramiddlediagonalbengali}{09F0}
-\pdfglyphtounicode{ramshorn}{0264}
-\pdfglyphtounicode{rangedash}{2013}
-\pdfglyphtounicode{ratio}{2236}
-\pdfglyphtounicode{rbopomofo}{3116}
-\pdfglyphtounicode{rcaron}{0159}
-\pdfglyphtounicode{rcedilla}{0157}
-\pdfglyphtounicode{rcircle}{24E1}
-\pdfglyphtounicode{rcommaaccent}{0157}
-\pdfglyphtounicode{rdblgrave}{0211}
-\pdfglyphtounicode{rdotaccent}{1E59}
-\pdfglyphtounicode{rdotbelow}{1E5B}
-\pdfglyphtounicode{rdotbelowmacron}{1E5D}
-\pdfglyphtounicode{referencemark}{203B}
-\pdfglyphtounicode{reflexsubset}{2286}
-\pdfglyphtounicode{reflexsuperset}{2287}
-\pdfglyphtounicode{registered}{00AE}
-\pdfglyphtounicode{registersans}{00AE}
-\pdfglyphtounicode{registerserif}{00AE}
-\pdfglyphtounicode{reharabic}{0631}
-\pdfglyphtounicode{reharmenian}{0580}
-\pdfglyphtounicode{rehfinalarabic}{FEAE}
-\pdfglyphtounicode{rehiragana}{308C}
-\pdfglyphtounicode{rehyehaleflamarabic}{0631 FEF3 FE8E 0644}
-\pdfglyphtounicode{rekatakana}{30EC}
-\pdfglyphtounicode{rekatakanahalfwidth}{FF9A}
-\pdfglyphtounicode{resh}{05E8}
-\pdfglyphtounicode{reshdageshhebrew}{FB48}
-\pdfglyphtounicode{reshhatafpatah}{05E8 05B2}
-\pdfglyphtounicode{reshhatafpatahhebrew}{05E8 05B2}
-\pdfglyphtounicode{reshhatafsegol}{05E8 05B1}
-\pdfglyphtounicode{reshhatafsegolhebrew}{05E8 05B1}
-\pdfglyphtounicode{reshhebrew}{05E8}
-\pdfglyphtounicode{reshhiriq}{05E8 05B4}
-\pdfglyphtounicode{reshhiriqhebrew}{05E8 05B4}
-\pdfglyphtounicode{reshholam}{05E8 05B9}
-\pdfglyphtounicode{reshholamhebrew}{05E8 05B9}
-\pdfglyphtounicode{reshpatah}{05E8 05B7}
-\pdfglyphtounicode{reshpatahhebrew}{05E8 05B7}
-\pdfglyphtounicode{reshqamats}{05E8 05B8}
-\pdfglyphtounicode{reshqamatshebrew}{05E8 05B8}
-\pdfglyphtounicode{reshqubuts}{05E8 05BB}
-\pdfglyphtounicode{reshqubutshebrew}{05E8 05BB}
-\pdfglyphtounicode{reshsegol}{05E8 05B6}
-\pdfglyphtounicode{reshsegolhebrew}{05E8 05B6}
-\pdfglyphtounicode{reshsheva}{05E8 05B0}
-\pdfglyphtounicode{reshshevahebrew}{05E8 05B0}
-\pdfglyphtounicode{reshtsere}{05E8 05B5}
-\pdfglyphtounicode{reshtserehebrew}{05E8 05B5}
-\pdfglyphtounicode{revasymptequal}{22CD}
-\pdfglyphtounicode{reversedtilde}{223D}
-\pdfglyphtounicode{reviahebrew}{0597}
-\pdfglyphtounicode{reviamugrashhebrew}{0597}
-\pdfglyphtounicode{revlogicalnot}{2310}
-\pdfglyphtounicode{revsimilar}{223D}
-\pdfglyphtounicode{rfishhook}{027E}
-\pdfglyphtounicode{rfishhookreversed}{027F}
-\pdfglyphtounicode{rhabengali}{09DD}
-\pdfglyphtounicode{rhadeva}{095D}
-\pdfglyphtounicode{rho}{03C1}
-\pdfglyphtounicode{rho1}{03F1}
-\pdfglyphtounicode{rhook}{027D}
-\pdfglyphtounicode{rhookturned}{027B}
-\pdfglyphtounicode{rhookturnedsuperior}{02B5}
-\pdfglyphtounicode{rhosymbolgreek}{03F1}
-\pdfglyphtounicode{rhotichookmod}{02DE}
-\pdfglyphtounicode{rieulacirclekorean}{3271}
-\pdfglyphtounicode{rieulaparenkorean}{3211}
-\pdfglyphtounicode{rieulcirclekorean}{3263}
-\pdfglyphtounicode{rieulhieuhkorean}{3140}
-\pdfglyphtounicode{rieulkiyeokkorean}{313A}
-\pdfglyphtounicode{rieulkiyeoksioskorean}{3169}
-\pdfglyphtounicode{rieulkorean}{3139}
-\pdfglyphtounicode{rieulmieumkorean}{313B}
-\pdfglyphtounicode{rieulpansioskorean}{316C}
-\pdfglyphtounicode{rieulparenkorean}{3203}
-\pdfglyphtounicode{rieulphieuphkorean}{313F}
-\pdfglyphtounicode{rieulpieupkorean}{313C}
-\pdfglyphtounicode{rieulpieupsioskorean}{316B}
-\pdfglyphtounicode{rieulsioskorean}{313D}
-\pdfglyphtounicode{rieulthieuthkorean}{313E}
-\pdfglyphtounicode{rieultikeutkorean}{316A}
-\pdfglyphtounicode{rieulyeorinhieuhkorean}{316D}
-\pdfglyphtounicode{rightangle}{221F}
-\pdfglyphtounicode{rightanglene}{231D}
-\pdfglyphtounicode{rightanglenw}{231C}
-\pdfglyphtounicode{rightanglese}{231F}
-\pdfglyphtounicode{rightanglesw}{231E}
-\pdfglyphtounicode{righttackbelowcmb}{0319}
-\pdfglyphtounicode{righttriangle}{22BF}
-\pdfglyphtounicode{rihiragana}{308A}
-\pdfglyphtounicode{rikatakana}{30EA}
-\pdfglyphtounicode{rikatakanahalfwidth}{FF98}
-\pdfglyphtounicode{ring}{02DA}
-\pdfglyphtounicode{ringbelowcmb}{0325}
-\pdfglyphtounicode{ringcmb}{030A}
-\pdfglyphtounicode{ringhalfleft}{02BF}
-\pdfglyphtounicode{ringhalfleftarmenian}{0559}
-\pdfglyphtounicode{ringhalfleftbelowcmb}{031C}
-\pdfglyphtounicode{ringhalfleftcentered}{02D3}
-\pdfglyphtounicode{ringhalfright}{02BE}
-\pdfglyphtounicode{ringhalfrightbelowcmb}{0339}
-\pdfglyphtounicode{ringhalfrightcentered}{02D2}
-\pdfglyphtounicode{ringinequal}{2256}
-\pdfglyphtounicode{rinvertedbreve}{0213}
-\pdfglyphtounicode{rittorusquare}{3351}
-\pdfglyphtounicode{rlinebelow}{1E5F}
-\pdfglyphtounicode{rlongleg}{027C}
-\pdfglyphtounicode{rlonglegturned}{027A}
-\pdfglyphtounicode{rmonospace}{FF52}
-\pdfglyphtounicode{rohiragana}{308D}
-\pdfglyphtounicode{rokatakana}{30ED}
-\pdfglyphtounicode{rokatakanahalfwidth}{FF9B}
-\pdfglyphtounicode{roruathai}{0E23}
-\pdfglyphtounicode{rparen}{24AD}
-\pdfglyphtounicode{rrabengali}{09DC}
-\pdfglyphtounicode{rradeva}{0931}
-\pdfglyphtounicode{rragurmukhi}{0A5C}
-\pdfglyphtounicode{rreharabic}{0691}
-\pdfglyphtounicode{rrehfinalarabic}{FB8D}
-\pdfglyphtounicode{rrvocalicbengali}{09E0}
-\pdfglyphtounicode{rrvocalicdeva}{0960}
-\pdfglyphtounicode{rrvocalicgujarati}{0AE0}
-\pdfglyphtounicode{rrvocalicvowelsignbengali}{09C4}
-\pdfglyphtounicode{rrvocalicvowelsigndeva}{0944}
-\pdfglyphtounicode{rrvocalicvowelsigngujarati}{0AC4}
-\pdfglyphtounicode{rsuperior}{0072}
-\pdfglyphtounicode{rtblock}{2590}
-\pdfglyphtounicode{rturned}{0279}
-\pdfglyphtounicode{rturnedsuperior}{02B4}
-\pdfglyphtounicode{ruhiragana}{308B}
-\pdfglyphtounicode{rukatakana}{30EB}
-\pdfglyphtounicode{rukatakanahalfwidth}{FF99}
-\pdfglyphtounicode{rupeemarkbengali}{09F2}
-\pdfglyphtounicode{rupeesignbengali}{09F3}
-\pdfglyphtounicode{rupiah}{20A8}
-\pdfglyphtounicode{ruthai}{0E24}
-\pdfglyphtounicode{rvocalicbengali}{098B}
-\pdfglyphtounicode{rvocalicdeva}{090B}
-\pdfglyphtounicode{rvocalicgujarati}{0A8B}
-\pdfglyphtounicode{rvocalicvowelsignbengali}{09C3}
-\pdfglyphtounicode{rvocalicvowelsigndeva}{0943}
-\pdfglyphtounicode{rvocalicvowelsigngujarati}{0AC3}
-\pdfglyphtounicode{s}{0073}
-\pdfglyphtounicode{sabengali}{09B8}
-\pdfglyphtounicode{sacute}{015B}
-\pdfglyphtounicode{sacutedotaccent}{1E65}
-\pdfglyphtounicode{sadarabic}{0635}
-\pdfglyphtounicode{sadeva}{0938}
-\pdfglyphtounicode{sadfinalarabic}{FEBA}
-\pdfglyphtounicode{sadinitialarabic}{FEBB}
-\pdfglyphtounicode{sadmedialarabic}{FEBC}
-\pdfglyphtounicode{sagujarati}{0AB8}
-\pdfglyphtounicode{sagurmukhi}{0A38}
-\pdfglyphtounicode{sahiragana}{3055}
-\pdfglyphtounicode{sakatakana}{30B5}
-\pdfglyphtounicode{sakatakanahalfwidth}{FF7B}
-\pdfglyphtounicode{sallallahoualayhewasallamarabic}{FDFA}
-\pdfglyphtounicode{samekh}{05E1}
-\pdfglyphtounicode{samekhdagesh}{FB41}
-\pdfglyphtounicode{samekhdageshhebrew}{FB41}
-\pdfglyphtounicode{samekhhebrew}{05E1}
-\pdfglyphtounicode{saraaathai}{0E32}
-\pdfglyphtounicode{saraaethai}{0E41}
-\pdfglyphtounicode{saraaimaimalaithai}{0E44}
-\pdfglyphtounicode{saraaimaimuanthai}{0E43}
-\pdfglyphtounicode{saraamthai}{0E33}
-\pdfglyphtounicode{saraathai}{0E30}
-\pdfglyphtounicode{saraethai}{0E40}
-\pdfglyphtounicode{saraiileftthai}{F886}
-\pdfglyphtounicode{saraiithai}{0E35}
-\pdfglyphtounicode{saraileftthai}{F885}
-\pdfglyphtounicode{saraithai}{0E34}
-\pdfglyphtounicode{saraothai}{0E42}
-\pdfglyphtounicode{saraueeleftthai}{F888}
-\pdfglyphtounicode{saraueethai}{0E37}
-\pdfglyphtounicode{saraueleftthai}{F887}
-\pdfglyphtounicode{sarauethai}{0E36}
-\pdfglyphtounicode{sarauthai}{0E38}
-\pdfglyphtounicode{sarauuthai}{0E39}
-\pdfglyphtounicode{satisfies}{22A8}
-\pdfglyphtounicode{sbopomofo}{3119}
-\pdfglyphtounicode{scaron}{0161}
-\pdfglyphtounicode{scarondotaccent}{1E67}
-\pdfglyphtounicode{scedilla}{015F}
-\pdfglyphtounicode{schwa}{0259}
-\pdfglyphtounicode{schwacyrillic}{04D9}
-\pdfglyphtounicode{schwadieresiscyrillic}{04DB}
-\pdfglyphtounicode{schwahook}{025A}
-\pdfglyphtounicode{scircle}{24E2}
-\pdfglyphtounicode{scircumflex}{015D}
-\pdfglyphtounicode{scommaaccent}{0219}
-\pdfglyphtounicode{sdotaccent}{1E61}
-\pdfglyphtounicode{sdotbelow}{1E63}
-\pdfglyphtounicode{sdotbelowdotaccent}{1E69}
-\pdfglyphtounicode{seagullbelowcmb}{033C}
-\pdfglyphtounicode{second}{2033}
-\pdfglyphtounicode{secondtonechinese}{02CA}
-\pdfglyphtounicode{section}{00A7}
-\pdfglyphtounicode{seenarabic}{0633}
-\pdfglyphtounicode{seenfinalarabic}{FEB2}
-\pdfglyphtounicode{seeninitialarabic}{FEB3}
-\pdfglyphtounicode{seenmedialarabic}{FEB4}
-\pdfglyphtounicode{segol}{05B6}
-\pdfglyphtounicode{segol13}{05B6}
-\pdfglyphtounicode{segol1f}{05B6}
-\pdfglyphtounicode{segol2c}{05B6}
-\pdfglyphtounicode{segolhebrew}{05B6}
-\pdfglyphtounicode{segolnarrowhebrew}{05B6}
-\pdfglyphtounicode{segolquarterhebrew}{05B6}
-\pdfglyphtounicode{segoltahebrew}{0592}
-\pdfglyphtounicode{segolwidehebrew}{05B6}
-\pdfglyphtounicode{seharmenian}{057D}
-\pdfglyphtounicode{sehiragana}{305B}
-\pdfglyphtounicode{sekatakana}{30BB}
-\pdfglyphtounicode{sekatakanahalfwidth}{FF7E}
-\pdfglyphtounicode{semicolon}{003B}
-\pdfglyphtounicode{semicolonarabic}{061B}
-\pdfglyphtounicode{semicolonmonospace}{FF1B}
-\pdfglyphtounicode{semicolonsmall}{FE54}
-\pdfglyphtounicode{semivoicedmarkkana}{309C}
-\pdfglyphtounicode{semivoicedmarkkanahalfwidth}{FF9F}
-\pdfglyphtounicode{sentisquare}{3322}
-\pdfglyphtounicode{sentosquare}{3323}
-\pdfglyphtounicode{seven}{0037}
-\pdfglyphtounicode{sevenarabic}{0667}
-\pdfglyphtounicode{sevenbengali}{09ED}
-\pdfglyphtounicode{sevencircle}{2466}
-\pdfglyphtounicode{sevencircleinversesansserif}{2790}
-\pdfglyphtounicode{sevendeva}{096D}
-\pdfglyphtounicode{seveneighths}{215E}
-\pdfglyphtounicode{sevengujarati}{0AED}
-\pdfglyphtounicode{sevengurmukhi}{0A6D}
-\pdfglyphtounicode{sevenhackarabic}{0667}
-\pdfglyphtounicode{sevenhangzhou}{3027}
-\pdfglyphtounicode{sevenideographicparen}{3226}
-\pdfglyphtounicode{seveninferior}{2087}
-\pdfglyphtounicode{sevenmonospace}{FF17}
-\pdfglyphtounicode{sevenoldstyle}{0037}
-\pdfglyphtounicode{sevenparen}{247A}
-\pdfglyphtounicode{sevenperiod}{248E}
-\pdfglyphtounicode{sevenpersian}{06F7}
-\pdfglyphtounicode{sevenroman}{2176}
-\pdfglyphtounicode{sevensuperior}{2077}
-\pdfglyphtounicode{seventeencircle}{2470}
-\pdfglyphtounicode{seventeenparen}{2484}
-\pdfglyphtounicode{seventeenperiod}{2498}
-\pdfglyphtounicode{seventhai}{0E57}
-\pdfglyphtounicode{sfthyphen}{00AD}
-\pdfglyphtounicode{shaarmenian}{0577}
-\pdfglyphtounicode{shabengali}{09B6}
-\pdfglyphtounicode{shacyrillic}{0448}
-\pdfglyphtounicode{shaddaarabic}{0651}
-\pdfglyphtounicode{shaddadammaarabic}{FC61}
-\pdfglyphtounicode{shaddadammatanarabic}{FC5E}
-\pdfglyphtounicode{shaddafathaarabic}{FC60}
-\pdfglyphtounicode{shaddafathatanarabic}{0651 064B}
-\pdfglyphtounicode{shaddakasraarabic}{FC62}
-\pdfglyphtounicode{shaddakasratanarabic}{FC5F}
-\pdfglyphtounicode{shade}{2592}
-\pdfglyphtounicode{shadedark}{2593}
-\pdfglyphtounicode{shadelight}{2591}
-\pdfglyphtounicode{shademedium}{2592}
-\pdfglyphtounicode{shadeva}{0936}
-\pdfglyphtounicode{shagujarati}{0AB6}
-\pdfglyphtounicode{shagurmukhi}{0A36}
-\pdfglyphtounicode{shalshelethebrew}{0593}
-\pdfglyphtounicode{sharp}{266F}
-\pdfglyphtounicode{shbopomofo}{3115}
-\pdfglyphtounicode{shchacyrillic}{0449}
-\pdfglyphtounicode{sheenarabic}{0634}
-\pdfglyphtounicode{sheenfinalarabic}{FEB6}
-\pdfglyphtounicode{sheeninitialarabic}{FEB7}
-\pdfglyphtounicode{sheenmedialarabic}{FEB8}
-\pdfglyphtounicode{sheicoptic}{03E3}
-\pdfglyphtounicode{sheqel}{20AA}
-\pdfglyphtounicode{sheqelhebrew}{20AA}
-\pdfglyphtounicode{sheva}{05B0}
-\pdfglyphtounicode{sheva115}{05B0}
-\pdfglyphtounicode{sheva15}{05B0}
-\pdfglyphtounicode{sheva22}{05B0}
-\pdfglyphtounicode{sheva2e}{05B0}
-\pdfglyphtounicode{shevahebrew}{05B0}
-\pdfglyphtounicode{shevanarrowhebrew}{05B0}
-\pdfglyphtounicode{shevaquarterhebrew}{05B0}
-\pdfglyphtounicode{shevawidehebrew}{05B0}
-\pdfglyphtounicode{shhacyrillic}{04BB}
-\pdfglyphtounicode{shiftleft}{21B0}
-\pdfglyphtounicode{shiftright}{21B1}
-\pdfglyphtounicode{shimacoptic}{03ED}
-\pdfglyphtounicode{shin}{05E9}
-\pdfglyphtounicode{shindagesh}{FB49}
-\pdfglyphtounicode{shindageshhebrew}{FB49}
-\pdfglyphtounicode{shindageshshindot}{FB2C}
-\pdfglyphtounicode{shindageshshindothebrew}{FB2C}
-\pdfglyphtounicode{shindageshsindot}{FB2D}
-\pdfglyphtounicode{shindageshsindothebrew}{FB2D}
-\pdfglyphtounicode{shindothebrew}{05C1}
-\pdfglyphtounicode{shinhebrew}{05E9}
-\pdfglyphtounicode{shinshindot}{FB2A}
-\pdfglyphtounicode{shinshindothebrew}{FB2A}
-\pdfglyphtounicode{shinsindot}{FB2B}
-\pdfglyphtounicode{shinsindothebrew}{FB2B}
-\pdfglyphtounicode{shook}{0282}
-\pdfglyphtounicode{sigma}{03C3}
-\pdfglyphtounicode{sigma1}{03C2}
-\pdfglyphtounicode{sigmafinal}{03C2}
-\pdfglyphtounicode{sigmalunatesymbolgreek}{03F2}
-\pdfglyphtounicode{sihiragana}{3057}
-\pdfglyphtounicode{sikatakana}{30B7}
-\pdfglyphtounicode{sikatakanahalfwidth}{FF7C}
-\pdfglyphtounicode{siluqhebrew}{05BD}
-\pdfglyphtounicode{siluqlefthebrew}{05BD}
-\pdfglyphtounicode{similar}{223C}
-\pdfglyphtounicode{similarequal}{2243}
-\pdfglyphtounicode{sindothebrew}{05C2}
-\pdfglyphtounicode{siosacirclekorean}{3274}
-\pdfglyphtounicode{siosaparenkorean}{3214}
-\pdfglyphtounicode{sioscieuckorean}{317E}
-\pdfglyphtounicode{sioscirclekorean}{3266}
-\pdfglyphtounicode{sioskiyeokkorean}{317A}
-\pdfglyphtounicode{sioskorean}{3145}
-\pdfglyphtounicode{siosnieunkorean}{317B}
-\pdfglyphtounicode{siosparenkorean}{3206}
-\pdfglyphtounicode{siospieupkorean}{317D}
-\pdfglyphtounicode{siostikeutkorean}{317C}
-\pdfglyphtounicode{six}{0036}
-\pdfglyphtounicode{sixarabic}{0666}
-\pdfglyphtounicode{sixbengali}{09EC}
-\pdfglyphtounicode{sixcircle}{2465}
-\pdfglyphtounicode{sixcircleinversesansserif}{278F}
-\pdfglyphtounicode{sixdeva}{096C}
-\pdfglyphtounicode{sixgujarati}{0AEC}
-\pdfglyphtounicode{sixgurmukhi}{0A6C}
-\pdfglyphtounicode{sixhackarabic}{0666}
-\pdfglyphtounicode{sixhangzhou}{3026}
-\pdfglyphtounicode{sixideographicparen}{3225}
-\pdfglyphtounicode{sixinferior}{2086}
-\pdfglyphtounicode{sixmonospace}{FF16}
-\pdfglyphtounicode{sixoldstyle}{0036}
-\pdfglyphtounicode{sixparen}{2479}
-\pdfglyphtounicode{sixperiod}{248D}
-\pdfglyphtounicode{sixpersian}{06F6}
-\pdfglyphtounicode{sixroman}{2175}
-\pdfglyphtounicode{sixsuperior}{2076}
-\pdfglyphtounicode{sixteencircle}{246F}
-\pdfglyphtounicode{sixteencurrencydenominatorbengali}{09F9}
-\pdfglyphtounicode{sixteenparen}{2483}
-\pdfglyphtounicode{sixteenperiod}{2497}
-\pdfglyphtounicode{sixthai}{0E56}
-\pdfglyphtounicode{slash}{002F}
-\pdfglyphtounicode{slashmonospace}{FF0F}
-\pdfglyphtounicode{slong}{017F}
-\pdfglyphtounicode{slongdotaccent}{1E9B}
-\pdfglyphtounicode{slurabove}{2322}
-\pdfglyphtounicode{slurbelow}{2323}
-\pdfglyphtounicode{smile}{2323}
-\pdfglyphtounicode{smileface}{263A}
-\pdfglyphtounicode{smonospace}{FF53}
-\pdfglyphtounicode{sofpasuqhebrew}{05C3}
-\pdfglyphtounicode{softhyphen}{00AD}
-\pdfglyphtounicode{softsigncyrillic}{044C}
-\pdfglyphtounicode{sohiragana}{305D}
-\pdfglyphtounicode{sokatakana}{30BD}
-\pdfglyphtounicode{sokatakanahalfwidth}{FF7F}
-\pdfglyphtounicode{soliduslongoverlaycmb}{0338}
-\pdfglyphtounicode{solidusshortoverlaycmb}{0337}
-\pdfglyphtounicode{sorusithai}{0E29}
-\pdfglyphtounicode{sosalathai}{0E28}
-\pdfglyphtounicode{sosothai}{0E0B}
-\pdfglyphtounicode{sosuathai}{0E2A}
-\pdfglyphtounicode{space}{0020}
-\pdfglyphtounicode{spacehackarabic}{0020}
-\pdfglyphtounicode{spade}{2660}
-\pdfglyphtounicode{spadesuitblack}{2660}
-\pdfglyphtounicode{spadesuitwhite}{2664}
-\pdfglyphtounicode{sparen}{24AE}
-\pdfglyphtounicode{sphericalangle}{2222}
-\pdfglyphtounicode{square}{25A1}
-\pdfglyphtounicode{squarebelowcmb}{033B}
-\pdfglyphtounicode{squarecc}{33C4}
-\pdfglyphtounicode{squarecm}{339D}
-\pdfglyphtounicode{squarediagonalcrosshatchfill}{25A9}
-\pdfglyphtounicode{squaredot}{22A1}
-\pdfglyphtounicode{squarehorizontalfill}{25A4}
-\pdfglyphtounicode{squareimage}{228F}
-\pdfglyphtounicode{squarekg}{338F}
-\pdfglyphtounicode{squarekm}{339E}
-\pdfglyphtounicode{squarekmcapital}{33CE}
-\pdfglyphtounicode{squareln}{33D1}
-\pdfglyphtounicode{squarelog}{33D2}
-\pdfglyphtounicode{squaremg}{338E}
-\pdfglyphtounicode{squaremil}{33D5}
-\pdfglyphtounicode{squareminus}{229F}
-\pdfglyphtounicode{squaremm}{339C}
-\pdfglyphtounicode{squaremsquared}{33A1}
-\pdfglyphtounicode{squaremultiply}{22A0}
-\pdfglyphtounicode{squareoriginal}{2290}
-\pdfglyphtounicode{squareorthogonalcrosshatchfill}{25A6}
-\pdfglyphtounicode{squareplus}{229E}
-\pdfglyphtounicode{squaresolid}{25A0}
-\pdfglyphtounicode{squareupperlefttolowerrightfill}{25A7}
-\pdfglyphtounicode{squareupperrighttolowerleftfill}{25A8}
-\pdfglyphtounicode{squareverticalfill}{25A5}
-\pdfglyphtounicode{squarewhitewithsmallblack}{25A3}
-\pdfglyphtounicode{squiggleleftright}{21AD}
-\pdfglyphtounicode{squiggleright}{21DD}
-\pdfglyphtounicode{srsquare}{33DB}
-\pdfglyphtounicode{ssabengali}{09B7}
-\pdfglyphtounicode{ssadeva}{0937}
-\pdfglyphtounicode{ssagujarati}{0AB7}
-\pdfglyphtounicode{ssangcieuckorean}{3149}
-\pdfglyphtounicode{ssanghieuhkorean}{3185}
-\pdfglyphtounicode{ssangieungkorean}{3180}
-\pdfglyphtounicode{ssangkiyeokkorean}{3132}
-\pdfglyphtounicode{ssangnieunkorean}{3165}
-\pdfglyphtounicode{ssangpieupkorean}{3143}
-\pdfglyphtounicode{ssangsioskorean}{3146}
-\pdfglyphtounicode{ssangtikeutkorean}{3138}
-\pdfglyphtounicode{ssuperior}{0073}
-\pdfglyphtounicode{st}{0073 0074}
-\pdfglyphtounicode{star}{22C6}
-\pdfglyphtounicode{sterling}{00A3}
-\pdfglyphtounicode{sterlingmonospace}{FFE1}
-\pdfglyphtounicode{strokelongoverlaycmb}{0336}
-\pdfglyphtounicode{strokeshortoverlaycmb}{0335}
-\pdfglyphtounicode{subset}{2282}
-\pdfglyphtounicode{subsetdbl}{22D0}
-\pdfglyphtounicode{subsetdblequal}{2AC5}
-\pdfglyphtounicode{subsetnoteql}{228A}
-\pdfglyphtounicode{subsetnotequal}{228A}
-\pdfglyphtounicode{subsetorequal}{2286}
-\pdfglyphtounicode{subsetornotdbleql}{2ACB}
-\pdfglyphtounicode{subsetsqequal}{2291}
-\pdfglyphtounicode{succeeds}{227B}
-\pdfglyphtounicode{suchthat}{220B}
-\pdfglyphtounicode{suhiragana}{3059}
-\pdfglyphtounicode{sukatakana}{30B9}
-\pdfglyphtounicode{sukatakanahalfwidth}{FF7D}
-\pdfglyphtounicode{sukunarabic}{0652}
-\pdfglyphtounicode{summation}{2211}
-\pdfglyphtounicode{sun}{263C}
-\pdfglyphtounicode{superset}{2283}
-\pdfglyphtounicode{supersetdbl}{22D1}
-\pdfglyphtounicode{supersetdblequal}{2AC6}
-\pdfglyphtounicode{supersetnoteql}{228B}
-\pdfglyphtounicode{supersetnotequal}{228B}
-\pdfglyphtounicode{supersetorequal}{2287}
-\pdfglyphtounicode{supersetornotdbleql}{2ACC}
-\pdfglyphtounicode{supersetsqequal}{2292}
-\pdfglyphtounicode{svsquare}{33DC}
-\pdfglyphtounicode{syouwaerasquare}{337C}
-\pdfglyphtounicode{t}{0074}
-\pdfglyphtounicode{tabengali}{09A4}
-\pdfglyphtounicode{tackdown}{22A4}
-\pdfglyphtounicode{tackleft}{22A3}
-\pdfglyphtounicode{tadeva}{0924}
-\pdfglyphtounicode{tagujarati}{0AA4}
-\pdfglyphtounicode{tagurmukhi}{0A24}
-\pdfglyphtounicode{taharabic}{0637}
-\pdfglyphtounicode{tahfinalarabic}{FEC2}
-\pdfglyphtounicode{tahinitialarabic}{FEC3}
-\pdfglyphtounicode{tahiragana}{305F}
-\pdfglyphtounicode{tahmedialarabic}{FEC4}
-\pdfglyphtounicode{taisyouerasquare}{337D}
-\pdfglyphtounicode{takatakana}{30BF}
-\pdfglyphtounicode{takatakanahalfwidth}{FF80}
-\pdfglyphtounicode{tatweelarabic}{0640}
-\pdfglyphtounicode{tau}{03C4}
-\pdfglyphtounicode{tav}{05EA}
-\pdfglyphtounicode{tavdages}{FB4A}
-\pdfglyphtounicode{tavdagesh}{FB4A}
-\pdfglyphtounicode{tavdageshhebrew}{FB4A}
-\pdfglyphtounicode{tavhebrew}{05EA}
-\pdfglyphtounicode{tbar}{0167}
-\pdfglyphtounicode{tbopomofo}{310A}
-\pdfglyphtounicode{tcaron}{0165}
-\pdfglyphtounicode{tccurl}{02A8}
-\pdfglyphtounicode{tcedilla}{0163}
-\pdfglyphtounicode{tcheharabic}{0686}
-\pdfglyphtounicode{tchehfinalarabic}{FB7B}
-\pdfglyphtounicode{tchehinitialarabic}{FB7C}
-\pdfglyphtounicode{tchehmedialarabic}{FB7D}
-\pdfglyphtounicode{tchehmeeminitialarabic}{FB7C FEE4}
-\pdfglyphtounicode{tcircle}{24E3}
-\pdfglyphtounicode{tcircumflexbelow}{1E71}
-\pdfglyphtounicode{tcommaaccent}{0163}
-\pdfglyphtounicode{tdieresis}{1E97}
-\pdfglyphtounicode{tdotaccent}{1E6B}
-\pdfglyphtounicode{tdotbelow}{1E6D}
-\pdfglyphtounicode{tecyrillic}{0442}
-\pdfglyphtounicode{tedescendercyrillic}{04AD}
-\pdfglyphtounicode{teharabic}{062A}
-\pdfglyphtounicode{tehfinalarabic}{FE96}
-\pdfglyphtounicode{tehhahinitialarabic}{FCA2}
-\pdfglyphtounicode{tehhahisolatedarabic}{FC0C}
-\pdfglyphtounicode{tehinitialarabic}{FE97}
-\pdfglyphtounicode{tehiragana}{3066}
-\pdfglyphtounicode{tehjeeminitialarabic}{FCA1}
-\pdfglyphtounicode{tehjeemisolatedarabic}{FC0B}
-\pdfglyphtounicode{tehmarbutaarabic}{0629}
-\pdfglyphtounicode{tehmarbutafinalarabic}{FE94}
-\pdfglyphtounicode{tehmedialarabic}{FE98}
-\pdfglyphtounicode{tehmeeminitialarabic}{FCA4}
-\pdfglyphtounicode{tehmeemisolatedarabic}{FC0E}
-\pdfglyphtounicode{tehnoonfinalarabic}{FC73}
-\pdfglyphtounicode{tekatakana}{30C6}
-\pdfglyphtounicode{tekatakanahalfwidth}{FF83}
-\pdfglyphtounicode{telephone}{2121}
-\pdfglyphtounicode{telephoneblack}{260E}
-\pdfglyphtounicode{telishagedolahebrew}{05A0}
-\pdfglyphtounicode{telishaqetanahebrew}{05A9}
-\pdfglyphtounicode{tencircle}{2469}
-\pdfglyphtounicode{tenideographicparen}{3229}
-\pdfglyphtounicode{tenparen}{247D}
-\pdfglyphtounicode{tenperiod}{2491}
-\pdfglyphtounicode{tenroman}{2179}
-\pdfglyphtounicode{tesh}{02A7}
-\pdfglyphtounicode{tet}{05D8}
-\pdfglyphtounicode{tetdagesh}{FB38}
-\pdfglyphtounicode{tetdageshhebrew}{FB38}
-\pdfglyphtounicode{tethebrew}{05D8}
-\pdfglyphtounicode{tetsecyrillic}{04B5}
-\pdfglyphtounicode{tevirhebrew}{059B}
-\pdfglyphtounicode{tevirlefthebrew}{059B}
-\pdfglyphtounicode{tfm:cmbsy10/diamond}{2662}
-\pdfglyphtounicode{tfm:cmbsy10/heart}{2661}
-\pdfglyphtounicode{tfm:cmbsy5/diamond}{2662}
-\pdfglyphtounicode{tfm:cmbsy5/heart}{2661}
-\pdfglyphtounicode{tfm:cmbsy6/diamond}{2662}
-\pdfglyphtounicode{tfm:cmbsy6/heart}{2661}
-\pdfglyphtounicode{tfm:cmbsy7/diamond}{2662}
-\pdfglyphtounicode{tfm:cmbsy7/heart}{2661}
-\pdfglyphtounicode{tfm:cmbsy8/diamond}{2662}
-\pdfglyphtounicode{tfm:cmbsy8/heart}{2661}
-\pdfglyphtounicode{tfm:cmbsy9/diamond}{2662}
-\pdfglyphtounicode{tfm:cmbsy9/heart}{2661}
-\pdfglyphtounicode{tfm:cmmi10/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi10/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmi12/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi12/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmi5/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi5/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmi6/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi6/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmi7/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi7/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmi8/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi8/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmi9/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmi9/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmib10/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmib10/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmib5/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmib5/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmib6/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmib6/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmib7/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmib7/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmib8/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmib8/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmmib9/phi}{03D5}
-\pdfglyphtounicode{tfm:cmmib9/phi1}{03C6}
-\pdfglyphtounicode{tfm:cmsy10/diamond}{2662}
-\pdfglyphtounicode{tfm:cmsy10/heart}{2661}
-\pdfglyphtounicode{tfm:cmsy5/heart}{2661}
-\pdfglyphtounicode{tfm:cmsy6/diamond}{2662}
-\pdfglyphtounicode{tfm:cmsy6/heart}{2661}
-\pdfglyphtounicode{tfm:cmsy7/diamond}{2662}
-\pdfglyphtounicode{tfm:cmsy7/heart}{2661}
-\pdfglyphtounicode{tfm:cmsy8/diamond}{2662}
-\pdfglyphtounicode{tfm:cmsy8/heart}{2661}
-\pdfglyphtounicode{tfm:cmsy9/diamond}{2662}
-\pdfglyphtounicode{tfm:cmsy9/heart}{2661}
-\pdfglyphtounicode{tfm:eurb10/phi}{03D5}
-\pdfglyphtounicode{tfm:eurb10/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurb5/phi}{03D5}
-\pdfglyphtounicode{tfm:eurb5/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurb6/phi}{03D5}
-\pdfglyphtounicode{tfm:eurb6/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurb7/phi}{03D5}
-\pdfglyphtounicode{tfm:eurb7/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurb8/phi}{03D5}
-\pdfglyphtounicode{tfm:eurb8/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurb9/phi}{03D5}
-\pdfglyphtounicode{tfm:eurb9/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurm10/phi}{03D5}
-\pdfglyphtounicode{tfm:eurm10/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurm5/phi}{03D5}
-\pdfglyphtounicode{tfm:eurm5/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurm6/phi}{03D5}
-\pdfglyphtounicode{tfm:eurm6/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurm7/phi}{03D5}
-\pdfglyphtounicode{tfm:eurm7/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurm8/phi}{03D5}
-\pdfglyphtounicode{tfm:eurm8/phi1}{03C6}
-\pdfglyphtounicode{tfm:eurm9/phi}{03D5}
-\pdfglyphtounicode{tfm:eurm9/phi1}{03C6}
-\pdfglyphtounicode{tfm:fplmbi/phi}{03D5}
-\pdfglyphtounicode{tfm:fplmbi/phi1}{03C6}
-\pdfglyphtounicode{tfm:fplmri/phi}{03D5}
-\pdfglyphtounicode{tfm:fplmri/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmbsy10/diamond}{2662}
-\pdfglyphtounicode{tfm:lmbsy10/heart}{2661}
-\pdfglyphtounicode{tfm:lmbsy5/diamond}{2662}
-\pdfglyphtounicode{tfm:lmbsy5/heart}{2661}
-\pdfglyphtounicode{tfm:lmbsy7/diamond}{2662}
-\pdfglyphtounicode{tfm:lmbsy7/heart}{2661}
-\pdfglyphtounicode{tfm:lmmi10/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi10/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmi12/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi12/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmi5/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi5/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmi6/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi6/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmi7/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi7/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmi8/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi8/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmi9/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmi9/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmib10/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmib10/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmib5/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmib5/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmmib7/phi}{03D5}
-\pdfglyphtounicode{tfm:lmmib7/phi1}{03C6}
-\pdfglyphtounicode{tfm:lmsy10/diamond}{2662}
-\pdfglyphtounicode{tfm:lmsy10/heart}{2661}
-\pdfglyphtounicode{tfm:lmsy5/diamond}{2662}
-\pdfglyphtounicode{tfm:lmsy5/heart}{2661}
-\pdfglyphtounicode{tfm:lmsy6/diamond}{2662}
-\pdfglyphtounicode{tfm:lmsy6/heart}{2661}
-\pdfglyphtounicode{tfm:lmsy7/diamond}{2662}
-\pdfglyphtounicode{tfm:lmsy7/heart}{2661}
-\pdfglyphtounicode{tfm:lmsy8/diamond}{2662}
-\pdfglyphtounicode{tfm:lmsy8/heart}{2661}
-\pdfglyphtounicode{tfm:lmsy9/diamond}{2662}
-\pdfglyphtounicode{tfm:lmsy9/heart}{2661}
-\pdfglyphtounicode{tfm:msam10/diamond}{2662}
-\pdfglyphtounicode{tfm:msam5/diamond}{2662}
-\pdfglyphtounicode{tfm:msam6/diamond}{2662}
-\pdfglyphtounicode{tfm:msam7/diamond}{2662}
-\pdfglyphtounicode{tfm:msam8/diamond}{2662}
-\pdfglyphtounicode{tfm:msam9/diamond}{2662}
-\pdfglyphtounicode{tfm:pxbmia/phi}{03D5}
-\pdfglyphtounicode{tfm:pxbmia/phi1}{03C6}
-\pdfglyphtounicode{tfm:pxbsy/diamond}{2662}
-\pdfglyphtounicode{tfm:pxbsy/heart}{2661}
-\pdfglyphtounicode{tfm:pxbsya/diamond}{2662}
-\pdfglyphtounicode{tfm:pxmia/phi}{03D5}
-\pdfglyphtounicode{tfm:pxmia/phi1}{03C6}
-\pdfglyphtounicode{tfm:pxsy/diamond}{2662}
-\pdfglyphtounicode{tfm:pxsy/heart}{2661}
-\pdfglyphtounicode{tfm:pxsya/diamond}{2662}
-\pdfglyphtounicode{tfm:pzdr/a1}{2701}
-\pdfglyphtounicode{tfm:pzdr/a10}{2721}
-\pdfglyphtounicode{tfm:pzdr/a100}{275E}
-\pdfglyphtounicode{tfm:pzdr/a101}{2761}
-\pdfglyphtounicode{tfm:pzdr/a102}{2762}
-\pdfglyphtounicode{tfm:pzdr/a103}{2763}
-\pdfglyphtounicode{tfm:pzdr/a104}{2764}
-\pdfglyphtounicode{tfm:pzdr/a105}{2710}
-\pdfglyphtounicode{tfm:pzdr/a106}{2765}
-\pdfglyphtounicode{tfm:pzdr/a107}{2766}
-\pdfglyphtounicode{tfm:pzdr/a108}{2767}
-\pdfglyphtounicode{tfm:pzdr/a109}{2660}
-\pdfglyphtounicode{tfm:pzdr/a11}{261B}
-\pdfglyphtounicode{tfm:pzdr/a110}{2665}
-\pdfglyphtounicode{tfm:pzdr/a111}{2666}
-\pdfglyphtounicode{tfm:pzdr/a112}{2663}
-\pdfglyphtounicode{tfm:pzdr/a117}{2709}
-\pdfglyphtounicode{tfm:pzdr/a118}{2708}
-\pdfglyphtounicode{tfm:pzdr/a119}{2707}
-\pdfglyphtounicode{tfm:pzdr/a12}{261E}
-\pdfglyphtounicode{tfm:pzdr/a120}{2460}
-\pdfglyphtounicode{tfm:pzdr/a121}{2461}
-\pdfglyphtounicode{tfm:pzdr/a122}{2462}
-\pdfglyphtounicode{tfm:pzdr/a123}{2463}
-\pdfglyphtounicode{tfm:pzdr/a124}{2464}
-\pdfglyphtounicode{tfm:pzdr/a125}{2465}
-\pdfglyphtounicode{tfm:pzdr/a126}{2466}
-\pdfglyphtounicode{tfm:pzdr/a127}{2467}
-\pdfglyphtounicode{tfm:pzdr/a128}{2468}
-\pdfglyphtounicode{tfm:pzdr/a129}{2469}
-\pdfglyphtounicode{tfm:pzdr/a13}{270C}
-\pdfglyphtounicode{tfm:pzdr/a130}{2776}
-\pdfglyphtounicode{tfm:pzdr/a131}{2777}
-\pdfglyphtounicode{tfm:pzdr/a132}{2778}
-\pdfglyphtounicode{tfm:pzdr/a133}{2779}
-\pdfglyphtounicode{tfm:pzdr/a134}{277A}
-\pdfglyphtounicode{tfm:pzdr/a135}{277B}
-\pdfglyphtounicode{tfm:pzdr/a136}{277C}
-\pdfglyphtounicode{tfm:pzdr/a137}{277D}
-\pdfglyphtounicode{tfm:pzdr/a138}{277E}
-\pdfglyphtounicode{tfm:pzdr/a139}{277F}
-\pdfglyphtounicode{tfm:pzdr/a14}{270D}
-\pdfglyphtounicode{tfm:pzdr/a140}{2780}
-\pdfglyphtounicode{tfm:pzdr/a141}{2781}
-\pdfglyphtounicode{tfm:pzdr/a142}{2782}
-\pdfglyphtounicode{tfm:pzdr/a143}{2783}
-\pdfglyphtounicode{tfm:pzdr/a144}{2784}
-\pdfglyphtounicode{tfm:pzdr/a145}{2785}
-\pdfglyphtounicode{tfm:pzdr/a146}{2786}
-\pdfglyphtounicode{tfm:pzdr/a147}{2787}
-\pdfglyphtounicode{tfm:pzdr/a148}{2788}
-\pdfglyphtounicode{tfm:pzdr/a149}{2789}
-\pdfglyphtounicode{tfm:pzdr/a15}{270E}
-\pdfglyphtounicode{tfm:pzdr/a150}{278A}
-\pdfglyphtounicode{tfm:pzdr/a151}{278B}
-\pdfglyphtounicode{tfm:pzdr/a152}{278C}
-\pdfglyphtounicode{tfm:pzdr/a153}{278D}
-\pdfglyphtounicode{tfm:pzdr/a154}{278E}
-\pdfglyphtounicode{tfm:pzdr/a155}{278F}
-\pdfglyphtounicode{tfm:pzdr/a156}{2790}
-\pdfglyphtounicode{tfm:pzdr/a157}{2791}
-\pdfglyphtounicode{tfm:pzdr/a158}{2792}
-\pdfglyphtounicode{tfm:pzdr/a159}{2793}
-\pdfglyphtounicode{tfm:pzdr/a16}{270F}
-\pdfglyphtounicode{tfm:pzdr/a160}{2794}
-\pdfglyphtounicode{tfm:pzdr/a161}{2192}
-\pdfglyphtounicode{tfm:pzdr/a162}{27A3}
-\pdfglyphtounicode{tfm:pzdr/a163}{2194}
-\pdfglyphtounicode{tfm:pzdr/a164}{2195}
-\pdfglyphtounicode{tfm:pzdr/a165}{2799}
-\pdfglyphtounicode{tfm:pzdr/a166}{279B}
-\pdfglyphtounicode{tfm:pzdr/a167}{279C}
-\pdfglyphtounicode{tfm:pzdr/a168}{279D}
-\pdfglyphtounicode{tfm:pzdr/a169}{279E}
-\pdfglyphtounicode{tfm:pzdr/a17}{2711}
-\pdfglyphtounicode{tfm:pzdr/a170}{279F}
-\pdfglyphtounicode{tfm:pzdr/a171}{27A0}
-\pdfglyphtounicode{tfm:pzdr/a172}{27A1}
-\pdfglyphtounicode{tfm:pzdr/a173}{27A2}
-\pdfglyphtounicode{tfm:pzdr/a174}{27A4}
-\pdfglyphtounicode{tfm:pzdr/a175}{27A5}
-\pdfglyphtounicode{tfm:pzdr/a176}{27A6}
-\pdfglyphtounicode{tfm:pzdr/a177}{27A7}
-\pdfglyphtounicode{tfm:pzdr/a178}{27A8}
-\pdfglyphtounicode{tfm:pzdr/a179}{27A9}
-\pdfglyphtounicode{tfm:pzdr/a18}{2712}
-\pdfglyphtounicode{tfm:pzdr/a180}{27AB}
-\pdfglyphtounicode{tfm:pzdr/a181}{27AD}
-\pdfglyphtounicode{tfm:pzdr/a182}{27AF}
-\pdfglyphtounicode{tfm:pzdr/a183}{27B2}
-\pdfglyphtounicode{tfm:pzdr/a184}{27B3}
-\pdfglyphtounicode{tfm:pzdr/a185}{27B5}
-\pdfglyphtounicode{tfm:pzdr/a186}{27B8}
-\pdfglyphtounicode{tfm:pzdr/a187}{27BA}
-\pdfglyphtounicode{tfm:pzdr/a188}{27BB}
-\pdfglyphtounicode{tfm:pzdr/a189}{27BC}
-\pdfglyphtounicode{tfm:pzdr/a19}{2713}
-\pdfglyphtounicode{tfm:pzdr/a190}{27BD}
-\pdfglyphtounicode{tfm:pzdr/a191}{27BE}
-\pdfglyphtounicode{tfm:pzdr/a192}{279A}
-\pdfglyphtounicode{tfm:pzdr/a193}{27AA}
-\pdfglyphtounicode{tfm:pzdr/a194}{27B6}
-\pdfglyphtounicode{tfm:pzdr/a195}{27B9}
-\pdfglyphtounicode{tfm:pzdr/a196}{2798}
-\pdfglyphtounicode{tfm:pzdr/a197}{27B4}
-\pdfglyphtounicode{tfm:pzdr/a198}{27B7}
-\pdfglyphtounicode{tfm:pzdr/a199}{27AC}
-\pdfglyphtounicode{tfm:pzdr/a2}{2702}
-\pdfglyphtounicode{tfm:pzdr/a20}{2714}
-\pdfglyphtounicode{tfm:pzdr/a200}{27AE}
-\pdfglyphtounicode{tfm:pzdr/a201}{27B1}
-\pdfglyphtounicode{tfm:pzdr/a202}{2703}
-\pdfglyphtounicode{tfm:pzdr/a203}{2750}
-\pdfglyphtounicode{tfm:pzdr/a204}{2752}
-\pdfglyphtounicode{tfm:pzdr/a205}{276E}
-\pdfglyphtounicode{tfm:pzdr/a206}{2770}
-\pdfglyphtounicode{tfm:pzdr/a21}{2715}
-\pdfglyphtounicode{tfm:pzdr/a22}{2716}
-\pdfglyphtounicode{tfm:pzdr/a23}{2717}
-\pdfglyphtounicode{tfm:pzdr/a24}{2718}
-\pdfglyphtounicode{tfm:pzdr/a25}{2719}
-\pdfglyphtounicode{tfm:pzdr/a26}{271A}
-\pdfglyphtounicode{tfm:pzdr/a27}{271B}
-\pdfglyphtounicode{tfm:pzdr/a28}{271C}
-\pdfglyphtounicode{tfm:pzdr/a29}{2722}
-\pdfglyphtounicode{tfm:pzdr/a3}{2704}
-\pdfglyphtounicode{tfm:pzdr/a30}{2723}
-\pdfglyphtounicode{tfm:pzdr/a31}{2724}
-\pdfglyphtounicode{tfm:pzdr/a32}{2725}
-\pdfglyphtounicode{tfm:pzdr/a33}{2726}
-\pdfglyphtounicode{tfm:pzdr/a34}{2727}
-\pdfglyphtounicode{tfm:pzdr/a35}{2605}
-\pdfglyphtounicode{tfm:pzdr/a36}{2729}
-\pdfglyphtounicode{tfm:pzdr/a37}{272A}
-\pdfglyphtounicode{tfm:pzdr/a38}{272B}
-\pdfglyphtounicode{tfm:pzdr/a39}{272C}
-\pdfglyphtounicode{tfm:pzdr/a4}{260E}
-\pdfglyphtounicode{tfm:pzdr/a40}{272D}
-\pdfglyphtounicode{tfm:pzdr/a41}{272E}
-\pdfglyphtounicode{tfm:pzdr/a42}{272F}
-\pdfglyphtounicode{tfm:pzdr/a43}{2730}
-\pdfglyphtounicode{tfm:pzdr/a44}{2731}
-\pdfglyphtounicode{tfm:pzdr/a45}{2732}
-\pdfglyphtounicode{tfm:pzdr/a46}{2733}
-\pdfglyphtounicode{tfm:pzdr/a47}{2734}
-\pdfglyphtounicode{tfm:pzdr/a48}{2735}
-\pdfglyphtounicode{tfm:pzdr/a49}{2736}
-\pdfglyphtounicode{tfm:pzdr/a5}{2706}
-\pdfglyphtounicode{tfm:pzdr/a50}{2737}
-\pdfglyphtounicode{tfm:pzdr/a51}{2738}
-\pdfglyphtounicode{tfm:pzdr/a52}{2739}
-\pdfglyphtounicode{tfm:pzdr/a53}{273A}
-\pdfglyphtounicode{tfm:pzdr/a54}{273B}
-\pdfglyphtounicode{tfm:pzdr/a55}{273C}
-\pdfglyphtounicode{tfm:pzdr/a56}{273D}
-\pdfglyphtounicode{tfm:pzdr/a57}{273E}
-\pdfglyphtounicode{tfm:pzdr/a58}{273F}
-\pdfglyphtounicode{tfm:pzdr/a59}{2740}
-\pdfglyphtounicode{tfm:pzdr/a6}{271D}
-\pdfglyphtounicode{tfm:pzdr/a60}{2741}
-\pdfglyphtounicode{tfm:pzdr/a61}{2742}
-\pdfglyphtounicode{tfm:pzdr/a62}{2743}
-\pdfglyphtounicode{tfm:pzdr/a63}{2744}
-\pdfglyphtounicode{tfm:pzdr/a64}{2745}
-\pdfglyphtounicode{tfm:pzdr/a65}{2746}
-\pdfglyphtounicode{tfm:pzdr/a66}{2747}
-\pdfglyphtounicode{tfm:pzdr/a67}{2748}
-\pdfglyphtounicode{tfm:pzdr/a68}{2749}
-\pdfglyphtounicode{tfm:pzdr/a69}{274A}
-\pdfglyphtounicode{tfm:pzdr/a7}{271E}
-\pdfglyphtounicode{tfm:pzdr/a70}{274B}
-\pdfglyphtounicode{tfm:pzdr/a71}{25CF}
-\pdfglyphtounicode{tfm:pzdr/a72}{274D}
-\pdfglyphtounicode{tfm:pzdr/a73}{25A0}
-\pdfglyphtounicode{tfm:pzdr/a74}{274F}
-\pdfglyphtounicode{tfm:pzdr/a75}{2751}
-\pdfglyphtounicode{tfm:pzdr/a76}{25B2}
-\pdfglyphtounicode{tfm:pzdr/a77}{25BC}
-\pdfglyphtounicode{tfm:pzdr/a78}{25C6}
-\pdfglyphtounicode{tfm:pzdr/a79}{2756}
-\pdfglyphtounicode{tfm:pzdr/a8}{271F}
-\pdfglyphtounicode{tfm:pzdr/a81}{25D7}
-\pdfglyphtounicode{tfm:pzdr/a82}{2758}
-\pdfglyphtounicode{tfm:pzdr/a83}{2759}
-\pdfglyphtounicode{tfm:pzdr/a84}{275A}
-\pdfglyphtounicode{tfm:pzdr/a85}{276F}
-\pdfglyphtounicode{tfm:pzdr/a86}{2771}
-\pdfglyphtounicode{tfm:pzdr/a87}{2772}
-\pdfglyphtounicode{tfm:pzdr/a88}{2773}
-\pdfglyphtounicode{tfm:pzdr/a89}{2768}
-\pdfglyphtounicode{tfm:pzdr/a9}{2720}
-\pdfglyphtounicode{tfm:pzdr/a90}{2769}
-\pdfglyphtounicode{tfm:pzdr/a91}{276C}
-\pdfglyphtounicode{tfm:pzdr/a92}{276D}
-\pdfglyphtounicode{tfm:pzdr/a93}{276A}
-\pdfglyphtounicode{tfm:pzdr/a94}{276B}
-\pdfglyphtounicode{tfm:pzdr/a95}{2774}
-\pdfglyphtounicode{tfm:pzdr/a96}{2775}
-\pdfglyphtounicode{tfm:pzdr/a97}{275B}
-\pdfglyphtounicode{tfm:pzdr/a98}{275C}
-\pdfglyphtounicode{tfm:pzdr/a99}{275D}
-\pdfglyphtounicode{tfm:rpxbmi/phi}{03D5}
-\pdfglyphtounicode{tfm:rpxbmi/phi1}{03C6}
-\pdfglyphtounicode{tfm:rpxmi/phi}{03D5}
-\pdfglyphtounicode{tfm:rpxmi/phi1}{03C6}
-\pdfglyphtounicode{tfm:rpzdr/a1}{2701}
-\pdfglyphtounicode{tfm:rpzdr/a10}{2721}
-\pdfglyphtounicode{tfm:rpzdr/a100}{275E}
-\pdfglyphtounicode{tfm:rpzdr/a101}{2761}
-\pdfglyphtounicode{tfm:rpzdr/a102}{2762}
-\pdfglyphtounicode{tfm:rpzdr/a103}{2763}
-\pdfglyphtounicode{tfm:rpzdr/a104}{2764}
-\pdfglyphtounicode{tfm:rpzdr/a105}{2710}
-\pdfglyphtounicode{tfm:rpzdr/a106}{2765}
-\pdfglyphtounicode{tfm:rpzdr/a107}{2766}
-\pdfglyphtounicode{tfm:rpzdr/a108}{2767}
-\pdfglyphtounicode{tfm:rpzdr/a109}{2660}
-\pdfglyphtounicode{tfm:rpzdr/a11}{261B}
-\pdfglyphtounicode{tfm:rpzdr/a110}{2665}
-\pdfglyphtounicode{tfm:rpzdr/a111}{2666}
-\pdfglyphtounicode{tfm:rpzdr/a112}{2663}
-\pdfglyphtounicode{tfm:rpzdr/a117}{2709}
-\pdfglyphtounicode{tfm:rpzdr/a118}{2708}
-\pdfglyphtounicode{tfm:rpzdr/a119}{2707}
-\pdfglyphtounicode{tfm:rpzdr/a12}{261E}
-\pdfglyphtounicode{tfm:rpzdr/a120}{2460}
-\pdfglyphtounicode{tfm:rpzdr/a121}{2461}
-\pdfglyphtounicode{tfm:rpzdr/a122}{2462}
-\pdfglyphtounicode{tfm:rpzdr/a123}{2463}
-\pdfglyphtounicode{tfm:rpzdr/a124}{2464}
-\pdfglyphtounicode{tfm:rpzdr/a125}{2465}
-\pdfglyphtounicode{tfm:rpzdr/a126}{2466}
-\pdfglyphtounicode{tfm:rpzdr/a127}{2467}
-\pdfglyphtounicode{tfm:rpzdr/a128}{2468}
-\pdfglyphtounicode{tfm:rpzdr/a129}{2469}
-\pdfglyphtounicode{tfm:rpzdr/a13}{270C}
-\pdfglyphtounicode{tfm:rpzdr/a130}{2776}
-\pdfglyphtounicode{tfm:rpzdr/a131}{2777}
-\pdfglyphtounicode{tfm:rpzdr/a132}{2778}
-\pdfglyphtounicode{tfm:rpzdr/a133}{2779}
-\pdfglyphtounicode{tfm:rpzdr/a134}{277A}
-\pdfglyphtounicode{tfm:rpzdr/a135}{277B}
-\pdfglyphtounicode{tfm:rpzdr/a136}{277C}
-\pdfglyphtounicode{tfm:rpzdr/a137}{277D}
-\pdfglyphtounicode{tfm:rpzdr/a138}{277E}
-\pdfglyphtounicode{tfm:rpzdr/a139}{277F}
-\pdfglyphtounicode{tfm:rpzdr/a14}{270D}
-\pdfglyphtounicode{tfm:rpzdr/a140}{2780}
-\pdfglyphtounicode{tfm:rpzdr/a141}{2781}
-\pdfglyphtounicode{tfm:rpzdr/a142}{2782}
-\pdfglyphtounicode{tfm:rpzdr/a143}{2783}
-\pdfglyphtounicode{tfm:rpzdr/a144}{2784}
-\pdfglyphtounicode{tfm:rpzdr/a145}{2785}
-\pdfglyphtounicode{tfm:rpzdr/a146}{2786}
-\pdfglyphtounicode{tfm:rpzdr/a147}{2787}
-\pdfglyphtounicode{tfm:rpzdr/a148}{2788}
-\pdfglyphtounicode{tfm:rpzdr/a149}{2789}
-\pdfglyphtounicode{tfm:rpzdr/a15}{270E}
-\pdfglyphtounicode{tfm:rpzdr/a150}{278A}
-\pdfglyphtounicode{tfm:rpzdr/a151}{278B}
-\pdfglyphtounicode{tfm:rpzdr/a152}{278C}
-\pdfglyphtounicode{tfm:rpzdr/a153}{278D}
-\pdfglyphtounicode{tfm:rpzdr/a154}{278E}
-\pdfglyphtounicode{tfm:rpzdr/a155}{278F}
-\pdfglyphtounicode{tfm:rpzdr/a156}{2790}
-\pdfglyphtounicode{tfm:rpzdr/a157}{2791}
-\pdfglyphtounicode{tfm:rpzdr/a158}{2792}
-\pdfglyphtounicode{tfm:rpzdr/a159}{2793}
-\pdfglyphtounicode{tfm:rpzdr/a16}{270F}
-\pdfglyphtounicode{tfm:rpzdr/a160}{2794}
-\pdfglyphtounicode{tfm:rpzdr/a161}{2192}
-\pdfglyphtounicode{tfm:rpzdr/a162}{27A3}
-\pdfglyphtounicode{tfm:rpzdr/a163}{2194}
-\pdfglyphtounicode{tfm:rpzdr/a164}{2195}
-\pdfglyphtounicode{tfm:rpzdr/a165}{2799}
-\pdfglyphtounicode{tfm:rpzdr/a166}{279B}
-\pdfglyphtounicode{tfm:rpzdr/a167}{279C}
-\pdfglyphtounicode{tfm:rpzdr/a168}{279D}
-\pdfglyphtounicode{tfm:rpzdr/a169}{279E}
-\pdfglyphtounicode{tfm:rpzdr/a17}{2711}
-\pdfglyphtounicode{tfm:rpzdr/a170}{279F}
-\pdfglyphtounicode{tfm:rpzdr/a171}{27A0}
-\pdfglyphtounicode{tfm:rpzdr/a172}{27A1}
-\pdfglyphtounicode{tfm:rpzdr/a173}{27A2}
-\pdfglyphtounicode{tfm:rpzdr/a174}{27A4}
-\pdfglyphtounicode{tfm:rpzdr/a175}{27A5}
-\pdfglyphtounicode{tfm:rpzdr/a176}{27A6}
-\pdfglyphtounicode{tfm:rpzdr/a177}{27A7}
-\pdfglyphtounicode{tfm:rpzdr/a178}{27A8}
-\pdfglyphtounicode{tfm:rpzdr/a179}{27A9}
-\pdfglyphtounicode{tfm:rpzdr/a18}{2712}
-\pdfglyphtounicode{tfm:rpzdr/a180}{27AB}
-\pdfglyphtounicode{tfm:rpzdr/a181}{27AD}
-\pdfglyphtounicode{tfm:rpzdr/a182}{27AF}
-\pdfglyphtounicode{tfm:rpzdr/a183}{27B2}
-\pdfglyphtounicode{tfm:rpzdr/a184}{27B3}
-\pdfglyphtounicode{tfm:rpzdr/a185}{27B5}
-\pdfglyphtounicode{tfm:rpzdr/a186}{27B8}
-\pdfglyphtounicode{tfm:rpzdr/a187}{27BA}
-\pdfglyphtounicode{tfm:rpzdr/a188}{27BB}
-\pdfglyphtounicode{tfm:rpzdr/a189}{27BC}
-\pdfglyphtounicode{tfm:rpzdr/a19}{2713}
-\pdfglyphtounicode{tfm:rpzdr/a190}{27BD}
-\pdfglyphtounicode{tfm:rpzdr/a191}{27BE}
-\pdfglyphtounicode{tfm:rpzdr/a192}{279A}
-\pdfglyphtounicode{tfm:rpzdr/a193}{27AA}
-\pdfglyphtounicode{tfm:rpzdr/a194}{27B6}
-\pdfglyphtounicode{tfm:rpzdr/a195}{27B9}
-\pdfglyphtounicode{tfm:rpzdr/a196}{2798}
-\pdfglyphtounicode{tfm:rpzdr/a197}{27B4}
-\pdfglyphtounicode{tfm:rpzdr/a198}{27B7}
-\pdfglyphtounicode{tfm:rpzdr/a199}{27AC}
-\pdfglyphtounicode{tfm:rpzdr/a2}{2702}
-\pdfglyphtounicode{tfm:rpzdr/a20}{2714}
-\pdfglyphtounicode{tfm:rpzdr/a200}{27AE}
-\pdfglyphtounicode{tfm:rpzdr/a201}{27B1}
-\pdfglyphtounicode{tfm:rpzdr/a202}{2703}
-\pdfglyphtounicode{tfm:rpzdr/a203}{2750}
-\pdfglyphtounicode{tfm:rpzdr/a204}{2752}
-\pdfglyphtounicode{tfm:rpzdr/a205}{276E}
-\pdfglyphtounicode{tfm:rpzdr/a206}{2770}
-\pdfglyphtounicode{tfm:rpzdr/a21}{2715}
-\pdfglyphtounicode{tfm:rpzdr/a22}{2716}
-\pdfglyphtounicode{tfm:rpzdr/a23}{2717}
-\pdfglyphtounicode{tfm:rpzdr/a24}{2718}
-\pdfglyphtounicode{tfm:rpzdr/a25}{2719}
-\pdfglyphtounicode{tfm:rpzdr/a26}{271A}
-\pdfglyphtounicode{tfm:rpzdr/a27}{271B}
-\pdfglyphtounicode{tfm:rpzdr/a28}{271C}
-\pdfglyphtounicode{tfm:rpzdr/a29}{2722}
-\pdfglyphtounicode{tfm:rpzdr/a3}{2704}
-\pdfglyphtounicode{tfm:rpzdr/a30}{2723}
-\pdfglyphtounicode{tfm:rpzdr/a31}{2724}
-\pdfglyphtounicode{tfm:rpzdr/a32}{2725}
-\pdfglyphtounicode{tfm:rpzdr/a33}{2726}
-\pdfglyphtounicode{tfm:rpzdr/a34}{2727}
-\pdfglyphtounicode{tfm:rpzdr/a35}{2605}
-\pdfglyphtounicode{tfm:rpzdr/a36}{2729}
-\pdfglyphtounicode{tfm:rpzdr/a37}{272A}
-\pdfglyphtounicode{tfm:rpzdr/a38}{272B}
-\pdfglyphtounicode{tfm:rpzdr/a39}{272C}
-\pdfglyphtounicode{tfm:rpzdr/a4}{260E}
-\pdfglyphtounicode{tfm:rpzdr/a40}{272D}
-\pdfglyphtounicode{tfm:rpzdr/a41}{272E}
-\pdfglyphtounicode{tfm:rpzdr/a42}{272F}
-\pdfglyphtounicode{tfm:rpzdr/a43}{2730}
-\pdfglyphtounicode{tfm:rpzdr/a44}{2731}
-\pdfglyphtounicode{tfm:rpzdr/a45}{2732}
-\pdfglyphtounicode{tfm:rpzdr/a46}{2733}
-\pdfglyphtounicode{tfm:rpzdr/a47}{2734}
-\pdfglyphtounicode{tfm:rpzdr/a48}{2735}
-\pdfglyphtounicode{tfm:rpzdr/a49}{2736}
-\pdfglyphtounicode{tfm:rpzdr/a5}{2706}
-\pdfglyphtounicode{tfm:rpzdr/a50}{2737}
-\pdfglyphtounicode{tfm:rpzdr/a51}{2738}
-\pdfglyphtounicode{tfm:rpzdr/a52}{2739}
-\pdfglyphtounicode{tfm:rpzdr/a53}{273A}
-\pdfglyphtounicode{tfm:rpzdr/a54}{273B}
-\pdfglyphtounicode{tfm:rpzdr/a55}{273C}
-\pdfglyphtounicode{tfm:rpzdr/a56}{273D}
-\pdfglyphtounicode{tfm:rpzdr/a57}{273E}
-\pdfglyphtounicode{tfm:rpzdr/a58}{273F}
-\pdfglyphtounicode{tfm:rpzdr/a59}{2740}
-\pdfglyphtounicode{tfm:rpzdr/a6}{271D}
-\pdfglyphtounicode{tfm:rpzdr/a60}{2741}
-\pdfglyphtounicode{tfm:rpzdr/a61}{2742}
-\pdfglyphtounicode{tfm:rpzdr/a62}{2743}
-\pdfglyphtounicode{tfm:rpzdr/a63}{2744}
-\pdfglyphtounicode{tfm:rpzdr/a64}{2745}
-\pdfglyphtounicode{tfm:rpzdr/a65}{2746}
-\pdfglyphtounicode{tfm:rpzdr/a66}{2747}
-\pdfglyphtounicode{tfm:rpzdr/a67}{2748}
-\pdfglyphtounicode{tfm:rpzdr/a68}{2749}
-\pdfglyphtounicode{tfm:rpzdr/a69}{274A}
-\pdfglyphtounicode{tfm:rpzdr/a7}{271E}
-\pdfglyphtounicode{tfm:rpzdr/a70}{274B}
-\pdfglyphtounicode{tfm:rpzdr/a71}{25CF}
-\pdfglyphtounicode{tfm:rpzdr/a72}{274D}
-\pdfglyphtounicode{tfm:rpzdr/a73}{25A0}
-\pdfglyphtounicode{tfm:rpzdr/a74}{274F}
-\pdfglyphtounicode{tfm:rpzdr/a75}{2751}
-\pdfglyphtounicode{tfm:rpzdr/a76}{25B2}
-\pdfglyphtounicode{tfm:rpzdr/a77}{25BC}
-\pdfglyphtounicode{tfm:rpzdr/a78}{25C6}
-\pdfglyphtounicode{tfm:rpzdr/a79}{2756}
-\pdfglyphtounicode{tfm:rpzdr/a8}{271F}
-\pdfglyphtounicode{tfm:rpzdr/a81}{25D7}
-\pdfglyphtounicode{tfm:rpzdr/a82}{2758}
-\pdfglyphtounicode{tfm:rpzdr/a83}{2759}
-\pdfglyphtounicode{tfm:rpzdr/a84}{275A}
-\pdfglyphtounicode{tfm:rpzdr/a85}{276F}
-\pdfglyphtounicode{tfm:rpzdr/a86}{2771}
-\pdfglyphtounicode{tfm:rpzdr/a87}{2772}
-\pdfglyphtounicode{tfm:rpzdr/a88}{2773}
-\pdfglyphtounicode{tfm:rpzdr/a89}{2768}
-\pdfglyphtounicode{tfm:rpzdr/a9}{2720}
-\pdfglyphtounicode{tfm:rpzdr/a90}{2769}
-\pdfglyphtounicode{tfm:rpzdr/a91}{276C}
-\pdfglyphtounicode{tfm:rpzdr/a92}{276D}
-\pdfglyphtounicode{tfm:rpzdr/a93}{276A}
-\pdfglyphtounicode{tfm:rpzdr/a94}{276B}
-\pdfglyphtounicode{tfm:rpzdr/a95}{2774}
-\pdfglyphtounicode{tfm:rpzdr/a96}{2775}
-\pdfglyphtounicode{tfm:rpzdr/a97}{275B}
-\pdfglyphtounicode{tfm:rpzdr/a98}{275C}
-\pdfglyphtounicode{tfm:rpzdr/a99}{275D}
-\pdfglyphtounicode{tfm:rtxbmi/phi}{03D5}
-\pdfglyphtounicode{tfm:rtxbmi/phi1}{03C6}
-\pdfglyphtounicode{tfm:rtxmi/phi}{03D5}
-\pdfglyphtounicode{tfm:rtxmi/phi1}{03C6}
-\pdfglyphtounicode{tfm:txbmia/phi}{03D5}
-\pdfglyphtounicode{tfm:txbmia/phi1}{03C6}
-\pdfglyphtounicode{tfm:txbsy/diamond}{2662}
-\pdfglyphtounicode{tfm:txbsy/heart}{2661}
-\pdfglyphtounicode{tfm:txbsya/diamond}{2662}
-\pdfglyphtounicode{tfm:txmia/phi}{03D5}
-\pdfglyphtounicode{tfm:txmia/phi1}{03C6}
-\pdfglyphtounicode{tfm:txsy/diamond}{2662}
-\pdfglyphtounicode{tfm:txsy/heart}{2661}
-\pdfglyphtounicode{tfm:txsya/diamond}{2662}
-\pdfglyphtounicode{tfm:zd/a1}{2701}
-\pdfglyphtounicode{tfm:zd/a10}{2721}
-\pdfglyphtounicode{tfm:zd/a100}{275E}
-\pdfglyphtounicode{tfm:zd/a101}{2761}
-\pdfglyphtounicode{tfm:zd/a102}{2762}
-\pdfglyphtounicode{tfm:zd/a103}{2763}
-\pdfglyphtounicode{tfm:zd/a104}{2764}
-\pdfglyphtounicode{tfm:zd/a105}{2710}
-\pdfglyphtounicode{tfm:zd/a106}{2765}
-\pdfglyphtounicode{tfm:zd/a107}{2766}
-\pdfglyphtounicode{tfm:zd/a108}{2767}
-\pdfglyphtounicode{tfm:zd/a109}{2660}
-\pdfglyphtounicode{tfm:zd/a11}{261B}
-\pdfglyphtounicode{tfm:zd/a110}{2665}
-\pdfglyphtounicode{tfm:zd/a111}{2666}
-\pdfglyphtounicode{tfm:zd/a112}{2663}
-\pdfglyphtounicode{tfm:zd/a117}{2709}
-\pdfglyphtounicode{tfm:zd/a118}{2708}
-\pdfglyphtounicode{tfm:zd/a119}{2707}
-\pdfglyphtounicode{tfm:zd/a12}{261E}
-\pdfglyphtounicode{tfm:zd/a120}{2460}
-\pdfglyphtounicode{tfm:zd/a121}{2461}
-\pdfglyphtounicode{tfm:zd/a122}{2462}
-\pdfglyphtounicode{tfm:zd/a123}{2463}
-\pdfglyphtounicode{tfm:zd/a124}{2464}
-\pdfglyphtounicode{tfm:zd/a125}{2465}
-\pdfglyphtounicode{tfm:zd/a126}{2466}
-\pdfglyphtounicode{tfm:zd/a127}{2467}
-\pdfglyphtounicode{tfm:zd/a128}{2468}
-\pdfglyphtounicode{tfm:zd/a129}{2469}
-\pdfglyphtounicode{tfm:zd/a13}{270C}
-\pdfglyphtounicode{tfm:zd/a130}{2776}
-\pdfglyphtounicode{tfm:zd/a131}{2777}
-\pdfglyphtounicode{tfm:zd/a132}{2778}
-\pdfglyphtounicode{tfm:zd/a133}{2779}
-\pdfglyphtounicode{tfm:zd/a134}{277A}
-\pdfglyphtounicode{tfm:zd/a135}{277B}
-\pdfglyphtounicode{tfm:zd/a136}{277C}
-\pdfglyphtounicode{tfm:zd/a137}{277D}
-\pdfglyphtounicode{tfm:zd/a138}{277E}
-\pdfglyphtounicode{tfm:zd/a139}{277F}
-\pdfglyphtounicode{tfm:zd/a14}{270D}
-\pdfglyphtounicode{tfm:zd/a140}{2780}
-\pdfglyphtounicode{tfm:zd/a141}{2781}
-\pdfglyphtounicode{tfm:zd/a142}{2782}
-\pdfglyphtounicode{tfm:zd/a143}{2783}
-\pdfglyphtounicode{tfm:zd/a144}{2784}
-\pdfglyphtounicode{tfm:zd/a145}{2785}
-\pdfglyphtounicode{tfm:zd/a146}{2786}
-\pdfglyphtounicode{tfm:zd/a147}{2787}
-\pdfglyphtounicode{tfm:zd/a148}{2788}
-\pdfglyphtounicode{tfm:zd/a149}{2789}
-\pdfglyphtounicode{tfm:zd/a15}{270E}
-\pdfglyphtounicode{tfm:zd/a150}{278A}
-\pdfglyphtounicode{tfm:zd/a151}{278B}
-\pdfglyphtounicode{tfm:zd/a152}{278C}
-\pdfglyphtounicode{tfm:zd/a153}{278D}
-\pdfglyphtounicode{tfm:zd/a154}{278E}
-\pdfglyphtounicode{tfm:zd/a155}{278F}
-\pdfglyphtounicode{tfm:zd/a156}{2790}
-\pdfglyphtounicode{tfm:zd/a157}{2791}
-\pdfglyphtounicode{tfm:zd/a158}{2792}
-\pdfglyphtounicode{tfm:zd/a159}{2793}
-\pdfglyphtounicode{tfm:zd/a16}{270F}
-\pdfglyphtounicode{tfm:zd/a160}{2794}
-\pdfglyphtounicode{tfm:zd/a161}{2192}
-\pdfglyphtounicode{tfm:zd/a162}{27A3}
-\pdfglyphtounicode{tfm:zd/a163}{2194}
-\pdfglyphtounicode{tfm:zd/a164}{2195}
-\pdfglyphtounicode{tfm:zd/a165}{2799}
-\pdfglyphtounicode{tfm:zd/a166}{279B}
-\pdfglyphtounicode{tfm:zd/a167}{279C}
-\pdfglyphtounicode{tfm:zd/a168}{279D}
-\pdfglyphtounicode{tfm:zd/a169}{279E}
-\pdfglyphtounicode{tfm:zd/a17}{2711}
-\pdfglyphtounicode{tfm:zd/a170}{279F}
-\pdfglyphtounicode{tfm:zd/a171}{27A0}
-\pdfglyphtounicode{tfm:zd/a172}{27A1}
-\pdfglyphtounicode{tfm:zd/a173}{27A2}
-\pdfglyphtounicode{tfm:zd/a174}{27A4}
-\pdfglyphtounicode{tfm:zd/a175}{27A5}
-\pdfglyphtounicode{tfm:zd/a176}{27A6}
-\pdfglyphtounicode{tfm:zd/a177}{27A7}
-\pdfglyphtounicode{tfm:zd/a178}{27A8}
-\pdfglyphtounicode{tfm:zd/a179}{27A9}
-\pdfglyphtounicode{tfm:zd/a18}{2712}
-\pdfglyphtounicode{tfm:zd/a180}{27AB}
-\pdfglyphtounicode{tfm:zd/a181}{27AD}
-\pdfglyphtounicode{tfm:zd/a182}{27AF}
-\pdfglyphtounicode{tfm:zd/a183}{27B2}
-\pdfglyphtounicode{tfm:zd/a184}{27B3}
-\pdfglyphtounicode{tfm:zd/a185}{27B5}
-\pdfglyphtounicode{tfm:zd/a186}{27B8}
-\pdfglyphtounicode{tfm:zd/a187}{27BA}
-\pdfglyphtounicode{tfm:zd/a188}{27BB}
-\pdfglyphtounicode{tfm:zd/a189}{27BC}
-\pdfglyphtounicode{tfm:zd/a19}{2713}
-\pdfglyphtounicode{tfm:zd/a190}{27BD}
-\pdfglyphtounicode{tfm:zd/a191}{27BE}
-\pdfglyphtounicode{tfm:zd/a192}{279A}
-\pdfglyphtounicode{tfm:zd/a193}{27AA}
-\pdfglyphtounicode{tfm:zd/a194}{27B6}
-\pdfglyphtounicode{tfm:zd/a195}{27B9}
-\pdfglyphtounicode{tfm:zd/a196}{2798}
-\pdfglyphtounicode{tfm:zd/a197}{27B4}
-\pdfglyphtounicode{tfm:zd/a198}{27B7}
-\pdfglyphtounicode{tfm:zd/a199}{27AC}
-\pdfglyphtounicode{tfm:zd/a2}{2702}
-\pdfglyphtounicode{tfm:zd/a20}{2714}
-\pdfglyphtounicode{tfm:zd/a200}{27AE}
-\pdfglyphtounicode{tfm:zd/a201}{27B1}
-\pdfglyphtounicode{tfm:zd/a202}{2703}
-\pdfglyphtounicode{tfm:zd/a203}{2750}
-\pdfglyphtounicode{tfm:zd/a204}{2752}
-\pdfglyphtounicode{tfm:zd/a205}{276E}
-\pdfglyphtounicode{tfm:zd/a206}{2770}
-\pdfglyphtounicode{tfm:zd/a21}{2715}
-\pdfglyphtounicode{tfm:zd/a22}{2716}
-\pdfglyphtounicode{tfm:zd/a23}{2717}
-\pdfglyphtounicode{tfm:zd/a24}{2718}
-\pdfglyphtounicode{tfm:zd/a25}{2719}
-\pdfglyphtounicode{tfm:zd/a26}{271A}
-\pdfglyphtounicode{tfm:zd/a27}{271B}
-\pdfglyphtounicode{tfm:zd/a28}{271C}
-\pdfglyphtounicode{tfm:zd/a29}{2722}
-\pdfglyphtounicode{tfm:zd/a3}{2704}
-\pdfglyphtounicode{tfm:zd/a30}{2723}
-\pdfglyphtounicode{tfm:zd/a31}{2724}
-\pdfglyphtounicode{tfm:zd/a32}{2725}
-\pdfglyphtounicode{tfm:zd/a33}{2726}
-\pdfglyphtounicode{tfm:zd/a34}{2727}
-\pdfglyphtounicode{tfm:zd/a35}{2605}
-\pdfglyphtounicode{tfm:zd/a36}{2729}
-\pdfglyphtounicode{tfm:zd/a37}{272A}
-\pdfglyphtounicode{tfm:zd/a38}{272B}
-\pdfglyphtounicode{tfm:zd/a39}{272C}
-\pdfglyphtounicode{tfm:zd/a4}{260E}
-\pdfglyphtounicode{tfm:zd/a40}{272D}
-\pdfglyphtounicode{tfm:zd/a41}{272E}
-\pdfglyphtounicode{tfm:zd/a42}{272F}
-\pdfglyphtounicode{tfm:zd/a43}{2730}
-\pdfglyphtounicode{tfm:zd/a44}{2731}
-\pdfglyphtounicode{tfm:zd/a45}{2732}
-\pdfglyphtounicode{tfm:zd/a46}{2733}
-\pdfglyphtounicode{tfm:zd/a47}{2734}
-\pdfglyphtounicode{tfm:zd/a48}{2735}
-\pdfglyphtounicode{tfm:zd/a49}{2736}
-\pdfglyphtounicode{tfm:zd/a5}{2706}
-\pdfglyphtounicode{tfm:zd/a50}{2737}
-\pdfglyphtounicode{tfm:zd/a51}{2738}
-\pdfglyphtounicode{tfm:zd/a52}{2739}
-\pdfglyphtounicode{tfm:zd/a53}{273A}
-\pdfglyphtounicode{tfm:zd/a54}{273B}
-\pdfglyphtounicode{tfm:zd/a55}{273C}
-\pdfglyphtounicode{tfm:zd/a56}{273D}
-\pdfglyphtounicode{tfm:zd/a57}{273E}
-\pdfglyphtounicode{tfm:zd/a58}{273F}
-\pdfglyphtounicode{tfm:zd/a59}{2740}
-\pdfglyphtounicode{tfm:zd/a6}{271D}
-\pdfglyphtounicode{tfm:zd/a60}{2741}
-\pdfglyphtounicode{tfm:zd/a61}{2742}
-\pdfglyphtounicode{tfm:zd/a62}{2743}
-\pdfglyphtounicode{tfm:zd/a63}{2744}
-\pdfglyphtounicode{tfm:zd/a64}{2745}
-\pdfglyphtounicode{tfm:zd/a65}{2746}
-\pdfglyphtounicode{tfm:zd/a66}{2747}
-\pdfglyphtounicode{tfm:zd/a67}{2748}
-\pdfglyphtounicode{tfm:zd/a68}{2749}
-\pdfglyphtounicode{tfm:zd/a69}{274A}
-\pdfglyphtounicode{tfm:zd/a7}{271E}
-\pdfglyphtounicode{tfm:zd/a70}{274B}
-\pdfglyphtounicode{tfm:zd/a71}{25CF}
-\pdfglyphtounicode{tfm:zd/a72}{274D}
-\pdfglyphtounicode{tfm:zd/a73}{25A0}
-\pdfglyphtounicode{tfm:zd/a74}{274F}
-\pdfglyphtounicode{tfm:zd/a75}{2751}
-\pdfglyphtounicode{tfm:zd/a76}{25B2}
-\pdfglyphtounicode{tfm:zd/a77}{25BC}
-\pdfglyphtounicode{tfm:zd/a78}{25C6}
-\pdfglyphtounicode{tfm:zd/a79}{2756}
-\pdfglyphtounicode{tfm:zd/a8}{271F}
-\pdfglyphtounicode{tfm:zd/a81}{25D7}
-\pdfglyphtounicode{tfm:zd/a82}{2758}
-\pdfglyphtounicode{tfm:zd/a83}{2759}
-\pdfglyphtounicode{tfm:zd/a84}{275A}
-\pdfglyphtounicode{tfm:zd/a85}{276F}
-\pdfglyphtounicode{tfm:zd/a86}{2771}
-\pdfglyphtounicode{tfm:zd/a87}{2772}
-\pdfglyphtounicode{tfm:zd/a88}{2773}
-\pdfglyphtounicode{tfm:zd/a89}{2768}
-\pdfglyphtounicode{tfm:zd/a9}{2720}
-\pdfglyphtounicode{tfm:zd/a90}{2769}
-\pdfglyphtounicode{tfm:zd/a91}{276C}
-\pdfglyphtounicode{tfm:zd/a92}{276D}
-\pdfglyphtounicode{tfm:zd/a93}{276A}
-\pdfglyphtounicode{tfm:zd/a94}{276B}
-\pdfglyphtounicode{tfm:zd/a95}{2774}
-\pdfglyphtounicode{tfm:zd/a96}{2775}
-\pdfglyphtounicode{tfm:zd/a97}{275B}
-\pdfglyphtounicode{tfm:zd/a98}{275C}
-\pdfglyphtounicode{tfm:zd/a99}{275D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a1}{2701}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a10}{2721}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a100}{275E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a101}{2761}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a102}{2762}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a103}{2763}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a104}{2764}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a105}{2710}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a106}{2765}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a107}{2766}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a108}{2767}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a109}{2660}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a11}{261B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a110}{2665}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a111}{2666}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a112}{2663}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a117}{2709}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a118}{2708}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a119}{2707}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a12}{261E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a120}{2460}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a121}{2461}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a122}{2462}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a123}{2463}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a124}{2464}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a125}{2465}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a126}{2466}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a127}{2467}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a128}{2468}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a129}{2469}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a13}{270C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a130}{2776}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a131}{2777}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a132}{2778}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a133}{2779}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a134}{277A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a135}{277B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a136}{277C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a137}{277D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a138}{277E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a139}{277F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a14}{270D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a140}{2780}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a141}{2781}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a142}{2782}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a143}{2783}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a144}{2784}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a145}{2785}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a146}{2786}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a147}{2787}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a148}{2788}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a149}{2789}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a15}{270E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a150}{278A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a151}{278B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a152}{278C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a153}{278D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a154}{278E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a155}{278F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a156}{2790}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a157}{2791}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a158}{2792}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a159}{2793}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a16}{270F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a160}{2794}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a161}{2192}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a162}{27A3}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a163}{2194}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a164}{2195}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a165}{2799}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a166}{279B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a167}{279C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a168}{279D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a169}{279E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a17}{2711}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a170}{279F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a171}{27A0}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a172}{27A1}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a173}{27A2}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a174}{27A4}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a175}{27A5}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a176}{27A6}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a177}{27A7}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a178}{27A8}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a179}{27A9}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a18}{2712}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a180}{27AB}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a181}{27AD}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a182}{27AF}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a183}{27B2}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a184}{27B3}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a185}{27B5}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a186}{27B8}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a187}{27BA}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a188}{27BB}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a189}{27BC}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a19}{2713}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a190}{27BD}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a191}{27BE}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a192}{279A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a193}{27AA}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a194}{27B6}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a195}{27B9}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a196}{2798}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a197}{27B4}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a198}{27B7}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a199}{27AC}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a2}{2702}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a20}{2714}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a200}{27AE}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a201}{27B1}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a202}{2703}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a203}{2750}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a204}{2752}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a205}{276E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a206}{2770}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a21}{2715}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a22}{2716}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a23}{2717}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a24}{2718}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a25}{2719}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a26}{271A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a27}{271B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a28}{271C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a29}{2722}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a3}{2704}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a30}{2723}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a31}{2724}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a32}{2725}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a33}{2726}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a34}{2727}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a35}{2605}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a36}{2729}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a37}{272A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a38}{272B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a39}{272C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a4}{260E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a40}{272D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a41}{272E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a42}{272F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a43}{2730}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a44}{2731}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a45}{2732}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a46}{2733}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a47}{2734}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a48}{2735}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a49}{2736}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a5}{2706}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a50}{2737}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a51}{2738}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a52}{2739}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a53}{273A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a54}{273B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a55}{273C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a56}{273D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a57}{273E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a58}{273F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a59}{2740}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a6}{271D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a60}{2741}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a61}{2742}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a62}{2743}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a63}{2744}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a64}{2745}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a65}{2746}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a66}{2747}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a67}{2748}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a68}{2749}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a69}{274A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a7}{271E}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a70}{274B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a71}{25CF}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a72}{274D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a73}{25A0}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a74}{274F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a75}{2751}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a76}{25B2}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a77}{25BC}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a78}{25C6}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a79}{2756}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a8}{271F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a81}{25D7}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a82}{2758}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a83}{2759}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a84}{275A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a85}{276F}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a86}{2771}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a87}{2772}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a88}{2773}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a89}{2768}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a9}{2720}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a90}{2769}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a91}{276C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a92}{276D}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a93}{276A}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a94}{276B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a95}{2774}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a96}{2775}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a97}{275B}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a98}{275C}
-\pdfglyphtounicode{tfm:zpzdr-reversed/a99}{275D}
-\pdfglyphtounicode{thabengali}{09A5}
-\pdfglyphtounicode{thadeva}{0925}
-\pdfglyphtounicode{thagujarati}{0AA5}
-\pdfglyphtounicode{thagurmukhi}{0A25}
-\pdfglyphtounicode{thalarabic}{0630}
-\pdfglyphtounicode{thalfinalarabic}{FEAC}
-\pdfglyphtounicode{thanthakhatlowleftthai}{F898}
-\pdfglyphtounicode{thanthakhatlowrightthai}{F897}
-\pdfglyphtounicode{thanthakhatthai}{0E4C}
-\pdfglyphtounicode{thanthakhatupperleftthai}{F896}
-\pdfglyphtounicode{theharabic}{062B}
-\pdfglyphtounicode{thehfinalarabic}{FE9A}
-\pdfglyphtounicode{thehinitialarabic}{FE9B}
-\pdfglyphtounicode{thehmedialarabic}{FE9C}
-\pdfglyphtounicode{thereexists}{2203}
-\pdfglyphtounicode{therefore}{2234}
-\pdfglyphtounicode{theta}{03B8}
-\pdfglyphtounicode{theta1}{03D1}
-\pdfglyphtounicode{thetasymbolgreek}{03D1}
-\pdfglyphtounicode{thieuthacirclekorean}{3279}
-\pdfglyphtounicode{thieuthaparenkorean}{3219}
-\pdfglyphtounicode{thieuthcirclekorean}{326B}
-\pdfglyphtounicode{thieuthkorean}{314C}
-\pdfglyphtounicode{thieuthparenkorean}{320B}
-\pdfglyphtounicode{thirteencircle}{246C}
-\pdfglyphtounicode{thirteenparen}{2480}
-\pdfglyphtounicode{thirteenperiod}{2494}
-\pdfglyphtounicode{thonangmonthothai}{0E11}
-\pdfglyphtounicode{thook}{01AD}
-\pdfglyphtounicode{thophuthaothai}{0E12}
-\pdfglyphtounicode{thorn}{00FE}
-\pdfglyphtounicode{thothahanthai}{0E17}
-\pdfglyphtounicode{thothanthai}{0E10}
-\pdfglyphtounicode{thothongthai}{0E18}
-\pdfglyphtounicode{thothungthai}{0E16}
-\pdfglyphtounicode{thousandcyrillic}{0482}
-\pdfglyphtounicode{thousandsseparatorarabic}{066C}
-\pdfglyphtounicode{thousandsseparatorpersian}{066C}
-\pdfglyphtounicode{three}{0033}
-\pdfglyphtounicode{threearabic}{0663}
-\pdfglyphtounicode{threebengali}{09E9}
-\pdfglyphtounicode{threecircle}{2462}
-\pdfglyphtounicode{threecircleinversesansserif}{278C}
-\pdfglyphtounicode{threedeva}{0969}
-\pdfglyphtounicode{threeeighths}{215C}
-\pdfglyphtounicode{threegujarati}{0AE9}
-\pdfglyphtounicode{threegurmukhi}{0A69}
-\pdfglyphtounicode{threehackarabic}{0663}
-\pdfglyphtounicode{threehangzhou}{3023}
-\pdfglyphtounicode{threeideographicparen}{3222}
-\pdfglyphtounicode{threeinferior}{2083}
-\pdfglyphtounicode{threemonospace}{FF13}
-\pdfglyphtounicode{threenumeratorbengali}{09F6}
-\pdfglyphtounicode{threeoldstyle}{0033}
-\pdfglyphtounicode{threeparen}{2476}
-\pdfglyphtounicode{threeperiod}{248A}
-\pdfglyphtounicode{threepersian}{06F3}
-\pdfglyphtounicode{threequarters}{00BE}
-\pdfglyphtounicode{threequartersemdash}{F6DE}
-\pdfglyphtounicode{threeroman}{2172}
-\pdfglyphtounicode{threesuperior}{00B3}
-\pdfglyphtounicode{threethai}{0E53}
-\pdfglyphtounicode{thzsquare}{3394}
-\pdfglyphtounicode{tihiragana}{3061}
-\pdfglyphtounicode{tikatakana}{30C1}
-\pdfglyphtounicode{tikatakanahalfwidth}{FF81}
-\pdfglyphtounicode{tikeutacirclekorean}{3270}
-\pdfglyphtounicode{tikeutaparenkorean}{3210}
-\pdfglyphtounicode{tikeutcirclekorean}{3262}
-\pdfglyphtounicode{tikeutkorean}{3137}
-\pdfglyphtounicode{tikeutparenkorean}{3202}
-\pdfglyphtounicode{tilde}{02DC}
-\pdfglyphtounicode{tildebelowcmb}{0330}
-\pdfglyphtounicode{tildecmb}{0303}
-\pdfglyphtounicode{tildecomb}{0303}
-\pdfglyphtounicode{tildedoublecmb}{0360}
-\pdfglyphtounicode{tildeoperator}{223C}
-\pdfglyphtounicode{tildeoverlaycmb}{0334}
-\pdfglyphtounicode{tildeverticalcmb}{033E}
-\pdfglyphtounicode{timescircle}{2297}
-\pdfglyphtounicode{tipehahebrew}{0596}
-\pdfglyphtounicode{tipehalefthebrew}{0596}
-\pdfglyphtounicode{tippigurmukhi}{0A70}
-\pdfglyphtounicode{titlocyrilliccmb}{0483}
-\pdfglyphtounicode{tiwnarmenian}{057F}
-\pdfglyphtounicode{tlinebelow}{1E6F}
-\pdfglyphtounicode{tmonospace}{FF54}
-\pdfglyphtounicode{toarmenian}{0569}
-\pdfglyphtounicode{tohiragana}{3068}
-\pdfglyphtounicode{tokatakana}{30C8}
-\pdfglyphtounicode{tokatakanahalfwidth}{FF84}
-\pdfglyphtounicode{tonebarextrahighmod}{02E5}
-\pdfglyphtounicode{tonebarextralowmod}{02E9}
-\pdfglyphtounicode{tonebarhighmod}{02E6}
-\pdfglyphtounicode{tonebarlowmod}{02E8}
-\pdfglyphtounicode{tonebarmidmod}{02E7}
-\pdfglyphtounicode{tonefive}{01BD}
-\pdfglyphtounicode{tonesix}{0185}
-\pdfglyphtounicode{tonetwo}{01A8}
-\pdfglyphtounicode{tonos}{0384}
-\pdfglyphtounicode{tonsquare}{3327}
-\pdfglyphtounicode{topatakthai}{0E0F}
-\pdfglyphtounicode{tortoiseshellbracketleft}{3014}
-\pdfglyphtounicode{tortoiseshellbracketleftsmall}{FE5D}
-\pdfglyphtounicode{tortoiseshellbracketleftvertical}{FE39}
-\pdfglyphtounicode{tortoiseshellbracketright}{3015}
-\pdfglyphtounicode{tortoiseshellbracketrightsmall}{FE5E}
-\pdfglyphtounicode{tortoiseshellbracketrightvertical}{FE3A}
-\pdfglyphtounicode{totaothai}{0E15}
-\pdfglyphtounicode{tpalatalhook}{01AB}
-\pdfglyphtounicode{tparen}{24AF}
-\pdfglyphtounicode{trademark}{2122}
-\pdfglyphtounicode{trademarksans}{2122}
-\pdfglyphtounicode{trademarkserif}{2122}
-\pdfglyphtounicode{tretroflexhook}{0288}
-\pdfglyphtounicode{triagdn}{25BC}
-\pdfglyphtounicode{triaglf}{25C4}
-\pdfglyphtounicode{triagrt}{25BA}
-\pdfglyphtounicode{triagup}{25B2}
-\pdfglyphtounicode{triangle}{25B3}
-\pdfglyphtounicode{triangledownsld}{25BC}
-\pdfglyphtounicode{triangleinv}{25BD}
-\pdfglyphtounicode{triangleleft}{25C1}
-\pdfglyphtounicode{triangleleftequal}{22B4}
-\pdfglyphtounicode{triangleleftsld}{25C0}
-\pdfglyphtounicode{triangleright}{25B7}
-\pdfglyphtounicode{trianglerightequal}{22B5}
-\pdfglyphtounicode{trianglerightsld}{25B6}
-\pdfglyphtounicode{trianglesolid}{25B2}
-\pdfglyphtounicode{ts}{02A6}
-\pdfglyphtounicode{tsadi}{05E6}
-\pdfglyphtounicode{tsadidagesh}{FB46}
-\pdfglyphtounicode{tsadidageshhebrew}{FB46}
-\pdfglyphtounicode{tsadihebrew}{05E6}
-\pdfglyphtounicode{tsecyrillic}{0446}
-\pdfglyphtounicode{tsere}{05B5}
-\pdfglyphtounicode{tsere12}{05B5}
-\pdfglyphtounicode{tsere1e}{05B5}
-\pdfglyphtounicode{tsere2b}{05B5}
-\pdfglyphtounicode{tserehebrew}{05B5}
-\pdfglyphtounicode{tserenarrowhebrew}{05B5}
-\pdfglyphtounicode{tserequarterhebrew}{05B5}
-\pdfglyphtounicode{tserewidehebrew}{05B5}
-\pdfglyphtounicode{tshecyrillic}{045B}
-\pdfglyphtounicode{tsuperior}{0074}
-\pdfglyphtounicode{ttabengali}{099F}
-\pdfglyphtounicode{ttadeva}{091F}
-\pdfglyphtounicode{ttagujarati}{0A9F}
-\pdfglyphtounicode{ttagurmukhi}{0A1F}
-\pdfglyphtounicode{tteharabic}{0679}
-\pdfglyphtounicode{ttehfinalarabic}{FB67}
-\pdfglyphtounicode{ttehinitialarabic}{FB68}
-\pdfglyphtounicode{ttehmedialarabic}{FB69}
-\pdfglyphtounicode{tthabengali}{09A0}
-\pdfglyphtounicode{tthadeva}{0920}
-\pdfglyphtounicode{tthagujarati}{0AA0}
-\pdfglyphtounicode{tthagurmukhi}{0A20}
-\pdfglyphtounicode{tturned}{0287}
-\pdfglyphtounicode{tuhiragana}{3064}
-\pdfglyphtounicode{tukatakana}{30C4}
-\pdfglyphtounicode{tukatakanahalfwidth}{FF82}
-\pdfglyphtounicode{turnstileleft}{22A2}
-\pdfglyphtounicode{turnstileright}{22A3}
-\pdfglyphtounicode{tusmallhiragana}{3063}
-\pdfglyphtounicode{tusmallkatakana}{30C3}
-\pdfglyphtounicode{tusmallkatakanahalfwidth}{FF6F}
-\pdfglyphtounicode{twelvecircle}{246B}
-\pdfglyphtounicode{twelveparen}{247F}
-\pdfglyphtounicode{twelveperiod}{2493}
-\pdfglyphtounicode{twelveroman}{217B}
-\pdfglyphtounicode{twentycircle}{2473}
-\pdfglyphtounicode{twentyhangzhou}{5344}
-\pdfglyphtounicode{twentyparen}{2487}
-\pdfglyphtounicode{twentyperiod}{249B}
-\pdfglyphtounicode{two}{0032}
-\pdfglyphtounicode{twoarabic}{0662}
-\pdfglyphtounicode{twobengali}{09E8}
-\pdfglyphtounicode{twocircle}{2461}
-\pdfglyphtounicode{twocircleinversesansserif}{278B}
-\pdfglyphtounicode{twodeva}{0968}
-\pdfglyphtounicode{twodotenleader}{2025}
-\pdfglyphtounicode{twodotleader}{2025}
-\pdfglyphtounicode{twodotleadervertical}{FE30}
-\pdfglyphtounicode{twogujarati}{0AE8}
-\pdfglyphtounicode{twogurmukhi}{0A68}
-\pdfglyphtounicode{twohackarabic}{0662}
-\pdfglyphtounicode{twohangzhou}{3022}
-\pdfglyphtounicode{twoideographicparen}{3221}
-\pdfglyphtounicode{twoinferior}{2082}
-\pdfglyphtounicode{twomonospace}{FF12}
-\pdfglyphtounicode{twonumeratorbengali}{09F5}
-\pdfglyphtounicode{twooldstyle}{0032}
-\pdfglyphtounicode{twoparen}{2475}
-\pdfglyphtounicode{twoperiod}{2489}
-\pdfglyphtounicode{twopersian}{06F2}
-\pdfglyphtounicode{tworoman}{2171}
-\pdfglyphtounicode{twostroke}{01BB}
-\pdfglyphtounicode{twosuperior}{00B2}
-\pdfglyphtounicode{twothai}{0E52}
-\pdfglyphtounicode{twothirds}{2154}
-\pdfglyphtounicode{u}{0075}
-\pdfglyphtounicode{uacute}{00FA}
-\pdfglyphtounicode{ubar}{0289}
-\pdfglyphtounicode{ubengali}{0989}
-\pdfglyphtounicode{ubopomofo}{3128}
-\pdfglyphtounicode{ubreve}{016D}
-\pdfglyphtounicode{ucaron}{01D4}
-\pdfglyphtounicode{ucircle}{24E4}
-\pdfglyphtounicode{ucircumflex}{00FB}
-\pdfglyphtounicode{ucircumflexbelow}{1E77}
-\pdfglyphtounicode{ucyrillic}{0443}
-\pdfglyphtounicode{udattadeva}{0951}
-\pdfglyphtounicode{udblacute}{0171}
-\pdfglyphtounicode{udblgrave}{0215}
-\pdfglyphtounicode{udeva}{0909}
-\pdfglyphtounicode{udieresis}{00FC}
-\pdfglyphtounicode{udieresisacute}{01D8}
-\pdfglyphtounicode{udieresisbelow}{1E73}
-\pdfglyphtounicode{udieresiscaron}{01DA}
-\pdfglyphtounicode{udieresiscyrillic}{04F1}
-\pdfglyphtounicode{udieresisgrave}{01DC}
-\pdfglyphtounicode{udieresismacron}{01D6}
-\pdfglyphtounicode{udotbelow}{1EE5}
-\pdfglyphtounicode{ugrave}{00F9}
-\pdfglyphtounicode{ugujarati}{0A89}
-\pdfglyphtounicode{ugurmukhi}{0A09}
-\pdfglyphtounicode{uhiragana}{3046}
-\pdfglyphtounicode{uhookabove}{1EE7}
-\pdfglyphtounicode{uhorn}{01B0}
-\pdfglyphtounicode{uhornacute}{1EE9}
-\pdfglyphtounicode{uhorndotbelow}{1EF1}
-\pdfglyphtounicode{uhorngrave}{1EEB}
-\pdfglyphtounicode{uhornhookabove}{1EED}
-\pdfglyphtounicode{uhorntilde}{1EEF}
-\pdfglyphtounicode{uhungarumlaut}{0171}
-\pdfglyphtounicode{uhungarumlautcyrillic}{04F3}
-\pdfglyphtounicode{uinvertedbreve}{0217}
-\pdfglyphtounicode{ukatakana}{30A6}
-\pdfglyphtounicode{ukatakanahalfwidth}{FF73}
-\pdfglyphtounicode{ukcyrillic}{0479}
-\pdfglyphtounicode{ukorean}{315C}
-\pdfglyphtounicode{umacron}{016B}
-\pdfglyphtounicode{umacroncyrillic}{04EF}
-\pdfglyphtounicode{umacrondieresis}{1E7B}
-\pdfglyphtounicode{umatragurmukhi}{0A41}
-\pdfglyphtounicode{umonospace}{FF55}
-\pdfglyphtounicode{underscore}{005F}
-\pdfglyphtounicode{underscoredbl}{2017}
-\pdfglyphtounicode{underscoremonospace}{FF3F}
-\pdfglyphtounicode{underscorevertical}{FE33}
-\pdfglyphtounicode{underscorewavy}{FE4F}
-\pdfglyphtounicode{union}{222A}
-\pdfglyphtounicode{uniondbl}{22D3}
-\pdfglyphtounicode{unionmulti}{228E}
-\pdfglyphtounicode{unionsq}{2294}
-\pdfglyphtounicode{universal}{2200}
-\pdfglyphtounicode{uogonek}{0173}
-\pdfglyphtounicode{uparen}{24B0}
-\pdfglyphtounicode{upblock}{2580}
-\pdfglyphtounicode{upperdothebrew}{05C4}
-\pdfglyphtounicode{uprise}{22CF}
-\pdfglyphtounicode{upsilon}{03C5}
-\pdfglyphtounicode{upsilondieresis}{03CB}
-\pdfglyphtounicode{upsilondieresistonos}{03B0}
-\pdfglyphtounicode{upsilonlatin}{028A}
-\pdfglyphtounicode{upsilontonos}{03CD}
-\pdfglyphtounicode{upslope}{29F8}
-\pdfglyphtounicode{uptackbelowcmb}{031D}
-\pdfglyphtounicode{uptackmod}{02D4}
-\pdfglyphtounicode{uragurmukhi}{0A73}
-\pdfglyphtounicode{uring}{016F}
-\pdfglyphtounicode{ushortcyrillic}{045E}
-\pdfglyphtounicode{usmallhiragana}{3045}
-\pdfglyphtounicode{usmallkatakana}{30A5}
-\pdfglyphtounicode{usmallkatakanahalfwidth}{FF69}
-\pdfglyphtounicode{ustraightcyrillic}{04AF}
-\pdfglyphtounicode{ustraightstrokecyrillic}{04B1}
-\pdfglyphtounicode{utilde}{0169}
-\pdfglyphtounicode{utildeacute}{1E79}
-\pdfglyphtounicode{utildebelow}{1E75}
-\pdfglyphtounicode{uubengali}{098A}
-\pdfglyphtounicode{uudeva}{090A}
-\pdfglyphtounicode{uugujarati}{0A8A}
-\pdfglyphtounicode{uugurmukhi}{0A0A}
-\pdfglyphtounicode{uumatragurmukhi}{0A42}
-\pdfglyphtounicode{uuvowelsignbengali}{09C2}
-\pdfglyphtounicode{uuvowelsigndeva}{0942}
-\pdfglyphtounicode{uuvowelsigngujarati}{0AC2}
-\pdfglyphtounicode{uvowelsignbengali}{09C1}
-\pdfglyphtounicode{uvowelsigndeva}{0941}
-\pdfglyphtounicode{uvowelsigngujarati}{0AC1}
-\pdfglyphtounicode{v}{0076}
-\pdfglyphtounicode{vadeva}{0935}
-\pdfglyphtounicode{vagujarati}{0AB5}
-\pdfglyphtounicode{vagurmukhi}{0A35}
-\pdfglyphtounicode{vakatakana}{30F7}
-\pdfglyphtounicode{vav}{05D5}
-\pdfglyphtounicode{vavdagesh}{FB35}
-\pdfglyphtounicode{vavdagesh65}{FB35}
-\pdfglyphtounicode{vavdageshhebrew}{FB35}
-\pdfglyphtounicode{vavhebrew}{05D5}
-\pdfglyphtounicode{vavholam}{FB4B}
-\pdfglyphtounicode{vavholamhebrew}{FB4B}
-\pdfglyphtounicode{vavvavhebrew}{05F0}
-\pdfglyphtounicode{vavyodhebrew}{05F1}
-\pdfglyphtounicode{vcircle}{24E5}
-\pdfglyphtounicode{vdotbelow}{1E7F}
-\pdfglyphtounicode{vector}{20D7}
-\pdfglyphtounicode{vecyrillic}{0432}
-\pdfglyphtounicode{veharabic}{06A4}
-\pdfglyphtounicode{vehfinalarabic}{FB6B}
-\pdfglyphtounicode{vehinitialarabic}{FB6C}
-\pdfglyphtounicode{vehmedialarabic}{FB6D}
-\pdfglyphtounicode{vekatakana}{30F9}
-\pdfglyphtounicode{venus}{2640}
-\pdfglyphtounicode{verticalbar}{007C}
-\pdfglyphtounicode{verticallineabovecmb}{030D}
-\pdfglyphtounicode{verticallinebelowcmb}{0329}
-\pdfglyphtounicode{verticallinelowmod}{02CC}
-\pdfglyphtounicode{verticallinemod}{02C8}
-\pdfglyphtounicode{vewarmenian}{057E}
-\pdfglyphtounicode{vhook}{028B}
-\pdfglyphtounicode{vikatakana}{30F8}
-\pdfglyphtounicode{viramabengali}{09CD}
-\pdfglyphtounicode{viramadeva}{094D}
-\pdfglyphtounicode{viramagujarati}{0ACD}
-\pdfglyphtounicode{visargabengali}{0983}
-\pdfglyphtounicode{visargadeva}{0903}
-\pdfglyphtounicode{visargagujarati}{0A83}
-\pdfglyphtounicode{visiblespace}{2423}
-\pdfglyphtounicode{visualspace}{2423}
-\pdfglyphtounicode{vmonospace}{FF56}
-\pdfglyphtounicode{voarmenian}{0578}
-\pdfglyphtounicode{voicediterationhiragana}{309E}
-\pdfglyphtounicode{voicediterationkatakana}{30FE}
-\pdfglyphtounicode{voicedmarkkana}{309B}
-\pdfglyphtounicode{voicedmarkkanahalfwidth}{FF9E}
-\pdfglyphtounicode{vokatakana}{30FA}
-\pdfglyphtounicode{vparen}{24B1}
-\pdfglyphtounicode{vtilde}{1E7D}
-\pdfglyphtounicode{vturned}{028C}
-\pdfglyphtounicode{vuhiragana}{3094}
-\pdfglyphtounicode{vukatakana}{30F4}
-\pdfglyphtounicode{w}{0077}
-\pdfglyphtounicode{wacute}{1E83}
-\pdfglyphtounicode{waekorean}{3159}
-\pdfglyphtounicode{wahiragana}{308F}
-\pdfglyphtounicode{wakatakana}{30EF}
-\pdfglyphtounicode{wakatakanahalfwidth}{FF9C}
-\pdfglyphtounicode{wakorean}{3158}
-\pdfglyphtounicode{wasmallhiragana}{308E}
-\pdfglyphtounicode{wasmallkatakana}{30EE}
-\pdfglyphtounicode{wattosquare}{3357}
-\pdfglyphtounicode{wavedash}{301C}
-\pdfglyphtounicode{wavyunderscorevertical}{FE34}
-\pdfglyphtounicode{wawarabic}{0648}
-\pdfglyphtounicode{wawfinalarabic}{FEEE}
-\pdfglyphtounicode{wawhamzaabovearabic}{0624}
-\pdfglyphtounicode{wawhamzaabovefinalarabic}{FE86}
-\pdfglyphtounicode{wbsquare}{33DD}
-\pdfglyphtounicode{wcircle}{24E6}
-\pdfglyphtounicode{wcircumflex}{0175}
-\pdfglyphtounicode{wdieresis}{1E85}
-\pdfglyphtounicode{wdotaccent}{1E87}
-\pdfglyphtounicode{wdotbelow}{1E89}
-\pdfglyphtounicode{wehiragana}{3091}
-\pdfglyphtounicode{weierstrass}{2118}
-\pdfglyphtounicode{wekatakana}{30F1}
-\pdfglyphtounicode{wekorean}{315E}
-\pdfglyphtounicode{weokorean}{315D}
-\pdfglyphtounicode{wgrave}{1E81}
-\pdfglyphtounicode{whitebullet}{25E6}
-\pdfglyphtounicode{whitecircle}{25CB}
-\pdfglyphtounicode{whitecircleinverse}{25D9}
-\pdfglyphtounicode{whitecornerbracketleft}{300E}
-\pdfglyphtounicode{whitecornerbracketleftvertical}{FE43}
-\pdfglyphtounicode{whitecornerbracketright}{300F}
-\pdfglyphtounicode{whitecornerbracketrightvertical}{FE44}
-\pdfglyphtounicode{whitediamond}{25C7}
-\pdfglyphtounicode{whitediamondcontainingblacksmalldiamond}{25C8}
-\pdfglyphtounicode{whitedownpointingsmalltriangle}{25BF}
-\pdfglyphtounicode{whitedownpointingtriangle}{25BD}
-\pdfglyphtounicode{whiteleftpointingsmalltriangle}{25C3}
-\pdfglyphtounicode{whiteleftpointingtriangle}{25C1}
-\pdfglyphtounicode{whitelenticularbracketleft}{3016}
-\pdfglyphtounicode{whitelenticularbracketright}{3017}
-\pdfglyphtounicode{whiterightpointingsmalltriangle}{25B9}
-\pdfglyphtounicode{whiterightpointingtriangle}{25B7}
-\pdfglyphtounicode{whitesmallsquare}{25AB}
-\pdfglyphtounicode{whitesmilingface}{263A}
-\pdfglyphtounicode{whitesquare}{25A1}
-\pdfglyphtounicode{whitestar}{2606}
-\pdfglyphtounicode{whitetelephone}{260F}
-\pdfglyphtounicode{whitetortoiseshellbracketleft}{3018}
-\pdfglyphtounicode{whitetortoiseshellbracketright}{3019}
-\pdfglyphtounicode{whiteuppointingsmalltriangle}{25B5}
-\pdfglyphtounicode{whiteuppointingtriangle}{25B3}
-\pdfglyphtounicode{wihiragana}{3090}
-\pdfglyphtounicode{wikatakana}{30F0}
-\pdfglyphtounicode{wikorean}{315F}
-\pdfglyphtounicode{wmonospace}{FF57}
-\pdfglyphtounicode{wohiragana}{3092}
-\pdfglyphtounicode{wokatakana}{30F2}
-\pdfglyphtounicode{wokatakanahalfwidth}{FF66}
-\pdfglyphtounicode{won}{20A9}
-\pdfglyphtounicode{wonmonospace}{FFE6}
-\pdfglyphtounicode{wowaenthai}{0E27}
-\pdfglyphtounicode{wparen}{24B2}
-\pdfglyphtounicode{wreathproduct}{2240}
-\pdfglyphtounicode{wring}{1E98}
-\pdfglyphtounicode{wsuperior}{02B7}
-\pdfglyphtounicode{wturned}{028D}
-\pdfglyphtounicode{wynn}{01BF}
-\pdfglyphtounicode{x}{0078}
-\pdfglyphtounicode{xabovecmb}{033D}
-\pdfglyphtounicode{xbopomofo}{3112}
-\pdfglyphtounicode{xcircle}{24E7}
-\pdfglyphtounicode{xdieresis}{1E8D}
-\pdfglyphtounicode{xdotaccent}{1E8B}
-\pdfglyphtounicode{xeharmenian}{056D}
-\pdfglyphtounicode{xi}{03BE}
-\pdfglyphtounicode{xmonospace}{FF58}
-\pdfglyphtounicode{xparen}{24B3}
-\pdfglyphtounicode{xsuperior}{02E3}
-\pdfglyphtounicode{y}{0079}
-\pdfglyphtounicode{yaadosquare}{334E}
-\pdfglyphtounicode{yabengali}{09AF}
-\pdfglyphtounicode{yacute}{00FD}
-\pdfglyphtounicode{yadeva}{092F}
-\pdfglyphtounicode{yaekorean}{3152}
-\pdfglyphtounicode{yagujarati}{0AAF}
-\pdfglyphtounicode{yagurmukhi}{0A2F}
-\pdfglyphtounicode{yahiragana}{3084}
-\pdfglyphtounicode{yakatakana}{30E4}
-\pdfglyphtounicode{yakatakanahalfwidth}{FF94}
-\pdfglyphtounicode{yakorean}{3151}
-\pdfglyphtounicode{yamakkanthai}{0E4E}
-\pdfglyphtounicode{yasmallhiragana}{3083}
-\pdfglyphtounicode{yasmallkatakana}{30E3}
-\pdfglyphtounicode{yasmallkatakanahalfwidth}{FF6C}
-\pdfglyphtounicode{yatcyrillic}{0463}
-\pdfglyphtounicode{ycircle}{24E8}
-\pdfglyphtounicode{ycircumflex}{0177}
-\pdfglyphtounicode{ydieresis}{00FF}
-\pdfglyphtounicode{ydotaccent}{1E8F}
-\pdfglyphtounicode{ydotbelow}{1EF5}
-\pdfglyphtounicode{yeharabic}{064A}
-\pdfglyphtounicode{yehbarreearabic}{06D2}
-\pdfglyphtounicode{yehbarreefinalarabic}{FBAF}
-\pdfglyphtounicode{yehfinalarabic}{FEF2}
-\pdfglyphtounicode{yehhamzaabovearabic}{0626}
-\pdfglyphtounicode{yehhamzaabovefinalarabic}{FE8A}
-\pdfglyphtounicode{yehhamzaaboveinitialarabic}{FE8B}
-\pdfglyphtounicode{yehhamzaabovemedialarabic}{FE8C}
-\pdfglyphtounicode{yehinitialarabic}{FEF3}
-\pdfglyphtounicode{yehmedialarabic}{FEF4}
-\pdfglyphtounicode{yehmeeminitialarabic}{FCDD}
-\pdfglyphtounicode{yehmeemisolatedarabic}{FC58}
-\pdfglyphtounicode{yehnoonfinalarabic}{FC94}
-\pdfglyphtounicode{yehthreedotsbelowarabic}{06D1}
-\pdfglyphtounicode{yekorean}{3156}
-\pdfglyphtounicode{yen}{00A5}
-\pdfglyphtounicode{yenmonospace}{FFE5}
-\pdfglyphtounicode{yeokorean}{3155}
-\pdfglyphtounicode{yeorinhieuhkorean}{3186}
-\pdfglyphtounicode{yerahbenyomohebrew}{05AA}
-\pdfglyphtounicode{yerahbenyomolefthebrew}{05AA}
-\pdfglyphtounicode{yericyrillic}{044B}
-\pdfglyphtounicode{yerudieresiscyrillic}{04F9}
-\pdfglyphtounicode{yesieungkorean}{3181}
-\pdfglyphtounicode{yesieungpansioskorean}{3183}
-\pdfglyphtounicode{yesieungsioskorean}{3182}
-\pdfglyphtounicode{yetivhebrew}{059A}
-\pdfglyphtounicode{ygrave}{1EF3}
-\pdfglyphtounicode{yhook}{01B4}
-\pdfglyphtounicode{yhookabove}{1EF7}
-\pdfglyphtounicode{yiarmenian}{0575}
-\pdfglyphtounicode{yicyrillic}{0457}
-\pdfglyphtounicode{yikorean}{3162}
-\pdfglyphtounicode{yinyang}{262F}
-\pdfglyphtounicode{yiwnarmenian}{0582}
-\pdfglyphtounicode{ymonospace}{FF59}
-\pdfglyphtounicode{yod}{05D9}
-\pdfglyphtounicode{yoddagesh}{FB39}
-\pdfglyphtounicode{yoddageshhebrew}{FB39}
-\pdfglyphtounicode{yodhebrew}{05D9}
-\pdfglyphtounicode{yodyodhebrew}{05F2}
-\pdfglyphtounicode{yodyodpatahhebrew}{FB1F}
-\pdfglyphtounicode{yohiragana}{3088}
-\pdfglyphtounicode{yoikorean}{3189}
-\pdfglyphtounicode{yokatakana}{30E8}
-\pdfglyphtounicode{yokatakanahalfwidth}{FF96}
-\pdfglyphtounicode{yokorean}{315B}
-\pdfglyphtounicode{yosmallhiragana}{3087}
-\pdfglyphtounicode{yosmallkatakana}{30E7}
-\pdfglyphtounicode{yosmallkatakanahalfwidth}{FF6E}
-\pdfglyphtounicode{yotgreek}{03F3}
-\pdfglyphtounicode{yoyaekorean}{3188}
-\pdfglyphtounicode{yoyakorean}{3187}
-\pdfglyphtounicode{yoyakthai}{0E22}
-\pdfglyphtounicode{yoyingthai}{0E0D}
-\pdfglyphtounicode{yparen}{24B4}
-\pdfglyphtounicode{ypogegrammeni}{037A}
-\pdfglyphtounicode{ypogegrammenigreekcmb}{0345}
-\pdfglyphtounicode{yr}{01A6}
-\pdfglyphtounicode{yring}{1E99}
-\pdfglyphtounicode{ysuperior}{02B8}
-\pdfglyphtounicode{ytilde}{1EF9}
-\pdfglyphtounicode{yturned}{028E}
-\pdfglyphtounicode{yuhiragana}{3086}
-\pdfglyphtounicode{yuikorean}{318C}
-\pdfglyphtounicode{yukatakana}{30E6}
-\pdfglyphtounicode{yukatakanahalfwidth}{FF95}
-\pdfglyphtounicode{yukorean}{3160}
-\pdfglyphtounicode{yusbigcyrillic}{046B}
-\pdfglyphtounicode{yusbigiotifiedcyrillic}{046D}
-\pdfglyphtounicode{yuslittlecyrillic}{0467}
-\pdfglyphtounicode{yuslittleiotifiedcyrillic}{0469}
-\pdfglyphtounicode{yusmallhiragana}{3085}
-\pdfglyphtounicode{yusmallkatakana}{30E5}
-\pdfglyphtounicode{yusmallkatakanahalfwidth}{FF6D}
-\pdfglyphtounicode{yuyekorean}{318B}
-\pdfglyphtounicode{yuyeokorean}{318A}
-\pdfglyphtounicode{yyabengali}{09DF}
-\pdfglyphtounicode{yyadeva}{095F}
-\pdfglyphtounicode{z}{007A}
-\pdfglyphtounicode{zaarmenian}{0566}
-\pdfglyphtounicode{zacute}{017A}
-\pdfglyphtounicode{zadeva}{095B}
-\pdfglyphtounicode{zagurmukhi}{0A5B}
-\pdfglyphtounicode{zaharabic}{0638}
-\pdfglyphtounicode{zahfinalarabic}{FEC6}
-\pdfglyphtounicode{zahinitialarabic}{FEC7}
-\pdfglyphtounicode{zahiragana}{3056}
-\pdfglyphtounicode{zahmedialarabic}{FEC8}
-\pdfglyphtounicode{zainarabic}{0632}
-\pdfglyphtounicode{zainfinalarabic}{FEB0}
-\pdfglyphtounicode{zakatakana}{30B6}
-\pdfglyphtounicode{zaqefgadolhebrew}{0595}
-\pdfglyphtounicode{zaqefqatanhebrew}{0594}
-\pdfglyphtounicode{zarqahebrew}{0598}
-\pdfglyphtounicode{zayin}{05D6}
-\pdfglyphtounicode{zayindagesh}{FB36}
-\pdfglyphtounicode{zayindageshhebrew}{FB36}
-\pdfglyphtounicode{zayinhebrew}{05D6}
-\pdfglyphtounicode{zbopomofo}{3117}
-\pdfglyphtounicode{zcaron}{017E}
-\pdfglyphtounicode{zcircle}{24E9}
-\pdfglyphtounicode{zcircumflex}{1E91}
-\pdfglyphtounicode{zcurl}{0291}
-\pdfglyphtounicode{zdot}{017C}
-\pdfglyphtounicode{zdotaccent}{017C}
-\pdfglyphtounicode{zdotbelow}{1E93}
-\pdfglyphtounicode{zecyrillic}{0437}
-\pdfglyphtounicode{zedescendercyrillic}{0499}
-\pdfglyphtounicode{zedieresiscyrillic}{04DF}
-\pdfglyphtounicode{zehiragana}{305C}
-\pdfglyphtounicode{zekatakana}{30BC}
-\pdfglyphtounicode{zero}{0030}
-\pdfglyphtounicode{zeroarabic}{0660}
-\pdfglyphtounicode{zerobengali}{09E6}
-\pdfglyphtounicode{zerodeva}{0966}
-\pdfglyphtounicode{zerogujarati}{0AE6}
-\pdfglyphtounicode{zerogurmukhi}{0A66}
-\pdfglyphtounicode{zerohackarabic}{0660}
-\pdfglyphtounicode{zeroinferior}{2080}
-\pdfglyphtounicode{zeromonospace}{FF10}
-\pdfglyphtounicode{zerooldstyle}{0030}
-\pdfglyphtounicode{zeropersian}{06F0}
-\pdfglyphtounicode{zerosuperior}{2070}
-\pdfglyphtounicode{zerothai}{0E50}
-\pdfglyphtounicode{zerowidthjoiner}{FEFF}
-\pdfglyphtounicode{zerowidthnonjoiner}{200C}
-\pdfglyphtounicode{zerowidthspace}{200B}
-\pdfglyphtounicode{zeta}{03B6}
-\pdfglyphtounicode{zhbopomofo}{3113}
-\pdfglyphtounicode{zhearmenian}{056A}
-\pdfglyphtounicode{zhebrevecyrillic}{04C2}
-\pdfglyphtounicode{zhecyrillic}{0436}
-\pdfglyphtounicode{zhedescendercyrillic}{0497}
-\pdfglyphtounicode{zhedieresiscyrillic}{04DD}
-\pdfglyphtounicode{zihiragana}{3058}
-\pdfglyphtounicode{zikatakana}{30B8}
-\pdfglyphtounicode{zinorhebrew}{05AE}
-\pdfglyphtounicode{zlinebelow}{1E95}
-\pdfglyphtounicode{zmonospace}{FF5A}
-\pdfglyphtounicode{zohiragana}{305E}
-\pdfglyphtounicode{zokatakana}{30BE}
-\pdfglyphtounicode{zparen}{24B5}
-\pdfglyphtounicode{zretroflexhook}{0290}
-\pdfglyphtounicode{zstroke}{01B6}
-\pdfglyphtounicode{zuhiragana}{305A}
-\pdfglyphtounicode{zukatakana}{30BA}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/config.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/config.h
deleted file mode 100644
index a65d3d75e7b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef LCDF_TYPETOOLS_CONFIG_H
-#define LCDF_TYPETOOLS_CONFIG_H 1
-
-#include <autoconf.h>
-
-/* Allow compilation on Windows (thanks, Fabrice Popineau). */
-#ifdef WIN32
-# ifdef __MINGW32__
-# include <winsock2.h>
-# include <windows.h>
-# else
-# include <win32lib.h>
-# endif
-#else
-# include <stddef.h>
-# define CDECL /* nothing */
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Prototype strerror if necessary. */
-#if !HAVE_STRERROR
-char *strerror(int errno);
-#endif
-
-/* Prototype strnlen if necessary. */
-#if !HAVE_DECL_STRNLEN
-size_t strnlen(const char *s, size_t maxlen);
-#endif
-
-/* Prototype good_strtod if necessary. */
-#if HAVE_BROKEN_STRTOD
-double good_strtod(const char *s, char **endptr);
-#endif
-
-#ifdef __cplusplus
-}
-/* Get rid of a possible inline macro under C++. */
-# define inline inline
-
-/* Ignore `noexcept` if compiler is too old. */
-#if __cplusplus < 201103L
-#define noexcept
-#endif
-#endif
-
-#endif /* LCDF_TYPETOOLS_CONFIG_H */
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afm.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afm.hh
deleted file mode 100644
index 5c37d1e942e..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afm.hh
+++ /dev/null
@@ -1,59 +0,0 @@
-// -*- related-file-name: "../../libefont/afm.cc" -*-
-#ifndef EFONT_AFM_HH
-#define EFONT_AFM_HH
-#include <efont/metrics.hh>
-class Slurper;
-class Filename;
-class ErrorHandler;
-namespace Efont {
-class AfmParser;
-
-struct AfmMetricsXt: public MetricsXt {
-
- Vector<PermString> opening_comments;
- PermString notice;
- PermString encoding_scheme;
-
- PermString kind() const { return "AFM"; }
-
-};
-
-class AfmReader { public:
-
- static Metrics *read(const Filename &, ErrorHandler *);
- static Metrics *read(Slurper &, ErrorHandler *);
-
- private:
-
- Metrics *_afm;
- AfmMetricsXt *_afm_xt;
- AfmParser &_l;
- ErrorHandler *_errh;
-
- mutable bool _composite_warned;
- mutable bool _metrics_sets_warned;
- mutable int _y_width_warned;
-
- void lwarning(const char *, ...) const;
- void lerror(const char *, ...) const;
- void composite_warning() const;
- void metrics_sets_warning() const;
- void y_width_warning() const;
- void no_match_warning(const char *context = 0) const;
-
- double &fd(int i) { return _afm->fd(i); }
- GlyphIndex find_err(PermString, const char *) const;
-
- void read_char_metric_data() const;
- void read_char_metrics() const;
- void read_kerns() const;
- void read_composites() const;
-
- bool read();
-
- AfmReader(AfmParser &, Metrics *, AfmMetricsXt *, ErrorHandler *);
-
-};
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmparse.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmparse.hh
deleted file mode 100644
index c97c4949b0c..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmparse.hh
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- related-file-name: "../../libefont/afmparse.cc" -*-
-#ifndef EFONT_AFMPARSE_HH
-#define EFONT_AFMPARSE_HH
-#include <lcdf/slurper.hh>
-#include <lcdf/permstr.hh>
-#include <stdarg.h>
-namespace Efont {
-
-class AfmParser { public:
-
- AfmParser(Slurper &);
-
- bool ok() const { return _slurper.ok(); }
- operator Landmark() const { return _slurper.landmark(); }
- Landmark landmark() const { return _slurper.landmark(); }
- unsigned lineno() const { return _slurper.lineno(); }
- const Filename &filename() const { return _slurper.filename(); }
-
- bool key_matched() const { return _fail_field >= 0; }
- int fail_field() const { return _fail_field; }
- PermString message() const { return _message; }
- void clear_message() { _message = PermString(); }
-
- PermString keyword() const;
- bool is(const char *, ...);
- bool isall(const char *, ...);
-
- inline bool next_line();
- void save_line() { _slurper.save_line(); }
- void skip_until(unsigned char);
-
- unsigned char *cur_line() const { return _pos; }
- unsigned char first() const { return _pos[0]; }
- unsigned char operator[](int i) const { return _pos[i]; }
- bool left() const { return *_pos != 0; }
-
- private:
-
- Slurper &_slurper;
- bool _save_line;
-
- unsigned char *_line;
- unsigned char *_pos;
- int _length;
-
- PermString _message;
- int _fail_field;
-
- void static_initialize();
- void trim_end();
- unsigned char *vis(const char *, va_list);
-
-};
-
-
-inline bool AfmParser::next_line()
-{
- _pos = _line = (unsigned char *)_slurper.next_line();
- _length = _slurper.cur_line_length();
- return _line != 0;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmw.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmw.hh
deleted file mode 100644
index d901b3cd3c2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/afmw.hh
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef EFONT_AFMW_HH
-#define EFONT_AFMW_HH
-#include <efont/afm.hh>
-#include <stdio.h>
-namespace Efont {
-
-class AfmWriter { public:
-
- static void write(Metrics *, FILE *);
-
- private:
-
- Metrics *_m;
- AfmMetricsXt *_afm_xt;
- FILE *_f;
-
- void write_prologue() const;
- void write_char_metric_data(GlyphIndex, int) const;
- void write_kerns() const;
- void write();
-
- double fd(int i) const { return _m->fd(i); }
-
- AfmWriter(Metrics *, FILE *);
-
-};
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/amfm.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/amfm.hh
deleted file mode 100644
index 55cf1909546..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/amfm.hh
+++ /dev/null
@@ -1,153 +0,0 @@
-// -*- related-file-name: "../../libefont/amfm.cc" -*-
-#ifndef EFONT_AMFM_HH
-#define EFONT_AMFM_HH
-#include <efont/metrics.hh>
-#include <efont/t1mm.hh>
-#include <lcdf/hashmap.hh>
-class Slurper;
-class Filename;
-class ErrorHandler;
-namespace Efont {
-class AfmParser;
-class MetricsFinder;
-class Type1Charstring;
-
-
-struct AmfmMaster {
-
- PermString font_name;
- PermString family;
- PermString full_name;
- PermString version;
- Vector<double> weight_vector;
-
- bool loaded;
- Metrics *afm;
-
- AmfmMaster() : loaded(0), afm(0) { }
-
-};
-
-
-struct AmfmPrimaryFont {
-
- Vector<int> design_vector;
- Vector<PermString> labels;
- PermString name;
- AmfmPrimaryFont *next;
-
-};
-
-
-class AmfmMetrics { public:
-
- AmfmMetrics(MetricsFinder *);
- ~AmfmMetrics();
-
- void use() { _uses++; }
- void unuse() { if (--_uses == 0) delete this; }
-
- bool sanity(ErrorHandler *) const;
-
- double fd(int i) const { return _fdv[i]; }
- double &fd(int i) { return _fdv[i]; }
-
- PermString font_name() const { return _font_name; }
- PermString directory() const { return _directory; }
-
- int naxes() const { return _naxes; }
- int nmasters() const { return _nmasters; }
- MultipleMasterSpace *mmspace() const { return _mmspace; }
-
- int primary_label_value(int, PermString) const;
-
- Metrics *interpolate(const Vector<double> &design,
- const Vector<double> &weight, ErrorHandler *);
-
- private:
-
- MetricsFinder *_finder;
- PermString _directory;
-
- Vector<double> _fdv;
-
- PermString _font_name;
- PermString _family;
- PermString _full_name;
- PermString _weight;
-
- PermString _version;
- PermString _notice;
- Vector<PermString> _opening_comments;
-
- PermString _encoding_scheme;
- Vector<double> _weight_vector;
-
- int _nmasters;
- int _naxes;
- AmfmMaster *_masters;
- MultipleMasterSpace *_mmspace;
-
- AmfmPrimaryFont *_primary_fonts;
-
- Metrics *_sanity_afm;
-
- unsigned _uses;
-
- friend class AmfmReader;
-
- AmfmMetrics(const AmfmMetrics &) { assert(0); }
- AmfmMetrics &operator=(const AmfmMetrics &) { assert(0); return *this; }
-
- AmfmPrimaryFont *find_primary_font(const Vector<double> &design) const;
-
- Metrics *master(int, ErrorHandler *);
-
-};
-
-
-class AmfmReader { public:
-
- static AmfmMetrics *read(const Filename &, MetricsFinder *, ErrorHandler*);
- static AmfmMetrics *read(Slurper &, MetricsFinder *, ErrorHandler *);
- static void add_amcp_file(Slurper &, AmfmMetrics *, ErrorHandler *);
-
- private:
-
- typedef Vector<double> NumVector;
-
- AmfmMetrics *_amfm;
- MetricsFinder *_finder;
- AfmParser &_l;
- MultipleMasterSpace *_mmspace;
- ErrorHandler *_errh;
-
- double &fd(int i) const { return _amfm->fd(i); }
- int naxes() const { return _amfm->_naxes; }
- int nmasters() const { return _amfm->_nmasters; }
-
- void check_mmspace();
-
- void lwarning(const char *, ...) const;
- void lerror(const char *, ...) const;
- void no_match_warning(const char *context = 0) const;
-
- bool read_simple_array(Vector<double> &) const;
- void read_positions() const;
- void read_normalize() const;
- void read_axis_types() const;
- void read_axis(int axis) const;
- void read_master(int master) const;
- void read_primary_fonts() const;
- void read_one_primary_font() const;
- void read_conversion_programs() const;
- bool read();
-
- void read_amcp_file();
-
- AmfmReader(AfmParser &, AmfmMetrics *, ErrorHandler *);
-
-};
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
deleted file mode 100644
index 494d93dcbfc..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/cff.hh
+++ /dev/null
@@ -1,461 +0,0 @@
-// -*- related-file-name: "../../libefont/cff.cc" -*-
-#ifndef EFONT_CFF_HH
-#define EFONT_CFF_HH
-#include <lcdf/hashmap.hh>
-#include <efont/t1cs.hh>
-class ErrorHandler;
-namespace Efont {
-class Type1Encoding;
-
-class Cff { public:
-
- class Dict;
- class IndexIterator;
- class Charset;
- class FDSelect;
- class FontParent;
- class Font;
- class CIDFont;
- class ChildFont;
-
- explicit Cff(const String& str, unsigned units_per_em,
- ErrorHandler* errh = 0);
- ~Cff();
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- const String &data_string() const { return _data_string; }
- const uint8_t *data() const { return _data; }
- int length() const { return _len; }
-
- int nfonts() const { return _name_index.size(); }
- PermString font_name(int i) const { return _name_index[i]; }
- FontParent* font(PermString = PermString(), ErrorHandler* = 0);
-
- enum { NSTANDARD_STRINGS = 391, MAX_SID = 64999 };
- int max_sid() const { return NSTANDARD_STRINGS - 1 + _strings.size(); }
- int sid(PermString);
- String sid_string(int sid) const;
- PermString sid_permstring(int sid) const;
-
- int ngsubrs() const { return _gsubrs_index.nitems(); }
- Charstring *gsubr(int i);
-
- unsigned units_per_em() const { return _units_per_em; }
-
- enum DictOperator {
- oVersion = 0, oNotice = 1, oFullName = 2, oFamilyName = 3,
- oWeight = 4, oFontBBox = 5, oBlueValues = 6, oOtherBlues = 7,
- oFamilyBlues = 8, oFamilyOtherBlues = 9, oStdHW = 10, oStdVW = 11,
- oUniqueID = 13, oXUID = 14, oCharset = 15, oEncoding = 16,
- oCharStrings = 17, oPrivate = 18, oSubrs = 19, oDefaultWidthX = 20,
- oNominalWidthX = 21,
- oCopyright = 32 + 0, oIsFixedPitch = 32 + 1, oItalicAngle = 32 + 2,
- oUnderlinePosition = 32 + 3, oUnderlineThickness = 32 + 4,
- oPaintType = 32 + 5, oCharstringType = 32 + 6, oFontMatrix = 32 + 7,
- oStrokeWidth = 32 + 8, oBlueScale = 32 + 9, oBlueShift = 32 + 10,
- oBlueFuzz = 32 + 11, oStemSnapH = 32 + 12, oStemSnapV = 32 + 13,
- oForceBold = 32 + 14, oLanguageGroup = 32 + 17,
- oExpansionFactor = 32 + 18, oInitialRandomSeed = 32 + 19,
- oSyntheticBase = 32 + 20, oPostScript = 32 + 21,
- oBaseFontName = 32 + 22, oBaseFontBlend = 32 + 23,
- oROS = 32 + 30, oCIDFontVersion = 32 + 31, oCIDFontRevision = 32 + 32,
- oCIDFontType = 32 + 33, oCIDCount = 32 + 34, oUIDBase = 32 + 35,
- oFDArray = 32 + 36, oFDSelect = 32 + 37, oFontName = 32 + 38,
- oLastOperator = oFontName
- };
-
- enum DictType {
- tNone = 0, tSID, tFontNumber, tBoolean, tNumber, tOffset, tLocalOffset,
- tArray, tArray2, tArray3, tArray4, tArray5, tArray6, tPrivateType,
- tTypeMask = 0x7F, tPrivate = 0x80, tP = tPrivate
- };
-
- static const char * const operator_names[];
- static const int operator_types[];
-
-
- class IndexIterator { public:
-
- IndexIterator() : _offset(0), _last_offset(0), _offsize(-1) { }
- IndexIterator(const uint8_t *, int, int, ErrorHandler * = 0, const char *index_name = "INDEX");
-
- int error() const { return (_offsize < 0 ? _offsize : 0); }
-
- typedef bool (IndexIterator::*unspecified_bool_type)() const;
- bool live() const { return _offset < _last_offset; }
- operator unspecified_bool_type() const {
- return live() ? &IndexIterator::live : 0;
- }
- int nitems() const;
-
- inline const uint8_t *operator*() const;
- inline const uint8_t *operator[](int) const;
- const uint8_t *index_end() const;
-
- void operator++() { _offset += _offsize; }
- void operator++(int) { ++(*this); }
-
- private:
-
- const uint8_t *_contents;
- const uint8_t *_offset;
- const uint8_t *_last_offset;
- int _offsize;
-
- inline uint32_t offset_at(const uint8_t *) const;
-
- };
-
- private:
-
- String _data_string;
- const uint8_t *_data;
- int _len;
-
- int _error;
-
- Vector<PermString> _name_index;
-
- IndexIterator _top_dict_index;
-
- IndexIterator _strings_index;
- mutable Vector<PermString> _strings;
- mutable HashMap<PermString, int> _strings_map;
-
- IndexIterator _gsubrs_index;
- Vector<Charstring*> _gsubrs_cs;
- Vector<FontParent*> _fonts;
-
- unsigned _units_per_em;
-
- int parse_header(ErrorHandler *);
-
- enum { HEADER_SIZE = 4 };
-
-};
-
-
-class Cff::Dict { public:
-
- Dict();
- Dict(Cff *, int pos, int dict_len, ErrorHandler * = 0, const char *dict_name = "DICT");
- int assign(Cff *, int pos, int dict_len, ErrorHandler * = 0, const char *dict_name = "DICT");
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- int check(bool is_private, ErrorHandler * = 0, const char *dict_name = "DICT") const;
-
- bool has(DictOperator) const;
- inline bool has_first(DictOperator) const;
- bool xvalue(DictOperator, Vector<double> &) const;
- bool xvalue(DictOperator, int *) const;
- bool xvalue(DictOperator, double *) const;
- bool value(DictOperator, Vector<double> &) const;
- bool value(DictOperator, int *) const;
- bool value(DictOperator, double *) const;
-
- void unparse(ErrorHandler *, const char *) const;
-
- private:
-
- Cff *_cff;
- int _pos;
- Vector<int> _operators;
- Vector<int> _pointers;
- Vector<double> _operands;
- int _error;
-
-};
-
-class Cff::Charset { public:
-
- Charset() : _error(-1) { }
- Charset(const Cff *, int pos, int nglyphs, int max_sid, ErrorHandler * = 0);
- void assign(const Cff *, int pos, int nglyphs, int max_sid, ErrorHandler * = 0);
-
- int error() const { return _error; }
-
- int nglyphs() const { return _sids.size(); }
- int nsids() const { return _gids.size(); }
-
- inline int gid_to_sid(int gid) const;
- inline int sid_to_gid(int sid) const;
-
- private:
-
- Vector<int> _sids;
- Vector<int> _gids;
- int _error;
-
- void assign(const int *, int, int);
- int parse(const Cff *, int pos, int nglyphs, int max_sid, ErrorHandler *);
-
-};
-
-class Cff::FDSelect { public:
-
- FDSelect() : _fds(0), _my_fds(false), _nglyphs(0), _error(-1) { }
- ~FDSelect();
- void assign(const Cff *, int pos, int nglyphs, ErrorHandler * = 0);
-
- int error() const { return _error; }
-
- int nglyphs() const { return _nglyphs; }
- inline int gid_to_fd(int gid) const;
-
- private:
-
- const uint8_t *_fds;
- bool _my_fds;
- int _nglyphs;
- int _error;
-
- FDSelect(const FDSelect &);
- FDSelect &operator=(const FDSelect &);
- int parse(const Cff *, int pos, int nglyphs, ErrorHandler *);
-
-};
-
-
-class Cff::FontParent : public CharstringProgram { public:
-
- FontParent(Cff* cff);
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- int ngsubrs_x() const { return _cff->ngsubrs(); }
- int ngsubrs() const { return ngsubrs_x(); }
- Charstring *gsubr(int) const;
- int gsubr_bias() const;
-
- private:
-
- Cff* _cff;
- int _charstring_type;
- int _error;
- int _font_index;
-
- FontParent(const FontParent &);
- FontParent &operator=(const FontParent &);
-
- Charstring *charstring(const IndexIterator &, int) const;
-
- friend class Cff;
- friend class Cff::Font;
- friend class Cff::CIDFont;
- friend class Cff::ChildFont;
-
-};
-
-class Cff::CIDFont : public Cff::FontParent { public:
-
- CIDFont(Cff* cff, PermString, const Dict &, ErrorHandler *);
- ~CIDFont();
-
- PermString font_name() const { return _font_name; }
- void font_matrix(double[6]) const;
-
- int nglyphs() const { return _charstrings_index.nitems(); }
- PermString glyph_name(int) const;
- void glyph_names(Vector<PermString> &) const;
- Charstring *glyph(int) const;
- Charstring *glyph(PermString) const;
- int glyphid(PermString) const;
- const CharstringProgram *child_program(int) const;
-
- bool dict_has(DictOperator) const;
- String dict_string(DictOperator) const;
- bool dict_value(DictOperator, double *) const;
- bool dict_xvalue(DictOperator, double, double *) const;
- bool dict_value(DictOperator, Vector<double> &) const;
-
- private:
-
- PermString _font_name;
-
- Dict _top_dict;
- Dict _private_dict;
-
- Cff::Charset _charset;
-
- IndexIterator _charstrings_index;
- mutable Vector<Charstring *> _charstrings_cs;
-
- Vector<ChildFont *> _child_fonts;
- Cff::FDSelect _fdselect;
-
- const Dict &dict_of(DictOperator) const;
-
-};
-
-class Cff::ChildFont : public Cff::FontParent { public:
-
- ChildFont(Cff* cff, Cff::CIDFont *, int charstring_type, const Dict &, ErrorHandler * = 0);
- ~ChildFont();
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- PermString font_name() const { return _parent->font_name(); }
- void font_matrix(double m[6]) const { _parent->font_matrix(m); }
-
- inline bool cid() const;
-
- int nsubrs_x() const { return _subrs_index.nitems(); }
- int nsubrs() const { return nsubrs_x(); }
- Charstring *subr(int) const;
- int subr_bias() const;
-
- int nglyphs() const { return _parent->nglyphs(); }
- PermString glyph_name(int gi) const { return _parent->glyph_name(gi); }
- void glyph_names(Vector<PermString> &v) const { _parent->glyph_names(v); }
- Charstring *glyph(int gi) const { return _parent->glyph(gi); }
- Charstring *glyph(PermString n) const { return _parent->glyph(n); }
-
- double global_width_x(bool) const;
-
- private:
-
- Cff::CIDFont *_parent;
-
- Dict _top_dict;
- Dict _private_dict;
-
- IndexIterator _subrs_index;
- mutable Vector<Charstring *> _subrs_cs;
-
- double _default_width_x;
- double _nominal_width_x;
-
- ChildFont(const ChildFont &); // does not exist
- ChildFont &operator=(const ChildFont &); // does not exist
-
- Charstring *charstring(const IndexIterator &, int) const;
-
- friend class Cff::Font;
-
-};
-
-class Cff::Font : public Cff::ChildFont { public:
-
- Font(Cff* cff, PermString, const Dict &, ErrorHandler *);
- ~Font();
-
- PermString font_name() const { return _font_name; }
- void font_matrix(double[6]) const;
-
- int nglyphs() const { return _charstrings_index.nitems(); }
- PermString glyph_name(int) const;
- void glyph_names(Vector<PermString> &) const;
- Charstring *glyph(int) const;
- Charstring *glyph(PermString) const;
- int glyphid(PermString) const;
-
- Type1Encoding *type1_encoding() const;
- Type1Encoding *type1_encoding_copy() const;
-
- bool dict_has(DictOperator) const;
- String dict_string(DictOperator) const;
- inline bool dict_value(DictOperator, double *) const;
- inline bool dict_value(DictOperator, Vector<double> &) const;
- const Dict &top_dict() const { return _top_dict; }
-
- private:
-
- PermString _font_name;
-
- Cff::Charset _charset;
-
- IndexIterator _charstrings_index;
- mutable Vector<Charstring *> _charstrings_cs;
-
- int _encoding_pos;
- int _encoding[256];
- mutable Type1Encoding *_t1encoding;
-
- int parse_encoding(int pos, ErrorHandler *);
- int assign_standard_encoding(const int *standard_encoding);
-
- inline const Dict &dict_of(DictOperator) const;
-
-};
-
-
-inline uint32_t Cff::IndexIterator::offset_at(const uint8_t *x) const
-{
- switch (_offsize) {
- case 0:
- return 0;
- case 1:
- return x[0];
- case 2:
- return (x[0] << 8) | x[1];
- case 3:
- return (x[0] << 16) | (x[1] << 8) | x[2];
- default:
- return (x[0] << 24) | (x[1] << 16) | (x[2] << 8) | x[3];
- }
-}
-
-inline const uint8_t *Cff::IndexIterator::operator*() const
-{
- assert(live());
- return _contents + offset_at(_offset);
-}
-
-inline const uint8_t *Cff::IndexIterator::operator[](int which) const
-{
- assert(live() && _offset + which * _offsize <= _last_offset);
- return _contents + offset_at(_offset + which * _offsize);
-}
-
-inline int Cff::Charset::gid_to_sid(int gid) const
-{
- if (gid >= 0 && gid < _sids.size())
- return _sids[gid];
- else
- return -1;
-}
-
-inline int Cff::Charset::sid_to_gid(int sid) const
-{
- if (sid >= 0 && sid < _gids.size())
- return _gids[sid];
- else
- return -1;
-}
-
-inline int Cff::FDSelect::gid_to_fd(int gid) const
-{
- if (gid >= 0 && gid < _nglyphs)
- return _fds[gid];
- else
- return -1;
-}
-
-inline bool Cff::Dict::has_first(DictOperator op) const
-{
- return _operators.size() && _operators[0] == op;
-}
-
-inline const Cff::Dict &Cff::Font::dict_of(DictOperator op) const
-{
- return (op >= 0 && op <= oLastOperator && (operator_types[op] & tP) ? _private_dict : _top_dict);
-}
-
-inline bool Cff::Font::dict_value(DictOperator op, double *val) const
-{
- return dict_of(op).value(op, val);
-}
-
-inline bool Cff::Font::dict_value(DictOperator op, Vector<double> &val) const
-{
- return dict_of(op).value(op, val);
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/encoding.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/encoding.hh
deleted file mode 100644
index eb7aa004f28..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/encoding.hh
+++ /dev/null
@@ -1,27 +0,0 @@
-// -*- related-file-name: "../../libefont/encoding.cc" -*-
-#ifndef EFONT_ENCODING_HH
-#define EFONT_ENCODING_HH
-#include <lcdf/vector.hh>
-namespace Efont {
-typedef int GlyphIndex;
-
-class Encoding8 {
-
- Vector<GlyphIndex> _codes;
- Vector<int> _code_map;
-
- public:
-
- Encoding8() : _code_map(256, -1) { }
-
- void reserve_glyphs(int);
-
- int code(GlyphIndex gi) const { return _codes[gi]; }
- GlyphIndex find_code(int c) const { return _code_map[c]; }
-
- void set_code(GlyphIndex gi, int c) { _codes[gi] = c; _code_map[c] = gi; }
-
-};
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/findmet.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/findmet.hh
deleted file mode 100644
index 542ed6dddc6..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/findmet.hh
+++ /dev/null
@@ -1,114 +0,0 @@
-// -*- related-file-name: "../../libefont/findmet.cc" -*-
-#ifndef EFONT_FINDMET_HH
-#define EFONT_FINDMET_HH
-#include <lcdf/hashmap.hh>
-#include <lcdf/vector.hh>
-#include <lcdf/permstr.hh>
-class Filename;
-class ErrorHandler;
-namespace Efont {
-class Metrics;
-class AmfmMetrics;
-class PsresDatabase;
-
-class MetricsFinder { public:
-
- MetricsFinder() : _next(0), _prev(0) { }
- virtual ~MetricsFinder();
-
- MetricsFinder *next() const { return _next; }
-
- void add_finder(MetricsFinder *);
-
- Metrics *find_metrics(PermString, ErrorHandler * = 0);
- AmfmMetrics *find_amfm(PermString, ErrorHandler * = 0);
-
- virtual Metrics *find_metrics_x(PermString, MetricsFinder *, ErrorHandler *);
- virtual AmfmMetrics *find_amfm_x(PermString, MetricsFinder *, ErrorHandler *);
-
- void record(Metrics *m);
- virtual void record(Metrics *, PermString);
- virtual void record(AmfmMetrics *);
-
- private:
-
- MetricsFinder *_next;
- MetricsFinder *_prev;
-
- MetricsFinder(const MetricsFinder &) { }
- MetricsFinder &operator=(const MetricsFinder &) { return *this; }
-
- protected:
-
- Metrics *try_metrics_file(const Filename &, MetricsFinder *, ErrorHandler *);
- AmfmMetrics *try_amfm_file(const Filename &, MetricsFinder *, ErrorHandler *);
-
-};
-
-
-class CacheMetricsFinder: public MetricsFinder { public:
-
- CacheMetricsFinder();
- ~CacheMetricsFinder();
-
- Metrics *find_metrics_x(PermString, MetricsFinder *, ErrorHandler *);
- AmfmMetrics *find_amfm_x(PermString, MetricsFinder *, ErrorHandler *);
- void record(Metrics *, PermString);
- void record(AmfmMetrics *);
-
- void clear();
-
- private:
-
- HashMap<PermString, int> _metrics_map;
- Vector<Metrics *> _metrics;
- HashMap<PermString, int> _amfm_map;
- Vector<AmfmMetrics *> _amfm;
-
-};
-
-
-class InstanceMetricsFinder: public MetricsFinder { public:
-
- InstanceMetricsFinder(bool call_mmpfb = true);
-
- Metrics *find_metrics_x(PermString, MetricsFinder *, ErrorHandler *);
-
- private:
-
- bool _call_mmpfb;
-
- Metrics *find_metrics_instance(PermString, MetricsFinder *, ErrorHandler *);
-
-};
-
-
-class PsresMetricsFinder: public MetricsFinder { public:
-
- PsresMetricsFinder(PsresDatabase *);
-
- Metrics *find_metrics_x(PermString, MetricsFinder *, ErrorHandler *);
- AmfmMetrics *find_amfm_x(PermString, MetricsFinder *, ErrorHandler *);
-
- private:
-
- PsresDatabase *_psres;
-
-};
-
-
-class DirectoryMetricsFinder: public MetricsFinder { public:
-
- DirectoryMetricsFinder(PermString);
-
- Metrics *find_metrics_x(PermString, MetricsFinder *, ErrorHandler *);
- AmfmMetrics *find_amfm_x(PermString, MetricsFinder *, ErrorHandler *);
-
- private:
-
- PermString _directory;
-
-};
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/metrics.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/metrics.hh
deleted file mode 100644
index 82c5eb0d26f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/metrics.hh
+++ /dev/null
@@ -1,177 +0,0 @@
-// -*- related-file-name: "../../libefont/metrics.cc" -*-
-#ifndef EFONT_METRICS_HH
-#define EFONT_METRICS_HH
-#include <lcdf/permstr.hh>
-#include <lcdf/vector.hh>
-#include <lcdf/hashmap.hh>
-#include <efont/encoding.hh>
-#include <efont/pairop.hh>
-namespace Efont {
-class MetricsXt;
-
-class Metrics { public:
-
- Metrics();
- Metrics(PermString font_name, PermString full_name, const Metrics &);
- ~Metrics();
-
- void use() { _uses++; }
- void unuse() { if (--_uses == 0) delete this; }
-
- // GLOBALS
-
- PermString font_name() const { return _font_name; }
- PermString family() const { return _family; }
- PermString full_name() const { return _full_name; }
- PermString weight() const { return _weight; }
- PermString version() const { return _version; }
-
- void set_font_name(PermString);
- void set_family(PermString s) { _family = s; }
- void set_full_name(PermString s) { _full_name = s; }
- void set_weight(PermString s) { _weight = s; }
- void set_version(PermString s) { _version = s; }
-
- // GLYPHS
-
- int nglyphs() const { return _names.size(); }
- PermString name(GlyphIndex gi) const { return _names[gi]; }
- GlyphIndex find(PermString n) const { return _name_map[n]; }
-
- int code(GlyphIndex gi) const { return _encoding.code(gi); }
- GlyphIndex find_code(int c) const { return _encoding.find_code(c); }
- void set_code(GlyphIndex gi, int c) { _encoding.set_code(gi, c); }
-
- GlyphIndex add_glyph(PermString);
- void reserve_glyphs(int);
-
- // DIMENSIONS
-
- double scale() const { return _scale; }
- void set_scale(double d) { _scale = d; }
-
- int nfd() const { return _fdv.size(); }
- int nkv() const { return _kernv.size(); }
-
- double fd(int i) const { return _fdv[i]; }
- double wd(int i) const { return _wdv[i]; }
- double lf(int i) const { return _lfv[i]; }
- double rt(int i) const { return _rtv[i]; }
- double tp(int i) const { return _tpv[i]; }
- double bt(int i) const { return _btv[i]; }
- double kv(int i) const { return _kernv[i]; }
-
- double &fd(int i) { return _fdv[i]; }
- double &wd(int i) { return _wdv[i]; }
- double &lf(int i) { return _lfv[i]; }
- double &rt(int i) { return _rtv[i]; }
- double &tp(int i) { return _tpv[i]; }
- double &bt(int i) { return _btv[i]; }
- double &kv(int i) { return _kernv[i]; }
-
- inline int add_kv(double d);
-
- void interpolate_dimens(const Metrics &, double, bool increment);
-
- // PAIR PROGRAM
-
- PairProgram *pair_program() { return &_pairp; }
- const PairProgram *pair_program() const { return &_pairp; }
- inline bool add_kern(GlyphIndex, GlyphIndex, int);
- inline bool add_lig(GlyphIndex, GlyphIndex, GlyphIndex, int = opLigSimple);
-
- // EXTENSIONS
-
- MetricsXt *find_xt(PermString name) const { return _xt[_xt_map[name]]; }
- void add_xt(MetricsXt *);
-
- private:
-
- PermString _font_name;
-
- PermString _family;
- PermString _full_name;
- PermString _weight;
- PermString _version;
-
- HashMap<PermString, GlyphIndex> _name_map;
- Vector<PermString> _names;
- Encoding8 _encoding;
-
- double _scale;
-
- Vector<double> _fdv;
- Vector<double> _wdv;
- Vector<double> _lfv;
- Vector<double> _rtv;
- Vector<double> _tpv;
- Vector<double> _btv;
-
- PairProgram _pairp;
- Vector<double> _kernv;
-
- HashMap<PermString, int> _xt_map;
- Vector<MetricsXt *> _xt;
-
- unsigned _uses;
-
-};
-
-
-class MetricsXt {
-
- public:
-
- MetricsXt() { }
- virtual ~MetricsXt() { }
-
- virtual PermString kind() const = 0;
-
- virtual void reserve_glyphs(int) { }
-
-};
-
-
-enum FontDimensionDefs {
-
- fdCapHeight = 0,
- fdXHeight,
- fdAscender,
- fdDescender,
-
- fdItalicAngle,
- fdUnderlinePosition,
- fdUnderlineThickness,
-
- fdFontBBllx,
- fdFontBBlly,
- fdFontBBurx,
- fdFontBBury,
-
- fdStdHW,
- fdStdVW,
-
- fdLast
-
-};
-
-
-inline bool Metrics::add_kern(GlyphIndex g1, GlyphIndex g2, int ki)
-{
- return _pairp.add_kern(g1, g2, ki);
-}
-
-inline bool Metrics::add_lig(GlyphIndex g1, GlyphIndex g2, GlyphIndex gr, int kind)
-{
- return _pairp.add_lig(g1, g2, gr, kind);
-}
-
-inline int Metrics::add_kv(double d)
-{
- int k = _kernv.size();
- _kernv.push_back(d);
- return k;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otf.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otf.hh
deleted file mode 100644
index cdf7a58daca..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otf.hh
+++ /dev/null
@@ -1,371 +0,0 @@
-// -*- related-file-name: "../../libefont/otf.cc" -*-
-#ifndef EFONT_OTF_HH
-#define EFONT_OTF_HH
-#include <efont/otfdata.hh>
-#include <lcdf/hashcode.hh>
-class ErrorHandler;
-namespace Efont { namespace OpenType {
-class Post;
-class Name;
-
-typedef int Glyph; // 16-bit integer
-
-class Tag {
- public:
- Tag() : _tag(0U) { }
- explicit Tag(uint32_t tag) : _tag(tag) { }
- Tag(const char *name);
- Tag(const String &name);
- // default destructor
-
- static Tag head_tag() { return Tag(0x68656164U); }
-
- typedef bool (Tag::*unspecified_bool_type)() const;
- bool null() const { return _tag == 0; }
- operator unspecified_bool_type() const {
- return _tag != 0 ? &Tag::null : 0;
- }
- bool valid() const;
-
- uint32_t value() const { return _tag; }
-
- String text() const;
- static String langsys_text(Tag script, Tag langsys = Tag());
-
- const uint8_t* table_entry(const uint8_t* table, int n, int entry_size) const;
-
- const char* script_description() const;
- const char* language_description() const;
- const char* feature_description() const;
-
- private:
- uint32_t _tag;
-};
-
-inline hashcode_t hashcode(const Tag& t) {
- return t.value();
-}
-
-class Font {
- public:
- Font(const String& str, ErrorHandler* errh = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
- bool check_checksums(ErrorHandler* errh = 0) const;
- int error() const { return _error; }
-
- const String& data_string() const { return _str; }
- const uint8_t* data() const { return _str.udata(); }
- int length() const { return _str.length(); }
-
- unsigned units_per_em() const { return _units_per_em; }
-
- int ntables() const;
- bool has_table(Tag tag) const;
- String table(Tag tag) const;
- uint32_t table_checksum(Tag tag) const;
- Tag table_tag(int i) const;
-
- static uint32_t checksum(const uint8_t *, const uint8_t *);
- static uint32_t checksum(const String &);
- static Font make(bool truetype, const Vector<Tag>& tags, const Vector<String>& data);
-
- enum { HEADER_SIZE = 12, TABLE_DIR_ENTRY_SIZE = 16 };
-
- private:
- String _str;
- int _error;
- unsigned _units_per_em;
-
- int parse_header(ErrorHandler*);
-};
-
-class ScriptList {
- public:
- ScriptList() { }
- inline ScriptList(const String&, ErrorHandler* = 0);
- int assign(const String&, ErrorHandler* = 0);
- // default destructor
-
- bool ok() const { return _str.length() > 0; }
-
- int language_systems(Vector<Tag>& scripts, Vector<Tag>& langsys, ErrorHandler* = 0) const;
- int features(Tag script, Tag langsys, int& required_fid, Vector<int>& fids, ErrorHandler* = 0, bool clear_fids = true) const;
-
- private:
- enum { SCRIPTLIST_HEADERSIZE = 2, SCRIPT_RECSIZE = 6,
- SCRIPT_HEADERSIZE = 4, LANGSYS_RECSIZE = 6,
- LANGSYS_HEADERSIZE = 6, FEATURE_RECSIZE = 2 };
-
- String _str;
-
- int check_header(ErrorHandler*);
- int script_offset(Tag) const;
- int check_script(Tag, int, ErrorHandler*) const;
- int langsys_offset(Tag, Tag, ErrorHandler* = 0) const;
-};
-
-class FeatureList {
- public:
- FeatureList() { }
- inline FeatureList(const String&, ErrorHandler* = 0);
- int assign(const String&, ErrorHandler* = 0);
- // default destructor
-
- bool ok() const { return _str.length() > 0; }
-
- Tag tag(int fid) const;
- String params(int fid, int length, ErrorHandler* = 0, bool old_style_offset = false) const;
- String size_params(int fid, const Name& name, ErrorHandler* = 0) const;
- int lookups(int fid, Vector<int>& results, ErrorHandler* = 0, bool clear_results = true) const;
-
- int find(Tag, const Vector<int>& fids) const;
- void filter(Vector<int>& fids, const Vector<Tag>& sorted_ftags) const;
- inline void filter(Vector<int>& fids, Tag ftag) const;
-
- int lookups(const Vector<int>& fids, Vector<int>& results, ErrorHandler* = 0) const;
- int lookups(const Vector<int>& required_fids, const Vector<int>& fids, const Vector<Tag>& sorted_ftags, Vector<int>& results, ErrorHandler* = 0) const;
- int lookups(int required_fid, const Vector<int>& fids, const Vector<Tag>& sorted_ftags, Vector<int>& results, ErrorHandler* = 0) const;
- int lookups(const ScriptList&, Tag script, Tag langsys, const Vector<Tag>& sorted_ftags, Vector<int>& results, ErrorHandler* = 0) const;
-
- private:
- enum { FEATURELIST_HEADERSIZE = 2, FEATURE_RECSIZE = 6,
- FEATURE_HEADERSIZE = 4, LOOKUPLIST_RECSIZE = 2 };
-
- String _str;
-
- int check_header(ErrorHandler*);
- int script_offset(Tag) const;
- int langsys_offset(Tag, Tag, ErrorHandler* = 0) const;
-};
-
-class Coverage {
- public:
- Coverage() noexcept; // empty coverage
- Coverage(Glyph first, Glyph last) noexcept; // range coverage
- Coverage(const Vector<bool> &gmap) noexcept; // used-bytemap coverage
- Coverage(const String &str, ErrorHandler *errh = 0, bool check = true) noexcept;
- // default destructor
-
- bool ok() const noexcept { return _str.length() > 0; }
- int size() const noexcept;
- bool has_fast_covers() const noexcept {
- return _str.length() > 0 && _str.data()[1] == T_X_BYTEMAP;
- }
-
- int coverage_index(Glyph) const noexcept;
- bool covers(Glyph g) const noexcept { return coverage_index(g) >= 0; }
-
- void unparse(StringAccum&) const noexcept;
- String unparse() const noexcept;
-
- class iterator { public:
- iterator() : _pos(0), _value(0) { }
- // private constructor
- // default destructor
-
- bool ok() const { return _pos < _str.length(); }
- operator bool() const { return ok(); }
-
- Glyph operator*() const { return _value; }
- Glyph value() const { return _value; }
- int coverage_index() const;
-
- void operator++(int);
- void operator++() { (*this)++; }
- bool forward_to(Glyph);
-
- // XXX should check iterators are of same type
- bool operator<(const iterator& o) { return _value < o._value; }
- bool operator<=(const iterator& o) { return _value <= o._value; }
- bool operator>=(const iterator& o) { return _value >= o._value; }
- bool operator>(const iterator& o) { return _value > o._value; }
- bool operator==(const iterator& o) { return _value == o._value; }
- bool operator!=(const iterator& o) { return _value != o._value; }
-
- private:
- String _str;
- int _pos;
- Glyph _value;
- friend class Coverage;
- iterator(const String &str, bool is_end);
- };
-
- iterator begin() const { return iterator(_str, false); }
- iterator end() const { return iterator(_str, true); }
- Glyph operator[](int) const noexcept;
-
- enum { T_LIST = 1, T_RANGES = 2, T_X_BYTEMAP = 3,
- HEADERSIZE = 4, LIST_RECSIZE = 2, RANGES_RECSIZE = 6 };
-
- private:
- String _str;
-
- int check(ErrorHandler*);
-};
-
-Coverage operator&(const Coverage&, const Coverage&);
-bool operator<=(const Coverage&, const Coverage&);
-
-inline bool operator>=(const Coverage& a, const Coverage& b) {
- return b <= a;
-}
-
-class GlyphSet {
- public:
- GlyphSet();
- GlyphSet(const GlyphSet&);
- ~GlyphSet();
-
- inline bool covers(Glyph g) const;
- inline bool operator[](Glyph g) const;
- int change(Glyph, bool);
- void insert(Glyph g) { change(g, true); }
- void remove(Glyph g) { change(g, false); }
-
- GlyphSet& operator=(const GlyphSet&);
-
- private:
- enum { GLYPHBITS = 16, SHIFT = 8,
- MAXGLYPH = (1 << GLYPHBITS) - 1, UNSHIFT = GLYPHBITS - SHIFT,
- MASK = (1 << UNSHIFT) - 1, VLEN = (1 << SHIFT),
- VULEN = (1 << UNSHIFT) >> 5
- };
-
- uint32_t* _v[VLEN];
-};
-
-class ClassDef {
- public:
- ClassDef(const String&, ErrorHandler* = 0) noexcept;
- // default destructor
-
- bool ok() const { return _str.length() > 0; }
- int nclass() const noexcept;
-
- int lookup(Glyph) const noexcept;
- int operator[](Glyph g) const noexcept { return lookup(g); }
-
- void unparse(StringAccum&) const noexcept;
- String unparse() const noexcept;
-
- class class_iterator {
- public:
- // private constructor
- // default destructor
-
- bool ok() const { return _pos < _str.length(); }
- operator bool() const { return ok(); }
-
- Glyph operator*() const { return *_coviter; }
- Glyph value() const { return *_coviter; }
- int class_value() const { return _class; }
-
- void operator++(int);
- void operator++() { (*this)++; }
-
- // XXX should check iterators are of same type
- bool operator<(const class_iterator& o) { return _coviter < o._coviter; }
- bool operator<=(const class_iterator& o) { return _coviter <= o._coviter; }
- bool operator>=(const class_iterator& o) { return _coviter >= o._coviter; }
- bool operator>(const class_iterator& o) { return _coviter > o._coviter; }
- bool operator==(const class_iterator& o) { return _coviter == o._coviter; }
- bool operator!=(const class_iterator& o) { return _coviter != o._coviter; }
-
- private:
- String _str;
- int _pos;
- int _class;
- Coverage::iterator _coviter;
- friend class ClassDef;
- class_iterator(const String&, int, int, const Coverage::iterator&);
- void increment_class0();
- enum { FIRST_POS = -1, LAST_POS = -2 };
- };
-
- // XXX does not work correctly for class 0
- class_iterator begin(int c) const { return class_iterator(_str, 0, c, Coverage::iterator()); }
- class_iterator begin(int c, const Coverage& coverage) const { return class_iterator(_str, 0, c, coverage.begin()); }
- class_iterator end(int c) const { return class_iterator(_str, _str.length(), c, Coverage::iterator()); }
-
- enum { T_LIST = 1, T_RANGES = 2,
- LIST_HEADERSIZE = 6, LIST_RECSIZE = 2,
- RANGES_HEADERSIZE = 4, RANGES_RECSIZE = 6 };
-
- private:
- String _str;
-
- int check(ErrorHandler*);
-};
-
-extern Vector<PermString> debug_glyph_names;
-
-
-inline bool operator==(Tag t1, uint32_t t2) {
- return t1.value() == t2;
-}
-
-inline bool operator!=(Tag t1, uint32_t t2) {
- return t1.value() != t2;
-}
-
-inline bool operator<(Tag t1, uint32_t t2) {
- return t1.value() < t2;
-}
-
-inline bool operator>(Tag t1, uint32_t t2) {
- return t1.value() > t2;
-}
-
-inline bool operator<=(Tag t1, uint32_t t2) {
- return t1.value() <= t2;
-}
-
-inline bool operator>=(Tag t1, uint32_t t2) {
- return t1.value() >= t2;
-}
-
-inline bool operator==(Tag t1, Tag t2) {
- return t1.value() == t2.value();
-}
-
-inline bool operator!=(Tag t1, Tag t2) {
- return t1.value() != t2.value();
-}
-
-inline bool operator<(Tag t1, Tag t2) {
- return t1.value() < t2.value();
-}
-
-inline ScriptList::ScriptList(const String& str, ErrorHandler* errh) {
- assign(str, errh);
-}
-
-inline FeatureList::FeatureList(const String& str, ErrorHandler* errh) {
- assign(str, errh);
-}
-
-inline void FeatureList::filter(Vector<int>& fids, Tag ftag) const {
- Vector<Tag> tags;
- tags.push_back(ftag);
- filter(fids, tags);
-}
-
-inline bool GlyphSet::covers(Glyph g) const {
- if ((unsigned)g > MAXGLYPH)
- return false;
- else if (const uint32_t* u = _v[g >> SHIFT])
- return (u[(g & MASK) >> 5] & (1 << (g & 0x1F))) != 0;
- else
- return false;
-}
-
-inline bool GlyphSet::operator[](Glyph g) const {
- return covers(g);
-}
-
-} // namespace Efont::OpenType
-} // namespace Efont
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfcmap.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfcmap.hh
deleted file mode 100644
index 1fdce99802d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfcmap.hh
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- related-file-name: "../../libefont/otfcmap.cc" -*-
-#ifndef EFONT_OTFCMAP_HH
-#define EFONT_OTFCMAP_HH
-#include <efont/otf.hh>
-#include <lcdf/error.hh>
-#include <utility>
-namespace Efont { namespace OpenType {
-
-class Cmap { public:
-
- Cmap(const String &, ErrorHandler * = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- inline Glyph map_uni(uint32_t c) const;
- int map_uni(const Vector<uint32_t> &in, Vector<Glyph> &out) const;
- inline void unmap_all(Vector<std::pair<uint32_t, Glyph> > &ugp) const;
-
- private:
-
- String _str;
- int _error;
- int _ntables;
- mutable int _first_unicode_table;
- mutable Vector<int> _table_error;
-
- enum { HEADER_SIZE = 4, ENCODING_SIZE = 8,
- HIBYTE_SUBHEADERS = 524 };
- enum Format { F_BYTE = 0, F_HIBYTE = 2, F_SEGMENTED = 4, F_TRIMMED = 6,
- F_HIBYTE32 = 8, F_TRIMMED32 = 10, F_SEGMENTED32 = 12 };
- enum { USE_FIRST_UNICODE_TABLE = -2 };
-
- int parse_header(ErrorHandler *);
- int first_unicode_table() const { return _first_unicode_table; }
- int first_table(int platform, int encoding) const;
- int check_table(int t, ErrorHandler * = 0) const;
- Glyph map_table(int t, uint32_t, ErrorHandler * = 0) const;
- void dump_table(int t, Vector<std::pair<uint32_t, Glyph> > &ugp, ErrorHandler * = 0) const;
- inline const uint8_t* table_data(int t) const;
-
-};
-
-
-inline Glyph Cmap::map_uni(uint32_t c) const {
- return map_table(USE_FIRST_UNICODE_TABLE, c, ErrorHandler::default_handler());
-}
-
-inline void Cmap::unmap_all(Vector<std::pair<uint32_t, Glyph> > &ugp) const {
- dump_table(USE_FIRST_UNICODE_TABLE, ugp, ErrorHandler::default_handler());
-}
-
-inline const uint8_t* Cmap::table_data(int t) const {
- const uint8_t* data = _str.udata();
- return data + Data::u32_aligned(data + HEADER_SIZE + t * ENCODING_SIZE + 4);
-}
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfdata.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfdata.hh
deleted file mode 100644
index 2dfe24a1c18..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfdata.hh
+++ /dev/null
@@ -1,216 +0,0 @@
-// -*- related-file-name: "../../libefont/otfdata.cc" -*-
-#ifndef EFONT_OTFDATA_HH
-#define EFONT_OTFDATA_HH
-#include <lcdf/string.hh>
-#include <lcdf/vector.hh>
-#include <lcdf/inttypes.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if NEED_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#if HAVE_BYTEORDER_H
-# include <byteorder.h>
-#elif HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#elif !defined(WIN32)
-# error "configury disaster! Report this error to ekohler@gmail.com"
-#endif
-#ifdef WIN32
-# ifdef __MSC_VER
-# pragma warning (disable: 4290)
-# endif
-# include <winsock2.h>
-#endif
-class ErrorHandler;
-namespace Efont { namespace OpenType {
-
-#if HAVE_PRECONDITION_CHECKING
-#define efont_precondition(x) assert((x))
-#else
-#define efont_precondition(x)
-#endif
-
-class Error {
- public:
- String description;
- Error() : description(String::make_stable("unspecified error")) { }
- Error(const String &d) : description(d) { }
-};
-
-class Bounds : public Error {
- public:
- Bounds() : Error(String::make_stable("bounds error")) { }
-};
-
-class Format : public Error {
- public:
- Format(const String& name) : Error(name + " format error") { }
- Format(const String& name, const String& type)
- : Error(name + " " + type + " format error") { }
-};
-
-class BlankTable : public Format {
- public:
- BlankTable(const String& name) : Format(name, "blank table") { }
-};
-
-class Data {
- public:
- Data() { }
- Data(const String& str) : _str(str) { _str.align(2); }
- // default copy constructor
- // default destructor
-
- const String& string() const { return _str; }
- operator const String&() const { return _str; }
-
- operator String::unspecified_bool_type() const { return _str; }
- const uint8_t *udata() const { return _str.udata(); }
- int length() const { return _str.length(); }
-
- static inline uint16_t u16(const unsigned char* s);
- static inline uint16_t u16_aligned(const unsigned char* s);
- static inline int16_t s16(const unsigned char* s);
- static inline int16_t s16_aligned(const unsigned char* s);
- static inline uint32_t u32(const unsigned char* s);
- static inline uint32_t u32_aligned16(const unsigned char* s);
- static inline uint32_t u32_aligned(const unsigned char* s);
- static inline int32_t s32(const unsigned char* s);
- static inline int32_t s32_aligned16(const unsigned char* s);
- static inline int32_t s32_aligned(const unsigned char* s);
-
- inline uint8_t operator[](unsigned offset) const;
- inline uint16_t u16(unsigned offset) const;
- inline int16_t s16(unsigned offset) const;
- inline uint32_t u32(unsigned offset) const;
- inline int32_t s32(unsigned offset) const;
- inline uint8_t operator[](int offset) const;
- inline uint16_t u16(int offset) const;
- inline int16_t s16(int offset) const;
- inline uint32_t u32(int offset) const;
- inline int32_t s32(int offset) const;
-
- Data subtable(unsigned offset) const;
- Data offset_subtable(unsigned offset_offset) const;
- inline Data substring(int left, int len = -1) const noexcept;
-
- void align_long() { _str.align(4); }
-
- private:
-
- String _str;
-
-};
-
-inline uint8_t Data::operator[](unsigned offset) const {
- if (offset >= static_cast<unsigned>(_str.length()))
- throw Bounds();
- else
- return _str[offset];
-}
-
-inline uint16_t Data::u16(const unsigned char* s) {
- return (s[0] << 8) + s[1];
-}
-
-inline uint16_t Data::u16_aligned(const unsigned char* s) {
- efont_precondition((reinterpret_cast<uintptr_t>(s) & 1) == 0);
- return ntohs(*reinterpret_cast<const uint16_t*>(s));
-}
-
-inline int16_t Data::s16(const unsigned char* s) {
- return (int16_t) ((s[0] << 8) + s[1]);
-}
-
-inline int16_t Data::s16_aligned(const unsigned char* s) {
- efont_precondition((reinterpret_cast<uintptr_t>(s) & 1) == 0);
- return ntohs(*reinterpret_cast<const int16_t*>(s));
-}
-
-inline uint32_t Data::u32(const unsigned char* s) {
- return ((unsigned) s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3];
-}
-
-inline uint32_t Data::u32_aligned16(const unsigned char* s) {
- efont_precondition((reinterpret_cast<uintptr_t>(s) & 1) == 0);
- return ((unsigned) u16_aligned(s) << 16) + u16_aligned(s + 2);
-}
-
-inline uint32_t Data::u32_aligned(const unsigned char* s) {
- efont_precondition((reinterpret_cast<uintptr_t>(s) & 3) == 0);
- return ntohl(*reinterpret_cast<const uint32_t*>(s));
-}
-
-inline int32_t Data::s32(const unsigned char* s) {
- return (int32_t) (((unsigned) s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]);
-}
-
-inline int32_t Data::s32_aligned16(const unsigned char* s) {
- efont_precondition((reinterpret_cast<uintptr_t>(s) & 1) == 0);
- return (int32_t) (((unsigned) u16_aligned(s) << 16) + u16_aligned(s + 2));
-}
-
-inline int32_t Data::s32_aligned(const unsigned char* s) {
- efont_precondition((reinterpret_cast<uintptr_t>(s) & 3) == 0);
- return ntohl(*reinterpret_cast<const int32_t*>(s));
-}
-
-inline uint16_t Data::u16(unsigned offset) const {
- if (offset + 1 >= static_cast<unsigned>(_str.length()) || offset + 1 == 0)
- throw Bounds();
- else
- return u16_aligned(_str.udata() + offset);
-}
-
-inline int16_t Data::s16(unsigned offset) const {
- if (offset + 1 >= static_cast<unsigned>(_str.length()) || offset + 1 == 0)
- throw Bounds();
- else
- return s16_aligned(_str.udata() + offset);
-}
-
-inline uint32_t Data::u32(unsigned offset) const {
- if (offset + 3 >= static_cast<unsigned>(_str.length()) || offset + 3 < 3)
- throw Bounds();
- else
- return u32_aligned16(_str.udata() + offset);
-}
-
-inline int32_t Data::s32(unsigned offset) const {
- if (offset + 3 >= static_cast<unsigned>(_str.length()) || offset + 3 < 3)
- throw Bounds();
- else
- return s32_aligned16(_str.udata() + offset);
-}
-
-inline uint8_t Data::operator[](int offset) const {
- return (*this)[unsigned(offset)];
-}
-
-inline uint16_t Data::u16(int offset) const {
- return u16(unsigned(offset));
-}
-
-inline int16_t Data::s16(int offset) const {
- return s16(unsigned(offset));
-}
-
-inline uint32_t Data::u32(int offset) const {
- return u32(unsigned(offset));
-}
-
-inline int32_t Data::s32(int offset) const {
- return s32(unsigned(offset));
-}
-
-inline Data Data::substring(int left, int len) const noexcept {
- return Data(_str.substring(left, len));
-}
-
-} // namespace Efont::OpenType
-} // namespace Efont
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgpos.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgpos.hh
deleted file mode 100644
index 6d1088a97fa..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgpos.hh
+++ /dev/null
@@ -1,249 +0,0 @@
-// -*- related-file-name: "../../libefont/otfgpos.cc" -*-
-#ifndef EFONT_OTFGPOS_HH
-#define EFONT_OTFGPOS_HH
-#include <efont/otf.hh>
-#include <efont/otfdata.hh>
-namespace Efont { namespace OpenType {
-class GposLookup;
-class Positioning;
-
-class Gpos { public:
-
- Gpos(const Data &, ErrorHandler * = 0);
- // default destructor
-
- const ScriptList &script_list() const { return _script_list; }
- const FeatureList &feature_list() const { return _feature_list; }
-
- int nlookups() const;
- GposLookup lookup(unsigned) const;
-
- enum { HEADERSIZE = 10 };
-
- private:
-
- ScriptList _script_list;
- FeatureList _feature_list;
- Data _lookup_list;
-
-};
-
-class GposLookup { public:
- GposLookup(const Data &);
- int type() const { return _type; }
- uint16_t flags() const { return _d.u16(2); }
- bool unparse_automatics(Vector<Positioning> &, ErrorHandler * = 0) const;
- enum {
- HEADERSIZE = 6, RECSIZE = 2,
- L_SINGLE = 1, L_PAIR = 2, L_CURSIVE = 3, L_MARKTOBASE = 4,
- L_MARKTOLIGATURE = 5, L_MARKTOMARK = 6, L_CONTEXT = 7,
- L_CHAIN = 8, L_EXTENSION = 9
- };
- private:
- Data _d;
- int _type;
- Data subtable(int i) const;
-};
-
-class GposValue { public:
- static inline int size(uint16_t format);
- static inline int16_t xplacement(uint16_t format, const Data &);
- static inline int16_t yplacement(uint16_t format, const Data &);
- static inline int16_t xadvance(uint16_t format, const Data &);
- static inline int16_t yadvance(uint16_t format, const Data &);
- enum {
- F_XPLACEMENT = 0x0001,
- F_YPLACEMENT = 0x0002,
- F_XADVANCE = 0x0004,
- F_YADVANCE = 0x0008,
- F_XPLACEMENT_DEVICE = 0x0010,
- F_YPLACEMENT_DEVICE = 0x0020,
- F_XADVANCE_DEVICE = 0x0040,
- F_YADVANCE_DEVICE = 0x0080
- };
- private:
- static const int nibble_bitcount_x2[];
-};
-
-class GposSingle { public:
- GposSingle(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- void unparse(Vector<Positioning> &) const;
- enum { F2_HEADERSIZE = 8 };
- private:
- Data _d;
-};
-
-class GposPair { public:
- GposPair(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- void unparse(Vector<Positioning> &) const;
- enum { F1_HEADERSIZE = 10, F1_RECSIZE = 2,
- PAIRSET_HEADERSIZE = 2, PAIRVALUE_HEADERSIZE = 2,
- F2_HEADERSIZE = 16 };
- private:
- Data _d;
-};
-
-struct Position {
- Glyph g;
- int pdx, pdy; // placement
- int adx, ady; // advance
- inline Position();
- inline Position(Glyph, uint16_t format, const Data &);
- inline Position(uint16_t format, const Data &);
- inline Position(Glyph, const Position &);
- inline Position(Glyph g, int pdx, int pdy, int adx, int ady);
- bool empty() const { return pdx == 0 && pdy == 0 && adx == 0 && ady == 0; }
- operator bool() const { return !empty(); }
- bool h_empty() const { return pdx == 0 && pdy == 0 && adx == 0; }
- bool placed() const { return pdx != 0 || pdy != 0; }
- void unparse(StringAccum &, const Vector<PermString> * = 0) const;
- String unparse(const Vector<PermString> * = 0) const;
-};
-
-class Positioning { public:
-
- Positioning();
-
- // single positioning
- inline Positioning(const Position &);
-
- // pair positioning
- inline Positioning(const Position &, const Position &);
-
- bool context_in(const Coverage &) const;
- bool context_in(const GlyphSet &) const;
-
- // types
- inline operator bool() const;
- inline bool is_single() const;
- inline bool is_pair() const;
- inline bool is_pairkern() const;
-
- // extract data
- const Position &left() const { return _left; }
- Glyph left_glyph() const { return _left.g; }
- const Position &right() const { return _right; }
- Glyph right_glyph() const { return _right.g; }
- inline void all_in_glyphs(Vector<Glyph> &gs) const;
-
- void unparse(StringAccum &, const Vector<PermString> * = 0) const;
- String unparse(const Vector<PermString> * = 0) const;
-
- private:
-
- Position _left;
- Position _right;
-
-};
-
-inline int GposValue::size(uint16_t format)
-{
- return (nibble_bitcount_x2[format & 15] + nibble_bitcount_x2[(format>>4) & 15]);
-}
-
-inline int16_t GposValue::xplacement(uint16_t format, const Data &d)
-{
- if (format & F_XPLACEMENT)
- return d.s16(0);
- else
- return 0;
-}
-
-inline int16_t GposValue::yplacement(uint16_t format, const Data &d)
-{
- if (format & F_YPLACEMENT)
- return d.s16((format & F_XPLACEMENT ? 2 : 0));
- else
- return 0;
-}
-
-inline int16_t GposValue::xadvance(uint16_t format, const Data &d)
-{
- if (format & F_XADVANCE)
- return d.s16(nibble_bitcount_x2[format & (F_XADVANCE - 1)]);
- else
- return 0;
-}
-
-inline int16_t GposValue::yadvance(uint16_t format, const Data &d)
-{
- if (format & F_YADVANCE)
- return d.s16(nibble_bitcount_x2[format & (F_YADVANCE - 1)]);
- else
- return 0;
-}
-
-inline Position::Position()
- : g(0)
-{
-}
-
-inline Position::Position(Glyph g_, uint16_t format, const Data &value)
- : g(g_),
- pdx(GposValue::xplacement(format, value)), pdy(GposValue::yplacement(format, value)),
- adx(GposValue::xadvance(format, value)), ady(GposValue::yadvance(format, value))
-{
-}
-
-inline Position::Position(uint16_t format, const Data &value)
- : g(0),
- pdx(GposValue::xplacement(format, value)), pdy(GposValue::yplacement(format, value)),
- adx(GposValue::xadvance(format, value)), ady(GposValue::yadvance(format, value))
-{
-}
-
-inline Position::Position(Glyph g_, const Position &p)
- : g(g_), pdx(p.pdx), pdy(p.pdy), adx(p.adx), ady(p.ady)
-{
-}
-
-inline Position::Position(Glyph g_, int pdx_, int pdy_, int adx_, int ady_)
- : g(g_), pdx(pdx_), pdy(pdy_), adx(adx_), ady(ady_)
-{
-}
-
-inline Positioning::Positioning(const Position &left)
- : _left(left)
-{
-}
-
-inline Positioning::Positioning(const Position &left, const Position &right)
- : _left(left), _right(right)
-{
-}
-
-inline Positioning::operator bool() const
-{
- return _left.g != 0;
-}
-
-inline bool Positioning::is_single() const
-{
- return _left.g != 0 && _right.g == 0;
-}
-
-inline bool Positioning::is_pair() const
-{
- return _left.g != 0 && _right.g != 0;
-}
-
-inline bool Positioning::is_pairkern() const
-{
- return _left.g != 0 && !_left.placed() && _right.g != 0 && _right.h_empty();
-}
-
-inline void Positioning::all_in_glyphs(Vector<Glyph> &gs) const
-{
- gs.clear();
- if (_left.g != 0)
- gs.push_back(_left.g);
- if (_right.g != 0)
- gs.push_back(_right.g);
-}
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgsub.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgsub.hh
deleted file mode 100644
index 79c1e9edd89..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfgsub.hh
+++ /dev/null
@@ -1,415 +0,0 @@
-// -*- related-file-name: "../../libefont/otfgsub.cc" -*-
-#ifndef EFONT_OTFGSUB_HH
-#define EFONT_OTFGSUB_HH
-#include <efont/otf.hh>
-#include <efont/otfdata.hh>
-namespace Efont { namespace OpenType {
-class GsubLookup;
-class Substitution;
-
-class Gsub { public:
-
- Gsub(const Data &, const Font *, ErrorHandler * = 0);
- // default destructor
-
- const ScriptList &script_list() const { return _script_list; }
- const FeatureList &feature_list() const { return _feature_list; }
- bool chaincontext_reverse_backtrack() const { return _chaincontext_reverse_backtrack; }
-
- int nlookups() const;
- GsubLookup lookup(unsigned) const;
-
- enum { HEADERSIZE = 10 };
-
- private:
-
- ScriptList _script_list;
- FeatureList _feature_list;
- Data _lookup_list;
- bool _chaincontext_reverse_backtrack;
-
-};
-
-class GsubLookup { public:
- GsubLookup(const Data &);
- int type() const { return _type; }
- uint16_t flags() const { return _d.u16(2); }
- void mark_out_glyphs(const Gsub &gsub, Vector<bool> &gmap) const;
- bool unparse_automatics(const Gsub &gsub, Vector<Substitution> &subs, const Coverage &limit) const;
- bool apply(const Glyph *, int pos, int n, Substitution &) const;
- enum {
- HEADERSIZE = 6, RECSIZE = 2,
- L_SINGLE = 1, L_MULTIPLE = 2, L_ALTERNATE = 3, L_LIGATURE = 4,
- L_CONTEXT = 5, L_CHAIN = 6, L_EXTENSION = 7, L_REVCHAIN = 8
- };
- private:
- Data _d;
- int _type;
- Data subtable(int i) const;
-};
-
-class GsubSingle { public:
- GsubSingle(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- Glyph map(Glyph) const;
- void mark_out_glyphs(Vector<bool> &gmap) const;
- void unparse(Vector<Substitution> &subs, const Coverage &limit) const;
- bool apply(const Glyph *, int pos, int n, Substitution &) const;
- enum { HEADERSIZE = 6, FORMAT2_RECSIZE = 2 };
- private:
- Data _d;
-};
-
-class GsubMultiple { public:
- GsubMultiple(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- bool map(Glyph, Vector<Glyph> &) const;
- void mark_out_glyphs(Vector<bool> &gmap) const;
- void unparse(Vector<Substitution> &, bool alternate = false) const;
- bool apply(const Glyph *, int pos, int n, Substitution &, bool alternate = false) const;
- enum { HEADERSIZE = 6, RECSIZE = 2,
- SEQ_HEADERSIZE = 2, SEQ_RECSIZE = 2 };
- private:
- Data _d;
-};
-
-class GsubLigature { public:
- GsubLigature(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- bool map(const Vector<Glyph> &, Glyph &, int &) const;
- void mark_out_glyphs(Vector<bool> &gmap) const;
- void unparse(Vector<Substitution> &) const;
- bool apply(const Glyph *, int pos, int n, Substitution &) const;
- enum { HEADERSIZE = 6, RECSIZE = 2,
- SET_HEADERSIZE = 2, SET_RECSIZE = 2,
- LIG_HEADERSIZE = 4, LIG_RECSIZE = 2 };
- private:
- Data _d;
-};
-
-class GsubContext { public:
- GsubContext(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- void mark_out_glyphs(const Gsub &gsub, Vector<bool> &gmap) const;
- bool unparse(const Gsub &gsub, Vector<Substitution> &out_subs, const Coverage &limit) const;
- enum { F3_HSIZE = 6, SUBRECSIZE = 4 };
- private:
- Data _d;
- static void subruleset_mark_out_glyphs(const Data &data, int nsub, int subtab_offset, const Gsub &gsub, Vector<bool> &gmap);
- static bool f1_unparse(const Data& data,
- int nsub, int subtab_offset,
- const Gsub& gsub, Vector<Substitution>& outsubs,
- Substitution prototype_sub);
- static bool f3_unparse(const Data &data,
- int nglyph, int glyphtab_offset, const Coverage &limit,
- int nsub, int subtab_offset,
- const Gsub &gsub, Vector<Substitution> &outsubs,
- const Substitution &prototype_sub);
- friend class GsubChainContext;
-};
-
-class GsubChainContext { public:
- GsubChainContext(const Data &);
- // default destructor
- Coverage coverage() const noexcept;
- void mark_out_glyphs(const Gsub &gsub, Vector<bool> &gmap) const;
- bool unparse(const Gsub &gsub, Vector<Substitution> &subs, const Coverage &limit) const;
- enum { F1_HEADERSIZE = 6, F1_RECSIZE = 2,
- F1_SRS_HSIZE = 2, F1_SRS_RSIZE = 2,
- F3_HSIZE = 4, F3_INPUT_HSIZE = 2, F3_LOOKAHEAD_HSIZE = 2, F3_SUBST_HSIZE = 2 };
- private:
- Data _d;
- bool f1_unparse(const Gsub &gsub, Vector<Substitution> &subs, const Coverage &limit) const;
- bool f3_unparse(const Gsub &gsub, Vector<Substitution> &subs, const Coverage &limit) const;
-};
-
-class Substitution { public:
-
- Substitution();
- Substitution(const Substitution &);
-
- // single substitution
- Substitution(Glyph in, Glyph out);
-
- // multiple substitution
- Substitution(Glyph in, const Vector<Glyph> &out, bool is_alternate = false);
-
- // ligature substitution
- Substitution(Glyph in1, Glyph in2, Glyph out);
- Substitution(const Vector<Glyph> &in, Glyph out);
- Substitution(int nin, const Glyph *in, Glyph out);
-
- // space
- Substitution(int nleft, int nin, int nout, int nright);
-
- ~Substitution();
-
- Substitution &operator=(const Substitution &);
-
- bool context_in(const Coverage &) const;
- bool context_in(const GlyphSet &) const;
-
- // types
- inline operator bool() const;
- bool is_noop() const;
- inline bool is_single() const;
- inline bool is_multiple() const;
- inline bool is_alternate() const;
- inline bool is_ligature() const;
- inline bool is_simple_context() const;
- inline bool is_single_lcontext() const;
- inline bool is_single_rcontext() const;
- inline bool is_lcontext() const;
- inline bool is_rcontext() const;
-
- // extract data
- inline Glyph left_glyph() const;
- inline int left_nglyphs() const;
- inline Glyph *left_glyphptr();
- inline const Glyph *left_glyphptr() const;
-
- inline Glyph in_glyph() const;
- inline Glyph in_glyph(int pos) const;
- inline bool in_glyphs(Vector<Glyph> &) const;
- inline int in_nglyphs() const;
- inline Glyph *in_glyphptr();
- inline const Glyph *in_glyphptr() const;
-
- inline bool in_matches(int pos, Glyph) const;
-
- inline Glyph out_glyph() const;
- inline Glyph out_glyph(int pos) const;
- inline bool out_glyphs(Vector<Glyph> &) const;
- inline Glyph *out_glyphptr();
- inline const Glyph *out_glyphptr() const;
-
- inline int out_nglyphs() const;
- inline Glyph right_glyph() const;
- inline Glyph *right_glyphptr();
- inline const Glyph *right_glyphptr() const;
-
- bool all_in_glyphs(Vector<Glyph> &gs) const;
- bool all_out_glyphs(Vector<Glyph> &gs) const;
-
- // alter
- void add_outer_left(Glyph);
- void remove_outer_left();
- Substitution in_out_append_glyph(Glyph) const;
- bool out_alter(const Substitution &, int) noexcept;
- void add_outer_right(Glyph);
- void remove_outer_right();
-
- void unparse(StringAccum &, const Vector<PermString> * = &debug_glyph_names) const;
- String unparse(const Vector<PermString> * = &debug_glyph_names) const;
-
- private:
-
- enum { T_NONE = 0, T_GLYPH, T_GLYPHS, T_COVERAGE };
- typedef union {
- Glyph gid;
- Glyph *gids; // first entry is a count
- Coverage *coverage;
- } Substitute;
-
- Substitute _left;
- Substitute _in;
- Substitute _out;
- Substitute _right;
-
- uint8_t _left_is;
- uint8_t _in_is;
- uint8_t _out_is;
- uint8_t _right_is;
-
- bool _alternate : 1;
-
- static void clear(Substitute &, uint8_t &);
- static void assign_space(Substitute &, uint8_t &, int);
- static void assign(Substitute &, uint8_t &, Glyph);
- static void assign(Substitute &, uint8_t &, int, const Glyph *);
- static void assign(Substitute &, uint8_t &, const Coverage &);
- static void assign(Substitute &, uint8_t &, const Substitute &, uint8_t);
- static void assign_append(Substitute &, uint8_t &, const Substitute &, uint8_t, const Substitute &, uint8_t);
- static void assign_append(Substitute &, uint8_t &, const Substitute &, uint8_t, Glyph);
- static bool substitute_in(const Substitute &, uint8_t, const Coverage &);
- static bool substitute_in(const Substitute &, uint8_t, const GlyphSet &);
-
- static Glyph extract_glyph(const Substitute &, uint8_t) noexcept;
- static Glyph extract_glyph(const Substitute &, int which, uint8_t) noexcept;
- static bool extract_glyphs(const Substitute &, uint8_t, Vector<Glyph> &, bool coverage_ok) noexcept;
- static Glyph *extract_glyphptr(const Substitute &, uint8_t) noexcept;
- static int extract_nglyphs(const Substitute &, uint8_t, bool coverage_ok) noexcept;
- static bool matches(const Substitute &, uint8_t, int pos, Glyph) noexcept;
-
- static void unparse_glyphids(StringAccum &, const Substitute &, uint8_t, const Vector<PermString> *) noexcept;
-
-};
-
-inline Substitution::Substitution()
- : _left_is(T_NONE), _in_is(T_NONE), _out_is(T_NONE), _right_is(T_NONE)
-{
-}
-
-/* Single 1: u16 format, offset coverage, u16 glyphdelta
- Single 2: u16 format, offset coverage, u16 count, glyph subst[]
- Multiple 1: u16 format, offset coverage, u16 count, offset sequence[];
- sequence is: u16 count, glyph subst[]
- Alternate 1: u16 format, offset coverage, u16 count, offset alternates[];
- alternate is: u16 count, glyph alts[]
- Ligature 1: u16 format, offset coverage, u16 count, offset sets[];
- set is: u16 count, offset ligatures[];
- ligature is: glyph result, u16 count, glyph components[]
-*/
-
-inline Substitution::operator bool() const
-{
- return !(_left_is == T_NONE && _in_is == T_NONE && _out_is == T_NONE && _right_is == T_NONE);
-}
-
-inline bool Substitution::is_single() const
-{
- return _left_is == T_NONE && _in_is == T_GLYPH && _out_is == T_GLYPH && _right_is == T_NONE;
-}
-
-inline bool Substitution::is_multiple() const
-{
- return _left_is == T_NONE && _in_is == T_GLYPH && _out_is == T_GLYPHS && _right_is == T_NONE && !_alternate;
-}
-
-inline bool Substitution::is_alternate() const
-{
- return _left_is == T_NONE && _in_is == T_GLYPH && _out_is == T_GLYPHS && _right_is == T_NONE && _alternate;
-}
-
-inline bool Substitution::is_ligature() const
-{
- return _left_is == T_NONE && _in_is == T_GLYPHS && _out_is == T_GLYPH && _right_is == T_NONE;
-}
-
-inline bool Substitution::is_simple_context() const
-{
- return _left_is != T_COVERAGE && (_in_is == T_GLYPH || _in_is == T_GLYPHS) && (_out_is == T_GLYPH || _out_is == T_GLYPHS) && _right_is != T_COVERAGE;
-}
-
-inline bool Substitution::is_single_lcontext() const
-{
- return _left_is == T_GLYPH && _in_is == T_GLYPH && _out_is == T_GLYPH && _right_is == T_NONE;
-}
-
-inline bool Substitution::is_single_rcontext() const
-{
- return _left_is == T_NONE && _in_is == T_GLYPH && _out_is == T_GLYPH && _right_is == T_GLYPH;
-}
-
-inline Glyph Substitution::left_glyph() const
-{
- return extract_glyph(_left, _left_is);
-}
-
-inline int Substitution::left_nglyphs() const
-{
- return extract_nglyphs(_left, _left_is, false);
-}
-
-inline Glyph Substitution::in_glyph() const
-{
- return extract_glyph(_in, _in_is);
-}
-
-inline Glyph Substitution::in_glyph(int which) const
-{
- return extract_glyph(_in, which, _in_is);
-}
-
-inline bool Substitution::in_glyphs(Vector<Glyph> &v) const
-{
- return extract_glyphs(_in, _in_is, v, true);
-}
-
-inline int Substitution::in_nglyphs() const
-{
- return extract_nglyphs(_in, _in_is, true);
-}
-
-inline bool Substitution::in_matches(int pos, Glyph g) const
-{
- return matches(_in, _in_is, pos, g);
-}
-
-inline Glyph Substitution::out_glyph() const
-{
- return extract_glyph(_out, _out_is);
-}
-
-inline Glyph Substitution::out_glyph(int which) const
-{
- return extract_glyph(_out, which, _out_is);
-}
-
-inline bool Substitution::out_glyphs(Vector<Glyph> &v) const
-{
- return extract_glyphs(_out, _out_is, v, false);
-}
-
-inline int Substitution::out_nglyphs() const
-{
- return extract_nglyphs(_out, _out_is, false);
-}
-
-inline Glyph Substitution::right_glyph() const
-{
- return extract_glyph(_right, _right_is);
-}
-
-inline const Glyph *Substitution::left_glyphptr() const
-{
- return extract_glyphptr(_left, _left_is);
-}
-
-inline Glyph *Substitution::left_glyphptr()
-{
- return extract_glyphptr(_left, _left_is);
-}
-
-inline const Glyph *Substitution::in_glyphptr() const
-{
- return extract_glyphptr(_in, _in_is);
-}
-
-inline Glyph *Substitution::in_glyphptr()
-{
- return extract_glyphptr(_in, _in_is);
-}
-
-inline const Glyph *Substitution::out_glyphptr() const
-{
- return extract_glyphptr(_out, _out_is);
-}
-
-inline Glyph *Substitution::out_glyphptr()
-{
- return extract_glyphptr(_out, _out_is);
-}
-
-inline const Glyph *Substitution::right_glyphptr() const
-{
- return extract_glyphptr(_right, _right_is);
-}
-
-inline Glyph *Substitution::right_glyphptr()
-{
- return extract_glyphptr(_right, _right_is);
-}
-
-inline StringAccum &operator<<(StringAccum &sa, const Substitution &sub)
-{
- sub.unparse(sa);
- return sa;
-}
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfname.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfname.hh
deleted file mode 100644
index 692354f0f97..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfname.hh
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- related-file-name: "../../libefont/otfname.cc" -*-
-#ifndef EFONT_OTFNAME_HH
-#define EFONT_OTFNAME_HH
-#include <efont/otf.hh>
-#include <efont/otfdata.hh> // for ntohl()
-#include <lcdf/error.hh>
-namespace Efont { namespace OpenType {
-
-class Name { public:
-
- Name(const String &, ErrorHandler * = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- enum NameID { N_COPYRIGHT = 0, N_FAMILY = 1, N_SUBFAMILY = 2,
- N_UNIQUEID = 3, N_FULLNAME = 4, N_VERSION = 5,
- N_POSTSCRIPT = 6, N_TRADEMARK = 7, N_MANUFACTURER = 8,
- N_DESIGNER = 9, N_DESCRIPTION = 10, N_VENDOR_URL = 11,
- N_DESIGNER_URL = 12, N_LICENSE_DESCRIPTION = 13,
- N_LICENSE_URL = 14, N_PREF_FAMILY = 16,
- N_PREF_SUBFAMILY = 17, N_MAC_COMPAT_FULLNAME = 18,
- N_SAMPLE_TEXT = 19, N_POSTSCRIPT_CID = 20 };
- enum Platform { P_UNICODE = 0, P_MACINTOSH = 1, P_MICROSOFT = 3,
- E_MS_UNICODE_BMP = 1, E_MAC_ROMAN = 0,
- L_MS_ENGLISH_AMERICAN = 0x409 };
- enum { HEADER_SIZE = 6, NAMEREC_SIZE = 12 };
-
- typedef uint8_t namerecord_t[NAMEREC_SIZE];
- typedef const namerecord_t *const_iterator;
-
- inline static int nameid(const namerecord_t &);
- inline static int platform(const namerecord_t &);
- inline static int encoding(const namerecord_t &);
- inline static int language(const namerecord_t &);
-
- inline const_iterator begin() const;
- inline const_iterator end() const;
- String name(const_iterator) const;
- String utf8_name(const_iterator) const;
- String english_name(int nameid) const;
-
- // check version string for backwards compatibility
- bool version_chaincontext_reverse_backtrack() const;
-
- struct PlatformPred {
- inline PlatformPred(int nameid, int platform = -1, int encoding = -1, int language = -1);
- inline bool operator()(const namerecord_t &) const;
- private:
- int _nameid, _platform, _encoding, _language;
- };
-
- struct EnglishPlatformPred {
- EnglishPlatformPred(int nameid) : _nameid(nameid) { }
- inline bool operator()(const namerecord_t &) const;
- private:
- int _nameid;
- };
-
- private:
-
- String _str;
- int _error;
-
- int parse_header(ErrorHandler *);
-
-};
-
-
-inline int Name::nameid(const namerecord_t &nr) {
- return Data::u16_aligned(reinterpret_cast<const unsigned char*>(&nr) + 6);
-}
-
-inline int Name::platform(const namerecord_t &nr) {
- return Data::u16_aligned(reinterpret_cast<const unsigned char*>(&nr));
-}
-
-inline int Name::encoding(const namerecord_t &nr) {
- return Data::u16_aligned(reinterpret_cast<const unsigned char*>(&nr) + 2);
-}
-
-inline int Name::language(const namerecord_t &nr) {
- return Data::u16_aligned(reinterpret_cast<const unsigned char*>(&nr) + 4);
-}
-
-inline Name::const_iterator Name::begin() const {
- return reinterpret_cast<const_iterator>(_str.udata() + HEADER_SIZE);
-}
-
-inline Name::const_iterator Name::end() const {
- if (_error >= 0) {
- int count = Data::u16_aligned(_str.udata() + 2);
- return reinterpret_cast<const_iterator>(_str.udata() + HEADER_SIZE + NAMEREC_SIZE * count);
- } else
- return reinterpret_cast<const_iterator>(_str.udata() + HEADER_SIZE);
-}
-
-
-inline Name::PlatformPred::PlatformPred(int nid, int p, int e, int l)
- : _nameid(nid), _platform(p), _encoding(e), _language(l) {
-}
-
-inline bool Name::PlatformPred::operator()(const namerecord_t &i) const {
- return (_nameid == nameid(i))
- && (_platform < 0 || _platform == platform(i))
- && (_encoding < 0 || _encoding == encoding(i))
- && (_language < 0 || _language == language(i));
-}
-
-inline bool Name::EnglishPlatformPred::operator()(const namerecord_t &i) const {
- if (_nameid == nameid(i)) {
- int p = platform(i), e = encoding(i), l = language(i);
- return (p == P_MACINTOSH && e == E_MAC_ROMAN && l == 0)
- || (p == P_MICROSOFT && e == E_MS_UNICODE_BMP && l == L_MS_ENGLISH_AMERICAN);
- } else
- return false;
-}
-
-} // namespace Efont::OpenType
-} // namespace Efont
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfos2.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfos2.hh
deleted file mode 100644
index c6bb5208aca..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfos2.hh
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- related-file-name: "../../libefont/otfos2.cc" -*-
-#ifndef EFONT_OTFOS2_HH
-#define EFONT_OTFOS2_HH
-#include <efont/otf.hh>
-#include <efont/otfdata.hh>
-#include <lcdf/error.hh>
-namespace Efont { namespace OpenType {
-
-class Os2 { public:
-
- Os2(const Data &, ErrorHandler * = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- enum Offsets { O_AVGCHARWIDTH = 2, O_SUBSCRIPTXSIZE = 10,
- O_SUBSCRIPTYSIZE = 12, O_SUBSCRIPTXOFFSET = 14,
- O_SUBSCRIPTYOFFSET = 16, O_SUPERSCRIPTXSIZE = 18,
- O_SUPERSCRIPTYSIZE = 20, O_SUPERSCRIPTXOFFSET = 22,
- O_SUPERSCRIPTYOFFSET = 24, O_STRIKEOUTSIZE = 26,
- O_STRIKEOUTPOSITION = 28, O_VENDORID = 58,
- O_TYPOASCENDER = 68, O_TYPODESCENDER = 70,
- O_TYPOLINEGAP = 72, O_XHEIGHT = 86, O_CAPHEIGHT = 88,
- O_LOWEROPTICALPOINTSIZE = 96, O_UPPEROPTICALPOINTSIZE = 98 };
- enum { HEADER_SIZE = 2 };
-
- inline int16_t typo_ascender() const;
- inline int16_t typo_descender() const;
- inline int16_t typo_line_gap() const;
- inline int16_t x_height() const;
- inline int16_t cap_height() const;
- inline double lower_optical_point_size() const;
- inline double upper_optical_point_size() const;
- inline bool has_optical_point_size() const noexcept;
- inline String vendor_id() const noexcept;
-
- private:
-
- Data _data;
- int _error;
-
- int parse_header(ErrorHandler *);
-
-};
-
-
-inline int16_t Os2::typo_ascender() const
-{
- return _data.s16(O_TYPOASCENDER);
-}
-
-inline int16_t Os2::typo_descender() const
-{
- return _data.s16(O_TYPODESCENDER);
-}
-
-inline int16_t Os2::typo_line_gap() const
-{
- return _data.s16(O_TYPOLINEGAP);
-}
-
-inline int16_t Os2::x_height() const
-{
- return _data.s16(O_XHEIGHT);
-}
-
-inline int16_t Os2::cap_height() const
-{
- return _data.s16(O_CAPHEIGHT);
-}
-
-inline double Os2::lower_optical_point_size() const
-{
- return _data.u16(O_LOWEROPTICALPOINTSIZE) / 20.;
-}
-
-inline double Os2::upper_optical_point_size() const
-{
- return _data.u16(O_UPPEROPTICALPOINTSIZE) / 20.;
-}
-
-inline bool Os2::has_optical_point_size() const noexcept
-{
- return _data.length() >= O_UPPEROPTICALPOINTSIZE + 2;
-}
-
-inline String Os2::vendor_id() const noexcept
-{
- return _data.substring(O_VENDORID, 4).string();
-}
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfpost.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfpost.hh
deleted file mode 100644
index 57564efc6a3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/otfpost.hh
+++ /dev/null
@@ -1,62 +0,0 @@
-// -*- related-file-name: "../../libefont/otfpost.cc" -*-
-#ifndef EFONT_OTFPOST_HH
-#define EFONT_OTFPOST_HH
-#include <efont/otfdata.hh>
-#include <lcdf/error.hh>
-namespace Efont { namespace OpenType {
-
-class Post { public:
-
- Post(const String &, ErrorHandler * = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- double italic_angle() const;
- bool is_fixed_pitch() const;
- inline int underline_position() const;
- inline int underline_thickness() const;
- inline uint32_t mem_type42(bool ismax) const;
- int nglyphs() const { return _nglyphs; }
- bool glyph_names(Vector<PermString> &gnames) const;
-
- private:
-
- Data _str;
- int _error;
- uint32_t _version;
- int _nglyphs;
- Vector<int> _extend_glyph_names;
-
- enum { HEADER_SIZE = 32, N_MAC_GLYPHS = 258 };
- int parse_header(ErrorHandler *);
-
-};
-
-inline int
-Post::underline_position() const
-{
- // NB: "This is the suggested distance of the top of the underline from
- // the baseline (negative values indicate below baseline). The PostScript
- // definition of this FontInfo dictionary key (the y coordinate of the
- // center of the stroke) is not used for historical reasons. The value of
- // the PostScript key may be calculated by subtracting half the
- // underlineThickness from the value of this field." -- OpenType spec
- return ok() ? _str.s16(8) : 0;
-}
-
-inline int
-Post::underline_thickness() const
-{
- return ok() ? _str.s16(10) : 0;
-}
-
-inline uint32_t
-Post::mem_type42(bool ismax) const
-{
- return ok() ? _str.u32(ismax ? 20 : 16) : 0;
-}
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh
deleted file mode 100644
index 360912a00d1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/pairop.hh
+++ /dev/null
@@ -1,113 +0,0 @@
-// -*- related-file-name: "../../libefont/pairop.cc" -*-
-#ifndef PAIROP_HH
-#define PAIROP_HH
-#include <efont/encoding.hh> /* get GlyphIndex */
-namespace Efont {
-
-enum PairOpDefs {
-
- opNoop = -1,
- opLigature = -2,
-
- opLigSimple = 0,
- opLigSaveLeft = 1,
- opLigSaveRight = 2,
- opLigPast1 = 4,
- opLigPast2 = 8,
-
- opAllblock = 0
-
-};
-
-
-typedef int PairOpIndex;
-
-
-class PairOp { public:
-
- PairOp() { }
- inline PairOp(GlyphIndex l, GlyphIndex r, int v, PairOpIndex nl);
- inline PairOp(GlyphIndex l, GlyphIndex r, GlyphIndex x, int kind, PairOpIndex nl);
-
- void noopify() { _val = opNoop; }
- void set_value(int val) { _val = val; }
-
- inline void set_next(PairOpIndex);
-
- bool is_lig() const { return _val <= opLigature; }
- bool is_kern() const { return _val >= 0; }
- bool is_noop() const { return _val == opNoop; }
- int lig_kind() const { assert(is_lig()); return -_val+opLigature; }
-
- GlyphIndex left() const { return _left; }
- GlyphIndex right() const { return _right; }
- GlyphIndex result() const { assert(is_lig()); return _result; }
- int value() const { return _val; }
- PairOpIndex next_left() const { return _next_left; }
-
- private:
-
- GlyphIndex _left;
- GlyphIndex _right;
- GlyphIndex _result;
- int _val;
-
- PairOpIndex _next_left;
-
-};
-
-
-class PairProgram { public:
-
- PairProgram() : _reversed(false) { }
- PairProgram(const PairProgram &);
-
- void reserve_glyphs(int);
-
- PairOpIndex find_left(GlyphIndex gi) const { return _left_map[gi]; }
- PairOpIndex find(GlyphIndex leftgi, GlyphIndex rightgi) const;
-
- int op_count() const { return _op.size(); }
- const PairOp &op(PairOpIndex i) const { return _op[i]; }
-
- // Return true if it's a duplicate.
- bool add_kern(GlyphIndex, GlyphIndex, int);
- bool add_lig(GlyphIndex, GlyphIndex, GlyphIndex, int kind = opLigSimple);
-
- void set_reversed(bool r) { _reversed = r; }
- void unreverse();
- void optimize();
-
- void print() const;
-
- private:
-
- bool _reversed;
- Vector<PairOpIndex> _left_map;
- Vector<PairOp> _op;
-
- inline const char *print_name(GlyphIndex) const;
-
- PairProgram &operator=(const PairProgram &) { assert(0); return *this; }
-
-};
-
-
-inline PairOp::PairOp(GlyphIndex l, GlyphIndex r, int v, PairOpIndex nl)
- : _left(l), _right(r), _result(), _val(v), _next_left(nl)
-{
-}
-
-inline PairOp::PairOp(GlyphIndex l, GlyphIndex r, GlyphIndex x, int kind,
- PairOpIndex nl)
- : _left(l), _right(r), _result(x), _val(opLigature - kind), _next_left(nl)
-{
-}
-
-inline void PairOp::set_next(PairOpIndex nl)
-{
- _next_left = nl;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/psres.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/psres.hh
deleted file mode 100644
index f33ee8ab0e8..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/psres.hh
+++ /dev/null
@@ -1,74 +0,0 @@
-// -*- related-file-name: "../../libefont/psres.cc" -*-
-#ifndef EFONT_PSRES_HH
-#define EFONT_PSRES_HH
-#include <lcdf/vector.hh>
-#include <lcdf/hashmap.hh>
-#include <lcdf/string.hh>
-#include <lcdf/filename.hh>
-class Slurper;
-namespace Efont {
-class PsresDatabaseSection;
-
-class PsresDatabase { public:
-
- PsresDatabase();
- ~PsresDatabase();
-
- void add_psres_path(const char* path, const char* defaults, bool override);
- bool add_psres_file(Filename&, bool override);
- void add_database(PsresDatabase*, bool override);
-
- inline PsresDatabaseSection* section(PermString section) const;
- const String& value(PermString section, PermString key) const;
- const String& unescaped_value(PermString section, PermString key) const;
- Filename filename_value(PermString section, PermString key) const;
-
- private:
-
- HashMap<PermString, int> _section_map;
- Vector<PsresDatabaseSection*> _sections;
-
- PsresDatabaseSection* force_section(PermString);
- bool add_one_psres_file(Slurper&, bool override);
- void add_psres_directory(PermString);
-
-};
-
-class PsresDatabaseSection { public:
-
- PsresDatabaseSection(PermString);
-
- PermString section_name() const { return _section_name; }
-
- void add_psres_file_section(Slurper&, PermString, bool);
- void add_section(PsresDatabaseSection*, bool override);
-
- const String& value(PermString key) { return value(_map[key]); }
- inline const String& unescaped_value(PermString key) const;
- Filename filename_value(PermString key);
-
- private:
-
- PermString _section_name;
- HashMap<PermString, int> _map;
- Vector<PermString> _directories;
- Vector<String> _values;
- Vector<int> _value_escaped;
-
- const String& value(int index);
-
-};
-
-inline PsresDatabaseSection* PsresDatabase::section(PermString n) const
-{
- return _sections[_section_map[n]];
-}
-
-inline const String& PsresDatabaseSection::unescaped_value(PermString key) const
-{
- assert(!_value_escaped[_map[key]]);
- return _values[_map[key]];
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh
deleted file mode 100644
index dff5514772a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1bounds.hh
+++ /dev/null
@@ -1,96 +0,0 @@
-// -*- related-file-name: "../../libefont/t1bounds.cc" -*-
-#ifndef EFONT_T1BOUNDS_HH
-#define EFONT_T1BOUNDS_HH
-#include <efont/t1interp.hh>
-#include <lcdf/transform.hh>
-namespace Efont {
-
-class CharstringBounds : public CharstringInterp { public:
-
- CharstringBounds();
- CharstringBounds(const Transform&);
- CharstringBounds(const Transform&, const Vector<double>& weight_vec);
- ~CharstringBounds() { }
-
- const Point& width() const { return _width; }
- double x_width() const { return _width.x; }
- bool bb_known() const { return KNOWN(_lb.x); }
- double bb_left() const { return _lb.x; }
- double bb_top() const { return _rt.y; }
- double bb_right() const { return _rt.x; }
- double bb_bottom() const { return _lb.y; }
- const Point& bb_bottom_left() const { return _lb; }
- const Point& bb_top_right() const { return _rt; }
-
- void act_width(int, const Point&);
- void act_line(int, const Point&, const Point&);
- void act_curve(int, const Point&, const Point&, const Point&, const Point&);
- inline void mark(const Point&);
-
- void clear();
- bool char_bounds(const CharstringContext&, bool shift = true);
- void translate(double dx, double dy);
- inline Point transform(const Point& p) const;
-
- // output: [left, bottom, right, top]
- bool output(double bb[4], double& width, bool use_cur_width = false) const;
- static bool bounds(const CharstringContext&,
- double bounds[4], double& width);
- static bool bounds(const Transform&, const CharstringContext&,
- double bounds[4], double& width);
-
- private:
-
- Point _lb;
- Point _rt;
- Point _width;
- Transform _xf;
- Transform _nonfont_xf;
- const CharstringProgram* _last_xf_program;
-
- void set_xf(const CharstringProgram*);
-
- inline void xf_mark(const Point&);
- void xf_mark(const Bezier&);
-
- inline bool xf_inside(const Point&) const;
- inline bool xf_controls_inside(const Bezier&) const;
-
-};
-
-inline void CharstringBounds::xf_mark(const Point& p)
-{
- if (!KNOWN(_lb.x))
- _lb = _rt = p;
- if (p.x < _lb.x)
- _lb.x = p.x;
- else if (p.x > _rt.x)
- _rt.x = p.x;
- if (p.y < _lb.y)
- _lb.y = p.y;
- else if (p.y > _rt.y)
- _rt.y = p.y;
-}
-
-inline void CharstringBounds::mark(const Point& p)
-{
- xf_mark(p * _xf);
-}
-
-inline bool CharstringBounds::xf_inside(const Point& p) const
-{
- return p.x >= _lb.x && p.x <= _rt.x && p.y >= _lb.y && p.y <= _rt.y;
-}
-
-inline bool CharstringBounds::xf_controls_inside(const Bezier& b) const
-{
- return xf_inside(b.point(1)) && xf_inside(b.point(2));
-}
-
-inline Point CharstringBounds::transform(const Point& p) const
-{
- return p * _xf;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1cs.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1cs.hh
deleted file mode 100644
index d9f36db6cd9..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1cs.hh
+++ /dev/null
@@ -1,345 +0,0 @@
-// -*- related-file-name: "../../libefont/t1cs.cc" -*-
-#ifndef EFONT_T1CS_HH
-#define EFONT_T1CS_HH
-#include <lcdf/permstr.hh>
-#include <lcdf/string.hh>
-#include <lcdf/vector.hh>
-#include <lcdf/inttypes.h>
-namespace Efont {
-
-// Allow unknown doubles to have some `fuzz' -- so if an unknown double
-// is a bit off from the canonical UNKDOUBLE value, we'll still recognize
-// it as unknown. (Useful for interpolation.)
-#define UNKDOUBLE -9.79797e97
-#define MIN_KNOWN_DOUBLE -9.69696e97
-#define KNOWN(d) ((d) >= MIN_KNOWN_DOUBLE)
-
-class CharstringProgram;
-class CharstringInterp;
-struct CharstringContext;
-class MultipleMasterSpace;
-class Type1Encoding;
-
-class Charstring { public:
-
- Charstring() { }
- virtual ~Charstring();
-
- virtual bool process(CharstringInterp &) const = 0;
-
- enum Commands {
- cError = 0,
- cHstem = 1,
- cVstem = 3,
- cVmoveto = 4,
- cRlineto = 5,
- cHlineto = 6,
- cVlineto = 7,
- cRrcurveto = 8,
- cClosepath = 9,
- cCallsubr = 10,
- cReturn = 11,
- cEscape = 12,
- cHsbw = 13,
- cEndchar = 14,
- cBlend = 16,
- cHstemhm = 18,
- cHintmask = 19,
- cCntrmask = 20,
- cRmoveto = 21,
- cHmoveto = 22,
- cVstemhm = 23,
- cRcurveline = 24,
- cRlinecurve = 25,
- cVvcurveto = 26,
- cHhcurveto = 27,
- cShortint = 28,
- cCallgsubr = 29,
- cVhcurveto = 30,
- cHvcurveto = 31,
-
- cEscapeDelta = 32,
- cDotsection = 32 + 0,
- cVstem3 = 32 + 1,
- cHstem3 = 32 + 2,
- cAnd = 32 + 3,
- cOr = 32 + 4,
- cNot = 32 + 5,
- cSeac = 32 + 6,
- cSbw = 32 + 7,
- cStore = 32 + 8,
- cAbs = 32 + 9,
- cAdd = 32 + 10,
- cSub = 32 + 11,
- cDiv = 32 + 12,
- cLoad = 32 + 13,
- cNeg = 32 + 14,
- cEq = 32 + 15,
- cCallothersubr = 32 + 16,
- cPop = 32 + 17,
- cDrop = 32 + 18,
- cPut = 32 + 20,
- cGet = 32 + 21,
- cIfelse = 32 + 22,
- cRandom = 32 + 23,
- cMul = 32 + 24,
- cSqrt = 32 + 26,
- cDup = 32 + 27,
- cExch = 32 + 28,
- cIndex = 32 + 29,
- cRoll = 32 + 30,
- cSetcurrentpoint = 32 + 33,
- cHflex = 32 + 34,
- cFlex = 32 + 35,
- cHflex1 = 32 + 36,
- cFlex1 = 32 + 37,
-
- cLastCommand = cFlex1
- };
-
- enum OthersubrCommands {
- othcFlexend = 0,
- othcFlexbegin = 1,
- othcFlexmiddle = 2,
- othcReplacehints = 3,
- othcCountercontrolpart = 12,
- othcCountercontrol = 13,
- othcMM1 = 14,
- othcMM2 = 15,
- othcMM3 = 16,
- othcMM4 = 17,
- othcMM6 = 18,
- othcITC_load = 19,
- othcITC_add = 20,
- othcITC_sub = 21,
- othcITC_mul = 22,
- othcITC_div = 23,
- othcITC_put = 24,
- othcITC_get = 25,
- othcITC_unknown = 26,
- othcITC_ifelse = 27,
- othcITC_random = 28
- };
-
- static String command_name(int);
- static const char * const command_names[];
-
- static const char * const standard_encoding[256];
-
-};
-
-
-class Type1Charstring : public Charstring { public:
-
- Type1Charstring() { }
- inline Type1Charstring(const String &); // unencrypted
- Type1Charstring(int lenIV, const String &); // encrypted
- // default copy constructor
- // default destructor
- // default assignment operator
-
- inline const uint8_t *data() const;
- int length() const { return _s.length(); }
- operator String::unspecified_bool_type() const { return _s; }
-
- inline const String &data_string() const;
- inline String substring(int pos, int len) const;
- int first_caret_after(int pos) const;
-
- inline void assign(const String &);
- void prepend(const Type1Charstring &);
- void assign_substring(int pos, int len, const String &);
-
- bool process(CharstringInterp &) const;
-
- private:
-
- mutable String _s;
- mutable int _key;
-
- void decrypt() const;
-
-};
-
-
-class Type2Charstring : public Charstring { public:
-
- Type2Charstring() { }
- inline Type2Charstring(const String &);
- // default copy constructor
- // default destructor
- // default assignment operator
-
- inline const uint8_t *data() const;
- int length() const { return _s.length(); }
-
- bool process(CharstringInterp &) const;
-
- private:
-
- String _s;
-
-};
-
-
-struct CharstringContext {
-
- CharstringContext(const CharstringProgram *program_, const Charstring *cs_) : program(program_), cs(cs_) { }
-
- operator String::unspecified_bool_type() const {
- return cs != 0 ? &String::length : 0;
- }
-
- const CharstringProgram *program;
- const Charstring *cs;
-
-};
-
-
-class CharstringProgram { public:
-
- explicit CharstringProgram(unsigned units_per_em);
- virtual ~CharstringProgram() { }
-
- virtual PermString font_name() const { return PermString(); }
- virtual void font_matrix(double[6]) const;
- unsigned units_per_em() const { return _units_per_em; }
-
- inline const CharstringProgram *program(int) const;
- virtual const CharstringProgram *child_program(int) const;
- bool parent_program() const { return _parent_program; }
- void set_parent_program(bool pp) { _parent_program = pp; }
-
- virtual int nsubrs() const { return 0; }
- virtual Charstring *subr(int) const { return 0; }
- virtual int subr_bias() const { return 0; }
-
- virtual int ngsubrs() const { return 0; }
- virtual Charstring *gsubr(int) const { return 0; }
- virtual int gsubr_bias() const { return 0; }
-
- inline int nxsubrs(bool g) const;
- inline Charstring *xsubr(bool g, int) const;
- inline int xsubr_bias(bool g) const;
-
- virtual int nglyphs() const { return 0; }
- virtual PermString glyph_name(int) const { return PermString(); }
- virtual void glyph_names(Vector<PermString> &) const;
- virtual Charstring *glyph(int) const { return 0; }
- virtual Charstring *glyph(PermString) const { return 0; }
-
- inline CharstringContext glyph_context(int) const;
- inline CharstringContext glyph_context(PermString) const;
-
- virtual bool is_mm() const { return mmspace() != 0; }
- virtual MultipleMasterSpace *mmspace() const { return 0; }
- enum VectorType { VEC_WEIGHT = 0, VEC_NORM_DESIGN = 1, VEC_DESIGN = 2 };
- virtual Vector<double> *mm_vector(VectorType, bool writable) const;
-
- virtual Type1Encoding *type1_encoding() const { return 0; }
-
- virtual double global_width_x(bool is_nominal) const;
-
- private:
-
- bool _parent_program;
- uint16_t _units_per_em;
-
-};
-
-
-enum Type1Defs {
- t1Warmup_ee = 4,
- t1R_ee = 55665,
- t1R_cs = 4330,
- t1C1 = 52845,
- t1C2 = 22719
-};
-
-
-inline Type1Charstring::Type1Charstring(const String &s)
- : Charstring(), _s(s), _key(-1)
-{
-}
-
-inline void Type1Charstring::assign(const String &s)
-{
- _s = s;
- _key = -1;
-}
-
-inline const uint8_t *Type1Charstring::data() const
-{
- if (_key >= 0)
- decrypt();
- return reinterpret_cast<const uint8_t *>(_s.data());
-}
-
-inline const String &Type1Charstring::data_string() const
-{
- if (_key >= 0)
- decrypt();
- return _s;
-}
-
-inline String Type1Charstring::substring(int pos, int len) const
-{
- if (_key >= 0)
- decrypt();
- return _s.substring(pos, len);
-}
-
-inline bool operator==(const Type1Charstring &a, const Type1Charstring &b)
-{
- return a.data_string() == b.data_string();
-}
-
-
-inline Type2Charstring::Type2Charstring(const String &s)
- : _s(s)
-{
-}
-
-inline const uint8_t *Type2Charstring::data() const
-{
- return reinterpret_cast<const uint8_t *>(_s.data());
-}
-
-
-inline int CharstringProgram::nxsubrs(bool g) const
-{
- return (g ? ngsubrs() : nsubrs());
-}
-
-inline Charstring *CharstringProgram::xsubr(bool g, int i) const
-{
- return (g ? gsubr(i) : subr(i));
-}
-
-inline int CharstringProgram::xsubr_bias(bool g) const
-{
- return (g ? gsubr_bias() : subr_bias());
-}
-
-inline const CharstringProgram *CharstringProgram::program(int gi) const
-{
- return (_parent_program ? child_program(gi) : this);
-}
-
-inline CharstringContext CharstringProgram::glyph_context(int gi) const
-{
- if (!_parent_program)
- return CharstringContext(this, glyph(gi));
- else if (const CharstringProgram *p = child_program(gi))
- return CharstringContext(p, p->glyph(gi));
- else
- return CharstringContext(0, 0);
-}
-
-inline CharstringContext CharstringProgram::glyph_context(PermString gn) const
-{
- return CharstringContext(this, glyph(gn));
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1csgen.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1csgen.hh
deleted file mode 100644
index 6f3fd4cd97e..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1csgen.hh
+++ /dev/null
@@ -1,127 +0,0 @@
-// -*- related-file-name: "../../libefont/t1csgen.cc" -*-
-#ifndef EFONT_T1CSGEN_HH
-#define EFONT_T1CSGEN_HH
-#include <efont/t1interp.hh>
-#include <lcdf/straccum.hh>
-namespace Efont {
-class Type1Font;
-
-class Type1CharstringGen { public:
-
- Type1CharstringGen(int precision = 5);
-
- int precision() const { return _precision; }
-
- void clear();
- char *data() { return _ncs.data(); }
- const char *data() const { return _ncs.data(); }
- int length() const { return _ncs.length(); }
-
- void gen_number(double, int kind = 0);
- void gen_command(int);
- void gen_stack(CharstringInterp &, int for_cmd);
-
- void append_charstring(const String &);
-
- const Point &current_point(bool real) const { return (real ? _true : _false); }
- void gen_moveto(const Point &, bool closepath, bool always);
-
- inline String take_string();
- Type1Charstring *output();
- void output(Type1Charstring &);
-
- static String callsubr_string(int subr);
-
- private:
-
- StringAccum _ncs;
- int _precision;
- double _f_precision;
-
- Point _true;
- Point _false;
-
- enum State { S_INITIAL, S_GEN };
- State _state;
-
- void gen_rational(int big_val, int divisor);
- bool gen_stem3_stack(CharstringInterp &interp);
-
-};
-
-class Type1CharstringGenInterp : public CharstringInterp { public:
-
- Type1CharstringGenInterp(int precision);
-
- int precision() const { return _csgen.precision(); }
- void set_direct_hint_replacement(bool dhr) { _direct_hr = dhr; }
- void set_hint_replacement_storage(Type1Font *);
-
- int nhints() const { return _stem_hstem.size(); }
- double max_flex_height() const { return _max_flex_height; }
- bool had_flex() const { return _had_flex; }
- bool had_bad_flex() const { return _had_bad_flex; }
- bool had_hr() const { return _had_hr; }
-
- const Type1CharstringGen &csgen() const { return _csgen; }
-
- void act_width(int, const Point &);
- void act_seac(int, double, double, double, int, int);
-
- void act_hstem(int, double, double);
- void act_vstem(int, double, double);
- void act_hintmask(int, const unsigned char *, int);
-
- void act_line(int, const Point &, const Point &);
- void act_curve(int, const Point &, const Point &, const Point &, const Point &);
- void act_closepath(int);
- void act_flex(int, const Point &, const Point &, const Point &, const Point &, const Point &, const Point &, const Point &, double);
-
- void intermediate_output(Type1Charstring &out);
- void run(const CharstringContext &g, Type1Charstring &out);
-
- private:
-
- // output
- Type1CharstringGen _csgen;
- mutable Type1CharstringGen _hint_csgen;
-
- // current glyph
- Point _width;
- enum State { S_INITIAL, S_OPEN, S_CLOSED, S_SEAC };
- State _state;
-
- // hints and hint replacement
- Vector<double> _stem_pos;
- Vector<double> _stem_width;
- Vector<int> _stem_hstem;
- String _last_hints;
-
- bool _in_hr;
- bool _direct_hr;
- int _hr_firstsubr;
- Type1Font *_hr_storage;
-
- // Flex
- double _max_flex_height;
- bool _had_flex;
- bool _had_bad_flex;
- bool _had_hr;
-
- inline void gen_number(double, int = 0);
- inline void gen_command(int);
- void gen_sbw(bool hints_follow);
- String gen_hints(const unsigned char *, int) const;
- void swap_stem_hints();
-
-};
-
-inline String Type1CharstringGen::take_string()
-{
- String s = _ncs.take_string();
- clear();
- return s;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1font.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1font.hh
deleted file mode 100644
index a879a11e9ab..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1font.hh
+++ /dev/null
@@ -1,167 +0,0 @@
-// -*- related-file-name: "../../libefont/t1font.cc" -*-
-#ifndef EFONT_T1FONT_HH
-#define EFONT_T1FONT_HH
-#include <efont/t1cs.hh>
-#include <lcdf/hashmap.hh>
-class StringAccum;
-class ErrorHandler;
-namespace Efont {
-class Type1Item;
-class Type1Definition;
-class Type1Encoding;
-class Type1IncludedFont;
-class Type1Subr;
-class Type1Reader;
-class Type1Writer;
-class MultipleMasterSpace;
-
-class Type1Font : public CharstringProgram { public:
-
- Type1Font(Type1Reader &);
- ~Type1Font();
-
- int read(Type1Reader &);
-
- bool ok() const;
-
- inline PermString font_name() const;
- void font_matrix(double[6]) const;
-
- int nitems() const { return _items.size(); }
- Type1Item *item(int i) const { return _items[i]; }
- void add_item(Type1Item *it) { _items.push_back(it); }
- void add_definition(int dict, Type1Definition *);
- void add_type1_encoding(Type1Encoding *);
-
- int nsubrs() const { return _subrs.size(); }
- Type1Charstring *subr(int) const;
-
- int nglyphs() const { return _glyphs.size(); }
- PermString glyph_name(int) const;
- Type1Charstring *glyph(int) const;
- Type1Charstring *glyph(PermString) const;
- void add_glyph(Type1Subr *);
-
- Type1Subr *subr_x(int i) const { return _subrs[i]; }
- bool set_subr(int, const Type1Charstring &, PermString definer = PermString());
- bool remove_subr(int);
- void fill_in_subrs();
- void renumber_subrs(const Vector<int> &); // dangerous!
-
- Type1Subr *glyph_x(int i) const { return _glyphs[i]; }
-
- Type1Encoding *type1_encoding() const { return _encoding; }
-
- // note: the order is relevant
- enum Dict {
- dFont = 0, dF = dFont,
- dFontInfo = 1, dFI = dFontInfo,
- dPrivate = 2, dP = dPrivate,
- dBlend = 3, dB = dBlend,
- dBlendFontInfo = dB+dFI, dBFI = dBlendFontInfo,
- dBlendPrivate = dB+dP, dBP = dBlendPrivate,
- dLast
- };
-
- Type1Definition *dict(int d, PermString s) const { return _dict[d][s]; }
- Type1Definition *dict(PermString s) const { return _dict[dF][s]; }
- Type1Definition *p_dict(PermString s) const { return _dict[dP][s]; }
- Type1Definition *b_dict(PermString s) const { return _dict[dB][s]; }
- Type1Definition *bp_dict(PermString s) const { return _dict[dBP][s];}
- Type1Definition *fi_dict(PermString s) const { return _dict[dFI][s];}
-
- typedef HashMap<PermString, Type1Definition *> DictHashMap;
- inline DictHashMap::const_iterator dict_begin(int dict) const;
- inline DictHashMap::iterator dict_begin(int dict);
- int first_dict_item(int d) const { return _index[d]; }
-
- Type1Definition *ensure(Dict, PermString);
- void add_header_comment(const String &);
-
- MultipleMasterSpace *create_mmspace(ErrorHandler * = 0) const;
- MultipleMasterSpace *mmspace() const;
-
- void undo_synthetic();
-
- void set_charstring_definer(PermString d) { _charstring_definer = d; }
-
- void write(Type1Writer &);
-
- // font skeletons
- static Type1Font *skeleton_make(PermString, const String &version = String());
- static Type1Font *skeleton_make_copy(const Type1Font *, PermString, const Vector<double> *xuid_extension);
- void skeleton_comments_end();
- void skeleton_fontinfo_end();
- void skeleton_fontdict_end();
- void skeleton_private_end();
- void skeleton_common_subrs();
-
- // for experts only
- void set_item(int, Type1Item *);
- inline void set_dict(int dict, PermString, Type1Definition *);
- void uncache_defs();
-
- private:
-
- mutable bool _cached_defs;
- bool _built;
- mutable PermString _font_name;
-
- Vector<Type1Item *> _items;
-
- HashMap<PermString, Type1Definition *> *_dict;
- int _index[dLast];
- int _dict_deltas[dLast];
-
- Vector<Type1Subr *> _subrs;
- Vector<Type1Subr *> _glyphs;
- HashMap<PermString, int> _glyph_map;
-
- PermString _charstring_definer;
- Type1Encoding *_encoding;
-
- mutable bool _cached_mmspace;
- mutable MultipleMasterSpace *_mmspace;
-
- Type1IncludedFont *_synthetic_item;
-
- Type1Font(PermString);
- Type1Font(const Type1Font &);
- Type1Font &operator=(const Type1Font &);
-
- void read_encoding(Type1Reader &, const char *);
- bool read_synthetic_font(Type1Reader &, const char *, StringAccum &);
- void cache_defs() const;
- void shift_indices(int, int);
-
- Type1Item *dict_size_item(int) const;
- int get_dict_size(int) const;
- void set_dict_size(int, int);
-
-};
-
-
-inline Type1Font::DictHashMap::const_iterator Type1Font::dict_begin(int dict) const
-{
- return _dict[dict].begin();
-}
-
-inline Type1Font::DictHashMap::iterator Type1Font::dict_begin(int dict)
-{
- return _dict[dict].begin();
-}
-
-inline void Type1Font::set_dict(int dict, PermString name, Type1Definition *t1d)
-{
- _dict[dict].insert(name, t1d);
-}
-
-inline PermString Type1Font::font_name() const
-{
- if (!_cached_defs)
- cache_defs();
- return _font_name;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1interp.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1interp.hh
deleted file mode 100644
index 16c878a3677..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1interp.hh
+++ /dev/null
@@ -1,239 +0,0 @@
-// -*- related-file-name: "../../libefont/t1interp.cc" -*-
-#ifndef EFONT_T1INTERP_HH
-#define EFONT_T1INTERP_HH
-#include <efont/t1cs.hh>
-#include <lcdf/point.hh>
-#include <stdio.h>
-namespace Efont {
-
-class CharstringInterp { public:
-
- CharstringInterp();
- CharstringInterp(const Vector<double> &weight_vec);
- virtual ~CharstringInterp() { }
-
- int error() const { return _error; }
- int error_data() const { return _error_data; }
- static String error_string(int error, int error_data);
- inline String error_string() const;
-
- bool careful() const { return _careful; }
- void set_careful(bool c) { _careful = c; }
-
- bool done() const { return _done; }
- void set_done() { _done = true; }
-
- int size() const { return _sp; }
- double &at(unsigned i) { return _s[i]; }
- double &top(unsigned i = 0) { return _s[_sp - i - 1]; }
- double pop(unsigned n = 1) { _sp -= n; return _s[_sp]; }
- inline void push(double);
- void clear() { _sp = 0; }
-
- int ps_size() const { return _ps_sp; }
- double ps_at(unsigned i) const { return _ps_s[i]; }
- double ps_pop() { return _ps_s[--_ps_sp]; }
- inline void ps_push(double);
- void ps_clear() { _ps_sp = 0; }
-
- int subr_depth() const { return _subr_depth; }
-
- inline double &vec(Vector<double> *, int);
- const Vector<double> &weight_vector() const { return _weight_vector; }
- Vector<double> *scratch_vector() { return &_scratch_vector; }
-
- const CharstringProgram *program() const { return _program; }
- inline Charstring *get_subr(int) const;
- inline Charstring *get_gsubr(int) const;
- inline Charstring *get_xsubr(bool g, int) const;
- inline Charstring *get_glyph(PermString) const;
-
- bool interpret(const CharstringProgram *, const Charstring *);
- inline bool interpret(const CharstringContext &);
-
- //virtual void init(const CharstringProgram *);
- bool error(int c) { return error(c, 0); }
- virtual bool error(int, int);
- virtual bool number(double);
-
- bool arith_command(int);
- bool vector_command(int);
- bool blend_command();
- bool callsubr_command();
- bool callgsubr_command();
- inline bool callxsubr_command(bool g);
- bool mm_command(int, int);
- bool itc_command(int, int);
-
- const Point &left_sidebearing() const { return _lsb; }
- const Point &currentpoint() const { return _cp; }
- void set_state_path() { _state = S_PATH; }
-
- virtual bool callothersubr_command(int, int);
- virtual bool type1_command(int);
- virtual bool type2_command(int, const uint8_t *, int *);
-
- virtual void act_sidebearing(int cmd, const Point &lsb);
- virtual void act_width(int cmd, const Point &width);
- virtual void act_default_width(int cmd);
- virtual void act_nominal_width_delta(int cmd, double delta);
- virtual void act_seac(int cmd, double asb, double adx, double ady, int bchar, int achar);
-
- virtual void act_line(int cmd, const Point &p0, const Point &p1);
- virtual void act_curve(int cmd, const Point &p0, const Point &p1, const Point &p2, const Point &p3);
- virtual void act_closepath(int cmd);
-
- virtual void act_flex(int cmd, const Point &p0, const Point &p1, const Point &p2, const Point &p3_4, const Point &p5, const Point &p6, const Point &p7, double flex_depth);
-
- virtual void act_hstem(int cmd, double y, double dy);
- virtual void act_vstem(int cmd, double x, double dx);
- virtual void act_hstem3(int cmd, double y0, double dy0, double y1, double dy1, double y2, double dy2);
- virtual void act_vstem3(int cmd, double x0, double dx0, double x1, double dx1, double x2, double dx2);
- virtual void act_hintmask(int cmd, const uint8_t *data, int nhints);
-
- typedef Charstring Cs;
-
- enum Errors {
- errOK = 0,
- errInternal = -1,
- errRunoff = -2,
- errUnimplemented = -3,
- errOverflow = -4,
- errUnderflow = -5,
- errVector = -6,
- errValue = -7,
- errSubr = -8,
- errGlyph = -9,
- errCurrentPoint = -10,
- errFlex = -11,
- errMultipleMaster = -12,
- errOpenStroke = -13,
- errLateSidebearing = -14,
- errOthersubr = -15,
- errOrdering = -16,
- errHintmask = -17,
- errSubrDepth = -18,
- errLastError = -18
- };
-
- enum { STACK_SIZE = 48, PS_STACK_SIZE = 24, MAX_SUBR_DEPTH = 10,
- SCRATCH_SIZE = 32 };
-
- private:
-
- int _error;
- int _error_data;
- bool _done;
- bool _careful;
-
- double _s[STACK_SIZE];
- int _sp;
- double _ps_s[PS_STACK_SIZE];
- int _ps_sp;
-
- int _subr_depth;
-
- Vector<double> _weight_vector;
- Vector<double> _scratch_vector;
-
- Point _lsb;
- Point _cp;
- Point _seac_origin;
-
- const CharstringProgram *_program;
-
- enum State {
- S_INITIAL, S_SEAC, S_SBW, S_HSTEM, S_VSTEM, S_HINTMASK, S_IPATH, S_PATH
- };
- State _state;
- bool _flex;
-
- // for processing Type 2 charstrings
- int _t2nhints;
-
- static double double_for_error;
-
- void initialize();
-
- inline void ensure_weight_vector();
- void fetch_weight_vector();
-
- bool roll_command();
- int type2_handle_width(int, bool);
-
- inline void actp_rmoveto(int, double, double);
- inline void actp_rlineto(int, double, double);
- void actp_rrcurveto(int, double, double, double, double, double, double);
- void actp_rrflex(int, double, double, double, double, double, double, double, double, double, double, double, double, double);
-
-};
-
-
-inline String CharstringInterp::error_string() const
-{
- return error_string(_error, _error_data);
-}
-
-inline void CharstringInterp::push(double d)
-{
- if (_sp < STACK_SIZE)
- _s[_sp++] = d;
- else
- error(errOverflow);
-}
-
-inline void CharstringInterp::ps_push(double d)
-{
- if (_ps_sp < PS_STACK_SIZE)
- _ps_s[_ps_sp++] = d;
- else
- error(errOverflow);
-}
-
-inline double &CharstringInterp::vec(Vector<double> *v, int i)
-{
- if (i < 0 || i >= v->size()) {
- error(errVector);
- return double_for_error;
- } else
- return v->at_u(i);
-}
-
-inline Charstring *CharstringInterp::get_subr(int n) const
-{
- return _program ? _program->subr(n) : 0;
-}
-
-inline Charstring *CharstringInterp::get_gsubr(int n) const
-{
- return _program ? _program->gsubr(n) : 0;
-}
-
-inline Charstring *CharstringInterp::get_xsubr(bool g, int n) const
-{
- return _program ? _program->xsubr(g, n) : 0;
-}
-
-inline Charstring *CharstringInterp::get_glyph(PermString n) const
-{
- return _program ? _program->glyph(n) : 0;
-}
-
-inline void CharstringInterp::ensure_weight_vector()
-{
- if (!_weight_vector.size())
- fetch_weight_vector();
-}
-
-inline bool CharstringInterp::callxsubr_command(bool g)
-{
- return (g ? callgsubr_command() : callsubr_command());
-}
-
-inline bool CharstringInterp::interpret(const CharstringContext &g)
-{
- return interpret(g.program, g.cs);
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1item.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1item.hh
deleted file mode 100644
index 8b5bfb8f8cb..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1item.hh
+++ /dev/null
@@ -1,268 +0,0 @@
-// -*- related-file-name: "../../libefont/t1item.cc" -*-
-#ifndef EFONT_T1ITEM_HH
-#define EFONT_T1ITEM_HH
-#include <efont/t1cs.hh>
-#include <lcdf/straccum.hh>
-namespace Efont {
-class Type1Reader;
-class Type1Writer;
-class CharstringInterp;
-class Type1Font;
-class Type1CopyItem;
-class Type1Subr;
-class Type1SubrGroupItem;
-class Type1Definition;
-
-class Type1Item { public:
-
- Type1Item() { }
- virtual ~Type1Item() { }
-
- virtual void gen(Type1Writer &) = 0;
-
- virtual Type1CopyItem *cast_copy() { return 0; }
- virtual Type1Subr *cast_subr() { return 0; }
- virtual Type1Definition *cast_definition() { return 0; }
- virtual Type1SubrGroupItem *cast_subr_group() { return 0; }
-
- private:
-
- Type1Item(const Type1Item &);
- Type1Item &operator=(const Type1Item &);
-
-};
-
-class Type1NullItem : public Type1Item { public:
-
- Type1NullItem() { }
-
- void gen(Type1Writer &);
-
-};
-
-class Type1CopyItem : public Type1Item { public:
-
- Type1CopyItem(const String &s) : _value(s) { }
- ~Type1CopyItem() { }
-
- const String &value() const { return _value; }
- int length() const { return _value.length(); }
-
- void set_value(const String &s) { _value = s; }
-
- void gen(Type1Writer &);
-
- Type1CopyItem *cast_copy() { return this; }
-
- private:
-
- String _value;
-
-};
-
-class Type1EexecItem : public Type1Item { public:
-
- Type1EexecItem(bool on) : _eexec_on(on) { }
-
- void gen(Type1Writer &w);
-
- private:
-
- bool _eexec_on;
-
-};
-
-class Type1Definition : public Type1Item { public:
-
- typedef Vector<double> NumVector;
-
- Type1Definition(PermString, const String &, PermString);
- ~Type1Definition() { }
- static Type1Definition *make(StringAccum &, Type1Reader * = 0, bool force = false);
- static Type1Definition *make_string(PermString, const String &, PermString);
- static inline Type1Definition *make_literal(PermString, const String &, PermString);
- static inline Type1Definition *make(PermString, double, PermString);
-
- PermString name() const { return _name; }
- const String &value() const { return _val; }
- PermString definer() const { return _definer; }
-
- bool value_bool(bool &) const;
- bool value_int(int &) const;
- bool value_num(double &) const;
- bool value_string(String &) const;
- bool value_name(PermString &) const;
- bool value_numvec(NumVector &) const;
- bool value_numvec_vec(Vector<NumVector> &) const;
- bool value_normalize(Vector<NumVector> &in, Vector<NumVector> &out) const;
- bool value_namevec(Vector<PermString> &) const;
-
- void set_bool(bool);
- void set_int(int);
- void set_num(double);
- void set_string(const String &);
- void set_name(PermString, bool name = true);
- void set_code(const char *s) { set_val(s); }
- void set_numvec(const NumVector &, bool executable = false);
- void set_numvec_vec(const Vector<NumVector> &);
- void set_normalize(const Vector<NumVector> &, const Vector<NumVector> &);
- void set_namevec(const Vector<PermString> &, bool executable = true);
-
- void gen(Type1Writer &);
- void gen(StringAccum &);
-
- Type1Definition *cast_definition() { return this; }
-
- private:
-
- PermString _name;
- String _val;
- PermString _definer;
-
- static int slurp_string(StringAccum &, int, Type1Reader *);
- static int slurp_proc(StringAccum &, int, Type1Reader *);
-
- inline void set_val(const String &);
- inline void set_val(StringAccum &);
-
-};
-
-class Type1Encoding : public Type1Item { public:
-
- Type1Encoding();
- Type1Encoding(const Type1Encoding &);
- ~Type1Encoding();
-
- void clear();
- void unshare();
-
- PermString operator[](int e) const { assert(e>=0&&e<256); return _v[e]; }
- PermString elt(int e) const { return (*this)[e]; }
- PermString operator[](unsigned char e) const { return _v[e]; }
- PermString elt(unsigned char e) const { return operator[](e); }
- inline void put(int e, PermString p);
-
- void set_definer(PermString s) { _definer = s; }
-
- static Type1Encoding *standard_encoding();
-
- void gen(Type1Writer &);
-
- private:
-
- PermString *_v;
- Type1Encoding *_copy_of;
- PermString _definer;
-
- Type1Encoding(Type1Encoding *);
- Type1Encoding &operator=(const Type1Encoding &);
-
-};
-
-class Type1Subr : public Type1Item { public:
-
- static Type1Subr *make(const char *, int, int cs_start, int cs_len, int lenIV);
- static Type1Subr *make_subr(int, const Type1Charstring &, PermString);
- static Type1Subr *make_glyph(PermString, const Type1Charstring &, PermString);
-
- bool is_subr() const { return !_name; }
- PermString name() const { return _name; }
- int subrno() const { return _subrno; }
- PermString definer() const { return _definer; }
-
- Type1Charstring &t1cs() { return _cs; }
- const Type1Charstring &t1cs() const { return _cs; }
- operator Type1Charstring &() { return _cs; }
- operator const Type1Charstring &() const { return _cs; }
-
- void gen(Type1Writer &);
-
- virtual Type1Subr *cast_subr() { return this; }
-
- private:
-
- PermString _name;
- int _subrno;
- PermString _definer;
-
- Type1Charstring _cs;
-
- static PermString cached_definer;
-
- Type1Subr(PermString, int, PermString, int, const String &);
- Type1Subr(PermString, int, PermString, const Type1Charstring &);
-
-};
-
-class Type1SubrGroupItem : public Type1Item { public:
-
- Type1SubrGroupItem(Type1Font *, bool, const String &);
- Type1SubrGroupItem(const Type1SubrGroupItem &, Type1Font *);
- ~Type1SubrGroupItem() { }
-
- void set_end_text(const String &s) { _end_text = s; }
- void add_end_text(const String &);
-
- bool is_subrs() const { return _is_subrs; }
- const String &end_text() const { return _end_text; }
-
- void gen(Type1Writer &);
-
- Type1SubrGroupItem *cast_subr_group() { return this; }
-
- private:
-
- Type1Font *_font;
- bool _is_subrs;
- String _value;
- String _end_text;
-
-};
-
-class Type1IncludedFont : public Type1Item { public:
-
- Type1IncludedFont(Type1Font *, int);
- ~Type1IncludedFont();
-
- Type1Font *included_font() const { return _included_font; }
-
- void gen(Type1Writer &);
-
- private:
-
- Type1Font *_included_font;
- int _unique_id;
-
-};
-
-
-inline Type1Definition *Type1Definition::make_literal(PermString n, const String &v, PermString d)
-{
- return new Type1Definition(n, v, d);
-}
-
-inline Type1Definition *Type1Definition::make(PermString n, double v, PermString d)
-{
- return new Type1Definition(n, String(v), d);
-}
-
-inline void Type1Definition::set_val(const String &v)
-{
- _val = v;
-}
-
-inline void Type1Definition::set_val(StringAccum &sa)
-{
- _val = sa.take_string();
-}
-
-inline void Type1Encoding::put(int e, PermString glyph)
-{
- if (_copy_of)
- unshare();
- assert(e >= 0 && e < 256);
- _v[e] = glyph;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1mm.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1mm.hh
deleted file mode 100644
index 8564f46cf67..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1mm.hh
+++ /dev/null
@@ -1,108 +0,0 @@
-// -*- related-file-name: "../../libefont/t1mm.cc" -*-
-#ifndef EFONT_T1MM_HH
-#define EFONT_T1MM_HH
-#include <efont/t1cs.hh>
-class ErrorHandler;
-namespace Efont {
-class Type1Font;
-
-class MultipleMasterSpace : public CharstringProgram { public:
-
- MultipleMasterSpace(PermString, int naxes, int nmasters);
- // default destructor
-
- typedef Vector<double> NumVector;
-
- PermString font_name() const { return _font_name; }
- int naxes() const { return _naxes; }
- int nmasters() const { return _nmasters; }
-
- int axis(PermString) const;
- double axis_low(int) const;
- double axis_high(int) const;
-
- PermString axis_type(int a) const { return _axis_types[a]; }
- PermString axis_label(int a) const { return _axis_labels[a]; }
- inline PermString axis_abbreviation(int a) const;
- static PermString axis_abbreviation(PermString);
-
- const Type1Charstring &ndv() const { return _ndv; }
- const Type1Charstring &cdv() const { return _cdv; }
-
- void set_master_positions(const Vector<NumVector> &);
- void set_normalize(const Vector<NumVector> &, const Vector<NumVector> &);
- void set_axis_type(int, PermString);
- void set_axis_label(int, PermString);
- void set_ndv(const Type1Charstring &cs) { _ndv = cs; }
- void set_cdv(const Type1Charstring &cs) { _cdv = cs; }
- void set_design_vector(const NumVector &);
- void set_weight_vector(const NumVector &);
-
- bool check(ErrorHandler * = 0);
- bool check_intermediate(ErrorHandler * = 0);
-
- NumVector empty_design_vector() const;
- inline const NumVector &default_design_vector() const;
- bool set_design(NumVector &, int, double, ErrorHandler * = 0) const;
- bool set_design(NumVector &, PermString, double, ErrorHandler * = 0) const;
-
- inline const NumVector &default_weight_vector() const;
-
- bool design_to_norm_design(const NumVector &, NumVector &, ErrorHandler * = 0) const;
- bool design_to_weight(const NumVector &, NumVector &, ErrorHandler * = 0) const;
-
- NumVector *mm_vector(VectorType, bool writable) const;
-
- private:
-
- mutable bool _ok;
-
- PermString _font_name;
- int _naxes;
- int _nmasters;
-
- Vector<NumVector> _master_positions;
- Vector<NumVector> _normalize_in;
- Vector<NumVector> _normalize_out;
-
- Vector<PermString> _axis_types;
- Vector<PermString> _axis_labels;
-
- Type1Charstring _ndv;
- Type1Charstring _cdv;
-
- NumVector _default_design_vector;
- NumVector _default_weight_vector;
-
- mutable NumVector *_design_vector;
- mutable NumVector *_norm_design_vector;
- mutable NumVector *_weight_vector;
-
- bool error(ErrorHandler *, const char *, ...) const;
-
- MultipleMasterSpace(const MultipleMasterSpace &);
- MultipleMasterSpace &operator=(const MultipleMasterSpace &);
-
- bool normalize_vector(ErrorHandler *) const;
- bool convert_vector(ErrorHandler *) const;
-
-};
-
-
-inline const Vector<double> &MultipleMasterSpace::default_design_vector() const
-{
- return _default_design_vector;
-}
-
-inline const Vector<double> &MultipleMasterSpace::default_weight_vector() const
-{
- return _default_weight_vector;
-}
-
-inline PermString MultipleMasterSpace::axis_abbreviation(int a) const
-{
- return axis_abbreviation(_axis_types[a]);
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1rw.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1rw.hh
deleted file mode 100644
index 03af2cfeeb8..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1rw.hh
+++ /dev/null
@@ -1,232 +0,0 @@
-// -*- related-file-name: "../../libefont/t1rw.cc" -*-
-#ifndef EFONT_T1RW_HH
-#define EFONT_T1RW_HH
-#include <stdio.h>
-#include <lcdf/string.hh>
-#include <lcdf/straccum.hh>
-namespace Efont {
-
-class Type1Reader { public:
-
- Type1Reader();
- virtual ~Type1Reader();
-
- int get_data(unsigned char *, int);
- virtual int more_data(unsigned char *, int) = 0;
- virtual bool preserve_whitespace() const { return false; }
-
- void switch_eexec(bool, unsigned char *, int);
- virtual void set_charstring_definer(PermString);
-
- bool next_line(StringAccum &);
- bool was_charstring() const { return _charstring_len > 0; }
- int charstring_start() const { return _charstring_start; }
- int charstring_length() const { return _charstring_len; }
-
- private:
-
- enum { DATA_SIZE = 1024 };
-
- unsigned char *_data;
- int _len;
- int _pos;
-
- PermString _charstring_definer;
- int _charstring_start;
- int _charstring_len;
-
- int _ungot;
- int _crlf;
-
- bool _eexec;
- bool _binary_eexec;
- int _r;
-
- Type1Reader(const Type1Reader &);
- Type1Reader &operator=(const Type1Reader &);
-
- int more_data();
-
- inline int eexec(int);
- int ascii_eexec_get();
- inline int get_base();
- inline int get();
-
- void start_eexec(int ascii_chars);
-
- bool test_charstring(StringAccum &);
-
- static unsigned char xvalue_store[];
- static unsigned char *xvalue;
- static void static_initialize();
-
-};
-
-
-class Type1PFAReader : public Type1Reader {
-
- FILE *_f;
-
- public:
-
- Type1PFAReader(FILE *);
-
- int more_data(unsigned char *, int);
-
-};
-
-class Type1PFBReader : public Type1Reader {
-
- FILE *_f;
- bool _binary;
- int _left;
-
- public:
-
- Type1PFBReader(FILE *);
-
- int more_data(unsigned char *, int);
- bool preserve_whitespace() const;
-
-};
-
-class Type1SubsetReader : public Type1Reader {
-
- Type1Reader *_reader;
- int _left;
-
- public:
-
- Type1SubsetReader(Type1Reader *, int);
-
- int more_data(unsigned char *, int);
- bool preserve_whitespace() const;
-
-};
-
-
-/*****
- * Writers
- **/
-
-class Type1Writer { public:
-
- Type1Writer();
- virtual ~Type1Writer();
-
- bool eexecing() const { return _eexec; }
-
- inline void print(int);
- void print(const char *, int);
-
- inline Type1Writer &operator<<(char);
- inline Type1Writer &operator<<(unsigned char);
- Type1Writer &operator<<(int);
- Type1Writer &operator<<(double);
-
- virtual void flush();
- virtual void switch_eexec(bool);
- virtual void print0(const unsigned char *, int) = 0;
-
- PermString charstring_start() const { return _charstring_start; }
- int lenIV() const { return _lenIV; }
- void set_charstring_start(PermString p) { _charstring_start = p; }
- void set_lenIV(int l) { _lenIV = l; }
-
- private:
-
- enum { BufSize = 1024 };
-
- unsigned char *_buf;
- int _pos;
-
- bool _eexec;
- int _eexec_start;
- int _eexec_end;
- int _r;
-
- PermString _charstring_start;
- int _lenIV;
-
- void local_flush();
- inline unsigned char eexec(int);
-
- Type1Writer(const Type1Writer &);
- Type1Writer &operator=(const Type1Writer &);
-
-};
-
-
-class Type1PFAWriter: public Type1Writer {
-
- FILE *_f;
- int _hex_line;
-
- public:
-
- Type1PFAWriter(FILE *);
- ~Type1PFAWriter();
-
- void switch_eexec(bool);
- void print0(const unsigned char *, int);
-
-};
-
-
-class Type1PFBWriter: public Type1Writer {
-
- StringAccum _save;
- FILE *_f;
- bool _binary;
-
- public:
-
- Type1PFBWriter(FILE *);
- ~Type1PFBWriter();
-
- void flush();
- void switch_eexec(bool);
- void print0(const unsigned char *, int);
-
-};
-
-
-inline void Type1Writer::print(int c)
-{
- if (_pos >= BufSize)
- local_flush();
- _buf[_pos++] = c;
-}
-
-inline Type1Writer &operator<<(Type1Writer &w, const char *cc)
-{
- w.print(cc, strlen(cc));
- return w;
-}
-
-inline Type1Writer &operator<<(Type1Writer &w, PermString p)
-{
- w.print(p.c_str(), p.length());
- return w;
-}
-
-inline Type1Writer &operator<<(Type1Writer &w, const String &s)
-{
- w.print(s.data(), s.length());
- return w;
-}
-
-inline Type1Writer &Type1Writer::operator<<(char c)
-{
- print((unsigned char)c);
- return *this;
-}
-
-inline Type1Writer &Type1Writer::operator<<(unsigned char c)
-{
- print(c);
- return *this;
-}
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1unparser.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1unparser.hh
deleted file mode 100644
index 15e12fb79d1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/t1unparser.hh
+++ /dev/null
@@ -1,39 +0,0 @@
-// -*- related-file-name: "../../libefont/t1unparser.cc" -*-
-#ifndef EFONT_T1UNPARSER_HH
-#define EFONT_T1UNPARSER_HH
-#include <efont/t1interp.hh>
-#include <lcdf/straccum.hh>
-namespace Efont {
-
-class CharstringUnparser : public CharstringInterp { public:
-
- CharstringUnparser();
- CharstringUnparser(const CharstringUnparser &);
-
- const String &indent() const { return _indent; }
- void set_indent(const String &s) { _indent = s; }
- void set_one_command_per_line(bool b) { _one_command_per_line = b; }
-
- void clear();
-
- bool number(double);
- bool type1_command(int);
- bool type2_command(int, const unsigned char *, int *);
- void act_hintmask(int, const unsigned char *, int);
-
- String value();
-
- static String unparse(const Charstring *);
- static String unparse(const Charstring &);
-
- private:
-
- String _indent;
- bool _one_command_per_line;
- bool _start_of_line;
- StringAccum _sa;
-
-};
-
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfcs.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfcs.hh
deleted file mode 100644
index 96758435603..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfcs.hh
+++ /dev/null
@@ -1,40 +0,0 @@
-// -*- related-file-name: "../../libefont/ttfcs.cc" -*-
-#ifndef EFONT_TTFCS_HH
-#define EFONT_TTFCS_HH
-#include <efont/t1cs.hh>
-#include <efont/otf.hh>
-#include <efont/otfdata.hh>
-namespace Efont {
-
-class TrueTypeBoundsCharstringProgram : public CharstringProgram { public:
-
- TrueTypeBoundsCharstringProgram(const OpenType::Font *);
- ~TrueTypeBoundsCharstringProgram();
-
- void font_matrix(double[6]) const;
-
- int nglyphs() const;
- Charstring *glyph(int gi) const;
- PermString glyph_name(int gi) const;
- void glyph_names(Vector<PermString> &) const;
-
- private:
-
- const OpenType::Font *_otf;
- int _nglyphs;
- int _nhmtx;
- bool _loca_long;
- OpenType::Data _loca;
- OpenType::Data _glyf;
- OpenType::Data _hmtx;
- mutable Vector<Charstring*> _charstrings;
- mutable Vector<PermString> _glyph_names;
- mutable bool _got_glyph_names;
- mutable Vector<uint32_t> _unicodes;
- mutable bool _got_unicodes;
-
-};
-
-}
-#endif
-
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfhead.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfhead.hh
deleted file mode 100644
index f5ab4cedff6..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfhead.hh
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- related-file-name: "../../libefont/ttfhead.cc" -*-
-#ifndef EFONT_TTFHEAD_HH
-#define EFONT_TTFHEAD_HH
-#include <efont/otf.hh>
-#include <efont/otfdata.hh> // for ntohl()
-#include <lcdf/error.hh>
-namespace Efont { namespace OpenType {
-
-class Head { public:
-
- Head(const String &, ErrorHandler * = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
- int error() const { return _error; }
-
- unsigned units_per_em() const;
- unsigned index_to_loc_format() const;
-
- private:
-
- Data _d;
- int _error;
-
- int parse_header(ErrorHandler *);
-
-};
-
-
-inline unsigned Head::units_per_em() const
-{
- return (_error >= 0 ? _d.u16(18) : 0);
-}
-
-inline unsigned Head::index_to_loc_format() const
-{
- return (_error >= 0 ? _d.u16(50) : 0);
-}
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfkern.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfkern.hh
deleted file mode 100644
index 9b46c2d58ba..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/efont/ttfkern.hh
+++ /dev/null
@@ -1,42 +0,0 @@
-// -*- related-file-name: "../../libefont/ttfkern.cc" -*-
-#ifndef EFONT_TTFKERN_HH
-#define EFONT_TTFKERN_HH
-#include <efont/otfgpos.hh>
-namespace Efont { namespace OpenType {
-
-class KernTable { public:
-
- KernTable(const Data &, ErrorHandler * = 0);
- // default destructor
-
- bool ok() const { return _error >= 0; }
-
- bool unparse_automatics(Vector<Positioning> &, ErrorHandler * = 0) const;
-
- private:
-
- Data _d;
- int _version;
- int _error;
-
- enum {
- COV_V0_HORIZONTAL = 0x0001, COV_V0_MINIMUM = 0x0002,
- COV_V0_CROSS_STREAM = 0x0004, COV_V0_OVERRIDE = 0x0008,
- COV_V0_FORMAT = 0xFF00, COV_V0_FORMAT0 = 0x0000,
- COV_V1_VERTICAL = 0x8000, COV_V1_CROSS_STREAM = 0x4000,
- COV_V1_VARIATION = 0x2000,
- COV_V1_FORMAT = 0x00FF, COV_V1_FORMAT0 = 0x0000
- };
-
- inline uint32_t ntables() const {
- return _version == 0 ? _d.u16(2) : _d.u32(4);
- }
- inline uint32_t first_offset() const {
- return _version == 0 ? 4 : 8;
- }
- inline Data subtable(uint32_t &off) const;
-
-};
-
-}}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/bezier.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/bezier.hh
deleted file mode 100644
index fb1018ed0e5..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/bezier.hh
+++ /dev/null
@@ -1,136 +0,0 @@
-// -*- related-file-name: "../../liblcdf/bezier.cc" -*-
-#ifndef LCDF_BEZIER_HH
-#define LCDF_BEZIER_HH
-#include <lcdf/point.hh>
-#include <lcdf/vector.hh>
-#include <string.h>
-
-class Bezier { public:
-
- Bezier() : _bb(-1) { }
- inline Bezier(Point p[4]) noexcept;
- inline Bezier(const Point &, const Point &, const Point &, const Point &) noexcept;
-
- const Point *points() const { return _p; }
- const Point &point(int i) const { assert(i>=0&&i<4); return _p[i]; }
- Point &mpoint(int i) { assert(i>=0&&i<4); _bb = -1; return _p[i]; }
- void set_point(int i, const Point &p) { mpoint(i) = p; }
-
- Point eval(double) const noexcept;
- bool is_flat(double) const noexcept;
- bool in_bb(const Point &, double) const noexcept;
- bool hit(const Point &, double) const noexcept;
-
- inline double bb_left() const noexcept;
- inline double bb_right() const noexcept;
- inline double bb_top() const noexcept;
- inline double bb_bottom() const noexcept;
-
- inline double bb_left_x() const noexcept;
- inline double bb_right_x() const noexcept;
- inline double bb_top_x() const noexcept;
- inline double bb_bottom_x() const noexcept;
-
- void halve(Bezier &, Bezier &) const noexcept;
-
- inline void segmentize(Vector<Point> &) const;
- void segmentize(Vector<Point> &, bool) const;
-
- static void fit(const Vector<Point> &, double, Vector<Bezier> &);
-
- private:
-
- Point _p[4];
- mutable int _bb;
-
- void make_bb() const noexcept;
- inline void ensure_bb() const noexcept;
-
- double hit_recurse(const Point &, double, double, double, double, double) const noexcept;
-
-};
-
-
-inline
-Bezier::Bezier(Point p[4]) noexcept
- : _bb(-1)
-{
- memcpy(_p, p, sizeof(Point) * 4);
-}
-
-inline
-Bezier::Bezier(const Point &p0, const Point &p1, const Point &p2, const Point &p3) noexcept
-{
- _p[0] = p0;
- _p[1] = p1;
- _p[2] = p2;
- _p[3] = p3;
- _bb = -1;
-}
-
-inline void
-Bezier::ensure_bb() const noexcept
-{
- if (_bb < 0)
- make_bb();
-}
-
-inline double
-Bezier::bb_top_x() const noexcept
-{
- return _p[(_bb >> 4) & 3].y;
-}
-
-inline double
-Bezier::bb_left_x() const noexcept
-{
- return _p[(_bb >> 2) & 3].x;
-}
-
-inline double
-Bezier::bb_bottom_x() const noexcept
-{
- return _p[(_bb >> 6) & 3].y;
-}
-
-inline double
-Bezier::bb_right_x() const noexcept
-{
- return _p[(_bb >> 0) & 3].x;
-}
-
-inline double
-Bezier::bb_top() const noexcept
-{
- ensure_bb();
- return bb_top_x();
-}
-
-inline double
-Bezier::bb_left() const noexcept
-{
- ensure_bb();
- return bb_left_x();
-}
-
-inline double
-Bezier::bb_bottom() const noexcept
-{
- ensure_bb();
- return bb_bottom_x();
-}
-
-inline double
-Bezier::bb_right() const noexcept
-{
- ensure_bb();
- return bb_right_x();
-}
-
-inline void
-Bezier::segmentize(Vector<Point> &v) const
-{
- segmentize(v, v.size() == 0 || v.back() != _p[0]);
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
deleted file mode 100644
index 3174a06e596..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/clp.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/* -*- related-file-name: "../../liblcdf/clp.c" -*- */
-#ifndef LCDF_CLP_H
-#define LCDF_CLP_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* clp.h - Public interface to CLP.
- * This file is part of CLP, the command line parser package.
- *
- * Copyright (c) 1997-2019 Eddie Kohler, ekohler@gmail.com
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file, which is available in full at
- * http://www.pdos.lcs.mit.edu/click/license.html. The conditions include: you
- * must preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding. */
-
-typedef struct Clp_Option Clp_Option;
-typedef struct Clp_Parser Clp_Parser;
-typedef struct Clp_ParserState Clp_ParserState;
-
-
-/** @brief Option description.
- *
- * CLP users declare arrays of Clp_Option structures to specify what options
- * should be parsed.
- * @sa Clp_NewParser, Clp_SetOptions */
-struct Clp_Option {
- const char *long_name; /**< Name of long option, or NULL if the option
- has no long name. */
- int short_name; /**< Character defining short option, or 0 if
- the option has no short name. */
- int option_id; /**< User-specified ID defining option,
- returned by Clp_Next. */
- int val_type; /**< ID of option's value type, or 0 if option
- takes no value. */
- int flags; /**< Option parsing flags. */
-};
-
-/** @name Value types
- * These values describe the type of an option's argument and are used in
- * the Clp_Option val_type field. For example, if an option took integers, its
- * Clp_Option structure would have val_type set to Clp_ValInt. */
-/**@{*/
-#define Clp_NoVal 0 /**< @brief Option takes no value. */
-#define Clp_ValString 1 /**< @brief Option value is an
- arbitrary string. */
-#define Clp_ValStringNotOption 2 /**< @brief Option value is a
- non-option string.
-
- See Clp_DisallowOptions. */
-#define Clp_ValBool 3 /**< @brief Option value is a
- boolean.
-
- Accepts "true", "false", "yes", "no", "1", and "0", or any
- prefixes thereof. The match is case-insensitive. */
-#define Clp_ValInt 4 /**< @brief Option value is a
- signed int.
-
- Accepts an optional "+" or "-" sign, followed by one or more
- digits. The digits may be include a "0x" or "0X" prefix, for
- a hexidecimal number, or a "0" prefix, for an octal number;
- otherwise it is decimal. */
-#define Clp_ValUnsigned 5 /**< @brief Option value is an
- unsigned int.
-
- Accepts an optional "+" sign, followed by one or more
- digits. The digits may be include a "0x" or "0X" prefix, for
- a hexidecimal number, or a "0" prefix, for an octal number;
- otherwise it is decimal. */
-#define Clp_ValDouble 6 /**< @brief Option value is a
- double.
- Accepts a real number as defined by strtod(). */
-#define Clp_ValFirstUser 10 /**< @brief Value types >=
- Clp_ValFirstUser are available
- for user types. */
-/**@}*/
-
-/** @name Option flags
- * These flags are used in the Clp_Option flags field. */
-/**@{*/
-#define Clp_Mandatory (1<<0) /**< @brief Option flag: value
- is mandatory.
-
- It is an error if the option has no value. This is the
- default if an option has arg_type != 0 and the Clp_Optional
- flag is not provided. */
-#define Clp_Optional (1<<1) /**< @brief Option flag: value
- is optional. */
-#define Clp_Negate (1<<2) /**< @brief Option flag: option
- may be negated.
-
- --no-[long_name] will be accepted in argument lists. */
-#define Clp_OnlyNegated (1<<3) /**< @brief Option flag: option
- <em>must</em> be negated.
-
- --no-[long_name] will be accepted in argument lists, but
- --[long_name] will not. This is the default if long_name
- begins with "no-". */
-#define Clp_PreferredMatch (1<<4) /**< @brief Option flag: prefer this
- option when matching.
-
- Prefixes of --[long_name] should map to this option, even if
- other options begin with --[long_name]. */
-/**@}*/
-
-/** @name Option character types
- * These flags are used in to define character types in Clp_SetOptionChar(). */
-/**@{*/
-/* Clp_NotOption 0 */
-#define Clp_Short (1<<0) /**< @brief Option character begins
- a set of short options. */
-#define Clp_Long (1<<1) /**< @brief Option character begins
- a long option. */
-#define Clp_ShortNegated (1<<2) /**< @brief Option character begins
- a set of negated short options. */
-#define Clp_LongNegated (1<<3) /**< @brief Option character begins
- a negated long option. */
-#define Clp_LongImplicit (1<<4) /**< @brief Option character can begin
- a long option, and is part of that
- long option. */
-/**@}*/
-
-#define Clp_NotOption 0 /**< @brief Clp_Next value: argument
- was not an option. */
-#define Clp_Done -1 /**< @brief Clp_Next value: there are
- no more arguments. */
-#define Clp_BadOption -2 /**< @brief Clp_Next value: argument
- was an erroneous option. */
-#define Clp_Error -3 /**< @brief Clp_Next value: internal
- CLP error. */
-
-#define Clp_ValSize 40 /**< @brief Minimum size of the
- Clp_Parser val.cs field. */
-#define Clp_ValIntSize 10 /**< @brief Minimum size of the
- Clp_Parser val.is field. */
-
-
-/** @brief A value parsing function.
- * @param clp the parser
- * @param vstr the value to be parsed
- * @param complain if nonzero, report error messages via Clp_OptionError
- * @param user_data user data passed to Clp_AddType()
- * @return 1 if parsing succeeded, 0 otherwise
- */
-typedef int (*Clp_ValParseFunc)(Clp_Parser *clp, const char *vstr,
- int complain, void *user_data);
-
-/** @brief A function for reporting option errors.
- * @param clp the parser
- * @param message error message
- */
-typedef void (*Clp_ErrorHandler)(Clp_Parser *clp, const char *message);
-
-
-/** @brief Command line parser.
- *
- * A Clp_Parser object defines an instance of CLP, including allowed options,
- * value types, and current arguments.
- * @sa Clp_NewParser, Clp_SetOptions, Clp_SetArguments */
-struct Clp_Parser {
- const Clp_Option *option; /**< The last option. */
-
- int negated; /**< Whether the last option was negated. */
-
- int have_val; /**< Whether the last option had a value. */
- const char *vstr; /**< The string value provided with the last
- option. */
-
- union {
- int i;
- unsigned u;
- double d;
- const char *s;
- void *pv;
-#ifdef HAVE_INT64_TYPES
- int64_t i64;
- uint64_t u64;
-#endif
- char cs[Clp_ValSize];
- unsigned char ucs[Clp_ValSize];
- int is[Clp_ValIntSize];
- unsigned us[Clp_ValIntSize];
- } val; /**< The parsed value provided with the last
- option. */
-
- void *user_data; /**< Uninterpreted by CLP; users can set
- arbitrarily. */
-
- struct Clp_Internal *internal;
-};
-
-/** @cond never */
-#if __GNUC__ >= 4
-# define CLP_SENTINEL __attribute__((sentinel))
-#else
-# define CLP_SENTINEL /* nothing */
-#endif
-/** @endcond never */
-
-
-/** @brief Create a new Clp_Parser. */
-Clp_Parser *Clp_NewParser(int argc, const char * const *argv,
- int nopt, const Clp_Option *opt);
-
-/** @brief Destroy a Clp_Parser object. */
-void Clp_DeleteParser(Clp_Parser *clp);
-
-
-/** @brief Return @a clp's program name. */
-const char *Clp_ProgramName(Clp_Parser *clp);
-
-/** @brief Set @a clp's program name. */
-const char *Clp_SetProgramName(Clp_Parser *clp, const char *name);
-
-
-/** @brief Set @a clp's error handler function. */
-Clp_ErrorHandler Clp_SetErrorHandler(Clp_Parser *clp, Clp_ErrorHandler errh);
-
-/** @brief Set @a clp's UTF-8 mode. */
-int Clp_SetUTF8(Clp_Parser *clp, int utf8);
-
-/** @brief Return @a clp's treatment of character @a c. */
-int Clp_OptionChar(Clp_Parser *clp, int c);
-
-/** @brief Set @a clp's treatment of character @a c. */
-int Clp_SetOptionChar(Clp_Parser *clp, int c, int type);
-
-/** @brief Set @a clp's option definitions. */
-int Clp_SetOptions(Clp_Parser *clp, int nopt, const Clp_Option *opt);
-
-/** @brief Set @a clp's arguments. */
-void Clp_SetArguments(Clp_Parser *clp, int argc, const char * const *argv);
-
-/** @brief Set whether @a clp is searching for options. */
-int Clp_SetOptionProcessing(Clp_Parser *clp, int on);
-
-
-#define Clp_DisallowOptions (1<<0) /**< @brief Value type flag: value
- can't be an option string.
-
- See Clp_AddType(). */
-
-/** @brief Define a new value type for @a clp. */
-int Clp_AddType(Clp_Parser *clp, int val_type, int flags,
- Clp_ValParseFunc parser, void *user_data);
-
-
-#define Clp_AllowNumbers (1<<0) /**< @brief String list flag: allow
- explicit numbers.
-
- See Clp_AddStringListType() and Clp_AddStringListTypeVec(). */
-
-/** @brief Define a new string list value type for @a clp. */
-int Clp_AddStringListTypeVec(Clp_Parser *clp, int val_type, int flags,
- int nstrs, const char * const *strs,
- const int *vals);
-
-/** @brief Define a new string list value type for @a clp. */
-int Clp_AddStringListType(Clp_Parser *clp, int val_type, int flags, ...)
- CLP_SENTINEL;
-
-
-/** @brief Parse and return the next argument from @a clp. */
-int Clp_Next(Clp_Parser *clp);
-
-/** @brief Return the next argument from @a clp without option parsing. */
-const char *Clp_Shift(Clp_Parser *clp, int allow_options);
-
-
-/** @brief Create a new Clp_ParserState. */
-Clp_ParserState *Clp_NewParserState(void);
-
-/** @brief Destroy a Clp_ParserState object. */
-void Clp_DeleteParserState(Clp_ParserState *state);
-
-/** @brief Save @a clp's current state in @a state. */
-void Clp_SaveParser(const Clp_Parser *clp, Clp_ParserState *state);
-
-/** @brief Restore parser state from @a state into @a clp. */
-void Clp_RestoreParser(Clp_Parser *clp, const Clp_ParserState *state);
-
-
-/** @brief Report a parser error. */
-int Clp_OptionError(Clp_Parser *clp, const char *format, ...);
-
-/** @brief Extract the current option as a string. */
-int Clp_CurOptionNameBuf(Clp_Parser *clp, char *buf, int len);
-
-/** @brief Extract the current option as a string. */
-const char *Clp_CurOptionName(Clp_Parser *clp);
-
-#undef CLP_SENTINEL
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/error.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/error.hh
deleted file mode 100644
index 36b3e728a63..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/error.hh
+++ /dev/null
@@ -1,877 +0,0 @@
-// -*- related-file-name: "../../liblcdf/error.cc" -*-
-#ifndef LCDF_ERROR_HH
-#define LCDF_ERROR_HH
-#include <lcdf/string.hh>
-#ifndef __KERNEL__
-# include <stdio.h>
-#endif
-#include <stdarg.h>
-#if HAVE_ADDRESSABLE_VA_LIST
-# define VA_LIST_REF_T va_list *
-# define VA_LIST_DEREF(val) (*(val))
-# define VA_LIST_REF(val) (&(val))
-#else
-# define VA_LIST_REF_T va_list
-# define VA_LIST_DEREF(val) (val)
-# define VA_LIST_REF(val) (val)
-#endif
-#if __GNUC__ <= 3
-# define ERRH_SENTINEL
-# define ERRH_NORETURN
-#else
-# define ERRH_SENTINEL __attribute__((sentinel))
-# define ERRH_NORETURN __attribute__((noreturn))
-#endif
-
-/** @class ErrorHandler
- * @brief Error reporting class.
- *
- * Report errors through ErrorHandler objects, which represent
- * error collectors and printers. ErrorHandlers are passed to configure() and
- * initialize() methods explicitly, as well as to write handlers; the
- * click_chatter() function calls ErrorHandler implicitly.
- *
- * <h3>Cooked error messages</h3>
- *
- * Most ErrorHandler interactions consist of a simple call like this:
- * @code
- * errh->error("not enough arguments (%d needed)", 5);
- * // prints something like "not enough arguments (5 needed)\n"
- * @endcode
- *
- * This function constructs an error message string from the format arguments,
- * annotates the string with a default error level (here, el_error), and
- * prints it. Alternate versions take a landmark specifying where the error
- * took place:
- * @code
- * errh->lwarning("file.click:2", "syntax error at '%s'", word.c_str());
- * // prints something like "file.click:2: syntax error at 'foo'\n"
- * @endcode
- *
- * <h3>Raw error messages</h3>
- *
- * For finer control over error levels and annotations, construct an error
- * message string directly. An error message is a string consisting of one or
- * more lines. Each line begins with a set of optional textual @em
- * annotations. The following error message has a @em level annotation
- * determining how serious the error is (this one is critical, since
- * el_critical == 2), and a @em landmark annotation, which specifies where the
- * error took place (here, "x.click:1"):
- *
- * <tt>"<2>{l:x.click:1}syntax error"</tt>
- *
- * The default ErrorHandlers understand the level and landmark
- * annotations. Users can add other arbitrary annotations, which can be
- * useful to pass error metadata. A pair of braces ends the annotation area.
- * This example has one user annotation <tt>eoc</tt>, and a message area that
- * would be mistaken for an annotation were it not for the <tt>{}</tt>:
- *
- * <tt>"<2>{l:x.click:1}{eoc:520}{}{not:an annotation}"</tt>
- *
- * <h3>Stacking handlers</h3>
- *
- * Some ErrorHandlers stack on top of others, adding useful functionality like
- * automatic context description and prefixing. For example,
- * ContextErrorHandler can be used to print messages like "In function
- * 'xxx':".
- * @code
- * FileErrorHandler errh1(stderr);
- * ContextErrorHandler errh2(&errh1, "While counting to 2:");
- * errh2.error("An error occurred.");
- * errh2.error("Another error occurred.");
- * // prints "While counting to 2:\n"
- * // " An error occurred.\n"
- * // " Another error occurred.\n"
- * @endcode */
-class ErrorHandler { public:
-
- /** @brief Error level constants.
- *
- * Lower values represent more serious errors. Levels 0-7 correspond to
- * Linux's error levels. Negative levels request immediate exit; at user
- * level, the exit status is the absolute value of the
- * error level. */
- enum Level {
- el_abort = -999, ///< Error level that triggers abort().
- el_fatal = -1, ///< Fatal exit error level.
- /// Exit status equals -(level).
- el_emergency = 0, ///< Emergency error level: system is unusable.
- el_alert = 1, ///< Alert error level: action must be taken.
- el_critical = 2, ///< Error level for critical conditions.
- el_error = 3, ///< Error level for normal error conditions.
- el_warning = 4, ///< Error level for warning conditions.
- el_notice = 5, ///< Error level for normal, but significant
- /// conditions.
- el_info = 6, ///< Error level for informational messages.
- el_debug = 7 ///< Error level for debug messages.
- };
-
- /** @brief Error level indicators. */
- static const char e_abort[],
- e_fatal[],
- e_emergency[],
- e_alert[],
- e_critical[],
- e_error[],
- e_warning[],
- e_warning_annotated[],
- e_notice[],
- e_info[],
- e_debug[];
-
- /** @brief Construct an ErrorHandler. */
- ErrorHandler()
- : _nerrors(0) {
- }
-
- virtual ~ErrorHandler() {
- }
-
-
- /** @brief Initialize the ErrorHandler implementation.
- * @param errh default error handler
- * @return @a errh
- *
- * Call this function to initialize the ErrorHandler implementation. The
- * function installs the default conversions, creates the
- * silent_handler(), and installs @a errh as the default error handler
- * (see default_handler()).
- *
- * @note The @a errh object becomes the property of the ErrorHandler
- * implementation and must not be deleted.
- * (ErrorHandler::static_cleanup() will delete it.) Only the first call
- * to static_initialize() has any effect. */
- static ErrorHandler *static_initialize(ErrorHandler *errh);
-
- /** @brief Tear down the ErrorHandler implementation.
- *
- * Deletes the internal ErrorHandlers and uninstalls default
- * conversions. */
- static void static_cleanup();
-
-
- /** @brief Return the default ErrorHandler.
- * @sa static_initialize() */
- static ErrorHandler *default_handler() {
- return the_default_handler;
- }
-
- /** @brief Set the default ErrorHandler to @a errh.
- * @note @a errh becomes property of the ErrorHandler implementation,
- * and will be freed by static_cleanup(). However, any prior default
- * handler is @em not destroyed. Callers should delete the prior handler
- * when necessary. */
- static void set_default_handler(ErrorHandler *errh);
-
- /** @brief Return the global silent ErrorHandler. */
- static ErrorHandler *silent_handler() {
- return the_silent_handler;
- }
-
-
- static const int ok_result; ///< Equals 0, used for error levels
- /// <5> and above
- static const int error_result; ///< Equals -EINVAL, used for error
- /// levels <4> and below
-
-
- /** @brief Print a debug message (level el_debug).
- *
- * @a fmt and any following arguments are parsed as by format(), and the
- * resulting string is passed to xmessage(). */
- void debug(const char *fmt, ...);
- /** @brief Print an informational message (level el_info). */
- void message(const char *fmt, ...);
- /** @brief Print a warning message (level el_warning).
- * @return error_result
- *
- * The string "warning: " is prepended to every line of the message. */
- int warning(const char *fmt, ...);
- /** @brief Print an error message (level el_error).
- * @return error_result */
- int error(const char *fmt, ...);
- /** @brief Print a fatal error message (level el_fatal).
- * @return error_result
- *
- * Calling fatal() will cause the process to abort. */
- void fatal(const char *fmt, ...) ERRH_NORETURN;
-
- /** @brief Print a debug message with a landmark annotation. */
- void ldebug(const String &landmark, const char *fmt, ...);
- /** @brief Print an informational message with a landmark annotation. */
- void lmessage(const String &landmark, const char *fmt, ...);
- /** @brief Print a warning message with a landmark annotation. */
- int lwarning(const String &landmark, const char *fmt, ...);
- /** @brief Print an error message with a landmark annotation. */
- int lerror(const String &landmark, const char *fmt, ...);
- /** @brief Print a fatal error message with a landmark annotation. */
- void lfatal(const String &landmark, const char *fmt, ...) ERRH_NORETURN;
-
-
- /** @brief Print an annotated error message.
- * @return ok_result if the minimum error level was el_notice or higher,
- * otherwise error_result
- *
- * This function drives the virtual functions actually responsible for
- * error message decoration and printing. It passes @a str to decorate(),
- * separates the result into lines, calls emit() for each line, and calls
- * account() with the minimum error level of any line.
- *
- * Most users will call shorthand functions like error(), warning(), or
- * lmessage(), which add relevant annotations to the message. */
- int xmessage(const String &str);
- /** @brief Print an error message, adding annotations.
- * @param anno annotations
- * @param str error message
- *
- * Shorthand for xmessage(combine_anno(@a str, @a anno)). */
- int xmessage(const String &anno, const String &str) {
- return xmessage(combine_anno(str, anno));
- }
- /** @brief Format and print an error message, adding annotations.
- * @param anno annotations
- * @param fmt error message format
- * @param val format arguments
- *
- * Shorthand for xmessage(@a anno, vformat(@a fmt, @a val)). */
- int xmessage(const String &anno, const char *fmt, va_list val) {
- return xmessage(anno, vformat(fmt, val));
- }
- /** @brief Print an error message, adding landmark and other annotations.
- * @param landmark landmark annotation
- * @param anno additional annotations
- * @param str error message
- *
- * Shorthand for xmessage(combine_anno(@a anno, make_landmark_anno(@a
- * landmark)), @a str). */
- int xmessage(const String &landmark, const String &anno,
- const String &str) {
- return xmessage(combine_anno(anno, make_landmark_anno(landmark)), str);
- }
- /** @brief Format and print an error message, adding landmark and other
- * annotations.
- * @param landmark landmark annotation
- * @param anno additional annotations
- * @param fmt error message format
- * @param val format arguments
- *
- * Shorthand for xmessage(@a landmark, @a anno, vformat(@a fmt, @a
- * val)). */
- int xmessage(const String &landmark, const String &anno,
- const char *fmt, va_list val) {
- return xmessage(landmark, anno, vformat(fmt, val));
- }
-
-
- /** @brief Return the number of errors reported via this handler.
- *
- * An error is any message that contains at least one line with error
- * level 3 (#el_error) or below.
- *
- * @note The error count will also contain errors reported via stacked
- * handlers. For instance:
- * @code
- * SilentErrorHandler errh1;
- * PrefixErrorHandler errh2(&errh1, "");
- * assert(errh1.nerrors() == 0);
- * errh2.error("blah");
- * assert(errh1.nerrors() == 1);
- * @endcode
- *
- * @sa account, clear */
- int nerrors() const {
- return _nerrors;
- }
-
-
- /** @brief Format an error string.
- * @param default_flags default ConversionFlags
- * @param fmt printf-like format string
- * @return formatted error string
- *
- * Formats an error string using printf-like % conversions. Conversions
- * include:
- *
- * <table>
- *
- * <tr><td><tt>\%d</tt>, <tt>\%i</tt></td><td>Format an <tt>int</tt> as a
- * decimal string. Understands flags in <tt>#0- +</tt>, field widths
- * (including <tt>*</tt>), and precisions.</td></tr>
- *
- * <tr><td><tt>\%hd</tt>, <tt>\%ld</tt>, <tt>\%lld</tt>,
- * <tt>\%zd</tt></td><td>Format a <tt>short</tt>, <tt>long</tt>, <tt>long
- * long</tt>, or <tt>size_t</tt>.</td></tr>
- *
- * <tr><td><tt>\%^16d</tt>, <tt>\%^32d</tt>, <tt>\%^64d</tt></td>
- * <td>Format a 16-, 32-, or 64-bit integer.</td></tr>
- *
- * <tr><td><tt>\%o</tt>, <tt>\%u</tt>, <tt>\%x</tt>,
- * <tt>\%X</tt></td><td>Format an unsigned integer in octal, decimal, or
- * hexadecimal (with lower-case or upper-case letters).</td></tr>
- *
- * <tr><td><tt>\%s</tt></td><td>Format a C string (<tt>const char *</tt>).
- * The alternate form <tt>\%\#s</tt> calls String::printable() on the
- * input string. Both <tt>\%\#s</tt> and the alternate form <tt>\%'s</tt>
- * ensure that no part of the string is mistaken for an error
- * annotation.</td></tr>
- *
- * <tr><td><tt>\%c</tt></td><td>Format a character. Prints a C-like
- * escape if the input character isn't printable ASCII.</td></tr>
- *
- * <tr><td><tt>\%p</tt></td><td>Format a pointer as a hexadecimal
- * value.</td></tr>
- *
- * <tr><td><tt>\%e</tt>, <tt>\%E</tt>, <tt>\%f</tt>, <tt>\%F</tt>,
- * <tt>\%g</tt>, <tt>\%G</tt></td><td>Format a <tt>double</tt> (user-level
- * only).</td></tr>
- *
- * <tr><td><tt>\%p{...}</tt><td>Call a user-provided conversion function.
- * For example, <tt>\%p{ip_ptr}</tt> reads an <tt>IPAddress *</tt> argument
- * from the argument list, and formats the pointed-to address using
- * IPAddress::unparse().</td></tr>
- *
- * <tr><td><tt>\%\%</tt></td><td>Format a literal \% character.</td></tr>
- *
- * <tr><td><tt>\%\<</tt></td><td>Format a left quote string. Usually
- * prints a single quote.</td></tr>
- *
- * <tr><td><tt>\%\></tt></td><td>Format a right quote string. Usually
- * prints a single quote.</td></tr>
- *
- * <tr><td><tt>\%,</tt></td><td>Format an apostrophe string. Usually
- * prints a single quote.</td></tr>
- *
- * </table> */
- static String xformat(int default_flags, const char *fmt, ...);
- /** @overload */
- static String vxformat(int default_flags, const char *fmt, va_list val);
- /** @overload */
- static String xformat(const char *fmt, ...);
- /** @overload */
- static String vxformat(const char *fmt, va_list val) {
- return vxformat(0, fmt, val);
- }
-
-
- /** @brief Format an error string.
- * @param fmt format string
- * @param val argument list
- *
- * @warning ErrorHandler users don't need to call this function directly;
- * it is called implicitly by the error()/xmessage() functions.
- *
- * This virtual function is called to format an error message. The
- * default implementation returns the result of vxformat(@a fmt, @a val). */
- virtual String vformat(const char *fmt, va_list val);
-
- /** @brief Format an error string.
- * @param fmt format string
- *
- * @warning ErrorHandler users don't usually need to call this function
- * directly.
- *
- * This is a convenience function that calls vformat(const char *fmt,
- * va_list val) for a va_list taken from the ellipsis arguments. */
- String format(const char *fmt, ...);
-
- /** @brief Decorate an error message.
- * @param str error message, possibly with annotations
- * @return decorated error message
- *
- * @warning ErrorHandler users don't need to call this function directly;
- * it is called implicitly by the error()/xmessage() functions.
- *
- * This virtual function is called to decorate an error message before it
- * is emitted. The input @a str is an error message string, possibly
- * annotated. The default implementation returns @a str unchanged. Other
- * ErrorHandlers might add context lines (ContextErrorHandler), prefixes
- * (PrefixErrorHandler), or a default landmark (LandmarkErrorHandler). */
- virtual String decorate(const String &str);
-
- /** @brief Output an error message line.
- * @param str error message line, possibly with annotations
- * @param user_data callback data, 0 for first line in a message
- * @param more true iff this is the last line in the current message
- * @return @a user_data to be passed to emit() for the next line
- *
- * @warning ErrorHandler users don't need to call this function directly;
- * it is called implicitly by the error()/xmessage() functions.
- *
- * After calling decorate(), ErrorHandler splits the message into
- * individual lines and calls emit() once per line. ErrorHandler
- * subclasses should output the error lines as appropriate; for example,
- * FileErrorHandler outputs the error message to a file.
- *
- * @a str does not contain a newline, but may contain annotations,
- * including a landmark annotation. Most ErrorHandlers use parse_anno()
- * to extract the landmark annotation, clean it with clean_landmark(), and
- * print it ahead of the error message proper.
- *
- * ErrorHandler can handle multi-line error messages. However, the emit()
- * function takes a line at a time; this is more useful in practice for
- * most error message printers. The @a user_data and @a more arguments
- * can help an ErrorHandler combine the lines of a multi-line error
- * message. @a user_data is null for the first line; for second and
- * subsequent lines, ErrorHandler passes the result of the last line's
- * emit() call. @a more is true iff this is the last line in the current
- * message.
- *
- * The default emit() implementation does nothing. */
- virtual void *emit(const String &str, void *user_data, bool more);
-
- /** @brief Account for an error message at level @a level.
- * @param level minimum error level in the message
- *
- * @warning ErrorHandler users don't need to call this function directly;
- * it is called implicitly by the error()/xmessage() functions.
- *
- * After calling emit() for the lines of an error message, ErrorHandler
- * calls account(), passing the minimum (worst) error level of any message
- * line (or 1000 if no line had a level). The default implementation
- * updates the nerrors() counter, and exits the program if @a level is
- * small enough. */
- virtual void account(int level);
-
- /** @brief Clear accumulated error state.
- *
- * The default implementation sets the nerrors() counter to zero. */
- virtual void clear() {
- _nerrors = 0;
- }
-
-
- /** @brief Create an error annotation.
- * @param name annotation name
- * @param value annotation value
- * @return annotation string
- *
- * Returns an error annotation that associates annotation @a name with @a
- * value.
- *
- * If @a name equals "<>", then returns a level annotation of the form
- * "<@a value>". @a value must be valid number; if it isn't, the function
- * returns the empty string.
- *
- * Otherwise, @a name must be a nonempty series of letters and digits.
- * make_anno() returns a string of the form "{@a name:@a value}", where
- * special characters in @a value are quoted with backslashes. */
- static String make_anno(const char *name, const String &value);
-
- /** @brief Apply annotations from @a anno to every line in @a str.
- * @param str string
- * @param anno annotation string
- *
- * The annotations from @a anno are applied to every line in @a str. New
- * annotations do not override existing annotations with the same names.
- * If the @a anno string ends with non-annotation characters, this
- * substring is prefixed to every line in @a str.
- *
- * For example:
- * @code
- * combine_anno("Line 1\n{l:old}{x:x}Line 2\n", "<0>{l:new} ")
- * // returns "<0>{l:new} Line 1\n<0>{l:old}{x:x} Line 2\n"
- * @endcode */
- static String combine_anno(const String &str, const String &anno);
-
- /** @brief Parse error annotations from a string.
- * @param str the string
- * @param begin pointer within @a str to start of annotation area
- * @param end pointer to end of error region, usually @a str.end()
- * @return pointer to first character after annotation area
- * @pre @a str.begin() <= {@a begin, @a end} <= @a str.end()
- * @post @a begin <= returned value <= @a end
- *
- * Use this function to skip an error line's annotation area, possibly
- * extracting named annotations.
- *
- * The variable arguments portion consists of a series of pairs of C
- * strings and value pointers, terminated by a null character pointer.
- * Each C string is an annotation name. The corresponding annotation
- * value, if found, is stored as a String object in the value pointer.
- * You can also store the <tt>int</tt> value of an annotation by prefixing
- * an annotation name with the '#' character.
- *
- * For example:
- * @code
- * String line = "{l:file:30}<4.5>error message\n";
- * String landmark_str, level_str;
- * const char *s = ErrorHandler::parse_anno(line, line.begin(), line.end(),
- * "l", &landmark_str, "<>", &level_str, (const char *) 0);
- * // Results: s points to "error message\n",
- * // landmark_str == "file:30", level_str == "4.5"
- *
- * int level;
- * s = ErrorHandler::parse_anno(line, line.begin(), line.end(),
- * "#<>", &level, (const char *) 0);
- * // Results: s points to "error message\n", level_str == 4
- * @endcode */
- static const char *parse_anno(const String &str,
- const char *begin, const char *end, ...) ERRH_SENTINEL;
-
- /** @brief Skip a string's error annotations.
- * @param begin pointer to start of string
- * @param end pointer one past end of string
- * @return pointer to first character after annotation area
- * @post @a begin <= returned value <= @a end
- *
- * Use this function to skip an error line's annotation area. The error
- * line is defined as a pair of iterators. */
- static const char *skip_anno(const char *begin, const char *end) {
- String name, value;
- const char *x = begin;
- do {
- x = skip_anno(String(), x, end, &name, &value, false);
- } while (name);
- return x;
- }
-
-
- /** @brief Return a landmark annotation equal to @a x.
- * @param x landmark
- *
- * If @a x is empty, returns the empty string. Otherwise, if @a x looks
- * like a formatted annotation (it starts with an open brace), returns @a
- * x unchanged. Otherwise, returns make_anno("l", @a x). */
- static String make_landmark_anno(const String &x) {
- if (x && x[0] == '{')
- return x;
- else if (x)
- return make_anno("l", x);
- else
- return String();
- }
-
- /** @brief Clean the @a landmark.
- * @param landmark landmark text
- * @param colon if true, append <tt>": "</tt> to a nonempty landmark
- *
- * Removes trailing space and an optional trailing colon from @a landmark
- * and returns the result. If @a colon is true, and the cleaned landmark
- * isn't the empty string, then appends <tt>": "</tt> to the result. */
- static String clean_landmark(const String &landmark, bool colon = false);
-
-
- // error conversions
- struct Conversion;
- typedef String (*ConversionFunction)(int flags, VA_LIST_REF_T);
- enum ConversionFlags {
- cf_zero_pad = 1, ///< Set for conversions using the '0' flag.
- cf_plus_positive = 2, ///< Set for conversions using the '+' flag.
- cf_space_positive = 4, ///< Set for conversions using the ' ' flag.
- cf_left_just = 8, ///< Set for conversions using the '-' flag.
- cf_alternate_form = 16, ///< Set for conversions using the '#' flag.
- cf_singlequote = 32, ///< Set for conversions using the '\'' flag.
- cf_uppercase = 64, ///< Set for 'X' conversions (not 'x').
- cf_signed = 128, ///< Set for conversions of signed numbers.
- cf_negative = 256, ///< Set for conversions of negative numbers.
- cf_utf8 = 1024 ///< Set to use UTF-8 characters on output.
- };
- static Conversion *add_conversion(const String &name, ConversionFunction func);
- static int remove_conversion(Conversion *conversion);
-
- private:
-
- int _nerrors;
-
- static ErrorHandler *the_default_handler;
- static ErrorHandler *the_silent_handler;
-
- static const char *skip_anno(const String &str,
- const char *begin, const char *end,
- String *name_result, String *value_result,
- bool raw);
-
-};
-
-
-/** @class SilentErrorHandler
- * @brief An ErrorHandler that does not report messages.
- *
- * Use SilentErrorHandler when an ErrorHandler object is required, but error
- * messages should not be printed. */
-class SilentErrorHandler : public ErrorHandler { public:
-
- SilentErrorHandler() {
- }
-
-};
-
-
-/** @class ErrorVeneer
- * @brief Base class for ErrorHandlers that forward messages.
- *
- * ErrorHandlers can stack. Stacking ErrorHandlers simplify modify a message
- * and then pass the result to a base ErrorHandler, which does the actual
- * printing. The ErrorVeneer base class simplifies the implementation of
- * stacking ErrorHandlers. It provides versions of ErrorHandler's format(),
- * decorate(), emit(), and account() methods that forward to the underlying
- * handler. Note that the clear() method is <em>not</em> automatically
- * forwarded. */
-class ErrorVeneer : public ErrorHandler { public:
-
- /** @brief Construct an ErrorVeneer.
- * @param errh base ErrorHandler
- *
- * If @a errh is 0, then the ErrorVeneer acts like a
- * SilentErrorHandler. */
- ErrorVeneer(ErrorHandler *errh)
- : _errh(errh) {
- }
-
- String vformat(const char *fmt, va_list val);
- String decorate(const String &str);
- void *emit(const String &str, void *user_data, bool more);
- void account(int level);
-
- private:
-
- ErrorHandler *_errh;
-
-};
-
-
-#ifndef __KERNEL__
-/** @class FileErrorHandler
- * @brief An ErrorHandler that prints error messages to a given file.
- *
- * FileErrorHandler is the typical base ErrorHandler used at user level. It
- * prints messages to a file passed in to the constructor, and calls exit() or
- * abort() based on the error level. */
-class FileErrorHandler : public ErrorHandler { public:
-
- /** @brief Construct a FileErrorHandler.
- * @param f file to print errors
- * @param prefix string to prefix every error line */
- FileErrorHandler(FILE *f, const String &prefix = String());
-
- void set_default_flags(int default_flags) {
- _default_flags = default_flags;
- }
-
- String vformat(const char *fmt, va_list val);
- void *emit(const String &str, void *user_data, bool more);
-
- private:
-
- FILE *_f;
- String _context;
- int _default_flags;
-
-};
-#endif
-
-
-/** @class LocalErrorHandler
- * @brief A convenience stackable ErrorHandler.
- *
- * It's often convenient to pass a null ErrorHandler pointer when errors
- * should not be printed. The LocalErrorHandler class simplifies dealing with
- * ErrorHandler pointers that may or may not be null. LocalErrorHandler is a
- * transparent layer on the base handler; but if the base handler is null, it
- * acts like a SilentErrorHandler. For example:
- * @code
- * void f(ErrorHandler *errh) { // errh might or might not be null
- * LocalErrorHandler lerrh(errh);
- * ... lerrh.message("message") ...
- * }
- * @endcode */
-class LocalErrorHandler : public ErrorVeneer { public:
-
- /** @brief Construct a LocalErrorHandler. */
- LocalErrorHandler(ErrorHandler *errh)
- : ErrorVeneer(errh) {
- }
-
-};
-
-
-/** @class ContextErrorHandler
- * @brief A stackable ErrorHandler that prints context lines.
- *
- * The stackable ContextErrorHandler adds context to the first error
- * message printed, and optionally indent error messages so that they appear
- * grouped underneath the context.
- * @code
- * FileErrorHandler errh1(stderr);
- * ContextErrorHandler errh2(&errh1, "While counting to 2:");
- * errh2.error("An error occurred.");
- * errh2.error("Another error occurred.");
- * // prints "While counting to 2:\n"
- * // " An error occurred.\n"
- * // " Another error occurred.\n"
- * @endcode
- *
- * To prevent ContextErrorHandler from indenting or printing context for a
- * message, add a "{context:no}" annotation to the message's first line. To
- * turn off the indent but keep the context, add a "{context:noindent}"
- * annotation.
- * @code
- * FileErrorHandler errh1(stderr);
- * ContextErrorHandler errh2(&errh1, "While counting to 2:");
- * errh2.error("{context:no}An error occurred.");
- * errh2.error("Another error occurred.");
- * // prints "An error occurred.\n"
- * // "While counting to 2:\n"
- * // " Another error occurred.\n"
- *
- * FileErrorHandler errh1(stderr);
- * PrefixErrorHandler noctx_errh(stderr, "{context:no}");
- * ContextErrorHandler errh2(&errh1, "While counting to 2:");
- * errh2.error("An error occurred.");
- * errh2.error("Another error occurred.");
- * // prints "An error occurred.\n"
- * // "Another error occurred.\n"
- * @endcode
- *
- * ContextErrorHandler adds the "{context:context}" annotation to context
- * lines. */
-class ContextErrorHandler : public ErrorVeneer { public:
-
- /** @brief Construct a ContextErrorHandler.
- * @param errh base ErrorHandler
- * @param fmt format for context lines
- *
- * The context message is formed by @a errh->format() using @a fmt and
- * any additional arguments. */
- ContextErrorHandler(ErrorHandler *errh, const char *fmt, ...);
-
- /** @brief Return true iff the context has already been printed. */
- bool context_printed() const {
- return _context_printed;
- }
-
- /** @brief Set whether the context has been printed. */
- void set_context_printed(bool x) {
- _context_printed = x;
- }
-
- /** @brief Set the context string to @a str. */
- void set_context(const String &str) {
- _context = str;
- }
-
- /** @brief Set the indent string to @a str.
- *
- * The indent string is prepended to all non-context messages. It can
- * contain landmarks as well as non-landmark text. The default indent
- * string is " " (two spaces). */
- void set_indent(const String &str) {
- _indent = str;
- }
-
- /** @brief Set the context landmark to @a str.
- *
- * The context landmark is used to decorate the context, and also applied
- * to any error messages that lack landmarks of their own. The default
- * context landmark is empty.
- *
- * @note The input @a str is passed to
- * ErrorHandler::make_landmark_anno(). */
- void set_context_landmark(const String &str) {
- _context_landmark = make_landmark_anno(str);
- }
-
- String decorate(const String &str);
-
- private:
-
- String _context;
- String _indent;
- String _context_landmark;
- bool _context_printed;
-
-};
-
-
-/** @class PrefixErrorHandler
- * @brief A stackable ErrorHandler that adds a prefix to error messages.
- *
- * The stackable ContextErrorHandler adds a prefix to every error line
- * printed. For example:
- * @code
- * FileErrorHandler errh1(stderr);
- * PrefixErrorHandler errh2(&errh1, "Blah--");
- * errh2.error("An error occurred.");
- * errh2.error("Another error occurred.");
- * // prints "Blah--An error occurred.\n"
- * // "Blah--Another error occurred.\n"
- * @endcode */
-class PrefixErrorHandler : public ErrorVeneer { public:
-
- /** @brief Construct a PrefixErrorHandler.
- * @param errh base ErrorHandler
- * @param prefix string to prefix to error lines */
- PrefixErrorHandler(ErrorHandler *errh, const String &prefix);
-
- String decorate(const String &str);
-
- private:
-
- String _prefix;
-
-};
-
-
-/** @class LandmarkErrorHandler
- * @brief A stackable ErrorHandler that adds a default landmark to error
- * messages.
- *
- * The stackable ContextErrorHandler adds a default landmark to every error
- * line printed. Error lines' own landmarks are preserved when they exist.
- * For example:
- * @code
- * FileErrorHandler errh1(stderr);
- * LandmarkErrorHandler errh2(&errh1, "file:1");
- * errh2.error("An error occurred.");
- * errh2.lerror("file:2", "Another error occurred.");
- * // prints "file:1: An error occurred.\n"
- * // "file:2: Another error occurred.\n"
- * @endcode */
-class LandmarkErrorHandler : public ErrorVeneer { public:
-
- /** @brief Construct a LandmarkErrorHandler.
- * @param errh base ErrorHandler
- * @param landmark default landmark */
- LandmarkErrorHandler(ErrorHandler *errh, const String &landmark);
-
- /** @brief Set the default landmark applied to error messages. */
- void set_landmark(const String &landmark) {
- _landmark = make_landmark_anno(landmark);
- }
-
- String decorate(const String &str);
-
- private:
-
- String _landmark;
-
-};
-
-
-#ifndef __KERNEL__
-/** @class BailErrorHandler
- * @brief A stackable ErrorHandler that exits when errors occur.
- *
- * The stackable BailErrorHandler, available only at user level, causes the
- * process to exit if an error worse than a configurable level occurs. */
-class BailErrorHandler : public ErrorVeneer { public:
-
- /** @brief Construct a BailErrorHandler.
- * @param errh base ErrorHandler
- * @param level error level that causes premature exit
- *
- * An error message with level less than or equal to @a el_error will
- * cause the process to exit with status 1. */
- BailErrorHandler(ErrorHandler *errh, int level = el_error);
-
- void account(int level);
-
- private:
-
- int _level;
-
-};
-#endif
-
-#undef ERRH_SENTINEL
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/filename.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/filename.hh
deleted file mode 100644
index 9424a4c04fa..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/filename.hh
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- related-file-name: "../../liblcdf/filename.cc" -*-
-#ifndef LCDF_FILENAME_HH
-#define LCDF_FILENAME_HH
-#include <lcdf/string.hh>
-#include <stdio.h>
-
-class Filename { public:
-
- Filename() : _dir("."), _actual(0) { }
- Filename(const String &);
- Filename(const String &dir, const String &name);
- Filename(FILE *, const String &fake_name);
-
- bool fake() const { return _actual != 0; }
-
- const String &directory() const { return _dir; }
- const String &name() const { return _name; }
- const String &path() const { return _path; }
- String base() const;
- String extension() const;
-
- operator bool() const { return _name; }
- bool operator!() const { return !_name; }
-
- FILE *open_read(bool binary = false) const;
- bool readable() const;
-
- FILE *open_write(bool binary = false) const;
-
- Filename from_directory(const String &n) const { return Filename(_dir, n);}
-
- private:
-
- mutable String _dir; // mutable for c_str()
- mutable String _name;
- mutable String _path;
- FILE *_actual;
-
-};
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/globmatch.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/globmatch.hh
deleted file mode 100644
index 963035e0ead..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/globmatch.hh
+++ /dev/null
@@ -1,8 +0,0 @@
-// -*- related-file-name: "../../liblcdf/globmatch.cc" -*-
-#ifndef LCDF_GLOBMATCH_HH
-#define LCDF_GLOBMATCH_HH
-class String;
-
-bool glob_match(const String& str, const String& pattern);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashcode.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashcode.hh
deleted file mode 100644
index 53a0e428989..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashcode.hh
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef LCDF_HASHCODE_HH
-#define LCDF_HASHCODE_HH
-#include <stddef.h>
-
-typedef size_t hashcode_t; ///< Typical type for a hashcode() value.
-
-inline hashcode_t
-hashcode(int x)
-{
- return static_cast<hashcode_t>(x);
-}
-
-inline hashcode_t
-hashcode(unsigned x)
-{
- return static_cast<hashcode_t>(x);
-}
-
-inline hashcode_t
-hashcode(long x)
-{
- return static_cast<hashcode_t>(x);
-}
-
-inline hashcode_t
-hashcode(unsigned long x)
-{
- return static_cast<hashcode_t>(x);
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.cc
deleted file mode 100644
index 4851463c560..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.cc
+++ /dev/null
@@ -1,187 +0,0 @@
-#ifndef LCDF_HASHMAP_CC
-#define LCDF_HASHMAP_CC
-
-/*
- * hashmap.{cc,hh} -- simple open-coded hash table class
- * Eddie Kohler
- *
- * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2003 International Computer Science Institute
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file. These conditions include: you must
- * preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding.
- */
-
-/* #include <lcdf/hashmap.hh> */
-
-template <class K, class V>
-HashMap<K, V>::HashMap()
- : _capacity(0), _grow_limit(0), _n(0), _e(0), _default_value()
-{
- increase(-1);
-}
-
-template <class K, class V>
-HashMap<K, V>::HashMap(const V &def)
- : _capacity(0), _grow_limit(0), _n(0), _e(0), _default_value(def)
-{
- increase(-1);
-}
-
-
-template <class K, class V>
-HashMap<K, V>::HashMap(const HashMap<K, V> &m)
- : _capacity(m._capacity), _grow_limit(m._grow_limit), _n(m._n),
- _e(new Pair[m._capacity]), _default_value(m._default_value)
-{
- for (int i = 0; i < _capacity; i++)
- _e[i] = m._e[i];
-}
-
-
-template <class K, class V>
-HashMap<K, V> &
-HashMap<K, V>::operator=(const HashMap<K, V> &o)
-{
- // This works with self-assignment.
-
- _capacity = o._capacity;
- _grow_limit = o._grow_limit;
- _n = o._n;
- _default_value = o._default_value;
-
- Pair *new_e = new Pair[_capacity];
- for (int i = 0; i < _capacity; i++)
- new_e[i] = o._e[i];
-
- delete[] _e;
- _e = new_e;
-
- return *this;
-}
-
-
-template <class K, class V>
-void
-HashMap<K, V>::increase(int min_size)
-{
- int ncap = (_capacity < 8 ? 8 : _capacity * 2);
- while (ncap < min_size && ncap > 0)
- ncap *= 2;
- if (ncap <= 0) // want too many elements
- return;
-
- Pair *ne = new Pair[ncap];
- if (!ne) // out of memory
- return;
-
- Pair *oe = _e;
- int ocap = _capacity;
- _e = ne;
- _capacity = ncap;
- _grow_limit = ((3 * _capacity) >> 2) - 1;
-
- Pair *otrav = oe;
- for (int i = 0; i < ocap; i++, otrav++)
- if (otrav->key) {
- int j = bucket(otrav->key);
- _e[j] = *otrav;
- }
-
- delete[] oe;
-}
-
-template <class K, class V>
-inline void
-HashMap<K, V>::check_capacity()
-{
- if (_n >= _grow_limit)
- increase(-1);
-}
-
-template <class K, class V>
-bool
-HashMap<K, V>::insert(const K &key, const V &val)
-{
- check_capacity();
- int i = bucket(key);
- bool is_new = !(bool)_e[i].key;
- _e[i].key = key;
- _e[i].value = val;
- _n += is_new;
- return is_new;
-}
-
-template <class K, class V>
-V &
-HashMap<K, V>::find_force(const K &key, const V &value)
-{
- check_capacity();
- int i = bucket(key);
- if (!(bool)_e[i].key) {
- _e[i].key = key;
- _e[i].value = value;
- _n++;
- }
- return _e[i].value;
-}
-
-template <class K, class V>
-void
-HashMap<K, V>::clear()
-{
- delete[] _e;
- _e = 0;
- _capacity = _grow_limit = _n = 0;
- increase(-1);
-}
-
-template <class K, class V>
-void
-HashMap<K, V>::swap(HashMap<K, V> &o)
-{
- int capacity = _capacity;
- int grow_limit = _grow_limit;
- int n = _n;
- Pair *e = _e;
- V default_value = _default_value;
- _capacity = o._capacity;
- _grow_limit = o._grow_limit;
- _n = o._n;
- _e = o._e;
- _default_value = o._default_value;
- o._capacity = capacity;
- o._grow_limit = grow_limit;
- o._n = n;
- o._e = e;
- o._default_value = default_value;
-}
-
-template <class K, class V>
-_HashMap_const_iterator<K, V>::_HashMap_const_iterator(const HashMap<K, V> *hm, int pos)
- : _hm(hm), _pos(pos)
-{
- typename HashMap<K, V>::Pair *e = _hm->_e;
- int capacity = _hm->_capacity;
- while (_pos < capacity && !(bool)e[_pos].key)
- _pos++;
-}
-
-template <class K, class V>
-void
-_HashMap_const_iterator<K, V>::operator++(int)
-{
- typename HashMap<K, V>::Pair *e = _hm->_e;
- int capacity = _hm->_capacity;
- for (_pos++; _pos < capacity && !(bool)e[_pos].key; _pos++)
- ;
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.hh
deleted file mode 100644
index 3d4179e5b5f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/hashmap.hh
+++ /dev/null
@@ -1,210 +0,0 @@
-#ifndef LCDF_HASHMAP_HH
-#define LCDF_HASHMAP_HH
-#include <assert.h>
-#include <lcdf/hashcode.hh>
-
-// K AND V REQUIREMENTS:
-//
-// K::K()
-// K::operator bool() const
-// Must have (bool)(K()) == false
-// and no k with (bool)k == false is stored.
-// K & K::operator=(const K &)
-// k1 == k2
-// hashcode_t hashcode(const K &)
-// If hashcode(k1) != hashcode(k2), then k1 != k2.
-// Actually any unsigned integer type may be used.
-//
-// V::V()
-// V & V::operator=(const V &)
-
-template <class K, class V> class _HashMap_const_iterator;
-template <class K, class V> class _HashMap_iterator;
-
-template <class K, class V>
-class HashMap { public:
-
- HashMap();
- explicit HashMap(const V &);
- HashMap(const HashMap<K, V> &);
- ~HashMap() { delete[] _e; }
-
- int size() const { return _n; }
- bool empty() const { return _n == 0; }
- int capacity() const { return _capacity; }
- const V &default_value() const { return _default_value; }
- void set_default_value(const V &v) { _default_value = v; }
-
- typedef _HashMap_const_iterator<K, V> const_iterator;
- typedef _HashMap_iterator<K, V> iterator;
-
- inline const_iterator begin() const;
- inline iterator begin();
- inline const_iterator end() const;
- inline iterator end();
-
- inline const V &find(const K &) const;
- inline V *findp(const K &) const;
- inline const V &operator[](const K &k) const;
- V &find_force(const K &, const V &);
- inline V &find_force(const K &);
-
- bool insert(const K &, const V &);
- void clear();
-
- HashMap<K, V> &operator=(const HashMap<K, V> &);
- void swap(HashMap<K, V> &);
-
- void resize(int size) { increase(size); }
-
- struct Pair {
- K key;
- V value;
- Pair() : key(), value() { }
- };
-
- private:
-
- int _capacity;
- int _grow_limit;
- int _n;
- Pair *_e;
- V _default_value;
-
- void increase(int);
- inline void check_capacity();
- inline int bucket(const K &) const;
-
- friend class _HashMap_const_iterator<K, V>;
- friend class _HashMap_iterator<K, V>;
-
-};
-
-template <class K, class V>
-class _HashMap_const_iterator { public:
- typedef _HashMap_const_iterator const_iterator;
- typedef typename HashMap<K, V>::Pair Pair;
-
- operator bool() const { return _pos < _hm->_capacity; }
- bool operator!() const { return _pos >= _hm->_capacity; }
-
- void operator++(int);
- void operator++() { (*this)++; }
-
- const K &key() const { return _hm->_e[_pos].key; }
- const V &value() const { return _hm->_e[_pos].value; }
- const Pair &pair() const { return _hm->_e[_pos]; }
-
- inline bool operator==(const const_iterator &) const;
- inline bool operator!=(const const_iterator &) const;
-
- private:
- const HashMap<K, V> *_hm;
- int _pos;
- _HashMap_const_iterator(const HashMap<K, V> *, int);
- friend class HashMap<K, V>;
- friend class _HashMap_iterator<K, V>;
-};
-
-template <class K, class V>
-class _HashMap_iterator : public _HashMap_const_iterator<K, V> { public:
- typedef _HashMap_iterator iterator;
-
- V &value() const { return this->_hm->_e[this->_pos].value; }
-
- private:
- _HashMap_iterator(const HashMap<K, V> *hm, int pos) : _HashMap_const_iterator<K, V>(hm, pos) { }
- friend class HashMap<K, V>;
-};
-
-
-template <class K, class V>
-inline int
-HashMap<K, V>::bucket(const K &key) const
-{
- assert(key);
- hashcode_t hc = hashcode(key);
- int i = hc & (_capacity - 1);
- int j = ((hc >> 6) & (_capacity - 1)) | 1;
-
- while (_e[i].key && !(_e[i].key == key))
- i = (i + j) & (_capacity - 1);
-
- return i;
-}
-
-template <class K, class V>
-inline const V &
-HashMap<K, V>::find(const K &key) const
-{
- int i = bucket(key);
- const V *v = (_e[i].key ? &_e[i].value : &_default_value);
- return *v;
-}
-
-template <class K, class V>
-inline const V &
-HashMap<K, V>::operator[](const K &key) const
-{
- return find(key);
-}
-
-template <class K, class V>
-inline V *
-HashMap<K, V>::findp(const K &key) const
-{
- int i = bucket(key);
- return _e[i].key ? &_e[i].value : 0;
-}
-
-template <class K, class V>
-inline V &
-HashMap<K, V>::find_force(const K &key)
-{
- return find_force(key, _default_value);
-}
-
-template <class K, class V>
-inline _HashMap_const_iterator<K, V>
-HashMap<K, V>::begin() const
-{
- return const_iterator(this, 0);
-}
-
-template <class K, class V>
-inline _HashMap_const_iterator<K, V>
-HashMap<K, V>::end() const
-{
- return const_iterator(this, _capacity);
-}
-
-template <class K, class V>
-inline _HashMap_iterator<K, V>
-HashMap<K, V>::begin()
-{
- return iterator(this, 0);
-}
-
-template <class K, class V>
-inline _HashMap_iterator<K, V>
-HashMap<K, V>::end()
-{
- return iterator(this, _capacity);
-}
-
-template <class K, class V>
-inline bool
-_HashMap_const_iterator<K, V>::operator==(const const_iterator &i) const
-{
- return _hm == i._hm && _pos == i._pos;
-}
-
-template <class K, class V>
-inline bool
-_HashMap_const_iterator<K, V>::operator!=(const const_iterator &i) const
-{
- return _hm != i._hm || _pos != i._pos;
-}
-
-#include <lcdf/hashmap.cc> // necessary to support GCC 3.3
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/inttypes.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/inttypes.h
deleted file mode 100644
index b88e9e9faf0..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/inttypes.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef LCDF_INTTYPES_H
-#define LCDF_INTTYPES_H
-/* Define known-width integer types. */
-
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#elif defined(HAVE_SYS_TYPES_H)
-# include <sys/types.h>
-# ifdef HAVE_U_INT_TYPES
-typedef u_int8_t uint8_t;
-typedef u_int16_t uint16_t;
-typedef u_int32_t uint32_t;
-# endif
-#endif
-
-#ifdef HAVE_FAKE_INT_TYPES
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-typedef signed short int16_t;
-typedef unsigned short uint16_t;
-typedef signed int int32_t;
-typedef unsigned int uint32_t;
-#endif
-
-#ifndef HAVE_UINTPTR_T
-# if SIZEOF_VOID_P == SIZEOF_UNSIGNED_INT
-typedef unsigned int uintptr_t;
-# elif SIZEOF_VOID_P == SIZEOF_UNSIGNED_LONG
-typedef unsigned long uintptr_t;
-# endif
-#endif
-
-/* Note: Windows compilers call these types '[un]signed __int8', etc. */
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/landmark.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/landmark.hh
deleted file mode 100644
index 183ab936ee8..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/landmark.hh
+++ /dev/null
@@ -1,39 +0,0 @@
-// -*- related-file-name: "../../liblcdf/landmark.cc" -*-
-#ifndef LCDF_LANDMARK_HH
-#define LCDF_LANDMARK_HH
-#include <lcdf/string.hh>
-
-class Landmark { public:
-
- Landmark() : _file(), _line(~0U) { }
- explicit Landmark(const String &f) : _file(f), _line(~0U) { }
- Landmark(const String &f, unsigned l) : _file(f), _line(l) { }
-
- operator bool() const { return _file; }
- bool operator!() const { return !_file; }
- bool has_line() const { return _line != ~0U; }
-
- const String &file() const { return _file; }
- unsigned line() const { return _line; }
-
- Landmark next_line() const;
- Landmark whole_file() const { return Landmark(_file); }
-
- operator String() const;
-
- private:
-
- String _file;
- unsigned _line;
-
-};
-
-Landmark operator+(const Landmark &, int);
-
-inline Landmark
-Landmark::next_line() const
-{
- return *this + 1;
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/md5.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/md5.h
deleted file mode 100644
index 7d7f8641d23..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/md5.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- related-file-name: "../../liblcdf/md5.c" -*-
- * md5.h - MD5 Message-Digest Algorithm
- * Copyright (C) 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
- *
- * according to the definition of MD5 in RFC 1321 from April 1992.
- * NOTE: This is *not* the same file as the one from glibc
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef LCDF_MD5_H
-#define LCDF_MD5_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MD5_DIGEST_SIZE 16
-#define MD5_TEXT_DIGEST_SIZE 26 /* + 1 for the terminating NUL */
-
-typedef struct { /* Hmm, should be private */
- uint32_t A,B,C,D;
- uint32_t nblocks;
- unsigned char buf[64];
- int count;
- int finalized;
-} MD5_CONTEXT;
-
-void md5_init(MD5_CONTEXT *ctx);
-void md5_update(MD5_CONTEXT *hd, const unsigned char *inbuf, size_t inlen);
-void md5_final(unsigned char digest[MD5_DIGEST_SIZE], MD5_CONTEXT *ctx);
-void md5_final_text(char *text_digest, MD5_CONTEXT *ctx);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* LCDF_MD5_H */
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/permstr.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/permstr.hh
deleted file mode 100644
index c6d73178b2b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/permstr.hh
+++ /dev/null
@@ -1,197 +0,0 @@
-// -*- related-file-name: "../../liblcdf/permstr.cc" -*-
-#ifndef LCDF_PERMSTR_HH
-#define LCDF_PERMSTR_HH
-#include <assert.h>
-#include <stddef.h>
-#include <stdarg.h>
-#include <string.h>
-#include <lcdf/inttypes.h>
-#include <lcdf/hashcode.hh>
-class PermString;
-inline bool operator==(PermString a, PermString b);
-inline bool operator!=(PermString a, PermString b);
-
-class PermString { struct Doodad; public:
-
- typedef Doodad *Capsule;
- // Declare a PermString::Initializer in any file in which you declare
- // static global PermStrings.
- struct Initializer { Initializer(); };
-
- PermString()
- : _rep(zero_char_doodad.data) {
- }
- explicit PermString(char c)
- : _rep(one_char_doodad[(unsigned char) c].data) {
- }
- inline PermString(const char *s);
- inline PermString(const char *s, int len);
- inline PermString(const char *begin, const char *end);
-
- typedef int (PermString::*unspecified_bool_type)() const;
- inline operator unspecified_bool_type() const;
- inline bool operator!() const;
-
- inline int length() const;
- char operator[](int i) const;
-
- inline const char* data() const {
- return _rep;
- }
- inline const char *c_str() const {
- return _rep;
- }
- inline char operator*() const {
- return *_rep;
- }
-
- inline const char *begin() const;
- inline const char *end() const;
-
- inline bool equals(const char *s, int len) const;
- friend inline bool operator==(PermString a, PermString b);
- friend inline bool operator!=(PermString a, PermString b);
-
- inline Capsule capsule() const;
- inline static PermString decapsule(Capsule c);
-
- friend PermString permprintf(const char*, ...);
- friend PermString vpermprintf(const char*, va_list);
- friend PermString permcat(PermString, PermString);
- friend PermString permcat(PermString, PermString, PermString);
-
- private:
-
- struct Doodad {
- Doodad *next;
- int length;
- char data[2];
- };
-
- const char *_rep;
-
- PermString(Doodad* d) : _rep(d->data) { }
- void initialize(const char*, int);
- Doodad* doodad() const { return (Doodad*)(_rep - offsetof(Doodad, data)); }
-
- friend struct PermString::Initializer;
- static void static_initialize();
-
- enum { NHASH = 1024 }; // must be power of 2
- static Doodad zero_char_doodad, one_char_doodad[256], *buckets[NHASH];
-
-};
-
-
-inline PermString::PermString(const char* s)
-{
- initialize(s, -1);
-}
-
-inline PermString::PermString(const char* s, int len)
-{
- initialize(s, len);
-}
-
-inline PermString::PermString(const char* begin, const char* end)
-{
- assert(end);
- initialize(begin, end > begin ? end - begin : 0);
-}
-
-inline PermString::operator unspecified_bool_type() const
-{
- return _rep != zero_char_doodad.data ? &PermString::length : 0;
-}
-
-inline bool PermString::operator!() const
-{
- return _rep == zero_char_doodad.data;
-}
-
-inline int PermString::length() const
-{
- return doodad()->length;
-}
-
-inline const char *PermString::begin() const
-{
- return _rep;
-}
-
-inline const char *PermString::end() const
-{
- return _rep + doodad()->length;
-}
-
-inline char PermString::operator[](int i) const
-{
- assert((unsigned) i < (unsigned) length());
- return c_str()[i];
-}
-
-inline bool operator==(PermString a, PermString b)
-{
- return a._rep == b._rep;
-}
-
-inline bool operator==(PermString a, const char *b)
-{
- return (!a || !b ? !a && !b : strcmp(a.c_str(), b) == 0);
-}
-
-inline bool operator==(const char *a, PermString b)
-{
- return b == a;
-}
-
-inline bool operator!=(PermString a, PermString b)
-{
- return a._rep != b._rep;
-}
-
-inline bool operator!=(PermString a, const char *b)
-{
- return !(a == b);
-}
-
-inline bool operator!=(const char *a, PermString b)
-{
- return !(b == a);
-}
-
-inline bool operator<(PermString a, PermString b)
-{
- // NOT lexicographic ordering!
- return a.begin() < b.begin();
-}
-
-inline bool PermString::equals(const char *s, int len) const
-{
- if (len > 0)
- return len == length() && memcmp(s, _rep, len) == 0;
- else
- return strcmp(s, _rep) == 0;
-}
-
-inline PermString::Capsule PermString::capsule() const
-{
- return doodad();
-}
-
-inline PermString PermString::decapsule(Capsule c)
-{
- return PermString(c);
-}
-
-inline hashcode_t hashcode(PermString s)
-{
- return (uintptr_t) s.c_str();
-}
-
-PermString permprintf(const char *format, ...);
-PermString vpermprintf(const char *format, va_list val);
-
-PermString permcat(PermString a, PermString b);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/point.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/point.hh
deleted file mode 100644
index 9645615d17e..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/point.hh
+++ /dev/null
@@ -1,185 +0,0 @@
-// -*- related-file-name: "../../liblcdf/point.cc" -*-
-#ifndef LCDF_POINT_HH
-#define LCDF_POINT_HH
-#include <math.h>
-
-struct Point {
-
- double x;
- double y;
-
- Point() { }
- Point(double xx, double yy) : x(xx), y(yy) { }
- // Point(const Point &) use compiler default
- Point(const Point &p, double dx, double dy) : x(p.x + dx), y(p.y + dy) { }
- // ~Point() use compiler default
-
- inline double squared_length() const noexcept;
- inline double length() const noexcept;
- inline double magnitude() const noexcept;
- static inline double distance(const Point &, const Point &) noexcept;
- static inline double dot(const Point &, const Point &) noexcept;
- static Point midpoint(const Point &, const Point &) noexcept;
-
- inline double angle() const noexcept;
-
- void shift(double dx, double dy) { x += dx; y += dy; }
-
- inline Point shifted(double dx, double dy) const noexcept;
- Point rotated(double) const noexcept;
- inline Point normal() const noexcept;
-
- bool on_line(const Point &, const Point &, double) const noexcept;
- bool on_segment(const Point &, const Point &, double) const noexcept;
-
- inline Point &operator+=(const Point &) noexcept;
- inline Point &operator-=(const Point &) noexcept;
- inline Point &operator*=(double) noexcept;
- inline Point &operator/=(double) noexcept;
-
- // Point operator+(Point, const Point &);
- // Point operator-(Point, const Point &);
- // Point operator*(Point, double);
- // Point operator/(Point, double);
- // Point operator-(const Point &);
-
- // bool operator==(const Point &, const Point &);
- // bool operator!=(const Point &, const Point &);
-
-};
-
-inline double
-Point::squared_length() const noexcept
-{
- return x*x + y*y;
-}
-
-inline double
-Point::length() const noexcept
-{
- return sqrt(x*x + y*y);
-}
-
-inline double
-Point::magnitude() const noexcept
-{
- return length();
-}
-
-inline double
-Point::angle() const noexcept
-{
- return atan2(y, x);
-}
-
-inline Point
-Point::shifted(double dx, double dy) const noexcept
-{
- return Point(x + dx, y + dy);
-}
-
-inline Point
-Point::normal() const noexcept
-{
- double l = length();
- return (l ? Point(x/l, y/l) : *this);
-}
-
-inline Point &
-Point::operator+=(const Point &p) noexcept
-{
- x += p.x;
- y += p.y;
- return *this;
-}
-
-inline Point &
-Point::operator-=(const Point &p) noexcept
-{
- x -= p.x;
- y -= p.y;
- return *this;
-}
-
-inline Point &
-Point::operator*=(double d) noexcept
-{
- x *= d;
- y *= d;
- return *this;
-}
-
-inline Point &
-Point::operator/=(double d) noexcept
-{
- x /= d;
- y /= d;
- return *this;
-}
-
-inline bool
-operator==(const Point &a, const Point &b) noexcept
-{
- return a.x == b.x && a.y == b.y;
-}
-
-inline bool
-operator!=(const Point &a, const Point &b) noexcept
-{
- return a.x != b.x || a.y != b.y;
-}
-
-inline Point
-operator+(Point a, const Point &b) noexcept
-{
- a += b;
- return a;
-}
-
-inline Point
-operator-(Point a, const Point &b) noexcept
-{
- a -= b;
- return a;
-}
-
-inline Point
-operator-(const Point &a) noexcept
-{
- return Point(-a.x, -a.y);
-}
-
-inline Point
-operator*(Point a, double scale) noexcept
-{
- a *= scale;
- return a;
-}
-
-inline Point
-operator*(double scale, Point a) noexcept
-{
- a *= scale;
- return a;
-}
-
-inline Point
-operator/(Point a, double scale) noexcept
-{
- a /= scale;
- return a;
-}
-
-inline double
-Point::distance(const Point &a, const Point &b) noexcept
-{
- return (a - b).length();
-}
-
-inline double
-Point::dot(const Point &a, const Point &b) noexcept
-{
- return a.x*b.x + a.y*b.y;
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/slurper.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/slurper.hh
deleted file mode 100644
index 2e400d3c3f2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/slurper.hh
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- related-file-name: "../../liblcdf/slurper.cc" -*-
-#ifndef LCDF_SLURPER_HH
-#define LCDF_SLURPER_HH
-#include <lcdf/landmark.hh>
-#include <lcdf/filename.hh>
-#include <stdio.h>
-
-class Slurper { public:
-
- Slurper(const Filename &, FILE * = 0);
- ~Slurper();
-
- bool ok() const { return _f != 0; }
-
- Landmark landmark() const { return Landmark(_filename.name(), _lineno); }
- operator Landmark() const { return landmark(); }
- unsigned lineno() const { return _lineno; }
-
- const Filename &filename() const { return _filename; }
- char *peek_line();
- char *next_line();
- char *append_next_line();
- void save_line() { _saved_line = true; }
-
- char *cur_line() const { return (char *)_line; }
- unsigned cur_line_length() const { return _line_len; }
- void shorten_line(unsigned);
-
- private:
-
- FILE *_f;
- Filename _filename;
- unsigned _lineno;
- bool _own_f;
-
- unsigned char *_data;
- unsigned _cap;
- unsigned _pos;
- unsigned _len;
-
- unsigned char *_line;
- unsigned _line_len;
-
- bool _saved_line;
- bool _at_eof;
-
- void grow_buffer();
- inline int more_data();
- char *get_line_at(unsigned);
-
-};
-
-
-inline void
-Slurper::shorten_line(unsigned pos)
-{
- if (pos < _line_len) {
- _line_len = pos;
- _line[_line_len] = 0;
- }
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/straccum.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/straccum.hh
deleted file mode 100644
index b5756561684..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/straccum.hh
+++ /dev/null
@@ -1,641 +0,0 @@
-// -*- related-file-name: "../../liblcdf/straccum.cc" -*-
-#ifndef LCDF_STRACCUM_HH
-#define LCDF_STRACCUM_HH
-#include <string.h>
-#include <assert.h>
-#include <lcdf/string.hh>
-#if HAVE_PERMSTRING
-# include <lcdf/permstr.hh>
-#endif
-#if __GNUC__ > 4
-# define LCDF_SNPRINTF_ATTR __attribute__((__format__(__printf__, 3, 4)))
-#else
-# define LCDF_SNPRINTF_ATTR /* nothing */
-#endif
-template<typename T> class Vector;
-
-/** @file <lcdf/straccum.hh>
- @brief Click's StringAccum class, used to construct Strings efficiently from pieces.
-*/
-
-class StringAccum { public:
-
- typedef const char* const_iterator;
- typedef char* iterator;
-
- typedef int (StringAccum::*unspecified_bool_type)() const;
-
- inline StringAccum();
- explicit inline StringAccum(int capacity);
- explicit inline StringAccum(const char *cstr);
- inline StringAccum(const char* s, int len);
- inline StringAccum(const String& str);
- inline StringAccum(const StringAccum& x);
- inline ~StringAccum();
-
- inline const char* data() const;
- inline char* data();
- inline const unsigned char* udata() const;
- inline unsigned char* udata();
- inline int length() const;
- inline int capacity() const;
-
- inline bool empty() const;
- inline bool operator!() const;
- inline bool out_of_memory() const;
-
- inline const_iterator begin() const;
- inline iterator begin();
- inline const_iterator end() const;
- inline iterator end();
-
-
- /** @brief Return true iff the StringAccum contains characters.
- *
- * Returns false for empty and out-of-memory StringAccums. */
- inline operator unspecified_bool_type() const {
- return _len != 0 ? &StringAccum::capacity : 0;
- }
-
-
- /** @brief Null-terminate this StringAccum and return its data.
- *
- * Note that the null character does not contribute to the StringAccum's
- * length(), and later append() and similar operations can overwrite it.
- * If appending the null character fails, the StringAccum becomes
- * out-of-memory and the returned value is a null string. */
- const char *c_str();
-
-
- inline char operator[](int i) const;
- inline char& operator[](int i);
- inline char front() const;
- inline char& front();
- inline char back() const;
- inline char& back();
-
- inline void clear();
-
- inline char* reserve(int n);
- inline void set_length(int len);
-
- /** @brief Set the StringAccum's length to @a len.
- * @pre @a len >= 0
- * @return 0 on success, -ENOMEM on failure */
- int resize(int len);
-
- inline void adjust_length(int delta);
- inline char* extend(int nadjust, int nreserve = 0);
-
- inline void pop_back(int n = 1);
-
-
- inline void append(char c);
- inline void append(unsigned char c);
-
- /** @brief Append @a len copies of character @a c to the StringAccum. */
- void append_fill(int c, int len);
-
- inline void append_utf8(unsigned ch);
-
- /** @brief Append the null-terminated C string @a s to this StringAccum.
- * @param s data to append */
- void append(const char* s);
- inline void append(const char* s, int len);
- inline void append(const unsigned char* s, int len);
- inline void append(const char* begin, const char* end);
- inline void append(const unsigned char* begin, const unsigned char* end);
-
- // word joining
- void append_break_lines(const String &text, int linelen, const String &leftmargin = String());
-
- /** @brief Append result of snprintf() to this StringAccum.
- * @param n maximum number of characters to print
- * @param format format argument to snprintf()
- *
- * The terminating null character is not appended to the string.
- *
- * @note The safe vsnprintf() variant is called if it exists. It does in
- * the Linux kernel, and on modern Unix variants. However, if it does not
- * exist on your machine, then this function is actually unsafe, and you
- * should make sure that the printf() invocation represented by your
- * arguments will never write more than @a n characters, not including the
- * terminating null. */
- StringAccum &snprintf(int n, const char *format, ...) LCDF_SNPRINTF_ATTR;
-
-
- /** @brief Return a String object with this StringAccum's contents.
- *
- * This operation donates the StringAccum's memory to the returned String.
- * After a call to take_string(), the StringAccum object becomes empty,
- * and any future append() operations may cause memory allocations. If
- * the StringAccum is out-of-memory, the returned String is also
- * out-of-memory, but the StringAccum's out-of-memory state is reset. */
- String take_string();
-
-
- inline StringAccum& operator=(const StringAccum& x);
-
- /** @brief Swap this StringAccum's contents with @a x. */
- void swap(StringAccum &x);
-
- // see also operator<< declarations below
-
- private:
-
- enum {
- MEMO_SPACE = String::MEMO_SPACE
- };
-
- unsigned char *_s;
- int _len;
- int _cap;
-
- char *grow(int);
- void assign_out_of_memory();
-
- char *hard_extend(int nadjust, int nreserve);
- void hard_append(const char *s, int len);
- void append_utf8_hard(unsigned ch);
-
- friend StringAccum &operator<<(StringAccum &sa, const char *s);
- friend StringAccum &operator<<(StringAccum &sa, const String &str);
-#if HAVE_PERMSTRING
- friend StringAccum &operator<<(StringAccum &sa, PermString s);
-#endif
-
-};
-
-inline StringAccum &operator<<(StringAccum &, char);
-inline StringAccum &operator<<(StringAccum &, unsigned char);
-inline StringAccum &operator<<(StringAccum &, const char *);
-inline StringAccum &operator<<(StringAccum &, const String &);
-inline StringAccum &operator<<(StringAccum &, const StringAccum &);
-#ifdef HAVE_PERMSTRING
-inline StringAccum &operator<<(StringAccum &, PermString);
-#endif
-
-inline StringAccum &operator<<(StringAccum &, bool);
-inline StringAccum &operator<<(StringAccum &, short);
-inline StringAccum &operator<<(StringAccum &, unsigned short);
-inline StringAccum &operator<<(StringAccum &, int);
-inline StringAccum &operator<<(StringAccum &, unsigned);
-StringAccum &operator<<(StringAccum &, long);
-StringAccum &operator<<(StringAccum &, unsigned long);
-StringAccum &operator<<(StringAccum &, double);
-
-
-/** @brief Construct an empty StringAccum (with length 0). */
-inline StringAccum::StringAccum()
- : _s(0), _len(0), _cap(0) {
-}
-
-/** @brief Construct a StringAccum with room for at least @a capacity
- * characters.
- * @param capacity initial capacity
- *
- * If @a capacity <= 0, the StringAccum is created empty. If @a capacity
- * is too large (so that @a capacity bytes of memory can't be allocated),
- * the StringAccum falls back to a smaller capacity (possibly zero). */
-inline StringAccum::StringAccum(int capacity)
- : _len(0) {
- assert(capacity >= 0);
- if (capacity
- && (_s = new unsigned char[capacity + MEMO_SPACE])) {
- _s += MEMO_SPACE;
- _cap = capacity;
- } else {
- _s = 0;
- _cap = 0;
- }
-}
-
-/** @brief Construct a StringAccum containing the characters in @a s. */
-inline StringAccum::StringAccum(const char *cstr)
- : _s(0), _len(0), _cap(0) {
- append(cstr);
-}
-
-/** @brief Construct a StringAccum containing the characters in @a s. */
-inline StringAccum::StringAccum(const char *s, int len)
- : _s(0), _len(0), _cap(0) {
- append(s, len);
-}
-
-/** @brief Construct a StringAccum containing the characters in @a str. */
-inline StringAccum::StringAccum(const String &str)
- : _s(0), _len(0), _cap(0) {
- append(str.begin(), str.end());
-}
-
-/** @brief Construct a StringAccum containing a copy of @a x. */
-inline StringAccum::StringAccum(const StringAccum &x)
- : _s(0), _len(0), _cap(0) {
- append(x.data(), x.length());
-}
-
-/** @brief Destroy a StringAccum, freeing its memory. */
-inline StringAccum::~StringAccum() {
- if (_cap > 0)
- delete[] (_s - MEMO_SPACE);
-}
-
-/** @brief Return the contents of the StringAccum.
- * @return The StringAccum's contents.
- *
- * The return value is null if the StringAccum is empty or out-of-memory.
- * The returned data() value points to writable memory (unless the
- * StringAccum itself is const). */
-inline const char* StringAccum::data() const {
- return reinterpret_cast<const char *>(_s);
-}
-
-/** @overload */
-inline char* StringAccum::data() {
- return reinterpret_cast<char *>(_s);
-}
-
-inline const unsigned char* StringAccum::udata() const {
- return _s;
-}
-
-inline unsigned char* StringAccum::udata() {
- return _s;
-}
-
-/** @brief Return true iff the StringAccum is empty or out-of-memory. */
-inline bool StringAccum::empty() const {
- return _len == 0;
-}
-
-/** @brief Return the length of the StringAccum. */
-inline int StringAccum::length() const {
- return _len;
-}
-
-/** @brief Return the StringAccum's current capacity.
- *
- * The capacity is the maximum length the StringAccum can hold without
- * incurring a memory allocation. Returns -1 for out-of-memory
- * StringAccums. */
-inline int StringAccum::capacity() const {
- return _cap;
-}
-
-/** @brief Return an iterator for the first character in the StringAccum.
- *
- * StringAccum iterators are simply pointers into string data, so they are
- * quite efficient. @sa StringAccum::data */
-inline StringAccum::const_iterator StringAccum::begin() const {
- return reinterpret_cast<char*>(_s);
-}
-
-/** @overload */
-inline StringAccum::iterator StringAccum::begin() {
- return reinterpret_cast<char*>(_s);
-}
-
-/** @brief Return an iterator for the end of the StringAccum.
- *
- * The return value points one character beyond the last character in the
- * StringAccum. */
-inline StringAccum::const_iterator StringAccum::end() const {
- return reinterpret_cast<char*>(_s + _len);
-}
-
-/** @overload */
-inline StringAccum::iterator StringAccum::end() {
- return reinterpret_cast<char*>(_s + _len);
-}
-
-/** @brief Return true iff the StringAccum does not contain characters.
- *
- * Returns true for empty and out-of-memory StringAccums. */
-inline bool StringAccum::operator!() const {
- return _len == 0;
-}
-
-/** @brief Return true iff the StringAccum is out-of-memory. */
-inline bool StringAccum::out_of_memory() const {
- return _cap < 0;
-}
-
-/** @brief Return the <a>i</a>th character in the string.
- * @param i character index
- * @pre 0 <= @a i < length() */
-inline char StringAccum::operator[](int i) const {
- assert((unsigned) i < (unsigned) _len);
- return static_cast<char>(_s[i]);
-}
-
-/** @brief Return a reference to the <a>i</a>th character in the string.
- * @param i character index
- * @pre 0 <= @a i < length() */
-inline char& StringAccum::operator[](int i) {
- assert((unsigned) i < (unsigned) _len);
- return reinterpret_cast<char &>(_s[i]);
-}
-
-/** @brief Return the first character in the string.
- * @pre length() > 0 */
-inline char StringAccum::front() const {
- assert(_len > 0);
- return static_cast<char>(_s[0]);
-}
-
-/** @brief Return a reference to the first character in the string.
- * @pre length() > 0 */
-inline char& StringAccum::front() {
- assert(_len > 0);
- return reinterpret_cast<char &>(_s[0]);
-}
-
-/** @brief Return the last character in the string.
- * @pre length() > 0 */
-inline char StringAccum::back() const {
- assert(_len > 0);
- return static_cast<char>(_s[_len - 1]);
-}
-
-/** @brief Return a reference to the last character in the string.
- * @pre length() > 0 */
-inline char& StringAccum::back() {
- assert(_len > 0);
- return reinterpret_cast<char &>(_s[_len - 1]);
-}
-
-/** @brief Clear the StringAccum's comments.
- *
- * All characters in the StringAccum are erased. Also resets the
- * StringAccum's out-of-memory status. */
-inline void StringAccum::clear() {
- if (_cap < 0) {
- _cap = 0;
- _s = 0;
- }
- _len = 0;
-}
-
-/** @brief Reserve space for at least @a n characters.
- * @return a pointer to at least @a n characters, or null if allocation
- * fails
- * @pre @a n >= 0
- *
- * reserve() does not change the string's length(), only its capacity().
- * In a frequent usage pattern, code calls reserve(), passing an upper
- * bound on the characters that could be written by a series of
- * operations. After writing into the returned buffer, adjust_length() is
- * called to account for the number of characters actually written.
- *
- * On failure, null is returned and errno is set to ENOMEM. */
-inline char* StringAccum::reserve(int n) {
- assert(n >= 0);
- if (_len + n <= _cap)
- return reinterpret_cast<char *>(_s + _len);
- else
- return grow(_len + n);
-}
-
-/** @brief Set the StringAccum's length to @a len.
- * @param len new length in characters
- * @pre 0 <= @a len <= capacity()
- * @sa adjust_length */
-inline void StringAccum::set_length(int len) {
- assert(len >= 0 && _len <= _cap);
- _len = len;
-}
-
-/** @brief Adjust the StringAccum's length.
- * @param delta length adjustment
- * @pre If @a delta > 0, then length() + @a delta <= capacity().
- * If @a delta < 0, then length() + delta >= 0.
- *
- * The StringAccum's length after adjust_length(@a delta) equals its old
- * length plus @a delta. Generally adjust_length() is used after a call
- * to reserve(). @sa set_length */
-inline void StringAccum::adjust_length(int delta) {
- assert(_len + delta >= 0 && _len + delta <= _cap);
- _len += delta;
-}
-
-/** @brief Reserve space and adjust length in one operation.
- * @param nadjust number of characters to reserve and adjust length
- * @param nreserve additional characters to reserve
- * @pre @a nadjust >= 0 and @a nreserve >= 0
- *
- * This operation combines the effects of reserve(@a nadjust + @a
- * nreserve) and adjust_length(@a nadjust). Returns the result of the
- * reserve() call. */
-inline char* StringAccum::extend(int nadjust, int nreserve) {
- assert(nadjust >= 0 && nreserve >= 0);
- if (_len + nadjust + nreserve <= _cap) {
- char *x = reinterpret_cast<char *>(_s + _len);
- _len += nadjust;
- return x;
- } else
- return hard_extend(nadjust, nreserve);
-}
-
-/** @brief Remove characters from the end of the StringAccum.
- * @param n number of characters to remove
- * @pre @a n >= 0 and @a n <= length()
- *
- * Same as adjust_length(-@a n). */
-inline void StringAccum::pop_back(int n) {
- assert(n >= 0 && _len >= n);
- _len -= n;
-}
-
-/** @brief Append character @a c to the StringAccum.
- * @param c character to append */
-inline void StringAccum::append(char c) {
- if (_len < _cap || grow(_len))
- _s[_len++] = c;
-}
-
-/** @overload */
-inline void StringAccum::append(unsigned char c) {
- append(static_cast<char>(c));
-}
-
-/** @brief Append the UTF-8 encoding of Unicode character @a ch. */
-inline void StringAccum::append_utf8(unsigned ch) {
- if (ch < 0x80)
- append((unsigned char) ch);
- else
- append_utf8_hard(ch);
-}
-
-/** @brief Append the first @a len characters of @a s to this StringAccum.
- * @param s data to append
- * @param len length of data
- * @pre @a len >= 0 */
-inline void StringAccum::append(const char* s, int len) {
- assert(len >= 0);
- if (_len + len <= _cap) {
- memcpy(_s + _len, s, len);
- _len += len;
- } else
- hard_append(s, len);
-}
-
-/** @overload */
-inline void StringAccum::append(const unsigned char* s, int len) {
- append(reinterpret_cast<const char *>(s), len);
-}
-
-/** @brief Append the data from @a begin to @a end to the end of this
- * StringAccum.
- *
- * Does nothing if @a begin >= @a end. */
-inline void StringAccum::append(const char* begin, const char* end) {
- if (begin < end)
- append(begin, end - begin);
-}
-
-/** @overload */
-inline void StringAccum::append(const unsigned char* begin, const unsigned char* end) {
- if (begin < end)
- append(begin, end - begin);
-}
-
-/** @brief Assign this StringAccum to @a x. */
-inline StringAccum& StringAccum::operator=(const StringAccum& x) {
- if (&x != this) {
- if (out_of_memory())
- _s = 0, _cap = 0;
- _len = 0;
- append(x.data(), x.length());
- }
- return *this;
-}
-
-/** @relates StringAccum
- @brief Append character @a c to StringAccum @a sa.
- @return @a sa
- @note Same as @a sa.append(@a c). */
-inline StringAccum &
-operator<<(StringAccum &sa, char c)
-{
- sa.append(c);
- return sa;
-}
-
-/** @relates StringAccum
- @brief Append character @a c to StringAccum @a sa.
- @return @a sa
- @note Same as @a sa.append(@a c). */
-inline StringAccum &
-operator<<(StringAccum &sa, unsigned char c)
-{
- sa.append(c);
- return sa;
-}
-
-/** @relates StringAccum
- @brief Append null-terminated C string @a cstr to StringAccum @a sa.
- @return @a sa
- @note Same as @a sa.append(@a cstr). */
-inline StringAccum &
-operator<<(StringAccum &sa, const char *cstr)
-{
- sa.append(cstr);
- return sa;
-}
-
-/** @relates StringAccum
- @brief Append "true" or "false" to @a sa, depending on @a b.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, bool b)
-{
- static const char truefalse[] = "truefalse";
- if (b)
- sa.append(truefalse, 4);
- else
- sa.append(truefalse + 4, 5);
- return sa;
-}
-
-/** @relates StringAccum
- @brief Append decimal representation of @a i to @a sa.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, short i)
-{
- return sa << static_cast<long>(i);
-}
-
-/** @relates StringAccum
- @brief Append decimal representation of @a u to @a sa.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, unsigned short u)
-{
- return sa << static_cast<unsigned long>(u);
-}
-
-/** @relates StringAccum
- @brief Append decimal representation of @a i to @a sa.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, int i)
-{
- return sa << static_cast<long>(i);
-}
-
-/** @relates StringAccum
- @brief Append decimal representation of @a u to @a sa.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, unsigned u)
-{
- return sa << static_cast<unsigned long>(u);
-}
-
-/** @relates StringAccum
- @brief Append the contents of @a str to @a sa.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, const String &str)
-{
- if (!str.out_of_memory())
- sa.hard_append(str.begin(), str.length());
- else
- sa.assign_out_of_memory();
- return sa;
-}
-
-#ifdef HAVE_PERMSTRING
-inline StringAccum &
-operator<<(StringAccum &sa, PermString s)
-{
- sa.append(s.c_str(), s.length());
- return sa;
-}
-#endif
-
-/** @relates StringAccum
- @brief Append the contents of @a sb to @a sa.
- @return @a sa */
-inline StringAccum &
-operator<<(StringAccum &sa, const StringAccum &sb)
-{
- sa.append(sb.begin(), sb.end());
- return sa;
-}
-
-inline bool
-operator==(StringAccum &sa, const char *s)
-{
- return strcmp(sa.c_str(), s) == 0;
-}
-
-inline bool
-operator!=(StringAccum &sa, const char *s)
-{
- return strcmp(sa.c_str(), s) != 0;
-}
-
-#undef LCDF_SNPRINTF_ATTR
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/string.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/string.hh
deleted file mode 100644
index 2aba859caa4..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/string.hh
+++ /dev/null
@@ -1,888 +0,0 @@
-// -*- related-file-name: "../../liblcdf/string.cc" -*-
-#ifndef LCDF_STRING_HH
-#define LCDF_STRING_HH
-#include <lcdf/hashcode.hh>
-#ifdef HAVE_PERMSTRING
-# include <lcdf/permstr.hh>
-#endif
-#include <assert.h>
-class StringAccum;
-
-class String { public:
-
- /** @brief Construct an empty String (with length 0). */
- inline String() {
- assign_memo(&null_data, 0, 0);
- }
-
- /** @brief Construct a copy of the String @a x. */
- inline String(const String &x) {
- assign(x);
- }
-
- /** @brief Construct a String containing the C string @a cstr.
- * @param cstr a null-terminated C string
- * @return A String containing the characters of @a cstr, up to but not
- * including the terminating null character.
- *
- * If @a cstr equals String::out_of_memory_data(), returns an
- * out-of-memory string. */
- inline String(const char *cstr) {
- assign(cstr, -1, false);
- }
-
- /** @brief Construct a String containing the first @a len characters of
- * string @a s.
- * @param s a string
- * @param len number of characters to take from @a s. If @a len @< 0,
- * then takes @c strlen(@a s) characters.
- * @return A String containing @a len characters of @a s.
- *
- * If @a s equals String::out_of_memory_data(), returns an out-of-memory
- * string. */
- inline String(const char *s, int len) {
- assign(s, len, false);
- }
- /** @overload */
- inline String(const unsigned char *s, int len) {
- assign(reinterpret_cast<const char *>(s), len, false);
- }
-
- /** @brief Construct a String containing the characters from @a begin
- * to @a end.
- * @param begin first character in string (begin iterator)
- * @param end pointer one past last character in string (end iterator)
- * @return A String containing the characters from @a begin to @a end.
- *
- * Returns a null string if @a begin @>= @a end. If @a begin equals
- * String::out_of_memory_data(), returns an out-of-memory string. */
- inline String(const char *begin, const char *end) {
- assign(begin, (end > begin ? end - begin : 0), false);
- }
- /** @overload */
- inline String(const unsigned char *begin, const unsigned char *end) {
- assign(reinterpret_cast<const char *>(begin),
- (end > begin ? end - begin : 0), false);
- }
-
- /** @brief Construct a String equal to "true" or "false" depending on the
- * value of @a x. */
- explicit inline String(bool x) {
- assign_memo(bool_data + (x ? 0 : 5), x ? 4 : 5, 0);
- }
-
- /** @brief Construct a String containing the single character @a c. */
- explicit inline String(char c) {
- assign(&c, 1, false);
- }
-
- /** @overload */
- explicit inline String(unsigned char c) {
- assign(reinterpret_cast<char *>(&c), 1, false);
- }
-
- /** @brief Construct a base-10 string representation of @a x. */
- explicit String(int x);
- /** @overload */
- explicit String(unsigned x);
- /** @overload */
- explicit String(long x);
- /** @overload */
- explicit String(unsigned long x);
- /** @overload */
- explicit String(double x);
-#if HAVE_PERMSTRING
- inline String(PermString x) {
- assign(x);
- }
-#endif
-
- /** @brief Destroy a String, freeing memory if necessary. */
- inline ~String() {
- deref();
- }
-
-
- /** @brief Return a const reference to an empty String.
- *
- * May be quicker than String::String(). */
- static inline const String &make_empty() {
- return reinterpret_cast<const String &>(null_string_rep);
- }
-
- /** @brief Return a String containing @a len unknown characters. */
- static String make_uninitialized(int len) {
- String s;
- s.append_uninitialized(len);
- return s;
- }
-
- /** @brief Return a String that directly references the first @a len
- * characters of @a s.
- *
- * This function is suitable for static constant strings whose data is
- * known to stay around forever, such as C string constants. If @a len @<
- * 0, treats @a s as a null-terminated C string.
- *
- * @warning The String implementation may access @a s[@a len], which
- * should remain constant even though it's not part of the String. */
- static String make_stable(const char *s, int len = -1);
-
- /** @brief Return a String that directly references the character data in
- * [@a begin, @a end).
- * @param begin pointer to the first character in the character data
- * @param end pointer one beyond the last character in the character data
- * (but see the warning)
- *
- * This function is suitable for static constant strings whose data is
- * known to stay around forever, such as C string constants. Returns an
- * empty string if @a begin @>= @a end.
- *
- * @warning The String implementation may access *@a end, which should
- * remain constant even though it's not part of the String. */
- static inline String make_stable(const char *begin, const char *end) {
- if (begin < end)
- return String::make_stable(begin, end - begin);
- else
- return String();
- }
- static String make_fill(int c, int n); // n copies of c
-
-
- /** @brief Return the string's length. */
- inline int length() const {
- return _r.length;
- }
-
- /** @brief Return a pointer to the string's data.
- *
- * Only the first length() characters are valid, and the string data
- * might not be null-terminated. */
- inline const char *data() const {
- return _r.data;
- }
-
- /** @brief Return a pointer to the string's data as unsigned chars.
- *
- * Only the first length() characters are valid, and the string data
- * might not be null-terminated. @sa data() */
- inline const unsigned char *udata() const {
- return reinterpret_cast<const unsigned char *>(_r.data);
- }
-
-
- typedef const char *const_iterator;
- typedef const_iterator iterator;
-
- /** @brief Return an iterator for the first character in the string.
- *
- * String iterators are simply pointers into string data, so they are
- * quite efficient. @sa String::data */
- inline const_iterator begin() const {
- return _r.data;
- }
-
- /** @brief Return an iterator for the end of the string.
- *
- * The return value points one character beyond the last character in the
- * string. */
- inline const_iterator end() const {
- return _r.data + _r.length;
- }
-
- inline const unsigned char* ubegin() const {
- return reinterpret_cast<const unsigned char*>(_r.data);
- }
-
- inline const unsigned char* uend() const {
- return reinterpret_cast<const unsigned char*>(_r.data + _r.length);
- }
-
-
- typedef int (String::*unspecified_bool_type)() const;
- /** @brief Return true iff the string is nonempty. */
- inline operator unspecified_bool_type() const {
- return _r.length != 0 ? &String::length : 0;
- }
-
- /** @brief Return true iff the string is empty. */
- inline bool empty() const {
- return _r.length == 0;
- }
-
- /** @brief Return true iff the string is empty. */
- inline bool operator!() const {
- return empty();
- }
-
-
- /** @brief Return the @a i th character in the string.
- *
- * Does not check bounds. @sa String::at */
- inline char operator[](int i) const {
- return _r.data[i];
- }
-
- /** @brief Return the @a i th character in the string.
- *
- * Checks bounds: an assertion will fail if @a i is less than 0 or not
- * less than length(). @sa String::operator[] */
- inline char at(int i) const {
- assert((unsigned) i < (unsigned) _r.length);
- return _r.data[i];
- }
-
- /** @brief Return the first character in the string.
- *
- * Does not check bounds. Same as (*this)[0]. */
- inline char front() const {
- return _r.data[0];
- }
-
- /** @brief Return the last character in the string.
- *
- * Does not check bounds. Same as (*this)[length() - 1]. */
- inline char back() const {
- return _r.data[_r.length - 1];
- }
-
-
- /** @brief Null-terminate the string.
- *
- * The terminating null character isn't considered part of the string, so
- * this->length() doesn't change. Returns a corresponding C string
- * pointer. The returned pointer is semi-temporary; it will persist until
- * the string is destroyed or appended to. */
- inline const char *c_str() const {
- // We may already have a '\0' in the right place. If _memo has no
- // capacity, then this is one of the special strings (null or
- // stable). We are guaranteed, in these strings, that _data[_length]
- // exists. Otherwise must check that _data[_length] exists.
- const char *end_data = _r.data + _r.length;
- if ((_r.memo && end_data >= _r.memo->real_data + _r.memo->dirty)
- || *end_data != '\0') {
- if (char *x = const_cast<String *>(this)->append_uninitialized(1)) {
- *x = '\0';
- --_r.length;
- }
- }
- return _r.data;
- }
-
-#if HAVE_PERMSTRING
- operator PermString() const {
- return PermString(_r.data, _r.length);
- }
-#endif
-
-
- /** @brief Return a 32-bit hash function of the characters in [begin, end).
- *
- * Uses Paul Hsieh's "SuperFastHash" algorithm, described at
- * http://www.azillionmonkeys.com/qed/hash.html
- * This hash function uses all characters in the string.
- *
- * @invariant If end1 - begin1 == end2 - begin2 and memcmp(begin1, begin2,
- * end1 - begin1) == 0, then hashcode(begin1, end1) == hashcode(begin2,
- * end2). */
- static hashcode_t hashcode(const char *begin, const char *end);
-
- /** @overload */
- static inline hashcode_t hashcode(const unsigned char *begin,
- const unsigned char *end) {
- return hashcode(reinterpret_cast<const char *>(begin),
- reinterpret_cast<const char *>(end));
- }
-
- /** @brief Returns a 32-bit hash function of this string's characters.
- *
- * Equivalent to String::hashcode(begin(), end()). Uses Paul Hsieh's
- * "SuperFastHash."
- *
- * @invariant If s1 == s2, then s1.hashcode() == s2.hashcode(). */
- inline hashcode_t hashcode() const {
- return length() ? hashcode(begin(), end()) : 0;
- }
-
-
- /** @brief Return true iff this string is equal to the data in @a s.
- * @param s string data to compare to
- * @param len length of @a s
- *
- * Same as String::compare(*this, String(s, len)) == 0. If @a len @< 0,
- * then treats @a s as a null-terminated C string.
- *
- * @sa String::compare(const String &a, const String &b) */
- bool equals(const char *s, int len) const;
-
- // bool operator==(const String &, const String &);
- // bool operator==(const String &, const char *);
- // bool operator==(const char *, const String &);
- // bool operator!=(const String &, const String &);
- // bool operator!=(const String &, const char *);
- // bool operator!=(const char *, const String &);
-
-
- /** @brief Compare two strings.
- * @param a first string to compare
- * @param b second string to compare
- *
- * Returns 0 if @a a == @a b, negative if @a a @< @a b in lexicographic
- * order, and positive if @a a @> @a b in lexicographic order. The
- * lexicographic order treats all characters as unsigned. */
- static inline int compare(const String &a, const String &b) {
- return a.compare(b);
- }
-
- /** @brief Compare this string with string @a x.
- *
- * Same as String::compare(*this, @a x).
- * @sa String::compare(const String &a, const String &b) */
- inline int compare(const String &x) const {
- return compare(x._r.data, x._r.length);
- }
-
- /** @brief Compare this string with the data in @a s.
- * @param s string data to compare to
- * @param len length of @a s
- *
- * Same as String::compare(*this, String(s, len)). If @a len @< 0, then
- * treats @a s as a null-terminated C string.
- *
- * @sa String::compare(const String &a, const String &b) */
- int compare(const char *s, int len) const;
-
- // bool operator<(const String &, const String &);
- // bool operator<=(const String &, const String &);
- // bool operator>(const String &, const String &);
- // bool operator>=(const String &, const String &);
-
-
- /** @brief Return a substring of the current string starting at @a begin
- * and ending before @a end.
- * @param begin pointer to the first substring character
- * @param end pointer one beyond the last substring character
- *
- * Returns an empty string if @a begin @>= @a end. Also returns an empty
- * string if @a begin or @a end is out of range (i.e., either less than
- * this->begin() or greater than this->end()), but this should be
- * considered a programming error; a future version may generate a warning
- * for this case. */
- inline String substring(const char *begin, const char *end) const {
- if (begin < end && begin >= _r.data && end <= _r.data + _r.length)
- return String(begin, end - begin, _r.memo);
- else
- return String();
- }
-
- /** @overload */
- inline String substring(const unsigned char* first, const unsigned char* last) const {
- return substring(reinterpret_cast<const char*>(first),
- reinterpret_cast<const char*>(last));
- }
-
- /** @brief Return a substring of this string, consisting of the @a len
- * characters starting at index @a pos.
- * @param pos substring's first position relative to the string
- * @param len length of substring
- *
- * If @a pos is negative, starts that far from the end of the string. If
- * @a len is negative, leaves that many characters off the end of the
- * string. If @a pos and @a len specify a substring that is partly
- * outside the string, only the part within the string is returned. If
- * the substring is beyond either end of the string, returns an empty
- * string (but this should be considered a programming error; a future
- * version may generate a warning for this case).
- *
- * @note String::substring() is intended to behave like Perl's substr(). */
- String substring(int pos, int len) const;
-
- /** @brief Return the suffix of the current string starting at index @a pos.
- *
- * If @a pos is negative, starts that far from the end of the string. If
- * @a pos is so negative that the suffix starts outside the string, then
- * the entire string is returned. If the substring is beyond the end of
- * the string (@a pos > length()), returns an empty string (but this
- * should be considered a programming error; a future version may generate
- * a warning for this case).
- *
- * @note String::substring() is intended to behave like Perl's substr(). */
- inline String substring(int pos) const {
- return substring((pos <= -_r.length ? 0 : pos), _r.length);
- }
-
-
- /** @brief Search for a character in a string.
- * @param c character to search for
- * @param start initial search position
- *
- * Return the index of the leftmost occurence of @a c, starting at index
- * @a start and working up to the end of the string. Returns -1 if @a c
- * is not found. */
- int find_left(char c, int start = 0) const;
-
- /** @brief Search for a substring in a string.
- * @param x substring to search for
- * @param start initial search position
- *
- * Return the index of the leftmost occurence of the substring @a str,
- * starting at index @a start and working up to the end of the string.
- * Returns -1 if @a str is not found. */
- int find_left(const String &x, int start = 0) const;
-
- /** @brief Search for a character in a string.
- * @param c character to search for
- * @param start initial search position
- *
- * Return the index of the rightmost occurence of the character @a c,
- * starting at index @a start and working back to the beginning of the
- * string. Returns -1 if @a c is not found. @a start may start beyond
- * the end of the string. */
- int find_right(char c, int start = 0x7FFFFFFF) const;
-
- /** @brief Return true iff this string begins with prefix @a x.
- *
- * Same as String::starts_with(@a x.data(), @a x.length()). */
- inline bool starts_with(const String &x) const {
- return starts_with(x._r.data, x._r.length);
- }
-
- /** @brief Return true iff this string begins with the data in @a s.
- * @param s string data to compare to
- * @param len length of @a s
- *
- * If @a len @< 0, then treats @a s as a null-terminated C string.
- *
- * @sa String::compare(const String &a, const String &b) */
- bool starts_with(const char *s, int len) const;
-
- String lower() const;
- String upper() const;
- String printable(int type = 0) const;
-
-
- /** @brief Assign this string to @a x. */
- inline String &operator=(const String &x) {
- if (&x != this) {
- deref();
- assign(x);
- }
- return *this;
- }
-
- /** @brief Assign this string to the C string @a cstr. */
- inline String &operator=(const char *cstr) {
- assign(cstr, -1, true);
- return *this;
- }
-
-#ifdef HAVE_PERMSTRING
- inline String &operator=(PermString p) {
- deref();
- assign(p);
- return *this;
- }
-#endif
-
- /** @brief Append the null-terminated C string @a cstr to this string.
- * @param cstr data to append */
- inline void append(const char *cstr) {
- append(cstr, -1, 0);
- }
-
- /** @brief Append the first @a len characters of @a s to this string.
- * @param s data to append
- * @param len length of data
- * @pre @a len @>= 0 */
- inline void append(const char *s, int len) {
- append(s, len, 0);
- }
-
- /** @brief Appends the data from @a begin to @a end to the end of this
- * string.
- *
- * Does nothing if @a begin @>= @a end. */
- inline void append(const char *begin, const char *end) {
- if (begin < end)
- append(begin, end - begin);
- }
-
- /** @brief Append @a len copies of character @a c to this string. */
- void append_fill(int c, int len);
-
- /** @brief Append @a len unknown characters to this string.
- * @return Modifiable pointer to the appended characters.
- *
- * The caller may safely modify the returned memory. Null is returned if
- * the string becomes out-of-memory. */
- char *append_uninitialized(int len);
-
-
- /** @brief Append a copy of @a x to the end of this string.
- *
- * Returns the result. */
- inline String &operator+=(const String &x) {
- append(x._r.data, x._r.length, x._r.memo);
- return *this;
- }
-
- /** @brief Append a copy of the C string @a cstr to the end of this string.
- *
- * Returns the result. */
- inline String &operator+=(const char *cstr) {
- append(cstr);
- return *this;
- }
-
- /** @brief Append the character @a c to the end of this string.
- *
- * Returns the result. */
- inline String &operator+=(char c) {
- append(&c, 1);
- return *this;
- }
-
-#if HAVE_PERMSTRING
- inline String &operator+=(PermString p) {
- append(p.c_str(), p.length());
- return *this;
- }
-#endif
-
-
- // String operator+(String, const String &);
- // String operator+(String, const char *);
- // String operator+(const char *, const String &);
- // String operator+(String, PermString);
- // String operator+(PermString, String);
- // String operator+(PermString, const char *);
- // String operator+(const char *, PermString);
- // String operator+(PermString, PermString);
- // String operator+(String, char);
-
-
- /** @brief Return true iff the String's data is shared or immutable. */
- inline bool data_shared() const {
- return !_r.memo || _r.memo->refcount != 1;
- }
-
- /** @brief Return a compact version of this String.
- *
- * The compact version shares no more than 256 bytes of data with any
- * other non-stable String. */
- inline String compact() const {
- if (!_r.memo || _r.memo->refcount == 1
- || (uint32_t) _r.length + 256 >= _r.memo->capacity)
- return *this;
- else
- return String(_r.data, _r.data + _r.length);
- }
-
- /** @brief Ensure the string's data is unshared and return a mutable
- * pointer to it. */
- char *mutable_data();
-
- /** @brief Null-terminate the string and return a mutable pointer to its
- * data.
- * @sa String::c_str */
- char *mutable_c_str();
-
- unsigned char *mutable_udata() {
- return reinterpret_cast<unsigned char *>(mutable_data());
- }
-
- void align(int);
-
-
- /** @brief Return true iff this is an out-of-memory string. */
- inline bool out_of_memory() const {
- return _r.data == &oom_data;
- }
-
- /** @brief Return a const reference to an out-of-memory String. */
- static inline const String &make_out_of_memory() {
- return reinterpret_cast<const String &>(oom_string_rep);
- }
-
- /** @brief Return the data pointer used for out-of-memory strings.
- *
- * The returned value may be dereferenced; it points to a null
- * character. */
- static inline const char *out_of_memory_data() {
- return &oom_data;
- }
-
- private:
-
- /** @cond never */
- struct memo_t {
- volatile uint32_t refcount;
- uint32_t capacity;
- volatile uint32_t dirty;
-#if HAVE_STRING_PROFILING > 1
- memo_t **pprev;
- memo_t *next;
-#endif
- char real_data[8]; // but it might be more or less
- };
-
- enum {
- MEMO_SPACE = sizeof(memo_t) - 8
- };
-
- struct rep_t {
- const char *data;
- int length;
- memo_t *memo;
- };
- /** @endcond never */
-
- mutable rep_t _r; // mutable for c_str()
-
-#if HAVE_STRING_PROFILING
- static uint64_t live_memo_count;
- static uint64_t memo_sizes[55];
- static uint64_t live_memo_sizes[55];
- static uint64_t live_memo_bytes[55];
-# if HAVE_STRING_PROFILING > 1
- static memo_t *live_memos[55];
-# endif
-
- static inline int profile_memo_size_bucket(uint32_t dirty, uint32_t capacity) {
- if (capacity <= 16)
- return dirty;
- else if (capacity <= 32)
- return 17 + (capacity - 17) / 2;
- else if (capacity <= 64)
- return 25 + (capacity - 33) / 8;
- else
- return 29 + 26 - ffs_msb(capacity - 1);
- }
-
- static void profile_update_memo_dirty(memo_t *memo, uint32_t old_dirty, uint32_t new_dirty, uint32_t capacity) {
- if (capacity <= 16 && new_dirty != old_dirty) {
- ++memo_sizes[new_dirty];
- ++live_memo_sizes[new_dirty];
- live_memo_bytes[new_dirty] += capacity;
- --live_memo_sizes[old_dirty];
- live_memo_bytes[old_dirty] -= capacity;
-# if HAVE_STRING_PROFILING > 1
- if ((*memo->pprev = memo->next))
- memo->next->pprev = memo->pprev;
- memo->pprev = &live_memos[new_dirty];
- if ((memo->next = *memo->pprev))
- memo->next->pprev = &memo->next;
- *memo->pprev = memo;
-# else
- (void) memo;
-# endif
- }
- }
-
- static void one_profile_report(StringAccum &sa, int i, int examples);
-#endif
-
- inline void assign_memo(const char *data, int length, memo_t *memo) const {
- _r.data = data;
- _r.length = length;
- if ((_r.memo = memo))
- ++memo->refcount;
- }
-
- inline String(const char *data, int length, memo_t *memo) {
- assign_memo(data, length, memo);
- }
-
- inline void assign(const String &x) const {
- assign_memo(x._r.data, x._r.length, x._r.memo);
- }
-
- inline void deref() const {
- if (_r.memo && --_r.memo->refcount == 0)
- delete_memo(_r.memo);
- }
-
- void assign(const char *cstr, int len, bool need_deref);
-#if HAVE_PERMSTRING
- inline void assign(PermString x) const {
- assign_memo(x.c_str(), x.length(), 0);
- }
-#endif
- void assign_out_of_memory();
- void append(const char *s, int len, memo_t *memo);
- static memo_t *create_memo(char *space, int dirty, int capacity);
- static void delete_memo(memo_t *memo);
-
- static const char null_data;
- static const char oom_data;
- static const char bool_data[11];
- static const char int_data[20];
- static const rep_t null_string_rep;
- static const rep_t oom_string_rep;
-
- static String make_claim(char *, int, int); // claim memory
-
- friend struct rep_t;
- friend class StringAccum;
-
-};
-
-
-/** @relates String
- * @brief Compares two strings for equality.
- *
- * Returns true iff the two operands have the same lengths and the same
- * characters in the same order. At most one of the operands can be a
- * null-terminated C string.
- * @sa String::compare
- */
-inline bool operator==(const String &a, const String &b) {
- return a.equals(b.data(), b.length());
-}
-
-/** @relates String */
-inline bool operator==(const char *a, const String &b) {
- return b.equals(a, -1);
-}
-
-/** @relates String */
-inline bool operator==(const String &a, const char *b) {
- return a.equals(b, -1);
-}
-
-/** @relates String
- * @brief Compare two Strings for inequality.
- *
- * Returns true iff !(@a a == @a b). At most one of the operands can be a
- * null-terminated C string. */
-inline bool operator!=(const String &a, const String &b) {
- return !a.equals(b.data(), b.length());
-}
-
-/** @relates String */
-inline bool operator!=(const char *a, const String &b) {
- return !b.equals(a, -1);
-}
-
-/** @relates String */
-inline bool operator!=(const String &a, const char *b) {
- return !a.equals(b, -1);
-}
-
-/** @relates String
- * @brief Compare two Strings.
- *
- * Returns true iff @a a @< @a b in lexicographic order.
- * @sa String::compare
- */
-inline bool operator<(const String &a, const String &b) {
- return a.compare(b.data(), b.length()) < 0;
-}
-
-/** @relates String
- * @brief Compare two Strings.
- *
- * Returns true iff @a a @<= @a b in lexicographic order.
- * @sa String::compare
- */
-inline bool operator<=(const String &a, const String &b) {
- return a.compare(b.data(), b.length()) <= 0;
-}
-
-/** @relates String
- * @brief Compare two Strings.
- *
- * Returns true iff @a a @> @a b in lexicographic order.
- * @sa String::compare
- */
-inline bool operator>(const String &a, const String &b) {
- return a.compare(b.data(), b.length()) > 0;
-}
-
-/** @relates String
- * @brief Compare two Strings.
- *
- * Returns true iff @a a @>= @a b in lexicographic order.
- * @sa String::compare
- */
-inline bool operator>=(const String &a, const String &b) {
- return a.compare(b.data(), b.length()) >= 0;
-}
-
-/** @relates String
- * @brief Concatenate the operands and return the result.
- *
- * At most one of the two operands can be a null-terminated C string. */
-inline String operator+(String a, const String &b) {
- a += b;
- return a;
-}
-
-/** @relates String */
-inline String operator+(String a, const char *b) {
- a.append(b);
- return a;
-}
-
-/** @relates String */
-inline String operator+(const char *a, const String &b) {
- String s1(a);
- s1 += b;
- return s1;
-}
-
-/** @relates String
- * @brief Concatenate the operands and return the result.
- *
- * The second operand is a single character. */
-inline String operator+(String a, char b) {
- a.append(&b, 1);
- return a;
-}
-
-#if HAVE_PERMSTRING
-
-inline bool operator==(PermString a, const String &b) {
- return b.equals(a.c_str(), a.length());
-}
-
-inline bool operator==(const String &a, PermString b) {
- return a.equals(b.c_str(), b.length());
-}
-
-inline bool operator!=(PermString a, const String &b) {
- return !b.equals(a.c_str(), a.length());
-}
-
-inline bool operator!=(const String &a, PermString b) {
- return !a.equals(b.c_str(), b.length());
-}
-
-inline String operator+(String a, PermString b) {
- a.append(b.c_str(), b.length());
- return a;
-}
-
-inline String operator+(PermString a, String b) {
- return String(a) + b;
-}
-
-inline String operator+(PermString a, const char *b) {
- return String(a) + b;
-}
-
-inline String operator+(const char *a, PermString b) {
- return String(a) + b;
-}
-
-inline String operator+(PermString a, PermString b) {
- return String(a) + b;
-}
-
-#endif
-
-inline hashcode_t hashcode(const String &str) {
- return str.hashcode();
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/strtonum.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/strtonum.h
deleted file mode 100644
index ee8745a4a42..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/strtonum.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-double strtonumber(const char *, char **);
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/transform.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/transform.hh
deleted file mode 100644
index 850a73c8004..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/transform.hh
+++ /dev/null
@@ -1,147 +0,0 @@
-// -*- related-file-name: "../../liblcdf/transform.cc" -*-
-#ifndef LCDF_TRANSFORM_HH
-#define LCDF_TRANSFORM_HH
-#include <lcdf/bezier.hh>
-#include <lcdf/string.hh>
-#include <assert.h>
-
-class Transform { public:
-
- Transform();
- Transform(const double[6]);
- Transform(double scalex, double sheary, double shearx, double scaley, double shiftx, double shifty);
- // Transform(const Transform &) generated by compiler
- // ~Transform() generated by compiler
-
- double operator[](int i) const { assert(i>=0&&i<6); return _m[i]; }
- Point translation() const { return Point(_m[4], _m[5]); }
- bool null() const { return _null; }
- void check_null(double tolerance);
-
- void scale(double, double);
- void scale(const Point &p) { scale(p.x, p.y); }
- void scale(double d) { scale(d, d); }
- void rotate(double);
- void translate(double, double);
- void translate(const Point &p) { translate(p.x, p.y); }
- void raw_translate(double, double);
- void raw_translate(const Point& p) { raw_translate(p.x, p.y); }
- void shear(double);
- Transform& operator*=(const Transform& x);
-
- inline Transform scaled(double, double) const;
- Transform scaled(const Point &p) const { return scaled(p.x, p.y); }
- Transform scaled(double d) const { return scaled(d, d); }
- inline Transform rotated(double) const;
- inline Transform translated(double, double) const;
- inline Transform translated(const Point &p) const;
- inline Transform sheared(double) const;
-
- // Transform operator+(Transform, const Point &);
- // Transform &operator+=(Transform &, const Point &);
- // Transform operator*(Transform, double);
- // Transform &operator*=(Transform &, double);
- // Transform operator*(Transform, const Transform &);
- // Transform &operator*=(Transform &, const Transform &);
- friend Point operator*(const Point &, const Transform &);
- friend Point &operator*=(Point &, const Transform &);
- friend Bezier operator*(const Bezier &, const Transform &);
- friend Bezier &operator*=(Bezier &, const Transform &);
-
- String unparse() const;
-
- private:
-
- // stored in PostScript order (along columns)
- double _m[6];
- bool _null;
-
- void real_apply_to(Point &) const;
- Point real_apply(const Point &) const;
-
-};
-
-
-inline Transform
-Transform::scaled(double x, double y) const
-{
- Transform t(*this);
- t.scale(x, y);
- return t;
-}
-
-inline Transform
-Transform::rotated(double r) const
-{
- Transform t(*this);
- t.rotate(r);
- return t;
-}
-
-inline Transform
-Transform::translated(double x, double y) const
-{
- Transform t(*this);
- t.translate(x, y);
- return t;
-}
-
-inline Transform
-Transform::translated(const Point &p) const
-{
- return translated(p.x, p.y);
-}
-
-inline Transform
-Transform::sheared(double s) const
-{
- Transform t(*this);
- t.shear(s);
- return t;
-}
-
-
-inline Transform &
-operator+=(Transform &t, const Point &p)
-{
- t.translate(p);
- return t;
-}
-
-inline Transform
-operator+(Transform t, const Point &p)
-{
- return t += p;
-}
-
-inline Transform &
-operator*=(Transform &t, double scale)
-{
- t.scale(scale);
- return t;
-}
-
-inline Transform operator*(Transform t, double scale) {
- return t *= scale;
-}
-
-inline Transform operator*(Transform a, const Transform& b) {
- return a *= b;
-}
-
-
-inline Point &
-operator*=(Point &p, const Transform &t)
-{
- if (!t.null())
- t.real_apply_to(p);
- return p;
-}
-
-inline Point
-operator*(const Point &p, const Transform &t)
-{
- return (t.null() ? p : t.real_apply(p));
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
deleted file mode 100644
index cf8906a333f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.cc
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef LCDF_VECTOR_CC
-#define LCDF_VECTOR_CC
-
-/*
- * vector.{cc,hh} -- simple array template class
- * Eddie Kohler
- *
- * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2003 International Computer Science Institute
- * Copyright (c) 1999-2019 Eddie Kohler
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file. These conditions include: you must
- * preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding.
- */
-
-/* #include <lcdf/vector.hh> */
-
-template <class T>
-Vector<T>::Vector(const Vector<T> &x)
- : _l(0), _n(0), _capacity(0)
-{
- *this = x;
-}
-
-template <class T>
-Vector<T>::~Vector()
-{
- for (size_type i = 0; i < _n; i++)
- _l[i].~T();
- delete[] (unsigned char *)_l;
-}
-
-template <class T> Vector<T> &
-Vector<T>::operator=(const Vector<T> &o)
-{
- if (&o != this) {
- for (size_type i = 0; i < _n; i++)
- _l[i].~T();
-#ifdef VALGRIND_MAKE_MEM_NOACCESS
- if (_l && _n)
- VALGRIND_MAKE_MEM_NOACCESS(_l, _n * sizeof(T));
-#endif
- _n = 0;
- if (reserve(o._n)) {
- _n = o._n;
-#ifdef VALGRIND_MAKE_MEM_UNDEFINED
- if (_l && _n)
- VALGRIND_MAKE_MEM_UNDEFINED(_l, _n * sizeof(T));
-#endif
- for (size_type i = 0; i < _n; i++)
- new(velt(i)) T(o._l[i]);
- }
- }
- return *this;
-}
-
-template <class T> Vector<T> &
-Vector<T>::assign(size_type n, const T &x)
-{
- if (&x >= begin() && &x < end()) {
- T x_copy(x);
- return assign(n, x_copy);
- } else {
- resize(0, x);
- resize(n, x);
- return *this;
- }
-}
-
-template <class T> typename Vector<T>::iterator
-Vector<T>::insert(iterator it, const T &x)
-{
- assert(it >= begin() && it <= end());
- if (&x >= begin() && &x < end()) {
- T x_copy(x);
- return insert(it, x_copy);
- }
- if (_n == _capacity) {
- size_type pos = it - begin();
- if (!reserve(RESERVE_GROW))
- return end();
- it = begin() + pos;
- }
-#ifdef VALGRIND_MAKE_MEM_UNDEFINED
- VALGRIND_MAKE_MEM_UNDEFINED(velt(_n), sizeof(T));
-#endif
- for (iterator j = end(); j > it; ) {
- --j;
- new((void*) (j + 1)) T(*j);
- j->~T();
-#ifdef VALGRIND_MAKE_MEM_UNDEFINED
- VALGRIND_MAKE_MEM_UNDEFINED(j, sizeof(T));
-#endif
- }
- new((void*) it) T(x);
- _n++;
- return it;
-}
-
-template <class T> typename Vector<T>::iterator
-Vector<T>::erase(iterator a, iterator b)
-{
- if (b > a) {
- assert(a >= begin() && b <= end());
- iterator i = a, j = b;
- for (; j < end(); i++, j++) {
- i->~T();
-#ifdef VALGRIND_MAKE_MEM_UNDEFINED
- VALGRIND_MAKE_MEM_UNDEFINED(i, sizeof(T));
-#endif
- new((void*) i) T(*j);
- }
- for (; i < end(); i++)
- i->~T();
- _n -= b - a;
-#ifdef VALGRIND_MAKE_MEM_NOACCESS
- VALGRIND_MAKE_MEM_NOACCESS(_l + _n, (b - a) * sizeof(T));
-#endif
- return a;
- } else
- return b;
-}
-
-template <class T> bool
-Vector<T>::reserve_and_push_back(size_type want, const T *push_x)
-{
- if (push_x && push_x >= begin() && push_x < end()) {
- T x_copy(*push_x);
- return reserve_and_push_back(want, &x_copy);
- }
-
- if (want < 0)
- want = (_capacity > 0 ? _capacity * 2 : 4);
-
- if (want > _capacity) {
- T *new_l = (T *)new unsigned char[sizeof(T) * want];
- if (!new_l)
- return false;
-#ifdef VALGRIND_MAKE_MEM_NOACCESS
- VALGRIND_MAKE_MEM_NOACCESS(new_l + _n, (want - _n) * sizeof(T));
-#endif
-
- for (size_type i = 0; i < _n; i++) {
- new(velt(new_l, i)) T(_l[i]);
- _l[i].~T();
- }
- delete[] (unsigned char *)_l;
-
- _l = new_l;
- _capacity = want;
- }
-
- if (push_x)
- push_back(*push_x);
- return true;
-}
-
-template <class T> void
-Vector<T>::resize(size_type n, const T &x)
-{
- if (&x >= begin() && &x < end()) {
- T x_copy(x);
- resize(n, x_copy);
- } else if (n <= _capacity || reserve(n)) {
- for (size_type i = n; i < _n; i++)
- _l[i].~T();
-#ifdef VALGRIND_MAKE_MEM_NOACCESS
- if (n < _n)
- VALGRIND_MAKE_MEM_NOACCESS(_l + n, (_n - n) * sizeof(T));
- if (_n < n)
- VALGRIND_MAKE_MEM_UNDEFINED(_l + _n, (n - _n) * sizeof(T));
-#endif
- for (size_type i = _n; i < n; i++)
- new(velt(i)) T(x);
- _n = n;
- }
-}
-
-template <class T> void
-Vector<T>::swap(Vector<T> &x)
-{
- T *l = _l;
- _l = x._l;
- x._l = l;
-
- size_type n = _n;
- _n = x._n;
- x._n = n;
-
- size_type cap = _capacity;
- _capacity = x._capacity;
- x._capacity = cap;
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.hh
deleted file mode 100644
index 86e64e238ba..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/include/lcdf/vector.hh
+++ /dev/null
@@ -1,324 +0,0 @@
-#ifndef LCDF_VECTOR_HH
-#define LCDF_VECTOR_HH
-#include <assert.h>
-#include <stdlib.h>
-#ifdef HAVE_NEW_HDR
-# include <new>
-#elif defined(HAVE_NEW_H)
-# include <new.h>
-#else
-static inline void *operator new(size_t, void *v) { return v; }
-#endif
-#if HAVE_VALGRIND && HAVE_VALGRIND_MEMCHECK_H
-# include <valgrind/memcheck.h>
-#endif
-
-template <class T>
-class Vector { public:
-
- typedef T value_type;
- typedef T& reference;
- typedef const T& const_reference;
- typedef T* pointer;
- typedef const T* const_pointer;
- typedef const T& const_access_type;
-
- typedef int size_type;
- enum { RESERVE_GROW = (size_type) -1 };
-
- typedef T* iterator;
- typedef const T* const_iterator;
-
- explicit Vector()
- : _l(0), _n(0), _capacity(0) {
- }
- explicit Vector(size_type n, const T &e)
- : _l(0), _n(0), _capacity(0) {
- resize(n, e);
- }
- // template <class In> ...
- Vector(const Vector<T> &x);
- ~Vector();
-
- Vector<T>& operator=(const Vector<T>&);
- Vector<T>& assign(size_type n, const T& e = T());
- // template <class In> ...
-
- // iterators
- iterator begin() { return _l; }
- const_iterator begin() const { return _l; }
- iterator end() { return _l + _n; }
- const_iterator end() const { return _l + _n; }
-
- // capacity
- size_type size() const { return _n; }
- void resize(size_type nn, const T& e = T());
- size_type capacity() const { return _capacity; }
- bool empty() const { return _n == 0; }
- bool reserve(size_type n) { return reserve_and_push_back(n, 0); }
-
- // element access
- T &operator[](size_type i) {
- assert((unsigned) i < (unsigned) _n);
- return _l[i];
- }
- const T &operator[](size_type i) const {
- assert((unsigned) i < (unsigned) _n);
- return _l[i];
- }
- T& at(size_type i) { return operator[](i); }
- const T& at(size_type i) const { return operator[](i); }
- T& front() { return operator[](0); }
- const T& front() const { return operator[](0); }
- T& back() { return operator[](_n - 1); }
- const T& back() const { return operator[](_n - 1); }
- T& at_u(size_type i) { return _l[i]; }
- const T& at_u(size_type i) const { return _l[i]; }
-
- // modifiers
- inline void push_back(const T& x);
- inline void pop_back();
- inline void push_front(const T& x);
- inline void pop_front();
- iterator insert(iterator it, const T& x);
- inline iterator erase(iterator it);
- iterator erase(iterator a, iterator b);
- void swap(Vector<T>& x);
- void clear() { erase(begin(), end()); }
-
- private:
-
- T *_l;
- size_type _n;
- size_type _capacity;
-
- void *velt(size_type i) const { return (void *)&_l[i]; }
- static void *velt(T *l, size_type i) { return (void *)&l[i]; }
- bool reserve_and_push_back(size_type n, const T *x);
-
-};
-
-template <class T> inline void
-Vector<T>::push_back(const T& x)
-{
- if (_n < _capacity) {
-#ifdef VALGRIND_MAKE_MEM_UNDEFINED
- VALGRIND_MAKE_MEM_UNDEFINED(velt(_n), sizeof(T));
-#endif
- new(velt(_n)) T(x);
- ++_n;
- } else
- reserve_and_push_back(RESERVE_GROW, &x);
-}
-
-template <class T> inline void
-Vector<T>::pop_back()
-{
- assert(_n > 0);
- --_n;
- _l[_n].~T();
-#ifdef VALGRIND_MAKE_MEM_NOACCESS
- VALGRIND_MAKE_MEM_NOACCESS(&_l[_n], sizeof(T));
-#endif
-}
-
-template <class T> inline typename Vector<T>::iterator
-Vector<T>::erase(iterator it)
-{
- return (it < end() ? erase(it, it + 1) : it);
-}
-
-template <class T> inline void
-Vector<T>::push_front(const T& x)
-{
- insert(begin(), x);
-}
-
-template <class T> inline void
-Vector<T>::pop_front()
-{
- erase(begin());
-}
-
-
-template <>
-class Vector<void*> { public:
-
- typedef void* value_type;
- typedef void*& reference;
- typedef void* const& const_reference;
- typedef void** pointer;
- typedef void* const* const_pointer;
- typedef void* const_access_type;
-
- typedef int size_type;
- enum { RESERVE_GROW = (size_type) -1 };
-
- typedef void** iterator;
- typedef void* const* const_iterator;
-
- explicit Vector()
- : _l(0), _n(0), _capacity(0) {
- }
- explicit Vector(size_type n, void* e)
- : _l(0), _n(0), _capacity(0) {
- resize(n, e);
- }
- Vector(const Vector<void*> &);
- ~Vector();
-
- Vector<void*> &operator=(const Vector<void*> &);
- Vector<void*> &assign(size_type n, void* x = 0);
-
- // iterators
- iterator begin() { return _l; }
- const_iterator begin() const { return _l; }
- iterator end() { return _l + _n; }
- const_iterator end() const { return _l + _n; }
-
- // capacity
- size_type size() const { return _n; }
- void resize(size_type n, void* x = 0);
- size_type capacity() const { return _capacity; }
- bool empty() const { return _n == 0; }
- bool reserve(size_type n);
-
- // element access
- void*& operator[](size_type i) { assert(i>=0 && i<_n); return _l[i]; }
- void* operator[](size_type i) const { assert(i>=0 && i<_n); return _l[i]; }
- void*& at(size_type i) { return operator[](i); }
- void* at(size_type i) const { return operator[](i); }
- void*& front() { return operator[](0); }
- void* front() const { return operator[](0); }
- void*& back() { return operator[](_n - 1); }
- void* back() const { return operator[](_n - 1); }
- void*& at_u(size_type i) { return _l[i]; }
- void* at_u(size_type i) const { return _l[i]; }
-
- // modifiers
- inline void push_back(void* x);
- inline void pop_back();
- inline void push_front(void* x);
- inline void pop_front();
- iterator insert(iterator it, void* x);
- inline iterator erase(iterator it);
- iterator erase(iterator a, iterator b);
- void swap(Vector<void*> &x);
- void clear() { _n = 0; }
-
- private:
-
- void **_l;
- size_type _n;
- size_type _capacity;
-
-};
-
-inline void
-Vector<void*>::push_back(void* x)
-{
- if (_n < _capacity || reserve(RESERVE_GROW)) {
- _l[_n] = x;
- _n++;
- }
-}
-
-inline void
-Vector<void*>::pop_back()
-{
- assert(_n > 0);
- --_n;
-#ifdef VALGRIND_MAKE_MEM_NOACCESS
- VALGRIND_MAKE_MEM_NOACCESS(&_l[_n], sizeof(void *));
-#endif
-}
-
-inline Vector<void*>::iterator
-Vector<void*>::erase(Vector<void*>::iterator it)
-{
- return (it < end() ? erase(it, it + 1) : it);
-}
-
-inline void
-Vector<void*>::push_front(void* x)
-{
- insert(begin(), x);
-}
-
-inline void
-Vector<void*>::pop_front()
-{
- erase(begin());
-}
-
-
-template <class T>
-class Vector<T*>: private Vector<void*> {
-
- typedef Vector<void*> Base;
-
- public:
-
- typedef T* value_type;
- typedef T*& reference;
- typedef T* const& const_reference;
- typedef T** pointer;
- typedef T* const* const_pointer;
- typedef T* const_access_type;
-
- typedef int size_type;
- enum { RESERVE_GROW = Base::RESERVE_GROW };
-
- typedef T** iterator;
- typedef T* const* const_iterator;
-
- explicit Vector() : Base() { }
- explicit Vector(size_type n, T* x) : Base(n, (void *)x) { }
- Vector(const Vector<T*>& x) : Base(x) { }
- ~Vector() { }
-
- Vector<T*>& operator=(const Vector<T*>& x)
- { Base::operator=(x); return *this; }
- Vector<T*>& assign(size_type n, T* x = 0)
- { Base::assign(n, (void*)x); return *this; }
-
- // iterators
- const_iterator begin() const { return (const_iterator)(Base::begin()); }
- iterator begin() { return (iterator)(Base::begin()); }
- const_iterator end() const { return (const_iterator)(Base::end()); }
- iterator end() { return (iterator)(Base::end()); }
-
- // capacity
- size_type size() const { return Base::size(); }
- void resize(size_type n, T* x = 0) { Base::resize(n, (void*)x); }
- size_type capacity() const { return Base::capacity(); }
- bool empty() const { return Base::empty(); }
- bool reserve(size_type n) { return Base::reserve(n); }
-
- // element access
- T*& operator[](size_type i) { return (T*&)(Base::at(i)); }
- T* operator[](size_type i) const { return (T*)(Base::operator[](i)); }
- T*& at(size_type i) { return (T*&)(Base::operator[](i)); }
- T* at(size_type i) const { return (T*)(Base::at(i)); }
- T*& front() { return (T*&)(Base::front()); }
- T* front() const { return (T*)(Base::front()); }
- T*& back() { return (T*&)(Base::back()); }
- T* back() const { return (T*)(Base::back()); }
- T*& at_u(size_type i) { return (T*&)(Base::at_u(i)); }
- T* at_u(size_type i) const { return (T*)(Base::at_u(i)); }
-
- // modifiers
- void push_back(T* x) { Base::push_back((void*)x); }
- void pop_back() { Base::pop_back(); }
- void push_front(T* x) { Base::push_front((void*)x); }
- void pop_front() { Base::pop_front(); }
- iterator insert(iterator it, T* x) { return (iterator)Base::insert((void**)it, (void*)x); }
- iterator erase(iterator it) { return (iterator)Base::erase((void**)it); }
- iterator erase(iterator a, iterator b) { return (iterator)Base::erase((void**)a, (void**)b); }
- void swap(Vector<T*>& x) { Base::swap(x); }
- void clear() { Base::clear(); }
-
-};
-
-#include <lcdf/vector.cc>
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
deleted file mode 100644
index d9eedba6dd3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/lcdf-typetools.spec
+++ /dev/null
@@ -1,99 +0,0 @@
-Summary: Programs to manipulate OpenType and multiple-master fonts
-Name: lcdf-typetools
-Version: 2.108
-Copyright: GPL
-Vendor: Little Cambridgeport Design Factory <http://www.lcdf.org/>
-Group: Utilities/Printing
-Source: %{name}-%{version}.tar.gz
-Buildroot: /var/tmp/%{name}-%{version}-buildroot
-Requires: tetex > 2.0
-
-%description
-This package contains four tools for working with OpenType fonts:
-
- cfftot1 allows you to translate Compact Font Format (CFF) or
- PostScript-flavored OpenType fonts into PostScript
- Type 1 font format
-
- otfinfo reports information about OpenType fonts, such as the
- features they support and the contents of their ``size''
- optical size option
-
- otftotfm allows you to create TeX font metrics and encodings for
- using OpenType fonts
-
- t1dotlessj creates a Type 1 font with a single character --
- the dotless j corresponding to the specified design
-
- t1lint checks a Type 1 font for correctness (preliminary)
-
- t1reencode reencodes a Type 1 font, replacing its internal encoding with
- one you specify
-
- t1testpage creates a PostScript test page for a specified
- font file (preliminary)
-
- ttftotype42 creates a Type 42 wrapper for a TrueType or TrueType-flavored
- OpenType font.
-
-The package now includes programs for working with multiple-master
-fonts formerly distributed as mminstance. These tools allow you to
-use multiple-master fonts with programs that require single-master
-fonts (afm2tfm, ps2pk, fontinst, etc.). Both programs work fine with
-fonts that contain intermediate masters (e.g., Adobe Jenson MM and
-Adobe Kepler MM).
-
-mmafm creates an AFM (Adobe font metric) file corresponding to
- a single instance of a multiple-master font. It reads
- (and therefore requires) the AMFM and AFM files
- distributed with the font.
-
-mmpfb creates a normal, single-master font program that looks
- like an instance of a multiple-master font. It reads
- the multiple-master font program in PFA or PFB format.
-
-## PREP
-%prep
-%setup -q
-
-## BUILD
-%build
-%configure
-make
-
-## PRE
-%pre
-
-## POST
-%post
-
-## INSTALL
-%install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install
-#make install all DESTDIR=%{buildroot}
-
-## FILES
-%files
-%defattr(-,root,root)
-%doc NEWS ONEWS README
-%{_bindir}/cfftot1
-%{_bindir}/mmafm
-%{_bindir}/mmpfb
-%{_bindir}/otfinfo
-%{_bindir}/otftotfm
-%{_bindir}/t1dotlessj
-%{_bindir}/t1lint
-%{_bindir}/t1reencode
-%{_bindir}/t1testpage
-%{_bindir}/ttftotype42
-%{_mandir}/man*/*
-%{_datadir}/lcdf-typetools/*
-
-%changelog
-
-* Fri Aug 3 2007 Eddie Kohler <kohler@cs.ucla.edu>
-- Updates.
-
-* Wed Sep 8 2004 Claire Connelly <cmc@math.hmc.edu> - 2.12-hmcmath.1
-- Initial packaging.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.am
deleted file mode 100644
index a783e28e640..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.am
+++ /dev/null
@@ -1,43 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-noinst_LIBRARIES = libefont.a
-
-libefont_a_SOURCES = \
- afm.cc \
- afmparse.cc \
- afmw.cc \
- amfm.cc \
- cff.cc \
- encoding.cc \
- findmet.cc \
- metrics.cc \
- otf.cc \
- otfcmap.cc \
- otfdata.cc \
- otfdescrip.cc \
- otfgpos.cc \
- otfgsub.cc \
- otfname.cc \
- otfos2.cc \
- otfpost.cc \
- pairop.cc \
- psres.cc \
- t1bounds.cc \
- t1cs.cc \
- t1csgen.cc \
- t1interp.cc \
- t1item.cc \
- t1font.cc \
- t1fontskel.cc \
- t1mm.cc \
- t1rw.cc \
- t1unparser.cc \
- ttfcs.cc \
- ttfhead.cc \
- ttfkern.cc
-
-libefont_a_LIBADD = @TEMPLATE_OBJS@
-CLEANFILES = @TEMPLATE_OBJS@
-
-AM_CPPFLAGS = -I$(srcdir)/../include
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.in
deleted file mode 100644
index f6119467ab7..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/Makefile.in
+++ /dev/null
@@ -1,778 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = lcdf-typetools-src/libefont
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_@AM_V@)
-am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo " AR " $@;
-am__v_AR_1 =
-libefont_a_AR = $(AR) $(ARFLAGS)
-libefont_a_DEPENDENCIES =
-am_libefont_a_OBJECTS = afm.$(OBJEXT) afmparse.$(OBJEXT) \
- afmw.$(OBJEXT) amfm.$(OBJEXT) cff.$(OBJEXT) encoding.$(OBJEXT) \
- findmet.$(OBJEXT) metrics.$(OBJEXT) otf.$(OBJEXT) \
- otfcmap.$(OBJEXT) otfdata.$(OBJEXT) otfdescrip.$(OBJEXT) \
- otfgpos.$(OBJEXT) otfgsub.$(OBJEXT) otfname.$(OBJEXT) \
- otfos2.$(OBJEXT) otfpost.$(OBJEXT) pairop.$(OBJEXT) \
- psres.$(OBJEXT) t1bounds.$(OBJEXT) t1cs.$(OBJEXT) \
- t1csgen.$(OBJEXT) t1interp.$(OBJEXT) t1item.$(OBJEXT) \
- t1font.$(OBJEXT) t1fontskel.$(OBJEXT) t1mm.$(OBJEXT) \
- t1rw.$(OBJEXT) t1unparser.$(OBJEXT) ttfcs.$(OBJEXT) \
- ttfhead.$(OBJEXT) ttfkern.$(OBJEXT)
-libefont_a_OBJECTS = $(am_libefont_a_OBJECTS)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/afm.Po ./$(DEPDIR)/afmparse.Po \
- ./$(DEPDIR)/afmw.Po ./$(DEPDIR)/amfm.Po ./$(DEPDIR)/cff.Po \
- ./$(DEPDIR)/encoding.Po ./$(DEPDIR)/findmet.Po \
- ./$(DEPDIR)/metrics.Po ./$(DEPDIR)/otf.Po \
- ./$(DEPDIR)/otfcmap.Po ./$(DEPDIR)/otfdata.Po \
- ./$(DEPDIR)/otfdescrip.Po ./$(DEPDIR)/otfgpos.Po \
- ./$(DEPDIR)/otfgsub.Po ./$(DEPDIR)/otfname.Po \
- ./$(DEPDIR)/otfos2.Po ./$(DEPDIR)/otfpost.Po \
- ./$(DEPDIR)/pairop.Po ./$(DEPDIR)/psres.Po \
- ./$(DEPDIR)/t1bounds.Po ./$(DEPDIR)/t1cs.Po \
- ./$(DEPDIR)/t1csgen.Po ./$(DEPDIR)/t1font.Po \
- ./$(DEPDIR)/t1fontskel.Po ./$(DEPDIR)/t1interp.Po \
- ./$(DEPDIR)/t1item.Po ./$(DEPDIR)/t1mm.Po ./$(DEPDIR)/t1rw.Po \
- ./$(DEPDIR)/t1unparser.Po ./$(DEPDIR)/ttfcs.Po \
- ./$(DEPDIR)/ttfhead.Po ./$(DEPDIR)/ttfkern.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(libefont_a_SOURCES)
-DIST_SOURCES = $(libefont_a_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-noinst_LIBRARIES = libefont.a
-libefont_a_SOURCES = \
- afm.cc \
- afmparse.cc \
- afmw.cc \
- amfm.cc \
- cff.cc \
- encoding.cc \
- findmet.cc \
- metrics.cc \
- otf.cc \
- otfcmap.cc \
- otfdata.cc \
- otfdescrip.cc \
- otfgpos.cc \
- otfgsub.cc \
- otfname.cc \
- otfos2.cc \
- otfpost.cc \
- pairop.cc \
- psres.cc \
- t1bounds.cc \
- t1cs.cc \
- t1csgen.cc \
- t1interp.cc \
- t1item.cc \
- t1font.cc \
- t1fontskel.cc \
- t1mm.cc \
- t1rw.cc \
- t1unparser.cc \
- ttfcs.cc \
- ttfhead.cc \
- ttfkern.cc
-
-libefont_a_LIBADD = @TEMPLATE_OBJS@
-CLEANFILES = @TEMPLATE_OBJS@
-AM_CPPFLAGS = -I$(srcdir)/../include
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/libefont/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/libefont/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libefont.a: $(libefont_a_OBJECTS) $(libefont_a_DEPENDENCIES) $(EXTRA_libefont_a_DEPENDENCIES)
- $(AM_V_at)-rm -f libefont.a
- $(AM_V_AR)$(libefont_a_AR) libefont.a $(libefont_a_OBJECTS) $(libefont_a_LIBADD)
- $(AM_V_at)$(RANLIB) libefont.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afm.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afmparse.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afmw.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amfm.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cff.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encoding.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findmet.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metrics.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otf.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfcmap.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfdata.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfdescrip.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfgpos.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfgsub.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfname.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfos2.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfpost.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pairop.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psres.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1bounds.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1cs.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1csgen.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1font.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1fontskel.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1interp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1item.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1mm.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1rw.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1unparser.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttfcs.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttfhead.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttfkern.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/afm.Po
- -rm -f ./$(DEPDIR)/afmparse.Po
- -rm -f ./$(DEPDIR)/afmw.Po
- -rm -f ./$(DEPDIR)/amfm.Po
- -rm -f ./$(DEPDIR)/cff.Po
- -rm -f ./$(DEPDIR)/encoding.Po
- -rm -f ./$(DEPDIR)/findmet.Po
- -rm -f ./$(DEPDIR)/metrics.Po
- -rm -f ./$(DEPDIR)/otf.Po
- -rm -f ./$(DEPDIR)/otfcmap.Po
- -rm -f ./$(DEPDIR)/otfdata.Po
- -rm -f ./$(DEPDIR)/otfdescrip.Po
- -rm -f ./$(DEPDIR)/otfgpos.Po
- -rm -f ./$(DEPDIR)/otfgsub.Po
- -rm -f ./$(DEPDIR)/otfname.Po
- -rm -f ./$(DEPDIR)/otfos2.Po
- -rm -f ./$(DEPDIR)/otfpost.Po
- -rm -f ./$(DEPDIR)/pairop.Po
- -rm -f ./$(DEPDIR)/psres.Po
- -rm -f ./$(DEPDIR)/t1bounds.Po
- -rm -f ./$(DEPDIR)/t1cs.Po
- -rm -f ./$(DEPDIR)/t1csgen.Po
- -rm -f ./$(DEPDIR)/t1font.Po
- -rm -f ./$(DEPDIR)/t1fontskel.Po
- -rm -f ./$(DEPDIR)/t1interp.Po
- -rm -f ./$(DEPDIR)/t1item.Po
- -rm -f ./$(DEPDIR)/t1mm.Po
- -rm -f ./$(DEPDIR)/t1rw.Po
- -rm -f ./$(DEPDIR)/t1unparser.Po
- -rm -f ./$(DEPDIR)/ttfcs.Po
- -rm -f ./$(DEPDIR)/ttfhead.Po
- -rm -f ./$(DEPDIR)/ttfkern.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/afm.Po
- -rm -f ./$(DEPDIR)/afmparse.Po
- -rm -f ./$(DEPDIR)/afmw.Po
- -rm -f ./$(DEPDIR)/amfm.Po
- -rm -f ./$(DEPDIR)/cff.Po
- -rm -f ./$(DEPDIR)/encoding.Po
- -rm -f ./$(DEPDIR)/findmet.Po
- -rm -f ./$(DEPDIR)/metrics.Po
- -rm -f ./$(DEPDIR)/otf.Po
- -rm -f ./$(DEPDIR)/otfcmap.Po
- -rm -f ./$(DEPDIR)/otfdata.Po
- -rm -f ./$(DEPDIR)/otfdescrip.Po
- -rm -f ./$(DEPDIR)/otfgpos.Po
- -rm -f ./$(DEPDIR)/otfgsub.Po
- -rm -f ./$(DEPDIR)/otfname.Po
- -rm -f ./$(DEPDIR)/otfos2.Po
- -rm -f ./$(DEPDIR)/otfpost.Po
- -rm -f ./$(DEPDIR)/pairop.Po
- -rm -f ./$(DEPDIR)/psres.Po
- -rm -f ./$(DEPDIR)/t1bounds.Po
- -rm -f ./$(DEPDIR)/t1cs.Po
- -rm -f ./$(DEPDIR)/t1csgen.Po
- -rm -f ./$(DEPDIR)/t1font.Po
- -rm -f ./$(DEPDIR)/t1fontskel.Po
- -rm -f ./$(DEPDIR)/t1interp.Po
- -rm -f ./$(DEPDIR)/t1item.Po
- -rm -f ./$(DEPDIR)/t1mm.Po
- -rm -f ./$(DEPDIR)/t1rw.Po
- -rm -f ./$(DEPDIR)/t1unparser.Po
- -rm -f ./$(DEPDIR)/ttfcs.Po
- -rm -f ./$(DEPDIR)/ttfhead.Po
- -rm -f ./$(DEPDIR)/ttfkern.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-generic clean-libtool clean-noinstLIBRARIES \
- cscopelist-am ctags ctags-am distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
deleted file mode 100644
index 2d850c6ef8e..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afm.cc
+++ /dev/null
@@ -1,586 +0,0 @@
-// -*- related-file-name: "../include/efont/afm.hh" -*-
-
-/* afm.{cc,hh} -- Adobe Font Metrics files
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/afm.hh>
-#include <efont/afmparse.hh>
-#include <efont/t1cs.hh> /* for UNKDOUBLE */
-#include <lcdf/error.hh>
-#include <ctype.h>
-#include <assert.h>
-namespace Efont {
-
-AfmReader::AfmReader(AfmParser &parser, Metrics *afm, AfmMetricsXt *afm_xt,
- ErrorHandler *errh)
- : _afm(afm), _afm_xt(afm_xt), _l(parser),
- _composite_warned(false), _metrics_sets_warned(false), _y_width_warned(0)
-{
- _errh = errh ? errh : ErrorHandler::silent_handler();
-}
-
-Metrics *
-AfmReader::read(Slurper &slurp, ErrorHandler *errh)
-{
- AfmParser p(slurp);
- if (!p.ok())
- return 0;
-
- Metrics *afm = new Metrics;
- AfmMetricsXt *afm_xt = new AfmMetricsXt;
- afm->add_xt(afm_xt);
- AfmReader reader(p, afm, afm_xt, errh);
-
- if (!reader.read()) {
- delete afm;
- return 0;
- } else
- return afm;
-}
-
-Metrics *
-AfmReader::read(const Filename &fn, ErrorHandler *errh)
-{
- Slurper slurpy(fn);
- return read(slurpy, errh);
-}
-
-
-void
-AfmReader::lwarning(const char *format, ...) const
-{
- va_list val;
- va_start(val, format);
- _errh->xmessage(_l.landmark(), ErrorHandler::e_warning, format, val);
- va_end(val);
-}
-
-void
-AfmReader::lerror(const char *format, ...) const
-{
- va_list val;
- va_start(val, format);
- _errh->xmessage(_l.landmark(), ErrorHandler::e_error, format, val);
- va_end(val);
-}
-
-GlyphIndex
-AfmReader::find_err(PermString name, const char *) const
-{
- GlyphIndex gi = _afm->find(name);
- if (gi < 0)
- lerror("character `%s' doesn't exist", name.c_str());
- return gi;
-}
-
-void
-AfmReader::composite_warning() const
-{
- if (!_composite_warned)
- lwarning("composite fonts not supported");
- _composite_warned = 1;
-}
-
-void
-AfmReader::metrics_sets_warning() const
-{
- if (!_metrics_sets_warned)
- lwarning("only metrics set 0 is supported");
- _metrics_sets_warned = 1;
-}
-
-void
-AfmReader::y_width_warning() const
-{
- if (_y_width_warned < 40) {
- lwarning("character has a nonzero Y width");
- _y_width_warned++;
- if (_y_width_warned == 40)
- lwarning("I won't warn you again.");
- }
-}
-
-void
-AfmReader::no_match_warning(const char *context) const
-{
- // keyword() will fail (and a warning won't get printed) only if the string
- // is all whitespace, which the spec allows
- PermString keyword = _l.keyword();
- if (!keyword) return;
- if (_l.key_matched()) {
- lwarning(context ? "bad `%s' command in %s:"
- : "bad `%s' command:", keyword.c_str(), context);
- lwarning("field %d %s", _l.fail_field(), _l.message().c_str());
- } else
- lwarning(context ? "unknown command `%s' in %s"
- : "unknown command `%s'", keyword.c_str(), context);
- _l.clear_message();
-}
-
-
-bool
-AfmReader::read()
-{
- AfmParser &l = _l;
- assert(_afm && _afm_xt);
-
- // First, read all opening comments into an array so we can print them out
- // later.
- PermString comment;
- while (l.next_line()) {
- if (l.isall("Comment %+s", &comment))
- _afm_xt->opening_comments.push_back(comment);
- else if (l.isall("StartFontMetrics %g", (double *)0))
- ;
- else {
- l.save_line();
- break;
- }
- }
-
- _afm->set_scale(1000);
- unsigned invalid_lines = 0;
- PermString s;
- bool isbasefont;
- int metrics_sets;
- int direction;
-
- while (l.next_line())
- switch (l.first()) {
-
- case 'A':
- if (l.isall("Ascender %g", &fd( fdAscender )))
- break;
- goto invalid;
-
- case 'C':
- if (l.isall("Characters %d", (int *)0))
- break;
- if (l.isall("CapHeight %g", &fd( fdCapHeight )))
- break;
- if (l.isall("CharacterSet %+s", (PermString *) 0))
- break;
- if (l.isall("CharWidth %g %g", (double *)0, (double *)0))
- break;
- if (l.isall("Comment %+s", (PermString *) 0))
- break;
- goto invalid;
-
- case 'D':
- if (l.isall("Descender %g", &fd( fdDescender )))
- break;
- goto invalid;
-
- case 'E':
- if (l.isall("EncodingScheme %+s", &_afm_xt->encoding_scheme))
- break;
- if (l.isall("EndDirection"))
- break;
- if (l.isall("EndFontMetrics"))
- goto done;
- if (l.isall("EscChar %d", (int *)0)) {
- composite_warning();
- break;
- }
- goto invalid;
-
- case 'F':
- if (l.isall("FontName %+s", &s)) {
- _afm->set_font_name(s);
- break;
- }
- if (l.isall("FullName %+s", &s)) {
- _afm->set_full_name(s);
- break;
- }
- if (l.isall("FamilyName %+s", &s)) {
- _afm->set_family(s);
- break;
- }
- if (l.isall("FontBBox %g %g %g %g",
- &fd( fdFontBBllx ), &fd( fdFontBBlly ),
- &fd( fdFontBBurx ), &fd( fdFontBBury )))
- break;
- goto invalid;
-
- case 'I':
- if (l.isall("ItalicAngle %g", &fd( fdItalicAngle )))
- break;
- if (l.isall("IsBaseFont %b", &isbasefont)) {
- if (isbasefont == 0)
- composite_warning();
- break;
- }
- if (l.isall("IsFixedV %b", (bool *)0)) {
- metrics_sets_warning();
- break;
- }
- if (l.isall("IsFixedPitch %b", (bool *)0))
- break;
- goto invalid;
-
- case 'M':
- if (l.isall("MappingScheme %d", (int *)0)) {
- composite_warning();
- break;
- }
- if (l.isall("MetricsSets %d", &metrics_sets)) {
- if (metrics_sets != 0)
- metrics_sets_warning();
- break;
- }
- goto invalid;
-
- case 'N':
- if (l.isall("Notice %+s", &_afm_xt->notice))
- break;
- goto invalid;
-
- case 'S':
- if (l.isall("StartDirection %d", &direction)) {
- if (direction != 0)
- metrics_sets_warning();
- break;
- }
- if (l.isall("StartCharMetrics %d", (int *)0)) {
- read_char_metrics();
- break;
- }
- if (l.isall("StartKernData")) {
- read_kerns();
- break;
- }
- if (l.isall("StartComposites %d", (int *)0)) {
- read_composites();
- break;
- }
- if (l.isall("StdHW %g", &fd( fdStdHW )))
- break;
- if (l.isall("StdVW %g", &fd( fdStdVW )))
- break;
- if (l.isall("StartFontMetrics %g", (double *)0))
- break;
- goto invalid;
-
- case 'U':
- if (l.isall("UnderlinePosition %g", &fd( fdUnderlinePosition )))
- break;
- if (l.isall("UnderlineThickness %g", &fd( fdUnderlineThickness )))
- break;
- goto invalid;
-
- case 'V':
- if (l.isall("Version %+s", &s)) {
- _afm->set_version(s);
- break;
- }
- if (l.isall("VVector %g %g", (double *)0, (double *)0)) {
- metrics_sets_warning();
- break;
- }
- goto invalid;
-
- case 'W':
- if (l.isall("Weight %+s", &s)) {
- _afm->set_weight(s);
- break;
- }
- goto invalid;
-
- case 'X':
- if (l.isall("XHeight %g", &fd( fdXHeight )))
- break;
- goto invalid;
-
- default:
- invalid:
- invalid_lines++;
- no_match_warning();
-
- }
-
- done:
- if (invalid_lines >= l.lineno() - 10)
- return false;
- else
- return true;
-}
-
-
-static Vector<PermString> ligature_left;
-static Vector<PermString> ligature_right;
-static Vector<PermString> ligature_result;
-
-void
-AfmReader::read_char_metric_data() const
-{
- int c = -1;
- double wx = UNKDOUBLE;
- double bllx = UNKDOUBLE, blly = 0, burx = 0, bury = 0;
- PermString n;
- PermString ligright, ligresult;
-
- AfmParser &l = _l;
-
- l.is("C %d ; WX %g ; N %/s ; B %g %g %g %g ;",
- &c, &wx, &n, &bllx, &blly, &burx, &bury);
-
- while (l.left()) {
-
- switch (l.first()) {
-
- case 'B':
- if (l.is("B %g %g %g %g", &bllx, &blly, &burx, &bury))
- break;
- goto invalid;
-
- case 'C':
- if (l.is("C %d", &c))
- break;
- if (l.is("CH <%x>", &c))
- break;
- goto invalid;
-
- case 'E':
- if (l.isall("EndCharMetrics"))
- return;
- goto invalid;
-
- case 'L':
- if (l.is("L %/s %/s", &ligright, &ligresult)) {
- if (!n)
- lerror("ligature given, but character has no name");
- else {
- ligature_left.push_back(n);
- ligature_right.push_back(ligright);
- ligature_result.push_back(ligresult);
- }
- break;
- }
- goto invalid;
-
- case 'N':
- if (l.is("N %/s", &n))
- break;
- goto invalid;
-
- case 'W':
- if (l.is("WX %g", &wx) ||
- l.is("W0X %g", &wx))
- break;
- if (l.is("W %g %g", &wx, (double *)0) ||
- l.is("W0 %g %g", &wx, (double *)0) ||
- l.is("W0Y %g", (double *)0)) {
- y_width_warning();
- break;
- }
- if (l.is("W1X %g", (double *)0) ||
- l.is("W1Y %g", (double *)0) ||
- l.is("W1 %g %g", (double *)0, (double *)0)) {
- metrics_sets_warning();
- break;
- }
- goto invalid;
-
- default:
- invalid:
- // always warn about unknown directives here!
- no_match_warning("character metrics");
- l.skip_until(';');
- break;
-
- }
-
- l.is(";"); // get rid of any possible semicolon
- }
-
- // create the character
- if (!n)
- lwarning("character without a name ignored");
- else {
- if (_afm->find(n) != -1)
- lwarning("character %s defined twice", n.c_str());
-
- GlyphIndex gi = _afm->add_glyph(n);
-
- _afm->wd(gi) = wx;
- _afm->lf(gi) = bllx;
- _afm->rt(gi) = burx;
- _afm->tp(gi) = bury;
- _afm->bt(gi) = blly;
-
- if (c != -1)
- _afm->set_code(gi, c);
- }
-}
-
-
-void
-AfmReader::read_char_metrics() const
-{
- assert(!ligature_left.size());
-
- while (_l.next_line())
- // Grok the whole line. Are we on a character metric data line?
- switch (_l.first()) {
-
- case 'C':
- if (isspace(_l[1]) || (_l[1] == 'H' && isspace(_l[2]))) {
- read_char_metric_data();
- break;
- }
- if (_l.is("Comment"))
- break;
- goto invalid;
-
- case 'E':
- if (_l.isall("EndCharMetrics"))
- goto end_char_metrics;
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
-
- }
-
- end_char_metrics:
-
- for (int i = 0; i < ligature_left.size(); i++) {
- GlyphIndex leftgi = find_err(ligature_left[i], "ligature");
- GlyphIndex rightgi = find_err(ligature_right[i], "ligature");
- GlyphIndex resultgi = find_err(ligature_result[i], "ligature");
- if (leftgi >= 0 && rightgi >= 0 && resultgi >= 0)
- if (_afm->add_lig(leftgi, rightgi, resultgi))
- lwarning("duplicate ligature; first ignored");
- }
- ligature_left.clear();
- ligature_right.clear();
- ligature_result.clear();
-}
-
-
-void
-AfmReader::read_kerns() const
-{
- double kx;
- PermString left, right;
- GlyphIndex leftgi, rightgi;
-
- AfmParser &l = _l;
- // AFM files have reversed pair programs when read.
- _afm->pair_program()->set_reversed(true);
-
- while (l.next_line())
- switch (l.first()) {
-
- case 'C':
- if (l.is("Comment"))
- break;
- goto invalid;
-
- case 'E':
- if (l.isall("EndKernPairs"))
- break;
- if (l.isall("EndKernData"))
- return;
- if (l.isall("EndTrackKern"))
- break;
- goto invalid;
-
- case 'K':
- if (l.isall("KPX %/s %/s %g", &left, &right, &kx)) {
- goto validkern;
- }
- if (l.isall("KP %/s %/s %g %g", &left, &right, &kx, (double *)0)) {
- y_width_warning();
- goto validkern;
- }
- if (l.isall("KPY %/s %/s %g", &left, &right, (double *)0)) {
- y_width_warning();
- break;
- }
- if (l.isall("KPH <%x> <%x> %g %g", (int *)0, (int *)0,
- (double *)0, (double *)0)) {
- lwarning("KPH not supported");
- break;
- }
- goto invalid;
-
- validkern:
- leftgi = find_err(left, "kern");
- rightgi = find_err(right, "kern");
- if (leftgi >= 0 && rightgi >= 0)
- // A kern with 0 amount is NOT useless!
- // (Because of multiple masters.)
- if (_afm->add_kern(leftgi, rightgi, _afm->add_kv(kx)))
- lwarning("duplicate kern; first pair ignored");
- break;
-
- case 'S':
- if (l.isall("StartKernPairs %d", (int *)0) ||
- l.isall("StartKernPairs0 %d", (int *)0))
- break;
- if (l.isall("StartKernPairs1 %d", (int *)0)) {
- metrics_sets_warning();
- break;
- }
- if (l.isall("StartTrackKern %d", (int *)0))
- break;
- goto invalid;
-
- case 'T':
- if (l.isall("TrackKern %g %g %g %g %g", (double *)0, (double *)0,
- (double *)0, (double *)0, (double *)0))
- break; // FIXME: implement TrackKern
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
- break;
-
- }
-}
-
-
-void
-AfmReader::read_composites() const
-{
- while (_l.next_line())
- switch (_l.first()) {
-
- case 'C':
- if (_l.is("Comment"))
- break;
- if (_l.is("CC"))
- break;
- goto invalid;
-
- case 'E':
- if (_l.isall("EndComposites"))
- return;
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
- break;
-
- }
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
deleted file mode 100644
index 6e825bbd2b8..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmparse.cc
+++ /dev/null
@@ -1,365 +0,0 @@
-// -*- related-file-name: "../include/efont/afmparse.hh" -*-
-
-/* afmparse.{cc,hh} -- Adobe Font Metrics parsing
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/afmparse.hh>
-#include <efont/t1cs.hh>
-#include <efont/metrics.hh>
-#include <lcdf/strtonum.h>
-#include <string.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <stdlib.h>
-#if HAVE_BROKEN_STRTOD
-# define strtod good_strtod
-#endif
-namespace Efont {
-
-static bool name_enders[256];
-static char xvalue[256];
-
-
-AfmParser::AfmParser(Slurper &slurp)
- : _slurper(slurp),
- _line(0), _pos(0), _length(0)
-{
- static_initialize();
-}
-
-
-void
-AfmParser::trim_end()
-{
- int l = _length - 1;
- while (l >= 0 && isspace(_line[l])) {
- _line[l] = 0;
- l--;
- }
- _length = l + 1;
-}
-
-
-void
-AfmParser::static_initialize()
-{
- if (name_enders[(uint8_t)'('])
- return;
- name_enders[(uint8_t)' '] = name_enders[(uint8_t)'\t']
- = name_enders[(uint8_t)'\r'] = name_enders[(uint8_t)'\f']
- = name_enders[(uint8_t)'\v'] = name_enders[(uint8_t)'\n']
- = name_enders[(uint8_t)'\0'] = name_enders[(uint8_t)'[']
- = name_enders[(uint8_t)']'] = name_enders[(uint8_t)'/']
- = name_enders[(uint8_t)'('] = name_enders[(uint8_t)')']
- = name_enders[(uint8_t)';'] = true;
-
- xvalue[(uint8_t)'0'] = 0;
- xvalue[(uint8_t)'1'] = 1;
- xvalue[(uint8_t)'2'] = 2;
- xvalue[(uint8_t)'3'] = 3;
- xvalue[(uint8_t)'4'] = 4;
- xvalue[(uint8_t)'5'] = 5;
- xvalue[(uint8_t)'6'] = 6;
- xvalue[(uint8_t)'7'] = 7;
- xvalue[(uint8_t)'8'] = 8;
- xvalue[(uint8_t)'9'] = 9;
- xvalue[(uint8_t)'a'] = 10;
- xvalue[(uint8_t)'b'] = 11;
- xvalue[(uint8_t)'c'] = 12;
- xvalue[(uint8_t)'d'] = 13;
- xvalue[(uint8_t)'e'] = 14;
- xvalue[(uint8_t)'f'] = 15;
- xvalue[(uint8_t)'A'] = 10;
- xvalue[(uint8_t)'B'] = 11;
- xvalue[(uint8_t)'C'] = 12;
- xvalue[(uint8_t)'D'] = 13;
- xvalue[(uint8_t)'E'] = 14;
- xvalue[(uint8_t)'F'] = 15;
-}
-
-
-// isall == is total == is all of the string
-
-// %s whitespace-terminated PermString - non-zero-length
-// %/s name-terminated PermString - non-zero-length
-// %+s rest of line PermString
-// %= rest of line/until next `=' PermString; beginning & ending spaces
-// elided
-// %d integer
-// %g number
-// %x hex integer
-// %b boolean
-// %c character
-// %< hex string; argument is String *stored
-// %. any non-alphanumeric
-// ???????????? EOS vs. don't-skip-to-EOS ???????????
-
-
-#define FAIL(s) do { _message = s; return 0; } while (0)
-
-unsigned char *
-AfmParser::vis(const char *formatsigned, va_list valist)
-{
- const unsigned char *format = (const unsigned char *)formatsigned;
- unsigned char *str = _pos;
-
- // Oftentimes, we'll get a keyword first. So handle that simple case
- // with a tight loop for (possibly) better performance and slightly different
- // semantics. (A keyword that comes first in the format must be followed
- // by a nonalphanumeric in the input to match.)
- if (isalpha(*format)) {
- bool ok = true;
- for (; *format && *format != ' ' && ok; format++, str++) {
- assert(isalnum(*format));
- if (*format != *str) ok = false;
- }
- if (!ok || isalnum(*str)) {
- if (_message) return 0;
- _fail_field = -1;
- FAIL("keyword mismatch");
- }
- }
-
- int fplus, fslash;
- _fail_field = 0;
- _message = PermString();
-
- while (1) {
-
- switch (*format) {
-
- /* - - - - - - - - percent specifications - - - - - - - */
- case '%':
- fplus = fslash = 0;
- _fail_field++;
-
- percentspec:
- switch (*++format) {
-
- // FLAGS
- case '+':
- fplus++;
- goto percentspec;
- case '/':
- fslash++;
- goto percentspec;
-
- case '%':
- goto matchchar;
-
- case 'b':
- case 's': {
- int len;
-
- if (fplus)
- len = strlen((char *)str);
- else if (fslash) {
- for (len = 0; !name_enders[ str[len] ]; len++)
- ;
- if (len == 0)
- FAIL("should be a string");
- } else {
- for (len = 0; !isspace(str[len]) && str[len]; len++)
- ;
- if (len == 0)
- FAIL("should be a string");
- }
-
- PermString s = PermString((char *)str, len);
- str += len;
-
- // Now we have the string. What to do with it? Depends on format.
- if (*format == 'b') {
-
- bool *bstore = va_arg(valist, bool *);
- if (s == "true") {
- if (bstore) *bstore = 1;
- } else if (s == "false") {
- if (bstore) *bstore = 0;
- } else
- FAIL("should be `true' or `false'");
-
- } else {
- PermString *sstore = va_arg(valist, PermString *);
- if (sstore) *sstore = s;
- }
- break;
- }
-
- case '(': {
- if (*str++ != '(') FAIL("should be a parenthesized string");
- unsigned char *last = str;
- int paren_level = 0;
- while (*last && paren_level >= 0) {
- if (*last == '(') paren_level++;
- if (*last == ')') paren_level--;
- last++;
- }
- if (paren_level >= 0) FAIL("had unbalanced parentheses");
-
- PermString *sstore = va_arg(valist, PermString *);
- if (sstore) *sstore = PermString((char *)str, last - str - 1);
- str = last;
- break;
- }
-
- case 'd':
- case 'i': {
- union { unsigned char *uc; char *c; } new_str;
- int v = strtol((char *)str, &new_str.c, 10);
- if (new_str.uc == str) FAIL("should be an integer");
-
- str = new_str.uc;
- int *istore = va_arg(valist, int *);
- if (istore) *istore = v;
- break;
- }
-
- case 'x': {
- union { unsigned char *uc; char *c; } new_str;
- int v = strtol((char *)str, &new_str.c, 16);
- if (new_str.uc == str) FAIL("should be a hex integer");
-
- str = new_str.uc;
- int *istore = va_arg(valist, int *);
- if (istore) *istore = v;
- break;
- }
-
- case 'e':
- case 'f':
- case 'g': {
- union { unsigned char *uc; char *c; } new_str;
- double v = strtonumber((char *)str, &new_str.c);
- if (v < MIN_KNOWN_DOUBLE) v = MIN_KNOWN_DOUBLE;
- if (new_str.uc == str) FAIL("should be a real number");
-
- str = new_str.uc;
- double *dstore = va_arg(valist, double *);
- if (dstore) *dstore = v;
- break;
- }
-
- case '<': {
- unsigned char *endbrack =
- (unsigned char *)strchr((char *)str, '>');
- int n = (endbrack ? endbrack - (str + 1) : 0);
- if (!endbrack || n % 2 != 0)
- FAIL("should be hex values in <angle brackets>");
- String s = String::make_uninitialized(n/2);
- unsigned char *data = s.mutable_udata();
-
- str++;
- while (*str != '>') {
- if (isxdigit(str[0]) && isxdigit(str[1])) {
- *data++ = xvalue[str[0]] * 16 + xvalue[str[1]];
- str += 2;
- } else
- FAIL("had non-hex digits in the angle brackets");
- }
- str++;
-
- if (String *datastore = va_arg(valist, String *))
- *datastore = s;
- break;
- }
-
- default:
- assert(0 /* internal error: bad % */);
- FAIL("");
-
- }
- break;
- /* - - - - - - - - end percent specifications - - - - - - - */
-
- case ' ':
- if (!isspace(*str))
- FAIL("should be followed by whitespace");
- /* FALLTHRU */
-
- case '-':
- while (isspace(*str)) str++;
- break;
-
- case 0:
- // always eat space at end of format
- while (isspace(*str)) str++;
- return str;
-
- default:
- matchchar:
- if (*str++ != *format)
- FAIL(permprintf("- expected `%c'", *format));
- break;
-
- }
-
- format++;
- }
-}
-
-
-bool
-AfmParser::isall(const char *format, ...)
-{
- va_list valist;
- va_start(valist, format);
- unsigned char *new_pos = vis(format, valist);
- va_end(valist);
- if (new_pos && *new_pos == 0) {
- _pos = new_pos;
- return 1;
- } else
- return 0;
-}
-
-
-bool
-AfmParser::is(const char *format, ...)
-{
- va_list valist;
- va_start(valist, format);
- unsigned char *new_pos = vis(format, valist);
- va_end(valist);
- if (new_pos) {
- _pos = new_pos;
- return 1;
- } else
- return 0;
-}
-
-
-PermString
-AfmParser::keyword() const
-{
- const char *f = (const char *)_pos;
- while (isspace((unsigned char) *f))
- f++;
- const char *l = f;
- while (isalnum((unsigned char) *l) || *l == '_')
- l++;
- return PermString(f, l - f);
-}
-
-
-void
-AfmParser::skip_until(unsigned char c)
-{
- while (*_pos && *_pos != c)
- _pos++;
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
deleted file mode 100644
index 5f81af998f2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/afmw.cc
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- related-file-name: "../include/efont/afmw.hh" -*-
-
-/* afmw.{cc,hh} -- Adobe Font Metrics writing
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/afmw.hh>
-#include <efont/t1cs.hh> /* for KNOWN() */
-namespace Efont {
-
-AfmWriter::AfmWriter(Metrics *m, FILE *f)
- : _m(m), _afm_xt((AfmMetricsXt *)m->find_xt("AFM")), _f(f)
-{
-}
-
-void
-AfmWriter::write(Metrics *m, FILE *f)
-{
- AfmWriter w(m, f);
- w.write();
-}
-
-
-void
-AfmWriter::write()
-{
- _m->pair_program()->unreverse();
- _m->pair_program()->optimize();
-
- fprintf(_f, "StartFontMetrics 4.1\n");
- if (_afm_xt)
- for (int i = 0; i < _afm_xt->opening_comments.size(); i++)
- fprintf(_f, "Comment %s\n", _afm_xt->opening_comments[i].c_str());
-
- write_prologue();
-
- fprintf(_f, "StartCharMetrics %d\n", _m->nglyphs());
-
- GlyphIndex gi;
- for (int i = 0; i < 256; i++) //FIXME
- if ((gi = _m->find_code(i)) >= 0)
- write_char_metric_data(gi, i);
- for (gi = 0; gi < _m->nglyphs(); gi++)
- if (_m->code(gi) == -1)
- write_char_metric_data(gi, -1);
-
- fprintf(_f, "EndCharMetrics\n");
-
- write_kerns();
-
- fprintf(_f, "EndFontMetrics\n");
-}
-
-
-void
-AfmWriter::write_prologue() const
-{
- if (_m->font_name())
- fprintf(_f, "FontName %s\n", _m->font_name().c_str());
- else
- fprintf(_f, "FontName No-Font-Name-Given\n");
-
- if (_m->full_name())
- fprintf(_f, "FullName %s\n", _m->full_name().c_str());
- if (_m->family())
- fprintf(_f, "FamilyName %s\n", _m->family().c_str());
- if (_m->weight())
- fprintf(_f, "Weight %s\n", _m->weight().c_str());
-
- if (KNOWN(fd( fdItalicAngle )))
- fprintf(_f, "ItalicAngle %.8g\n", fd( fdItalicAngle ));
-
- fprintf(_f, "FontBBox %.8g %.8g %.8g %.8g\n",
- fd( fdFontBBllx ), fd( fdFontBBlly ),
- fd( fdFontBBurx ), fd( fdFontBBury ));
-
- if (KNOWN(fd( fdUnderlinePosition )))
- fprintf(_f, "UnderlinePosition %.8g\n", fd( fdUnderlinePosition ));
- if (KNOWN(fd( fdUnderlineThickness )))
- fprintf(_f, "UnderlineThickness %.8g\n", fd( fdUnderlineThickness ));
-
- if (_m->version())
- fprintf(_f, "Version %s\n", _m->version().c_str());
- if (_afm_xt && _afm_xt->notice)
- fprintf(_f, "Notice %s\n", _afm_xt->notice.c_str());
-
- if (_afm_xt && _afm_xt->encoding_scheme)
- fprintf(_f, "EncodingScheme %s\n", _afm_xt->encoding_scheme.c_str());
-
- if (KNOWN(fd( fdCapHeight )))
- fprintf(_f, "CapHeight %.8g\n", fd( fdCapHeight ));
- if (KNOWN(fd( fdXHeight )))
- fprintf(_f, "XHeight %.8g\n", fd( fdXHeight ));
- if (KNOWN(fd( fdAscender )))
- fprintf(_f, "Ascender %.8g\n", fd( fdAscender ));
- if (KNOWN(fd( fdDescender )))
- fprintf(_f, "Descender %.8g\n", fd( fdDescender ));
- if (KNOWN(fd( fdStdHW )))
- fprintf(_f, "StdHW %.8g\n", fd( fdStdHW ));
- if (KNOWN(fd( fdStdVW )))
- fprintf(_f, "StdVW %.8g\n", fd( fdStdVW ));
-}
-
-
-void
-AfmWriter::write_char_metric_data(GlyphIndex gi, int e) const
-{
- if (e >= -1 && e < 256)
- fprintf(_f, "C %d ;", e);
- else
- fprintf(_f, "CH <%04X> ;", e);
-
- double w = _m->wd(gi);
- if (KNOWN(w))
- fprintf(_f, " WX %.8g ;", w);
- else
- w = 0;
-
- fprintf(_f, " N %s ;", _m->name(gi).c_str());
-
- if (KNOWN(_m->lf(gi)))
- fprintf(_f, " B %.8g %.8g %.8g %.8g ;",
- _m->lf(gi), _m->bt(gi), _m->rt(gi), _m->tp(gi));
-
- // Run through the ligature/kern program to find ligatures.
- PairProgram &pairp = *_m->pair_program();
- PairOpIndex opi = pairp.find_left(gi);
- while (opi >= 0) {
- const PairOp &op = pairp.op(opi);
- if (op.is_lig()) {
- if (op.lig_kind() == opLigSimple)
- fprintf(_f, " L %s %s ;",
- _m->name( op.right() ).c_str(),
- _m->name( op.result() ).c_str());
- //else
- //warning("strange ligature combination not supported by AFM");
- }
- opi = op.next_left();
- }
-
- fputc('\n', _f);
-}
-
-
-void
-AfmWriter::write_kerns() const
-{
- PairProgram &pairp = *_m->pair_program();
-
- // Damn. First we have to count how many kerning pairs there are.
- int numkerns = 0;
- for (PairOpIndex opi = 0; opi < pairp.op_count(); opi++) {
- const PairOp &op = pairp.op(opi);
- if (op.is_kern() && _m->kv( op.value() ))
- numkerns++;
- }
-
- if (numkerns == 0) return;
-
- fprintf(_f, "StartKernData\n");
- fprintf(_f, "StartKernPairs %d\n", numkerns);
- for (GlyphIndex gi = 0; gi < _m->nglyphs(); gi++) {
- PairOpIndex opi = pairp.find_left(gi);
- while (opi >= 0) {
- const PairOp &op = pairp.op(opi);
- if (op.is_kern() && _m->kv( op.value() ))
- fprintf(_f, "KPX %s %s %.8g\n",
- _m->name( gi ).c_str(),
- _m->name( op.right() ).c_str(),
- _m->kv( op.value() ));
- opi = op.next_left();
- }
- }
- fprintf(_f, "EndKernPairs\n");
- fprintf(_f, "EndKernData\n");
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
deleted file mode 100644
index 0ee4f66e6b0..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/amfm.cc
+++ /dev/null
@@ -1,850 +0,0 @@
-// -*- related-file-name: "../include/efont/amfm.hh" -*-
-
-/* amfm.{cc,hh} -- Adobe Multiple-Master Font Metrics
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/amfm.hh>
-#include <efont/afm.hh>
-#include <efont/afmparse.hh>
-#include <lcdf/error.hh>
-#include <efont/findmet.hh>
-#include <efont/t1cs.hh>
-#include <lcdf/straccum.hh>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <assert.h>
-#include <string.h>
-namespace Efont {
-
-AmfmMetrics::AmfmMetrics(MetricsFinder *finder)
- : _finder(finder),
- _fdv(fdLast, UNKDOUBLE),
- _nmasters(-1), _naxes(-1), _masters(0), _mmspace(0),
- _primary_fonts(0), _sanity_afm(0), _uses(0)
-{
-}
-
-AmfmMetrics::~AmfmMetrics()
-{
- assert(_uses == 0);
- for (int m = 0; m < _nmasters; m++)
- if (_masters[m].afm)
- _masters[m].afm->unuse();
- delete[] _masters;
- delete _mmspace;
- while (_primary_fonts) {
- AmfmPrimaryFont *pf = _primary_fonts;
- _primary_fonts = _primary_fonts->next;
- delete pf;
- }
-}
-
-
-bool
-AmfmMetrics::sanity(ErrorHandler *errh) const
-{
- if (!_mmspace) {
- errh->error("AMFM sanity: no multiple master interpolation information");
- return false;
- }
-
- bool ok = true;
- for (int m = 0; m < _nmasters; m++)
- if (!_masters[m].font_name
- || _masters[m].weight_vector.size() != _nmasters) {
- errh->error("AMFM sanity: no information for master %d", m);
- ok = false;
- }
-
- if (!_mmspace->check(errh))
- ok = false;
-
- return ok;
-}
-
-
-int
-AmfmMetrics::primary_label_value(int ax, PermString label) const
-{
- assert(ax >= 0 && ax < _naxes);
- for (AmfmPrimaryFont *pf = _primary_fonts; pf; pf = pf->next) {
- if (pf->labels[ax] == label)
- return pf->design_vector[ax];
- }
- return -1;
-}
-
-
-inline static bool
-strcompat(PermString a, PermString b)
-{
- return !a || !b || a == b;
-}
-
-Metrics *
-AmfmMetrics::master(int m, ErrorHandler *errh)
-{
- AmfmMaster &master = _masters[m];
-
- if (!master.loaded) {
- master.loaded = true;
- DirectoryMetricsFinder directory_finder(_directory);
- _finder->add_finder(&directory_finder);
- Metrics *afm = _finder->find_metrics(master.font_name);
-
- if (!afm) {
- if (errh)
- errh->error("%s: can't find AFM file for master `%s'",
- _font_name.c_str(), master.font_name.c_str());
-
- } else if (!strcompat(afm->font_name(), master.font_name)
- || !strcompat(afm->family(), master.family)
- || !strcompat(afm->full_name(), master.full_name)
- || !strcompat(afm->version(), master.version)) {
- if (errh)
- errh->error("%s: AFM for master `%s' doesn't match AMFM",
- _font_name.c_str(), master.font_name.c_str());
-
- } else if (!_sanity_afm) {
- master.afm = afm;
- _sanity_afm = afm;
- afm->use();
-
- } else {
- PairProgram *sanity_pairp = _sanity_afm->pair_program();
- PairProgram *pairp = afm->pair_program();
- char buf[1024];
- buf[0] = 0;
-
- if (afm->nglyphs() != _sanity_afm->nglyphs())
- sprintf(buf, "glyph count (%d vs. %d)", afm->nglyphs(), _sanity_afm->nglyphs());
- if (afm->nfd() != _sanity_afm->nfd())
- sprintf(buf, "fd count (%d vs. %d)", afm->nfd(), _sanity_afm->nfd());
- if (afm->nkv() != _sanity_afm->nkv())
- sprintf(buf, "kv count (%d vs. %d)", afm->nkv(), _sanity_afm->nkv());
- if (pairp->op_count() != sanity_pairp->op_count())
- sprintf(buf, "pair op count (%d vs. %d)", pairp->op_count(), sanity_pairp->op_count());
-
- if (!buf[0]) {
- master.afm = afm;
- afm->use();
- } else if (errh)
- errh->error("%s: AFM for master `%s' failed sanity checks (%s)", _font_name.c_str(), master.font_name.c_str(), buf);
- }
- }
-
- return master.afm;
-}
-
-
-AmfmPrimaryFont *
-AmfmMetrics::find_primary_font(const Vector<double> &design_vector) const
-{
- assert(design_vector.size() == _naxes);
- for (AmfmPrimaryFont *pf = _primary_fonts; pf; pf = pf->next) {
-
- for (int a = 0; a < _naxes; a++)
- if ((int)design_vector[a] != pf->design_vector[a])
- goto loser;
- return pf;
-
- loser: ;
- }
- return 0;
-}
-
-
-Metrics *
-AmfmMetrics::interpolate(const Vector<double> &design_vector,
- const Vector<double> &weight_vector,
- ErrorHandler *errh)
-{
- assert(design_vector.size() == _naxes);
- assert(weight_vector.size() == _nmasters);
-
- // FIXME: check masters for correspondence.
-
- /* 0.
- * Make sure all necessary AFMs have been loaded. */
- int m;
- for (m = 0; m < _nmasters; m++)
- if (weight_vector[m])
- if (!master(m, errh))
- return 0;
-
- /* 1.
- * Use the design vector to generate new FontName and FullName. */
-
- AmfmPrimaryFont *pf = find_primary_font(design_vector);
- // The primary font is useless to us if it doesn't have axis labels.
- if (pf && !pf->labels.size())
- pf = 0;
-
- StringAccum font_name_sa, full_name_sa;
- font_name_sa << _font_name;
- full_name_sa << _full_name;
- for (int a = 0; a < _naxes; a++) {
- double dv = design_vector[a];
- font_name_sa << '_' << dv;
- full_name_sa << (a == 0 ? '_' : ' ') << dv;
-
- PermString label;
- if (pf)
- label = pf->labels[a];
- if (!label)
- label = _mmspace->axis_abbreviation(a);
- if (label)
- full_name_sa << ' ' << label;
- }
- // Multiple master fonts require an underscore AFTER the font name too
- font_name_sa << '_';
-
- /* 2.
- * Set up the new AFM with the special constructor. */
-
- // Find the first master with a non-zero component.
- for (m = 0; m < _nmasters && weight_vector[m] == 0; m++)
- ;
- Metrics *afm = new Metrics(font_name_sa.c_str(), full_name_sa.c_str(), *_masters[m].afm);
- if (MetricsXt *xt = _masters[m].afm->find_xt("AFM")) {
- AfmMetricsXt *new_xt = new AfmMetricsXt((AfmMetricsXt &)*xt);
- afm->add_xt(new_xt);
- }
-
- /* 2.
- * Interpolate the old AFM data into the new. */
-
- afm->interpolate_dimens(*_masters[m].afm, weight_vector[m], false);
-
- for (m++; m < _nmasters; m++)
- if (weight_vector[m])
- afm->interpolate_dimens(*_masters[m].afm, weight_vector[m], true);
-
- return afm;
-}
-
-
-/*****
- * AmfmReader
- **/
-
-AmfmReader::AmfmReader(AfmParser &afmp, AmfmMetrics *amfm, ErrorHandler *errh)
- : _amfm(amfm), _finder(amfm->_finder), _l(afmp),
- _mmspace(amfm->_mmspace)
-{
- _errh = errh ? errh : ErrorHandler::silent_handler();
-}
-
-AmfmMetrics *
-AmfmReader::read(Slurper &slurper, MetricsFinder *finder, ErrorHandler *errh)
-{
- AfmParser parser(slurper);
- if (!parser.ok()) return 0;
- AmfmMetrics *amfm = new AmfmMetrics(finder);
- AmfmReader reader(parser, amfm, errh);
- if (!reader.read()) {
- delete amfm;
- return 0;
- } else
- return amfm;
-}
-
-AmfmMetrics *
-AmfmReader::read(const Filename &fn, MetricsFinder *finder, ErrorHandler *errh)
-{
- Slurper slurper(fn);
- return read(slurper, finder, errh);
-}
-
-void
-AmfmReader::add_amcp_file(Slurper &slurper, AmfmMetrics *amfm, ErrorHandler *errh)
-{
- AfmParser parser(slurper);
- if (!parser.ok()) return;
- AmfmReader reader(parser, amfm, errh);
- reader.read_amcp_file();
-}
-
-
-void
-AmfmReader::lwarning(const char *format, ...) const
-{
- va_list val;
- va_start(val, format);
- _errh->xmessage(_l.landmark(), ErrorHandler::e_warning, format, val);
- va_end(val);
-}
-
-void
-AmfmReader::lerror(const char *format, ...) const
-{
- va_list val;
- va_start(val, format);
- _errh->xmessage(_l.landmark(), ErrorHandler::e_error, format, val);
- va_end(val);
-}
-
-void
-AmfmReader::no_match_warning(const char *context) const
-{
- // keyword() will fail (and a warning won't get printed) only if the string
- // is all whitespace, which the spec allows
- PermString keyword = _l.keyword();
- if (!keyword) return;
- if (_l.key_matched()) {
- lwarning(context ? "bad `%s' command in %s:"
- : "bad `%s' command:", keyword.c_str(), context);
- lwarning("field %d %s", _l.fail_field(), _l.message().c_str());
- } else
- lwarning(context ? "unknown command `%s' in %s"
- : "unknown command `%s'", keyword.c_str(), context);
- _l.clear_message();
-}
-
-
-void
-AmfmReader::check_mmspace()
-{
- if (!_mmspace && _amfm->_naxes >= 0 && _amfm->_nmasters >= 0
- && _amfm->_font_name) {
- _mmspace = _amfm->_mmspace =
- new MultipleMasterSpace(_amfm->_font_name, _amfm->_naxes, _amfm->_nmasters);
- }
-}
-
-
-bool
-AmfmReader::read()
-{
- assert(_amfm != 0);
- _mmspace = _amfm->_mmspace;
-
- AfmParser &l = _l;
- _amfm->_directory = l.filename().directory();
-
- // First, read all opening comments into an array so we can print them out
- // later.
- PermString comment;
- while (l.next_line()) {
- if (l.isall("Comment %+s", &comment))
- _amfm->_opening_comments.push_back(comment);
- else if (l.isall("StartMasterFontMetrics %g", (double *)0))
- ;
- else {
- l.save_line();
- break;
- }
- }
-
- int master = 0, axis = 0;
-
- while (l.next_line())
- switch (l[0]) {
-
- case 'A':
- if (l.isall("Ascender %g", &fd( fdAscender )))
- break;
- if (l.isall("Axes %d", &_amfm->_naxes)) {
- check_mmspace();
- break;
- }
- goto invalid;
-
- case 'B':
- if (l.is("BlendDesignPositions")) {
- read_positions();
- break;
- }
- if (l.is("BlendDesignMap")) {
- read_normalize();
- break;
- }
- if (l.is("BlendAxisTypes")) {
- read_axis_types();
- break;
- }
- goto invalid;
-
- case 'C':
- if (l.isall("CapHeight %g", &fd( fdCapHeight )))
- break;
- if (l.is("Comment"))
- break;
- goto invalid;
-
- case 'D':
- if (l.isall("Descender %g", &fd( fdDescender )))
- break;
- goto invalid;
-
- case 'E':
- if (l.isall("EncodingScheme %+s", &_amfm->_encoding_scheme))
- break;
- if (l.isall("EndMasterFontMetrics"))
- goto done;
- goto invalid;
-
- case 'F':
- if (l.isall("FontName %+s", &_amfm->_font_name)) {
- check_mmspace();
- break;
- }
- if (l.isall("FullName %+s", &_amfm->_full_name))
- break;
- if (l.isall("FamilyName %+s", &_amfm->_family))
- break;
- if (l.isall("FontBBox %g %g %g %g",
- &fd( fdFontBBllx ), &fd( fdFontBBlly ),
- &fd( fdFontBBurx ), &fd( fdFontBBury )))
- break;
- goto invalid;
-
- case 'I':
- if (l.isall("IsFixedPitch %b", (bool *)0))
- break;
- if (l.isall("ItalicAngle %g", &fd( fdItalicAngle )))
- break;
- goto invalid;
-
- case 'M':
- if (l.isall("Masters %d", &_amfm->_nmasters)) {
- check_mmspace();
- break;
- }
- goto invalid;
-
- case 'N':
- if (l.isall("Notice %+s", &_amfm->_notice))
- break;
- goto invalid;
-
- case 'S':
- if (l.isall("StartAxis")) {
- read_axis(axis++);
- break;
- }
- if (l.isall("StartMaster")) {
- read_master(master++);
- break;
- }
- if (l.isall("StartPrimaryFonts %d", (int *)0)) {
- read_primary_fonts();
- break;
- }
- if (l.isall("StartConversionPrograms %d %d", (int *)0, (int *)0)) {
- read_conversion_programs();
- break;
- }
- if (l.isall("StartMasterFontMetrics %g", (double *)0))
- break;
- goto invalid;
-
- case 'U':
- if (l.isall("UnderlinePosition %g", &fd( fdUnderlinePosition )))
- break;
- else if (l.isall("UnderlineThickness %g", &fd( fdUnderlineThickness )))
- break;
- goto invalid;
-
- case 'V':
- if (l.isall("Version %+s", &_amfm->_version))
- break;
- goto invalid;
-
- case 'W':
- if (l.isall("Weight %+s", &_amfm->_weight))
- break;
- if (l.is("WeightVector")) {
- Vector<double> wv;
- if (!read_simple_array(wv) || !_mmspace)
- lerror("bad WeightVector");
- else
- _mmspace->set_weight_vector(wv);
- break;
- }
- goto invalid;
-
- case 'X':
- if (l.isall("XHeight %g", &fd( fdXHeight )))
- break;
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
-
- }
-
- done:
- if (!_mmspace) {
- _errh->error("`%s' is not an AMFM file", String(_l.landmark().file()).c_str());
- return false;
- }
-
- LandmarkErrorHandler pin_errh(_errh, _l.landmark());
- if (!_amfm->sanity(&pin_errh)) {
- _errh->lerror(_l.landmark().whole_file(),
- "bad AMFM file (missing or inconsistent information)");
- return false;
- }
-
- if (!_mmspace->check_intermediate() && _l.filename().directory()) {
- String name = l.filename().base() + ".amcp";
- Slurper slurp(_l.filename().from_directory(name));
- add_amcp_file(slurp, _amfm, _errh);
- }
-
- return true;
-}
-
-
-void
-AmfmReader::read_amcp_file()
-{
- int lines_read = 0;
-
- while (_l.next_line()) {
- lines_read++;
- switch (_l[0]) {
-
- case 'C':
- if (_l.is("Comment"))
- break;
- goto invalid;
-
- case 'S':
- if (_l.isall("StartConversionPrograms %d %d", (int *)0, (int *)0)) {
- read_conversion_programs();
- break;
- }
- goto invalid;
-
- default:
- invalid:
- no_match_warning("AMCP file");
-
- }
- }
-
- if (_mmspace && !_mmspace->ndv() && !_mmspace->cdv() && lines_read)
- lwarning("no conversion programs in .amcp file");
-}
-
-
-bool
-AmfmReader::read_simple_array(Vector<double> &vec) const
-{
- if (!_l.is("[")) return false;
-
- vec.clear();
- double d;
- while (_l.is("%g", &d))
- vec.push_back(d);
-
- return _l.is("]");
-}
-
-
-void
-AmfmReader::read_positions() const
-{
- if (nmasters() < 2 || naxes() < 1) return;
- Vector<NumVector> positions;
- if (!_l.is("[") || !_mmspace) goto error;
-
- for (int i = 0; i < nmasters(); i++) {
- positions.push_back(NumVector());
- if (!read_simple_array(positions.back()))
- goto error;
- }
-
- if (!_l.is("]")) goto error;
- _mmspace->set_master_positions(positions);
- return;
-
- error:
- lerror("bad BlendDesignPositions");
-}
-
-
-void
-AmfmReader::read_normalize() const
-{
- if (naxes() < 1) return;
- Vector<NumVector> normalize_in, normalize_out;
- if (!_l.is("[") || !_mmspace) goto error;
-
- for (int a = 0; a < naxes(); a++) {
- if (!_l.is("[")) goto error;
- normalize_in.push_back(NumVector());
- normalize_out.push_back(NumVector());
- double v1, v2;
- while (_l.is("[-%g %g-]", &v1, &v2)) {
- normalize_in[a].push_back(v1);
- normalize_out[a].push_back(v2);
- }
- if (!_l.is("]")) goto error;
- }
-
- if (!_l.is("]")) goto error;
- _mmspace->set_normalize(normalize_in, normalize_out);
- return;
-
- error:
- lerror("bad BlendDesignPositions");
-}
-
-
-void
-AmfmReader::read_axis_types() const
-{
- PermString s;
- int ax = 0;
- Vector<PermString> types;
- if (naxes() < 1) return;
- if (!_l.is("[") || !_mmspace) goto error;
- _mmspace->check();
-
- while (_l.is("/%/s", &s))
- _mmspace->set_axis_type(ax++, s);
-
- if (!_l.is("]")) goto error;
- return;
-
- error:
- lerror("bad BlendAxisTypes");
-}
-
-
-void
-AmfmReader::read_axis(int ax) const
-{
- bool ok = _mmspace && ax < naxes();
- if (!ok)
- lerror("bad axis number %d", ax);
- else
- _mmspace->check();
-
- PermString s;
- while (_l.next_line())
- switch (_l[0]) {
-
- case 'A':
- if (_l.is("AxisType %+s", &s)) {
- if (ok)
- _mmspace->set_axis_type(ax, s);
- break;
- }
- if (_l.is("AxisLabel %+s", &s)) {
- if (ok)
- _mmspace->set_axis_label(ax, s);
- break;
- }
- goto invalid;
-
- case 'C':
- if (_l.is("Comment"))
- break;
- goto invalid;
-
- case 'E':
- if (_l.isall("EndAxis"))
- goto endaxis;
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
-
- }
-
- endaxis: ;
-}
-
-
-void
-AmfmReader::read_master(int m) const
-{
- AmfmMaster *amfmm;
- AmfmMaster dummy;
- if (m >= nmasters()) {
- lerror("too many masters");
- amfmm = &dummy;
- } else {
- if (!_amfm->_masters)
- _amfm->_masters = new AmfmMaster[ nmasters() ];
- amfmm = &_amfm->_masters[m];
- }
-
- while (_l.next_line())
- // Grok the whole line. Are we on a character metric data line?
- switch (_l[0]) {
-
- case 'C':
- if (_l.is("Comment"))
- break;
- goto invalid;
-
- case 'E':
- if (_l.isall("EndMaster"))
- goto endmaster;
- goto invalid;
-
- case 'F':
- if (_l.isall("FontName %+s", &amfmm->font_name))
- break;
- if (_l.isall("FullName %+s", &amfmm->full_name))
- break;
- if (_l.isall("FamilyName %+s", &amfmm->family))
- break;
- goto invalid;
-
- case 'V':
- if (_l.isall("Version %+s", &amfmm->version))
- break;
- goto invalid;
-
- case 'W':
- if (_l.is("WeightVector")) {
- if (!(read_simple_array(amfmm->weight_vector) &&
- amfmm->weight_vector.size() == nmasters())) {
- lerror("bad WeightVector");
- amfmm->weight_vector.clear();
- }
- break;
- }
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
-
- }
-
- endmaster: ;
-}
-
-
-void
-AmfmReader::read_one_primary_font() const
-{
- AmfmPrimaryFont *pf = new AmfmPrimaryFont;
- pf->design_vector.resize(naxes());
- pf->labels.resize(naxes());
-
- while (_l.left()) {
-
- if (_l.is("PC")) {
- for (int a = 0; a < naxes(); a++)
- if (!_l.is("%d", &pf->design_vector[a]))
- goto error;
- } else if (_l.is("PL")) {
- for (int a = 0; a < naxes(); a++)
- if (!_l.is("(-%/s-)", &pf->labels[a]))
- goto error;
- } else if (_l.is("PN %(", &pf->name))
- ;
- else
- no_match_warning("primary font");
-
- _l.is(";"); // get rid of any possible semicolon
- }
-
- pf->next = _amfm->_primary_fonts;
- _amfm->_primary_fonts = pf;
- return;
-
- error:
- delete pf;
-}
-
-
-void
-AmfmReader::read_primary_fonts() const
-{
- while (_l.next_line())
- switch (_l[0]) {
-
- case 'C':
- if (_l.is("Comment"))
- break;
- goto invalid;
-
- case 'E':
- if (_l.isall("EndPrimaryFonts"))
- goto end_primary_fonts;
- goto invalid;
-
- case 'P':
- if (_l[1] == 'C' && isspace(_l[2])) {
- read_one_primary_font();
- break;
- }
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
-
- }
-
- end_primary_fonts: ;
-}
-
-
-void
-AmfmReader::read_conversion_programs() const
-{
- String ndv, cdv, s;
-
- while (_l.next_line())
- switch (_l[0]) {
-
- case 'C':
- if (_l.isall("CDV %<", &s)) {
- cdv += s;
- break;
- }
- goto invalid;
-
- case 'E':
- if (_l.isall("EndConversionPrograms"))
- goto end_conversion_programs;
- goto invalid;
-
- case 'N':
- if (_l.isall("NDV %<", &s)) {
- ndv += s;
- break;
- }
- goto invalid;
-
- default:
- invalid:
- no_match_warning();
- break;
-
- }
-
- end_conversion_programs:
- if (_mmspace) {
- _mmspace->set_ndv(Type1Charstring(ndv));
- _mmspace->set_cdv(Type1Charstring(cdv));
- }
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
deleted file mode 100644
index 74af65d7cd2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/cff.cc
+++ /dev/null
@@ -1,1685 +0,0 @@
-// -*- related-file-name: "../include/efont/cff.hh" -*-
-
-/* cff.{cc,hh} -- Compact Font Format fonts
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/cff.hh>
-#include <lcdf/error.hh>
-#include <efont/t1item.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <ctype.h>
-#include <efont/t1unparser.hh>
-
-#ifndef static_assert
-#define static_assert(c, msg) switch ((int) (c)) case 0: case (c):
-#endif
-
-namespace Efont {
-
-const char * const Cff::operator_names[] = {
- "version", "Notice", "FullName", "FamilyName",
- "Weight", "FontBBox", "BlueValues", "OtherBlues",
- "FamilyBlues", "FamilyOtherBlues", "StdHW", "StdVW",
- "UNKNOWN_12", "UniqueID", "XUID", "charset",
- "Encoding", "CharStrings", "Private", "Subrs",
- "defaultWidthX", "nominalWidthX", "UNKNOWN_22", "UNKNOWN_23",
- "UNKNOWN_24", "UNKNOWN_25", "UNKNOWN_26", "UNKNOWN_27",
- "UNKNOWN_28", "UNKNOWN_29", "UNKNOWN_30", "UNKNOWN_31",
- "Copyright", "isFixedPitch", "ItalicAngle", "UnderlinePosition",
- "UnderlineThickness", "PaintType", "CharstringType", "FontMatrix",
- "StrokeWidth", "BlueScale", "BlueShift", "BlueFuzz",
- "StemSnapH", "StemSnapV", "ForceBold", "UNKNOWN_12_15",
- "UNKNOWN_12_16", "LanguageGroup", "ExpansionFactor", "initialRandomSeed",
- "SyntheticBase", "PostScript", "BaseFontName", "BaseFontBlend",
- "UNKNOWN_12_24", "UNKNOWN_12_25", "UNKNOWN_12_26", "UNKNOWN_12_27",
- "UNKNOWN_12_28", "UNKNOWN_12_29", "ROS", "CIDFontVersion",
- "CIDFontRevision", "CIDFontType", "CIDCount", "UIDBase",
- "FDArray", "FDSelect", "FontName"
-};
-
-const int Cff::operator_types[] = {
- tSID, tSID, tSID, tSID, // version, Notice, FullName, FamilyName
- tSID, tArray4, tP+tArray, tP+tArray, // Weight, FontBBox, BlueValues, OtherBlues
- tP+tArray, tP+tArray, tP+tNumber, tP+tNumber, // FamBlues, FamOthBlues, StdHW, StdVW
- tNone, tNumber, tArray, tOffset, // escape, UniqueID, XUID, charset
- tOffset, tOffset, tPrivateType, tP+tLocalOffset, // Encoding, CharStrings, Private, Subrs
- tP+tNumber, tP+tNumber, tNone, tNone, // defaultWX, nominalWX, 22, 23
- tNone, tNone, tNone, tNone, // 24, 25, 26, 27
- tNone, tNone, tNone, tNone, // 28, 29, 30, 31
- tSID, tBoolean, tNumber, tNumber, // Copyright, isFixedPitch, ItalicAngle, UnderlinePosition
- tNumber, tNumber, tNumber, tArray6, // UnderlineThickness, PaintType, CharstringType, FontMatrix
- tNumber, tP+tNumber, tP+tNumber, tP+tNumber, // StrokeWidth, BlueScale, BlueShift, BlueFuzz
- tP+tArray, tP+tArray, tP+tBoolean, tNone, // StemSnapH, StemSnapV, ForceBold, 12 15
- tNone, tP+tNumber, tP+tNumber, tP+tNumber, // 12 16, LanguageGroup, ExpansionFactor, initialRandomSeed
- tNumber, tSID, tSID, tArray, // SyntheticBase, PostScript, BaseFontName, BaseFontBlend
- tNone, tNone, tNone, tNone, // 12 24, 12 25, 12 26, 12 27
- tNone, tNone, tArray, tNumber, // 12 28, 12 29, ROS, CIDFontVersion
- tNumber, tNumber, tNumber, tNumber, // CIDFontRevision, CIDFontType, CIDCount, UIDBase
- tOffset, tOffset, tSID // FDArray, FDSelect, FontName
-};
-
-static PermString::Initializer initializer;
-static const char * const standard_strings[] = {
- // Automatically generated from Appendix A of the CFF specification; do
- // not edit. Size should be 391.
- ".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar",
- "percent", "ampersand", "quoteright", "parenleft", "parenright",
- "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one",
- "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon",
- "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C",
- "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
- "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash",
- "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c",
- "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
- "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright",
- "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen",
- "florin", "section", "currency", "quotesingle", "quotedblleft",
- "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash",
- "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet",
- "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright",
- "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex",
- "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla",
- "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash",
- "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe",
- "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth",
- "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar",
- "degree", "thorn", "threequarters", "twosuperior", "registered", "minus",
- "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex",
- "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute",
- "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis",
- "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve",
- "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave",
- "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis",
- "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex",
- "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave",
- "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde",
- "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute",
- "ydieresis", "zcaron", "exclamsmall", "Hungarumlautsmall",
- "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall",
- "parenleftsuperior", "parenrightsuperior", "twodotenleader",
- "onedotenleader", "zerooldstyle", "oneoldstyle", "twooldstyle",
- "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle",
- "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior",
- "threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
- "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior",
- "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior",
- "ssuperior", "tsuperior", "ff", "ffi", "ffl", "parenleftinferior",
- "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall",
- "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall",
- "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall",
- "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall",
- "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary",
- "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle",
- "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall",
- "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash",
- "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall",
- "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths",
- "seveneighths", "onethird", "twothirds", "zerosuperior", "foursuperior",
- "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior",
- "ninesuperior", "zeroinferior", "oneinferior", "twoinferior",
- "threeinferior", "fourinferior", "fiveinferior", "sixinferior",
- "seveninferior", "eightinferior", "nineinferior", "centinferior",
- "dollarinferior", "periodinferior", "commainferior", "Agravesmall",
- "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall",
- "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall",
- "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall",
- "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall",
- "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall",
- "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall",
- "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall",
- "Ydieresissmall", "001.000", "001.001", "001.002", "001.003", "Black",
- "Bold", "Book", "Light", "Medium", "Regular", "Roman", "Semibold"
-};
-static PermString standard_permstrings[Cff::NSTANDARD_STRINGS];
-static HashMap<PermString, int> standard_permstrings_map(-1);
-
-static const int standard_encoding[] = {
- // Automatically generated from Appendix B of the CFF specification; do
- // not edit. Size should be 256.
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 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, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 0, 111, 112, 113,
- 114, 0, 115, 116, 117, 118, 119, 120, 121, 122,
- 0, 123, 0, 124, 125, 126, 127, 128, 129, 130,
- 131, 0, 132, 133, 0, 134, 135, 136, 137, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 138, 0, 139, 0, 0,
- 0, 0, 140, 141, 142, 143, 0, 0, 0, 0,
- 0, 144, 0, 0, 0, 145, 0, 0, 146, 147,
- 148, 149, 0, 0, 0, 0
-};
-
-static const int expert_encoding[] = {
- // Automatically generated from Appendix B of the CFF specification; do
- // not edit. Size should be 256.
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 229, 230, 0, 231, 232, 233, 234,
- 235, 236, 237, 238, 13, 14, 15, 99, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 27, 28,
- 249, 250, 251, 252, 0, 253, 254, 255, 256, 257,
- 0, 0, 0, 258, 0, 0, 259, 260, 261, 262,
- 0, 0, 263, 264, 265, 0, 266, 109, 110, 267,
- 268, 269, 0, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 304, 305, 306, 0, 0, 307, 308, 309, 310,
- 311, 0, 312, 0, 0, 313, 0, 0, 314, 315,
- 0, 0, 316, 317, 318, 0, 0, 0, 158, 155,
- 163, 319, 320, 321, 322, 323, 324, 325, 0, 0,
- 326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
- 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
- 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
- 373, 374, 375, 376, 377, 378
-};
-
-static const int iso_adobe_charset[] = {
- // Automatically generated from Appendix C of the CFF specification; do
- // not edit.
- 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, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228
-};
-
-static const int expert_charset[] = {
- // Automatically generated from Appendix C of the CFF specification; do
- // not edit.
- 0, 1, 229, 230, 231, 232, 233, 234, 235, 236,
- 237, 238, 13, 14, 15, 99, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 248, 27, 28, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 109, 110, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
- 158, 155, 163, 319, 320, 321, 322, 323, 324, 325,
- 326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
- 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
- 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
- 373, 374, 375, 376, 377, 378
-};
-
-static const int expert_subset_charset[] = {
- // Automatically generated from Appendix C of the CFF specification; do
- // not edit.
- 0, 1, 231, 232, 235, 236, 237, 238, 13, 14,
- 15, 99, 239, 240, 241, 242, 243, 244, 245, 246,
- 247, 248, 27, 28, 249, 250, 251, 253, 254, 255,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
- 266, 109, 110, 267, 268, 269, 270, 272, 300, 301,
- 302, 305, 314, 315, 158, 155, 163, 320, 321, 322,
- 323, 324, 325, 326, 150, 164, 169, 327, 328, 329,
- 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 341, 342, 343, 344, 345, 346
-};
-
-static const uint8_t default_dict_cff_data[] = {
- // CFF header
- 1, 0, // format major and minor version
- 4, // header size
- 4, // absolute offset size
-
- // Name INDEX
- 0, 1, // one element in index
- 1, // offset size
- 1, 14, // offset array
- '%', 'D', 'E', 'F', 'A', 'U', 'L', 'T', 'D', 'I', 'C', 'T', '%',
-
- // Top DICT INDEX
- 0, 1, // one element in index
- 1, // offset size
- 1, 92, // offset array
- // and the DICT
- 139, 12, 1, // isFixedPitch false
- 139, 12, 2, // ItalicAngle 0
- 39, 12, 3, // UnderlinePosition -100
- 189, 12, 4, // UnderlineThickness 50
- 139, 12, 5, // PaintType 0
- 141, 12, 6, // CharstringType 2
- 30, 0x0A, 0x00, 0x1F, 139, 139, 30, 0x0A, 0x00, 0x1F, 139, 139, 12, 7,
- // FontMatrix 0.001 0 0 0.001 0 0
- 139, 139, 139, 139, 5, // FontBBox 0 0 0 0
- 139, 12, 8, // StrokeWidth 0
- 139, 15, // charset 0
- 139, 16, // Encoding 0
- 139, 12, 31, // CIDFontVersion 0
- 139, 12, 32, // CIDFontRevision 0
- 139, 12, 33, // CIDFontType 0
- 28, 34, 16, 12, 34, // CIDCount 8720
- 30, 0x0A, 0x03, 0x96, 0x25, 0xFF, 12, 9, // BlueScale 0.039625
- 146, 12, 10, // BlueShift 7
- 140, 12, 11, // BlueFuzz 1
- 139, 12, 14, // ForceBold false
- 139, 12, 17, // LanguageGroup 0
- 30, 0x0A, 0x06, 0xFF, 12, 18, // ExpansionFactor 0.06
- 139, 12, 19, // initialRandomSeed 0
- 139, 20, // defaultWidthX 0
- 139, 21, // nominalWidthX 0
-
- // String INDEX
- 0, 0,
-
- // Gsubr INDEX
- 0, 0
-};
-
-static const Cff::Dict&
-default_dict()
-{
- static Cff cff(String::make_stable((const char*) default_dict_cff_data, sizeof(default_dict_cff_data)), 0, ErrorHandler::default_handler());
- return static_cast<Cff::Font*>(cff.font())->top_dict();
-}
-
-
-#define POS_GT(pos1, pos2) ((unsigned)(pos1) > (unsigned)(pos2))
-
-
-Cff::Cff(const String& s, unsigned units_per_em, ErrorHandler* errh)
- : _data_string(s), _data(reinterpret_cast<const uint8_t *>(_data_string.data())), _len(_data_string.length()),
- _strings_map(-2), _units_per_em(units_per_em)
-{
- static_assert((sizeof(standard_strings) / sizeof(standard_strings[0])) == NSTANDARD_STRINGS,
- "NSTANDARD_STRINGS defined incorrectly");
- static_assert((sizeof(standard_encoding) / sizeof(standard_encoding[0])) == 256,
- "standard_encoding has wrong size");
- static_assert((sizeof(expert_encoding) / sizeof(expert_encoding[0])) == 256,
- "expert_encoding has wrong size");
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
-}
-
-Cff::~Cff()
-{
- for (int i = 0; i < _gsubrs_cs.size(); i++)
- delete _gsubrs_cs[i];
- for (int i = 0; i < _fonts.size(); ++i)
- delete _fonts[i];
-}
-
-/*
- * Parsing the file header
- */
-
-int
-Cff::parse_header(ErrorHandler *errh)
-{
- if (_gsubrs_index.error() >= 0) // already done
- return 0;
-
- // parse header
- if (_len == 0)
- return errh->error("not a PostScript-flavored OpenType font"), -EFAULT;
- if (_len < HEADER_SIZE)
- return errh->error("CFF file corrupted (too small)"), -EFAULT;
- if (_data[0] != 1) // major version number
- return errh->error("bad major version number %d", _data[0]), -ERANGE;
- int hdrSize = _data[2], offSize = _data[3];
- if (hdrSize < 4 || hdrSize > _len || offSize < 1 || offSize > 4)
- return errh->error("corrupted file header"), -EINVAL;
- int name_index_pos = hdrSize;
-
- // parse name INDEX
- IndexIterator niter(_data, name_index_pos, _len, errh, "Name INDEX");
- if (niter.error() < 0)
- return niter.error();
- _name_index.clear();
- for (; niter; niter++) {
- const uint8_t *d0 = niter[0];
- const uint8_t *d1 = niter[1];
- if (d0 == d1 || d0[0] == 0)
- _name_index.push_back(PermString());
- else
- _name_index.push_back(PermString(reinterpret_cast<const char *>(d0), d1 - d0));
- }
- int top_dict_index_pos = niter.index_end() - _data;
-
- // check top DICT INDEX
- _top_dict_index = IndexIterator(_data, top_dict_index_pos, _len, errh, "Top DICT INDEX");
- if (_top_dict_index.error() < 0)
- return _top_dict_index.error();
- else if (_top_dict_index.nitems() != nfonts())
- return errh->error("invalid font: Top DICT INDEX has %d elements, but there are %d fonts", _top_dict_index.nitems(), nfonts()), -EINVAL;
- int string_index_pos = _top_dict_index.index_end() - _data;
-
- // check strings INDEX
- _strings_index = IndexIterator(_data, string_index_pos, _len, errh, "Strings INDEX");
- if (_strings_index.error() < 0)
- return _strings_index.error();
- else if (NSTANDARD_STRINGS + _strings_index.nitems() - 1 > MAX_SID)
- return errh->error("too many strings defined in font"), -EINVAL;
- _strings.assign(_strings_index.nitems(), PermString());
- int global_subr_index_pos = _strings_index.index_end() - _data;
-
- // check gsubr INDEX
- _gsubrs_index = IndexIterator(_data, global_subr_index_pos, _len, errh, "Gsubrs INDEX");
- if (_gsubrs_index.error() < 0)
- return _gsubrs_index.error();
- _gsubrs_cs.assign(ngsubrs(), 0);
-
- return 0;
-}
-
-int
-Cff::sid(PermString s)
-{
- if (!s) // XXX?
- return -1;
-
- // check standard strings
- if (standard_permstrings_map["a"] < 0)
- for (int i = 0; i < NSTANDARD_STRINGS; i++) {
- if (!standard_permstrings[i])
- standard_permstrings[i] = PermString(standard_strings[i]);
- standard_permstrings_map.insert(standard_permstrings[i], i);
- }
- int sid = standard_permstrings_map[s];
- if (sid >= 0)
- return sid;
-
- // check user strings
- sid = _strings_map[s];
- if (sid >= -1)
- return sid;
-
- for (int i = 0; i < _strings.size(); i++)
- if (!_strings[i] && s.length() == _strings_index[i+1] - _strings_index[i] && memcmp(s.c_str(), _strings_index[i], s.length()) == 0) {
- _strings[i] = s;
- _strings_map.insert(s, i + NSTANDARD_STRINGS);
- return i + NSTANDARD_STRINGS;
- }
-
- _strings_map.insert(s, -1);
- return -1;
-}
-
-String
-Cff::sid_string(int sid) const
-{
- if (sid < 0)
- return String();
- else if (sid < NSTANDARD_STRINGS)
- return String(sid_permstring(sid));
- else {
- sid -= NSTANDARD_STRINGS;
- if (sid >= _strings.size())
- return String();
- else if (_strings[sid])
- return String(_strings[sid]);
- else
- return String(reinterpret_cast<const char *>(_strings_index[sid]), _strings_index[sid + 1] - _strings_index[sid]);
- }
-}
-
-PermString
-Cff::sid_permstring(int sid) const
-{
- if (sid < 0)
- return PermString();
- else if (sid < NSTANDARD_STRINGS) {
- if (!standard_permstrings[sid])
- standard_permstrings[sid] = PermString(standard_strings[sid]);
- return standard_permstrings[sid];
- } else {
- sid -= NSTANDARD_STRINGS;
- if (sid >= _strings.size())
- return PermString();
- else if (_strings[sid])
- return _strings[sid];
- else {
- PermString s = PermString(reinterpret_cast<const char *>(_strings_index[sid]), _strings_index[sid + 1] - _strings_index[sid]);
- _strings[sid] = s;
- _strings_map.insert(s, sid + NSTANDARD_STRINGS);
- return s;
- }
- }
-}
-
-Cff::FontParent *
-Cff::font(PermString font_name, ErrorHandler *errh)
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
-
- if (!ok())
- return errh->error("invalid CFF"), (FontParent *) 0;
-
- // search for a font named 'font_name'
- int findex;
- for (findex = 0; findex < _name_index.size(); ++findex) {
- if (_name_index[findex]
- && (!font_name || font_name == _name_index[findex]))
- break;
- }
- if (findex >= _name_index.size()) {
- if (!font_name)
- errh->error("no fonts in CFF");
- else
- errh->error("font %<%s%> not found", font_name.c_str());
- return 0;
- }
-
- // return font
- for (int i = 0; i < _fonts.size(); ++i)
- if (_fonts[i]->_font_index == findex)
- return _fonts[i];
-
- int td_offset = _top_dict_index[findex] - _data;
- int td_length = _top_dict_index[findex + 1] - _top_dict_index[findex];
- Dict top_dict(this, td_offset, td_length, errh, "Top DICT");
- if (!top_dict.ok())
- return 0;
-
- Cff::FontParent* fp;
- if (top_dict.has_first(oROS))
- fp = new Cff::CIDFont(this, _name_index[findex], top_dict, errh);
- else
- fp = new Cff::Font(this, _name_index[findex], top_dict, errh);
- fp->_font_index = findex;
- _fonts.push_back(fp);
- return fp;
-}
-
-static inline int
-subr_bias(int charstring_type, int nsubrs)
-{
- if (charstring_type == 1)
- return 0;
- else if (nsubrs < 1240)
- return 107;
- else if (nsubrs < 33900)
- return 1131;
- else
- return 32768;
-}
-
-Charstring *
-Cff::gsubr(int i)
-{
- i += subr_bias(2, ngsubrs());
- if (i < 0 || i >= ngsubrs())
- return 0;
- if (!_gsubrs_cs[i]) {
- const uint8_t *s1 = _gsubrs_index[i];
- int slen = _gsubrs_index[i + 1] - s1;
- String cs = data_string().substring(s1 - data(), slen);
- if (slen == 0)
- return 0;
- else
- _gsubrs_cs[i] = new Type2Charstring(cs);
- }
- return _gsubrs_cs[i];
-}
-
-
-/*****
- * Cff::Charset
- **/
-
-Cff::Charset::Charset(const Cff *cff, int pos, int nglyphs, int max_sid, ErrorHandler *errh)
-{
- assign(cff, pos, nglyphs, max_sid, errh);
-}
-
-void
-Cff::Charset::assign(const Cff *cff, int pos, int nglyphs, int max_sid, ErrorHandler *errh)
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
-
- _sids.reserve(nglyphs);
-
- if (pos == 0)
- assign(iso_adobe_charset, sizeof(iso_adobe_charset) / sizeof(int), nglyphs);
- else if (pos == 1)
- assign(expert_charset, sizeof(expert_charset) / sizeof(int), nglyphs);
- else if (pos == 2)
- assign(expert_subset_charset, sizeof(expert_subset_charset) / sizeof(int), nglyphs);
- else
- _error = parse(cff, pos, nglyphs, max_sid, errh);
-
- if (_error >= 0)
- for (int g = 0; g < _sids.size(); g++) {
- if (_gids[_sids[g]] >= 0) {
- errh->error("glyph %<%s%> in charset twice", cff->sid_permstring(_sids[g]).c_str());
- _error = -EEXIST;
- }
- _gids[_sids[g]] = g;
- }
-}
-
-void
-Cff::Charset::assign(const int *data, int size, int nglyphs)
-{
- if (size < nglyphs)
- size = nglyphs;
- _sids.resize(size);
- memcpy(&_sids[0], data, sizeof(const int) * size);
- _gids.resize(data[size-1] + 1, -1);
- _error = 0;
-}
-
-int
-Cff::Charset::parse(const Cff *cff, int pos, int nglyphs, int max_sid, ErrorHandler *errh)
-{
- const uint8_t *data = cff->data();
- int len = cff->length();
-
- if (pos + 1 > len)
- return errh->error("charset position out of range"), -EFAULT;
-
- _sids.push_back(0);
- int actual_max_sid = 0;
-
- int format = data[pos];
- if (format == 0) {
- if (pos + 1 + (nglyphs - 1) * 2 > len)
- return errh->error("charset [format 0] out of range"), -EFAULT;
- const uint8_t *p = data + pos + 1;
- for (; _sids.size() < nglyphs; p += 2) {
- int sid = (p[0] << 8) | p[1];
- if (sid > actual_max_sid)
- actual_max_sid = sid;
- _sids.push_back(sid);
- }
-
- } else if (format == 1) {
- const uint8_t *p = data + pos + 1;
- for (; _sids.size() < nglyphs; p += 3) {
- if (p + 3 > data + len)
- return errh->error("charset [format 1] out of range"), -EFAULT;
- int sid = (p[0] << 8) | p[1];
- int n = p[2];
- if (sid + n > actual_max_sid)
- actual_max_sid = sid + n;
- for (int i = 0; i <= n; i++)
- _sids.push_back(sid + i);
- }
-
- } else if (format == 2) {
- const uint8_t *p = data + pos + 1;
- for (; _sids.size() < nglyphs; p += 4) {
- if (p + 4 > data + len)
- return errh->error("charset [format 2] out of range"), -EFAULT;
- int sid = (p[0] << 8) | p[1];
- int n = (p[2] << 8) | p[3];
- if (sid + n > actual_max_sid)
- actual_max_sid = sid + n;
- for (int i = 0; i <= n; i++)
- _sids.push_back(sid + i);
- }
-
- } else
- return errh->error("unknown charset format %d", format), -EINVAL;
-
- if (max_sid >= 0 && actual_max_sid > max_sid)
- return errh->error("charset [format %d] uses bad SID %d", format, actual_max_sid), -EINVAL;
- _sids.resize(nglyphs);
- _gids.resize(actual_max_sid + 1, -1);
- return 0;
-}
-
-
-/*****
- * Cff::FDSelect
- **/
-
-void
-Cff::FDSelect::assign(const Cff *cff, int pos, int nglyphs, ErrorHandler *errh)
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
- if (_my_fds)
- delete[] _fds;
- _fds = 0;
- _my_fds = false;
- _nglyphs = nglyphs;
- _error = parse(cff, pos, nglyphs, errh);
-}
-
-Cff::FDSelect::~FDSelect()
-{
- if (_my_fds)
- delete[] _fds;
-}
-
-int
-Cff::FDSelect::parse(const Cff *cff, int pos, int nglyphs, ErrorHandler *errh)
-{
- const uint8_t *data = cff->data();
- int len = cff->length();
-
- if (pos + 1 > len)
- return errh->error("FDSelect position out of range"), -EFAULT;
-
- int format = data[pos];
- if (format == 0) {
- if (pos + 1 + nglyphs > len)
- return errh->error("FDSelect [format 0] out of range"), -EFAULT;
- _fds = data + pos + 1;
- _my_fds = false;
- return 0;
-
- } else if (format == 3) {
- int nranges = (data[pos+1] << 8) | data[pos+2];
- if (pos + 3 + 3*nranges + 2 > len)
- return errh->error("FDSelect [format 3] out of range"), -EFAULT;
-
- const uint8_t *p = data + pos + 3;
- int last_glyph = (p[3*nranges] << 8) | p[3*nranges + 1];
- if (p[0] || p[1] || last_glyph != nglyphs)
- return errh->error("FDSelect [format 3] bad values"), -EINVAL;
-
- _fds = new uint8_t[nglyphs];
- _my_fds = true;
- int curglyph = 0;
- for (; curglyph < nglyphs; p += 3) {
- int nextglyph = (p[3] << 8) | p[4];
- if (nextglyph > nglyphs || nextglyph < curglyph)
- return errh->error("FDSelect [format 3] sorting error"), -EINVAL;
- memset(const_cast<uint8_t *>(_fds + curglyph), p[2], nextglyph - curglyph);
- curglyph = nextglyph;
- }
- return 0;
-
- } else
- return errh->error("unknown charset format %d", format), -EINVAL;
-}
-
-
-/*****
- * Cff::IndexIterator
- **/
-
-Cff::IndexIterator::IndexIterator(const uint8_t *data, int pos, int len, ErrorHandler *errh, const char *index_name)
- : _contents(0), _offset(0), _last_offset(0)
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
-
- // check header
- int nitems = 0;
- if (POS_GT(pos + 2, len)) {
- errh->error("%s: position out of range", index_name);
- _offsize = -EFAULT;
- } else if (data[pos] == 0 && data[pos + 1] == 0) {
- _contents = data + pos + 2;
- _offsize = 0;
- } else if (POS_GT(pos + 3, len)) {
- errh->error("%s: position out of range", index_name);
- _offsize = -EFAULT;
- } else if ((_offsize = data[pos + 2]), (_offsize < 1 || _offsize > 4)) {
- errh->error("%s: offset size %d out of range", index_name, _offsize);
- _offsize = -EINVAL;
- } else {
- nitems = (data[pos] << 8) | data[pos + 1];
- if (POS_GT(pos + 3 + (nitems + 1) * _offsize, len)) {
- errh->error("%s: data out of range", index_name);
- _offsize = -EFAULT;
- } else {
- _offset = data + pos + 3;
- _last_offset = _offset + nitems * _offsize;
- _contents = _last_offset + _offsize - 1;
- }
- }
-
- // check items in offset array
- uint32_t max_doff_allowed = len - (pos + 2 + (nitems + 1) * _offsize);
- uint32_t last_doff = 1;
- for (const uint8_t *o = _offset; o <= _last_offset && _offsize > 0; o += _offsize) {
- uint32_t doff = offset_at(o);
- if (doff > max_doff_allowed) {
- errh->error("%s: element out of range", index_name);
- _offsize = -EFAULT;
- } else if (doff < last_doff) {
- errh->error("%s: garbled elements", index_name);
- break;
- }
- last_doff = doff;
- }
-}
-
-const uint8_t *
-Cff::IndexIterator::index_end() const
-{
- if (_offsize <= 0)
- return _contents;
- else
- return _contents + offset_at(_last_offset);
-}
-
-int
-Cff::IndexIterator::nitems() const
-{
- if (_offsize <= 0)
- return 0;
- else
- return (_last_offset - _offset) / _offsize;
-}
-
-
-
-/*****
- * Cff::Dict
- **/
-
-Cff::Dict::Dict()
- : _cff(0), _pos(0), _error(-ENOENT)
-{
-}
-
-Cff::Dict::Dict(Cff *cff, int pos, int dict_len, ErrorHandler *errh, const char *dict_name)
-{
- assign(cff, pos, dict_len, errh, dict_name);
-}
-
-int
-Cff::Dict::assign(Cff *cff, int pos, int dict_len, ErrorHandler *errh, const char *dict_name)
-{
- _cff = cff;
- _pos = pos;
- _operators.clear();
- _pointers.clear();
- _operands.clear();
-
- if (!errh)
- errh = ErrorHandler::silent_handler();
-
- const uint8_t *data = cff->data() + pos;
- const uint8_t *end_data = data + dict_len;
-
- _pointers.push_back(0);
- while (data < end_data)
- switch (data[0]) {
-
- case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
- case 8: case 9: case 10: case 11: case 13: case 14: case 15:
- case 16: case 17: case 18: case 19: case 20: case 21:
- _operators.push_back(data[0]);
- _pointers.push_back(_operands.size());
- data++;
- break;
-
- case 22: case 23: case 24: case 25: case 26: case 27: case 31:
- case 255: // reserved
- errh->error("%s: reserved operator %d", dict_name, data[0]);
- return (_error = -ERANGE);
-
- case 12:
- if (data + 1 >= end_data)
- goto runoff;
- _operators.push_back(32 + data[1]);
- _pointers.push_back(_operands.size());
- data += 2;
- break;
-
- case 28: {
- if (data + 2 >= end_data)
- goto runoff;
- int16_t val = (data[1] << 8) | data[2];
- _operands.push_back(val);
- data += 3;
- break;
- }
-
- case 29: {
- if (data + 4 >= end_data)
- goto runoff;
- int32_t val = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];
- _operands.push_back(val);
- data += 5;
- break;
- }
-
- case 30: {
- char buf[1024];
- int pos = 0;
- if (data + 1 >= end_data)
- goto runoff;
- for (data++; data < end_data && pos < 1020; data++) {
- int d = *data;
- for (int i = 0; i < 2; i++, d <<= 4) {
- int digit = (d >> 4) & 0xF;
- switch (digit) {
- case 10:
- buf[pos++] = '.';
- break;
- case 11:
- buf[pos++] = 'E';
- break;
- case 12:
- buf[pos++] = 'E';
- buf[pos++] = '-';
- break;
- case 13:
- errh->error("%s: bad digit in real number", dict_name);
- goto invalid;
- case 14:
- buf[pos++] = '-';
- break;
- case 15:
- goto found;
- default:
- buf[pos++] = digit + '0';
- break;
- }
- }
- }
- // number not found
- goto runoff;
- found:
- char *endptr;
- buf[pos] = '\0';
- _operands.push_back(strtod(buf, &endptr));
- if (*endptr) {
- errh->error("%s: real number syntax error", dict_name);
- goto invalid;
- }
- data++;
- break;
- }
-
- case 247: case 248: case 249: case 250: {
- if (data + 1 >= end_data)
- goto runoff;
- int val = ((data[0] - 247) << 8) + data[1] + 108;
- _operands.push_back(val);
- data += 2;
- break;
- }
-
- case 251: case 252: case 253: case 254: {
- if (data + 1 >= end_data)
- goto runoff;
- int val = -((data[0] - 251) << 8) - data[1] - 108;
- _operands.push_back(val);
- data += 2;
- break;
- }
-
- default:
- _operands.push_back(data[0] - 139);
- data++;
- break;
-
- }
-
- // not closed by an operator?
- if (_pointers.back() != _operands.size()) {
- errh->error("%s: not closed by an operator", dict_name);
- goto invalid;
- }
-
- return (_error = 0);
-
- runoff:
- errh->error("%s: runoff end of DICT", dict_name);
- return (_error = -EFAULT);
-
- invalid:
- return (_error = -EINVAL);
-}
-
-int
-Cff::Dict::check(bool is_private, ErrorHandler *errh, const char *dict_name) const
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
- int before_nerrors = errh->nerrors();
-
- // keep track of operator reuse
- Vector<int> operators_used;
-
- for (int i = 0; i < _operators.size(); i++) {
- int arity = _pointers[i+1] - _pointers[i];
- double num = (arity == 0 ? 0 : _operands[_pointers[i]]);
- double truncnum = floor(num);
- int op = _operators[i];
- int type = (op > oLastOperator ? tNone : operator_types[op]);
-
- // check reuse
- if (op >= operators_used.size())
- operators_used.resize(op + 1, 0);
- if (operators_used[op] && (type & tTypeMask) != tNone)
- errh->error("%s: operator %<%s%> specified twice", dict_name, operator_names[op]);
- operators_used[op]++;
-
- // check data
- switch (type & tTypeMask) {
-
- case tNone:
- if (op >= 32)
- errh->warning("%s: unknown operator %<12 %d%>", dict_name, op - 32);
- else
- errh->warning("%s: unknown operator %<%d%>", dict_name, op);
- continue;
-
- case tSID:
- if (arity != 1 || num != truncnum || num < 0 || num > _cff->max_sid())
- goto bad_data;
- break;
-
- case tFontNumber:
- if (arity != 1 || num != truncnum || num < 0 || num >= _cff->nfonts())
- goto bad_data;
- break;
-
- case tBoolean:
- if (arity != 1)
- goto bad_data;
- else if (num != 0 && num != 1)
- errh->warning("%s: data for Boolean operator %<%s%> not 0 or 1", dict_name, operator_names[op]);
- break;
-
- case tNumber:
- if (arity != 1)
- goto bad_data;
- break;
-
- case tOffset:
- if (arity != 1 || num != truncnum || num < 0 || num >= _cff->length())
- goto bad_data;
- break;
-
- case tLocalOffset:
- if (arity != 1 || num != truncnum || _pos + num < 0 || _pos + num >= _cff->length())
- goto bad_data;
- break;
-
- case tPrivateType: {
- if (arity != 2 || num != truncnum || num < 0)
- goto bad_data;
- double off = _operands[_pointers[i] + 1];
- if (off < 0 || off + num > _cff->length())
- goto bad_data;
- break;
- }
-
- case tArray2: case tArray3: case tArray4:
- case tArray5: case tArray6:
- if (arity != (type & tTypeMask) - tArray2 + 2)
- goto bad_data;
- break;
-
- case tArray:
- break;
-
- }
-
- // check dict location
- if (((type & tPrivate) != 0) != is_private)
- errh->warning("%s: operator %<%s%> in wrong DICT", dict_name, operator_names[op]);
-
- continue;
-
- bad_data:
- errh->error("%s: bad data for operator %<%s%>", dict_name, operator_names[op]);
- }
-
- return (errh->nerrors() != before_nerrors ? -1 : 0);
-}
-
-bool
-Cff::Dict::has(DictOperator op) const
-{
- for (int i = 0; i < _operators.size(); i++)
- if (_operators[i] == op)
- return true;
- return false;
-}
-
-bool
-Cff::Dict::xvalue(DictOperator op, Vector<double> &out) const
-{
- out.clear();
- for (int i = 0; i < _operators.size(); i++)
- if (_operators[i] == op) {
- for (int j = _pointers[i]; j < _pointers[i+1]; j++)
- out.push_back(_operands[j]);
- return true;
- }
- return false;
-}
-
-bool
-Cff::Dict::xvalue(DictOperator op, int *val) const
-{
- for (int i = 0; i < _operators.size(); i++)
- if (_operators[i] == op && _pointers[i] + 1 == _pointers[i+1]) {
- *val = (int) _operands[_pointers[i]];
- return true;
- }
- return false;
-}
-
-bool
-Cff::Dict::xvalue(DictOperator op, double *val) const
-{
- for (int i = 0; i < _operators.size(); i++)
- if (_operators[i] == op && _pointers[i] + 1 == _pointers[i+1]) {
- *val = _operands[_pointers[i]];
- return true;
- }
- return false;
-}
-
-bool
-Cff::Dict::value(DictOperator op, Vector<double> &out) const
-{
- return xvalue(op, out) || default_dict().xvalue(op, out);
-}
-
-bool
-Cff::Dict::value(DictOperator op, int *val) const
-{
- return xvalue(op, val) || default_dict().xvalue(op, val);
-}
-
-bool
-Cff::Dict::value(DictOperator op, double *val) const
-{
- return xvalue(op, val) || default_dict().xvalue(op, val);
-}
-
-void
-Cff::Dict::unparse(ErrorHandler *errh, const char *dict_name) const
-{
- StringAccum sa;
- for (int i = 0; i < _operators.size(); i++) {
- sa.clear();
- if (_pointers[i] + 1 == _pointers[i+1])
- sa << _operands[_pointers[i]];
- else {
- sa << "[";
- for (int j = _pointers[i]; j < _pointers[i+1]; j++)
- sa << _operands[j] << ' ';
- sa.pop_back();
- sa << "]";
- }
- errh->message("%s: %s %s", dict_name, operator_names[_operators[i]], sa.c_str());
- }
-}
-
-
-/*****
- * CffFontParent
- **/
-
-static int
-handle_private(Cff *cff, const Cff::Dict &top_dict, Cff::Dict &private_dict,
- double &default_width_x, double &nominal_width_x,
- Cff::IndexIterator &subrs_index, Vector<Charstring *> &subrs_cs,
- ErrorHandler *errh)
-{
- Vector<double> private_info;
- top_dict.value(Cff::oPrivate, private_info);
- int private_offset = (int) private_info[1];
- private_dict.assign(cff, private_offset, (int) private_info[0], errh, "Private DICT");
- if (private_dict.error() < 0)
- return private_dict.error();
- else if (private_dict.check(true, errh, "Private DICT") < 0)
- return -EINVAL;
- //private_dict.unparse(errh, "Private DICT");
-
- private_dict.value(Cff::oDefaultWidthX, &default_width_x);
- private_dict.value(Cff::oNominalWidthX, &nominal_width_x);
- if (private_dict.has(Cff::oSubrs)) {
- int subrs_offset = 0;
- private_dict.value(Cff::oSubrs, &subrs_offset);
- subrs_index = Cff::IndexIterator(cff->data(), private_offset + subrs_offset, cff->length(), errh, "Subrs INDEX");
- if (subrs_index.error() < 0)
- return subrs_index.error();
- }
- subrs_cs.assign(subrs_index.nitems(), 0);
- return 0;
-}
-
-
-Cff::FontParent::FontParent(Cff* cff)
- : CharstringProgram(cff->units_per_em()), _cff(cff), _error(-1)
-{
-}
-
-Charstring *
-Cff::FontParent::charstring(const IndexIterator &iiter, int which) const
-{
- const uint8_t *s1 = iiter[which];
- int slen = iiter[which + 1] - s1;
- String cs = _cff->data_string().substring(s1 - _cff->data(), slen);
- if (slen == 0)
- return 0;
- else if (_charstring_type == 1)
- return new Type1Charstring(cs);
- else
- return new Type2Charstring(cs);
-}
-
-Charstring *
-Cff::FontParent::gsubr(int i) const
-{
- return _cff->gsubr(i);
-}
-
-int
-Cff::FontParent::gsubr_bias() const
-{
- return Efont::subr_bias(2, ngsubrs_x());
-}
-
-
-/*****
- * CffFont
- **/
-
-Cff::Font::Font(Cff *cff, PermString font_name, const Dict &top_dict, ErrorHandler *errh)
- : ChildFont(cff, 0, 2, top_dict, errh), _font_name(font_name),
- _t1encoding(0)
-{
- assert(!_top_dict.has_first(oROS));
- if (_error < 0)
- return;
-
- // extract CharStrings
- // must use xvalue because we could be creating the default dict!
- int charstrings_offset = 0;
- _top_dict.xvalue(oCharStrings, &charstrings_offset);
- _charstrings_index = Cff::IndexIterator(cff->data(), charstrings_offset, cff->length(), errh, "CharStrings INDEX");
- if (_charstrings_index.error() < 0) {
- _error = _charstrings_index.error();
- return;
- }
- _charstrings_cs.assign(_charstrings_index.nitems(), 0);
-
- int charset = 0;
- _top_dict.xvalue(oCharset, &charset);
- _charset.assign(cff, charset, _charstrings_index.nitems(), cff->max_sid(), errh);
- if (_charset.error() < 0) {
- _error = _charset.error();
- return;
- }
-
- int Encoding = 0;
- _top_dict.xvalue(oEncoding, &Encoding);
- if (parse_encoding(Encoding, errh) < 0)
- return;
-
- // success!
- _error = 0;
-}
-
-Cff::Font::~Font()
-{
- for (int i = 0; i < _charstrings_cs.size(); i++)
- delete _charstrings_cs[i];
- delete _t1encoding;
-}
-
-int
-Cff::Font::parse_encoding(int pos, ErrorHandler *errh)
-{
- _encoding_pos = pos;
- for (int i = 0; i < 256; i++)
- _encoding[i] = 0;
-
- // check for standard encodings
- if (pos == 0)
- return assign_standard_encoding(standard_encoding);
- else if (pos == 1)
- return assign_standard_encoding(expert_encoding);
-
- // otherwise, a custom encoding
- const uint8_t *data = _cff->data();
- int len = _cff->length();
- if (pos + 1 > len)
- return errh->error("Encoding position out of range"), -EFAULT;
- bool supplemented = (data[pos] & 0x80) != 0;
- int format = (data[pos] & 0x7F);
-
- int retval = 0;
- int endpos, g = 1;
- if (format == 0) {
- endpos = pos + 2 + data[pos + 1];
- if (endpos > len)
- return errh->error("Encoding[0] out of range"), -EFAULT;
- const uint8_t *p = data + pos + 2;
- int n = data[pos + 1];
- for (; g <= n; g++, p++) {
- int e = p[0];
- if (_encoding[e])
- retval = 1;
- _encoding[e] = g;
- }
-
- } else if (format == 1) {
- endpos = pos + 2 + data[pos + 1] * 2;
- if (endpos > len)
- return errh->error("Encoding[1] out of range"), -EFAULT;
- const uint8_t *p = data + pos + 2;
- int n = data[pos + 1];
- for (int i = 0; i < n; i++, p += 2) {
- int first = p[0];
- int nLeft = p[1];
- for (int e = first; e <= first + nLeft; e++) {
- if (_encoding[e])
- retval = 1;
- _encoding[e] = g++;
- }
- }
-
- } else
- return errh->error("unknown Encoding format %d", format), -EINVAL;
-
- if (g > _charset.nglyphs())
- return errh->error("Encoding glyph %d out of range", g), -EINVAL;
-
- // check supplements
- if (supplemented) {
- if (endpos + data[endpos] * 3 > len)
- return -EINVAL;
- const uint8_t *p = data + endpos + 1;
- int n = data[endpos];
- for (int i = 0; i < n; i++, p += 3) {
- int e = p[0];
- int s = (p[1] << 8) | p[2];
- int g = _charset.sid_to_gid(s);
- if (_encoding[e])
- retval = 1;
- if (g < 0 || g >= _charset.nglyphs())
- return errh->error("Encoding glyph %d out of range", g), -EINVAL;
- _encoding[e] = g;
- }
- }
-
- // successfully done
- return retval;
-}
-
-int
-Cff::Font::assign_standard_encoding(const int *standard_encoding)
-{
- for (int i = 0; i < 256; i++)
- _encoding[i] = _charset.sid_to_gid(standard_encoding[i]);
- return 0;
-}
-
-void
-Cff::Font::font_matrix(double matrix[6]) const
-{
- Vector<double> t1d_matrix;
- if (dict_value(oFontMatrix, t1d_matrix) && t1d_matrix.size() == 6)
- memcpy(&matrix[0], &t1d_matrix[0], sizeof(double) * 6);
- else {
- matrix[0] = matrix[3] = 0.001;
- matrix[1] = matrix[2] = matrix[4] = matrix[5] = 0;
- }
-}
-
-PermString
-Cff::Font::glyph_name(int gid) const
-{
- if (gid >= 0 && gid < nglyphs())
- return _cff->sid_permstring(_charset.gid_to_sid(gid));
- else
- return PermString();
-}
-
-void
-Cff::Font::glyph_names(Vector<PermString> &gnames) const
-{
- gnames.resize(nglyphs());
- for (int i = 0; i < nglyphs(); i++)
- gnames[i] = _cff->sid_permstring(_charset.gid_to_sid(i));
-}
-
-Charstring *
-Cff::Font::glyph(int gid) const
-{
- if (gid < 0 || gid >= nglyphs())
- return 0;
- if (!_charstrings_cs[gid])
- _charstrings_cs[gid] = charstring(_charstrings_index, gid);
- return _charstrings_cs[gid];
-}
-
-Charstring *
-Cff::Font::glyph(PermString name) const
-{
- int gid = _charset.sid_to_gid(_cff->sid(name));
- if (gid < 0)
- return 0;
- if (!_charstrings_cs[gid])
- _charstrings_cs[gid] = charstring(_charstrings_index, gid);
- return _charstrings_cs[gid];
-}
-
-int
-Cff::Font::glyphid(PermString name) const
-{
- return _charset.sid_to_gid(_cff->sid(name));
-}
-
-Type1Encoding *
-Cff::Font::type1_encoding() const
-{
- if (_encoding_pos == 0)
- return Type1Encoding::standard_encoding();
- if (!_t1encoding)
- _t1encoding = type1_encoding_copy();
- return _t1encoding;
-}
-
-Type1Encoding *
-Cff::Font::type1_encoding_copy() const
-{
- if (_encoding_pos == 0)
- return Type1Encoding::standard_encoding();
- Type1Encoding *e = new Type1Encoding;
- for (int i = 0; i < 256; i++)
- if (_encoding[i])
- e->put(i, _cff->sid_permstring(_charset.gid_to_sid(_encoding[i])));
- return e;
-}
-
-bool
-Cff::Font::dict_has(DictOperator op) const
-{
- return dict_of(op).has(op);
-}
-
-String
-Cff::Font::dict_string(DictOperator op) const
-{
- Vector<double> vec;
- dict_of(op).value(op, vec);
- if (vec.size() == 1 && vec[0] >= 0 && vec[0] <= _cff->max_sid())
- return _cff->sid_string((int) vec[0]);
- else
- return String();
-}
-
-
-/*****
- * Cff::CIDFont
- **/
-
-Cff::CIDFont::CIDFont(Cff *cff, PermString font_name, const Dict &top_dict, ErrorHandler *errh)
- : FontParent(cff), _font_name(font_name), _top_dict(top_dict)
-{
- assert(_top_dict.has_first(oROS));
-
- // parse top DICT
- _error = -EINVAL;
- if (_top_dict.check(false, errh, "Top DICT") < 0)
- return;
- else if (!_top_dict.has(oCharStrings)) {
- errh->error("font has no CharStrings dictionary");
- return;
- }
- //_top_dict.unparse(errh, "Top DICT");
-
- // extract offsets and information from TOP DICT
- _top_dict.value(oCharstringType, &_charstring_type);
- if (_charstring_type != 1 && _charstring_type != 2) {
- errh->error("unknown CharString type %d", _charstring_type);
- return;
- }
-
- int charstrings_offset = 0;
- _top_dict.value(oCharStrings, &charstrings_offset);
- _charstrings_index = Cff::IndexIterator(cff->data(), charstrings_offset, cff->length(), errh, "CharStrings INDEX");
- if (_charstrings_index.error() < 0) {
- _error = _charstrings_index.error();
- return;
- }
- _charstrings_cs.assign(_charstrings_index.nitems(), 0);
-
- int charset = 0;
- _top_dict.value(oCharset, &charset);
- _charset.assign(cff, charset, _charstrings_index.nitems(), -1, errh);
- if (_charset.error() < 0) {
- _error = _charset.error();
- return;
- }
-
- // extract information about child fonts
- int fdarray_offset = 0;
- if (!_top_dict.value(oFDArray, &fdarray_offset)) {
- errh->error("CID-keyed font missing FDArray");
- return;
- }
- IndexIterator fdarray_index(cff->data(), fdarray_offset, cff->length(), errh, "FDArray INDEX");
- for (; fdarray_index; fdarray_index++) {
- Dict d(cff, fdarray_index[0] - cff->data(), fdarray_index[1] - fdarray_index[0], errh, "Top DICT");
- if (!d.ok() || d.check(false, errh, "Top DICT") < 0) {
- _error = d.error();
- return;
- }
- _child_fonts.push_back(new ChildFont(cff, this, _charstring_type, d, errh));
- if (!_child_fonts.back()->ok())
- return;
- }
-
- int fdselect_offset = 0;
- if (!_top_dict.value(oFDSelect, &fdselect_offset)) {
- errh->error("CID-keyed font missing FDSelect");
- return;
- }
- _fdselect.assign(cff, fdselect_offset, _charstrings_cs.size(), errh);
- if (_fdselect.error() < 0)
- return;
-
- // success!
- _error = 0;
- set_parent_program(true);
-}
-
-Cff::CIDFont::~CIDFont()
-{
- for (int i = 0; i < _charstrings_cs.size(); i++)
- delete _charstrings_cs[i];
- for (int i = 0; i < _child_fonts.size(); i++)
- delete _child_fonts[i];
-}
-
-void
-Cff::CIDFont::font_matrix(double matrix[6]) const
-{
- // XXX
- matrix[0] = matrix[3] = 0.001;
- matrix[1] = matrix[2] = matrix[4] = matrix[5] = 0;
-}
-
-const CharstringProgram *
-Cff::CIDFont::child_program(int gid) const
-{
- int fd = _fdselect.gid_to_fd(gid);
- if (fd >= 0 && fd < _child_fonts.size())
- return _child_fonts.at_u(fd);
- else
- return 0;
-}
-
-PermString
-Cff::CIDFont::glyph_name(int gid) const
-{
- if (gid >= 0 && gid < nglyphs())
- return permprintf("#%d", _charset.gid_to_sid(gid));
- else
- return PermString();
-}
-
-void
-Cff::CIDFont::glyph_names(Vector<PermString> &gnames) const
-{
- gnames.resize(nglyphs());
- for (int i = 0; i < nglyphs(); i++)
- gnames[i] = permprintf("#%d", _charset.gid_to_sid(i));
-}
-
-Charstring *
-Cff::CIDFont::glyph(int gid) const
-{
- if (gid < 0 || gid >= nglyphs())
- return 0;
- if (!_charstrings_cs[gid])
- _charstrings_cs[gid] = charstring(_charstrings_index, gid);
- return _charstrings_cs[gid];
-}
-
-int
-Cff::CIDFont::glyphid(PermString name) const
-{
- if (name.length() <= 1 || name[0] != '#' || !isdigit((unsigned char) name[1]))
- return -1;
- char *endptr;
- long cid = strtol(name.c_str() + 1, &endptr, 10);
- if (*endptr != 0)
- return -1;
- return _charset.sid_to_gid(cid);
-}
-
-Charstring *
-Cff::CIDFont::glyph(PermString name) const
-{
- return CIDFont::glyph(CIDFont::glyphid(name));
-}
-
-
-/*****
- * ChildFont
- **/
-
-Cff::ChildFont::ChildFont(Cff *cff, Cff::CIDFont *parent, int charstring_type, const Dict &top_dict, ErrorHandler *errh)
- : FontParent(cff), _parent(parent), _top_dict(top_dict)
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
-
- if (!cff->ok() || !_top_dict.ok()) {
- errh->error("invalid CFF");
- _error = -EINVAL;
- return;
- }
-
- // extract offsets and information from TOP DICT
- _charstring_type = charstring_type;
- _top_dict.value(oCharstringType, &_charstring_type);
- if (_charstring_type != 1 && _charstring_type != 2) {
- errh->error("unknown CharString type %d", _charstring_type);
- return;
- }
-
- // extract information from Private DICT
- if (_top_dict.has(oPrivate)
- && (_error = handle_private(cff, _top_dict, _private_dict, _default_width_x, _nominal_width_x, _subrs_index, _subrs_cs, errh)) < 0)
- return;
-
- // success!
- _error = 0;
-}
-
-Cff::ChildFont::~ChildFont()
-{
- for (int i = 0; i < _subrs_cs.size(); i++)
- delete _subrs_cs[i];
-}
-
-Charstring *
-Cff::ChildFont::charstring(const IndexIterator &iiter, int which) const
-{
- const uint8_t *s1 = iiter[which];
- int slen = iiter[which + 1] - s1;
- String cs = _cff->data_string().substring(s1 - _cff->data(), slen);
- if (slen == 0)
- return 0;
- else if (_charstring_type == 1)
- return new Type1Charstring(cs);
- else
- return new Type2Charstring(cs);
-}
-
-Charstring *
-Cff::ChildFont::subr(int i) const
-{
- i += Efont::subr_bias(_charstring_type, nsubrs_x());
- if (i < 0 || i >= nsubrs_x())
- return 0;
- if (!_subrs_cs[i])
- _subrs_cs[i] = charstring(_subrs_index, i);
- return _subrs_cs[i];
-}
-
-int
-Cff::ChildFont::subr_bias() const
-{
- return Efont::subr_bias(_charstring_type, nsubrs_x());
-}
-
-double
-Cff::ChildFont::global_width_x(bool is_nominal) const
-{
- return (is_nominal ? _nominal_width_x : _default_width_x);
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
deleted file mode 100644
index 760fbfaffae..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/encoding.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-// -*- related-file-name: "../include/efont/encoding.hh" -*-
-
-/* encoding.{cc,hh} -- 8-bit encodings
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/encoding.hh>
-namespace Efont {
-
-void
-Encoding8::reserve_glyphs(int count)
-{
- if (count <= _codes.size()) return;
- _codes.resize(count, -1);
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
deleted file mode 100644
index ceea7992c43..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/findmet.cc
+++ /dev/null
@@ -1,321 +0,0 @@
-// -*- related-file-name: "../include/efont/findmet.hh" -*-
-
-/* findmet.{cc,hh} -- find font metrics
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/findmet.hh>
-#include <efont/afmparse.hh>
-#include <efont/afm.hh>
-#include <efont/amfm.hh>
-#include <efont/psres.hh>
-#include <string.h>
-#include <stdlib.h>
-namespace Efont {
-
-MetricsFinder::~MetricsFinder()
-{
- if (_next)
- _next->_prev = _prev;
- if (_prev)
- _prev->_next = _next;
-}
-
-void
-MetricsFinder::add_finder(MetricsFinder *new_finder)
-{
- if (_next)
- _next->add_finder(new_finder);
- else {
- assert(!new_finder->_prev);
- new_finder->_prev = this;
- _next = new_finder;
- }
-}
-
-Metrics *
-MetricsFinder::find_metrics(PermString name, ErrorHandler *errh)
-{
- MetricsFinder *f = this;
- while (f) {
- Metrics *m = f->find_metrics_x(name, this, errh);
- if (m) return m;
- f = f->_next;
- }
- return 0;
-}
-
-AmfmMetrics *
-MetricsFinder::find_amfm(PermString name, ErrorHandler *errh)
-{
- MetricsFinder *f = this;
- while (f) {
- AmfmMetrics *m = f->find_amfm_x(name, this, errh);
- if (m) return m;
- f = f->_next;
- }
- return 0;
-}
-
-void
-MetricsFinder::record(Metrics *m)
-{
- record(m, m->font_name());
-}
-
-void
-MetricsFinder::record(Metrics *m, PermString name)
-{
- if (_next) _next->record(m, name);
-}
-
-void
-MetricsFinder::record(AmfmMetrics *amfm)
-{
- if (_next) _next->record(amfm);
-}
-
-Metrics *
-MetricsFinder::find_metrics_x(PermString, MetricsFinder *, ErrorHandler *)
-{
- return 0;
-}
-
-AmfmMetrics *
-MetricsFinder::find_amfm_x(PermString, MetricsFinder *, ErrorHandler *)
-{
- return 0;
-}
-
-Metrics *
-MetricsFinder::try_metrics_file(const Filename &fn, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- if (fn.readable()) {
- Metrics *afm = AfmReader::read(fn, errh);
- if (afm) finder->record(afm);
- return afm;
- } else
- return 0;
-}
-
-AmfmMetrics *
-MetricsFinder::try_amfm_file(const Filename &fn, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- if (fn.readable()) {
- AmfmMetrics *amfm = AmfmReader::read(fn, finder, errh);
- if (amfm) finder->record(amfm);
- return amfm;
- } else
- return 0;
-}
-
-
-/*****
- * CacheMetricsFinder
- **/
-
-CacheMetricsFinder::CacheMetricsFinder()
- : _metrics_map(-1), _amfm_map(-1)
-{
-}
-
-CacheMetricsFinder::~CacheMetricsFinder()
-{
- clear();
-}
-
-Metrics *
-CacheMetricsFinder::find_metrics_x(PermString name, MetricsFinder *,
- ErrorHandler *)
-{
- int index = _metrics_map[name];
- return index >= 0 ? _metrics[index] : 0;
-}
-
-AmfmMetrics *
-CacheMetricsFinder::find_amfm_x(PermString name, MetricsFinder *,
- ErrorHandler*)
-{
- int index = _amfm_map[name];
- return index >= 0 ? _amfm[index] : 0;
-}
-
-
-void
-CacheMetricsFinder::record(Metrics *m, PermString name)
-{
- int index = _metrics.size();
- _metrics.push_back(m);
- _metrics_map.insert(name, index);
- m->use();
- MetricsFinder::record(m, name);
-}
-
-void
-CacheMetricsFinder::record(AmfmMetrics *amfm)
-{
- int index = _amfm.size();
- _amfm.push_back(amfm);
- _amfm_map.insert(amfm->font_name(), index);
- amfm->use();
- MetricsFinder::record(amfm);
-}
-
-void
-CacheMetricsFinder::clear()
-{
- for (int i = 0; i < _metrics.size(); i++)
- _metrics[i]->unuse();
- for (int i = 0; i < _amfm.size(); i++)
- _amfm[i]->unuse();
- _metrics.clear();
- _amfm.clear();
- _metrics_map.clear();
- _amfm_map.clear();
-}
-
-
-/*****
- * InstanceMetricsFinder
- **/
-
-InstanceMetricsFinder::InstanceMetricsFinder(bool call_mmpfb)
- : _call_mmpfb(call_mmpfb)
-{
-}
-
-Metrics *
-InstanceMetricsFinder::find_metrics_instance(PermString name,
- MetricsFinder *finder, ErrorHandler *errh)
-{
- const char *underscore = strchr(name.c_str(), '_');
- PermString amfm_name =
- PermString(name.c_str(), underscore - name.c_str());
-
- AmfmMetrics *amfm = finder->find_amfm(amfm_name, errh);
- if (!amfm) return 0;
-
- MultipleMasterSpace *mmspace = amfm->mmspace();
- if (!mmspace->check_intermediate() && _call_mmpfb) {
- char *buf = new char[amfm->font_name().length() + 30];
- sprintf(buf, "mmpfb -q --amcp-info '%s'", amfm->font_name().c_str());
-
- FILE *f = popen(buf, "r");
- if (f) {
- Filename fake("<mmpfb output>");
- Slurper slurpy(fake, f);
- AmfmReader::add_amcp_file(slurpy, amfm, errh);
- pclose(f);
- }
-
- delete[] buf;
- }
-
- Vector<double> design = mmspace->default_design_vector();
- int i = 0;
- while (underscore[0] == '_' && underscore[1]) {
- double x = strtod(underscore + 1, const_cast<char **>(&underscore));
- mmspace->set_design(design, i, x, errh);
- i++;
- }
-
- Vector<double> weight;
- if (!mmspace->design_to_weight(design, weight, errh))
- return 0;
- Metrics *new_afm = amfm->interpolate(design, weight, errh);
- if (new_afm) {
- finder->record(new_afm);
- // What if the dimensions changed because the user specified out-of-range
- // dimens? We don't want to reinterpolate each time, so record the new
- // AFM under that name as well.
- if (new_afm->font_name() != name)
- finder->record(new_afm, name);
- }
- return new_afm;
-}
-
-Metrics *
-InstanceMetricsFinder::find_metrics_x(PermString name, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- if (strchr(name.c_str(), '_'))
- return find_metrics_instance(name, finder, errh);
- else
- return 0;
-}
-
-
-/*****
- * PsresMetricsFinder
- **/
-
-PsresMetricsFinder::PsresMetricsFinder(PsresDatabase *psres)
- : _psres(psres)
-{
-}
-
-Metrics *
-PsresMetricsFinder::find_metrics_x(PermString name, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- return try_metrics_file
- (_psres->filename_value("FontAFM", name), finder, errh);
-}
-
-AmfmMetrics *
-PsresMetricsFinder::find_amfm_x(PermString name, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- return try_amfm_file
- (_psres->filename_value("FontAMFM", name), finder, errh);
-}
-
-
-/*****
- * DirectoryMetricsFinder
- **/
-
-DirectoryMetricsFinder::DirectoryMetricsFinder(PermString d)
- : _directory(d)
-{
-}
-
-Metrics *
-DirectoryMetricsFinder::find_metrics_x(PermString name, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- Metrics *afm = try_metrics_file
- (Filename(_directory, permcat(name, ".afm")), finder, errh);
- if (!afm)
- afm = try_metrics_file
- (Filename(_directory, permcat(name, ".AFM")), finder, errh);
- return afm;
-}
-
-AmfmMetrics *
-DirectoryMetricsFinder::find_amfm_x(PermString name, MetricsFinder *finder,
- ErrorHandler *errh)
-{
- AmfmMetrics *amfm = try_amfm_file
- (Filename(_directory, permcat(name, ".amfm")), finder, errh);
- if (!amfm)
- amfm = try_amfm_file
- (Filename(_directory, permcat(name, ".AMFM")), finder, errh);
- return amfm;
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
deleted file mode 100644
index 5c8fd973fcf..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/metrics.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// -*- related-file-name: "../include/efont/metrics.hh" -*-
-
-/* metrics.{cc,hh} -- generic font metrics
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/metrics.hh>
-#include <efont/t1cs.hh> /* for UNKDOUBLE */
-namespace Efont {
-
-Metrics::Metrics()
- : _name_map(-1),
- _scale(1), _fdv(fdLast, UNKDOUBLE),
- _xt_map(0),
- _uses(0)
-{
- _xt.push_back((MetricsXt *)0);
-}
-
-
-Metrics::Metrics(PermString font_name, PermString full_name, const Metrics &m)
- : _font_name(font_name),
- _family(m._family), _full_name(full_name), _version(m._version),
- _name_map(m._name_map), _names(m._names), _encoding(m._encoding),
- _scale(1), _fdv(fdLast, UNKDOUBLE),
- _pairp(m._pairp),
- _xt_map(0),
- _uses(0)
-{
- reserve_glyphs(m._wdv.size());
- _kernv.resize(m._kernv.size(), UNKDOUBLE);
- _xt.push_back((MetricsXt *)0);
-}
-
-
-Metrics::~Metrics()
-{
- assert(_uses == 0);
- for (int i = 1; i < _xt.size(); i++)
- delete _xt[i];
-}
-
-
-void
-Metrics::set_font_name(PermString n)
-{
- assert(!_font_name);
- _font_name = n;
-}
-
-
-void
-Metrics::reserve_glyphs(int amt)
-{
- if (amt <= _wdv.size()) return;
- _wdv.resize(amt, UNKDOUBLE);
- _lfv.resize(amt, UNKDOUBLE);
- _rtv.resize(amt, UNKDOUBLE);
- _tpv.resize(amt, UNKDOUBLE);
- _btv.resize(amt, UNKDOUBLE);
- _encoding.reserve_glyphs(amt);
- _pairp.reserve_glyphs(amt);
- for (int i = 1; i < _xt.size(); i++)
- _xt[i]->reserve_glyphs(amt);
-}
-
-
-GlyphIndex
-Metrics::add_glyph(PermString n)
-{
- if (nglyphs() >= _wdv.size())
- reserve_glyphs(nglyphs() ? nglyphs() * 2 : 64);
- GlyphIndex gi = _names.size();
- _names.push_back(n);
- _name_map.insert(n, gi);
- return gi;
-}
-
-
-static void
-set_dimen(Vector<double> &dest, const Vector<double> &src, double scale,
- bool increment)
-{
- int c = src.size();
- if (increment)
- for (int i = 0; i < c; i++)
- dest.at_u(i) += src.at_u(i) * scale;
- else if (scale < 0.9999 || scale > 1.0001)
- for (int i = 0; i < c; i++)
- dest.at_u(i) = src.at_u(i) * scale;
- else
- dest = src;
-}
-
-void
-Metrics::interpolate_dimens(const Metrics &m, double scale, bool increment)
-{
- set_dimen(_fdv, m._fdv, scale, increment);
- set_dimen(_wdv, m._wdv, scale, increment);
- set_dimen(_lfv, m._lfv, scale, increment);
- set_dimen(_rtv, m._rtv, scale, increment);
- set_dimen(_tpv, m._tpv, scale, increment);
- set_dimen(_btv, m._btv, scale, increment);
- set_dimen(_kernv, m._kernv, scale, increment);
-}
-
-
-void
-Metrics::add_xt(MetricsXt *mxt)
-{
- int n = _xt.size();
- _xt.push_back(mxt);
- _xt_map.insert(mxt->kind(), n);
- if (_wdv.size() > 0)
- mxt->reserve_glyphs(_wdv.size());
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
deleted file mode 100644
index 67eb7e72856..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otf.cc
+++ /dev/null
@@ -1,1491 +0,0 @@
-// -*- related-file-name: "../include/efont/otf.hh" -*-
-
-/* otf.{cc,hh} -- OpenType font basics
- *
- * Copyright (c) 2002-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otf.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-#include <efont/otfdata.hh> // for ntohl()
-#include <efont/otfname.hh>
-#include <efont/ttfhead.hh>
-
-namespace Efont { namespace OpenType {
-
-Vector<PermString> debug_glyph_names;
-
-Font::Font(const String& s, ErrorHandler* errh)
- : _str(s), _units_per_em(0) {
- _str.align(4);
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
-}
-
-int
-Font::parse_header(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // Fixed sfnt version
- // USHORT numTables
- // USHORT searchRange
- // USHORT entrySelector
- // USHORT rangeShift
- int len = length();
- const uint8_t *data = this->data();
- if (HEADER_SIZE > len)
- return errh->error("OTF file corrupted (too small)"), -EFAULT;
- if ((data[0] != 'O' || data[1] != 'T' || data[2] != 'T' || data[3] != 'O')
- && (data[0] != '\000' || data[1] != '\001'))
- return errh->error("not an OpenType font (bad magic number)"), -ERANGE;
- int ntables = Data::u16_aligned(data + 4);
- if (ntables == 0)
- return errh->error("OTF contains no tables"), -EINVAL;
- if (HEADER_SIZE + TABLE_DIR_ENTRY_SIZE * ntables > len)
- return errh->error("OTF table directory out of range"), -EFAULT;
-
- // TABLE DIRECTORY ENTRY FORMAT:
- // ULONG tag
- // ULONG checksum
- // ULONG offset
- // ULONG length
- uint32_t last_tag = 0U;
- for (int i = 0; i < ntables; i++) {
- int loc = HEADER_SIZE + TABLE_DIR_ENTRY_SIZE * i;
- uint32_t tag = Data::u32_aligned(data + loc);
- uint32_t offset = Data::u32_aligned(data + loc + 8);
- uint32_t length = Data::u32_aligned(data + loc + 12);
- if (tag <= last_tag)
- return errh->error("tags out of order"), -EINVAL;
- if (offset + length > (uint32_t) len)
- return errh->error("OTF data for %<%s%> out of range", Tag(tag).text().c_str()), -EFAULT;
- if (Tag::head_tag() == tag) {
- Head head(_str.substring(offset, length));
- _units_per_em = head.units_per_em();
- }
- last_tag = tag;
- }
-
- return 0;
-}
-
-bool
-Font::check_checksums(ErrorHandler *errh) const
-{
- if (error() < 0)
- return false;
- int nt = ntables();
- bool ok = true;
- for (int i = 0; i < nt; i++) {
- const uint8_t *entry = data() + HEADER_SIZE + TABLE_DIR_ENTRY_SIZE * i;
- String tbl = _str.substring(Data::u32_aligned(entry + 8),
- Data::u32_aligned(entry + 12));
- uint32_t sum = checksum(tbl);
- if (Data::u32_aligned(entry) == 0x68656164 // 'head'
- && tbl.length() >= 12)
- sum -= Data::u32_aligned(tbl.udata() + 8);
- if (sum != Data::u32_aligned(entry + 4)) {
- if (errh)
- errh->error("table %<%s%> checksum error: %x vs. %x", Tag(Data::u32_aligned(entry)).text().c_str(), sum, Data::u32_aligned(entry + 4));
- ok = false;
- }
- }
- return ok;
-}
-
-int
-Font::ntables() const
-{
- if (error() < 0)
- return 0;
- else
- return Data::u16_aligned(data() + 4);
-}
-
-String
-Font::table(Tag tag) const
-{
- if (error() < 0)
- return String();
- const uint8_t *entry = tag.table_entry(data() + HEADER_SIZE, Data::u16_aligned(data() + 4), TABLE_DIR_ENTRY_SIZE);
- if (entry)
- return _str.substring(Data::u32_aligned(entry + 8), Data::u32_aligned(entry + 12));
- else
- return String();
-}
-
-bool
-Font::has_table(Tag tag) const
-{
- const uint8_t *entry = 0;
- if (error() >= 0)
- entry = tag.table_entry(data() + HEADER_SIZE, Data::u16_aligned(data() + 4), TABLE_DIR_ENTRY_SIZE);
- return entry != 0;
-}
-
-uint32_t
-Font::table_checksum(Tag tag) const
-{
- if (error() < 0)
- return 0;
- const uint8_t *entry = tag.table_entry(data() + HEADER_SIZE, Data::u16_aligned(data() + 4), TABLE_DIR_ENTRY_SIZE);
- if (entry)
- return Data::u32_aligned(entry + 4);
- else
- return 0;
-}
-
-Tag
-Font::table_tag(int i) const
-{
- if (error() < 0 || i < 0 || i >= ntables())
- return Tag();
- else
- return Tag(Data::u32_aligned(data() + HEADER_SIZE + TABLE_DIR_ENTRY_SIZE * i));
-}
-
-uint32_t
-Font::checksum(const uint8_t *begin, const uint8_t *end)
-{
- uint32_t sum = 0;
- if (reinterpret_cast<uintptr_t>(begin) % 4)
- for (; begin + 3 < end; begin += 4)
- sum += Data::u32(begin);
- else
- for (; begin + 3 < end; begin += 4)
- sum += Data::u32_aligned(begin);
- uint32_t leftover = 0;
- for (int i = 0; i < 4; i++)
- leftover = (leftover << 8) + (begin < end ? *begin++ : 0);
- return sum + leftover;
-}
-
-uint32_t
-Font::checksum(const String &s)
-{
- return checksum(reinterpret_cast<const uint8_t *>(s.begin()), reinterpret_cast<const uint8_t *>(s.end()));
-}
-
-namespace {
-class TagCompar { public:
- TagCompar(const Vector<Tag> &tags) : _tags(tags) { }
- bool operator()(int a, int b) { return _tags[a] < _tags[b]; }
- const Vector<Tag> &_tags;
-};
-}
-
-Font
-Font::make(bool truetype, const Vector<Tag>& tags, const Vector<String>& data)
-{
- StringAccum sa;
-
- // create offset table
- {
- union {
- uint8_t c[HEADER_SIZE];
- uint16_t s[HEADER_SIZE / 2];
- uint32_t l[HEADER_SIZE / 4];
- } hdr;
- hdr.l[0] = (truetype ? htonl(0x00010000) : htonl(0x4F54544F));
- hdr.s[2] = htons(tags.size());
- int entrySelector;
- for (entrySelector = 0; (2 << entrySelector) <= tags.size(); entrySelector++)
- /* nada */;
- hdr.s[3] = htons((1 << entrySelector) * 16);
- hdr.s[4] = htons(entrySelector);
- hdr.s[5] = htons((tags.size() - (1 << entrySelector)) * 16);
- sa.append(&hdr.c[0], HEADER_SIZE);
- }
-
- // sort tags
- Vector<int> permut;
- for (int i = 0; i < tags.size(); i++)
- permut.push_back(i);
- std::sort(permut.begin(), permut.end(), TagCompar(tags));
-
- // table listing
- uint32_t offset = HEADER_SIZE + TABLE_DIR_ENTRY_SIZE * tags.size();
- for (int *tp = permut.begin(); tp < permut.end(); tp++) {
- union {
- uint8_t c[TABLE_DIR_ENTRY_SIZE];
- uint32_t l[TABLE_DIR_ENTRY_SIZE / 4];
- } tdir;
- tdir.l[0] = htonl(tags[*tp].value());
-
- // discount current checksum adjustment in head table
- uint32_t sum = checksum(data[*tp]);
- if (tags[*tp] == Tag("head") && data[*tp].length() >= 12)
- sum -= Data::u32(data[*tp].udata() + 8);
- tdir.l[1] = htonl(sum);
-
- tdir.l[2] = htonl(offset);
- tdir.l[3] = htonl(data[*tp].length());
- sa.append(&tdir.c[0], TABLE_DIR_ENTRY_SIZE);
- offset += (data[*tp].length() + 3) & ~3;
- }
-
- // actual tables
- for (int *tp = permut.begin(); tp < permut.end(); tp++) {
- sa << data[*tp];
- while (sa.length() % 4)
- sa << '\0';
- }
-
- // fix 'head' table
- for (int i = 0; i < tags.size(); i++) {
- unsigned char *thdr = sa.udata() + HEADER_SIZE + TABLE_DIR_ENTRY_SIZE * i;
- if (Data::u32(thdr) == 0x68656164 && Data::u32(thdr + 12) >= 12) {
- uint32_t offset = Data::u32(thdr + 8);
- char *head = sa.data() + offset;
- memset(head + 8, '\0', 4);
- uint32_t allsum = checksum(reinterpret_cast<uint8_t *>(sa.data()), reinterpret_cast<uint8_t *>(sa.data() + sa.length()));
- uint32_t *adj = reinterpret_cast<uint32_t *>(head + 8);
- *adj = htonl(0xB1B0AFBA - allsum);
- }
- }
-
- return Font(sa.take_string());
-}
-
-
-/**************************
- * Tag *
- * *
- **************************/
-
-Tag::Tag(const char *s)
- : _tag(0)
-{
- if (!s)
- s = "";
- for (int i = 0; i < 4; i++)
- if (*s == 0)
- _tag = (_tag << 8) | 0x20;
- else if (*s < 32 || *s > 126) { // don't care if s is signed
- _tag = 0;
- return;
- } else
- _tag = (_tag << 8) | *s++;
- if (*s)
- _tag = 0;
-}
-
-Tag::Tag(const String &s)
- : _tag(0)
-{
- if (s.length() <= 4) {
- const char *ss = s.data();
- for (int i = 0; i < s.length(); i++, ss++)
- if (*ss < 32 || *ss > 126) {
- _tag = 0;
- return;
- } else
- _tag = (_tag << 8) | *ss;
- for (int i = s.length(); i < 4; i++)
- _tag = (_tag << 8) | 0x20;
- }
-}
-
-bool
-Tag::valid() const
-{
- uint32_t tag = _tag;
- for (int i = 0; i < 4; i++, tag >>= 8)
- if ((tag & 255) < 32 || (tag & 255) > 126)
- return false;
- return true;
-}
-
-String
-Tag::text() const
-{
- StringAccum sa;
- uint32_t tag = _tag;
- for (int i = 0; i < 4; i++, tag = (tag << 8) | 0x20)
- if (tag != 0x20202020) {
- uint8_t c = (tag >> 24) & 255;
- if (c < 32 || c > 126)
- sa.snprintf(6, "\\%03o", c);
- else
- sa << c;
- }
- return sa.take_string();
-}
-
-String
-Tag::langsys_text(Tag script, Tag langsys)
-{
- if (!langsys.null())
- return script.text() + "." + langsys.text();
- else
- return script.text();
-}
-
-const uint8_t *
-Tag::table_entry(const uint8_t *table, int n, int entry_size) const
-{
- assert(((uintptr_t)table & 1) == 0);
- int l = 0, r = n;
- while (l < r) {
- int m = l + (r - l) / 2;
- const uint8_t *entry = table + m * entry_size;
- uint32_t m_tag = Data::u32_aligned16(entry);
- if (_tag < m_tag)
- r = m;
- else if (_tag == m_tag)
- return entry;
- else
- l = m + 1;
- }
- return 0;
-}
-
-
-
-/**************************
- * ScriptList *
- * *
- **************************/
-
-int
-ScriptList::assign(const String &str, ErrorHandler *errh)
-{
- _str = str;
- _str.align(4);
- int result = check_header(errh ? errh : ErrorHandler::silent_handler());
- if (result < 0)
- _str = String();
- return result;
-}
-
-int
-ScriptList::check_header(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // USHORT scriptCount
- // 6bytes scriptRecord[]
- int scriptCount;
- if (_str.length() < SCRIPTLIST_HEADERSIZE
- || (scriptCount = Data::u16_aligned(_str.udata()),
- _str.length() < SCRIPTLIST_HEADERSIZE + scriptCount*SCRIPT_RECSIZE))
- return errh->error("OTF ScriptList too short");
-
- // XXX check that scripts are sorted
-
- return 0;
-}
-
-int
-ScriptList::script_offset(Tag script) const
-{
- if (_str.length() == 0)
- return -1;
- const uint8_t *data = _str.udata();
- if (const uint8_t *entry = script.table_entry(data + SCRIPTLIST_HEADERSIZE, Data::u16_aligned(data), SCRIPT_RECSIZE))
- return Data::u16_aligned(entry + 4);
- else
- return 0;
-}
-
-int
-ScriptList::check_script(Tag tag, int script_off, ErrorHandler *errh) const
-{
- const uint8_t *data = _str.udata();
- int langSysCount;
- if (_str.length() < script_off + SCRIPT_HEADERSIZE
- || (langSysCount = Data::u16_aligned(data + script_off + 2),
- (_str.length() < script_off + SCRIPT_HEADERSIZE + langSysCount*LANGSYS_RECSIZE)))
- return (errh ? errh->error("OTF Script table for %<%s%> out of range", tag.text().c_str()) : -1);
- // XXX check that langsys are sorted
- return 0;
-}
-
-int
-ScriptList::langsys_offset(Tag script, Tag langsys, ErrorHandler *errh) const
-{
- int script_off = script_offset(script);
- if (script_off == 0) {
- script = Tag("DFLT");
- script_off = script_offset(script);
- }
- if (script_off <= 0)
- return script_off;
-
- // check script bounds
- if (check_script(script, script_off, errh) < 0)
- return -1;
-
- // search script table
- const uint8_t *data = _str.udata();
- int langSysCount = Data::u16_aligned(data + script_off + 2);
- if (const uint8_t *entry = langsys.table_entry(data + script_off + SCRIPT_HEADERSIZE, langSysCount, LANGSYS_RECSIZE))
- return script_off + Data::u16_aligned(entry + 4);
-
- // return default
- int defaultLangSys = Data::u16_aligned(data + script_off);
- if (defaultLangSys != 0)
- return script_off + defaultLangSys;
- else
- return 0;
-}
-
-int
-ScriptList::language_systems(Vector<Tag> &script, Vector<Tag> &langsys, ErrorHandler *errh) const
-{
- script.clear();
- langsys.clear();
-
- const uint8_t *data = _str.udata();
- int nscripts = Data::u16_aligned(data);
- for (int i = 0; i < nscripts; i++) {
- Tag script_tag(Data::u32_aligned16(data + SCRIPTLIST_HEADERSIZE + i*SCRIPT_RECSIZE));
- int script_off = Data::u16_aligned(data + SCRIPTLIST_HEADERSIZE + i*SCRIPT_RECSIZE + 4);
- if (check_script(script_tag, script_off, errh) < 0)
- return -1;
- const uint8_t *script_table = data + script_off;
- if (Data::u16_aligned(script_table) != 0) // default LangSys
- script.push_back(script_tag), langsys.push_back(Tag());
- int nlangsys = Data::u16_aligned(script_table + 2);
- for (int j = 0; j < nlangsys; j++) {
- Tag langsys_tag(Data::u32_aligned16(script_table + SCRIPT_HEADERSIZE + j*LANGSYS_RECSIZE));
- script.push_back(script_tag), langsys.push_back(langsys_tag);
- }
- }
-
- return 0;
-}
-
-int
-ScriptList::features(Tag script, Tag langsys, int &required_fid, Vector<int> &fids, ErrorHandler *errh, bool clear_fids) const
-{
- required_fid = -1;
- if (clear_fids)
- fids.clear();
-
- int offset = langsys_offset(script, langsys);
- if (offset <= 0)
- return offset;
-
- // check langsys bounds
- const uint8_t *data = _str.udata();
- int featureCount;
- if (_str.length() < offset + LANGSYS_HEADERSIZE
- || (featureCount = Data::u16_aligned(data + offset + 4),
- (_str.length() < offset + LANGSYS_HEADERSIZE + featureCount*FEATURE_RECSIZE)))
- return (errh ? errh->error("OTF LangSys table for %<%s/%s%> out of range", script.text().c_str(), langsys.text().c_str()) : -1);
-
- // search langsys table
- int f = Data::u16_aligned(data + offset + 2);
- if (f != 0xFFFF)
- required_fid = f;
- data += offset + 6;
- for (int i = 0; i < featureCount; i++, data += FEATURE_RECSIZE)
- fids.push_back(Data::u16_aligned(data));
-
- return 0;
-}
-
-
-
-/**************************
- * FeatureList *
- * *
- **************************/
-
-int
-FeatureList::assign(const String &str, ErrorHandler *errh)
-{
- _str = str;
- _str.align(2);
- int result = check_header(errh ? errh : ErrorHandler::silent_handler());
- if (result < 0)
- _str = String();
- return result;
-}
-
-int
-FeatureList::check_header(ErrorHandler *errh)
-{
- int featureCount;
- if (_str.length() < FEATURELIST_HEADERSIZE
- || (featureCount = Data::u16_aligned(_str.udata()),
- _str.length() < FEATURELIST_HEADERSIZE + featureCount*FEATURE_RECSIZE))
- return errh->error("OTF FeatureList too short");
- return 0;
-}
-
-Tag
-FeatureList::tag(int fid) const
-{
- if (_str.length() == 0)
- return Tag();
- const uint8_t *data = _str.udata();
- int nfeatures = Data::u16_aligned(data);
- if (fid >= 0 && fid < nfeatures)
- return Tag(Data::u32_aligned16(data + FEATURELIST_HEADERSIZE + fid*FEATURE_RECSIZE));
- else
- return Tag();
-}
-
-String
-FeatureList::params(int fid, int length, ErrorHandler *errh, bool old_style_offset) const
-{
- if (_str.length() == 0 || length < 0)
- return String();
- if (errh == 0)
- errh = ErrorHandler::silent_handler();
-
- const uint8_t *data = _str.udata();
- int len = _str.length();
- int nfeatures = Data::u16_aligned(data);
- if (fid < 0 || fid >= nfeatures)
- return errh->error("OTF feature ID %<%d%> out of range", fid), String();
- int foff = Data::u16_aligned(data + FEATURELIST_HEADERSIZE + fid*FEATURE_RECSIZE + 4);
- if (len < foff + FEATURE_HEADERSIZE)
- return errh->error("OTF LookupList for feature ID %<%d%> too short", fid), String();
- int poff = Data::u16_aligned(data + foff);
- if (poff == 0)
- return String();
- if (!old_style_offset)
- poff += foff;
- if (len < poff + length)
- return errh->error("OTF feature parameters for feature ID %<%d%> out of range", fid), String();
- else
- return _str.substring(poff, length);
-}
-
-String
-FeatureList::size_params(int fid, const Name &name, ErrorHandler *errh) const
-{
- // implement 'size' checks from Read Roberts
- for (int i = 0; i < 2; i++) {
- String s = params(fid, 10, errh, i != 0);
- const uint8_t *data = s.udata();
- // errh->message("trying %d %d %d %d %d\n", Data::u16_aligned(data), Data::u16_aligned(data + 2), Data::u16_aligned(data + 4), Data::u16_aligned(data + 6), Data::u16_aligned(data + 8));
- if (Data::u16_aligned(data) == 0) // design size == 0
- continue;
- if (Data::u16_aligned(data + 2) == 0 // subfamily ID == 0
- && Data::u16_aligned(data + 6) == 0 // range start == 0
- && Data::u16_aligned(data + 8) == 0 // range end == 0
- && Data::u16_aligned(data + 4) == 0) // menu name ID == 0
- return s;
- if (Data::u16_aligned(data + 6) >= Data::u16_aligned(data + 8) // range start >= range end
- || Data::u16_aligned(data + 4) < 256 // menu name ID < 256
- || Data::u16_aligned(data + 4) > 32767 // menu name ID > 32767
- || !name.english_name(Data::u16_aligned(data + 4))) // menu name ID is a name ID defined by the font
- continue;
- if (Data::u16_aligned(data) + 1 >= Data::u16_aligned(data + 6) // design size >= range start (with 1 dp grace)
- && Data::u16_aligned(data) <= Data::u16_aligned(data + 8) + 1) // design size <= range end (with 1 dp grace)
- return s;
- else if (i == 1 // old-style feature
- && Data::u16_aligned(data + 8) <= 1440 // range end <= 144 point
- && Data::u16_aligned(data) <= 1440) { // design size <= 144 point
- // some old fonts define a bogus feature with design size
- // not in range (John Owens, Read Roberts)
- if (errh)
- errh->warning("invalid 'size' feature: design size not in range");
- return s;
- }
- }
- if (errh)
- errh->error("no valid 'size' feature data in the 'size' feature");
- return String();
-}
-
-int
-FeatureList::find(Tag tag, const Vector<int> &fids) const
-{
- if (fids.size() == 0 || _str.length() == 0)
- return -1;
-
- const uint8_t *data = _str.udata();
- int nfeatures = Data::u16_aligned(data);
- for (const int *fidp = fids.begin(); fidp != fids.end(); fidp++)
- if (*fidp >= 0 && *fidp < nfeatures) {
- uint32_t ftag = Data::u32_aligned16(data + FEATURELIST_HEADERSIZE + (*fidp)*FEATURE_RECSIZE);
- if (ftag == tag.value())
- return *fidp;
- }
-
- return -1;
-}
-
-void
-FeatureList::filter(Vector<int> &fids, const Vector<Tag> &sorted_ftags) const
-{
- if (_str.length() == 0)
- fids.clear();
- else {
- std::sort(fids.begin(), fids.end()); // sort fids
-
- int i = 0, j = 0;
- while (i < fids.size() && fids[i] < 0)
- fids[i++] = 0x7FFFFFFF;
-
- // XXX check that feature list is in alphabetical order
-
- const uint8_t *data = _str.udata();
- int nfeatures = Data::u16_aligned(data);
- while (i < fids.size() && j < sorted_ftags.size() && fids[i] < nfeatures) {
- uint32_t ftag = Data::u32_aligned16(data + FEATURELIST_HEADERSIZE + fids[i]*FEATURE_RECSIZE);
- if (ftag < sorted_ftags[j].value()) { // not an interesting feature
- // replace featureID with a large number, remove later
- fids[i] = 0x7FFFFFFF;
- i++;
- } else if (ftag == sorted_ftags[j].value()) // interesting feature
- i++;
- else // an interesting feature is not available
- j++;
- }
-
- fids.resize(i); // remove remaining uninteresting features
- std::sort(fids.begin(), fids.end()); // resort, to move bad ones last
- while (fids.size() && fids.back() == 0x7FFFFFFF)
- fids.pop_back();
- }
-}
-
-int
-FeatureList::lookups(int fid, Vector<int> &results, ErrorHandler *errh, bool clear_results) const
-{
- if (clear_results)
- results.clear();
- if (_str.length() == 0)
- return -1;
- if (errh == 0)
- errh = ErrorHandler::silent_handler();
-
- const uint8_t *data = _str.udata();
- int len = _str.length();
- int nfeatures = Data::u16_aligned(data);
- if (fid < 0 || fid >= nfeatures)
- return errh->error("OTF feature ID %<%d%> out of range", fid);
- int foff = Data::u16_aligned(data + FEATURELIST_HEADERSIZE + fid*FEATURE_RECSIZE + 4);
- int lookupCount;
- if (len < foff + FEATURE_HEADERSIZE
- || (lookupCount = Data::u16_aligned(data + foff + 2),
- len < foff + FEATURE_HEADERSIZE + lookupCount*LOOKUPLIST_RECSIZE))
- return errh->error("OTF LookupList for feature ID %<%d%> too short", fid);
- const uint8_t *ldata = data + foff + FEATURE_HEADERSIZE;
- for (int j = 0; j < lookupCount; j++, ldata += LOOKUPLIST_RECSIZE)
- results.push_back(Data::u16_aligned(ldata));
-
- return 0;
-}
-
-int
-FeatureList::lookups(const Vector<int> &fids, Vector<int> &results, ErrorHandler *errh) const
-{
- results.clear();
- if (_str.length() == 0)
- return -1;
-
- for (int i = 0; i < fids.size(); i++)
- if (lookups(fids[i], results, errh, false) < 0)
- return -1;
-
- // sort results and remove duplicates
- std::sort(results.begin(), results.end());
- int *unique_result = std::unique(results.begin(), results.end());
- results.resize(unique_result - results.begin());
- return 0;
-}
-
-int
-FeatureList::lookups(const Vector<int> &required_fids, const Vector<int> &fids, const Vector<Tag> &sorted_ftags, Vector<int> &results, ErrorHandler *errh) const
-{
- Vector<int> fidsx(fids);
- filter(fidsx, sorted_ftags);
- for (int i = 0; i < required_fids.size(); i++)
- fidsx.push_back(required_fids[i]);
- return lookups(fidsx, results, errh);
-}
-
-int
-FeatureList::lookups(int required_fid, const Vector<int> &fids, const Vector<Tag> &sorted_ftags, Vector<int> &results, ErrorHandler *errh) const
-{
- Vector<int> fidsx(fids);
- filter(fidsx, sorted_ftags);
- if (required_fid >= 0)
- fidsx.push_back(required_fid);
- return lookups(fidsx, results, errh);
-}
-
-int
-FeatureList::lookups(const ScriptList &script_list, Tag script, Tag langsys, const Vector<Tag> &sorted_ftags, Vector<int> &results, ErrorHandler *errh) const
-{
- int required_fid;
- Vector<int> fids;
- int result = script_list.features(script, langsys, required_fid, fids, errh);
- if (result >= 0) {
- filter(fids, sorted_ftags);
- if (required_fid >= 0)
- fids.push_back(required_fid);
- result = lookups(fids, results, errh);
- }
- return result;
-}
-
-
-/**************************
- * Coverage *
- * *
- **************************/
-
-Coverage::Coverage() noexcept
-{
-}
-
-Coverage::Coverage(Glyph first, Glyph last) noexcept
-{
- if (first <= last) {
- _str = String("\000\002\000\001\000\000\000\000\000\000", 10);
- uint8_t *data = _str.mutable_udata();
- data[4] = first >> 8;
- data[5] = first & 255;
- data[6] = last >> 8;
- data[7] = last & 255;
- _str.align(2);
- }
-}
-
-Coverage::Coverage(const Vector<bool> &gmap) noexcept
-{
- int end = gmap.size();
- while (end > 0 && !gmap[end - 1])
- --end;
- if (end > 0) {
- _str = String::make_uninitialized(8 + end);
- _str.align(4);
- uint8_t *data = _str.mutable_udata();
- memset(data, 0, 8 + end);
- data[1] = 3;
-
- uint32_t n = 0;
- const bool *it = gmap.begin();
- data += 8;
- for (int i = 0; i < end; ++i, ++it, ++data)
- if (*it) {
- *data = 1;
- ++n;
- }
-
- n = htonl(n);
- memcpy(_str.mutable_udata() + 4, &n, 4);
- }
-}
-
-Coverage::Coverage(const String &str, ErrorHandler *errh, bool do_check) noexcept
- : _str(str)
-{
- _str.align(2);
- if (do_check) {
- if (check(errh ? errh : ErrorHandler::silent_handler()) < 0)
- _str = String();
- } else { // check()'s shorten-string side effect
- const uint8_t *data = _str.udata();
- int count = Data::u16_aligned(data + 2);
- if (data[1] == T_LIST)
- _str = _str.substring(0, HEADERSIZE + count*LIST_RECSIZE);
- else
- _str = _str.substring(0, HEADERSIZE + count*RANGES_RECSIZE);
- }
-}
-
-int
-Coverage::check(ErrorHandler *errh)
- // side effect: shorten string to cover coverage
-{
- // HEADER FORMAT:
- // USHORT coverageFormat
- // USHORT glyphCount
- const uint8_t *data = _str.udata();
- if (_str.length() < HEADERSIZE)
- return errh->error("OTF coverage table too small");
- int coverageFormat = Data::u16_aligned(data);
- int count = Data::u16_aligned(data + 2);
-
- int len;
- switch (coverageFormat) {
- case T_LIST:
- len = HEADERSIZE + count*LIST_RECSIZE;
- if (_str.length() < len)
- return errh->error("OTF coverage table too short (format 1)");
- // XXX don't check sorting
- break;
- case T_RANGES:
- len = HEADERSIZE + count*RANGES_RECSIZE;
- if (_str.length() < len)
- return errh->error("OTF coverage table too short (format 2)");
- // XXX don't check sorting
- // XXX don't check startCoverageIndexes
- break;
- default:
- return errh->error("OTF coverage table has unknown format %d", coverageFormat);
- }
-
- _str = _str.substring(0, len);
- return 0;
-}
-
-int
-Coverage::size() const noexcept
-{
- if (_str.length() == 0)
- return -1;
- const uint8_t *data = _str.udata();
- if (data[1] == T_LIST)
- return (_str.length() - HEADERSIZE) / LIST_RECSIZE;
- else if (data[1] == T_RANGES) {
- data += _str.length() - RANGES_RECSIZE;
- return Data::u16_aligned(data + 4) + Data::u16_aligned(data + 2) - Data::u16_aligned(data) + 1;
- } else if (data[1] == T_X_BYTEMAP)
- return Data::u32_aligned(data + 4);
- else
- return -1;
-}
-
-int
-Coverage::coverage_index(Glyph g) const noexcept
-{
- if (_str.length() == 0)
- return -1;
-
- const uint8_t *data = _str.udata();
- int count = Data::u16_aligned(data + 2);
- if (data[1] == T_LIST) {
- int l = 0, r = count;
- data += HEADERSIZE;
- while (l < r) {
- int m = l + (r - l) / 2;
- int mval = Data::u16_aligned(data + m * LIST_RECSIZE);
- if (g < mval)
- r = m;
- else if (g == mval)
- return m;
- else
- l = m + 1;
- }
- return -1;
- } else if (data[1] == T_RANGES) {
- int l = 0, r = count;
- data += HEADERSIZE;
- while (l < r) {
- int m = l + (r - l) / 2;
- const uint8_t *rec = data + m * RANGES_RECSIZE;
- if (g < Data::u16_aligned(rec))
- r = m;
- else if (g <= Data::u16_aligned(rec + 2))
- return Data::u16_aligned(rec + 4) + g - Data::u16_aligned(rec);
- else
- l = m + 1;
- }
- return -1;
- } else if (data[1] == T_X_BYTEMAP) {
- if (g >= 0 && g < _str.length() - 8 && data[8 + g])
- return g;
- else
- return -1;
- } else
- return -1;
-}
-
-Glyph
-Coverage::operator[](int cindex) const noexcept
-{
- if (_str.length() == 0 || cindex < 0)
- return 0;
-
- const uint8_t *data = _str.udata();
- int count = Data::u16_aligned(data + 2);
- if (data[1] == T_LIST)
- return (cindex < count ? Data::u16_aligned(data + cindex * LIST_RECSIZE) : 0);
- else if (data[1] == T_RANGES) {
- int l = 0, r = count;
- data += HEADERSIZE;
- while (l < r) {
- int m = l + (r - l) / 2;
- const uint8_t *rec = data + m * RANGES_RECSIZE;
- int start_cindex = Data::u16_aligned(rec + 4);
- if (cindex < start_cindex)
- r = m;
- else if (cindex < start_cindex + Data::u16_aligned(rec + 2) - Data::u16_aligned(rec))
- return Data::u16_aligned(rec) + cindex - start_cindex;
- else
- l = m + 1;
- }
- return 0;
- } else
- return 0;
-}
-
-void
-Coverage::unparse(StringAccum &sa) const noexcept
-{
- const uint8_t *data = _str.udata();
- if (_str.length() == 0)
- sa << "@*#!";
- else if (data[1] == T_LIST) {
- int count = Data::u16_aligned(data + 2);
- for (int i = 0; i < count; i++) {
- if (i) sa << ',';
- sa << Data::u16_aligned(data + HEADERSIZE + i*LIST_RECSIZE);
- }
- } else {
- for (int pos = HEADERSIZE; pos < _str.length(); pos += RANGES_RECSIZE) {
- Glyph start = Data::u16_aligned(data + pos);
- Glyph end = Data::u16_aligned(data + pos + 2);
- if (pos > HEADERSIZE) sa << ',';
- sa << start;
- if (end != start) sa << '.' << '.' << end;
- }
- }
-}
-
-String
-Coverage::unparse() const noexcept
-{
- StringAccum sa;
- unparse(sa);
- return sa.take_string();
-}
-
-Coverage
-operator&(const Coverage &a, const Coverage &b)
-{
- StringAccum sa;
- sa << '\000' << '\001' << '\000' << '\000';
-
- if (b.has_fast_covers()) {
- for (Coverage::iterator ai = a.begin(); ai; ++ai)
- if (b.covers(*ai)) {
- uint16_t x = *ai;
- sa << (char)(x >> 8) << (char)(x & 0xFF);
- }
-
- } else {
- Coverage::iterator ai = a.begin(), bi = b.begin();
- while (ai && bi) {
- if (*ai < *bi)
- ai.forward_to(*bi);
- else if (*ai == *bi) {
- uint16_t x = *ai;
- sa << (char)(x >> 8) << (char)(x & 0xFF);
- ai++, bi++;
- } else
- bi.forward_to(*ai);
- }
- }
-
- int n = (sa.length() - 4) / 2;
- sa[2] = (n >> 8);
- sa[3] = (n & 0xFF);
- return Coverage(sa.take_string(), 0, false);
-}
-
-bool
-operator<=(const Coverage &a, const Coverage &b)
-{
- Coverage::iterator ai = a.begin(), bi = b.begin();
- while (ai && bi) {
- if (*ai != *bi && !bi.forward_to(*ai))
- return false;
- ai++, bi++;
- }
- return bi || !ai;
-}
-
-
-/************************
- * Coverage::iterator *
- * *
- ************************/
-
-Coverage::iterator::iterator(const String &str, bool is_end)
- : _str(str), _value(0)
-{
- // XXX assume _str has been checked
- if (!_str.length()) {
- _pos = 0;
- return;
- }
-
- // shrink _str to fit the coverage table
- const uint8_t *data = _str.udata();
- int n = Data::u16_aligned(data + 2);
- switch (Data::u16_aligned(data)) {
- case T_LIST:
- _str = _str.substring(0, HEADERSIZE + n*LIST_RECSIZE);
- normal_pos_setting:
- _pos = is_end ? _str.length() : HEADERSIZE;
- _value = _pos >= _str.length() ? 0 : Data::u16_aligned(data + _pos);
- break;
- case T_RANGES:
- _str = _str.substring(0, HEADERSIZE + n*RANGES_RECSIZE);
- goto normal_pos_setting;
- case T_X_BYTEMAP:
- for (_pos = 8; _pos < _str.length() && !data[_pos]; ++_pos)
- /* do nothing */;
- _value = _pos >= _str.length() ? 0 : _pos - 8;
- break;
- default:
- _str = String();
- _pos = 0;
- _value = 0;
- break;
- }
-}
-
-int
-Coverage::iterator::coverage_index() const
-{
- const uint8_t *data = _str.udata();
- assert(_pos < _str.length());
- if (data[1] == T_LIST)
- return (_pos - HEADERSIZE) / LIST_RECSIZE;
- else if (data[1] == T_RANGES)
- return Data::u16_aligned(data + _pos + 4) + _value - Data::u16_aligned(data + _pos);
- else
- return _pos - 8;
-}
-
-void
-Coverage::iterator::operator++(int)
-{
- const uint8_t *data = _str.udata();
- int len = _str.length();
- if (_pos >= len
- || (data[1] == T_RANGES && ++_value <= Data::u16_aligned(data + _pos + 2)))
- return;
- switch (data[1]) {
- case T_LIST:
- _pos += LIST_RECSIZE;
- normal_pos_setting:
- _value = _pos >= len ? 0 : Data::u16_aligned(data + _pos);
- break;
- case T_RANGES:
- _pos += RANGES_RECSIZE;
- goto normal_pos_setting;
- case T_X_BYTEMAP:
- for (++_pos; _pos < len && !data[_pos]; ++_pos)
- /* do nothing */;
- _value = _pos >= len ? 0 : _pos - 8;
- break;
- }
-}
-
-bool
-Coverage::iterator::forward_to(Glyph find)
-{
- // XXX really should check that this works
-
- if (find <= _value)
- return find == _value;
- else if (_pos >= _str.length())
- return false;
-
- const uint8_t *data = _str.udata();
- if (data[1] == T_LIST) {
- // check for "common" case: next element
- _pos += LIST_RECSIZE;
- if (_pos >= _str.length())
- return false;
- else if (find <= Data::u16_aligned(data + _pos)) {
- _value = Data::u16_aligned(data + _pos);
- return find == _value;
- }
-
- // otherwise, binary search over remaining area
- int l = ((_pos - HEADERSIZE) / LIST_RECSIZE) + 1;
- int r = (_str.length() - HEADERSIZE) / LIST_RECSIZE;
- data += HEADERSIZE;
- while (l < r) {
- int m = l + (r - l) / 2;
- Glyph g = Data::u16_aligned(data + m * LIST_RECSIZE);
- if (find < g)
- r = m;
- else if (find == g)
- l = r = m;
- else
- l = m + 1;
- }
- _pos = HEADERSIZE + l * LIST_RECSIZE;
- _value = (_pos >= _str.length() ? 0 : Data::u16_aligned(data - HEADERSIZE + _pos));
-
- } else if (data[1] == T_RANGES) {
- // check for "common" case: this or next element
- if (find <= Data::u16_aligned(data + _pos + 2)) {
- assert(find >= Data::u16_aligned(data + _pos));
- _value = find;
- return true;
- }
- _pos += RANGES_RECSIZE;
- if (_pos >= _str.length())
- return false;
- else if (find <= Data::u16_aligned(data + _pos + 2)) {
- _value = (find >= Data::u16_aligned(data + _pos) ? find : Data::u16_aligned(data + _pos));
- return find == _value;
- }
-
- // otherwise, binary search over remaining area
- int l = ((_pos - HEADERSIZE) / RANGES_RECSIZE) + 1;
- int r = (_str.length() - HEADERSIZE) / RANGES_RECSIZE;
- data += HEADERSIZE;
- while (l < r) {
- int m = l + (r - l) / 2;
- if (find < Data::u16_aligned(data + m * RANGES_RECSIZE))
- r = m;
- else if (find <= Data::u16_aligned(data + m * RANGES_RECSIZE + 2)) {
- _pos = HEADERSIZE + m * RANGES_RECSIZE;
- _value = find;
- return true;
- } else
- l = m + 1;
- }
- _pos = HEADERSIZE + l * LIST_RECSIZE;
- _value = (_pos >= _str.length() ? 0 : Data::u16_aligned(data - HEADERSIZE + _pos));
-
- } else if (data[1] == T_X_BYTEMAP) {
- _pos = 8 + find;
- while (_pos < _str.length() && !data[_pos])
- ++_pos;
- _pos = _pos >= _str.length() ? _str.length() : _pos;
- _value = _pos >= _str.length() ? 0 : _pos - 8;
- }
-
- return find == _value;
-}
-
-
-/**************************
- * GlyphSet *
- * *
- **************************/
-
-GlyphSet::GlyphSet()
-{
- memset(_v, 0, sizeof(_v));
-}
-
-GlyphSet::GlyphSet(const GlyphSet &o)
-{
- for (int i = 0; i < VLEN; i++)
- if (o._v[i]) {
- _v[i] = new uint32_t[VULEN];
- memcpy(_v[i], o._v[i], sizeof(uint32_t) * VULEN);
- } else
- _v[i] = 0;
-}
-
-GlyphSet::~GlyphSet()
-{
- for (int i = 0; i < VLEN; i++)
- delete[] _v[i];
-}
-
-int
-GlyphSet::change(Glyph g, bool value)
-{
- if ((unsigned)g > MAXGLYPH)
- return -1;
- uint32_t *&u = _v[g >> SHIFT];
- if (!u) {
- u = new uint32_t[VULEN];
- memset(u, 0, sizeof(uint32_t) * VULEN);
- }
- uint32_t mask = (1 << (g & 0x1F));
- if (value)
- u[(g & MASK) >> 5] |= mask;
- else
- u[(g & MASK) >> 5] &= ~mask;
- return 0;
-}
-
-GlyphSet &
-GlyphSet::operator=(const GlyphSet &o)
-{
- if (&o != this) {
- for (int i = 0; i < VLEN; i++)
- if (o._v[i]) {
- if (!_v[i])
- _v[i] = new uint32_t[VULEN];
- memcpy(_v[i], o._v[i], sizeof(uint32_t) * VULEN);
- } else if (_v[i])
- memset(_v[i], 0, sizeof(uint32_t) * VULEN);
- }
- return *this;
-}
-
-
-/**************************
- * ClassDef *
- * *
- **************************/
-
-ClassDef::ClassDef(const String &str, ErrorHandler *errh) noexcept
- : _str(str)
-{
- _str.align(2);
- if (check(errh ? errh : ErrorHandler::silent_handler()) < 0)
- _str = String();
-}
-
-int
-ClassDef::check(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // USHORT coverageFormat
- // USHORT glyphCount
- const uint8_t *data = _str.udata();
- if (_str.length() < 6) // NB: prevents empty format-2 tables
- return errh->error("OTF class def table too small");
- int classFormat = Data::u16_aligned(data);
-
- int len;
- if (classFormat == T_LIST) {
- int count = Data::u16_aligned(data + 4);
- len = LIST_HEADERSIZE + count*LIST_RECSIZE;
- // XXX don't check sorting
- } else if (classFormat == T_RANGES) {
- int count = Data::u16_aligned(data + 2);
- len = RANGES_HEADERSIZE + count*RANGES_RECSIZE;
- // XXX don't check sorting
- } else
- return errh->error("OTF class def table has unknown format %d", classFormat);
-
- if (len > _str.length())
- return errh->error("OTF class def table too short");
- else {
- _str = _str.substring(0, len);
- return 0;
- }
-}
-
-int
-ClassDef::lookup(Glyph g) const noexcept
-{
- if (_str.length() == 0)
- return -1;
-
- const uint8_t *data = _str.udata();
- int coverageFormat = Data::u16_aligned(data);
-
- if (coverageFormat == T_LIST) {
- Glyph start = Data::u16_aligned(data + 2);
- int count = Data::u16_aligned(data + 4);
- if (g < start || g >= start + count)
- return 0;
- else
- return Data::u16_aligned(data + LIST_HEADERSIZE + (g - start) * LIST_RECSIZE);
- } else if (coverageFormat == T_RANGES) {
- int l = 0, r = Data::u16_aligned(data + 2);
- data += RANGES_HEADERSIZE;
- while (l < r) {
- int m = l + (r - l) / 2;
- const uint8_t *rec = data + m * RANGES_RECSIZE;
- if (g < Data::u16_aligned(rec))
- r = m;
- else if (g <= Data::u16_aligned(rec + 2))
- return Data::u16_aligned(rec + 4);
- else
- l = m + 1;
- }
- return 0;
- } else
- return 0;
-}
-
-void
-ClassDef::unparse(StringAccum &sa) const noexcept
-{
- const uint8_t *data = _str.udata();
- if (_str.length() == 0)
- sa << "@*#!";
- else if (data[1] == T_LIST) {
- Glyph start = Data::u16_aligned(data + 2);
- int count = Data::u16_aligned(data + 4);
- for (int i = 0; i < count; i++) {
- if (i) sa << ',';
- sa << start + i << '=' << Data::u16_aligned(data + LIST_HEADERSIZE + i*LIST_RECSIZE);
- }
- } else {
- for (int pos = RANGES_HEADERSIZE; pos < _str.length(); pos += RANGES_RECSIZE) {
- Glyph start = Data::u16_aligned(data + pos);
- Glyph end = Data::u16_aligned(data + pos + 2);
- if (pos > RANGES_HEADERSIZE) sa << ',';
- sa << start;
- if (end != start) sa << '.' << '.' << end;
- sa << '=' << Data::u16_aligned(data + pos + 4);
- }
- }
-}
-
-String
-ClassDef::unparse() const noexcept
-{
- StringAccum sa;
- unparse(sa);
- return sa.take_string();
-}
-
-
-/******************************
- * ClassDef::class_iterator *
- * *
- ******************************/
-
-ClassDef::class_iterator::class_iterator(const String &str, int pos, int the_class, const Coverage::iterator &coviter)
- : _str(str), _pos(pos), _class(the_class), _coviter(coviter)
-{
- // XXX assume _str has been checked
-
- // cannot handle the_class == 0 when coviter doesn't exist
- if (_class == 0 && !_coviter)
- throw Error("cannot iterate over ClassDef class 0");
-
- // shrink _str to fit the coverage table, and create a fake coverage
- // iterator if necessary
- const uint8_t *data = _str.udata();
- if (_str.length()) {
- switch (Data::u16_aligned(data)) {
- case T_LIST: {
- Glyph start = Data::u16_aligned(data + 2);
- int nglyphs = Data::u16_aligned(data + 4);
- _str = _str.substring(0, LIST_HEADERSIZE + nglyphs*LIST_RECSIZE);
- if (!_coviter)
- _coviter = Coverage(start, start + nglyphs - 1).begin();
- if (_class)
- _coviter.forward_to(start);
- break;
- }
- case T_RANGES: {
- Glyph start = Data::u16_aligned(data + RANGES_HEADERSIZE);
- int nranges = Data::u16_aligned(data + 2);
- _str = _str.substring(0, RANGES_HEADERSIZE + nranges*RANGES_RECSIZE);
- if (!_coviter) {
- Glyph end = Data::u16_aligned(data + RANGES_HEADERSIZE + 2 + (nranges - 1)*RANGES_RECSIZE);
- _coviter = Coverage(start, end).begin();
- }
- if (_class)
- _coviter.forward_to(start);
- break;
- }
- default:
- _str = String();
- break;
- }
- }
-
- // move to the first relevant glyph
- if (_pos >= _str.length())
- _pos = _str.length();
- else {
- _pos = 0;
- (*this)++;
- }
-}
-
-void
-ClassDef::class_iterator::increment_class0()
-{
- const uint8_t *data = _str.udata();
- int len = _str.length();
- bool is_list = (data[1] == T_LIST);
-
- if (_pos != 0)
- _coviter++;
- else
- _pos = FIRST_POS;
-
- if (_pos == FIRST_POS && _coviter) {
- if (*_coviter < Data::u16_aligned(data + (is_list ? 2 : RANGES_HEADERSIZE)))
- return;
- _pos = (is_list ? LIST_HEADERSIZE : RANGES_HEADERSIZE);
- }
-
- while (_pos > 0 && _pos < len && _coviter) {
- Glyph g = *_coviter;
- if (is_list) {
- _pos = LIST_HEADERSIZE + LIST_RECSIZE*(g - Data::u16_aligned(data + 2));
- if (_pos >= len)
- break;
- else if (Data::u16_aligned(data + _pos) == 0) // _class == 0
- return;
- _coviter++;
- } else {
- if (g < Data::u16_aligned(data + _pos)) // in a zero range
- return;
- else if (g > Data::u16_aligned(data + _pos + 2))
- _pos += RANGES_RECSIZE;
- else if (Data::u16_aligned(data + _pos + 4) == 0) // _class == 0
- return;
- else
- _coviter.forward_to(Data::u16_aligned(data + _pos + 2) + 1);
- }
- }
-
- if (_coviter)
- _pos = LAST_POS;
- else
- _pos = len;
-}
-
-void
-ClassDef::class_iterator::operator++(int)
-{
- if (_class == 0) {
- increment_class0();
- return;
- }
-
- const uint8_t *data = _str.udata();
- int len = _str.length();
- bool is_list = (data[1] == T_LIST);
-
- if (_pos != 0)
- _coviter++;
- else
- _pos = (is_list ? LIST_HEADERSIZE : RANGES_HEADERSIZE);
-
- while (_pos < len && _coviter) {
- Glyph g = *_coviter;
- if (is_list) {
- _pos = LIST_HEADERSIZE + LIST_RECSIZE*(g - Data::u16_aligned(data + 2));
- if (_pos >= len || Data::u16_aligned(data + _pos) == _class)
- return;
- _coviter++;
- } else {
- while (_pos < len && (g > Data::u16_aligned(data + _pos + 2)
- || Data::u16_aligned(data + _pos + 4) != _class))
- _pos += RANGES_RECSIZE;
- // now, _pos >= len, or g <= rec.end && class == rec.class
- if (_pos >= len || g >= Data::u16_aligned(data + _pos))
- return;
- _coviter.forward_to(Data::u16_aligned(data + _pos));
- }
- }
-
- _pos = len;
-}
-
-
-}}
-
-
-// template instantiations
-#include <lcdf/vector.cc>
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
deleted file mode 100644
index b91970c9600..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfcmap.cc
+++ /dev/null
@@ -1,462 +0,0 @@
-// -*- related-file-name: "../include/efont/otfcmap.hh" -*-
-
-/* otfcmap.{cc,hh} -- OpenType cmap table
- *
- * Copyright (c) 2002-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfcmap.hh>
-#include <lcdf/error.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <efont/otfdata.hh> // for ntohl()
-
-#define USHORT_AT(d) (Data::u16_aligned(d))
-#define SHORT_AT(d) (Data::s16_aligned(d))
-#define ULONG_AT(d) (Data::u32_aligned(d))
-#define ULONG_AT2(d) (Data::u32_aligned16(d))
-
-namespace Efont { namespace OpenType {
-
-Cmap::Cmap(const String &s, ErrorHandler *errh)
- : _str(s)
-{
- _str.align(4);
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
-}
-
-int
-Cmap::parse_header(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // USHORT version
- // USHORT numTables
- int len = _str.length();
- const uint8_t *data = _str.udata();
- if (HEADER_SIZE > len)
- return errh->error("OTF cmap too small"), -EFAULT;
- if (!(data[0] == '\000' && data[1] == '\000'))
- return errh->error("bad cmap version number"), -ERANGE;
- _ntables = USHORT_AT(data + 2);
- if (_ntables == 0)
- return errh->error("OTF cmap contains no tables"), -EINVAL;
- if (HEADER_SIZE + ENCODING_SIZE * _ntables > len)
- return errh->error("cmap directory out of range"), -EFAULT;
-
- // ENCODING ENTRY FORMAT:
- // USHORT platformID
- // USHORT encodingID
- // ULONG offset
- int last_platform = -1;
- int last_encoding = -1;
- int last_language = -1;
- _first_unicode_table = -1;
- for (int i = 0; i < _ntables; i++) {
- int loc = HEADER_SIZE + ENCODING_SIZE * i;
- int platform = USHORT_AT(data + loc);
- int encoding = USHORT_AT(data + loc + 2);
- uint32_t offset = ULONG_AT(data + loc + 4);
- if (offset + 8 > (uint32_t) len) {
- length_error:
- return errh->error("encoding data for entry %d out of range", i);
- }
- int format = USHORT_AT(data + offset);
- int language;
- if (format == F_BYTE || format == F_HIBYTE || format == F_SEGMENTED
- || format == F_TRIMMED) {
- if (USHORT_AT(data + offset + 2) < 6)
- goto length_error;
- language = USHORT_AT(data + offset + 4);
- } else if (format == F_HIBYTE32 || format == F_TRIMMED32
- || format == F_SEGMENTED32) {
- if (offset + 12 > (uint32_t) len || ULONG_AT2(data + offset + 4) < 12)
- goto length_error;
- language = ULONG_AT2(data + offset + 8);
- } else
- continue;
- if (!(platform > last_platform
- || (platform == last_platform
- && (encoding > last_encoding
- || (encoding == last_encoding
- && language > last_language)))))
- errh->warning("unsorted cmap encoding records at entry %d (%d,%d,%d follows %d,%d,%d)", i, platform, encoding, language, last_platform, last_encoding, last_language);
- if ((platform == 0 || (platform == 3 && encoding == 1))
- && _first_unicode_table < 0)
- _first_unicode_table = i;
- last_platform = platform, last_encoding = encoding, last_language = language;
- }
-
- _table_error.assign(_ntables, -2);
- return 0;
-}
-
-int
-Cmap::first_table(int platform, int encoding) const
-{
- if (error() < 0)
- return -1;
- const uint8_t *data = _str.udata();
- data += HEADER_SIZE;
- for (int i = 0; i < _ntables; i++, data += ENCODING_SIZE) {
- int p = USHORT_AT(data), e = USHORT_AT(data + 2);
- if (platform == p && (encoding < 0 || encoding == e))
- return i;
- }
- return -1;
-}
-
-int
-Cmap::check_table(int t, ErrorHandler *errh) const
-{
- if (!errh)
- errh = ErrorHandler::silent_handler();
- if (t == USE_FIRST_UNICODE_TABLE && _first_unicode_table == -1) {
- errh->warning("font appears not to support Unicode");
- _first_unicode_table = 0;
- }
- if (t == USE_FIRST_UNICODE_TABLE)
- t = _first_unicode_table;
- if (_error < 0 || t < 0 || t >= _ntables)
- return errh->error("no such table");
- if (_table_error[t] != -2)
- return _table_error[t];
- _table_error[t] = -1;
-
- const uint8_t *data = table_data(t);
- uint32_t left = _str.uend() - data;
- int format = USHORT_AT(data);
- uint32_t length = 0; // value not used
-
- switch (format) {
-
- case F_BYTE:
- if (left < 4
- || (length = USHORT_AT(data + 2)) > left
- || length != 259)
- return errh->error("bad table %d length (format %d)", t, format);
- break;
-
- case F_HIBYTE:
- if (left < 4
- || (length = USHORT_AT(data + 2)) > left
- || length < 524)
- return errh->error("bad table %d length (format %d)", t, format);
- for (int hi_byte = 0; hi_byte < 256; hi_byte++)
- if (uint32_t subh_key = USHORT_AT(data + 6 + 2 * hi_byte)) {
- if ((subh_key & 7) || HIBYTE_SUBHEADERS + subh_key + 8 > length)
- return errh->error("bad table %d subheader %d offset (format 2)", t, hi_byte);
- const uint8_t *subh = data + HIBYTE_SUBHEADERS + subh_key;
- int firstCode = USHORT_AT(subh);
- int entryCount = USHORT_AT(subh + 2);
- int idRangeOffset = USHORT_AT(subh + 6);
- if (firstCode + entryCount > 256 || entryCount == 0)
- return errh->error("bad table %d subheader %d contents (format 2)", t, hi_byte);
- if ((HIBYTE_SUBHEADERS + subh_key + 6) // pos[idRangeOffset]
- + idRangeOffset + entryCount * 2 > length)
- return errh->error("bad table %d subheader %d length (format 2)", t, hi_byte);
- }
- break;
-
- case F_SEGMENTED: {
- if (left < 4
- || (length = USHORT_AT(data + 2)) > left
- || length < 16)
- return errh->error("bad table %d length (format %d)", t, format);
- int segCountX2 = USHORT_AT(data + 6);
- int searchRange = USHORT_AT(data + 8);
- int entrySelector = USHORT_AT(data + 10);
- int rangeShift = USHORT_AT(data + 12);
- if ((segCountX2 & 1)
- || segCountX2 == 0
- || (searchRange & (searchRange - 1)) /* not a power of 2? */
- || searchRange <= segCountX2/2
- || (searchRange>>1) > segCountX2/2
- || 1 << (entrySelector + 1) != searchRange
- || rangeShift != segCountX2 - searchRange)
- return errh->error("bad table %d segment counts (format %d)", format);
- uint32_t segCount = segCountX2 >> 1;
- if (length < 16 + 8 * segCount)
- return errh->error("bad table %d length (format %d, length %u, need %u)", t, format, length, 16 + 8 * segCount);
- const uint8_t *endCodes = data + 14;
- const uint8_t *startCodes = endCodes + 2 + segCountX2;
- const uint8_t *idDeltas = startCodes + segCountX2;
- const uint8_t *idRangeOffsets = idDeltas + segCountX2;
- uint32_t idRangeOffsetsPos = idRangeOffsets - data;
- int last_end = 0;
- for (int i = 0; i < segCountX2; i += 2) {
- int endCode = USHORT_AT(endCodes + i);
- int startCode = USHORT_AT(startCodes + i);
- /* int idDelta = SHORT_AT(idDeltas + i); // not needed */
- int idRangeOffset = USHORT_AT(idRangeOffsets + i);
- if (endCode < startCode || startCode < last_end)
- return errh->error("bad table %d overlapping range %d (format %d)", t, i/2, format);
- if (idRangeOffset
- && idRangeOffset != 65535
- && idRangeOffsetsPos + i + idRangeOffset + (endCode - startCode)*2 + 2 > length)
- return errh->error("bad table %d range %d length (format %d, range %d-%d, idRangeOffset %d, length %u)", t, i/2, format, startCode, endCode, idRangeOffset, length);
- last_end = endCode + 1;
- }
- if (USHORT_AT(endCodes + segCountX2 - 2) != 0xFFFF)
- return errh->error("bad table %d incorrect final endCode (format 4)", t);
- break;
- }
-
- case F_TRIMMED: {
- if (left < 4
- || (length = USHORT_AT(data + 2)) > left
- || length < 10)
- return errh->error("bad table %d length (format %d)", t, format);
- uint32_t entryCount = USHORT_AT(data + 8);
- if (10 + entryCount * 2 > length)
- return errh->error("bad table %d length (format %d)", t, format);
- break;
- }
-
- case F_SEGMENTED32: {
- if (left < 8
- || (length = ULONG_AT(data + 4)) > left
- || length < 16)
- return errh->error("bad table %d length (format %d)", t, format);
- uint32_t nGroups = ULONG_AT(data + 16);
- if ((length - 16) / 12 < nGroups)
- return errh->error("bad table %d length (format %d)", t, format);
- uint32_t last_post_end = 0;
- data += 16;
- for (uint32_t i = 0; i < nGroups; i++, data += 12) {
- uint32_t startCharCode = ULONG_AT(data);
- uint32_t endCharCode = ULONG_AT(data + 4);
- if (startCharCode < last_post_end || endCharCode < startCharCode)
- return errh->error("bad table %d overlapping range %d (format %d)", t, i, format);
- last_post_end = endCharCode + 1;
- }
- break;
- }
-
- case F_HIBYTE32:
- case F_TRIMMED32:
- default:
- return errh->error("bad table %d unsupported format %d", t, format);
-
- }
-
- _table_error[t] = t;
- return t;
-}
-
-Glyph
-Cmap::map_table(int t, uint32_t uni, ErrorHandler *errh) const
-{
- if ((t = check_table(t, errh)) < 0)
- return 0;
-
- const uint8_t *data = table_data(t);
- switch (USHORT_AT(data)) {
-
- case F_BYTE:
- if (uni < 256)
- return data[6 + uni];
- else
- return 0;
-
- case F_HIBYTE: {
- if (uni >= 65536)
- return 0;
- int hi_byte = (uni >> 8) & 255;
- int subh = USHORT_AT(data + 6 + hi_byte * 2);
- if (subh == 0 && hi_byte) // XXX?
- return 0;
- data += 524 + subh;
- int firstCode = USHORT_AT(data);
- int entryCount = USHORT_AT(data + 2);
- int idDelta = SHORT_AT(data + 4);
- int idRangeOffset = USHORT_AT(data + 6);
- int lo_byte = uni & 255;
- if (lo_byte < firstCode || lo_byte >= firstCode + entryCount)
- return 0;
- int answer = USHORT_AT(data + 6 + idRangeOffset + (lo_byte - firstCode) * 2);
- if (answer == 0)
- return 0;
- return (answer + idDelta) & 65535;
- }
-
- case F_SEGMENTED: {
- if (uni >= 65536)
- return 0;
- int segCount = USHORT_AT(data + 6) >> 1;
- const uint8_t *endCounts = data + 14;
- const uint8_t *startCounts = endCounts + (segCount << 1) + 2;
- const uint8_t *idDeltas = startCounts + (segCount << 1);
- const uint8_t *idRangeOffsets = idDeltas + (segCount << 1);
- int l = 0, r = segCount;
- while (l < r) {
- int m = l + (r - l) / 2;
- uint32_t endCount = USHORT_AT(endCounts + (m << 1));
- uint32_t startCount = USHORT_AT(startCounts + (m << 1));
- if (uni < startCount)
- r = m;
- else if (uni <= endCount) {
- int idDelta = SHORT_AT(idDeltas + (m << 1));
- int idRangeOffset = USHORT_AT(idRangeOffsets + (m << 1));
- if (idRangeOffset == 0)
- return (idDelta + uni) & 65535;
- else if (idRangeOffset == 65535)
- return 0;
- int g = USHORT_AT(idRangeOffsets + (m << 1) + idRangeOffset + ((uni - startCount) << 1));
- if (g == 0)
- return 0;
- return (idDelta + g) & 65535;
- } else
- l = m + 1;
- }
- return 0;
- }
-
- case F_TRIMMED: {
- uint32_t firstCode = USHORT_AT(data + 6);
- uint32_t entryCount = USHORT_AT(data + 8);
- if (uni < firstCode || uni >= firstCode + entryCount)
- return 0;
- return USHORT_AT(data + 10 + ((uni - firstCode) << 1));
- }
-
- case F_SEGMENTED32: {
- uint32_t nGroups = ULONG_AT2(data + 12);
- uint32_t l = 0, r = nGroups;
- const uint8_t *groups = data + 16;
- while (l < r) {
- uint32_t m = l + (r - l) / 2;
- uint32_t startCharCode = ULONG_AT2(groups + m * 12);
- uint32_t endCharCode = ULONG_AT2(groups + m * 12 + 4);
- if (uni < startCharCode)
- r = m;
- else if (uni <= endCharCode)
- return ULONG_AT2(groups + m * 12 + 8) + uni - startCharCode;
- else
- l = m + 1;
- }
- return 0;
- }
-
- default:
- return 0;
-
- }
-}
-
-void
-Cmap::dump_table(int t, Vector<std::pair<uint32_t, Glyph> > &ugp, ErrorHandler *errh) const
-{
- if ((t = check_table(t, errh)) < 0)
- return;
-
- const uint8_t *data = table_data(t);
- switch (USHORT_AT(data)) {
-
- case F_BYTE:
- for (uint32_t u = 0; u < 256; ++u)
- if (int g = data[6 + u])
- ugp.push_back(std::make_pair(u, g));
- break;
-
- case F_HIBYTE:
- assert(USHORT_AT(data + 6) == 0);
- for (int hi_byte = 0; hi_byte < 256; hi_byte++) {
- int subh = USHORT_AT(data + 6 + hi_byte * 4);
- if (subh == 0 && hi_byte > 0)
- continue;
- const uint8_t *tdata = data + 524 + subh;
- int firstCode = USHORT_AT(tdata);
- int entryCount = USHORT_AT(tdata + 2);
- int idDelta = SHORT_AT(tdata + 4);
- int idRangeOffset = USHORT_AT(tdata + 6);
- const uint8_t *gdata = tdata + 6 + idRangeOffset;
- for (int i = 0; i < entryCount; i++)
- if (Glyph g = USHORT_AT(gdata + (i << 1))) {
- g = (idDelta + g) & 65535;
- uint32_t u = (hi_byte << 8) + firstCode + i;
- ugp.push_back(std::make_pair(u, g));
- }
- }
- break;
-
- case F_SEGMENTED: {
- int segCountX2 = USHORT_AT(data + 6);
- const uint8_t *endCounts = data + 14;
- const uint8_t *startCounts = endCounts + segCountX2 + 2;
- const uint8_t *idDeltas = startCounts + segCountX2;
- const uint8_t *idRangeOffsets = idDeltas + segCountX2;
- for (int i = 0; i < segCountX2; i += 2) {
- uint32_t endCount = USHORT_AT(endCounts + i);
- uint32_t startCount = USHORT_AT(startCounts + i);
- int idDelta = SHORT_AT(idDeltas + i);
- int idRangeOffset = USHORT_AT(idRangeOffsets + i);
- if (idRangeOffset == 0) {
- for (uint32_t u = startCount; u <= endCount; ++u) {
- Glyph g = (u + idDelta) & 65535;
- ugp.push_back(std::make_pair(u, g));
- }
- } else {
- const uint8_t *gdata = idRangeOffsets + i + idRangeOffset;
- for (uint32_t u = startCount; u <= endCount; ++u, gdata += 2)
- if (Glyph g = USHORT_AT(gdata)) {
- g = (g + idDelta) & 65535;
- ugp.push_back(std::make_pair(u, g));
- }
- }
- }
- break;
- }
-
- case F_TRIMMED: {
- uint32_t firstCode = USHORT_AT(data + 6);
- int entryCount = USHORT_AT(data + 8);
- for (int i = 0; i < entryCount; i++)
- if (Glyph g = USHORT_AT(data + 10 + (i << 1)))
- ugp.push_back(std::make_pair(firstCode + i, g));
- break;
- }
-
- case F_SEGMENTED32: {
- uint32_t nGroups = ULONG_AT2(data + 12);
- const uint8_t *groups = data + 16;
- for (uint32_t i = 0; i < nGroups; i++, groups += 12) {
- uint32_t startCharCode = ULONG_AT2(groups);
- uint32_t nCharCodes = ULONG_AT2(groups + 4) - startCharCode;
- Glyph startGlyphID = ULONG_AT2(groups + 8);
- for (uint32_t i = 0; i <= nCharCodes; i++)
- ugp.push_back(std::make_pair(startCharCode + i, startGlyphID + i));
- }
- break;
- }
-
- default:
- break;
-
- }
-}
-
-int
-Cmap::map_uni(const Vector<uint32_t> &vin, Vector<Glyph> &vout) const
-{
- int t;
- if ((t = check_table(USE_FIRST_UNICODE_TABLE)) < 0)
- return -1;
- vout.resize(vin.size(), 0);
- for (int i = 0; i < vin.size(); i++)
- vout[i] = map_table(t, vin[i]);
- return 0;
-}
-
-}}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
deleted file mode 100644
index b2768c406a6..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdata.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- related-file-name: "../include/efont/otfdata.hh" -*-
-
-/* otfdata.{cc,hh} -- OpenType bounds-checked string type
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfdata.hh>
-
-namespace Efont { namespace OpenType {
-
-Data
-Data::subtable(unsigned offset) const
-{
- if (offset > (unsigned) _str.length())
- throw Bounds();
- return Data(_str.substring(offset));
-}
-
-Data
-Data::offset_subtable(unsigned offset_offset) const
-{
- int offset = u16(offset_offset);
- if (offset > _str.length())
- throw Bounds();
- return Data(_str.substring(offset));
-}
-
-}}
-
-// template instantiations
-#include <lcdf/vector.cc>
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
deleted file mode 100644
index 6046ade2fb0..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfdescrip.cc
+++ /dev/null
@@ -1,717 +0,0 @@
-/* otfdescrip.cc -- descriptions for OpenType tags
- *
- * Copyright (c) 2002-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otf.hh>
-
-struct Mapping {
- uint32_t tag;
- const char *description;
-};
-
-#define T(str) ((str)[0]<<24 | (str)[1]<<16 | (str)[2]<<8 | (str)[3])
-
-static const Mapping scripts[] = {
- { T("DFLT"), "Default" },
- { T("arab"), "Arabic" },
- { T("armi"), "Imperial Aramaic" },
- { T("armn"), "Armenian" },
- { T("avst"), "Avestan" },
- { T("bali"), "Balinese" },
- { T("bamu"), "Bamum" },
- { T("batk"), "Batak" },
- { T("beng"), "Bengali" },
- { T("bng2"), "Bengali v.2" },
- { T("bopo"), "Bopomofo" },
- { T("brah"), "Brahmi" },
- { T("brai"), "Braille" },
- { T("bugi"), "Buginese" },
- { T("buhd"), "Buhid" },
- { T("byzm"), "Byzantine Music" },
- { T("cakm"), "Chakma" },
- { T("cans"), "Canadian Syllabics" },
- { T("cari"), "Carian" },
- { T("cham"), "Cham" },
- { T("cher"), "Cherokee" },
- { T("copt"), "Coptic" },
- { T("cprt"), "Cypriot Syllabary" },
- { T("cyrl"), "Cyrillic" },
- { T("dev2"), "Devanagari v.2" },
- { T("deva"), "Devanagari" },
- { T("dsrt"), "Deseret" },
- { T("egyp"), "Egyptian heiroglyphs" },
- { T("ethi"), "Ethiopic" },
- { T("geor"), "Georgian" },
- { T("gjr2"), "Gujarati v.2" },
- { T("glag"), "Glagolitic" },
- { T("goth"), "Gothic" },
- { T("grek"), "Greek" },
- { T("gujr"), "Gujarati" },
- { T("gur2"), "Gurmukhi v.2" },
- { T("guru"), "Gurmukhi" },
- { T("hang"), "Hangul" },
- { T("hani"), "CJK Ideographic" },
- { T("hano"), "Hanunoo" },
- { T("hebr"), "Hebrew" },
- { T("ital"), "Old Italic" },
- { T("jamo"), "Hangul Jamo" },
- { T("java"), "Javanese" },
- { T("kali"), "Kayah Li" },
- { T("kana"), "Hiragana/Katakana" },
- { T("khar"), "Kharosthi" },
- { T("khmr"), "Khmer" },
- { T("knd2"), "Kannada v.2" },
- { T("knda"), "Kannada" },
- { T("kthi"), "Kaithi" },
- { T("lana"), "Tai Tham (Lanna)" },
- { T("lao "), "Lao" },
- { T("latn"), "Latin" },
- { T("lepc"), "Lepcha" },
- { T("limb"), "Limbu" },
- { T("linb"), "Linear B" },
- { T("lisu"), "Lisu (Fraser)" },
- { T("lyci"), "Lycian" },
- { T("lydi"), "Lydian" },
- { T("mand"), "Mandaic, Mandaean" },
- { T("math"), "Mathematical Alphanumeric Symbols" },
- { T("merc"), "Meroitic Cursive" },
- { T("mero"), "Meroitic Hieroglyphs" },
- { T("mlm2"), "Malayalam v.2" },
- { T("mlym"), "Malayalam" },
- { T("mong"), "Mongolian" },
- { T("mtei"), "Meitei Mayek (Meithei, Meetei)" },
- { T("musc"), "Musical Symbols" },
- { T("mymr"), "Myanmar" },
- { T("nko "), "N'Ko" },
- { T("ogam"), "Ogham" },
- { T("olck"), "Ol Chiki" },
- { T("orkh"), "Old Turkic, Orkhon Runic" },
- { T("ory2"), "Odia v.2 (formerly Oriya v.2)" },
- { T("orya"), "Odia (formerly Oriya)" },
- { T("osma"), "Osmanya" },
- { T("phag"), "Phags-pa" },
- { T("phli"), "Inscriptional Pahlavi" },
- { T("phnx"), "Phoenician" },
- { T("prti"), "Inscriptional Parthian" },
- { T("rjng"), "Rejang" },
- { T("runr"), "Runic" },
- { T("samr"), "Samaritan" },
- { T("sarb"), "Old South Arabian" },
- { T("saur"), "Saurashtra" },
- { T("shaw"), "Shavian" },
- { T("shrd"), "Sharada" },
- { T("sinh"), "Sinhala" },
- { T("sora"), "Sora Sompeng" },
- { T("sund"), "Sundanese" },
- { T("sylo"), "Syloti Nagri" },
- { T("syrc"), "Syriac" },
- { T("tagb"), "Tagbanwa" },
- { T("takr"), "Takri" },
- { T("tale"), "Tai Le" },
- { T("talu"), "New Tai Lue" },
- { T("taml"), "Tamil" },
- { T("tavt"), "Tai Viet" },
- { T("tel2"), "Telugu v.2" },
- { T("telu"), "Telugu" },
- { T("tfng"), "Tifinagh" },
- { T("tglg"), "Tagalog" },
- { T("thaa"), "Thaana" },
- { T("thai"), "Thai" },
- { T("tibt"), "Tibetan" },
- { T("tml2"), "Tamil v.2" },
- { T("ugar"), "Ugaritic Cuneiform" },
- { T("vai "), "Vai" },
- { T("xpeo"), "Old Persian Cuneiform" },
- { T("xsux"), "Sumero-Akkadian Cuneiform" },
- { T("yi "), "Yi" }
-};
-
-static const Mapping languages[] = {
- { T("ABA "), "Abaza" },
- { T("ABK "), "Abkhazian" },
- { T("ADY "), "Adyghe" },
- { T("AFK "), "Afrikaans" },
- { T("AFR "), "Afar" },
- { T("AGW "), "Agaw" },
- { T("ALS "), "Alsatian" },
- { T("ALT "), "Altai" },
- { T("AMH "), "Amharic" },
- { T("APPH"), "Phonetic transcription—Americanist conventions" },
- { T("ARA "), "Arabic" },
- { T("ARI "), "Aari" },
- { T("ARK "), "Arakanese" },
- { T("ASM "), "Assamese" },
- { T("ATH "), "Athapaskan" },
- { T("AVR "), "Avar" },
- { T("AWA "), "Awadhi" },
- { T("AYM "), "Aymara" },
- { T("AZE "), "Azeri" },
- { T("BAD "), "Badaga" },
- { T("BAG "), "Baghelkhandi" },
- { T("BAL "), "Balkar" },
- { T("BAU "), "Baule" },
- { T("BBR "), "Berber" },
- { T("BCH "), "Bench" },
- { T("BCR "), "Bible Cree" },
- { T("BEL "), "Belarussian" },
- { T("BEM "), "Bemba" },
- { T("BEN "), "Bengali" },
- { T("BGR "), "Bulgarian" },
- { T("BHI "), "Bhili" },
- { T("BHO "), "Bhojpuri" },
- { T("BIK "), "Bikol" },
- { T("BIL "), "Bilen" },
- { T("BKF "), "Blackfoot" },
- { T("BLI "), "Balochi" },
- { T("BLN "), "Balante" },
- { T("BLT "), "Balti" },
- { T("BMB "), "Bambara" },
- { T("BML "), "Bamileke" },
- { T("BOS "), "Bosnian" },
- { T("BRE "), "Breton" },
- { T("BRH "), "Brahui" },
- { T("BRI "), "Braj Bhasha" },
- { T("BRM "), "Burmese" },
- { T("BSH "), "Bashkir" },
- { T("BTI "), "Beti" },
- { T("CAT "), "Catalan" },
- { T("CEB "), "Cebuano" },
- { T("CHE "), "Chechen" },
- { T("CHG "), "Chaha Gurage" },
- { T("CHH "), "Chattisgarhi" },
- { T("CHI "), "Chichewa" },
- { T("CHK "), "Chukchi" },
- { T("CHP "), "Chipewyan" },
- { T("CHR "), "Cherokee" },
- { T("CHU "), "Chuvash" },
- { T("CMR "), "Comorian" },
- { T("COP "), "Coptic" },
- { T("COS "), "Corsican" },
- { T("CRE "), "Cree" },
- { T("CRR "), "Carrier" },
- { T("CRT "), "Crimean Tatar" },
- { T("CSL "), "Church Slavonic" },
- { T("CSY "), "Czech" },
- { T("DAN "), "Danish" },
- { T("DAR "), "Dargwa" },
- { T("DCR "), "Woods Cree" },
- { T("DEU "), "German" },
- { T("DGR "), "Dogri" },
- { T("DHV "), "Dhivehi" }, // deprecated
- { T("DIV "), "Dhivehi" },
- { T("DJR "), "Djerma" },
- { T("DNG "), "Dangme" },
- { T("DNK "), "Dinka" },
- { T("DRI "), "Dari" },
- { T("DUN "), "Dungan" },
- { T("DZN "), "Dzongkha" },
- { T("EBI "), "Ebira" },
- { T("ECR "), "Eastern Cree" },
- { T("EDO "), "Edo" },
- { T("EFI "), "Efik" },
- { T("ELL "), "Greek" },
- { T("ENG "), "English" },
- { T("ERZ "), "Erzya" },
- { T("ESP "), "Spanish" },
- { T("ETI "), "Estonian" },
- { T("EUQ "), "Basque" },
- { T("EVK "), "Evenki" },
- { T("EVN "), "Even" },
- { T("EWE "), "Ewe" },
- { T("FAN "), "French Antillean" },
- { T("FAR "), "Farsi" },
- { T("FIN "), "Finnish" },
- { T("FJI "), "Fijian" },
- { T("FLE "), "Flemish" },
- { T("FNE "), "Forest Nenets" },
- { T("FON "), "Fon" },
- { T("FOS "), "Faroese" },
- { T("FRA "), "French" },
- { T("FRI "), "Frisian" },
- { T("FRL "), "Friulian" },
- { T("FTA "), "Futa" },
- { T("FUL "), "Fulani" },
- { T("GAD "), "Ga" },
- { T("GAE "), "Gaelic" },
- { T("GAG "), "Gagauz" },
- { T("GAL "), "Galician" },
- { T("GAR "), "Garshuni" },
- { T("GAW "), "Garhwali" },
- { T("GEZ "), "Ge'ez" },
- { T("GIL "), "Gilyak" },
- { T("GMZ "), "Gumuz" },
- { T("GON "), "Gondi" },
- { T("GRN "), "Greenlandic" },
- { T("GRO "), "Garo" },
- { T("GUA "), "Guarani" },
- { T("GUJ "), "Gujarati" },
- { T("HAI "), "Haitian" },
- { T("HAL "), "Halam" },
- { T("HAR "), "Harauti" },
- { T("HAU "), "Hausa" },
- { T("HAW "), "Hawaiian" },
- { T("HBN "), "Hammer-Banna" },
- { T("HIL "), "Hiligaynon" },
- { T("HIN "), "Hindi" },
- { T("HMA "), "High Mari" },
- { T("HND "), "Hindko" },
- { T("HO "), "Ho" },
- { T("HRI "), "Harari" },
- { T("HRV "), "Croatian" },
- { T("HUN "), "Hungarian" },
- { T("HYE "), "Armenian" },
- { T("IBO "), "Igbo" },
- { T("IJO "), "Ijo" },
- { T("ILO "), "Ilokano" },
- { T("IND "), "Indonesian" },
- { T("ING "), "Ingush" },
- { T("INU "), "Inuktitut" },
- { T("IPPH"), "Phonetic transcription—IPA conventions" },
- { T("IRI "), "Irish" },
- { T("IRT "), "Irish Traditional" },
- { T("ISL "), "Icelandic" },
- { T("ISM "), "Inari Sami" },
- { T("ITA "), "Italian" },
- { T("IWR "), "Hebrew" },
- { T("JAN "), "Japanese" },
- { T("JAV "), "Javanese" },
- { T("JII "), "Yiddish" },
- { T("JUD "), "Judezmo" },
- { T("JUL "), "Jula" },
- { T("KAB "), "Kabardian" },
- { T("KAC "), "Kachchi" },
- { T("KAL "), "Kalenjin" },
- { T("KAN "), "Kannada" },
- { T("KAR "), "Karachay" },
- { T("KAT "), "Georgian" },
- { T("KAZ "), "Kazakh" },
- { T("KEB "), "Kebena" },
- { T("KGE "), "Khutsuri Georgian" },
- { T("KHA "), "Khakass" },
- { T("KHK "), "Khanty-Kazim" },
- { T("KHM "), "Khmer" },
- { T("KHS "), "Khanty-Shurishkar" },
- { T("KHV "), "Khanty-Vakhi" },
- { T("KHW "), "Khowar" },
- { T("KIK "), "Kikuyu" },
- { T("KIR "), "Kirghiz" },
- { T("KIS "), "Kisii" },
- { T("KKN "), "Kokni" },
- { T("KLM "), "Kalmyk" },
- { T("KMB "), "Kamba" },
- { T("KMN "), "Kumaoni" },
- { T("KMO "), "Komo" },
- { T("KMS "), "Komso" },
- { T("KNR "), "Kanuri" },
- { T("KOD "), "Kodagu" },
- { T("KOH "), "Korean Old Hangul" },
- { T("KOK "), "Konkani" },
- { T("KON "), "Kikongo" },
- { T("KOP "), "Komi-Permyak" },
- { T("KOR "), "Korean" },
- { T("KOZ "), "Komi-Zyrian" },
- { T("KPL "), "Kpelle" },
- { T("KRI "), "Krio" },
- { T("KRK "), "Karakalpak" },
- { T("KRL "), "Karelian" },
- { T("KRM "), "Karaim" },
- { T("KRN "), "Karen" },
- { T("KRT "), "Koorete" },
- { T("KSH "), "Kashmiri" },
- { T("KSI "), "Khasi" },
- { T("KSM "), "Kildin Sami" },
- { T("KUI "), "Kui" },
- { T("KUL "), "Kulvi" },
- { T("KUM "), "Kumyk" },
- { T("KUR "), "Kurdish" },
- { T("KUU "), "Kurukh" },
- { T("KUY "), "Kuy" },
- { T("KYK "), "Koryak" },
- { T("LAD "), "Ladin" },
- { T("LAH "), "Lahuli" },
- { T("LAK "), "Lak" },
- { T("LAM "), "Lambani" },
- { T("LAO "), "Lao" },
- { T("LAT "), "Latin" },
- { T("LAZ "), "Laz" },
- { T("LCR "), "L-Cree" },
- { T("LDK "), "Ladakhi" },
- { T("LEZ "), "Lezgi" },
- { T("LIN "), "Lingala" },
- { T("LMA "), "Low Mari" },
- { T("LMB "), "Limbu" },
- { T("LMW "), "Lomwe" },
- { T("LSB "), "Lower Sorbian" },
- { T("LSM "), "Lule Sami" },
- { T("LTH "), "Lithuanian" },
- { T("LTZ "), "Luxembourgish" },
- { T("LUB "), "Luba" },
- { T("LUG "), "Luganda" },
- { T("LUH "), "Luhya" },
- { T("LUO "), "Luo" },
- { T("LVI "), "Latvian" },
- { T("MAJ "), "Majang" },
- { T("MAK "), "Makua" },
- { T("MAL "), "Malayalam Traditional" },
- { T("MAN "), "Mansi" },
- { T("MAP "), "Mapudungun" },
- { T("MAR "), "Marathi" },
- { T("MAW "), "Marwari" },
- { T("MBN "), "Mbundu" },
- { T("MCH "), "Manchu" },
- { T("MCR "), "Moose Cree" },
- { T("MDE "), "Mende" },
- { T("MEN "), "Me'en" },
- { T("MIZ "), "Mizo" },
- { T("MKD "), "Macedonian" },
- { T("MLE "), "Male" },
- { T("MLG "), "Malagasy" },
- { T("MLN "), "Malinke" },
- { T("MLR "), "Malayalam Reformed" },
- { T("MLY "), "Malay" },
- { T("MND "), "Mandinka" },
- { T("MNG "), "Mongolian" },
- { T("MNI "), "Manipuri" },
- { T("MNK "), "Maninka" },
- { T("MNX "), "Manx Gaelic" },
- { T("MOH "), "Mohawk" },
- { T("MOK "), "Moksha" },
- { T("MOL "), "Moldavian" },
- { T("MON "), "Mon" },
- { T("MOR "), "Moroccan" },
- { T("MRI "), "Maori" },
- { T("MTH "), "Maithili" },
- { T("MTS "), "Maltese" },
- { T("MUN "), "Mundari" },
- { T("NAG "), "Naga-Assamese" },
- { T("NAN "), "Nanai" },
- { T("NAS "), "Naskapi" },
- { T("NCR "), "N-Cree" },
- { T("NDB "), "Ndebele" },
- { T("NDG "), "Ndonga" },
- { T("NEP "), "Nepali" },
- { T("NEW "), "Newari" },
- { T("NGR "), "Nagari" },
- { T("NHC "), "Norway House Cree" },
- { T("NIS "), "Nisi" },
- { T("NIU "), "Niuean" },
- { T("NKL "), "Nkole" },
- { T("NKO "), "N'Ko" },
- { T("NLD "), "Dutch" },
- { T("NOG "), "Nogai" },
- { T("NOR "), "Norwegian" },
- { T("NSM "), "Northern Sami" },
- { T("NTA "), "Northern Tai" },
- { T("NTO "), "Esperanto" },
- { T("NYN "), "Nynorsk" },
- { T("OCI "), "Occitan" },
- { T("OCR "), "Oji-Cree" },
- { T("OJB "), "Ojibway" },
- { T("ORI "), "Odia (formerly Oriya)" },
- { T("ORO "), "Oromo" },
- { T("OSS "), "Ossetian" },
- { T("PAA "), "Palestinian Aramaic" },
- { T("PAL "), "Pali" },
- { T("PAN "), "Punjabi" },
- { T("PAP "), "Palpa" },
- { T("PAS "), "Pashto" },
- { T("PGR "), "Polytonic Greek" },
- { T("PIL "), "Filipino" },
- { T("PLG "), "Palaung" },
- { T("PLK "), "Polish" },
- { T("PRO "), "Provencal" },
- { T("PTG "), "Portuguese" },
- { T("QIN "), "Chin" },
- { T("RAJ "), "Rajasthani" },
- { T("RBU "), "Russian Buriat" },
- { T("RCR "), "R-Cree" },
- { T("RIA "), "Riang" },
- { T("RMS "), "Rhaeto-Romanic" },
- { T("ROM "), "Romanian" },
- { T("ROY "), "Romany" },
- { T("RSY "), "Rusyn" },
- { T("RUA "), "Ruanda" },
- { T("RUS "), "Russian" },
- { T("SAD "), "Sadri" },
- { T("SAN "), "Sanskrit" },
- { T("SAT "), "Santali" },
- { T("SAY "), "Sayisi" },
- { T("SEK "), "Sekota" },
- { T("SEL "), "Selkup" },
- { T("SGO "), "Sango" },
- { T("SHN "), "Shan" },
- { T("SIB "), "Sibe" },
- { T("SID "), "Sidamo" },
- { T("SIG "), "Silte Gurage" },
- { T("SKS "), "Skolt Sami" },
- { T("SKY "), "Slovak" },
- { T("SLA "), "Slavey" },
- { T("SLV "), "Slovenian" },
- { T("SML "), "Somali" },
- { T("SMO "), "Samoan" },
- { T("SNA "), "Sena" },
- { T("SND "), "Sindhi" },
- { T("SNH "), "Sinhalese" },
- { T("SNK "), "Soninke" },
- { T("SOG "), "Sodo Gurage" },
- { T("SOT "), "Sotho" },
- { T("SQI "), "Albanian" },
- { T("SRB "), "Serbian" },
- { T("SRK "), "Saraiki" },
- { T("SRR "), "Serer" },
- { T("SSL "), "South Slavey" },
- { T("SSM "), "Southern Sami" },
- { T("SUR "), "Suri" },
- { T("SVA "), "Svan" },
- { T("SVE "), "Swedish" },
- { T("SWA "), "Swadaya Aramaic" },
- { T("SWK "), "Swahili" },
- { T("SWZ "), "Swazi" },
- { T("SXT "), "Sutu" },
- { T("SYR "), "Syriac" },
- { T("TAB "), "Tabasaran" },
- { T("TAJ "), "Tajiki" },
- { T("TAM "), "Tamil" },
- { T("TAT "), "Tatar" },
- { T("TCR "), "TH-Cree" },
- { T("TEL "), "Telugu" },
- { T("TGN "), "Tongan" },
- { T("TGR "), "Tigre" },
- { T("TGY "), "Tigrinya" },
- { T("THA "), "Thai" },
- { T("THT "), "Tahitian" },
- { T("TIB "), "Tibetan" },
- { T("TKM "), "Turkmen" },
- { T("TMN "), "Temne" },
- { T("TNA "), "Tswana" },
- { T("TNE "), "Tundra Nenets" },
- { T("TNG "), "Tonga" },
- { T("TOD "), "Todo" },
- { T("TRK "), "Turkish" },
- { T("TSG "), "Tsonga" },
- { T("TUA "), "Turoyo Aramaic" },
- { T("TUL "), "Tulu" },
- { T("TUR "), "Turkish" }, // deprecated?
- { T("TUV "), "Tuvin" },
- { T("TWI "), "Twi" },
- { T("UDM "), "Udmurt" },
- { T("UKR "), "Ukrainian" },
- { T("URD "), "Urdu" },
- { T("USB "), "Upper Sorbian" },
- { T("UYG "), "Uyghur" },
- { T("UZB "), "Uzbek" },
- { T("VEN "), "Venda" },
- { T("VIT "), "Vietnamese" },
- { T("WA "), "Wa" },
- { T("WAG "), "Wagdi" },
- { T("WCR "), "West-Cree" },
- { T("WEL "), "Welsh" },
- { T("WLF "), "Wolof" },
- { T("XBD "), "Tai Lue" },
- { T("XHS "), "Xhosa" },
- { T("YAK "), "Sakha" },
- { T("YBA "), "Yoruba" },
- { T("YCR "), "Y-Cree" },
- { T("YIC "), "Yi Classic" },
- { T("YIM "), "Yi Modern" },
- { T("ZHH "), "Chinese, Hong Kong SAR" },
- { T("ZHP "), "Chinese Phonetic" },
- { T("ZHS "), "Chinese Simplified" },
- { T("ZHT "), "Chinese Traditional" },
- { T("ZND "), "Zande" },
- { T("ZUL "), "Zulu" }
-};
-
-static const Mapping features[] = {
- { T("aalt"), "Access All Alternates" },
- { T("abvf"), "Above-base Forms" },
- { T("abvm"), "Above-base Mark Positioning" },
- { T("abvs"), "Above-base Substitutions" },
- { T("afrc"), "Alternative Fractions" },
- { T("akhn"), "Akhands" },
- { T("blwf"), "Below-base Forms" },
- { T("blwm"), "Below-base Mark Positioning" },
- { T("blws"), "Below-base Substitutions" },
- { T("c2pc"), "Petite Capitals From Capitals" },
- { T("c2sc"), "Small Capitals From Capitals" },
- { T("calt"), "Contextual Alternates" },
- { T("case"), "Case-Sensitive Forms" },
- { T("ccmp"), "Glyph Composition/Decomposition" },
- { T("cfar"), "Conjunct Form After Ro" },
- { T("cjct"), "Conjunct Forms" },
- { T("clig"), "Contextual Ligatures" },
- { T("cpct"), "Centered CJK Punctuation" },
- { T("cpsp"), "Capital Spacing" },
- { T("cswh"), "Contextual Swash" },
- { T("curs"), "Cursive Positioning" },
- { T("cv01"), "Character Variants 1" },
- { T("cv02"), "Character Variants 2" },
- { T("cv03"), "Character Variants 3" },
- { T("cv04"), "Character Variants 4" },
- { T("cv05"), "Character Variants 5" },
- { T("cv06"), "Character Variants 6" },
- // ... up to cv99
- { T("dist"), "Distances" },
- { T("dlig"), "Discretionary Ligatures" },
- { T("dnom"), "Denominators" },
- { T("expt"), "Expert Forms" },
- { T("falt"), "Final Glyph on Line Alternates" },
- { T("fin2"), "Terminal Forms #2" },
- { T("fin3"), "Terminal Forms #3" },
- { T("fina"), "Terminal Forms" },
- { T("frac"), "Fractions" },
- { T("fwid"), "Full Widths" },
- { T("half"), "Half Forms" },
- { T("haln"), "Halant Forms" },
- { T("halt"), "Alternate Half Widths" },
- { T("hist"), "Historical Forms" },
- { T("hkna"), "Horizontal Kana Alternates" },
- { T("hlig"), "Historical Ligatures" },
- { T("hngl"), "Hangul" },
- { T("hojo"), "Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms)" },
- { T("hwid"), "Half Widths" },
- { T("init"), "Initial Forms" },
- { T("isol"), "Isolated Forms" },
- { T("ital"), "Italics" },
- { T("jalt"), "Justification Alternates" },
- { T("jp04"), "JIS2004 Forms" },
- { T("jp78"), "JIS78 Forms" },
- { T("jp83"), "JIS83 Forms" },
- { T("jp90"), "JIS90 Forms" },
- { T("kern"), "Kerning" },
- { T("lfbd"), "Left Bounds" },
- { T("liga"), "Standard Ligatures" },
- { T("ljmo"), "Leading Jamo Forms" },
- { T("lnum"), "Lining Figures" },
- { T("locl"), "Localized Forms" },
- { T("ltra"), "Left-to-right alternates" },
- { T("ltrm"), "Left-to-right mirrored forms" },
- { T("mark"), "Mark Positioning" },
- { T("med2"), "Medial Forms #2" },
- { T("medi"), "Medial Forms" },
- { T("mgrk"), "Mathematical Greek" },
- { T("mkmk"), "Mark to Mark Positioning" },
- { T("mset"), "Mark Positioning via Substitution" },
- { T("nalt"), "Alternate Annotation Forms" },
- { T("nlck"), "NLC Kanji Forms" },
- { T("nukt"), "Nukta Forms" },
- { T("numr"), "Numerators" },
- { T("onum"), "Oldstyle Figures" },
- { T("opbd"), "Optical Bounds" },
- { T("ordn"), "Ordinals" },
- { T("ornm"), "Ornaments" },
- { T("palt"), "Proportional Alternate Widths" },
- { T("pcap"), "Petite Capitals" },
- { T("pkna"), "Proportional Kana" },
- { T("pnum"), "Proportional Figures" },
- { T("pref"), "Pre-Base Forms" },
- { T("pres"), "Pre-base Substitutions" },
- { T("pstf"), "Post-base Forms" },
- { T("psts"), "Post-base Substitutions" },
- { T("pwid"), "Proportional Widths" },
- { T("qwid"), "Quarter Widths" },
- { T("rand"), "Randomize" },
- { T("rkrf"), "Rakar Forms" },
- { T("rlig"), "Required Ligatures" },
- { T("rphf"), "Reph Forms" },
- { T("rtbd"), "Right Bounds" },
- { T("rtla"), "Right-to-left Alternates" },
- { T("rtlm"), "Right-to-left Mirrored Forms" },
- { T("ruby"), "Ruby Notation Forms" },
- { T("salt"), "Stylistic Alternates" },
- { T("sinf"), "Scientific Inferiors" },
- { T("size"), "Optical Size" },
- { T("smcp"), "Small Capitals" },
- { T("smpl"), "Simplified Forms" },
- { T("ss01"), "Stylistic Set 1" },
- { T("ss02"), "Stylistic Set 2" },
- { T("ss03"), "Stylistic Set 3" },
- { T("ss04"), "Stylistic Set 4" },
- { T("ss05"), "Stylistic Set 5" },
- { T("ss06"), "Stylistic Set 6" },
- { T("ss07"), "Stylistic Set 7" },
- { T("ss08"), "Stylistic Set 8" },
- { T("ss09"), "Stylistic Set 9" },
- { T("ss10"), "Stylistic Set 10" },
- { T("ss11"), "Stylistic Set 11" },
- { T("ss12"), "Stylistic Set 12" },
- { T("ss13"), "Stylistic Set 13" },
- { T("ss14"), "Stylistic Set 14" },
- { T("ss15"), "Stylistic Set 15" },
- { T("ss16"), "Stylistic Set 16" },
- { T("ss17"), "Stylistic Set 17" },
- { T("ss18"), "Stylistic Set 18" },
- { T("ss19"), "Stylistic Set 19" },
- { T("ss20"), "Stylistic Set 20" },
- { T("subs"), "Subscript" },
- { T("sups"), "Superscript" },
- { T("swsh"), "Swash" },
- { T("titl"), "Titling" },
- { T("tjmo"), "Trailing Jamo Forms" },
- { T("tnam"), "Traditional Name Forms" },
- { T("tnum"), "Tabular Figures" },
- { T("trad"), "Traditional Forms" },
- { T("twid"), "Third Widths" },
- { T("unic"), "Unicase" },
- { T("valt"), "Alternate Vertical Metrics" },
- { T("vatu"), "Vattu Variants" },
- { T("vert"), "Vertical Writing" },
- { T("vhal"), "Alternate Vertical Half Metrics" },
- { T("vjmo"), "Vowel Jamo Forms" },
- { T("vkna"), "Vertical Kana Alternates" },
- { T("vkrn"), "Vertical Kerning" },
- { T("vpal"), "Proportional Alternate Vertical Metrics" },
- { T("vrt2"), "Vertical Alternates and Rotation" },
- { T("zero"), "Slashed Zero" }
-};
-
-namespace Efont { namespace OpenType {
-
-static const char *
-find_description(uint32_t tag, const Mapping *maps, int n)
-{
- // should use STL...
- int l = 0, r = n;
- while (l < r) {
- int m = l + (r - l) / 2;
- if (maps[m].tag < tag)
- l = m + 1;
- else if (maps[m].tag == tag)
- return maps[m].description;
- else
- r = m;
- }
- return 0;
-}
-
-const char *
-Tag::script_description() const
-{
- return find_description(value(), scripts, sizeof(scripts) / sizeof(Mapping));
-}
-
-const char *
-Tag::language_description() const
-{
- return find_description(value(), languages, sizeof(languages) / sizeof(Mapping));
-}
-
-const char *
-Tag::feature_description() const
-{
- return find_description(value(), features, sizeof(features) / sizeof(Mapping));
-}
-
-}}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
deleted file mode 100644
index 6c682b2f8e6..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgpos.cc
+++ /dev/null
@@ -1,328 +0,0 @@
-// -*- related-file-name: "../include/efont/otfgpos.hh" -*-
-
-/* otfgpos.{cc,hh} -- OpenType GPOS table
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfgpos.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-
-namespace Efont { namespace OpenType {
-
-
-/**************************
- * Gpos *
- * *
- **************************/
-
-Gpos::Gpos(const Data &d, ErrorHandler *errh)
-{
- // Fixed Version
- // Offset ScriptList
- // Offset FeatureList
- // Offset LookupList
- if (d.length() == 0)
- throw BlankTable("GPOS");
- if (d.u16(0) != 1)
- throw Format("GPOS");
- if (_script_list.assign(d.offset_subtable(4), errh) < 0)
- throw Format("GPOS script list");
- if (_feature_list.assign(d.offset_subtable(6), errh) < 0)
- throw Format("GPOS feature list");
- _lookup_list = d.offset_subtable(8);
-}
-
-int
-Gpos::nlookups() const
-{
- return _lookup_list.u16(0);
-}
-
-GposLookup
-Gpos::lookup(unsigned i) const
-{
- if (i >= _lookup_list.u16(0))
- throw Error("GPOS lookup out of range");
- else
- return GposLookup(_lookup_list.offset_subtable(2 + i*2));
-}
-
-
-/**************************
- * GposValue *
- * *
- **************************/
-
-const int GposValue::nibble_bitcount_x2[] = { 0, 2, 2, 4, 2, 4, 4, 6,
- 2, 4, 4, 6, 4, 6, 6, 8 };
-
-
-/**************************
- * GposLookup *
- * *
- **************************/
-
-GposLookup::GposLookup(const Data &d)
- : _d(d)
-{
- if (_d.length() < 6)
- throw Format("GPOS Lookup table");
- _type = _d.u16(0);
- if (_type == L_EXTENSION && _d.u16(4) != 0) {
- Data first_subtable = _d.offset_subtable(HEADERSIZE);
- if (first_subtable.length() < 8 || first_subtable.u16(0) != 1)
- throw Format("GPOS Extension Lookup table");
- _type = first_subtable.u16(2);
- }
-}
-
-Data
-GposLookup::subtable(int i) const
-{
- Data subd = _d.offset_subtable(HEADERSIZE + i*RECSIZE);
- if (_d.u16(0) != L_EXTENSION)
- return subd;
- else if (subd.length() >= 8 && subd.u16(0) == 1 && subd.u16(2) == _type)
- return subd.subtable(subd.u32(4));
- else
- return Data();
-}
-
-bool
-GposLookup::unparse_automatics(Vector<Positioning> &v, ErrorHandler *errh) const
-{
- int nlookup = _d.u16(4), success = 0;
- switch (_type) {
- case L_SINGLE:
- for (int i = 0; i < nlookup; i++)
- try {
- GposSingle s(subtable(i));
- s.unparse(v);
- success++;
- } catch (Error e) {
- if (errh)
- errh->warning("%s, continuing", e.description.c_str());
- }
- return success > 0;
- case L_PAIR:
- for (int i = 0; i < nlookup; i++)
- try {
- GposPair p(subtable(i));
- p.unparse(v);
- success++;
- } catch (Error e) {
- if (errh)
- errh->warning("%s, continuing", e.description.c_str());
- }
- return success > 0;
- default:
- return false;
- }
-}
-
-
-/**************************
- * GposSingle *
- * *
- **************************/
-
-GposSingle::GposSingle(const Data &d)
- : _d(d)
-{
- if (_d[0] != 0
- || (_d[1] != 1 && _d[1] != 2))
- throw Format("GPOS Single Positioning");
- Coverage coverage(_d.offset_subtable(2));
- if (!coverage.ok()
- || (_d[1] == 2 && coverage.size() > _d.u16(6)))
- throw Format("GPOS Single Positioning coverage");
-}
-
-Coverage
-GposSingle::coverage() const noexcept
-{
- return Coverage(_d.offset_subtable(2), 0, false);
-}
-
-void
-GposSingle::unparse(Vector<Positioning> &v) const
-{
- if (_d[1] == 1) {
- int format = _d.u16(4);
- Data value = _d.subtable(6);
- for (Coverage::iterator i = coverage().begin(); i; i++)
- v.push_back(Positioning(Position(*i, format, value)));
- } else {
- int format = _d.u16(4);
- int size = GposValue::size(format);
- for (Coverage::iterator i = coverage().begin(); i; i++)
- v.push_back(Positioning(Position(*i, format, _d.subtable(F2_HEADERSIZE + size*i.coverage_index()))));
- }
-}
-
-
-/**************************
- * GposPair *
- * *
- **************************/
-
-GposPair::GposPair(const Data &d)
- : _d(d)
-{
- if (_d[0] != 0
- || (_d[1] != 1 && _d[1] != 2))
- throw Format("GPOS Pair Positioning");
- Coverage coverage(_d.offset_subtable(2));
- if (!coverage.ok()
- || (_d[1] == 1 && coverage.size() > _d.u16(8)))
- throw Format("GPOS Pair Positioning coverage");
-}
-
-Coverage
-GposPair::coverage() const noexcept
-{
- return Coverage(_d.offset_subtable(2), 0, false);
-}
-
-void
-GposPair::unparse(Vector<Positioning> &v) const
-{
- if (_d[1] == 1) {
- int format1 = _d.u16(4);
- int format2 = _d.u16(6);
- int f2_pos = PAIRVALUE_HEADERSIZE + GposValue::size(format1);
- int pairvalue_size = f2_pos + GposValue::size(format2);
- for (Coverage::iterator i = coverage().begin(); i; i++) {
- Data pairset = _d.offset_subtable(F1_HEADERSIZE + i.coverage_index()*F1_RECSIZE);
- int npair = pairset.u16(0);
- for (int j = 0; j < npair; j++) {
- Data pair = pairset.subtable(PAIRSET_HEADERSIZE + j*pairvalue_size);
- v.push_back(Positioning(Position(*i, format1, pair.subtable(PAIRVALUE_HEADERSIZE)),
- Position(pair.u16(0), format2, pair.subtable(f2_pos))));
- }
- }
- } else { // _d[1] == 2
- int format1 = _d.u16(4);
- int format2 = _d.u16(6);
- int f2_pos = GposValue::size(format1);
- int recsize = f2_pos + GposValue::size(format2);
- ClassDef class1(_d.offset_subtable(8));
- ClassDef class2(_d.offset_subtable(10));
- Coverage coverage = this->coverage();
- int nclass1 = _d.u16(12);
- int nclass2 = _d.u16(14);
- int offset = F2_HEADERSIZE;
- for (int c1 = 0; c1 < nclass1; c1++)
- for (int c2 = 0; c2 < nclass2; c2++, offset += recsize) {
- Position p1(format1, _d.subtable(offset));
- Position p2(format2, _d.subtable(offset + f2_pos));
- if (p1 || p2) {
- for (ClassDef::class_iterator c1i = class1.begin(c1, coverage); c1i; c1i++)
- for (ClassDef::class_iterator c2i = class2.begin(c2); c2i; c2i++)
- v.push_back(Positioning(Position(*c1i, p1), Position(*c2i, p2)));
- }
- }
- }
-}
-
-
-/**************************
- * Positioning *
- * *
- **************************/
-
-static void
-unparse_glyphid(StringAccum &sa, Glyph gid, const Vector<PermString> *gns)
-{
- if (!gns)
- gns = &debug_glyph_names;
- if (gid && gns && gns->size() > gid && (*gns)[gid])
- sa << (*gns)[gid];
- else
- sa << "g" << gid;
-}
-
-void
-Position::unparse(StringAccum &sa, const Vector<PermString> *gns) const
-{
- unparse_glyphid(sa, g, gns);
- if (placed())
- sa << '@' << pdx << ',' << pdy;
- sa << '+' << adx;
- if (ady)
- sa << '/' << ady;
-}
-
-String
-Position::unparse(const Vector<PermString> *gns) const
-{
- StringAccum sa;
- unparse(sa, gns);
- return sa.take_string();
-}
-
-bool
-Positioning::context_in(const Coverage &c) const
-{
- return (c.covers(_left.g) || !_left.g) && (!_right.g || c.covers(_right.g));
-}
-
-bool
-Positioning::context_in(const GlyphSet &gs) const
-{
- return (gs.covers(_left.g) || !_left.g) && (!_right.g || gs.covers(_right.g));
-}
-
-void
-Positioning::unparse(StringAccum &sa, const Vector<PermString> *gns) const
-{
- if (!*this)
- sa << "NULL[]";
- else if (is_single()) {
- sa << "SINGLE[";
- _left.unparse(sa, gns);
- sa << ']';
- } else if (is_pairkern()) {
- sa << "KERN[";
- unparse_glyphid(sa, _left.g, gns);
- sa << ' ';
- unparse_glyphid(sa, _right.g, gns);
- sa << "+" << _left.adx << ']';
- } else if (is_pair()) {
- sa << "PAIR[";
- _left.unparse(sa, gns);
- sa << ' ';
- _right.unparse(sa, gns);
- sa << ']';
- } else
- sa << "UNKNOWN[]";
-}
-
-String
-Positioning::unparse(const Vector<PermString> *gns) const
-{
- StringAccum sa;
- unparse(sa, gns);
- return sa.take_string();
-}
-
-}}
-
-#include <lcdf/vector.cc>
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
deleted file mode 100644
index 8527d04b5aa..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfgsub.cc
+++ /dev/null
@@ -1,1398 +0,0 @@
-// -*- related-file-name: "../include/efont/otfgsub.hh" -*-
-
-/* otfgsub.{cc,hh} -- OpenType GSUB table
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfgsub.hh>
-#include <efont/otfname.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-
-namespace Efont { namespace OpenType {
-
-void
-Substitution::clear(Substitute &s, uint8_t &t)
-{
- switch (t) {
- case T_GLYPHS:
- delete[] s.gids;
- break;
- case T_COVERAGE:
- delete s.coverage;
- break;
- }
- t = T_NONE;
-}
-
-void
-Substitution::assign_space(Substitute &s, uint8_t &t, int n)
-{
- clear(s, t);
- if (n == 1)
- t = T_GLYPH;
- else if (n > 1) {
- s.gids = new Glyph[n + 1];
- s.gids[0] = n;
- t = T_GLYPHS;
- }
-}
-
-void
-Substitution::assign(Substitute &s, uint8_t &t, Glyph gid)
-{
- clear(s, t);
- s.gid = gid;
- t = T_GLYPH;
-}
-
-void
-Substitution::assign(Substitute &s, uint8_t &t, int ngids, const Glyph *gids)
-{
- clear(s, t);
- assert(ngids > 0);
- if (ngids == 1) {
- s.gid = gids[0];
- t = T_GLYPH;
- } else {
- s.gids = new Glyph[ngids + 1];
- s.gids[0] = ngids;
- memcpy(s.gids + 1, gids, ngids * sizeof(Glyph));
- t = T_GLYPHS;
- }
-}
-
-void
-Substitution::assign(Substitute &s, uint8_t &t, const Coverage &coverage)
-{
- clear(s, t);
- s.coverage = new Coverage(coverage);
- t = T_COVERAGE;
-}
-
-void
-Substitution::assign(Substitute &s, uint8_t &t, const Substitute &os, uint8_t ot)
-{
- if (&s == &os)
- return;
- switch (ot) {
- case T_NONE:
- clear(s, t);
- break;
- case T_GLYPH:
- assign(s, t, os.gid);
- break;
- case T_GLYPHS:
- assign(s, t, os.gids[0], os.gids + 1);
- break;
- case T_COVERAGE:
- assign(s, t, *os.coverage);
- break;
- default:
- assert(0);
- }
-}
-
-Substitution::Substitution(const Substitution &o)
- : _left_is(T_NONE), _in_is(T_NONE), _out_is(T_NONE), _right_is(T_NONE),
- _alternate(o._alternate)
-{
- assign(_left, _left_is, o._left, o._left_is);
- assign(_in, _in_is, o._in, o._in_is);
- assign(_out, _out_is, o._out, o._out_is);
- assign(_right, _right_is, o._right, o._right_is);
-}
-
-Substitution::Substitution(Glyph in, Glyph out)
- : _left_is(T_NONE), _in_is(T_GLYPH), _out_is(T_GLYPH), _right_is(T_NONE)
-{
- _in.gid = in;
- _out.gid = out;
-}
-
-Substitution::Substitution(Glyph in, const Vector<Glyph> &out, bool is_alternate)
- : _left_is(T_NONE), _in_is(T_GLYPH), _out_is(T_NONE), _right_is(T_NONE),
- _alternate(is_alternate)
-{
- assert(out.size() > 0);
- _in.gid = in;
- assign(_out, _out_is, out.size(), &out[0]);
-}
-
-Substitution::Substitution(Glyph in1, Glyph in2, Glyph out)
- : _left_is(T_NONE), _in_is(T_GLYPHS), _out_is(T_GLYPH), _right_is(T_NONE)
-{
- _in.gids = new Glyph[3];
- _in.gids[0] = 2;
- _in.gids[1] = in1;
- _in.gids[2] = in2;
- _out.gid = out;
-}
-
-Substitution::Substitution(const Vector<Glyph> &in, Glyph out)
- : _left_is(T_NONE), _in_is(T_NONE), _out_is(T_GLYPH), _right_is(T_NONE)
-{
- assert(in.size() > 0);
- assign(_in, _in_is, in.size(), &in[0]);
- _out.gid = out;
-}
-
-Substitution::Substitution(int nin, const Glyph *in, Glyph out)
- : _left_is(T_NONE), _in_is(T_NONE), _out_is(T_GLYPH), _right_is(T_NONE)
-{
- assert(nin > 0);
- assign(_in, _in_is, nin, in);
- _out.gid = out;
-}
-
-Substitution::Substitution(int nleft, int nin, int nout, int nright)
- : _left_is(T_NONE), _in_is(T_NONE), _out_is(T_NONE), _right_is(T_NONE)
-{
- if (nleft)
- assign_space(_left, _left_is, nleft);
- if (nin)
- assign_space(_in, _in_is, nin);
- if (nout)
- assign_space(_out, _out_is, nout);
- if (nright)
- assign_space(_right, _right_is, nright);
-}
-
-Substitution::~Substitution()
-{
- clear(_left, _left_is);
- clear(_in, _in_is);
- clear(_out, _out_is);
- clear(_right, _right_is);
-}
-
-Substitution &
-Substitution::operator=(const Substitution &o)
-{
- assign(_left, _left_is, o._left, o._left_is);
- assign(_in, _in_is, o._in, o._in_is);
- assign(_out, _out_is, o._out, o._out_is);
- assign(_right, _right_is, o._right, o._right_is);
- _alternate = o._alternate;
- return *this;
-}
-
-bool
-Substitution::substitute_in(const Substitute &s, uint8_t t, const Coverage &c)
-{
- switch (t) {
- case T_NONE:
- return true;
- case T_GLYPH:
- return c.covers(s.gid);
- case T_GLYPHS:
- for (int i = 1; i <= s.gids[0]; i++)
- if (!c.covers(s.gids[i]))
- return false;
- return true;
- case T_COVERAGE:
- return *s.coverage <= c;
- default:
- assert(0);
- return false;
- }
-}
-
-bool
-Substitution::substitute_in(const Substitute &s, uint8_t t, const GlyphSet &gs)
-{
- switch (t) {
- case T_NONE:
- return true;
- case T_GLYPH:
- return gs.covers(s.gid);
- case T_GLYPHS:
- for (int i = 1; i <= s.gids[0]; i++)
- if (!gs.covers(s.gids[i]))
- return false;
- return true;
- case T_COVERAGE:
- for (Coverage::iterator i = s.coverage->begin(); i; i++)
- if (!gs.covers(*i))
- return false;
- return true;
- default:
- assert(0);
- return false;
- }
-}
-
-bool
-Substitution::context_in(const Coverage &c) const
-{
- return substitute_in(_left, _left_is, c)
- && substitute_in(_in, _in_is, c)
- && substitute_in(_right, _right_is, c);
-}
-
-bool
-Substitution::context_in(const GlyphSet &gs) const
-{
- return substitute_in(_left, _left_is, gs)
- && substitute_in(_in, _in_is, gs)
- && substitute_in(_right, _right_is, gs);
-}
-
-Glyph
-Substitution::extract_glyph(const Substitute &s, uint8_t t) noexcept
-{
- return (t == T_GLYPH ? s.gid : 0);
-}
-
-Glyph
-Substitution::extract_glyph(const Substitute &s, int which, uint8_t t) noexcept
-{
- switch (t) {
- case T_GLYPH:
- return (which == 0 ? s.gid : 0);
- case T_GLYPHS:
- return (s.gids[0] > which ? s.gids[which + 1] : 0);
- case T_COVERAGE:
- for (Coverage::iterator ci = s.coverage->begin(); ci; ci++, which--)
- if (which == 0)
- return *ci;
- return 0;
- default:
- return 0;
- }
-}
-
-bool
-Substitution::extract_glyphs(const Substitute &s, uint8_t t, Vector<Glyph> &v, bool coverage_ok) noexcept
-{
- switch (t) {
- case T_GLYPH:
- v.push_back(s.gid);
- return true;
- case T_GLYPHS:
- for (int i = 1; i <= s.gids[0]; i++)
- v.push_back(s.gids[i]);
- return true;
- case T_COVERAGE:
- if (coverage_ok) {
- for (Coverage::iterator i = s.coverage->begin(); i; i++)
- v.push_back(*i);
- return true;
- } else
- return false;
- default:
- return false;
- }
-}
-
-Glyph *
-Substitution::extract_glyphptr(const Substitute &s, uint8_t t) noexcept
-{
- switch (t) {
- case T_GLYPH:
- return const_cast<Glyph *>(&s.gid);
- case T_GLYPHS:
- return &s.gids[1];
- default:
- return 0;
- }
-}
-
-int
-Substitution::extract_nglyphs(const Substitute &s, uint8_t t, bool coverage_ok) noexcept
-{
- switch (t) {
- case T_GLYPH:
- return 1;
- case T_GLYPHS:
- return s.gids[0];
- case T_COVERAGE:
- return (coverage_ok ? 1 : 0);
- default:
- return 0;
- }
-}
-
-bool
-Substitution::matches(const Substitute &s, uint8_t t, int pos, Glyph g) noexcept
-{
- switch (t) {
- case T_GLYPH:
- return (pos == 0 && s.gid == g);
- case T_GLYPHS:
- return (pos >= 0 && pos < s.gids[0] && s.gids[1 + pos] == g);
- case T_COVERAGE:
- return (pos == 0 && s.coverage->covers(g));
- default:
- return false;
- }
-}
-
-bool
-Substitution::is_noop() const
-{
- return (_in_is == T_GLYPH && _out_is == T_GLYPH && _in.gid == _out.gid)
- || (_in_is == T_GLYPHS && _out_is == T_GLYPHS
- && _in.gids[0] == _out.gids[0]
- && memcmp(_in.gids, _out.gids, (_in.gids[0] + 1) * sizeof(Glyph)) == 0);
-}
-
-bool
-Substitution::all_in_glyphs(Vector<Glyph> &gs) const
-{
- bool ok = true;
- gs.clear();
- if (_left_is != T_NONE)
- ok &= extract_glyphs(_left, _left_is, gs, false);
- ok &= extract_glyphs(_in, _in_is, gs, false);
- if (_right_is != T_NONE)
- ok &= extract_glyphs(_right, _right_is, gs, false);
- return ok;
-}
-
-bool
-Substitution::all_out_glyphs(Vector<Glyph> &v) const
-{
- bool ok = true;
- if (_left_is != T_NONE)
- ok &= extract_glyphs(_left, _left_is, v, false);
- ok &= extract_glyphs(_out, _out_is, v, false);
- if (_right_is != T_NONE)
- ok &= extract_glyphs(_right, _right_is, v, false);
- return ok;
-}
-
-void
-Substitution::assign_append(Substitute &s, uint8_t &t, const Substitute &ls, uint8_t lt, const Substitute &rs, uint8_t rt)
-{
- if (lt == T_NONE)
- assign(s, t, rs, rt);
- else if (rt == T_NONE)
- assign(s, t, ls, lt);
- else if (lt != T_COVERAGE && rt != T_COVERAGE) {
- int nl = extract_nglyphs(ls, lt, false);
- int nr = extract_nglyphs(rs, rt, false);
- Glyph *gids = new Glyph[nl + nr + 1];
- gids[0] = nl + nr;
- memcpy(&gids[1], extract_glyphptr(ls, lt), nl * sizeof(Glyph));
- memcpy(&gids[1 + nl], extract_glyphptr(rs, rt), nr * sizeof(Glyph));
- clear(s, t);
- s.gids = gids;
- t = T_GLYPHS;
- } else
- throw Error();
-}
-
-void
-Substitution::assign_append(Substitute &s, uint8_t &t, const Substitute &ls, uint8_t lt, Glyph rg)
-{
- Substitute rs;
- rs.gid = rg;
- assign_append(s, t, ls, lt, rs, T_GLYPH);
-}
-
-Substitution
-Substitution::in_out_append_glyph(Glyph g) const
-{
- Substitution s;
- assign(s._left, s._left_is, _left, _left_is);
- assign(s._right, s._right_is, _right, _right_is);
- assign_append(s._in, s._in_is, _in, _in_is, g);
- assign_append(s._out, s._out_is, _out, _out_is, g);
- return s;
-}
-
-void
-Substitution::add_outer_left(Glyph g)
-{
- Substitute ls;
- ls.gid = g;
- assign_append(_left, _left_is, ls, T_GLYPH, _left, _left_is);
-}
-
-void
-Substitution::remove_outer_left()
-{
- if (_left_is == T_GLYPH)
- _left_is = T_NONE;
- else if (_left_is == T_GLYPHS) {
- if (_left.gids[0] == 2)
- assign(_left, _left_is, _left.gids[2]);
- else {
- _left.gids[0]--;
- memmove(_left.gids + 1, _left.gids + 2, _left.gids[0] * sizeof(Glyph));
- }
- }
-}
-
-void
-Substitution::add_outer_right(Glyph g)
-{
- assign_append(_right, _right_is, _right, _right_is, g);
-}
-
-void
-Substitution::remove_outer_right()
-{
- if (_right_is == T_GLYPH)
- _right_is = T_NONE;
- else if (_right_is == T_GLYPHS) {
- if (_right.gids[0] == 2)
- assign(_right, _right_is, _right.gids[1]);
- else
- _right.gids[0]--;
- }
-}
-
-bool
-Substitution::out_alter(const Substitution &o, int pos) noexcept
-{
- const Glyph *g = out_glyphptr();
- int ng = out_nglyphs();
- const Glyph *out_g = o.out_glyphptr();
- int out_ng = o.out_nglyphs();
- int in_ng = o.in_nglyphs();
- if (pos + in_ng > ng || out_ng == 0)
- return false;
-
- // check that input substitution actually matches us
- for (int i = 0; i < in_ng; i++)
- if (!o.in_matches(i, g[pos+i]))
- return false;
-
- // actually change output
- Vector<Glyph> new_g;
- for (int i = 0; i < pos; i++)
- new_g.push_back(g[i]);
- for (int i = 0; i < out_ng; i++)
- new_g.push_back(out_g[i]);
- for (int i = pos + in_ng; i < ng; i++)
- new_g.push_back(g[i]);
- assign(_out, _out_is, new_g.size(), &new_g[0]);
-
- return true;
-}
-
-static void
-unparse_glyphid(StringAccum &sa, Glyph gid, const Vector<PermString> *gns) noexcept
-{
- if (gid > 0 && gns && gns->size() > gid && (*gns)[gid])
- sa << (*gns)[gid];
- else
- sa << "g" << gid;
-}
-
-void
-Substitution::unparse_glyphids(StringAccum &sa, const Substitute &s, uint8_t t, const Vector<PermString> *gns) noexcept
-{
- if (t == T_GLYPH)
- unparse_glyphid(sa, s.gid, gns);
- else if (t == T_GLYPHS) {
- for (int i = 1; i <= s.gids[0]; i++) {
- if (i != 1)
- sa << ' ';
- unparse_glyphid(sa, s.gids[i], gns);
- }
- } else if (t == T_COVERAGE)
- sa << "<coverage>";
- else
- sa << "-";
-}
-
-void
-Substitution::unparse(StringAccum &sa, const Vector<PermString> *gns) const
-{
- if (!*this)
- sa << "NULL[]";
- else {
- if (is_single())
- sa << "SINGLE[";
- else if (is_ligature())
- sa << "LIGATURE[";
- else if (is_multiple())
- sa << "MULTIPLE[";
- else if (is_alternate())
- sa << "ALTERNATE[";
- else if (is_simple_context())
- sa << "SIMPLECONTEXT[";
- else
- sa << "UNKNOWN[";
-
- if (_left_is != T_NONE) {
- unparse_glyphids(sa, _left, _left_is, gns);
- sa << " | ";
- }
- unparse_glyphids(sa, _in, _in_is, gns);
- sa << " => ";
- unparse_glyphids(sa, _out, _out_is, gns);
- if (_right_is != T_NONE) {
- sa << " | ";
- unparse_glyphids(sa, _right, _right_is, gns);
- }
-
- sa << ']';
- }
-}
-
-String
-Substitution::unparse(const Vector<PermString> *gns) const
-{
- StringAccum sa;
- unparse(sa, gns);
- return sa.take_string();
-}
-
-
-
-/**************************
- * Gsub *
- * *
- **************************/
-
-Gsub::Gsub(const Data &d, const Font *otf, ErrorHandler *errh)
- : _chaincontext_reverse_backtrack(false)
-{
- // Fixed Version
- // Offset ScriptList
- // Offset FeatureList
- // Offset LookupList
- if (d.length() == 0)
- throw BlankTable("GSUB");
- if (d.u16(0) != 1)
- throw Format("GSUB");
- if (_script_list.assign(d.offset_subtable(4), errh) < 0)
- throw Format("GSUB script list");
- if (_feature_list.assign(d.offset_subtable(6), errh) < 0)
- throw Format("GSUB feature list");
- _lookup_list = d.offset_subtable(8);
-
- if (!otf)
- return;
-
- // Check for "correct" chaining context rules, as suggested by Adobe's
- // OpenType FDK
- try {
- Name nametable(otf->table("name"), ErrorHandler::silent_handler());
- _chaincontext_reverse_backtrack = nametable.version_chaincontext_reverse_backtrack();
- } catch (Error) {
- }
-}
-
-int
-Gsub::nlookups() const
-{
- return _lookup_list.u16(0);
-}
-
-GsubLookup
-Gsub::lookup(unsigned i) const
-{
- if (i >= _lookup_list.u16(0))
- throw Error("GSUB lookup out of range");
- else
- return GsubLookup(_lookup_list.offset_subtable(2 + i*2));
-}
-
-
-/**************************
- * GsubLookup *
- * *
- **************************/
-
-GsubLookup::GsubLookup(const Data &d)
- : _d(d)
-{
- if (_d.length() < 6)
- throw Format("GSUB Lookup table");
- _type = _d.u16(0);
- if (_type == L_EXTENSION && _d.u16(4) != 0) {
- Data first_subtable = _d.offset_subtable(HEADERSIZE);
- if (first_subtable.length() < 8 || first_subtable.u16(0) != 1)
- throw Format("GSUB Extension Lookup table");
- _type = first_subtable.u16(2);
- }
-}
-
-Data
-GsubLookup::subtable(int i) const
-{
- Data subd = _d.offset_subtable(HEADERSIZE + i*RECSIZE);
- if (_d.u16(0) != L_EXTENSION)
- return subd;
- else if (subd.length() >= 8 && subd.u16(0) == 1 && subd.u16(2) == _type)
- return subd.subtable(subd.u32(4));
- else
- return Data();
-}
-
-void
-GsubLookup::mark_out_glyphs(const Gsub &gsub, Vector<bool> &gmap) const
-{
- int nlookup = _d.u16(4);
- switch (_type) {
- case L_SINGLE:
- for (int i = 0; i < nlookup; i++) {
- GsubSingle x(subtable(i)); // this pattern makes gcc-3.3.4 happier
- x.mark_out_glyphs(gmap);
- }
- return;
- case L_MULTIPLE:
- for (int i = 0; i < nlookup; i++) {
- GsubMultiple x(subtable(i));
- x.mark_out_glyphs(gmap);
- }
- return;
- case L_ALTERNATE:
- for (int i = 0; i < nlookup; i++) {
- GsubMultiple x(subtable(i));
- x.mark_out_glyphs(gmap);
- }
- return;
- case L_LIGATURE:
- for (int i = 0; i < nlookup; i++) {
- GsubLigature x(subtable(i));
- x.mark_out_glyphs(gmap);
- }
- return;
- case L_CONTEXT:
- for (int i = 0; i < nlookup; i++) {
- GsubContext x(subtable(i));
- x.mark_out_glyphs(gsub, gmap);
- }
- return;
- case L_CHAIN:
- for (int i = 0; i < nlookup; i++) {
- GsubChainContext x(subtable(i));
- x.mark_out_glyphs(gsub, gmap);
- }
- return;
- }
-}
-
-bool
-GsubLookup::unparse_automatics(const Gsub &gsub, Vector<Substitution> &v, const Coverage &limit) const
-{
- int nlookup = _d.u16(4);
- switch (_type) {
- case L_SINGLE:
- for (int i = 0; i < nlookup; i++) {
- GsubSingle x(subtable(i)); // this pattern makes gcc-3.3.4 happier
- x.unparse(v, limit);
- }
- return true;
- case L_MULTIPLE:
- for (int i = 0; i < nlookup; i++) {
- GsubMultiple x(subtable(i));
- x.unparse(v);
- }
- return true;
- case L_ALTERNATE:
- for (int i = 0; i < nlookup; i++) {
- GsubMultiple x(subtable(i));
- x.unparse(v, true);
- }
- return true;
- case L_LIGATURE:
- for (int i = 0; i < nlookup; i++) {
- GsubLigature x(subtable(i));
- x.unparse(v);
- }
- return true;
- case L_CONTEXT: {
- bool understood = true;
- for (int i = 0; i < nlookup; i++) {
- GsubContext x(subtable(i));
- understood &= x.unparse(gsub, v, limit);
- }
- return understood;
- }
- case L_CHAIN: {
- bool understood = true;
- for (int i = 0; i < nlookup; i++) {
- GsubChainContext x(subtable(i));
- understood &= x.unparse(gsub, v, limit);
- }
- return understood;
- }
- default:
- return false;
- }
-}
-
-bool
-GsubLookup::apply(const Glyph *g, int pos, int n, Substitution &s) const
-{
- int nlookup = _d.u16(4);
- switch (_type) {
- case L_SINGLE:
- for (int i = 0; i < nlookup; i++) {
- GsubSingle x(subtable(i));
- if (x.apply(g, pos, n, s))
- return true;
- }
- return false;
- case L_MULTIPLE:
- for (int i = 0; i < nlookup; i++) {
- GsubMultiple x(subtable(i));
- if (x.apply(g, pos, n, s))
- return true;
- }
- return false;
- case L_ALTERNATE:
- for (int i = 0; i < nlookup; i++) {
- GsubMultiple x(subtable(i));
- if (x.apply(g, pos, n, s, true))
- return true;
- }
- return false;
- case L_LIGATURE:
- for (int i = 0; i < nlookup; i++) {
- GsubLigature x(subtable(i));
- if (x.apply(g, pos, n, s))
- return true;
- }
- return false;
- default: // XXX
- return false;
- }
-}
-
-
-/**************************
- * GsubSingle *
- * *
- **************************/
-
-GsubSingle::GsubSingle(const Data &d)
- : _d(d)
-{
- if (_d[0] != 0
- || (_d[1] != 1 && _d[1] != 2))
- throw Format("GSUB Single Substitution");
- Coverage coverage(_d.offset_subtable(2));
- if (!coverage.ok()
- || (_d[1] == 2 && coverage.size() > _d.u16(4)))
- throw Format("GSUB Single Substitution coverage");
-}
-
-Coverage
-GsubSingle::coverage() const noexcept
-{
- return Coverage(_d.offset_subtable(2), 0, false);
-}
-
-Glyph
-GsubSingle::map(Glyph g) const
-{
- int ci = coverage().coverage_index(g);
- if (ci < 0)
- return g;
- else if (_d[1] == 1)
- return g + _d.s16(4);
- else
- return _d.u16(HEADERSIZE + FORMAT2_RECSIZE*ci);
-}
-
-void
-GsubSingle::mark_out_glyphs(Vector<bool> &gmap) const
-{
- if (_d[1] == 1) {
- int delta = _d.s16(4);
- for (Coverage::iterator i = coverage().begin(); i; i++)
- gmap[*i + delta] = true;
- } else {
- for (Coverage::iterator i = coverage().begin(); i; i++)
- gmap[_d.u16(HEADERSIZE + i.coverage_index()*FORMAT2_RECSIZE)] = true;
- }
-}
-
-void
-GsubSingle::unparse(Vector<Substitution> &v, const Coverage &limit) const
-{
- if (_d[1] == 1) {
- int delta = _d.s16(4);
- for (Coverage::iterator it = coverage().begin(); it; ++it)
- if (limit.covers(*it))
- v.push_back(Substitution(*it, *it + delta));
- } else {
- for (Coverage::iterator it = coverage().begin(); it; ++it)
- if (limit.covers(*it))
- v.push_back(Substitution(*it, _d.u16(HEADERSIZE + it.coverage_index()*FORMAT2_RECSIZE)));
- }
-}
-
-bool
-GsubSingle::apply(const Glyph *g, int pos, int n, Substitution &s) const
-{
- int ci;
- if (pos < n && (ci = coverage().coverage_index(g[pos])) >= 0) {
- if (_d[1] == 1)
- s = Substitution(g[pos], g[pos] + _d.s16(4));
- else
- s = Substitution(g[pos], _d.u16(HEADERSIZE + ci*FORMAT2_RECSIZE));
- return true;
- } else
- return false;
-}
-
-
-/**************************
- * GsubMultiple *
- * *
- **************************/
-
-GsubMultiple::GsubMultiple(const Data &d)
- : _d(d)
-{
- if (_d[0] != 0 || _d[1] != 1)
- throw Format("GSUB Multiple Substitution");
- Coverage coverage(_d.offset_subtable(2));
- if (!coverage.ok()
- || coverage.size() > _d.u16(4))
- throw Format("GSUB Multiple Substitution coverage");
-}
-
-Coverage
-GsubMultiple::coverage() const noexcept
-{
- return Coverage(_d.offset_subtable(2), 0, false);
-}
-
-bool
-GsubMultiple::map(Glyph g, Vector<Glyph> &v) const
-{
- v.clear();
- int ci = coverage().coverage_index(g);
- if (ci < 0) {
- v.push_back(g);
- return false;
- } else {
- Data seq = _d.offset_subtable(HEADERSIZE + ci*RECSIZE);
- for (int i = 0; i < seq.u16(0); i++)
- v.push_back(seq.u16(SEQ_HEADERSIZE + i*SEQ_RECSIZE));
- return true;
- }
-}
-
-void
-GsubMultiple::mark_out_glyphs(Vector<bool> &gmap) const
-{
- for (Coverage::iterator i = coverage().begin(); i; ++i) {
- Data seq = _d.offset_subtable(HEADERSIZE + i.coverage_index()*RECSIZE);
- for (int j = 0; j < seq.u16(0); ++j)
- gmap[seq.u16(SEQ_HEADERSIZE + j*SEQ_RECSIZE)] = true;
- }
-}
-
-void
-GsubMultiple::unparse(Vector<Substitution> &v, bool is_alternate) const
-{
- Vector<Glyph> result;
- for (Coverage::iterator i = coverage().begin(); i; i++) {
- Data seq = _d.offset_subtable(HEADERSIZE + i.coverage_index()*RECSIZE);
- result.clear();
- for (int j = 0; j < seq.u16(0); j++)
- result.push_back(seq.u16(SEQ_HEADERSIZE + j*SEQ_RECSIZE));
- v.push_back(Substitution(*i, result, is_alternate));
- }
-}
-
-bool
-GsubMultiple::apply(const Glyph *g, int pos, int n, Substitution &s, bool is_alternate) const
-{
- int ci;
- if (pos < n && (ci = coverage().coverage_index(g[pos])) >= 0) {
- Vector<Glyph> result;
- Data seq = _d.offset_subtable(HEADERSIZE + ci*RECSIZE);
- for (int j = 0; j < seq.u16(0); j++)
- result.push_back(seq.u16(SEQ_HEADERSIZE + j*SEQ_RECSIZE));
- s = Substitution(g[pos], result, is_alternate);
- return true;
- } else
- return false;
-}
-
-
-/**************************
- * GsubLigature *
- * *
- **************************/
-
-GsubLigature::GsubLigature(const Data &d)
- : _d(d)
-{
- if (_d[0] != 0
- || _d[1] != 1)
- throw Format("GSUB Ligature Substitution");
- Coverage coverage(_d.offset_subtable(2));
- if (!coverage.ok()
- || coverage.size() > _d.u16(4))
- throw Format("GSUB Ligature Substitution coverage");
-}
-
-Coverage
-GsubLigature::coverage() const noexcept
-{
- return Coverage(_d.offset_subtable(2), 0, false);
-}
-
-bool
-GsubLigature::map(const Vector<Glyph> &gs, Glyph &result, int &consumed) const
-{
- assert(gs.size() > 0);
- result = gs[0];
- consumed = 1;
- int ci = coverage().coverage_index(gs[0]);
- if (ci < 0)
- return false;
- Data ligset = _d.offset_subtable(HEADERSIZE + ci*RECSIZE);
- int nligset = ligset.u16(0);
- for (int i = 0; i < nligset; i++) {
- Data lig = ligset.offset_subtable(SET_HEADERSIZE + i*SET_RECSIZE);
- int nlig = lig.u16(2);
- if (nlig > gs.size() - 1)
- goto bad;
- for (int j = 0; j < nlig - 1; j++)
- if (lig.u16(LIG_HEADERSIZE + j*LIG_RECSIZE) != gs[j + 1])
- goto bad;
- result = lig.u16(0);
- consumed = nlig + 1;
- return true;
- bad: ;
- }
- return false;
-}
-
-void
-GsubLigature::mark_out_glyphs(Vector<bool> &gmap) const
-{
- for (Coverage::iterator i = coverage().begin(); i; i++) {
- Data ligset = _d.offset_subtable(HEADERSIZE + i.coverage_index()*RECSIZE);
- int nligset = ligset.u16(0);
- Vector<Glyph> components(1, *i);
- for (int j = 0; j < nligset; j++) {
- Data lig = ligset.offset_subtable(SET_HEADERSIZE + j*SET_RECSIZE);
- gmap[lig.u16(0)] = true;
- }
- }
-}
-
-void
-GsubLigature::unparse(Vector<Substitution> &v) const
-{
- for (Coverage::iterator i = coverage().begin(); i; i++) {
- Data ligset = _d.offset_subtable(HEADERSIZE + i.coverage_index()*RECSIZE);
- int nligset = ligset.u16(0);
- Vector<Glyph> components(1, *i);
- for (int j = 0; j < nligset; j++) {
- Data lig = ligset.offset_subtable(SET_HEADERSIZE + j*SET_RECSIZE);
- int nlig = lig.u16(2);
- components.resize(1);
- for (int k = 0; k < nlig - 1; k++)
- components.push_back(lig.u16(LIG_HEADERSIZE + k*LIG_RECSIZE));
- v.push_back(Substitution(components, lig.u16(0)));
- }
- }
-}
-
-bool
-GsubLigature::apply(const Glyph *g, int pos, int n, Substitution &s) const
-{
- int ci;
- if (pos < n && (ci = coverage().coverage_index(g[pos])) >= 0) {
- Data ligset = _d.offset_subtable(HEADERSIZE + ci*RECSIZE);
- int nligset = ligset.u16(0);
- for (int j = 0; j < nligset; j++) {
- Data lig = ligset.offset_subtable(SET_HEADERSIZE + j*SET_RECSIZE);
- int nlig = lig.u16(2);
- if (pos + nlig <= n) {
- for (int k = 0; k < nlig - 1; k++)
- if (lig.u16(LIG_HEADERSIZE + k*LIG_RECSIZE) != g[pos + k + 1])
- goto ligature_failed;
- s = Substitution(nlig, &g[pos], lig.u16(0));
- return true;
- }
- ligature_failed: ;
- }
- }
- return false;
-}
-
-
-/**************************
- * GsubContext *
- * *
- **************************/
-
-GsubContext::GsubContext(const Data &d)
- : _d(d)
-{
- switch (_d.u16(0)) {
- case 1:
- case 2:
- break;
- case 3: {
- int ninput = _d.u16(2);
- if (ninput < 1)
- throw Format("GSUB Context Substitution input sequence");
- Coverage coverage(_d.offset_subtable(F3_HSIZE));
- if (!coverage.ok())
- throw Format("GSUB Context Substitution coverage");
- break;
- }
- default:
- throw Format("GSUB Context Substitution");
- }
-}
-
-Coverage
-GsubContext::coverage() const noexcept
-{
- if (_d[1] == 3)
- return Coverage(_d.offset_subtable(F3_HSIZE), 0, false);
- else
- return Coverage();
-}
-
-void
-GsubContext::subruleset_mark_out_glyphs(const Data &data, int nsub,
- int subtab_offset, const Gsub &gsub,
- Vector<bool> &gmap)
-{
- for (int j = 0; j < nsub; ++j) {
- int lookup_index = data.u16(subtab_offset + SUBRECSIZE*j + 2);
- gsub.lookup(lookup_index).mark_out_glyphs(gsub, gmap);
- }
-}
-
-void
-GsubContext::mark_out_glyphs(const Gsub &gsub, Vector<bool> &gmap) const
-{
- if (_d.u16(0) != 3) // XXX
- return;
- int nglyph = _d.u16(2);
- int nsubst = _d.u16(4);
- subruleset_mark_out_glyphs(_d, nsubst, F3_HSIZE + nglyph*2, gsub, gmap);
-}
-
-bool
-GsubContext::f1_unparse(const Data& data,
- int nsub, int subtab_offset,
- const Gsub& gsub, Vector<Substitution>& outsubs,
- Substitution s) {
- Substitution subtab_sub;
- int napplied = 0;
- for (int j = 0; j < nsub; j++) {
- int seq_index = data.u16(subtab_offset + SUBRECSIZE*j);
- int lookup_index = data.u16(subtab_offset + SUBRECSIZE*j + 2);
- // XXX check seq_index against size of output glyphs?
- if (gsub.lookup(lookup_index).apply(s.out_glyphptr(), seq_index, s.out_nglyphs(), subtab_sub)) {
- napplied++;
- s.out_alter(subtab_sub, seq_index);
- }
- }
- outsubs.push_back(s);
- return true;
-}
-
-bool
-GsubContext::f3_unparse(const Data &data,
- int nglyph, int glyphtab_offset, const Coverage &limit,
- int nsub, int subtab_offset,
- const Gsub &gsub, Vector<Substitution> &outsubs,
- const Substitution &prototype_sub)
-{
- Vector<Substitution> subs;
- subs.push_back(prototype_sub);
- Vector<Substitution> work_subs;
-
- // get array of possible substitutions including contexts
- for (int i = 0; i < nglyph; i++) {
- assert(!work_subs.size());
- Coverage c(data.offset_subtable(glyphtab_offset + i*2));
- for (Coverage::iterator ci = (c & limit).begin(); ci; ci++)
- for (int j = 0; j < subs.size(); j++)
- work_subs.push_back(subs[j].in_out_append_glyph(*ci));
- subs.clear();
- subs.swap(work_subs);
- }
-
- // now, apply referred lookups to the resulting substitution array
- Substitution subtab_sub;
- for (int i = 0; i < subs.size(); i++) {
- Substitution &s = subs[i];
- int napplied = 0;
- for (int j = 0; j < nsub; j++) {
- int seq_index = data.u16(subtab_offset + SUBRECSIZE*j);
- int lookup_index = data.u16(subtab_offset + SUBRECSIZE*j + 2);
- // XXX check seq_index against size of output glyphs?
- if (gsub.lookup(lookup_index).apply(s.out_glyphptr(), seq_index, s.out_nglyphs(), subtab_sub)) {
- napplied++;
- s.out_alter(subtab_sub, seq_index);
- }
- }
- // 26.Jun.2003 -- always push substitution back, since the no-op might
- // override a following substitution
- outsubs.push_back(s);
- }
-
- return true; // XXX
-}
-
-bool
-GsubContext::unparse(const Gsub &gsub, Vector<Substitution> &v, const Coverage &limit) const
-{
- if (_d.u16(0) != 3) // XXX
- return false;
- int nglyph = _d.u16(2);
- int nsubst = _d.u16(4);
- return f3_unparse(_d, nglyph, F3_HSIZE, limit, nsubst, F3_HSIZE + nglyph*2, gsub, v, Substitution());
-}
-
-
-/**************************
- * GsubChainContext *
- * *
- **************************/
-
-GsubChainContext::GsubChainContext(const Data &d)
- : _d(d)
-{
- switch (_d.u16(0)) {
- case 1: {
- Coverage coverage(_d.offset_subtable(2));
- if (!coverage.ok()
- || coverage.size() != _d.u16(4))
- throw Format("ChainContext Substitution coverage");
- break;
- }
- case 2:
- break;
- case 3: {
- int nbacktrack = _d.u16(2);
- int input_offset = F3_HSIZE + nbacktrack*2;
- int ninput = _d.u16(input_offset);
- if (ninput < 1)
- throw Format("GSUB ChainContext Substitution input sequence");
- Coverage coverage(_d.offset_subtable(input_offset + F3_INPUT_HSIZE));
- if (!coverage.ok())
- throw Format("GSUB ChainContext Substitution coverage");
- break;
- }
- default:
- throw Format("GSUB ChainContext Substitution");
- }
-}
-
-Coverage
-GsubChainContext::coverage() const noexcept
-{
- switch (_d.u16(0)) {
- case 1:
- return Coverage(_d.offset_subtable(2), 0, false);
- case 3: {
- int nbacktrack = _d.u16(2);
- int input_offset = F3_HSIZE + nbacktrack*2;
- return Coverage(_d.offset_subtable(input_offset + F3_INPUT_HSIZE), 0, false);
- }
- default:
- return Coverage();
- }
-}
-
-void
-GsubChainContext::mark_out_glyphs(const Gsub &gsub, Vector<bool> &gmap) const
-{
- switch (_d.u16(0)) {
- case 1: {
- int nsubruleset = _d.u16(4);
- for (int i = 0; i != nsubruleset; ++i) {
- int srs_offset = _d.u16(6 + i*2);
- int nsubrule = _d.u16(srs_offset);
- for (int j = 0; j != nsubrule; ++j) {
- int subrule_offset = srs_offset + _d.u16(srs_offset + 2 + j*2);
- int nbacktrack = _d.u16(subrule_offset);
- int input_offset = subrule_offset + 2 + nbacktrack*2;
- int ninput = _d.u16(input_offset);
- int lookahead_offset = input_offset + 2 + (ninput-1)*2;
- int nlookahead = _d.u16(lookahead_offset);
- int subst_offset = lookahead_offset + 2 + nlookahead*2;
- int nsubst = _d.u16(subst_offset);
-
- GsubContext::subruleset_mark_out_glyphs(_d, nsubst, subst_offset + 2, gsub, gmap);
- }
- }
- break;
- }
- case 3: {
- int nbacktrack = _d.u16(2);
- int input_offset = F3_HSIZE + nbacktrack*2;
- int ninput = _d.u16(input_offset);
- int lookahead_offset = input_offset + F3_INPUT_HSIZE + ninput*2;
- int nlookahead = _d.u16(lookahead_offset);
- int subst_offset = lookahead_offset + F3_LOOKAHEAD_HSIZE + nlookahead*2;
- int nsubst = _d.u16(subst_offset);
-
- GsubContext::subruleset_mark_out_glyphs(_d, nsubst, subst_offset + F3_SUBST_HSIZE, gsub, gmap);
- break;
- }
- default:
- return;
- }
-}
-
-bool
-GsubChainContext::f1_unparse(const Gsub &gsub, Vector<Substitution> &v, const Coverage &limit) const
-{
- Coverage input0_coverage(_d.offset_subtable(2), 0, false);
- Coverage::iterator i0iter = input0_coverage.begin();
-
- for (int i0index = 0; i0index != input0_coverage.size();
- ++i0index, ++i0iter) {
- int srs_offset = _d.u16(6 + i0index*2);
- int nsubrule = _d.u16(srs_offset);
- for (int srindex = 0; srindex != nsubrule; ++srindex) {
- int sr_offset = srs_offset + _d.u16(srs_offset + 2 + srindex*2);
- int nbacktrack = _d.u16(sr_offset);
- int input_offset = sr_offset + 2 + nbacktrack*2;
- int ninput = _d.u16(input_offset);
- int lookahead_offset = input_offset + 2 + (ninput-1)*2;
- int nlookahead = _d.u16(lookahead_offset);
- int subst_offset = lookahead_offset + 2 + nlookahead*2;
- int nsubst = _d.u16(subst_offset);
- int subtab_offset = subst_offset + 2;
-
- Substitution s(nbacktrack, ninput, ninput, nlookahead);
- if (gsub.chaincontext_reverse_backtrack()) {
- for (int i = 0; i != nbacktrack; ++i)
- s.left_glyphptr()[i] = _d.u16(sr_offset + 2 + i*2);
- } else {
- for (int i = nbacktrack - 1; i != -1; --i)
- s.left_glyphptr()[nbacktrack - 1 - i] = _d.u16(sr_offset + 2 + i*2);
- }
- Glyph* in_begin = s.in_glyphptr();
- Glyph* out_begin = s.out_glyphptr();
- in_begin[0] = out_begin[0] = *i0iter;
- for (int i = 1; i != ninput; ++i)
- in_begin[i] = out_begin[i] = _d.u16(input_offset + 2 + (i-1)*2);
- for (int i = 0; i != ninput; ++i)
- if (!limit.covers(in_begin[i]))
- goto skip;
- for (int i = 0; i != nlookahead; ++i)
- s.right_glyphptr()[i] = _d.u16(lookahead_offset + 2 + i*2);
-
- // now, apply referred lookups to the resulting substitution array
- GsubContext::f1_unparse(_d, nsubst, subtab_offset, gsub, v, s);
- skip: ;
- }
- }
-
- return true;
-}
-
-bool
-GsubChainContext::f3_unparse(const Gsub &gsub, Vector<Substitution> &v, const Coverage &limit) const
-{
- int nbacktrack = _d.u16(2);
- int input_offset = F3_HSIZE + nbacktrack*2;
- int ninput = _d.u16(input_offset);
- int lookahead_offset = input_offset + F3_INPUT_HSIZE + ninput*2;
- int nlookahead = _d.u16(lookahead_offset);
- int subst_offset = lookahead_offset + F3_LOOKAHEAD_HSIZE + nlookahead*2;
- int nsubst = _d.u16(subst_offset);
-
- Vector<Coverage> backtrackc;
- Vector<Coverage> lookaheadc;
- if (gsub.chaincontext_reverse_backtrack()) {
- for (int i = 0; i < nbacktrack; i++)
- backtrackc.push_back(Coverage(_d.offset_subtable(F3_HSIZE + i*2)) & limit);
- } else {
- for (int i = nbacktrack - 1; i >= 0; i--)
- backtrackc.push_back(Coverage(_d.offset_subtable(F3_HSIZE + i*2)) & limit);
- }
- for (int i = 0; i < nlookahead; i++)
- lookaheadc.push_back(Coverage(_d.offset_subtable(lookahead_offset + F3_LOOKAHEAD_HSIZE + i*2)) & limit);
-
- // give up if would generate too many substitutions
- double n = 1;
- for (int i = 0; i < nbacktrack; ++i)
- n *= backtrackc[i].size();
- for (int i = 0; i < nlookahead; ++i)
- n *= lookaheadc[i].size();
- for (int i = 0; i < ninput; ++i)
- n *= (Coverage(_d.offset_subtable(input_offset + F3_INPUT_HSIZE + i*2)) & limit).size();
- if (n > 1000000) // arbitrary cutoff
- return false;
-
- Vector<Coverage::iterator> backtracki;
- Vector<Coverage::iterator> lookaheadi;
- for (int i = 0; i < nbacktrack; i++)
- backtracki.push_back(backtrackc[i].begin());
- for (int i = 0; i < nlookahead; i++)
- lookaheadi.push_back(lookaheadc[i].begin());
-
- bool any = false;
-
- while (1) {
-
- // run GsubContext
- Substitution s(nbacktrack, 0, 0, nlookahead);
- Glyph *left_begin = s.left_glyphptr();
- for (int i = 0; i < nbacktrack; i++)
- left_begin[i] = *backtracki[i];
- Glyph *right_begin = s.right_glyphptr();
- for (int i = 0; i < nlookahead; i++)
- right_begin[i] = *lookaheadi[i];
-
- any |= GsubContext::f3_unparse(_d, ninput, input_offset + F3_INPUT_HSIZE, limit, nsubst, subst_offset + F3_SUBST_HSIZE, gsub, v, s);
-
- // step iterators
- for (int i = nlookahead - 1; i >= 0; i--) {
- lookaheadi[i]++;
- if (lookaheadi[i])
- goto next;
- lookaheadi[i] = lookaheadc[i].begin();
- }
- for (int i = nbacktrack - 1; i >= 0; i--) {
- backtracki[i]++;
- if (backtracki[i])
- goto next;
- backtracki[i] = backtrackc[i].begin();
- }
- break;
-
- next: ;
- }
-
- return any;
-}
-
-bool
-GsubChainContext::unparse(const Gsub &gsub, Vector<Substitution> &v, const Coverage &limit) const
-{
- if (_d.u16(0) == 1)
- return f1_unparse(gsub, v, limit);
- else if (_d.u16(0) == 3)
- return f3_unparse(gsub, v, limit);
- else
- return false;
-}
-
-
-}}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
deleted file mode 100644
index 0e8e4e4f6b2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfname.cc
+++ /dev/null
@@ -1,194 +0,0 @@
-// -*- related-file-name: "../include/efont/otfname.hh" -*-
-
-/* otfname.{cc,hh} -- OpenType name table
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfname.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-
-#define USHORT_AT(d) (Data::u16_aligned(d))
-
-namespace Efont { namespace OpenType {
-
-static const uint16_t mac_roman_encoding[] = {
- // 0x80-0x8F
- 0x00C4, 0x00C5, 0x00C7, 0x00C9, // Adieresis Aring Ccedilla Eacute
- 0x00D1, 0x00D6, 0x00DC, 0x00E1, // Ntilde Odieresis Udieresis aacute
- 0x00E0, 0x00E2, 0x00E4, 0x00E3, // agrave acircumflex adieresis atilde
- 0x00E5, 0x00E7, 0x00E9, 0x00E8, // aring ccedilla eacute egrave
- // 0x90-0x9F
- 0x00EA, 0x00EB, 0x00ED, 0x00EC, // ecircumflex edieresis iacute igrave
- 0x00EE, 0x00EF, 0x00F1, 0x00F3, // icircumflex idieresis ntilde oacute
- 0x00F2, 0x00F4, 0x00F6, 0x00F5, // ograve ocircumflex odieresis otilde
- 0x00FA, 0x00F9, 0x00FB, 0x00FC, // uacute ugrave ucircumflex udieresis
- // 0xA0-0xAF
- 0x2020, 0x00B0, 0x00A2, 0x00A3, // dagger degree cent sterling
- 0x00A7, 0x2022, 0x00B6, 0x00DF, // section bullet paragraph germandbls
- 0x00AE, 0x00A9, 0x2122, 0x00B4, // registered copyright trademark acute
- 0x00A8, 0x2260, 0x00C6, 0x00D8, // dieresis notequal AE Oslash
- // 0xB0-0xBF
- 0x221E, 0x00B1, 0x2264, 0x2265, // infinity plusminus lessequal greaterequal
- 0x00A5, 0x00B5, 0x2202, 0x2211, // yen mu partialdiff summation
- 0x220F, 0x03C0, 0x222B, 0x00AA, // product pi integral ordfeminine
- 0x00BA, 0x03A9, 0x00E6, 0x00F8, // ordmasculine Omegagreek ae oslash
- // 0xC0-0xCF
- 0x00BF, 0x00A1, 0x00AC, 0x221A, // questiondown exclamdown logicalnot radical
- 0x0192, 0x2248, 0x2206, 0x00AB, // florin approxequal increment guillemotleft
- 0x00BB, 0x2026, 0x00A0, 0x00C0, // guillemotright ellipsis nbspace Agrave
- 0x00C3, 0x00D5, 0x0152, 0x0153, // Atilde Otilde OE oe
- // 0xD0-0xDF
- 0x2013, 0x2014, 0x201C, 0x201D, // endash emdash quotedblleft quotedblright
- 0x2018, 0x2019, 0x00F7, 0x25CA, // quoteleft quoteright divide lozenge
- 0x00FF, 0x0178, 0x2044, 0x20AC, // ydieresis Ydieresis fraction Euro
- 0x2039, 0x203A, 0xFB01, 0xFB02, // guilsinglleft guilsinglright fi fl
- // 0xE0-0xEF
- 0x2021, 0x00B7, 0x201A, 0x201E, // daggerdbl middot quotesinglbase quotedblbase
- 0x2030, 0x00C2, 0x00CA, 0x00C1, // perthousand Acircumflex Ecircumflex Aacute
- 0x00CB, 0x00C8, 0x00CD, 0x00CE, // Edieresis Egrave Iacute Icircumflex
- 0x00CF, 0x00CC, 0x00D3, 0x00D4, // Idieresis Igrave Oacute Ocircumflex
- // 0xF0-0xFF
- 0xF8FF, 0x00D2, 0x00DA, 0x00DB, // apple Ograve Uacute Ucircumflex
- 0x00D9, 0x0131, 0x02C6, 0x02DC, // Ugrave dotlessi circumflex tilde
- 0x00AF, 0x02D8, 0x02D9, 0x02DA, // macron breve dotaccent ring
- 0x00B8, 0x02DD, 0x02DB, 0x02C7 // cedilla hungarumlaut ogonek caron
-};
-
-
-Name::Name(const String &s, ErrorHandler *errh)
- : _str(s) {
- _str.align(2);
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
-}
-
-int
-Name::parse_header(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // USHORT version
- // USHORT numTables
- int len = _str.length();
- const uint8_t *data = _str.udata();
- if (len == 0)
- return errh->error("font has no %<name%> table"), -EFAULT;
- if (HEADER_SIZE > len)
- return errh->error("%<name%> table too small"), -EFAULT;
- if (!(data[0] == '\000' && data[1] == '\000'))
- return errh->error("bad %<name%> version number"), -ERANGE;
- int count = USHORT_AT(data + 2);
- if (HEADER_SIZE + count*NAMEREC_SIZE > len)
- return errh->error("%<name%> table too small"), -EFAULT;
- return 0;
-}
-
-String
-Name::name(const_iterator i) const
-{
- if (i < end()) {
- int stringOffset = USHORT_AT(_str.udata() + 4);
- int length = USHORT_AT(reinterpret_cast<const uint8_t *>(i) + 8);
- int offset = USHORT_AT(reinterpret_cast<const uint8_t *>(i) + 10);
- if (stringOffset + offset + length <= _str.length())
- return _str.substring(stringOffset + offset, length);
- }
- return String();
-}
-
-String
-Name::utf8_name(const_iterator i) const
-{
- // This code can handle Microsoft Unicode BMP and Mac Roman encodings,
- // but that's it
- if (!(i < end()))
- return String();
- int stringOffset = USHORT_AT(_str.udata() + 4);
- int length = USHORT_AT(reinterpret_cast<const uint8_t *>(i) + 8);
- int offset = USHORT_AT(reinterpret_cast<const uint8_t *>(i) + 10);
- if (stringOffset + offset + length > _str.length())
- return String();
- const unsigned char *begins = _str.udata() + stringOffset + offset;
- const unsigned char *ends = begins + length;
- if (platform(*i) == P_MICROSOFT && encoding(*i) == E_MS_UNICODE_BMP) {
- StringAccum sa;
- for (const unsigned char *s = begins; s + 1 < ends; s += 2)
- sa.append_utf8(Data::u16(s));
- return sa.take_string();
- } else if (platform(*i) == P_MACINTOSH && encoding(*i) == E_MAC_ROMAN) {
- StringAccum sa;
- for (const unsigned char *s = begins; s < ends; s++)
- if (*s >= 0x80) {
- sa.append(begins, s);
- sa.append_utf8(mac_roman_encoding[*s & 0x7F]);
- begins = s + 1;
- }
- if (!sa)
- return _str.substring(begins, ends);
- else {
- sa.append(begins, ends);
- return sa.take_string();
- }
- } else
- return _str.substring(begins, ends);
-}
-
-String
-Name::english_name(int nameid) const
-{
- const_iterator end = this->end();
- const_iterator it = std::find_if(begin(), end, PlatformPred(nameid, P_MICROSOFT, E_MS_UNICODE_BMP, L_MS_ENGLISH_AMERICAN));
- if (it == end)
- it = std::find_if(begin(), end, PlatformPred(nameid, P_MACINTOSH, E_MAC_ROMAN, 0));
- return utf8_name(it);
-}
-
-bool
-Name::version_chaincontext_reverse_backtrack() const
-{
- String vstr = name(std::find_if(begin(), end(), PlatformPred(N_VERSION, 1, 0, 0)));
- const char *v = vstr.begin(), *endv = vstr.end();
- if (v + 20 <= endv) {
- if (v[0] != 'O' || v[1] != 'T' || v[2] != 'F' || v[3] == ';')
- goto try_core;
- for (v += 4; v < endv && *v != ';'; v++)
- /* do nothing */;
- if (v + 3 >= endv || v[1] != 'P' || v[2] != 'S' || v[3] == ';')
- goto try_core;
- for (v += 4; v < endv && *v != ';'; v++)
- /* do nothing */;
- if (v + 11 >= endv || memcmp(v + 1, "Core 1.0.", 9) != 0
- || (v[10] != '2' && v[10] != '3')
- || (v[11] < '0' || v[11] > '9'))
- goto try_core;
- return true;
- }
- try_core:
- v = vstr.begin();
- if (v + 16 > endv
- || v[0] != 'C' || v[1] != 'o' || v[2] != 'r' || v[3] != 'e')
- return false;
- for (v += 4; v < endv && *v != ';'; v++)
- /* do nothing */;
- if (v + 12 > endv || memcmp(v, ";makeotf.lib", 12) != 0)
- return false;
- return true;
-}
-
-} // namespace Efont::OpenType
-} // namespace Efont
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
deleted file mode 100644
index de06d4904b9..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfos2.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-// -*- related-file-name: "../include/efont/otfos2.hh" -*-
-
-/* otfos2.{cc,hh} -- OpenType OS/2 table
- *
- * Copyright (c) 2005-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfos2.hh>
-#include <lcdf/error.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-namespace Efont { namespace OpenType {
-
-Os2::Os2(const Data &data, ErrorHandler *errh)
- : _data(data)
-{
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
- if (_error < 0)
- _data = Data();
-}
-
-int
-Os2::parse_header(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // USHORT version
- if (HEADER_SIZE > _data.length())
- return errh->error("OTF OS/2 table too small"), -EFAULT;
- if (_data.u16(0) > 5)
- return errh->error("unexpected OS/2 version number %d", _data.u16(0)), -ERANGE;
- return 0;
-}
-
-}}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
deleted file mode 100644
index af04b19edcb..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/otfpost.cc
+++ /dev/null
@@ -1,200 +0,0 @@
-// -*- related-file-name: "../include/efont/otfpost.hh" -*-
-
-/* otfpost.{cc,hh} -- OpenType post table
- *
- * Copyright (c) 2006-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/otfpost.hh>
-#include <lcdf/error.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <efont/otfdata.hh> // for ntohl()
-
-#define USHORT_AT(d) (Data::u16_aligned(d))
-#define SHORT_AT(d) (Data::s16_aligned(d))
-#define ULONG_AT(d) (Data::u32_aligned(d))
-#define LONG_AT(d) (Data::s32_aligned(d))
-
-namespace Efont { namespace OpenType {
-
-static const char * const mac_names[] = {
- ".notdef", ".null", "nonmarkingreturn", "space", // 0-3
- "exclam", "quotedbl", "numbersign", "dollar", // 4-7
- "percent", "ampersand", "quotesingle", "parenleft", // 8-11
- "parenright", "asterisk", "plus", "comma", // 12-15
- "hyphen", "period", "slash", "zero", // 16-19
- "one", "two", "three", "four", // 20-23
- "five", "six", "seven", "eight", // 24-27
- "nine", "colon", "semicolon", "less", // 28-31
- "equal", "greater", "question", "at", // 32-35
- "A", "B", "C", "D", // 36-39
- "E", "F", "G", "H", // 40-43
- "I", "J", "K", "L", // 44-47
- "M", "N", "O", "P", // 48-51
- "Q", "R", "S", "T", // 52-55
- "U", "V", "W", "X", // 56-59
- "Y", "Z", "bracketleft", "backslash", // 60-63
- "bracketright", "asciicircum", "underscore", "grave", // 64-67
- "a", "b", "c", "d", // 68-71
- "e", "f", "g", "h", // 72-75
- "i", "j", "k", "l", // 76-79
- "m", "n", "o", "p", // 80-83
- "q", "r", "s", "t", // 84-87
- "u", "v", "w", "x", // 88-91
- "y", "z", "braceleft", "bar", // 92-95
- "braceright", "asciitilde", "Adieresis", "Aring", // 96-99
- "Ccedilla", "Eacute", "Ntilde", "Odieresis", // 100-103
- "Udieresis", "aacute", "agrave", "acircumflex", // 104-107
- "adieresis", "atilde", "aring", "ccedilla", // 108-111
- "eacute", "egrave", "ecircumflex", "edieresis", // 112-115
- "iacute", "igrave", "icircumflex", "idieresis", // 116-119
- "ntilde", "oacute", "ograve", "ocircumflex", // 120-123
- "odieresis", "otilde", "uacute", "ugrave", // 124-127
- "ucircumflex", "udieresis", "dagger", "degree", // 128-131
- "cent", "sterling", "section", "bullet", // 132-135
- "paragraph", "germandbls", "registered", "copyright", // 136-139
- "trademark", "acute", "dieresis", "notequal", // 140-143
- "AE", "Oslash", "infinity", "plusminus", // 144-147
- "lessequal", "greaterequal", "yen", "mu", // 148-151
- "partialdiff", "summation", "product", "pi", // 152-155
- "integral", "ordfeminine", "ordmasculine", "Omega", // 156-159
- "ae", "oslash", "questiondown", "exclamdown", // 160-163
- "logicalnot", "radical", "florin", "approxequal", // 164-167
- "Delta", "guillemotleft", "guillemotright", "ellipsis", // 168-171
- "nonbreakingspace", "Agrave", "Atilde", "Otilde", // 172-175
- "OE", "oe", "endash", "emdash", // 176-179
- "quotedblleft", "quotedblright", "quoteleft", "quoteright", // 180-183
- "divide", "lozenge", "ydieresis", "Ydieresis", // 184-187
- "fraction", "currency", "guilsinglleft", "guilsinglright", // 188-191
- "fi", "fl", "daggerdbl", "periodcentered", // 192-195
- "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex", // 196-199
- "Ecircumflex", "Aacute", "Edieresis", "Egrave", // 200-203
- "Iacute", "Icircumflex", "Idieresis", "Igrave", // 204-207
- "Oacute", "Ocircumflex", "apple", "Ograve", // 208-211
- "Uacute", "Ucircumflex", "Ugrave", "dotlessi", // 212-215
- "circumflex", "tilde", "macron", "breve", // 216-219
- "dotaccent", "ring", "cedilla", "hungarumlaut", // 220-223
- "ogonek", "caron", "Lslash", "lslash", // 224-227
- "Scaron", "scaron", "Zcaron", "zcaron", // 228-231
- "brokenbar", "Eth", "eth", "Yacute", // 232-235
- "yacute", "Thorn", "thorn", "minus", // 236-239
- "multiply", "onesuperior", "twosuperior", "threesuperior", // 240-243
- "onehalf", "onequarter", "threequarters", "franc", // 244-247
- "Gbreve", "gbreve", "Idotaccent", "Scedilla", // 248-251
- "scedilla", "Cacute", "cacute", "Ccaron", // 252-255
- "ccaron", "dcroat" // 256-257
-};
-
-
-Post::Post(const String &s, ErrorHandler *errh)
- : _str(s), _version(0)
-{
- _str.align_long();
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
-}
-
-int
-Post::parse_header(ErrorHandler *errh)
-{
- // HEADER FORMAT:
- // 0 FIXED version
- // 4 FIXED italicAngle
- // 8 FWORD underlinePosition
- // 10 FWORD underlineThickness
- // 12 ULONG isFixedPitch
- // 16 ULONG minMemType42
- // 20 ULONG maxMemType42
- // 24 ULONG minMemType1
- // 28 ULONG maxMemType1
- int len = _str.length();
- const uint8_t *data = _str.udata();
- if (HEADER_SIZE > len)
- return errh->error("OTF post table too small"), -EFAULT;
- _version = USHORT_AT(data); // ignore minor version number
- // except that version 2.5 isn't compatible
- if (_version < 1 || _version > 3
- || (_version == 2 && USHORT_AT(data + 2) == 0x5000))
- return errh->error("bad post version number"), -ERANGE;
- if (_version == 2) {
- // VERSION 2.0 GLYPH NAMES FORMAT:
- // 32 USHORT numberOfGlyphs
- // 34 USHORT glyphNameIndex[mumberOfGlyphs]
- // CHAR names[...]
- if (HEADER_SIZE + 2 > len
- || ((_nglyphs = USHORT_AT(data + HEADER_SIZE)),
- HEADER_SIZE + 2 + 2 * _nglyphs > len))
- return errh->error("OTF post table too small for glyph map"), -EFAULT;
- int pos = HEADER_SIZE + 2 + 2 * _nglyphs;
- while (pos < len && pos + data[pos] < len) {
- _extend_glyph_names.push_back(pos);
- pos += 1 + data[pos];
- }
- const uint8_t *gni = data + HEADER_SIZE + 2;
- for (int i = 0, g; i < _nglyphs; ++i, gni += 2)
- if ((g = USHORT_AT(gni)) >= _extend_glyph_names.size() + N_MAC_GLYPHS)
- return errh->error("bad glyph name index in post");
- } else if (_version == 1)
- _nglyphs = N_MAC_GLYPHS;
- else
- _nglyphs = -1;
-
- return 0;
-}
-
-double
-Post::italic_angle() const
-{
- if (error() < 0)
- return -1;
- return (double) LONG_AT(_str.udata() + 4) / 65536.;
-}
-
-bool
-Post::is_fixed_pitch() const
-{
- if (error() < 0)
- return false;
- return ULONG_AT(_str.udata() + 12) != 0;
-}
-
-bool
-Post::glyph_names(Vector<PermString> &gnames) const
-{
- gnames.clear();
- if (error() < 0)
- return false;
- if (_version == 1) {
- for (int i = 0; i < N_MAC_GLYPHS; i++)
- gnames.push_back(mac_names[i]);
- return true;
- } else if (_version == 2) {
- const uint8_t *data = _str.udata();
- const uint8_t *gni = data + HEADER_SIZE + 2;
- for (int i = 0; i < _nglyphs; i++, gni += 2) {
- int g = USHORT_AT(gni);
- if (g < N_MAC_GLYPHS)
- gnames.push_back(mac_names[g]);
- else {
- const uint8_t *n = data + _extend_glyph_names[g - N_MAC_GLYPHS];
- gnames.push_back(PermString((const char *) n + 1, *n));
- }
- }
- return true;
- } else
- return false;
-}
-
-}}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
deleted file mode 100644
index 03d04e9097e..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/pairop.cc
+++ /dev/null
@@ -1,153 +0,0 @@
-// -*- related-file-name: "../include/efont/pairop.hh" -*-
-
-/* pairop.{cc,hh} -- ligature/kern font metrics
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/pairop.hh>
-#include <stdio.h>
-namespace Efont {
-
-PairProgram::PairProgram(const PairProgram &o)
- : _reversed(o._reversed),
- _left_map(o._left_map),
- _op(o._op)
-{
-}
-
-
-void
-PairProgram::reserve_glyphs(int e)
-{
- if (e <= _left_map.size()) return;
- _left_map.resize(e, -1);
-}
-
-
-PairOpIndex
-PairProgram::find(GlyphIndex leftgi, GlyphIndex rightgi) const
-{
- PairOpIndex opi = find_left(leftgi);
- while (opi >= 0) {
- if (op(opi).right() == rightgi)
- return opi;
- opi = op(opi).next_left();
- }
- return -1;
-}
-
-
-bool
-PairProgram::add_kern(GlyphIndex left, GlyphIndex right, int ki)
-{
- PairOp newop(left, right, ki, _left_map[left]);
- int newopi = _op.size();
- _op.push_back(newop);
- _left_map[left] = newopi;
-
- //PairOpIndex duplicate = map[newop];
- //map.add(newop, newopi);
-
- return false;
-}
-
-
-bool
-PairProgram::add_lig(GlyphIndex left, GlyphIndex right, GlyphIndex result,
- int kind)
-{
- PairOp newop(left, right, result, kind, _left_map[left]);
- int newopi = _op.size();
- _op.push_back(newop);
- _left_map[left] = newopi;
-
- //PairOpIndex duplicate = map[newop];
- //map.add(newop, newopi);
-
- return false;
-}
-
-
-void
-PairProgram::unreverse()
-{
- if (!_reversed) return;
-
- _left_map.assign(_left_map.size(), -1);
-
- for (PairOpIndex opi = _op.size() - 1; opi >= 0; opi--) {
- PairOp &o = _op[opi];
- PairOpIndex l = o.left();
- o.set_next(_left_map[l]);
- _left_map[l] = opi;
- }
-
- _reversed = false;
-}
-
-
-void
-PairProgram::optimize()
-{
- /* PairOpIndex opi;
-
- // Get rid of 0-valued kerns.
- for (opi = 0; opi < opcount(); opi++) {
- PairOp &o = op(opi);
- if (o.is_kern() && o.value() == 0)
- o.noopify();
- }*/
-}
-
-
-inline const char *
-PairProgram::print_name(GlyphIndex) const
-{
-#if 0
- if (gi == opAnychar) return "*";
- else return glyph(gi).name();
-#endif
- return 0;
-}
-
-
-void
-PairProgram::print() const
-{
-#if 0
- for (GlyphIndex gi = 0; gi < glyphblock.size(); gi++)
- if (glyphblock[gi] != -1)
- printf("%s->B%d ", glyph(gi).name().c_str(), glyphblock[gi]);
- printf("\n");
-
- for (int i = 0; i < blocks.size(); i++) {
- printf("B%-2d: ", i);
- PairOpBlock &opb = *blocks[i];
- for (int j = 0; j < opb.size(); j++)
- if (opb[j].is_lig())
- printf("%s->%s ", printname(opb[j].right()),
- printname(opb[j].result()));
- else if (opb[j].is_kern())
- printf("%s[%g] ", printname(opb[j].right()), kern(opb[j].value()));
- else if (opb[j].is_noop())
- printf(". ");
- if (blocks[i]->nextblock != -1)
- printf(" :B%d", blocks[i]->nextblock);
- printf("\n");
- }
-#endif
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
deleted file mode 100644
index dc3c7e8da23..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/psres.cc
+++ /dev/null
@@ -1,419 +0,0 @@
-// -*- related-file-name: "../include/efont/psres.hh" -*-
-
-/* psres.{cc,hh} -- PSres.upr files
- *
- * Copyright (c) 1999-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <lcdf/slurper.hh>
-/* Get the correct functions for directory searching */
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define DIR_NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define DIR_NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-#include <string.h>
-namespace Efont {
-
-PsresDatabase::PsresDatabase()
- : _section_map(0)
-{
- _sections.push_back((PsresDatabaseSection *)0);
-}
-
-PsresDatabase::~PsresDatabase()
-{
- for (int i = 1; i < _sections.size(); i++)
- delete _sections[i];
-}
-
-
-PsresDatabaseSection::PsresDatabaseSection(PermString section_name)
- : _section_name(section_name), _map(0)
-{
- _directories.push_back(PermString());
- _values.push_back(String());
- _value_escaped.push_back(true);
-}
-
-
-/* read_ps_line - gathers a line in `slurper', returns true if it is a normal
- line, false on end of file or a separator line (starts with `.'). Handles
- continuation lines but not backslash escaping. Stores location of first
- non-backslashed equals sign in `*equals_pos', or -1 if none. */
-
-static bool
-read_psres_line(Slurper &slurper, int *equals_pos)
-{
- if (equals_pos) *equals_pos = -1;
-
- char *s = slurper.next_line();
- if (!s) return false;
-
- bool is_terminator = s[0] == '.';
- unsigned len, pos = 0, last_escape = ~0;
- bool found_eq = false;
-
- while (true) {
- len = slurper.cur_line_length();
- if (len == 0) break;
-
- // process backslash escapes
- for (; pos < len - 1; pos++) {
- if (s[pos] == '\\') {
- // quote the next character
- pos++;
- last_escape = pos;
- } else if (!found_eq && s[pos] == '=') {
- // an equals sign: store its position
- if (equals_pos) *equals_pos = pos;
- found_eq = true;
- } else if (s[pos] == '%') {
- // unescaped '%' is a comment; return immediately after shortening line
- len = pos;
- goto done;
- }
- }
-
- // stop processing if not a continuation line
- if (pos == len || s[pos] != '\\') break;
-
- slurper.shorten_line(pos);
- s = slurper.append_next_line();
- }
-
- if (pos < len && !found_eq && s[pos] == '=' && equals_pos)
- *equals_pos = pos;
-
- done:
- // eat trailing whitespace, except for the space in `\ ' if it ends the line
- // -- unless the `\' is the second `\' in a `\\'!
- for (pos = len; pos > 0 && (s[pos-1] == ' ' || s[pos-1] == '\t'); pos--)
- /* nada */;
- if (pos == last_escape)
- pos++;
- slurper.shorten_line(pos);
- return !is_terminator;
-}
-
-/* psres_escape: backslash escaping */
-
-static unsigned
-psres_escape(char *s, unsigned len)
-{
- unsigned pos = 0, delta = 0;
- while (pos < len) {
- if (s[pos] == '\\') pos++, delta++;
- if (delta) s[pos-delta] = s[pos];
- pos++;
- }
- s[pos-delta] = 0;
- return len-delta;
-}
-
-void
-PsresDatabaseSection::add_psres_file_section
- (Slurper &slurper, PermString directory, bool override)
-{
- int equals_pos;
- bool first_line = true;
-
- while (read_psres_line(slurper, &equals_pos)) {
- char *s = slurper.cur_line();
-
- // check for a directory line
- if (first_line) {
- first_line = false;
- if (s[0] == '/') {
- psres_escape(s + 1, slurper.cur_line_length() - 1);
- directory = PermString(s + 1);
- continue;
- }
- }
-
- if (equals_pos < 0) {
- // report error?
- continue;
- }
-
- // get the key
- unsigned len = psres_escape(s, equals_pos);
- PermString key = PermString(s, len);
- int index = _map[key];
- if (!override && index > 0)
- continue;
-
- // double equals means absolute pathname
- if (s[equals_pos + 1] == '=')
- equals_pos++;
-
- // get the value. Don't escape it yet
- len = slurper.cur_line_length() - (equals_pos + 1);
- String value = String(s + equals_pos + 1, len);
-
- // stick key and value into our data structure
- if (index == 0) {
- index = _directories.size();
- _directories.push_back(directory);
- _values.push_back(value);
- _value_escaped.push_back(false);
- _map.insert(key, index);
- } else {
- _directories[index] = directory;
- _values[index] = value;
- _value_escaped[index] = false;
- }
- }
-}
-
-
-PsresDatabaseSection *
-PsresDatabase::force_section(PermString name)
-{
- if (_section_map[name] > 0)
- return _sections[_section_map[name]];
- else {
- PsresDatabaseSection *s = new PsresDatabaseSection(name);
- int index = _sections.size();
- _sections.push_back(s);
- _section_map.insert(name, index);
- return s;
- }
-}
-
-bool
-PsresDatabase::add_one_psres_file(Slurper &slurper, bool override)
-{
- if (!read_psres_line(slurper, 0))
- return /* error */ false;
-
- char *s = slurper.cur_line();
- unsigned len = slurper.cur_line_length();
- if (len < 12 || memcmp(s, "PS-Resources", 12) != 0)
- return /* error */ false;
-
- bool exclusive = (len >= 22 && memcmp(s+12, "-Exclusive", 10) == 0);
-
- // skip list of sections
- while (read_psres_line(slurper, 0))
- /* nada */;
-
- // now, read each section
- PermString directory = slurper.filename().directory();
-
- while (read_psres_line(slurper, 0)) {
- s = slurper.cur_line();
- len = psres_escape(s, slurper.cur_line_length());
- PsresDatabaseSection *section = force_section(PermString(s, len));
- section->add_psres_file_section(slurper, directory, override);
- }
-
- return exclusive;
-}
-
-bool
-PsresDatabase::add_psres_file(Filename &filename, bool override)
-{
- Slurper slurpy(filename);
- return add_one_psres_file(slurpy, override);
-}
-
-
-#ifndef WIN32
-
-void
-PsresDatabase::add_psres_directory(PermString directory)
-{
- DIR *dir = opendir(directory.c_str());
- if (!dir) return;
-
- while (struct dirent *dirent = readdir(dir)) {
- int len = DIR_NAMLEN(dirent);
- if (len > 4 && dirent->d_name[0] != '.'
- && memcmp(dirent->d_name + len - 4, ".upr", 4) == 0
- && (len != 9 || memcmp(dirent->d_name, "PSres.upr", 9) != 0)) {
- Filename fn(directory, PermString(dirent->d_name, len));
- add_psres_file(fn, false);
- }
- }
-
- closedir(dir);
-}
-
-#else /* WIN32 */
-
-void
-PsresDatabase::add_psres_directory(PermString directory)
-{
- WIN32_FIND_DATA find_file_data;
- HANDLE hnd;
- int proceed = TRUE;
-
- PermString search_str = permcat(directory, "/*.*");
- hnd = FindFirstFile(search_str.c_str(), &find_file_data);
-
- if (hnd == INVALID_HANDLE_VALUE) {
- return;
- }
- while (proceed) {
- int len = strlen(find_file_data.cFileName);
- if (len > 4 && find_file_data.cFileName[0] != '.'
- && _strnicmp(find_file_data.cFileName + len - 4, ".upr", 4) == 0
- && (len != 9 || _strnicmp(find_file_data.cFileName, "PSres.upr", 9) != 0)) {
- Filename fn(directory, PermString(find_file_data.cFileName, len));
- add_psres_file(fn, false);
- }
- proceed = FindNextFile (hnd, &find_file_data);
- }
- FindClose(hnd);
-}
-
-#endif /* WIN32 */
-
-
-void
-PsresDatabase::add_psres_path(const char *path, const char *default_path,
- bool override)
-{
- if (!path && !default_path)
- return;
- else if (!path) {
- path = default_path;
- default_path = 0;
- }
-
- if (override && _sections.size() > 1) {
- PsresDatabase new_db;
- new_db.add_psres_path(path, default_path, false);
- add_database(&new_db, true);
- return;
- }
-
- while (*path) {
- const char *epath = path;
- while (*epath && *epath != ':') epath++;
-
- PermString directory(path, epath - path);
- Filename filename(directory, "PSres.upr");
- if (epath == path) {
- add_psres_path(default_path, 0, false);
- default_path = 0; // don't use default path twice
- } else if (!filename.readable() || !add_psres_file(filename, false))
- add_psres_directory(directory);
-
- path = (*epath ? epath+1 : epath);
- }
-}
-
-
-void
-PsresDatabase::add_database(PsresDatabase *db, bool override)
-{
- for (int i = 1; i < db->_sections.size(); i++) {
- PermString section_name = db->_sections[i]->section_name();
- PsresDatabaseSection *section = force_section(section_name);
- section->add_section(db->_sections[i], override);
- }
-}
-
-void
-PsresDatabaseSection::add_section(PsresDatabaseSection *s, bool override)
-{
- for (HashMap<PermString, int>::const_iterator i = s->_map.begin(); i; i++) {
- int value = i.value();
- if (_map[i.key()] <= 0) {
- int my_index = _directories.size();
- _directories.push_back(s->_directories[value]);
- _values.push_back(s->_values[value]);
- _value_escaped.push_back(s->_value_escaped[value]);
- _map.insert(i.key(), my_index);
- } else if (override) {
- int my_index = _map[i.key()];
- _directories[my_index] = s->_directories[value];
- _values[my_index] = s->_values[value];
- _value_escaped[my_index] = s->_value_escaped[value];
- }
- }
-}
-
-
-const String &
-PsresDatabaseSection::value(int index)
-{
- if (_value_escaped[index])
- return _values[index];
- else {
- char *data = _values[index].mutable_data();
- int len = psres_escape(data, _values[index].length());
- _values[index] = _values[index].substring(0, len);
- _value_escaped[index] = true;
- return _values[index];
- }
-}
-
-Filename
-PsresDatabaseSection::filename_value(PermString key)
-{
- int index = _map[key];
- if (!index)
- return Filename();
- else if (!_directories[index])
- return Filename(value(index));
- else
- return Filename(_directories[index], value(index));
-}
-
-const String &
-PsresDatabase::value(PermString sec, PermString key) const
-{
- PsresDatabaseSection *s = section(sec);
- if (s)
- return s->value(key);
- else
- return String::make_empty();
-}
-
-const String &
-PsresDatabase::unescaped_value(PermString sec, PermString key) const
-{
- PsresDatabaseSection *s = section(sec);
- if (s)
- return s->unescaped_value(key);
- else
- return String::make_empty();
-}
-
-Filename
-PsresDatabase::filename_value(PermString sec, PermString key) const
-{
- PsresDatabaseSection *s = section(sec);
- if (s)
- return s->filename_value(key);
- else
- return Filename();
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
deleted file mode 100644
index 3766af2f58a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1bounds.cc
+++ /dev/null
@@ -1,165 +0,0 @@
-// -*- related-file-name: "../include/efont/t1bounds.hh" -*-
-
-/* t1bounds.{cc,hh} -- charstring bounding box finder
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1bounds.hh>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-
-namespace Efont {
-
-CharstringBounds::CharstringBounds()
- : _lb(UNKDOUBLE, UNKDOUBLE), _rt(UNKDOUBLE, UNKDOUBLE),
- _last_xf_program(0)
-{
-}
-
-CharstringBounds::CharstringBounds(const Transform& nonfont_xf)
- : _lb(UNKDOUBLE, UNKDOUBLE), _rt(UNKDOUBLE, UNKDOUBLE),
- _nonfont_xf(nonfont_xf), _last_xf_program(0)
-{
-}
-
-CharstringBounds::CharstringBounds(const Transform &nonfont_xf, const Vector<double> &weight)
- : CharstringInterp(weight),
- _lb(UNKDOUBLE, UNKDOUBLE), _rt(UNKDOUBLE, UNKDOUBLE),
- _nonfont_xf(nonfont_xf), _last_xf_program(0)
-{
-}
-
-void
-CharstringBounds::clear()
-{
- _lb = _rt = Point(UNKDOUBLE, UNKDOUBLE);
- _width = Point(0, 0);
-}
-
-void
-CharstringBounds::xf_mark(const Bezier &b)
-{
- Bezier b1, b2;
- b.halve(b1, b2);
- xf_mark(b1.point(3));
- if (!xf_controls_inside(b1))
- xf_mark(b1);
- if (!xf_controls_inside(b2))
- xf_mark(b2);
-}
-
-void
-CharstringBounds::act_width(int, const Point &w)
-{
- _width = w * _xf;
-}
-
-void
-CharstringBounds::act_line(int, const Point &p0, const Point &p1)
-{
- mark(p0);
- mark(p1);
-}
-
-void
-CharstringBounds::act_curve(int, const Point &p0, const Point &p1, const Point &p2, const Point &p3)
-{
- Point q0 = p0 * _xf;
- Point q1 = p1 * _xf;
- Point q2 = p2 * _xf;
- Point q3 = p3 * _xf;
-
- xf_mark(q0);
- xf_mark(q3);
-
- if (!xf_inside(q1) || !xf_inside(q2)) {
- Bezier b(q0, q1, q2, q3);
- xf_mark(b);
- }
-}
-
-void
-CharstringBounds::set_xf(const CharstringProgram *program)
-{
- if (_last_xf_program != program) {
- _last_xf_program = program;
- double matrix[6];
- program->font_matrix(matrix);
- Transform font_xf = Transform(matrix).scaled(program->units_per_em());
- font_xf.check_null(0.001);
- _xf = _nonfont_xf * font_xf;
- }
-}
-
-bool
-CharstringBounds::char_bounds(const CharstringContext &g, bool shift)
-{
- set_xf(g.program);
- CharstringInterp::interpret(g);
- if (shift) {
- _xf.raw_translate(_width - _xf.translation());
- _nonfont_xf.raw_translate(_width - _nonfont_xf.translation());
- _width = Point(0, 0);
- }
- return error() >= 0;
-}
-
-void
-CharstringBounds::translate(double dx, double dy)
-{
- _xf.translate(dx, dy);
- _nonfont_xf.translate(dx, dy);
-}
-
-bool
-CharstringBounds::output(double bb[4], double& width, bool use_cur_width) const
-{
- if (!KNOWN(_lb.x))
- bb[0] = bb[1] = bb[2] = bb[3] = 0;
- else {
- bb[0] = _lb.x;
- bb[1] = _lb.y;
- bb[2] = _rt.x;
- bb[3] = _rt.y;
- }
- if (use_cur_width)
- width = _width.x;
- else {
- Point p = Point(0, 0) * _xf;
- width = p.x;
- }
- return error() >= 0;
-}
-
-bool
-CharstringBounds::bounds(const Transform& transform, const CharstringContext& g,
- double bb[4], double& width)
-{
- CharstringBounds b(transform);
- b.char_bounds(g, false);
- return b.output(bb, width, true);
-}
-
-bool
-CharstringBounds::bounds(const CharstringContext &g,
- double bb[4], double& width)
-{
- CharstringBounds b;
- b.char_bounds(g, false);
- return b.output(bb, width, true);
-}
-
-} // namespace Efont
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
deleted file mode 100644
index f4060e607b9..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1cs.cc
+++ /dev/null
@@ -1,369 +0,0 @@
-// -*- related-file-name: "../include/efont/t1cs.hh" -*-
-
-/* t1cs.{cc,hh} -- Type 1/2 charstrings
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1cs.hh>
-#include <efont/t1interp.hh>
-#include <string.h>
-namespace Efont {
-
-const char * const Charstring::command_names[] = {
- "error", "hstem", "UNKNOWN_2", "vstem", "vmoveto",
- "rlineto", "hlineto", "vlineto", "rrcurveto", "closepath",
-
- "callsubr", "return", "escape", "hsbw", "endchar",
- "UNKNOWN_15", "blend", "UNKNOWN_17", "hstemhm", "hintmask",
-
- "cntrmask", "rmoveto", "hmoveto", "vstemhm", "rcurveline",
- "rlinecurve", "vvcurveto", "hhcurveto", "shortint", "callgsubr",
-
- "vhcurveto", "hvcurveto", "dotsection", "vstem3", "hstem3",
- "and", "or", "not", "seac", "sbw",
-
- "store", "abs", "add", "sub", "div",
- "load", "neg", "eq", "callothersubr", "pop",
-
- "drop", "UNKNOWN_12_19", "put", "get", "ifelse",
- "random", "mul", "UNKNOWN_12_25", "sqrt", "dup",
-
- "exch", "index", "roll", "UNKNOWN_12_31", "UNKNOWN_12_32",
- "setcurrentpoint", "hflex", "flex", "hflex1", "flex1"
-};
-
-const char * const Charstring::standard_encoding[256] = {
- /* 00x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 01x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 02x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 03x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 04x */ "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
- "ampersand", "quoteright",
- /* 05x */ "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen",
- "period", "slash",
- /* 06x */ "zero", "one", "two", "three", "four", "five", "six", "seven",
- /* 07x */ "eight", "nine", "colon", "semicolon", "less", "equal",
- "greater", "question",
- /* 10x */ "at", "A", "B", "C", "D", "E", "F", "G",
- /* 11x */ "H", "I", "J", "K", "L", "M", "N", "O",
- /* 12x */ "P", "Q", "R", "S", "T", "U", "V", "W",
- /* 13x */ "X", "Y", "Z", "bracketleft", "backslash", "bracketright",
- "asciicircum", "underscore",
- /* 14x */ "quoteleft", "a", "b", "c", "d", "e", "f", "g",
- /* 15x */ "h", "i", "j", "k", "l", "m", "n", "o",
- /* 16x */ "p", "q", "r", "s", "t", "u", "v", "w",
- /* 17x */ "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", 0,
- /* 20x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 21x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 22x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 23x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 24x */ 0, "exclamdown", "cent", "sterling", "fraction", "yen",
- "florin", "section",
- /* 25x */ "currency", "quotesingle", "quotedblleft", "guillemotleft",
- "guilsinglleft", "guilsinglright", "fi", "fl",
- /* 26x */ 0, "endash", "dagger", "daggerdbl", "periodcentered", 0,
- "paragraph", "bullet",
- /* 27x */ "quotesinglbase", "quotedblbase", "quotedblright",
- "guillemotright", "ellipsis", "perthousand", 0, "questiondown",
- /* 30x */ 0, "grave", "acute", "circumflex", "tilde", "macron",
- "breve", "dotaccent",
- /* 31x */ "dieresis", 0, "ring", "cedilla", 0, "hungarumlaut",
- "ogonek", "caron",
- /* 32x */ "emdash", 0, 0, 0, 0, 0, 0, 0,
- /* 33x */ 0, 0, 0, 0, 0, 0, 0, 0,
- /* 34x */ 0, "AE", 0, "ordfeminine", 0, 0, 0, 0,
- /* 35x */ "Lslash", "Oslash", "OE", "ordmasculine", 0, 0, 0, 0,
- /* 36x */ 0, "ae", 0, 0, 0, "dotlessi", 0, 0,
- /* 37x */ "lslash", "oslash", "oe", "germandbls", 0, 0, 0, 0,
-};
-
-
-Charstring::~Charstring()
-{
-}
-
-String
-Charstring::command_name(int cmd)
-{
- if (cmd >= 0 && cmd <= cLastCommand)
- return command_names[cmd];
- else if (cmd < cEscapeDelta + 256)
- return String("COMMAND_12_") + String(cmd - cEscapeDelta);
- else
- return String("<INVALID>");
-}
-
-
-Type1Charstring::Type1Charstring(int lenIV, const String &s)
- : Charstring(), _key(-1)
-{
- if (lenIV < 0) // no charstring encryption
- _s = s;
- else if (lenIV < s.length()) {
- const unsigned char *d = reinterpret_cast<const unsigned char*>(s.data());
- _key = t1R_cs;
- for (int i = 0; i < lenIV; i++, d++)
- _key = ((*d + _key) * (uint32_t) t1C1 + t1C2) & 0xFFFF;
- _s = s.substring(lenIV);
- }
-}
-
-void
-Type1Charstring::prepend(const Type1Charstring &t1cs)
-{
- if (_key >= 0)
- decrypt();
- if (t1cs._key >= 0)
- t1cs.decrypt();
- _s = t1cs._s + _s;
-}
-
-void
-Type1Charstring::decrypt() const
-{
- if (_key >= 0) {
- int r = _key;
- uint8_t *d = reinterpret_cast<uint8_t *>(_s.mutable_data());
- for (int i = 0; i < _s.length(); i++, d++) {
- uint8_t encrypted = *d;
- *d = encrypted ^ (r >> 8);
- r = ((encrypted + r) * (uint32_t) t1C1 + t1C2) & 0xFFFF;
- }
- _key = -1;
- }
-}
-
-bool
-Type1Charstring::process(CharstringInterp &interp) const
-{
- const uint8_t *data = Type1Charstring::data();
- int left = _s.length();
-
- while (left > 0) {
- bool more;
- int ahead;
-
- if (*data >= 32 && *data <= 246) { // push small number
- more = interp.number(data[0] - 139);
- ahead = 1;
-
- } else if (*data < 32) { // a command
- if (*data == cEscape) {
- if (left < 2)
- goto runoff_error;
- more = interp.type1_command(cEscapeDelta + data[1]);
- ahead = 2;
- } else if (*data == cShortint) { // short integer
- if (left < 3)
- goto runoff_error;
- int16_t val = (data[1] << 8) | data[2];
- more = interp.number(val);
- ahead = 3;
- } else {
- more = interp.type1_command(data[0]);
- ahead = 1;
- }
-
- } else if (*data >= 247 && *data <= 250) { // push medium number
- if (left < 2)
- goto runoff_error;
- int val = + ((data[0] - 247) << 8) + 108 + data[1];
- more = interp.number(val);
- ahead = 2;
-
- } else if (*data >= 251 && *data <= 254) { // push negative medium number
- if (left < 2)
- goto runoff_error;
- int val = - ((data[0] - 251) << 8) - 108 - data[1];
- more = interp.number(val);
- ahead = 2;
-
- } else { // 255: push huge number
- if (left < 5)
- goto runoff_error;
- int32_t val = ((uint32_t) data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];
- more = interp.number(val);
- ahead = 5;
- }
-
- if (!more)
- return interp.error() == CharstringInterp::errOK;
-
- data += ahead;
- left -= ahead;
- }
-
- runoff_error:
- interp.error(CharstringInterp::errRunoff);
- return false;
-}
-
-int
-Type1Charstring::first_caret_after(int pos) const
-{
- const uint8_t *data = Type1Charstring::data();
- const uint8_t *edata = data + (pos < length() ? pos : length());
-
- while (data < edata) {
- if (*data >= 32 && *data <= 246) // push small number
- data++;
- else if (*data < 32) { // a command
- if (*data == cEscape)
- data += 2;
- else if (*data == cShortint)
- data += 3;
- else
- data++;
- } else if (*data >= 247 && *data <= 254) // push medium number
- data += 2;
- else // 255: push huge number
- data += 5;
- }
-
- const uint8_t *odata = Type1Charstring::data();
- return (data > odata + length() ? length() : data - odata);
-}
-
-void
-Type1Charstring::assign_substring(int pos, int len, const String &cs)
-{
- if (_key >= 0)
- decrypt();
- if (pos < 0 || len < 0 || pos + len >= _s.length())
- /* do nothing */;
- else if (cs.length() == len) {
- char *d = _s.mutable_data();
- memcpy(d + pos, cs.data(), cs.length());
- } else if (cs.length() <= len) {
- char *d = _s.mutable_data();
- memcpy(d + pos, cs.data(), cs.length());
- memmove(d + pos + cs.length(), d + pos + len, _s.length() - pos - len);
- _s = _s.substring(0, cs.length() - len);
- } else
- _s = _s.substring(0, pos) + cs + _s.substring(pos + len);
-}
-
-
-bool
-Type2Charstring::process(CharstringInterp &interp) const
-{
- const uint8_t *data = Type2Charstring::data();
- int left = _s.length();
-
- while (left > 0) {
- bool more;
- int ahead;
-
- if (*data >= 32 && *data <= 246) { // push small number
- more = interp.number(data[0] - 139);
- ahead = 1;
-
- } else if (*data < 32) { // a command
- if (*data == cEscape) {
- if (left < 2)
- goto runoff_error;
- more = interp.type2_command(cEscapeDelta + data[1], 0, 0);
- ahead = 2;
- } else if (*data == cShortint) { // short integer
- if (left < 3)
- goto runoff_error;
- int16_t val = (data[1] << 8) | data[2];
- more = interp.number(val);
- ahead = 3;
- } else if (*data == cHintmask || *data == cCntrmask) {
- int left_ptr = left - 1;
- more = interp.type2_command(data[0], data + 1, &left_ptr);
- ahead = 1 + (left - 1) - left_ptr;
- } else {
- more = interp.type2_command(data[0], 0, 0);
- ahead = 1;
- }
-
- } else if (*data >= 247 && *data <= 250) { // push medium number
- if (left < 2)
- goto runoff_error;
- int val = + ((data[0] - 247) << 8) + 108 + data[1];
- more = interp.number(val);
- ahead = 2;
-
- } else if (*data >= 251 && *data <= 254) { // push negative medium number
- if (left < 2)
- goto runoff_error;
- int val = - ((data[0] - 251) << 8) - 108 - data[1];
- more = interp.number(val);
- ahead = 2;
-
- } else { // 255: push huge number
- if (left < 5)
- goto runoff_error;
- int32_t val = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];
- more = interp.number(val / 65536.);
- ahead = 5;
- }
-
- if (!more)
- return interp.error() == CharstringInterp::errOK;
-
- data += ahead;
- left -= ahead;
- }
-
- runoff_error:
- interp.error(CharstringInterp::errRunoff);
- return false;
-}
-
-
-CharstringProgram::CharstringProgram(unsigned units_per_em)
- : _parent_program(false),
- _units_per_em(units_per_em ? units_per_em : 1000) {
-}
-
-const CharstringProgram *
-CharstringProgram::child_program(int) const
-{
- return this;
-}
-
-void
-CharstringProgram::font_matrix(double matrix[6]) const
-{
- matrix[0] = matrix[3] = 0.001;
- matrix[1] = matrix[2] = matrix[4] = matrix[5] = 0;
-}
-
-void
-CharstringProgram::glyph_names(Vector<PermString> &gnames) const
-{
- int n = nglyphs();
- gnames.resize(n);
- for (int i = 0; i < n; i++)
- gnames[i] = glyph_name(i);
-}
-
-Vector<double> *
-CharstringProgram::mm_vector(VectorType, bool) const
-{
- return 0;
-}
-
-double
-CharstringProgram::global_width_x(bool) const
-{
- return UNKDOUBLE;
-}
-
-}
-
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
deleted file mode 100644
index 7c970374fe2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1csgen.cc
+++ /dev/null
@@ -1,636 +0,0 @@
-// -*- related-file-name: "../include/efont/t1csgen.hh" -*-
-
-/* t1csgen.{cc,hh} -- Type 1 charstring generation
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1csgen.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <math.h>
-namespace Efont {
-
-static const char * const command_desc[] = {
- 0, 0, 0, 0, "y",
- "xy", "x", "y", "xyxyxy", 0,
-
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
-
- 0, "xy", "x", 0, 0,
- 0, 0, 0, 0, 0,
-
- "yxyx", "xxyy", 0, 0, 0,
- 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0,
- "XY", 0, 0, 0, 0
-};
-
-Type1CharstringGen::Type1CharstringGen(int precision)
-{
- if (precision >= 1 && precision <= 107)
- _precision = precision;
- else
- _precision = 5;
- _f_precision = _precision;
- clear();
-}
-
-void
-Type1CharstringGen::clear()
-{
- _ncs.clear();
- _true = _false = Point(0, 0);
- _state = S_INITIAL;
-}
-
-
-void
-Type1CharstringGen::gen_rational(int big_val, int divisor)
-{
- int frac = big_val % divisor;
- int val = (frac == 0 ? big_val / divisor : big_val);
-
- if (val >= -107 && val <= 107)
- _ncs.append((char)(val + 139));
-
- else if (val >= -1131 && val <= 1131) {
- int base = val < 0 ? 251 : 247;
- if (val < 0) val = -val;
- val -= 108;
- int w = val % 256;
- val = (val - w) / 256;
- _ncs.append((char)(val + base));
- _ncs.append((char)w);
-
- } else {
- _ncs.append('\377');
- long l = val;
- _ncs.append((char)((l >> 24) & 0xFF));
- _ncs.append((char)((l >> 16) & 0xFF));
- _ncs.append((char)((l >> 8) & 0xFF));
- _ncs.append((char)((l >> 0) & 0xFF));
- }
-
- if (frac != 0) {
- _ncs.append((char)(divisor + 139));
- _ncs.append((char)Charstring::cEscape);
- _ncs.append((char)(Charstring::cDiv - Charstring::cEscapeDelta));
- }
-}
-
-void
-Type1CharstringGen::gen_number(double float_val, int kind)
-{
- switch (kind) {
- case 'x':
- _true.x += float_val;
- float_val = _true.x - _false.x;
- break;
- case 'y':
- _true.y += float_val;
- float_val = _true.y - _false.y;
- break;
- case 'X':
- _true.x = float_val;
- break;
- case 'Y':
- _true.y = float_val;
- break;
- }
-
- // 30.Jul.2003 - Avoid rounding differences between platforms with the
- // extra 0.00001.
- int big_val = (int)floor(float_val * _f_precision + 0.50001);
-
- gen_rational(big_val, _precision);
-
- float_val = big_val / _f_precision;
- switch (kind) {
- case 'x':
- _false.x += float_val;
- break;
- case 'y':
- _false.y += float_val;
- break;
- case 'X':
- _false.x = float_val;
- break;
- case 'Y':
- _false.y = float_val;
- break;
- }
-}
-
-
-void
-Type1CharstringGen::gen_command(int command)
-{
- if (command >= Charstring::cEscapeDelta) {
- _ncs.append((char)Charstring::cEscape);
- _ncs.append((char)(command - Charstring::cEscapeDelta));
- if (command != Charstring::cSbw)
- _state = S_GEN;
- } else {
- _ncs.append((char)command);
- if (command > Charstring::cVmoveto && command != Charstring::cHsbw)
- _state = S_GEN;
- }
-}
-
-bool
-Type1CharstringGen::gen_stem3_stack(CharstringInterp &interp)
-{
- // special handling to ensure rounding doesn't generate an invalid stem3
- // hint
- if (interp.size() < 6)
- return false;
-
- // sort hints
- int i0, i1, i2;
- if (interp.at(0) > interp.at(2))
- i0 = 2, i1 = 0;
- else
- i0 = 0, i1 = 2;
- if (interp.at(4) < interp.at(i0))
- i2 = i1, i1 = i0, i0 = 4;
- else if (interp.at(4) < interp.at(i1))
- i2 = i1, i1 = 4;
- else
- i2 = 4;
-
- // check constraints. count "almost equal" as equal
- double stemw0 = interp.at(i0+1), stemw2 = interp.at(i2+1);
- if ((int)(1024*(stemw0 - stemw2) + .5) != 0)
- return false;
-
- double c0 = interp.at(i0) + interp.at(i0+1)/2;
- double c1 = interp.at(i1) + interp.at(i1+1)/2;
- double c2 = interp.at(i2) + interp.at(i2+1)/2;
- if ((int)(1024*((c1 - c0) - (c2 - c1)) + .5) != 0)
- return false;
-
- // if all constraints are satisfied now, make sure they are also satisfied
- // after rounding
- int big_v0 = (int)floor(interp.at(i0) * _f_precision + 0.50001);
- int big_v2 = (int)floor(interp.at(i2) * _f_precision + 0.50001);
- int big_stemw0 = (int)floor(stemw0 * _f_precision + 0.50001);
- int big_stemw1 = (int)floor(interp.at(i1+1) * _f_precision + 0.50001);
-
- int big_v1_times2 = big_v0 + big_v2 + big_stemw0 - big_stemw1;
-
- gen_rational(big_v0, _precision);
- gen_rational(big_stemw0, _precision);
- if (big_v1_times2 % 2)
- gen_rational(big_v1_times2, 2 * _precision);
- else
- gen_rational(big_v1_times2 / 2, _precision);
- gen_rational(big_stemw1, _precision);
- gen_rational(big_v2, _precision);
- gen_rational(big_stemw0, _precision);
-
- interp.clear();
- return true;
-}
-
-void
-Type1CharstringGen::gen_stack(CharstringInterp &interp, int for_cmd)
-{
- const char *str = ((unsigned)for_cmd <= Charstring::cLastCommand ? command_desc[for_cmd] : (const char *)0);
- if ((for_cmd == Charstring::cHstem3 || for_cmd == Charstring::cVstem3)
- && gen_stem3_stack(interp))
- return;
-
- int i;
- for (i = 0; str && *str && i < interp.size(); i++, str++)
- gen_number(interp.at(i), *str);
- for (; i < interp.size(); i++)
- gen_number(interp.at(i));
- interp.clear();
-}
-
-void
-Type1CharstringGen::gen_moveto(const Point &p, bool closepath, bool always)
-{
- // make sure we generate some moveto on the first command
-
- Point d = p - _true;
- int big_dx = (int)floor(d.x * _f_precision + 0.50001);
- int big_dy = (int)floor(d.y * _f_precision + 0.50001);
-
- if (big_dx == 0 && big_dy == 0 && _state != S_INITIAL && !always)
- /* do nothing */;
- else {
- if (closepath)
- gen_command(Charstring::cClosepath);
- if (big_dy == 0) {
- gen_number(d.x, 'x');
- gen_command(Charstring::cHmoveto);
- } else if (big_dx == 0) {
- gen_number(d.y, 'y');
- gen_command(Charstring::cVmoveto);
- } else {
- gen_number(d.x, 'x');
- gen_number(d.y, 'y');
- gen_command(Charstring::cRmoveto);
- }
- }
-
- _true = p;
-}
-
-void
-Type1CharstringGen::append_charstring(const String &s)
-{
- _ncs << s;
-}
-
-Type1Charstring *
-Type1CharstringGen::output()
-{
- return new Type1Charstring(take_string());
-}
-
-void
-Type1CharstringGen::output(Type1Charstring &cs)
-{
- cs.assign(take_string());
-}
-
-String
-Type1CharstringGen::callsubr_string(int subr)
-{
- Type1CharstringGen csg;
- csg.gen_number(subr);
- csg.gen_command(Charstring::cCallsubr);
- return csg._ncs.take_string();
-}
-
-
-/*****
- * Type1CharstringGenInterp
- **/
-
-Type1CharstringGenInterp::Type1CharstringGenInterp(int precision)
- : _csgen(precision), _hint_csgen(precision),
- _direct_hr(false), _hr_storage(0),
- _max_flex_height(0),
- _had_flex(false), _had_bad_flex(false), _had_hr(false)
-{
-}
-
-void
-Type1CharstringGenInterp::set_hint_replacement_storage(Type1Font *font)
-{
- _hr_storage = font;
- _hr_firstsubr = font->nsubrs();
-}
-
-
-// generating charstring commands
-
-inline void
-Type1CharstringGenInterp::gen_number(double n, int what)
-{
- _csgen.gen_number(n, what);
-}
-
-inline void
-Type1CharstringGenInterp::gen_command(int what)
-{
- _csgen.gen_command(what);
-}
-
-void
-Type1CharstringGenInterp::gen_sbw(bool hints_follow)
-{
- if (!hints_follow && nhints())
- act_hintmask(Cs::cHintmask, 0, nhints());
- else if (left_sidebearing().y == 0 && _width.y == 0) {
- gen_number(left_sidebearing().x, 'X');
- gen_number(_width.x);
- gen_command(Cs::cHsbw);
- } else {
- gen_number(left_sidebearing().x, 'X');
- gen_number(left_sidebearing().y, 'Y');
- gen_number(_width.x);
- gen_number(_width.y);
- gen_command(Cs::cSbw);
- }
- _state = S_CLOSED;
-}
-
-void
-Type1CharstringGenInterp::act_width(int, const Point &p)
-{
- _width = p;
-}
-
-void
-Type1CharstringGenInterp::act_seac(int, double asb, double adx, double ady, int bchar, int achar)
-{
- if (_state == S_INITIAL)
- gen_sbw(false);
- gen_number(asb);
- gen_number(adx);
- gen_number(ady);
- gen_number(bchar);
- gen_number(achar);
- gen_command(Cs::cSeac);
- _state = S_SEAC;
-}
-
-void
-Type1CharstringGenInterp::swap_stem_hints()
-{
- _stem_pos.clear();
- _stem_width.clear();
- _stem_hstem.clear();
- _in_hr = true;
-}
-
-void
-Type1CharstringGenInterp::act_hstem(int, double pos, double width)
-{
- if (_state != S_INITIAL && !_in_hr)
- swap_stem_hints();
- _stem_pos.push_back(pos);
- _stem_width.push_back(width);
- _stem_hstem.push_back(1);
-}
-
-void
-Type1CharstringGenInterp::act_vstem(int, double pos, double width)
-{
- if (_state != S_INITIAL && !_in_hr)
- swap_stem_hints();
- _stem_pos.push_back(pos);
- _stem_width.push_back(width);
- _stem_hstem.push_back(0);
-}
-
-String
-Type1CharstringGenInterp::gen_hints(const unsigned char *data, int nhints) const
-{
- _hint_csgen.clear();
- unsigned char mask = 0x80;
- for (int i = 0; i < nhints; i++) {
- if (*data & mask) {
- double offset = (_stem_hstem[i] ? left_sidebearing().y : left_sidebearing().x);
- _hint_csgen.gen_number(_stem_pos[i] - offset);
- _hint_csgen.gen_number(_stem_width[i]);
- _hint_csgen.gen_command(_stem_hstem[i] ? Cs::cHstem : Cs::cVstem);
- }
- if ((mask >>= 1) == 0)
- data++, mask = 0x80;
- }
- return _hint_csgen.take_string();
-}
-
-void
-Type1CharstringGenInterp::act_hintmask(int cmd, const unsigned char *data, int nhints)
-{
- if (cmd == Cs::cCntrmask || nhints > Type1CharstringGenInterp::nhints())
- return;
-
- String data_holder;
- if (!data) {
- data_holder = String::make_fill('\377', ((nhints - 1) >> 3) + 1);
- data = data_holder.udata();
- }
-
- String hints = gen_hints(data, nhints);
- _in_hr = false;
-
- if (_state == S_INITIAL || _direct_hr) {
- _last_hints = hints;
- if (_state == S_INITIAL)
- gen_sbw(true);
- _csgen.append_charstring(hints);
- } else if (_hr_storage && hints != _last_hints) {
- _last_hints = hints;
- hints += (char)(Cs::cReturn);
-
- int subrno = -1, nsubrs = _hr_storage->nsubrs();
- for (int i = _hr_firstsubr; i < nsubrs; i++)
- if (Type1Subr *s = _hr_storage->subr_x(i))
- if (s->t1cs() == hints) {
- subrno = i;
- break;
- }
-
- if (subrno < 0 && _hr_storage->set_subr(nsubrs, Type1Charstring(hints)))
- subrno = nsubrs;
-
- if (subrno >= 0) {
- _had_hr = true;
- _csgen.gen_number(subrno);
- _csgen.gen_number(4);
- _csgen.gen_command(Cs::cCallsubr);
- }
- }
-}
-
-void
-Type1CharstringGenInterp::act_line(int cmd, const Point &a, const Point &b)
-{
- if (_state == S_INITIAL)
- gen_sbw(false);
- else if (_in_hr)
- act_hintmask(cmd, 0, nhints());
- _csgen.gen_moveto(a, _state == S_OPEN, false);
- _state = S_OPEN;
- if (a.x == b.x) {
- gen_number(b.y - a.y, 'y');
- gen_command(Cs::cVlineto);
- } else if (a.y == b.y) {
- gen_number(b.x - a.x, 'x');
- gen_command(Cs::cHlineto);
- } else {
- gen_number(b.x - a.x, 'x');
- gen_number(b.y - a.y, 'y');
- gen_command(Cs::cRlineto);
- }
-}
-
-void
-Type1CharstringGenInterp::act_curve(int cmd, const Point &a, const Point &b, const Point &c, const Point &d)
-{
- if (_state == S_INITIAL)
- gen_sbw(false);
- else if (_in_hr)
- act_hintmask(cmd, 0, nhints());
- _csgen.gen_moveto(a, _state == S_OPEN, false);
- _state = S_OPEN;
- if (b.y == a.y && d.x == c.x) {
- gen_number(b.x - a.x, 'x');
- gen_number(c.x - b.x, 'x');
- gen_number(c.y - b.y, 'y');
- gen_number(d.y - c.y, 'y');
- gen_command(Cs::cHvcurveto);
- } else if (b.x == a.x && d.y == c.y) {
- gen_number(b.y - a.y, 'y');
- gen_number(c.x - a.x, 'x');
- gen_number(c.y - b.y, 'y');
- gen_number(d.x - c.x, 'x');
- gen_command(Cs::cVhcurveto);
- } else {
- gen_number(b.x - a.x, 'x');
- gen_number(b.y - a.y, 'y');
- gen_number(c.x - b.x, 'x');
- gen_number(c.y - b.y, 'y');
- gen_number(d.x - c.x, 'x');
- gen_number(d.y - c.y, 'y');
- gen_command(Cs::cRrcurveto);
- }
-}
-
-void
-Type1CharstringGenInterp::act_flex(int cmd, const Point &p0, const Point &p1, const Point &p2, const Point &p3_4, const Point &p5, const Point &p6, const Point &p7, double flex_depth)
-{
- if (_state == S_INITIAL)
- gen_sbw(false);
- else if (_in_hr)
- act_hintmask(cmd, 0, nhints());
- _csgen.gen_moveto(p0, _state == S_OPEN, false);
- _state = S_OPEN;
-
- // 1. Outer endpoints must have same x (or y) coordinate
- bool v_ok = (p0.x == p7.x);
- bool h_ok = (p0.y == p7.y);
-
- // 2. Join point and its neighboring controls must be at an extreme
- if (v_ok && p2.x == p3_4.x && p3_4.x == p5.x) {
- double distance = fabs(p3_4.x - p0.x);
- int sign = (p3_4.x < p0.x ? -1 : 1);
- if (sign * (p1.x - p0.x) < 0 || sign * (p1.x - p0.x) > distance
- || sign * (p6.x - p0.x) < 0 || sign * (p6.x - p0.x) > distance)
- v_ok = false;
- } else
- v_ok = false;
-
- if (h_ok && p2.y == p3_4.y && p3_4.y == p5.y) {
- double distance = fabs(p3_4.y - p0.y);
- int sign = (p3_4.y < p0.y ? -1 : 1);
- if (sign * (p1.y - p0.y) < 0 || sign * (p1.y - p0.y) > distance
- || sign * (p6.y - p0.y) < 0 || sign * (p6.y - p0.y) > distance)
- h_ok = false;
- } else
- h_ok = false;
-
- // 3. Flex height <= 20
- if (v_ok && fabs(p3_4.x - p0.x) > 20)
- v_ok = false;
- if (h_ok && fabs(p3_4.y - p0.y) > 20)
- h_ok = false;
-
- // generate flex commands
- if (v_ok || h_ok) {
- _had_flex = true;
- Point p_reference = (h_ok ? Point(p3_4.x, p0.y) : Point(p0.x, p3_4.y));
-
- _csgen.gen_number(1);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p_reference, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p1, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p2, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p3_4, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p5, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p6, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_moveto(p7, false, true);
- _csgen.gen_number(2);
- _csgen.gen_command(Cs::cCallsubr);
-
- _csgen.gen_number(flex_depth);
- _csgen.gen_number(p7.x, 'X');
- _csgen.gen_number(p7.y, 'Y');
- _csgen.gen_number(0);
- _csgen.gen_command(Cs::cCallsubr);
-
- double flex_height = fabs(h_ok ? p3_4.y - p0.y : p3_4.x - p0.x);
- if (flex_height > _max_flex_height)
- _max_flex_height = flex_height;
- } else {
- _had_bad_flex = true;
- act_curve(cmd, p0, p1, p2, p3_4);
- act_curve(cmd, p3_4, p5, p6, p7);
- }
-}
-
-void
-Type1CharstringGenInterp::act_closepath(int cmd)
-{
- if (_in_hr)
- act_hintmask(cmd, 0, nhints());
- gen_command(Cs::cClosepath);
- _state = S_CLOSED;
-}
-
-void
-Type1CharstringGenInterp::intermediate_output(Type1Charstring &out)
-{
- _csgen.output(out);
- _state = S_INITIAL;
- act_hintmask(Cs::cEndchar, 0, nhints());
-}
-
-void
-Type1CharstringGenInterp::run(const CharstringContext &g, Type1Charstring &out)
-{
- _width = Point(0, 0);
- _csgen.clear();
- swap_stem_hints();
- _state = S_INITIAL;
- _in_hr = false;
-
- CharstringInterp::interpret(g);
-
- if (_state == S_INITIAL)
- gen_sbw(false);
- else if (_in_hr)
- act_hintmask(Cs::cEndchar, 0, nhints());
- if (_state != S_SEAC)
- _csgen.gen_command(Cs::cEndchar);
-
- _csgen.output(out);
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
deleted file mode 100644
index 82ab06e0389..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1font.cc
+++ /dev/null
@@ -1,916 +0,0 @@
-// -*- related-file-name: "../include/efont/t1font.hh" -*-
-
-/* t1font.{cc,hh} -- Type 1 font
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1mm.hh>
-#include <lcdf/error.hh>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-namespace Efont {
-
-static PermString::Initializer initializer;
-static PermString lenIV_str = "lenIV";
-static PermString FontInfo_str = "FontInfo";
-
-Type1Font::Type1Font(PermString name)
- : CharstringProgram(1000),
- _cached_defs(false), _built(true), _font_name(name), _glyph_map(-1),
- _encoding(0), _cached_mmspace(0), _mmspace(0), _synthetic_item(0)
-{
- _dict = new HashMap<PermString, Type1Definition *>[dLast];
- for (int i = 0; i < dLast; i++) {
- _index[i] = -1;
- _dict_deltas[i] = 0;
- _dict[i].set_default_value((Type1Definition *)0);
- }
-}
-
-Type1Font::Type1Font(Type1Reader &reader)
- : CharstringProgram(1000),
- _cached_defs(false), _built(false), _glyph_map(-1), _encoding(0),
- _cached_mmspace(0), _mmspace(0), _synthetic_item(0)
-{
- _dict = new HashMap<PermString, Type1Definition *>[dLast];
- for (int i = 0; i < dLast; i++) {
- _index[i] = -1;
- _dict_deltas[i] = 0;
- _dict[i].set_default_value((Type1Definition *)0);
- }
- read(reader);
-}
-
-Type1Font::~Type1Font()
-{
- delete[] _dict;
- for (int i = 0; i < _items.size(); i++)
- delete _items[i];
- delete _mmspace;
- for (int i = 0; i < _subrs.size(); i++)
- delete _subrs[i];
- if (!_synthetic_item)
- for (int i = 0; i < _glyphs.size(); i++)
- delete _glyphs[i];
-}
-
-void
-Type1Font::set_item(int i, Type1Item *it)
-{
- delete _items[i];
- _items[i] = it;
-}
-
-static const char * const dict_starters[] = {
- "0 dict begin", "/FontInfo 0 dict dup begin", "dup /Private 0 dict dup begin", "/Blend 0 dict dup begin", 0, 0
-};
-
-void
-Type1Font::add_definition(int dict, Type1Definition *t1d)
-{
- if (_index[dict] < 0) {
- if (_built && dict_starters[dict])
- add_item(new Type1CopyItem(dict_starters[dict]));
- _index[dict] = _items.size();
- }
- add_item(t1d);
- set_dict(dict, t1d->name(), t1d);
-}
-
-void
-Type1Font::add_type1_encoding(Type1Encoding *e)
-{
- if (_encoding) {
- for (Type1Item** t1i = _items.begin(); t1i < _items.end(); t1i++)
- if (*t1i == _encoding) {
- delete _encoding;
- *t1i = _encoding = e;
- return;
- }
- }
- _encoding = e;
- add_item(e);
-}
-
-void
-Type1Font::add_glyph(Type1Subr *s)
-{
- int &g = _glyph_map.find_force(s->name(), _glyphs.size());
- if (g == _glyphs.size())
- _glyphs.push_back(s);
- else {
- delete _glyphs[g];
- _glyphs[g] = s;
- }
-}
-
-int
-Type1Font::read(Type1Reader &reader)
-{
- Dict cur_dict = dFont;
- int eexec_state = 0;
- bool have_subrs = false;
- bool have_charstrings = false;
- int lenIV = 4;
- Type1SubrGroupItem *cur_group = 0;
- int cur_group_count = 0;
-
- StringAccum accum;
- while (reader.next_line(accum)) {
-
- // check for NULL STRING
- int x_length = accum.length();
- if (!x_length)
- continue;
- const char *x = accum.c_str(); // ensure we don't run off the string
-
- // check for CHARSTRINGS
- if (reader.was_charstring()) {
- Type1Subr *fcs = Type1Subr::make(x, x_length, reader.charstring_start(), reader.charstring_length(), lenIV);
-
- if (fcs->is_subr()) {
- if (fcs->subrno() >= _subrs.size())
- _subrs.resize(fcs->subrno() + 30, (Type1Subr *)0);
- if (_subrs[fcs->subrno()]) // hybrid font program
- delete _subrs[fcs->subrno()];
- _subrs[fcs->subrno()] = fcs;
- if (!have_subrs && _items.size()) {
- if (Type1CopyItem *item = _items.back()->cast_copy()) {
- cur_group = new Type1SubrGroupItem
- (this, true, item->value());
- cur_group_count = 0;
- _items.back() = cur_group;
- delete item;
- }
- have_subrs = true;
- }
-
- } else {
- add_glyph(fcs);
- if (!have_charstrings && _items.size()) {
- if (Type1CopyItem *item = _items.back()->cast_copy()) {
- cur_group = new Type1SubrGroupItem
- (this, false, item->value());
- cur_group_count = 0;
- _items.back() = cur_group;
- delete item;
- }
- have_charstrings = true;
- }
- }
-
- accum.clear();
- continue;
- }
-
- // check for COMMENTS
- if (x[0] == '%') {
- add_item(new Type1CopyItem(accum.take_string()));
- continue;
- }
-
- // check for CHARSTRING START
- // 5/29/1999: beware of charstring start-like things that don't have
- // `readstring' in them!
- if (!_charstring_definer
- && strstr(x, "string currentfile") != 0
- && strstr(x, "readstring") != 0) {
- const char *sb = x;
- while (*sb && *sb != '/')
- sb++;
- const char *se = sb + 1;
- while (*sb && *se && *se != ' ' && *se != '{')
- se++;
- if (*sb && *se) {
- _charstring_definer = permprintf(" %*s ", se - sb - 1, sb + 1);
- reader.set_charstring_definer(_charstring_definer);
- add_item(new Type1CopyItem(accum.take_string()));
- continue;
- }
- }
-
- // check for ENCODING
- if (!_encoding && strncmp(x, "/Encoding ", 10) == 0) {
- read_encoding(reader, x + 10);
- accum.clear();
- continue;
- }
-
- // check for a DEFINITION
- if (x[0] == '/') {
- definition_succeed:
- Type1Definition *t1d = Type1Definition::make(accum, &reader);
- if (!t1d)
- goto definition_fail;
- if (t1d->name() == lenIV_str)
- t1d->value_int(lenIV);
- add_definition(cur_dict, t1d);
- accum.clear();
- continue;
- } else if (x[0] == ' ') {
- const char *y;
- for (y = x; y[0] == ' '; y++)
- ;
- if (y[0] == '/')
- goto definition_succeed;
- }
-
- definition_fail:
-
- // check for ZEROS special case
- if (eexec_state == 2) {
- // In eexec_state 2 (right after turning off eexec), the opening
- // part of the string will have some 0 bytes followed by '0's.
- // Change the 0 bytes into textual '0's.
- int zeros = 0;
- while (x[zeros] == 0 && x_length > 0)
- zeros++, x_length--;
- add_item(new Type1CopyItem(String::make_fill('0', zeros * 2 + x_length)));
- eexec_state = 3;
- accum.clear();
- continue;
- }
-
- // check for MODIFIED FONT
- if (eexec_state == 1 && strstr(x, "FontDirectory") != 0
- && read_synthetic_font(reader, x, accum)) {
- accum.clear();
- continue;
- }
-
- // check for END-OF-CHARSTRING-GROUP TEXT
- if (cur_group) {
- if (cur_group_count == 0
- || ((strstr(x, "end") != 0 || strstr(x, "put") != 0)
- && strchr(x, '/') == 0)) {
- cur_group->add_end_text(x);
- cur_group_count++;
- accum.clear();
- continue;
- }
- cur_group = 0;
- }
-
- // add COPY ITEM
- String s = accum.take_string();
- add_item(new Type1CopyItem(s));
- x = s.data();
-
- if (eexec_state == 0 && strncmp(x, "currentfile eexec", 17) == 0 && (isspace((unsigned char) x[17]) || !x[17])) {
- // allow arbitrary whitespace after "currentfile eexec".
- // note: strlen("currentfile eexec") == 17
- for (x += 17; isspace((unsigned char) *x); x++)
- /* nada */;
- reader.switch_eexec(true, (unsigned char *)x, (s.data() + s.length()) - x);
- set_item(nitems() - 1, new Type1EexecItem(true));
- eexec_state = 1;
- } else if (eexec_state == 1 && strstr(x, "currentfile closefile") != 0) {
- reader.switch_eexec(false, 0, 0);
- add_item(new Type1EexecItem(false));
- eexec_state = 2;
- } else if (strstr(x, "begin") != 0) {
- // 30.Sep.2002: NuevaMM's BlendFontInfo dict starts with a simple
- // "/FontInfo ... begin" inside a "/Blend ... begin".
- Dict was_dict = cur_dict;
- if (strstr(x, "/Private") != 0)
- cur_dict = dPrivate;
- else if (strstr(x, "/FontInfo") != 0)
- cur_dict = dFontInfo;
- else
- cur_dict = dFont;
- if (strstr(x, "/Blend") != 0)
- cur_dict = (Dict)(cur_dict + dBlend);
- else if (was_dict == dBlend && cur_dict == dFontInfo)
- cur_dict = (Dict)(cur_dict + dBlend);
- } else if (cur_dict == dFontInfo && strstr(x, "end") != 0)
- cur_dict = dFont;
- }
-
- // set dictionary deltas
- for (int i = dFI; i < dLast; i++)
- _dict_deltas[i] = get_dict_size(i) - _dict[i].size();
- // borrow glyphs and glyph map from _synthetic_item
- if (!_glyphs.size() && _synthetic_item) {
- _glyphs = _synthetic_item->included_font()->_glyphs;
- _glyph_map = _synthetic_item->included_font()->_glyph_map;
- }
-
- return (ok() ? 0 : -1);
-}
-
-bool
-Type1Font::ok() const
-{
- return font_name() && _glyphs.size() > 0;
-}
-
-static char *skip_comment_space(char *s)
-{
- while (1) {
- if (isspace((unsigned char) *s))
- ++s;
- else if (*s == '%') {
- for (++s; *s != '\r' && *s != '\n' && *s != '\0'; ++s)
- /* nada */;
- } else
- return s;
- }
-}
-
-void
-Type1Font::read_encoding(Type1Reader &reader, const char *first_line)
-{
- while (isspace((unsigned char) *first_line))
- first_line++;
- if (strncmp(first_line, "StandardEncoding", 16) == 0) {
- add_type1_encoding(Type1Encoding::standard_encoding());
- return;
- }
-
- add_type1_encoding(new Type1Encoding);
-
- bool got_any = false;
- StringAccum accum;
-
- while (reader.next_line(accum)) {
-
- // check for NULL STRING
- if (!accum.length())
- continue;
- accum.append('\0'); // ensure we don't run off the string
- char *pos = accum.data();
-
- // skip to first `dup' token
- if (!got_any) {
- if (!(pos = strstr(pos, "dup"))) {
- pos = accum.data();
- goto check_done;
- }
- }
-
- // parse as many `dup INDEX */CHARNAME put' as there are in the line
- while (1) {
- // skip spaces, look for `dup '
- while (isspace((unsigned char) pos[0]))
- ++pos;
- if (pos[0] == '%')
- pos = skip_comment_space(pos);
- if (pos[0] != 'd' || pos[1] != 'u' || pos[2] != 'p' || !isspace((unsigned char) pos[3]))
- break;
-
- // look for `INDEX */'
- char *scan;
- int char_value = strtol(pos + 4, &scan, 10);
- if (scan[0] == '#' && char_value > 0 && char_value < 37
- && isalnum((unsigned char) scan[1]))
- char_value = strtol(scan + 1, &scan, char_value);
- while (isspace((unsigned char) scan[0]))
- scan++;
- if (char_value < 0 || char_value >= 256 || scan[0] != '/')
- break;
-
- // look for `CHARNAME put'
- scan++;
- char *name_pos = scan;
- while (!isspace((unsigned char) scan[0]) && scan[0] != '\0')
- ++scan;
- char *name_end = scan;
- while (isspace((unsigned char) scan[0]))
- ++scan;
- if (scan[0] != 'p' || scan[1] != 'u' || scan[2] != 't')
- break;
-
- _encoding->put(char_value, PermString(name_pos, name_end - name_pos));
- got_any = true;
- pos = scan + 3;
- }
-
- check_done:
- // check for end of encoding section
- // if not over, add COPY ITEM for leftovers we didn't parse
- if ((strstr(pos, "readonly") != 0 || strstr(pos, "def") != 0)
- && (got_any || strstr(pos, "for") == 0)) {
- _encoding->set_definer(String(pos));
- return;
- } else if (got_any && *pos)
- add_item(new Type1CopyItem(String(pos)));
-
- accum.clear();
- }
-}
-
-static bool
-read_synthetic_string(Type1Reader &reader, StringAccum &wrong_accum,
- const char *format, int *value)
-{
- StringAccum accum;
- if (!reader.next_line(accum))
- return false;
- wrong_accum << accum;
- accum.append('\0'); // ensure we don't run off the string
- int n = 0;
- if (value)
- sscanf(accum.data(), format, value, &n);
- else
- sscanf(accum.data(), format, &n);
- return (n != 0 && (isspace((unsigned char) accum[n]) || accum[n] == '\0'));
-}
-
-bool
-Type1Font::read_synthetic_font(Type1Reader &reader, const char *first_line,
- StringAccum &wrong_accum)
-{
- // read font name
- PermString font_name;
- {
- char *x = new char[strlen(first_line) + 1];
- int n = 0;
- sscanf(first_line, "FontDirectory /%[^] \t\r\n[{}/] known {%n", x, &n);
- if (n && (isspace((unsigned char) first_line[n]) || first_line[n] == 0))
- font_name = x;
- delete[] x;
- if (!font_name)
- return false;
- }
-
- // check UniqueID
- int unique_id;
- {
- StringAccum accum;
- if (!reader.next_line(accum))
- return false;
- wrong_accum << accum;
- accum.c_str(); // ensure we don't run off the string
- const char *y = accum.data();
- if (*y != '/' || strncmp(y + 1, font_name.c_str(), font_name.length()) != 0)
- return false;
- int n = 0;
- sscanf(y + font_name.length() + 1, " findfont%n", &n);
- y = strstr(y, "/UniqueID get ");
- if (n == 0 || y == 0)
- return false;
- n = 0;
- sscanf(y + 14, "%d%n", &unique_id, &n);
- if (n == 0)
- return false;
- }
-
- // check lines that say how much text
- int multiplier;
- if (!read_synthetic_string(reader, wrong_accum, "save userdict /fbufstr %d string put%n", &multiplier))
- return false;
-
- int multiplicand;
- if (!read_synthetic_string(reader, wrong_accum, "%d {currentfile fbufstr readstring { pop } { clear currentfile%n", &multiplicand))
- return false;
-
- if (!read_synthetic_string(reader, wrong_accum, "closefile /fontdownload /unexpectedEOF /.error cvx exec } ifelse } repeat%n", 0))
- return false;
-
- int extra;
- if (!read_synthetic_string(reader, wrong_accum, "currentfile %d string readstring { pop } { clear currentfile%n", &extra))
- return false;
-
- if (!read_synthetic_string(reader, wrong_accum, "closefile /fontdownload /unexpectedEOF /.error cvx exec } ifelse%n", 0))
- return false;
-
- if (!read_synthetic_string(reader, wrong_accum, "restore } if } if%n", 0))
- return false;
-
- Type1SubsetReader subreader(&reader, multiplier*multiplicand + extra);
- Type1Font *synthetic = new Type1Font(subreader);
- if (!synthetic->ok())
- delete synthetic;
- else {
- _synthetic_item = new Type1IncludedFont(synthetic, unique_id);
- add_item(_synthetic_item);
- }
- return true;
-}
-
-
-void
-Type1Font::undo_synthetic()
-{
- // A synthetic font doesn't share arbitrary code with its base font; it
- // shares just the CharStrings dictionary, according to Adobe Type 1 Font
- // Format. We take advantage of this.
-
- if (!_synthetic_item)
- return;
-
- int mod_ii;
- for (mod_ii = nitems() - 1; mod_ii >= 0; mod_ii--)
- if (_items[mod_ii] == _synthetic_item)
- break;
- if (mod_ii < 0)
- return;
-
- // remove synthetic item and the reference to the included font
- _items[mod_ii] = new Type1NullItem;
- if (Type1CopyItem *copy = _items[mod_ii+1]->cast_copy())
- if (copy->value().find_left("findfont") >= 0) {
- delete copy;
- _items[mod_ii+1] = new Type1NullItem;
- }
-
- Type1Font *f = _synthetic_item->included_font();
- // its glyphs are already stored in our _glyphs array
-
- // copy SubrGroupItem from `f' into `this'
- Type1SubrGroupItem *oth_subrs = 0, *oth_glyphs = 0;
- for (int i = 0; i < f->nitems(); i++)
- if (Type1SubrGroupItem *subr_grp = f->_items[i]->cast_subr_group()) {
- if (subr_grp->is_subrs())
- oth_subrs = subr_grp;
- else
- oth_glyphs = subr_grp;
- }
-
- assert(oth_glyphs != 0);
-
- for (int i = nitems() - 1; i >= 0; i--)
- if (Type1SubrGroupItem *subr_grp = _items[i]->cast_subr_group()) {
- assert(subr_grp->is_subrs());
- if (oth_subrs)
- subr_grp->set_end_text(oth_subrs->end_text());
- shift_indices(i + 1, 1);
- Type1SubrGroupItem *nsubr = new Type1SubrGroupItem(*oth_glyphs, this);
- _items[i + 1] = nsubr;
- break;
- }
-
- // delete included font
- f->_glyphs.clear(); // don't delete glyphs; we've stolen them
- delete _synthetic_item;
- _synthetic_item = 0;
-}
-
-
-Type1Charstring *
-Type1Font::subr(int e) const
-{
- if (e >= 0 && e < _subrs.size() && _subrs[e])
- return &_subrs[e]->t1cs();
- else
- return 0;
-}
-
-PermString
-Type1Font::glyph_name(int i) const
-{
- if (i >= 0 && i < _glyphs.size() && _glyphs[i])
- return _glyphs[i]->name();
- else
- return PermString();
-}
-
-Type1Charstring *
-Type1Font::glyph(int i) const
-{
- if (i >= 0 && i < _glyphs.size() && _glyphs[i])
- return &_glyphs[i]->t1cs();
- else
- return 0;
-}
-
-Type1Charstring *
-Type1Font::glyph(PermString name) const
-{
- int i = _glyph_map[name];
- if (i >= 0)
- return &_glyphs[i]->t1cs();
- else
- return 0;
-}
-
-
-bool
-Type1Font::set_subr(int e, const Type1Charstring &t1cs, PermString definer)
-{
- if (e < 0)
- return false;
- if (e >= _subrs.size())
- _subrs.resize(e + 1, (Type1Subr *)0);
-
- if (!definer) {
- Type1Subr *pattern_subr = _subrs[e];
- for (int i = 0; i < _subrs.size() && !pattern_subr; i++)
- pattern_subr = _subrs[i];
- if (!pattern_subr)
- return false;
- definer = pattern_subr->definer();
- }
-
- delete _subrs[e];
- _subrs[e] = Type1Subr::make_subr(e, t1cs, definer);
- return true;
-}
-
-bool
-Type1Font::remove_subr(int e)
-{
- if (e < 0 || e >= _subrs.size())
- return false;
- delete _subrs[e];
- _subrs[e] = 0;
- return true;
-}
-
-void
-Type1Font::fill_in_subrs()
-{
- while (_subrs.size() && _subrs.back() == 0)
- _subrs.pop_back();
- for (int i = 0; i < _subrs.size(); i++)
- if (!_subrs[i])
- set_subr(i, Type1Charstring(String::make_stable("\013", 1)));
-}
-
-void
-Type1Font::renumber_subrs(const Vector<int> &renumbering)
-{
- Vector<Type1Subr *> old_subrs;
- old_subrs.swap(_subrs);
- for (int i = 0; i < old_subrs.size() && i < renumbering.size(); i++) {
- int r = renumbering[i];
- Type1Subr *s = old_subrs[i];
- if (r >= 0 && s)
- set_subr(r, s->t1cs(), s->definer());
- else
- delete s;
- }
- for (int i = renumbering.size(); i < old_subrs.size(); i++)
- delete old_subrs[i];
-}
-
-
-void
-Type1Font::shift_indices(int move_index, int delta)
-{
- if (delta > 0) {
- _items.resize(_items.size() + delta, (Type1Item *)0);
- memmove(&_items[move_index + delta], &_items[move_index],
- sizeof(Type1Item *) * (_items.size() - move_index - delta));
-
- for (int i = dFont; i < dLast; i++)
- if (_index[i] > move_index)
- _index[i] += delta;
-
- } else {
- memmove(&_items[move_index], &_items[move_index - delta],
- sizeof(Type1Item *) * (_items.size() - (move_index - delta)));
- _items.resize(_items.size() + delta);
-
- for (int i = dFont; i < dLast; i++)
- if (_index[i] >= move_index) {
- if (_index[i] < move_index - delta)
- _index[i] = move_index;
- else
- _index[i] += delta;
- }
- }
-}
-
-Type1Definition *
-Type1Font::ensure(Dict dict, PermString name)
-{
- assert(_index[dict] >= 0);
- Type1Definition *def = _dict[dict][name];
- if (!def) {
- def = new Type1Definition(name, 0, "def");
- int move_index = _index[dict];
- shift_indices(move_index, 1);
- _items[move_index] = def;
- set_dict(dict, name, def);
- }
- return def;
-}
-
-void
-Type1Font::add_header_comment(const String &comment)
-{
- int i;
- for (i = 0; i < _items.size(); i++) {
- Type1CopyItem *copy = _items[i]->cast_copy();
- if (!copy || copy->value()[0] != '%')
- break;
- }
- shift_indices(i, 1);
- _items[i] = new Type1CopyItem(comment);
-}
-
-
-Type1Item *
-Type1Font::dict_size_item(int d) const
-{
- switch (d) {
-
- case dF:
- if (_built && _index[d] > 0)
- return _items[_index[d] - 1];
- break;
-
- case dFI: case dP: case dB:
- if (_index[d] > 0)
- return _items[_index[d] - 1];
- break;
-
- case dBFI:
- if (Type1Item *t1i = b_dict("FontInfo"))
- return t1i;
- else if (_index[dBFI] > 0)
- return _items[_index[dBFI] - 1];
- break;
-
- case dBP:
- if (Type1Item *t1i = b_dict("Private"))
- return t1i;
- else if (_index[dBP] > 0)
- return _items[_index[dBP] - 1];
- break;
-
- }
- return 0;
-}
-
-int
-Type1Font::get_dict_size(int d) const
-{
- Type1Item *item = dict_size_item(d);
- if (!item)
- /* nada */;
- else if (Type1Definition *t1d = item->cast_definition()) {
- int num;
- if (strstr(t1d->definer().c_str(), "dict") && t1d->value_int(num))
- return num;
- } else if (Type1CopyItem *copy = item->cast_copy()) {
- String value = copy->value();
- int pos = value.find_left(" dict");
- if (pos >= 1 && isdigit((unsigned char) value[pos - 1])) {
- while (pos >= 1 && isdigit((unsigned char) value[pos - 1]))
- pos--;
- return strtol(value.data() + pos, 0, 10);
- }
- }
- return -1;
-}
-
-void
-Type1Font::set_dict_size(int d, int size)
-{
- Type1Item *item = dict_size_item(d);
- if (!item)
- return;
- if (Type1Definition *t1d = item->cast_definition()) {
- int num;
- if (strstr(t1d->definer().c_str(), "dict") && t1d->value_int(num))
- t1d->set_int(size);
- } else if (Type1CopyItem *copy = item->cast_copy()) {
- String value = copy->value();
- int pos = value.find_left(" dict");
- if (pos >= 1 && isdigit((unsigned char) value[pos - 1])) {
- int numpos = pos - 1;
- while (numpos >= 1 && isdigit((unsigned char) value[numpos - 1]))
- numpos--;
- StringAccum accum;
- accum << value.substring(0, numpos) << size << value.substring(pos);
- copy->set_value(accum.take_string());
- }
- }
-}
-
-void
-Type1Font::write(Type1Writer &w)
-{
- Type1Definition *lenIV_def = p_dict("lenIV");
- int lenIV = 4;
- if (lenIV_def)
- lenIV_def->value_int(lenIV);
- w.set_charstring_start(_charstring_definer);
- w.set_lenIV(lenIV);
-
- // change dict sizes
- for (int i = dF; i < dLast; i++)
- set_dict_size(i, _dict[i].size() + _dict_deltas[i]);
- // XXX what if dict had nothing, but now has something?
-
- for (int i = 0; i < _items.size(); i++)
- _items[i]->gen(w);
-
- w.flush();
-}
-
-void
-Type1Font::cache_defs() const
-{
- Type1Definition *t1d = dict("FontName");
- if (t1d)
- t1d->value_name(_font_name);
- _cached_defs = true;
-}
-
-MultipleMasterSpace *
-Type1Font::mmspace() const
-{
- if (!_cached_mmspace)
- create_mmspace();
- return _mmspace;
-}
-
-MultipleMasterSpace *
-Type1Font::create_mmspace(ErrorHandler *errh) const
-{
- if (_cached_mmspace)
- return _mmspace;
- _cached_mmspace = 1;
-
- Type1Definition *t1d;
-
- Vector< Vector<double> > master_positions;
- t1d = fi_dict("BlendDesignPositions");
- if (!t1d || !t1d->value_numvec_vec(master_positions))
- return 0;
-
- int nmasters = master_positions.size();
- if (nmasters <= 0) {
- errh->error("bad BlendDesignPositions");
- return 0;
- }
- int naxes = master_positions[0].size();
- _mmspace = new MultipleMasterSpace(font_name(), naxes, nmasters);
- _mmspace->set_master_positions(master_positions);
-
- Vector< Vector<double> > normalize_in, normalize_out;
- t1d = fi_dict("BlendDesignMap");
- if (t1d && t1d->value_normalize(normalize_in, normalize_out))
- _mmspace->set_normalize(normalize_in, normalize_out);
-
- Vector<PermString> axis_types;
- t1d = fi_dict("BlendAxisTypes");
- if (t1d && t1d->value_namevec(axis_types) && axis_types.size() == naxes)
- for (int a = 0; a < naxes; a++)
- _mmspace->set_axis_type(a, axis_types[a]);
-
- int ndv, cdv;
- Type1Charstring *cs;
- t1d = p_dict("NDV");
- if (t1d && t1d->value_int(ndv) && (cs = subr(ndv)))
- _mmspace->set_ndv(*cs);
- t1d = p_dict("CDV");
- if (t1d && t1d->value_int(cdv) && (cs = subr(cdv)))
- _mmspace->set_cdv(*cs);
-
- Vector<double> design_vector;
- t1d = dict("DesignVector");
- if (t1d && t1d->value_numvec(design_vector))
- _mmspace->set_design_vector(design_vector);
-
- Vector<double> weight_vector;
- t1d = dict("WeightVector");
- if (t1d && t1d->value_numvec(weight_vector))
- _mmspace->set_weight_vector(weight_vector);
-
- if (!_mmspace->check(errh)) {
- delete _mmspace;
- _mmspace = 0;
- }
- return _mmspace;
-}
-
-void
-Type1Font::uncache_defs()
-{
- _cached_defs = false;
-}
-
-void
-Type1Font::font_matrix(double matrix[6]) const
-{
- Vector<double> t1d_matrix;
- Type1Definition *t1d = dict("FontMatrix");
- if (t1d && t1d->value_numvec(t1d_matrix) && t1d_matrix.size() == 6)
- memcpy(&matrix[0], &t1d_matrix[0], sizeof(double) * 6);
- else {
- matrix[0] = matrix[3] = 0.001;
- matrix[1] = matrix[2] = matrix[4] = matrix[5] = 0;
- }
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
deleted file mode 100644
index c62e25a392a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1fontskel.cc
+++ /dev/null
@@ -1,332 +0,0 @@
-/* t1fontskel.cc -- Type 1 font skeleton
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1mm.hh>
-#include <lcdf/error.hh>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-namespace Efont {
-
-#if HAVE_ADOBE_CODE
-
-static const char* othersubrs_code =
-// This version of the OtherSubrs code for old PostScript interpreters comes from
-// https://github.com/adobe-type-tools/afdko/blob/master/FDK/Tools/Programs/public/lib/source/t1write/t1write_flexothers.txt
-// (commit 3f4eeec). The Adobe Font Development Kit is licensed by the Apache
-// License, 2.0, which permits this embedding.
-"% Copyright 1987-1990 Adobe Systems Incorporated. All rights reserved.\n"
-"/OtherSubrs[systemdict/internaldict known{1183615869 systemdict/internaldict\n"
-"get exec/FlxProc known{save true}{false}ifelse}{userdict/internaldict known\n"
-"not{userdict/internaldict{count 0 eq{/internaldict errordict/invalidaccess get\n"
-"exec}if dup type/integertype ne{/internaldict errordict/invalidaccess get exec\n"
-"}if dup 1183615869 eq{pop 0}{/internaldict errordict/invalidaccess get exec}\n"
-"ifelse}dup 14 get 1 25 dict put bind executeonly put}if 1183615869 userdict\n"
-"/internaldict get exec/FlxProc known{save true}{false}ifelse}ifelse[systemdict\n"
-"/internaldict known not{100 dict/begin cvx/mtx matrix/def cvx}if systemdict\n"
-"/currentpacking known{currentpacking true setpacking}if{systemdict\n"
-"/internaldict known{1183615869 systemdict/internaldict get exec dup/$FlxDict\n"
-"known not{dup dup length exch maxlength eq{pop userdict dup/$FlxDict known not\n"
-"{100 dict begin/mtx matrix def dup/$FlxDict currentdict put end}if}{100 dict\n"
-"begin/mtx matrix def dup/$FlxDict currentdict put end}ifelse}if/$FlxDict get\n"
-"begin}if grestore/exdef{exch def}def/dmin exch abs 100 div def/epX exdef/epY\n"
-"exdef/c4y2 exdef/c4x2 exdef/c4y1 exdef/c4x1 exdef/c4y0 exdef/c4x0 exdef/c3y2\n"
-"exdef/c3x2 exdef/c3y1 exdef/c3x1 exdef/c3y0 exdef/c3x0 exdef/c1y2 exdef/c1x2\n"
-"exdef/c2x2 c4x2 def/c2y2 c4y2 def/yflag c1y2 c3y2 sub abs c1x2 c3x2 sub abs gt\n"
-"def/PickCoords{{c1x0 c1y0 c1x1 c1y1 c1x2 c1y2 c2x0 c2y0 c2x1 c2y1 c2x2 c2y2}{\n"
-"c3x0 c3y0 c3x1 c3y1 c3x2 c3y2 c4x0 c4y0 c4x1 c4y1 c4x2 c4y2}ifelse/y5 exdef/x5\n"
-"exdef/y4 exdef/x4 exdef/y3 exdef/x3 exdef/y2 exdef/x2 exdef/y1 exdef/x1 exdef\n"
-"/y0 exdef/x0 exdef}def mtx currentmatrix pop mtx 0 get abs 1e-05 lt mtx 3 get\n"
-"abs 1e-05 lt or{/flipXY -1 def}{mtx 1 get abs 1e-05 lt mtx 2 get abs 1e-05 lt\n"
-"or{/flipXY 1 def}{/flipXY 0 def}ifelse}ifelse/erosion 1 def systemdict\n"
-"/internaldict known{1183615869 systemdict/internaldict get exec dup/erosion\n"
-"known{/erosion get/erosion exch def}{pop}ifelse}if yflag{flipXY 0 eq c3y2 c4y2\n"
-"eq or{false PickCoords}{/shrink c3y2 c4y2 eq{0}{c1y2 c4y2 sub c3y2 c4y2 sub\n"
-"div abs}ifelse def/yshrink{c4y2 sub shrink mul c4y2 add}def/c1y0 c3y0 yshrink\n"
-"def/c1y1 c3y1 yshrink def/c2y0 c4y0 yshrink def/c2y1 c4y1 yshrink def/c1x0\n"
-"c3x0 def/c1x1 c3x1 def/c2x0 c4x0 def/c2x1 c4x1 def/dY 0 c3y2 c1y2 sub round\n"
-"dtransform flipXY 1 eq{exch}if pop abs def dY dmin lt PickCoords y2 c1y2 sub\n"
-"abs .001 gt{c1x2 c1y2 transform flipXY 1 eq{exch}if/cx exch def/cy exch def/dY\n"
-"0 y2 c1y2 sub round dtransform flipXY 1 eq{exch}if pop def dY round dup 0 ne{\n"
-"/dY exdef}{pop dY 0 lt{-1}{1}ifelse/dY exdef}ifelse/erode PaintType 2 ne\n"
-"erosion .5 ge and def erode{/cy cy .5 sub def}if/ey cy dY add def/ey ey\n"
-"ceiling ey sub ey floor add def erode{/ey ey .5 add def}if ey cx flipXY 1 eq{\n"
-"exch}if itransform exch pop y2 sub/eShift exch def/y1 y1 eShift add def/y2 y2\n"
-"eShift add def/y3 y3 eShift add def}if}ifelse}{flipXY 0 eq c3x2 c4x2 eq or{\n"
-"false PickCoords}{/shrink c3x2 c4x2 eq{0}{c1x2 c4x2 sub c3x2 c4x2 sub div abs}\n"
-"ifelse def/xshrink{c4x2 sub shrink mul c4x2 add}def/c1x0 c3x0 xshrink def/c1x1\n"
-"c3x1 xshrink def/c2x0 c4x0 xshrink def/c2x1 c4x1 xshrink def/c1y0 c3y0 def\n"
-"/c1y1 c3y1 def/c2y0 c4y0 def/c2y1 c4y1 def/dX c3x2 c1x2 sub round 0 dtransform\n"
-"flipXY -1 eq{exch}if pop abs def dX dmin lt PickCoords x2 c1x2 sub abs .001 gt\n"
-"{c1x2 c1y2 transform flipXY -1 eq{exch}if/cy exch def/cx exch def/dX x2 c1x2\n"
-"sub round 0 dtransform flipXY -1 eq{exch}if pop def dX round dup 0 ne{/dX\n"
-"exdef}{pop dX 0 lt{-1}{1}ifelse/dX exdef}ifelse/erode PaintType 2 ne erosion\n"
-".5 ge and def erode{/cx cx .5 sub def}if/ex cx dX add def/ex ex ceiling ex sub\n"
-"ex floor add def erode{/ex ex .5 add def}if ex cy flipXY -1 eq{exch}if\n"
-"itransform pop x2 sub/eShift exch def/x1 x1 eShift add def/x2 x2 eShift add\n"
-"def/x3 x3 eShift add def}if}ifelse}ifelse x2 x5 eq y2 y5 eq or{x5 y5 lineto}{\n"
-"x0 y0 x1 y1 x2 y2 curveto x3 y3 x4 y4 x5 y5 curveto}ifelse epY epX}systemdict\n"
-"/currentpacking known{exch setpacking}if/exec cvx/end cvx]cvx executeonly exch\n"
-"{pop true exch restore}{systemdict/internaldict known not{1183615869 userdict\n"
-"/internaldict get exec exch/FlxProc exch put true}{1183615869 systemdict\n"
-"/internaldict get exec dup length exch maxlength eq{false}{1183615869\n"
-"systemdict/internaldict get exec exch/FlxProc exch put true}ifelse}ifelse}\n"
-"ifelse{systemdict/internaldict known{{1183615869 systemdict/internaldict get\n"
-"exec/FlxProc get exec}}{{1183615869 userdict/internaldict get exec/FlxProc get\n"
-"exec}}ifelse executeonly}if{gsave currentpoint newpath moveto}executeonly{\n"
-"currentpoint grestore gsave currentpoint newpath moveto}executeonly{systemdict\n"
-"/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup\n"
-"/startlock known{/startlock get exec}{dup/strtlck known{/strtlck get exec}{pop\n"
-"3}ifelse}ifelse}ifelse}executeonly]def";
-
-#else
-
-static const char* othersubrs_code = "/OtherSubrs\n"
-"[\n"
-"{pop pop pop grestore 12 6 roll curveto curveto pop pop} executeonly\n"
-"{gsave currentpoint newpath moveto} executeonly\n"
-"{currentpoint currentpoint newpath moveto} executeonly\n"
-"{} executeonly\n"
-"] noaccess def";
-
-#endif
-
-
-Type1Font *
-Type1Font::skeleton_make(PermString font_name, const String &version)
-{
- Type1Font *output = new Type1Font(font_name);
-
- // %!PS-Adobe-Font comment
- StringAccum sa;
- sa << "%!PS-AdobeFont-1.0: " << font_name;
- if (version)
- sa << ' ' << version;
- output->add_item(new Type1CopyItem(sa.take_string()));
-
- output->_dict_deltas[dF] = 3; // Private, FontInfo, Encoding
- output->_dict_deltas[dP] = 3; // OtherSubrs, Subrs, CharStrings
-
- return output;
-}
-
-void
-Type1Font::skeleton_comments_end()
-{
- // count members of font dictionary
- add_definition(dF, new Type1Definition("FontName", "/" + String(_font_name), "def"));
-}
-
-void
-Type1Font::skeleton_fontinfo_end()
-{
- if (first_dict_item(Type1Font::dFI) >= 0)
- add_item(new Type1CopyItem("end readonly def"));
- else
- add_item(new Type1CopyItem("% no FontInfo dict"));
-}
-
-void
-Type1Font::skeleton_fontdict_end()
-{
- // switch to eexec
- add_item(new Type1CopyItem("currentdict end"));
- add_item(new Type1EexecItem(true));
-
- // Private dictionary
- add_definition(Type1Font::dP, Type1Definition::make_literal("-|", "{string currentfile exch readstring pop}", "executeonly def"));
- set_charstring_definer(" -| ");
- add_definition(Type1Font::dP, Type1Definition::make_literal("|-", "{noaccess def}", "executeonly def"));
- add_definition(Type1Font::dP, Type1Definition::make_literal("|", "{noaccess put}", "executeonly def"));
-}
-
-void
-Type1Font::skeleton_private_end()
-{
- add_item(new Type1CopyItem(othersubrs_code));
-
- // Subrs
- add_item(new Type1SubrGroupItem(this, true, "/Subrs 0 array"));
- add_item(new Type1CopyItem("|-"));
-
- // CharStrings
- add_item(new Type1SubrGroupItem(this, false, "2 index /CharStrings 0 dict dup begin"));
-
- // completion
- add_item(new Type1CopyItem("end\n\
-end\n\
-readonly put\n\
-noaccess put\n\
-dup /FontName get exch definefont pop\n\
-mark currentfile closefile"));
- add_item(new Type1EexecItem(false));
- add_item(new Type1CopyItem("\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-0000000000000000000000000000000000000000000000000000000000000000\n\
-cleartomark"));
-}
-
-void
-Type1Font::skeleton_common_subrs()
-{
- // - first four Subrs have fixed definitions
- // - 0: "3 0 callothersubr pop pop setcurrentpoint return"
- set_subr(0, Type1Charstring(String::make_stable("\216\213\014\020\014\021\014\021\014\041\013", 11)), " |");
- // - 1: "0 1 callothersubr return"
- set_subr(1, Type1Charstring(String::make_stable("\213\214\014\020\013", 5)), " |");
- // - 2: "0 2 callothersubr return"
- set_subr(2, Type1Charstring(String::make_stable("\213\215\014\020\013", 5)), " |");
- // - 3: "return"
- set_subr(3, Type1Charstring(String::make_stable("\013", 1)), " |");
- // - 4: "1 3 callothersubr pop callsubr return"
- set_subr(4, Type1Charstring(String::make_stable("\214\216\014\020\014\021\012\013", 8)), " |");
-}
-
-
-static void
-add_number_def(Type1Font *output, int dict, PermString name, const Type1Font *font)
-{
- double v;
- if (Type1Definition *t1d = font->dict(dict, name))
- if (t1d->value_num(v))
- output->add_definition(dict, Type1Definition::make(name, v, "def"));
-}
-
-static void
-add_copy_def(Type1Font *output, int dict, PermString name, const Type1Font *font, const char *definer = "def")
-{
- if (Type1Definition *t1d = font->dict(dict, name))
- output->add_definition(dict, Type1Definition::make_literal(name, t1d->value(), definer));
-}
-
-static String
-font_dict_string(const Type1Font *font, int dict, PermString name)
-{
- String s;
- if (Type1Definition *d = font->dict(dict, name))
- if (d->value_string(s))
- return s;
- return String();
-}
-
-Type1Font *
-Type1Font::skeleton_make_copy(const Type1Font *font, PermString font_name, const Vector<double> *xuid_extension)
-{
- String version = font_dict_string(font, dFI, "version");
- Type1Font *output = skeleton_make(font_name, version);
-
- // other comments from font header
- for (int i = 0; i < font->nitems(); i++)
- if (Type1CopyItem *c = font->item(i)->cast_copy()) {
- if (c->length() > 1 && c->value()[0] == '%') {
- if (c->value()[1] != '!')
- output->add_item(new Type1CopyItem(c->value()));
- } else
- break;
- } else
- break;
-
- output->skeleton_comments_end();
-
- // FontInfo dictionary
- if (version)
- output->add_definition(dFI, Type1Definition::make_string("version", version, "readonly def"));
- if (String s = font_dict_string(font, dFI, "Notice"))
- output->add_definition(dFI, Type1Definition::make_string("Notice", s, "readonly def"));
- if (String s = font_dict_string(font, dFI, "Copyright"))
- output->add_definition(dFI, Type1Definition::make_string("Copyright", s, "readonly def"));
- if (String s = font_dict_string(font, dFI, "FullName"))
- output->add_definition(dFI, Type1Definition::make_string("FullName", s, "readonly def"));
- if (String s = font_dict_string(font, dFI, "FamilyName"))
- output->add_definition(dFI, Type1Definition::make_string("FamilyName", s, "readonly def"));
- if (String s = font_dict_string(font, dFI, "Weight"))
- output->add_definition(dFI, Type1Definition::make_string("Weight", s, "readonly def"));
- if (Type1Definition *t1d = font->fi_dict("isFixedPitch")) {
- bool v;
- if (t1d->value_bool(v))
- output->add_definition(dFI, Type1Definition::make_literal("isFixedPitch", (v ? "true" : "false"), "def"));
- }
- add_number_def(output, dFI, "ItalicAngle", font);
- add_number_def(output, dFI, "UnderlinePosition", font);
- add_number_def(output, dFI, "UnderlineThickness", font);
- output->skeleton_fontinfo_end();
-
- // Encoding, other font dictionary entries
- output->add_type1_encoding(new Type1Encoding(*font->type1_encoding()));
- add_number_def(output, dF, "PaintType", font);
- add_number_def(output, dF, "FontType", font);
- add_copy_def(output, dF, "FontMatrix", font, "readonly def");
- add_number_def(output, dF, "StrokeWidth", font);
- if (!xuid_extension)
- add_number_def(output, dF, "UniqueID", font);
- add_copy_def(output, dF, "XUID", font, "readonly def");
- if (xuid_extension) {
- Vector<double> xuid;
- if (Type1Definition *xuid_def = output->dict("XUID"))
- xuid_def->value_numvec(xuid);
- if (!xuid.size()) {
- Type1Definition *uid_def = font->dict("UniqueID");
- int uid;
- if (uid_def && uid_def->value_int(uid)) {
- xuid.push_back(1);
- xuid.push_back(uid);
- }
- }
- if (xuid.size()) {
- for (int i = 0; i < xuid_extension->size(); i++)
- xuid.push_back((*xuid_extension)[i]);
- Type1Definition *xuid_def = output->ensure(dF, "XUID");
- xuid_def->set_numvec(xuid);
- }
- }
- add_copy_def(output, dF, "FontBBox", font, "readonly def");
- output->skeleton_fontdict_end();
-
- // Private dictionary
- add_copy_def(output, dP, "BlueValues", font);
- add_copy_def(output, dP, "OtherBlues", font);
- add_copy_def(output, dP, "FamilyBlues", font);
- add_copy_def(output, dP, "FamilyOtherBlues", font);
- add_number_def(output, dP, "BlueScale", font);
- add_number_def(output, dP, "BlueShift", font);
- add_number_def(output, dP, "BlueFuzz", font);
- add_copy_def(output, dP, "StdHW", font);
- add_copy_def(output, dP, "StdVW", font);
- add_copy_def(output, dP, "StemSnapH", font);
- add_copy_def(output, dP, "StemSnapV", font);
- add_copy_def(output, dP, "ForceBold", font);
- add_number_def(output, dP, "LanguageGroup", font);
- add_number_def(output, dP, "ExpansionFactor", font);
- if (!xuid_extension)
- add_number_def(output, dP, "UniqueID", font);
- output->add_definition(dP, Type1Definition::make_literal("MinFeature", "{16 16}", "|-"));
- output->add_definition(dP, Type1Definition::make_literal("password", "5839", "def"));
- output->add_definition(dP, Type1Definition::make_literal("lenIV", "0", "def"));
- output->skeleton_private_end();
-
- return output;
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
deleted file mode 100644
index 59200f0981b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1interp.cc
+++ /dev/null
@@ -1,1377 +0,0 @@
-// -*- related-file-name: "../include/efont/t1interp.hh" -*-
-
-/* t1interp.{cc,hh} -- Type 1/2 charstring interpretation
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1interp.hh>
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-
-#ifdef WIN32
-# define random() rand()
-#endif
-
-#define CHECK_STACK(numargs) do { if (size() < numargs) return error(errUnderflow, cmd); } while (0)
-#define CHECK_STATE() do { if (_state < S_IPATH) return error(errOrdering, cmd); } while (0)
-#define CHECK_PATH_START() do { _state = S_PATH; } while (0)
-#define CHECK_PATH_END() do { if (_state == S_PATH) { act_closepath(cmd); } _state = S_IPATH; } while (0)
-
-#ifndef static_assert
-# define static_assert(c, msg) switch ((int) (c)) case 0: case (c):
-#endif
-
-namespace Efont {
-
-static const char * const error_formats[] = {
- "charstring OK", // errOK
- "charstring internal error in '%C'", // errInternal
- "charstring commands past end", // errRunoff
- "charstring command '%C' unimplemented", // errUnimplemented
- "charstring stack overflow", // errOverflow
- "charstring stack underflow in '%C'", // errUnderflow
- "charstring bad vector operation in '%C'", // errVector
- "charstring bad value in '%C'", // errValue
- "charstring bad subroutine number %d", // errSubr
- "charstring bad glyph number '%d'", // errGlyph
- "charstring no current point in '%C'", // errCurrentPoint
- "charstring flex error", // errFlex
- "charstring multiple master error in '%C'", // errMultipleMaster
- "charstring open stroke", // errOpenStroke
- "charstring late sidebearing command '%C'", // errLateSidebearing
- "charstring bad othersubr number %d", // errOthersubr
- "charstring ordering constraints violated at '%C'", // errOrdering
- "charstring inappropriate hintmask", // errHintmask
- "charstring subrs nested too deep at '%d'" // errSubrDepth
-};
-
-double CharstringInterp::double_for_error;
-
-
-CharstringInterp::CharstringInterp()
- : _error(errOK), _careful(false), _sp(0), _ps_sp(0),
- _scratch_vector(SCRATCH_SIZE, 0), _program(0)
-{
-}
-
-CharstringInterp::CharstringInterp(const Vector<double> &weight_vector)
- : _error(errOK), _careful(false), _sp(0), _ps_sp(0),
- _weight_vector(weight_vector),
- _scratch_vector(SCRATCH_SIZE, 0), _program(0)
-{
-}
-
-void
-CharstringInterp::initialize()
-{
- clear();
- ps_clear();
- _lsb = _cp = _seac_origin = Point(0, 0);
- _state = S_INITIAL;
- _flex = false;
- _t2nhints = 0;
- _subr_depth = 0;
- _done = false;
- _error = errOK;
-}
-
-bool
-CharstringInterp::interpret(const CharstringProgram *program, const Charstring *cs)
-{
- if (cs) {
- initialize();
- _program = program;
- cs->process(*this);
- return _error == errOK;
- } else
- return error(errGlyph, 0);
-}
-
-bool
-CharstringInterp::error(int err, int error_data)
-{
- _error = err;
- _error_data = error_data;
- return false;
-}
-
-String
-CharstringInterp::error_string(int error, int error_data)
-{
- static_assert(-errLastError == (sizeof(error_formats) / sizeof(error_formats[0])) - 1,
- "errLastError defined incorrectly");
- if (error >= 0)
- return error_formats[0];
- else if (error < errLastError)
- return "charstring unknown error number " + String(error);
- String format = error_formats[-error];
- int percent = format.find_left('%');
- if (percent >= 0 && format[percent + 1] == 'C')
- return format.substring(0, percent) + Charstring::command_name(error_data) + format.substring(percent + 2);
- else if (percent >= 0 && format[percent + 1] == 'd')
- return format.substring(0, percent) + String(error_data) + format.substring(percent + 2);
- else
- return format;
-}
-
-bool
-CharstringInterp::number(double v)
-{
- push(v);
- return true;
-}
-
-void
-CharstringInterp::fetch_weight_vector()
-{
- if (_program)
- if (Vector<double> *wv = _program->mm_vector(CharstringProgram::VEC_WEIGHT, false))
- _weight_vector = *wv;
-}
-
-bool
-CharstringInterp::vector_command(int cmd)
-{
- CharstringProgram::VectorType which_vector;
- int vectoroff, offset, num, i;
- Vector<double> *v = 0;
-
- switch (cmd) {
-
- case Cs::cPut:
- CHECK_STACK(2);
- offset = (int)top(0);
- vec(&_scratch_vector, offset) = top(1);
- pop(2);
- break;
-
- case Cs::cGet:
- CHECK_STACK(1);
- offset = (int)top();
- top() = vec(&_scratch_vector, offset);
- break;
-
- case Cs::cStore:
- CHECK_STACK(4);
- which_vector = (CharstringProgram::VectorType)((int)top(3));
- vectoroff = (int)top(2);
- offset = (int)top(1);
- num = (int)top(0);
- pop(4);
-
- if (!_program)
- return error(errVector, cmd);
- v = _program->mm_vector(which_vector, true);
- if (!v)
- return error(errVector, cmd);
-
- for (i = 0; i < num; i++, offset++, vectoroff++)
- vec(v, vectoroff) = vec(&_scratch_vector, offset);
- // erase our weight vector if the global weight vector has changed
- if (which_vector == CharstringProgram::VEC_WEIGHT)
- _weight_vector.clear();
- break;
-
- case Cs::cLoad:
- CHECK_STACK(3);
- which_vector = (CharstringProgram::VectorType)((int)top(2));
- offset = (int)top(1);
- num = (int)top(0);
- pop(3);
-
- if (!_program)
- return error(errVector, cmd);
- v = _program->mm_vector(which_vector, false);
- // use our weight vector if appropriate
- if (!v && which_vector == CharstringProgram::VEC_WEIGHT && _weight_vector.size())
- v = &_weight_vector;
- if (!v)
- return error(errVector, cmd);
-
- for (i = 0; i < num; i++, offset++)
- vec(&_scratch_vector, offset) = vec(v, i);
- break;
-
- default:
- return error(errUnimplemented, cmd);
-
- }
-
- return true;
-}
-
-bool
-CharstringInterp::blend_command()
-{
- const int cmd = Cs::cBlend;
- CHECK_STACK(1);
- int nargs = (int)pop();
-
- ensure_weight_vector();
- if (!_weight_vector.size())
- return error(errVector, cmd);
-
- int nmasters = _weight_vector.size();
- CHECK_STACK(nargs * nmasters);
-
- int base = _sp - nargs * nmasters;
- int off = base + nargs;
- for (int j = 0; j < nargs; j++) {
- double &val = _s[base + j];
- for (int i = 1; i < nmasters; i++, off++)
- val += _weight_vector.at_u(i) * _s[off];
- }
-
- pop(nargs * (nmasters - 1));
- return true;
-}
-
-bool
-CharstringInterp::roll_command()
-{
- const int cmd = Cs::cRoll;
- CHECK_STACK(2);
- int amount = (int)pop();
- int n = (int)pop();
- if (n <= 0)
- return error(errValue, cmd);
- CHECK_STACK(n);
-
- int base = _sp - n;
- while (amount < 0)
- amount += n;
-
- int i;
- double copy_stack[STACK_SIZE];
- for (i = 0; i < n; i++)
- copy_stack[i] = _s[ base + (i+amount) % n ];
- for (i = 0; i < n; i++)
- _s[base + i] = copy_stack[i];
-
- return true;
-}
-
-bool
-CharstringInterp::arith_command(int cmd)
-{
- int i;
- double d;
-
- switch (cmd) {
-
- case Cs::cBlend:
- return blend_command();
-
- case Cs::cAbs:
- CHECK_STACK(1);
- if (top() < 0)
- top() = -top();
- break;
-
- case Cs::cAdd:
- CHECK_STACK(1);
- d = pop();
- top() += d;
- break;
-
- case Cs::cSub:
- CHECK_STACK(1);
- d = pop();
- top() -= d;
- break;
-
- case Cs::cDiv:
- CHECK_STACK(2);
- d = pop();
- top() /= d;
- break;
-
- case Cs::cNeg:
- CHECK_STACK(1);
- top() = -top();
- break;
-
- case Cs::cRandom: {
- double d;
- do {
- d = random() / ((double)RAND_MAX);
- } while (d == 0);
- push(d);
- break;
- }
-
- case Cs::cMul:
- CHECK_STACK(2);
- d = pop();
- top() *= d;
- break;
-
- case Cs::cSqrt:
- CHECK_STACK(1);
- if (top() < 0)
- return error(errValue, cmd);
- top() = sqrt(top());
- break;
-
- case Cs::cDrop:
- CHECK_STACK(1);
- pop();
- break;
-
- case Cs::cExch:
- CHECK_STACK(2);
- d = top(0);
- top(0) = top(1);
- top(1) = d;
- break;
-
- case Cs::cIndex:
- CHECK_STACK(1);
- i = (int)top();
- if (i < 0)
- return error(errValue, cmd);
- CHECK_STACK(i + 2);
- top() = top(i+1);
- break;
-
- case Cs::cRoll:
- return roll_command();
-
- case Cs::cDup:
- CHECK_STACK(1);
- push(top());
- break;
-
- case Cs::cAnd:
- CHECK_STACK(2);
- d = pop();
- top() = (top() != 0) && (d != 0);
- break;
-
- case Cs::cOr:
- CHECK_STACK(2);
- d = pop();
- top() = (top() != 0) || (d != 0);
- break;
-
- case Cs::cNot:
- CHECK_STACK(1);
- top() = (top() == 0);
- break;
-
- case Cs::cEq:
- CHECK_STACK(2);
- d = pop();
- top() = (top() == d);
- break;
-
- case Cs::cIfelse:
- CHECK_STACK(4);
- if (top(1) > top(0))
- top(3) = top(2);
- pop(3);
- break;
-
- case Cs::cPop:
- if (ps_size() < 1)
- return error(errUnderflow, cmd);
- push(ps_pop());
- break;
-
- case 15:
- // this command is found with no explanation in JansonText-Roman
- CHECK_STACK(2);
- pop(2);
- return true;
-
- default:
- return error(errUnimplemented, cmd);
-
- }
-
- return true;
-}
-
-bool
-CharstringInterp::callsubr_command()
-{
- const int cmd = Cs::cCallsubr;
- CHECK_STACK(1);
- int which = (int)pop();
-
- Charstring *subr_cs = get_subr(which);
- if (!subr_cs)
- return error(errSubr, which);
-
- if (_subr_depth >= MAX_SUBR_DEPTH)
- return error(errSubrDepth, which);
- _subr_depth++;
-
- subr_cs->process(*this);
-
- _subr_depth--;
- if (_error != errOK)
- return false;
- return !done();
-}
-
-bool
-CharstringInterp::callgsubr_command()
-{
- const int cmd = Cs::cCallgsubr;
- CHECK_STACK(1);
- int which = (int)pop();
-
- Charstring *subr_cs = get_gsubr(which);
- if (!subr_cs)
- return error(errSubr, which);
-
- if (_subr_depth >= MAX_SUBR_DEPTH)
- return error(errSubrDepth, which);
- _subr_depth++;
-
- subr_cs->process(*this);
-
- _subr_depth--;
- if (_error != errOK)
- return false;
- return !done();
-}
-
-bool
-CharstringInterp::mm_command(int command, int on_stack)
-{
- ensure_weight_vector();
- if (!_weight_vector.size())
- return error(errVector, command);
-
- int nargs;
- switch (command) {
- case Cs::othcMM1: nargs = 1; break;
- case Cs::othcMM2: nargs = 2; break;
- case Cs::othcMM3: nargs = 3; break;
- case Cs::othcMM4: nargs = 4; break;
- case Cs::othcMM6: nargs = 6; break;
- default: return error(errInternal, command);
- }
-
- int nmasters = _weight_vector.size();
- if (size() < nargs * nmasters
- || on_stack != nargs * nmasters)
- return error(errMultipleMaster, command);
-
- int base = size() - on_stack;
-
- int off = base + nargs;
- for (int j = 0; j < nargs; j++) {
- double &val = at(base + j);
- for (int i = 1; i < nmasters; i++, off++)
- val += _weight_vector.at_u(i) * at(off);
- }
-
- for (int i = nargs - 1; i >= 0; i--)
- ps_push(at(base + i));
-
- pop(on_stack);
- return true;
-}
-
-bool
-CharstringInterp::itc_command(int command, int on_stack)
-{
- ensure_weight_vector();
- if (!_weight_vector.size())
- return error(errVector, command);
-
- int base = size() - on_stack;
- switch (command) {
-
- case Cs::othcITC_load: {
- if (on_stack != 1)
- return error(errOthersubr, command);
- int offset = (int)at(base);
- for (int i = 0; i < _weight_vector.size(); i++)
- vec(&_scratch_vector, offset+i) = _weight_vector.at_u(i);
- break;
- }
-
- case Cs::othcITC_put: {
- if (on_stack != 2)
- return error(errOthersubr, command);
- int offset = (int)at(base+1);
- vec(&_scratch_vector, offset) = at(base);
- break;
- }
-
- case Cs::othcITC_get: {
- if (on_stack != 1)
- return error(errOthersubr, command);
- int offset = (int)at(base);
- ps_push(vec(&_scratch_vector, offset));
- break;
- }
-
- case Cs::othcITC_add: {
- if (on_stack != 2)
- return error(errOthersubr, command);
- ps_push(at(base) + at(base+1));
- break;
- }
-
- case Cs::othcITC_sub: {
- if (on_stack != 2)
- return error(errOthersubr, command);
- ps_push(at(base) - at(base+1));
- break;
- }
-
- case Cs::othcITC_mul: {
- if (on_stack != 2)
- return error(errOthersubr, command);
- ps_push(at(base) * at(base+1));
- break;
- }
-
- case Cs::othcITC_div: {
- if (on_stack != 2)
- return error(errOthersubr, command);
- ps_push(at(base) / at(base+1));
- break;
- }
-
- case Cs::othcITC_ifelse: {
- if (on_stack != 4)
- return error(errOthersubr, command);
- if (at(base+2) <= at(base+3))
- ps_push(at(base));
- else
- ps_push(at(base+1));
- break;
- }
-
- default:
- return error(errOthersubr, command);
-
- }
-
- pop(on_stack);
- return true;
-}
-
-
-inline void
-CharstringInterp::actp_rmoveto(int /*cmd*/, double dx, double dy)
-{
- _cp.shift(dx, dy);
-}
-
-inline void
-CharstringInterp::actp_rlineto(int cmd, double dx, double dy)
-{
- Point p0(_cp);
- _cp.shift(dx, dy);
- act_line(cmd, p0, _cp);
-}
-
-void
-CharstringInterp::actp_rrcurveto(int cmd, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3)
-{
- Point p0(_cp);
- Point p1(p0, dx1, dy1);
- Point p2(p1, dx2, dy2);
- _cp = p2.shifted(dx3, dy3);
- act_curve(cmd, p0, p1, p2, _cp);
-}
-
-void
-CharstringInterp::actp_rrflex(int cmd, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3, double dx4, double dy4, double dx5, double dy5, double dx6, double dy6, double flex_depth)
-{
- Point p0(_cp);
- Point p1(p0, dx1, dy1);
- Point p2(p1, dx2, dy2);
- Point p3_4(p2, dx3, dy3);
- Point p5(p3_4, dx4, dy4);
- Point p6(p5, dx5, dy5);
- _cp = p6.shifted(dx6, dy6);
- act_flex(cmd, p0, p1, p2, p3_4, p5, p6, _cp, flex_depth);
-}
-
-
-bool
-CharstringInterp::callothersubr_command(int othersubrnum, int n)
-{
- switch (othersubrnum) {
-
- case Cs::othcFlexend:
- if (n != 3)
- goto unknown;
- if (!_flex || ps_size() != 16)
- return error(errFlex);
- CHECK_PATH_START();
- act_flex(Cs::cCallothersubr, Point(ps_at(0), ps_at(1)),
- Point(ps_at(4), ps_at(5)), Point(ps_at(6), ps_at(7)),
- Point(ps_at(8), ps_at(9)), Point(ps_at(10), ps_at(11)),
- Point(ps_at(12), ps_at(13)), Point(ps_at(14), ps_at(15)),
- top(2));
- ps_clear();
- ps_push(top(0));
- ps_push(top(1));
- _flex = false;
- _state = S_PATH;
- break;
-
- case Cs::othcFlexbegin:
- if (n != 0)
- goto unknown;
- if (_flex)
- return error(errFlex);
- ps_clear();
- ps_push(_cp.x);
- ps_push(_cp.y);
- _flex = true;
- _state = S_IPATH;
- break;
-
- case Cs::othcFlexmiddle:
- if (n != 0)
- goto unknown;
- if (!_flex)
- return error(errFlex);
- ps_push(_cp.x);
- ps_push(_cp.y);
- break;
-
- case Cs::othcReplacehints:
- if (n != 1)
- goto unknown;
- ps_clear();
- ps_push(top());
- break;
-
- case Cs::othcMM1:
- case Cs::othcMM2:
- case Cs::othcMM3:
- case Cs::othcMM4:
- case Cs::othcMM6:
- return mm_command(othersubrnum, n);
-
- case Cs::othcITC_load:
- case Cs::othcITC_add:
- case Cs::othcITC_sub:
- case Cs::othcITC_mul:
- case Cs::othcITC_div:
- case Cs::othcITC_put:
- case Cs::othcITC_get:
- case Cs::othcITC_unknown:
- case Cs::othcITC_ifelse:
- case Cs::othcITC_random:
- return itc_command(othersubrnum, n);
-
- default: // unknown
- unknown:
- ps_clear();
- for (int i = 0; i < n; i++)
- ps_push(top(i));
- break;
-
- }
-
- pop(n);
- return true;
-}
-
-bool
-CharstringInterp::type1_command(int cmd)
-{
- switch (cmd) {
-
- case Cs::cReturn:
- return false;
-
- case Cs::cHsbw:
- CHECK_STACK(2);
- if (_state > S_SEAC && _careful)
- return error(errOrdering, cmd);
- else {
- _lsb = _cp = _seac_origin.shifted(at(0), 0);
- if (_state == S_INITIAL) {
- act_sidebearing(cmd, _lsb);
- act_width(cmd, Point(at(1), 0));
- }
- if (_state <= S_SEAC)
- _state = S_SBW;
- }
- break;
-
- case Cs::cSbw:
- CHECK_STACK(4);
- if (_state > S_SEAC && _careful)
- return error(errOrdering, cmd);
- else {
- _lsb = _cp = _seac_origin.shifted(at(0), at(1));
- if (_state == S_INITIAL) {
- act_sidebearing(cmd, _lsb);
- act_width(cmd, Point(at(2), at(3)));
- }
- if (_state <= S_SEAC)
- _state = S_SBW;
- }
- break;
-
- case Cs::cSeac:
- CHECK_STACK(5);
- if (_state > S_SBW)
- return error(errOrdering, cmd);
- act_seac(cmd, at(0), at(1), at(2), (int)at(3), (int)at(4));
- clear();
- return false;
-
- case Cs::cCallsubr:
- return callsubr_command();
-
- case Cs::cCallothersubr: {
- CHECK_STACK(2);
- int othersubrnum = (int)top(0);
- int n = (int)top(1);
- pop(2);
- if (othersubrnum < 0 || size() < n)
- return error(errOthersubr, cmd);
- return callothersubr_command(othersubrnum, n);
- }
-
- case Cs::cPut:
- case Cs::cGet:
- case Cs::cStore:
- case Cs::cLoad:
- return vector_command(cmd);
-
- case Cs::cBlend:
- case Cs::cAbs:
- case Cs::cAdd:
- case Cs::cSub:
- case Cs::cDiv:
- case Cs::cNeg:
- case Cs::cRandom:
- case Cs::cMul:
- case Cs::cSqrt:
- case Cs::cDrop:
- case Cs::cExch:
- case Cs::cIndex:
- case Cs::cRoll:
- case Cs::cDup:
- case Cs::cAnd:
- case Cs::cOr:
- case Cs::cNot:
- case Cs::cEq:
- case Cs::cIfelse:
- case Cs::cPop:
- return arith_command(cmd);
-
- case Cs::cHlineto:
- CHECK_STACK(1);
- CHECK_PATH_START();
- actp_rlineto(cmd, at(0), 0);
- break;
-
- case Cs::cHmoveto:
- CHECK_STACK(1);
- CHECK_PATH_END();
- actp_rmoveto(cmd, at(0), 0);
- break;
-
- case Cs::cHvcurveto:
- CHECK_STACK(4);
- CHECK_PATH_START();
- actp_rrcurveto(cmd, at(0), 0, at(1), at(2), 0, at(3));
- break;
-
- case Cs::cRlineto:
- CHECK_STACK(2);
- CHECK_PATH_START();
- actp_rlineto(cmd, at(0), at(1));
- break;
-
- case Cs::cRmoveto:
- CHECK_STACK(2);
- CHECK_PATH_END();
- actp_rmoveto(cmd, at(0), at(1));
- break;
-
- case Cs::cRrcurveto:
- CHECK_STACK(6);
- CHECK_PATH_START();
- actp_rrcurveto(cmd, at(0), at(1), at(2), at(3), at(4), at(5));
- break;
-
- case Cs::cVhcurveto:
- CHECK_STACK(4);
- CHECK_PATH_START();
- actp_rrcurveto(cmd, 0, at(0), at(1), at(2), at(3), 0);
- break;
-
- case Cs::cVlineto:
- CHECK_STACK(1);
- CHECK_PATH_START();
- actp_rlineto(cmd, 0, at(0));
- break;
-
- case Cs::cVmoveto:
- CHECK_STACK(1);
- CHECK_PATH_END();
- actp_rmoveto(cmd, 0, at(0));
- break;
-
- case Cs::cDotsection:
- break;
-
- case Cs::cHstem:
- CHECK_STACK(2);
- act_hstem(cmd, _lsb.y + at(0), at(1));
- break;
-
- case Cs::cHstem3:
- CHECK_STACK(6);
- act_hstem3(cmd, _lsb.y + at(0), at(1), _lsb.y + at(2), at(3), _lsb.y + at(4), at(5));
- break;
-
- case Cs::cVstem:
- CHECK_STACK(2);
- act_vstem(cmd, _lsb.x + at(0), at(1));
- break;
-
- case Cs::cVstem3:
- CHECK_STACK(6);
- act_vstem3(cmd, _lsb.x + at(0), at(1), _lsb.x + at(2), at(3), _lsb.x + at(4), at(5));
- break;
-
- case Cs::cSetcurrentpoint:
- CHECK_STACK(2);
- _cp = Point(at(0), at(1));
- break;
-
- case Cs::cClosepath:
- CHECK_PATH_END();
- break;
-
- case Cs::cEndchar:
- CHECK_PATH_END();
- set_done();
- return false;
-
- case Cs::cError:
- default:
- return error(errUnimplemented, cmd);
-
- }
-
- clear();
- return error() >= 0;
-}
-
-
-#undef DEBUG_TYPE2
-
-int
-CharstringInterp::type2_handle_width(int cmd, bool have_width)
-{
- _cp = _lsb = _seac_origin;
- if (_state != S_INITIAL)
- /* ignore width */;
- else if (have_width)
- act_nominal_width_delta(cmd, at(0));
- else
- act_default_width(cmd);
- return (have_width ? 1 : 0);
-}
-
-bool
-CharstringInterp::type2_command(int cmd, const uint8_t *data, int *left)
-{
- int bottom = 0;
-
-#ifdef DEBUG_TYPE2
- fprintf(stderr, "%s [%d/%d]\n", Charstring::command_name(cmd).c_str(), _t2nhints, size());
-#endif
-
- switch (cmd) {
-
- case Cs::cHstem:
- case Cs::cHstemhm:
- CHECK_STACK(2);
- if (_state <= S_SEAC)
- bottom = type2_handle_width(cmd, (size() % 2) == 1);
- if (_state > S_HSTEM)
- return error(errOrdering, cmd);
- _state = S_HSTEM;
- for (double pos = 0; bottom + 1 < size(); bottom += 2) {
- _t2nhints++;
- act_hstem(cmd, pos + at(bottom), at(bottom + 1));
- pos += at(bottom) + at(bottom + 1);
- }
- break;
-
- case Cs::cVstem:
- case Cs::cVstemhm:
- CHECK_STACK(2);
- if (_state <= S_SEAC)
- bottom = type2_handle_width(cmd, (size() % 2) == 1);
- if (_state > S_VSTEM)
- return error(errOrdering, cmd);
- _state = S_VSTEM;
- for (double pos = 0; bottom + 1 < size(); bottom += 2) {
- _t2nhints++;
- act_vstem(cmd, pos + at(bottom), at(bottom + 1));
- pos += at(bottom) + at(bottom + 1);
- }
- break;
-
- case Cs::cHintmask:
- case Cs::cCntrmask:
- if (_state <= S_SEAC && size() >= 1) {
- bottom = type2_handle_width(cmd, (size() % 2) == 1);
- for (double pos = 0; bottom + 1 < size(); bottom += 2) {
- _t2nhints++;
- act_hstem(cmd, pos + at(bottom), at(bottom + 1));
- pos += at(bottom) + at(bottom + 1);
- }
- }
- if ((_state == S_HSTEM || _state == S_VSTEM) && size() >= 2)
- for (double pos = 0; bottom + 1 < size(); bottom += 2) {
- _t2nhints++;
- act_vstem(cmd, pos + at(bottom), at(bottom + 1));
- pos += at(bottom) + at(bottom + 1);
- }
- if (_state < S_HINTMASK)
- _state = S_HINTMASK;
- if (_t2nhints == 0)
- return error(errHintmask, cmd);
- if (!data || !left)
- return error(errInternal, cmd);
- if (((_t2nhints - 1) >> 3) + 1 > *left)
- return error(errRunoff, cmd);
- act_hintmask(cmd, data, _t2nhints);
- *left -= ((_t2nhints - 1) >> 3) + 1;
- break;
-
- case Cs::cRmoveto:
- CHECK_STACK(2);
- if (_state <= S_SEAC)
- bottom = type2_handle_width(cmd, size() > 2);
- CHECK_PATH_END();
- actp_rmoveto(cmd, at(bottom), at(bottom + 1));
-#if DEBUG_TYPE2
- bottom += 2;
-#endif
- break;
-
- case Cs::cHmoveto:
- CHECK_STACK(1);
- if (_state <= S_SEAC)
- bottom = type2_handle_width(cmd, size() > 1);
- CHECK_PATH_END();
- actp_rmoveto(cmd, at(bottom), 0);
-#if DEBUG_TYPE2
- bottom++;
-#endif
- break;
-
- case Cs::cVmoveto:
- CHECK_STACK(1);
- if (_state <= S_SEAC)
- bottom = type2_handle_width(cmd, size() > 1);
- CHECK_PATH_END();
- actp_rmoveto(cmd, 0, at(bottom));
-#if DEBUG_TYPE2
- bottom++;
-#endif
- break;
-
- case Cs::cRlineto:
- CHECK_STACK(2);
- CHECK_STATE();
- CHECK_PATH_START();
- for (; bottom + 1 < size(); bottom += 2)
- actp_rlineto(cmd, at(bottom), at(bottom + 1));
- break;
-
- case Cs::cHlineto:
- CHECK_STACK(1);
- CHECK_STATE();
- CHECK_PATH_START();
- while (bottom < size()) {
- actp_rlineto(cmd, at(bottom++), 0);
- if (bottom < size())
- actp_rlineto(cmd, 0, at(bottom++));
- }
- break;
-
- case Cs::cVlineto:
- CHECK_STACK(1);
- CHECK_STATE();
- CHECK_PATH_START();
- while (bottom < size()) {
- actp_rlineto(cmd, 0, at(bottom++));
- if (bottom < size())
- actp_rlineto(cmd, at(bottom++), 0);
- }
- break;
-
- case Cs::cRrcurveto:
- CHECK_STACK(6);
- CHECK_STATE();
- CHECK_PATH_START();
- for (; bottom + 5 < size(); bottom += 6)
- actp_rrcurveto(cmd, at(bottom), at(bottom + 1), at(bottom + 2), at(bottom + 3), at(bottom + 4), at(bottom + 5));
- break;
-
- case Cs::cHhcurveto:
- CHECK_STACK(4);
- CHECK_STATE();
- CHECK_PATH_START();
- if (size() % 2 == 1) {
- actp_rrcurveto(cmd, at(bottom + 1), at(bottom), at(bottom + 2), at(bottom + 3), at(bottom + 4), 0);
- bottom += 5;
- }
- for (; bottom + 3 < size(); bottom += 4)
- actp_rrcurveto(cmd, at(bottom), 0, at(bottom + 1), at(bottom + 2), at(bottom + 3), 0);
- break;
-
- case Cs::cHvcurveto:
- CHECK_STACK(4);
- CHECK_STATE();
- CHECK_PATH_START();
- while (bottom + 3 < size()) {
- double dx3 = (bottom + 5 == size() ? at(bottom + 4) : 0);
- actp_rrcurveto(cmd, at(bottom), 0, at(bottom + 1), at(bottom + 2), dx3, at(bottom + 3));
- bottom += 4;
- if (bottom + 3 < size()) {
- double dy3 = (bottom + 5 == size() ? at(bottom + 4) : 0);
- actp_rrcurveto(cmd, 0, at(bottom), at(bottom + 1), at(bottom + 2), at(bottom + 3), dy3);
- bottom += 4;
- }
- }
-#if DEBUG_TYPE2
- if (bottom + 1 == size())
- bottom++;
-#endif
- break;
-
- case Cs::cRcurveline:
- CHECK_STACK(8);
- CHECK_STATE();
- CHECK_PATH_START();
- for (; bottom + 7 < size(); bottom += 6)
- actp_rrcurveto(cmd, at(bottom), at(bottom + 1), at(bottom + 2), at(bottom + 3), at(bottom + 4), at(bottom + 5));
- actp_rlineto(cmd, at(bottom), at(bottom + 1));
-#if DEBUG_TYPE2
- bottom += 2;
-#endif
- break;
-
- case Cs::cRlinecurve:
- CHECK_STACK(8);
- CHECK_STATE();
- CHECK_PATH_START();
- for (; bottom + 7 < size(); bottom += 2)
- actp_rlineto(cmd, at(bottom), at(bottom + 1));
- actp_rrcurveto(cmd, at(bottom), at(bottom + 1), at(bottom + 2), at(bottom + 3), at(bottom + 4), at(bottom + 5));
-#if DEBUG_TYPE2
- bottom += 6;
-#endif
- break;
-
- case Cs::cVhcurveto:
- CHECK_STACK(4);
- CHECK_STATE();
- CHECK_PATH_START();
- while (bottom + 3 < size()) {
- double dy3 = (bottom + 5 == size() ? at(bottom + 4) : 0);
- actp_rrcurveto(cmd, 0, at(bottom), at(bottom + 1), at(bottom + 2), at(bottom + 3), dy3);
- bottom += 4;
- if (bottom + 3 < size()) {
- double dx3 = (bottom + 5 == size() ? at(bottom + 4) : 0);
- actp_rrcurveto(cmd, at(bottom), 0, at(bottom + 1), at(bottom + 2), dx3, at(bottom + 3));
- bottom += 4;
- }
- }
-#if DEBUG_TYPE2
- if (bottom + 1 == size())
- bottom++;
-#endif
- break;
-
- case Cs::cVvcurveto:
- CHECK_STACK(4);
- CHECK_STATE();
- CHECK_PATH_START();
- if (size() % 2 == 1) {
- actp_rrcurveto(cmd, at(bottom), at(bottom + 1), at(bottom + 2), at(bottom + 3), 0, at(bottom + 4));
- bottom += 5;
- }
- for (; bottom + 3 < size(); bottom += 4)
- actp_rrcurveto(cmd, 0, at(bottom), at(bottom + 1), at(bottom + 2), 0, at(bottom + 3));
- break;
-
- case Cs::cFlex:
- CHECK_STACK(13);
- CHECK_STATE();
- CHECK_PATH_START();
- assert(bottom == 0);
- actp_rrflex(cmd,
- at(0), at(1), at(2), at(3), at(4), at(5),
- at(6), at(7), at(8), at(9), at(10), at(11),
- at(12));
-#if DEBUG_TYPE2
- bottom += 13;
-#endif
- break;
-
- case Cs::cHflex:
- CHECK_STACK(7);
- CHECK_STATE();
- CHECK_PATH_START();
- assert(bottom == 0);
- actp_rrflex(cmd,
- at(0), 0, at(1), at(2), at(3), 0,
- at(4), 0, at(5), -at(2), at(6), 0,
- 50);
-#if DEBUG_TYPE2
- bottom += 7;
-#endif
- break;
-
- case Cs::cHflex1:
- CHECK_STACK(9);
- CHECK_STATE();
- CHECK_PATH_START();
- assert(bottom == 0);
- actp_rrflex(cmd,
- at(0), at(1), at(2), at(3), at(4), 0,
- at(5), 0, at(6), at(7), at(8), -(at(1) + at(3) + at(7)),
- 50);
-#if DEBUG_TYPE2
- bottom += 9;
-#endif
- break;
-
- case Cs::cFlex1: {
- CHECK_STACK(11);
- CHECK_STATE();
- CHECK_PATH_START();
- assert(bottom == 0);
- double dx = at(0) + at(2) + at(4) + at(6) + at(8);
- double dy = at(1) + at(3) + at(5) + at(7) + at(9);
- if (fabs(dx) > fabs(dy))
- actp_rrflex(cmd,
- at(0), at(1), at(2), at(3), at(4), at(5),
- at(6), at(7), at(8), at(9), at(10), -dy,
- 50);
- else
- actp_rrflex(cmd,
- at(0), at(1), at(2), at(3), at(4), at(5),
- at(6), at(7), at(8), at(9), -dx, at(10),
- 50);
- break;
-#if DEBUG_TYPE2
- bottom += 11;
-#endif
- }
-
- case Cs::cEndchar:
- if (_state <= S_SEAC)
- bottom = type2_handle_width(cmd, size() > 0 && size() != 4);
- if (bottom + 3 < size() && _state == S_INITIAL)
- act_seac(cmd, 0, at(bottom), at(bottom + 1), (int)at(bottom + 2), (int)at(bottom + 3));
- CHECK_PATH_END();
- set_done();
- clear();
- return false;
-
- case Cs::cReturn:
- return false;
-
- case Cs::cCallsubr:
- return callsubr_command();
-
- case Cs::cCallgsubr:
- return callgsubr_command();
-
- case Cs::cPut:
- case Cs::cGet:
- case Cs::cStore:
- case Cs::cLoad:
- return vector_command(cmd);
-
- case Cs::cBlend:
- case Cs::cAbs:
- case Cs::cAdd:
- case Cs::cSub:
- case Cs::cDiv:
- case Cs::cNeg:
- case Cs::cRandom:
- case Cs::cMul:
- case Cs::cSqrt:
- case Cs::cDrop:
- case Cs::cExch:
- case Cs::cIndex:
- case Cs::cRoll:
- case Cs::cDup:
- case Cs::cAnd:
- case Cs::cOr:
- case Cs::cNot:
- case Cs::cEq:
- case Cs::cIfelse:
- case Cs::cPop:
- return arith_command(cmd);
-
- case Cs::cDotsection:
- break;
-
- case Cs::cError:
- default:
- return error(errUnimplemented, cmd);
-
- }
-
-#if DEBUG_TYPE2
- if (bottom != size())
- fprintf(stderr, "[left %d on stack] ", size() - bottom);
-#endif
-
- clear();
- return error() >= 0;
-}
-
-
-void
-CharstringInterp::act_sidebearing(int, const Point &)
-{
- /* do nothing */
-}
-
-void
-CharstringInterp::act_width(int, const Point &)
-{
- /* do nothing */
-}
-
-void
-CharstringInterp::act_default_width(int cmd)
-{
- double d = (_program ? _program->global_width_x(false) : UNKDOUBLE);
- if (KNOWN(d))
- act_width(cmd, Point(d, 0));
-}
-
-void
-CharstringInterp::act_nominal_width_delta(int cmd, double delta)
-{
- double d = (_program ? _program->global_width_x(true) : UNKDOUBLE);
- if (KNOWN(d))
- act_width(cmd, Point(d + delta, 0));
-}
-
-void
-CharstringInterp::act_seac(int cmd, double asb, double adx, double ady, int bchar, int achar)
-{
- Charstring *acs = 0, *bcs = 0;
- if (achar < 0 || achar >= 256 || bchar < 0 || bchar >= 256
- || !_program || _program->parent_program()
- || !(acs = get_glyph(Charstring::standard_encoding[achar]))
- || !(bcs = get_glyph(Charstring::standard_encoding[bchar]))) {
- error(errGlyph, cmd);
- return;
- }
-
- Point apos = Point(adx + _lsb.x - asb, ady + _lsb.y);
- Point save_lsb = _lsb;
- Point save_seac_origin = _seac_origin;
-
- CharstringInterp::initialize();
- _seac_origin = apos;
- _state = S_SEAC;
- acs->process(*this);
- if (error() == errOK) {
- CharstringInterp::initialize();
- _seac_origin = save_seac_origin;
- _state = S_SEAC;
- bcs->process(*this);
- }
-
- _lsb = save_lsb;
-}
-
-void
-CharstringInterp::act_line(int cmd, const Point &p0, const Point &p1)
-{
- act_curve(cmd, p0, p0, p1, p1);
-}
-
-void
-CharstringInterp::act_curve(int cmd, const Point &, const Point &, const Point &, const Point &)
-{
- error(errUnimplemented, cmd);
-}
-
-void
-CharstringInterp::act_flex(int cmd, const Point &p0, const Point &p1, const Point &p2, const Point &p3_4, const Point &p5, const Point &p6, const Point &p7, double flex_depth)
-{
- (void) flex_depth;
- act_curve(cmd, p0, p1, p2, p3_4);
- act_curve(cmd, p3_4, p5, p6, p7);
-}
-
-void
-CharstringInterp::act_closepath(int)
-{
- /* do nothing */
-}
-
-void
-CharstringInterp::act_hstem(int, double, double)
-{
- /* do nothing */
-}
-
-void
-CharstringInterp::act_vstem(int, double, double)
-{
- /* do nothing */
-}
-
-void
-CharstringInterp::act_hstem3(int cmd, double y0, double dy0, double y1, double dy1, double y2, double dy2)
-{
- act_hstem(cmd, y0, dy0);
- act_hstem(cmd, y1, dy1);
- act_hstem(cmd, y2, dy2);
-}
-
-void
-CharstringInterp::act_vstem3(int cmd, double x0, double dx0, double x1, double dx1, double x2, double dx2)
-{
- act_vstem(cmd, x0, dx0);
- act_vstem(cmd, x1, dx1);
- act_vstem(cmd, x2, dx2);
-}
-
-void
-CharstringInterp::act_hintmask(int, const uint8_t *, int)
-{
- /* do nothing */
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
deleted file mode 100644
index d9e2b614ef4..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1item.cc
+++ /dev/null
@@ -1,861 +0,0 @@
-// -*- related-file-name: "../include/efont/t1item.hh" -*-
-
-/* t1item.{cc,hh} -- items in a Type 1 font
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1item.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1interp.hh>
-#include <efont/t1font.hh>
-#include <lcdf/strtonum.h>
-#include <ctype.h>
-#include <string.h>
-#include <sys/stat.h>
-#ifndef WIN32
-# include <unistd.h>
-#endif
-#if HAVE_BROKEN_STRTOD
-# define strtod good_strtod
-#endif
-namespace Efont {
-
-/*****
- * Type1NullItem
- **/
-
-void
-Type1NullItem::gen(Type1Writer &)
-{
-}
-
-/*****
- * Type1CopyItem
- **/
-
-void
-Type1CopyItem::gen(Type1Writer &w)
-{
- w << _value << '\n';
-}
-
-
-/*****
- * Type1EexecItem
- **/
-
-void
-Type1EexecItem::gen(Type1Writer &w)
-{
- if (_eexec_on)
- w << "currentfile eexec\n";
- w.switch_eexec(_eexec_on);
-}
-
-
-/*****
- * Type1Definition
- **/
-
-typedef Vector<double> NumVector;
-
-
-Type1Definition::Type1Definition(PermString n, const String &v, PermString d)
- : _name(n), _val(v), _definer(d)
-{
- _val.c_str(); // ensure it ends with '\0'
-}
-
-Type1Definition *
-Type1Definition::make_string(PermString n, const String &v, PermString d)
-{
- Type1Definition *t1d = new Type1Definition(n, "", d);
- t1d->set_string(v);
- return t1d;
-}
-
-int
-Type1Definition::slurp_string(StringAccum &accum, int pos, Type1Reader *reader)
-{
- int paren_level = 0;
- char *s = accum.data() + pos;
-
- do {
- switch (*s++) {
- case '(': paren_level++; break;
- case ')': paren_level--; break;
- case '\\': if (paren_level && *s) s++; break;
- case 0:
- if (!reader) return -1;
- pos = s - accum.data();
- accum.append('\n'); // add \n
- if (!reader->next_line(accum)) return -1;
- accum.c_str(); // ensure null termination
- s = accum.data() + pos;
- break;
- }
- } while (paren_level);
-
- return s - accum.data();
-}
-
-int
-Type1Definition::slurp_proc(StringAccum &accum, int pos, Type1Reader *reader)
-{
- int paren_level = 0;
- int brace_level = 0;
- char *s = accum.data() + pos;
-
- do {
- switch (*s++) {
- case '{': if (!paren_level) brace_level++; break;
- case '}': if (!paren_level) brace_level--; break;
- case '(': paren_level++; break;
- case ')': paren_level--; break;
- case '\\': if (paren_level && *s) s++; break;
- case '%':
- if (!paren_level)
- while (*s != '\n' && *s != '\r' && *s)
- s++;
- break;
- case 0:
- if (!reader) return -1;
- pos = s - accum.data();
- accum.append('\n'); // add \n
- if (!reader->next_line(accum)) return -1;
- accum.c_str(); // ensure null termination
- s = accum.data() + pos;
- break;
- }
- } while (brace_level);
-
- return s - accum.data();
-}
-
-Type1Definition *
-Type1Definition::make(StringAccum &accum, Type1Reader *reader,
- bool force_definition)
-{
- char *s = accum.data();
- while (isspace((unsigned char) *s))
- s++;
- if (*s != '/')
- return 0;
- s++;
- int name_start_pos = s - accum.data();
-
- // find NAME LENGTH
- while (!isspace((unsigned char) *s) && *s != '[' && *s != '{' && *s != '('
- && *s != ']' && *s != '}' && *s != ')' && *s)
- s++;
- if (!*s)
- return 0;
- int name_end_pos = s - accum.data();
-
- while (isspace((unsigned char) *s))
- s++;
- int val_pos = s - accum.data();
- int val_end_pos = -1;
- bool check_def = false;
-
- if (*s == '}' || *s == ']' || *s == ')' || *s == 0)
- return 0;
-
- else if (*s == '(')
- val_end_pos = slurp_string(accum, val_pos, reader);
-
- else if (*s == '{')
- val_end_pos = slurp_proc(accum, val_pos, reader);
-
- else if (*s == '[') {
- int brack_level = 0;
- do {
- switch (*s++) {
- case '[': brack_level++; break;
- case ']': brack_level--; break;
- case '(': case ')': case 0: return 0;
- }
- } while (brack_level);
- val_end_pos = s - accum.data();
-
- } else {
- while (!isspace((unsigned char) *s) && *s)
- s++;
- val_end_pos = s - accum.data();
- if (!force_definition) check_def = true;
- }
-
- if (val_end_pos < 0)
- return 0;
- s = accum.data() + val_end_pos;
- while (isspace((unsigned char) *s))
- s++;
- if (check_def && (s[0] != 'd' || s[1] != 'e' || s[2] != 'f'))
- if (strncmp(s, "dict def", 8) != 0)
- return 0;
-
- PermString name(accum.data()+name_start_pos, name_end_pos - name_start_pos);
- PermString def(s, accum.length() - (s - accum.data()));
- String value = String(accum.data() + val_pos, val_end_pos - val_pos);
- return new Type1Definition(name, value, def);
-}
-
-void
-Type1Definition::gen(Type1Writer &w)
-{
- w << '/' << _name << ' ' << _val << ' ' << _definer << '\n';
-}
-
-void
-Type1Definition::gen(StringAccum &sa)
-{
- sa << '/' << _name << ' ' << _val << ' ' << _definer;
-}
-
-
-bool
-Type1Definition::value_bool(bool &b) const
-{
- if (_val == "true") {
- b = true;
- return true;
- } else if (_val == "false") {
- b = false;
- return true;
- } else
- return false;
-}
-
-bool
-Type1Definition::value_int(int &i) const
-{
- char *s;
- i = strtol(_val.data(), &s, 10);
- return (*s == 0);
-}
-
-bool
-Type1Definition::value_num(double &d) const
-{
- char *s;
- d = strtonumber(_val.data(), &s);
- return (*s == 0);
-}
-
-bool
-Type1Definition::value_string(String &str) const
-{
- if (_val.length() == 0 || _val[0] != '(' || _val.back() != ')')
- return false;
- StringAccum sa;
- int pos, first_pos = 1, len = _val.length() - 1;
- for (pos = 1; pos < len; pos++)
- if (_val[pos] == '\\') {
- sa.append(_val.data() + first_pos, pos - first_pos);
- pos++;
- switch (pos < len ? _val[pos] : -1) {
- case '\r':
- pos++;
- if (pos < len && _val[pos] == '\n')
- pos++;
- break;
- case '\n':
- pos++;
- break;
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7': {
- int c = _val[pos++] - '0';
- for (int i = 1; pos < len && i < 3 && _val[pos] >= '0' && _val[pos] <= '7'; i++, pos++)
- c = (c << 3) | (_val[pos] - '0');
- sa.append((char) c);
- break;
- }
- case 'n':
- sa << '\n';
- pos++;
- break;
- case 'r':
- sa << '\r';
- pos++;
- break;
- case 't':
- sa << '\t';
- pos++;
- break;
- case 'b':
- sa << '\b';
- pos++;
- break;
- case 'f':
- sa << '\f';
- pos++;
- break;
- default:
- sa << _val[pos];
- pos++;
- break;
- }
- first_pos = pos;
- }
- sa.append(_val.data() + first_pos, len - first_pos);
- str = sa.take_string();
- return true;
-}
-
-bool
-Type1Definition::value_name(PermString &str) const
-{
- if (_val.length() == 0 || _val[0] != '/')
- return false;
- int pos;
- for (pos = 1; pos < _val.length(); pos++)
- if (isspace((unsigned char) _val[pos]) || _val[pos] == '/')
- return false;
- str = PermString(_val.data() + 1, pos - 1);
- return true;
-}
-
-static bool
-strtonumvec(const char *f, const char **endf, NumVector &v)
-{
- v.clear();
- char *s = (char *)f;
- if (*s != '[' && *s != '{')
- return false;
- s++;
- while (1) {
- while (isspace((unsigned char) *s))
- s++;
- if (isdigit((unsigned char) *s) || *s == '.' || *s == '-')
- v.push_back( strtonumber(s, &s) );
- else {
- if (endf)
- *endf = s + 1;
- return (*s == ']' || *s == '}');
- }
- }
-}
-
-bool
-Type1Definition::value_numvec(NumVector &v) const
-{
- return strtonumvec(_val.data(), 0, v);
-}
-
-static bool
-strtonumvec_vec(const char *f, const char **endf, Vector<NumVector> &v)
-{
- v.clear();
- const char *s = f;
- if (*s != '[' && *s != '{')
- return false;
- s++;
- while (1) {
- while (isspace((unsigned char) *s))
- s++;
- if (*s == '[' || *s == '{') {
- NumVector subv;
- if (!strtonumvec(s, &s, subv))
- return false;
- v.push_back(subv);
- } else {
- if (endf)
- *endf = s + 1;
- return (*s == ']' || *s == '}');
- }
- }
-}
-
-bool
-Type1Definition::value_numvec_vec(Vector<NumVector> &v) const
-{
- return strtonumvec_vec(_val.data(), 0, v);
-}
-
-bool
-Type1Definition::value_normalize(Vector<NumVector> &in,
- Vector<NumVector> &out) const
-{
- in.clear();
- out.clear();
- const char *s = _val.data();
- if (*s++ != '[')
- return false;
- while (1) {
- while (isspace((unsigned char) *s))
- s++;
- if (*s == '[') {
- Vector<NumVector> sub;
- if (!strtonumvec_vec(s, &s, sub))
- return false;
-
- NumVector subin;
- NumVector subout;
- for (int i = 0; i < sub.size(); i++)
- if (sub[i].size() == 2) {
- subin.push_back(sub[i][0]);
- subout.push_back(sub[i][1]);
- } else
- return false;
- in.push_back(subin);
- out.push_back(subout);
- } else
- return (*s == ']');
- }
-}
-
-bool
-Type1Definition::value_namevec(Vector<PermString> &v) const
-{
- v.clear();
- const char *s = _val.data();
- if (*s++ != '[')
- return false;
- while (1) {
- while (isspace((unsigned char) *s))
- s++;
- if (*s == '/')
- s++;
- if (isalnum((unsigned char) *s)) {
- const char *start = s;
- while (*s && !isspace((unsigned char) *s) && *s != ']' && *s != '/')
- s++;
- v.push_back(PermString(start, s - start));
- } else
- return (*s == ']');
- }
-}
-
-
-void
-Type1Definition::set_bool(bool b)
-{
- set_val(b ? "true" : "false");
-}
-
-void
-Type1Definition::set_int(int i)
-{
- set_val(String(i));
-}
-
-void
-Type1Definition::set_num(double n)
-{
- set_val(String(n));
-}
-
-void
-Type1Definition::set_string(const String &v)
-{
- const char *s = v.data();
- int len = v.length();
- int left = 0;
- StringAccum sa;
- sa << '(';
- for (int pos = 0; pos < len; pos++)
- if ((s[pos] < ' ' && !isspace((unsigned char) s[pos])) || ((unsigned char)s[pos]) > 0176 || s[pos] == '(' || s[pos] == ')' || s[pos] == '\\') {
- sa << v.substring(left, pos - left) << '\\';
- if (s[pos] == '(' || s[pos] == ')' || s[pos] == '\\')
- sa << s[pos];
- else
- sprintf(sa.reserve(8), "%03o", (unsigned char) (s[pos]));
- left = pos + 1;
- }
- sa << v.substring(left) << ')';
- _val = sa.take_string();
-}
-
-void
-Type1Definition::set_name(PermString str, bool name)
-{
- StringAccum sa;
- if (name)
- sa << '/';
- sa << str;
- set_val(sa);
-}
-
-static void
-accum_numvec(StringAccum &sa, const NumVector &nv, bool executable)
-{
- char open = (executable ? '{' : '[');
- for (int i = 0; i < nv.size(); i++)
- sa << (i ? ' ' : open) << nv[i];
- sa << (executable ? '}' : ']');
-}
-
-void
-Type1Definition::set_numvec(const NumVector &nv, bool executable)
-{
- StringAccum sa;
- accum_numvec(sa, nv, executable);
- set_val(sa);
-}
-
-void
-Type1Definition::set_numvec_vec(const Vector<NumVector> &nv)
-{
- StringAccum sa;
- sa << '[';
- for (int i = 0; i < nv.size(); i++)
- accum_numvec(sa, nv[i], false);
- sa << ']';
- set_val(sa);
-}
-
-void
-Type1Definition::set_normalize(const Vector<NumVector> &vin,
- const Vector<NumVector> &vout)
-{
- StringAccum sa;
- sa << '[';
- for (int i = 0; i < vin.size(); i++) {
- const NumVector &vini = vin[i];
- const NumVector &vouti = vout[i];
- sa << '[';
- for (int j = 0; j < vini.size(); j++)
- sa << '[' << vini[j] << ' ' << vouti[j] << ']';
- sa << ']';
- }
- sa << ']';
- set_val(sa);
-}
-
-void
-Type1Definition::set_namevec(const Vector<PermString> &v, bool executable)
-{
- StringAccum sa;
- sa << '[';
- for (int i = 0; i < v.size(); i++) {
- if (i) sa << ' ';
- if (executable) sa << '/';
- sa << v[i];
- }
- sa << ']';
- set_val(sa);
-}
-
-
-/*****
- * Type1Encoding
- **/
-
-static PermString::Initializer initializer;
-static PermString dot_notdef(".notdef");
-
-
-Type1Encoding::Type1Encoding()
- : _v(new PermString[256]), _copy_of(0), _definer("readonly def")
-{
- for (int i = 0; i < 256; i++)
- _v[i] = dot_notdef;
-}
-
-Type1Encoding::Type1Encoding(const Type1Encoding &o)
- : Type1Item(), _definer(o._definer)
-{
- if (o._copy_of) {
- _v = o._v;
- _copy_of = o._copy_of;
- } else {
- _v = new PermString[256];
- _copy_of = 0;
- for (int i = 0; i < 256; i++)
- _v[i] = o._v[i];
- }
-}
-
-Type1Encoding::Type1Encoding(Type1Encoding *copy_of)
- : _v(copy_of->_v), _copy_of(copy_of), _definer(copy_of->_definer)
-{
-}
-
-Type1Encoding::~Type1Encoding()
-{
- if (!_copy_of)
- delete[] _v;
-}
-
-void
-Type1Encoding::unshare()
-{
- if (_copy_of) {
- PermString *new_v = new PermString[256];
- memcpy(new_v, _v, sizeof(PermString) * 256);
- _v = new_v;
- _copy_of = 0;
- }
-}
-
-void
-Type1Encoding::clear()
-{
- unshare();
- for (int i = 0; i < 256; i++)
- _v[i] = dot_notdef;
-}
-
-
-static Type1Encoding *canonical_standard_encoding;
-
-Type1Encoding *
-Type1Encoding::standard_encoding()
-{
- if (!canonical_standard_encoding) {
- canonical_standard_encoding = new Type1Encoding;
- for (int i = 0; i < 256; i++)
- if (Charstring::standard_encoding[i])
- canonical_standard_encoding->put(i, Charstring::standard_encoding[i]);
- }
- // Return a copy of the cached encoding. When it's deleted, we won't be.
- return new Type1Encoding(canonical_standard_encoding);
-}
-
-
-void
-Type1Encoding::gen(Type1Writer &w)
-{
- if (_copy_of && _copy_of == canonical_standard_encoding)
- w << "/Encoding StandardEncoding def\n";
- else {
- w << "/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\n";
- for (int i = 0; i < 256; i++)
- if (_v[i] != dot_notdef)
- w << "dup " << i << " /" << _v[i] << " put\n";
- w << _definer << '\n';
- }
-}
-
-
-/*****
- * Type1Subr
- **/
-
-Type1Subr::Type1Subr(PermString n, int num, PermString definer,
- int lenIV, const String &s)
- : _name(n), _subrno(num), _definer(definer), _cs(lenIV, s)
-{
-}
-
-Type1Subr::Type1Subr(PermString n, int num, PermString definer,
- const Type1Charstring &t1cs)
- : _name(n), _subrno(num), _definer(definer), _cs(t1cs)
-{
-}
-
-Type1Subr *
-Type1Subr::make(const char *s_in, int s_len, int cs_pos, int cs_len, int lenIV)
-{
- /* USAGE NOTE: You must ensure that s_in contains a valid subroutine string
- before calling Type1Subr::make. Type1Reader::was_charstring() is a good
- guarantee of this.
- A valid subroutine string is one of the following:
- /[char_name] ### charstring_start ........
- dup [subrno] ### charstring_start .... */
-
- const char *s = s_in;
- PermString name;
- int subrno = 0;
-
- // Force literal spaces rather than isspace().
- if (*s == '/') {
- const char *nstart = ++s;
- while (!isspace((unsigned char) *s) && *s)
- s++;
- name = PermString(nstart, s - nstart);
-
- } else {
- // dup [subrno] ...
- s += 3;
- while (isspace((unsigned char) *s))
- s++;
- subrno = strtol(s, (char **)&s, 10);
- }
-
- s = s_in + cs_pos;
-
- // Lazily decrypt the charstring.
- PermString definer = PermString(s + cs_len, s_len - cs_len - cs_pos);
- return new Type1Subr(name, subrno, definer, lenIV, String(s, cs_len));
-}
-
-Type1Subr *
-Type1Subr::make_subr(int subrno, const Type1Charstring &cs, PermString definer)
-{
- return new Type1Subr(PermString(), subrno, definer, cs);
-}
-
-Type1Subr *
-Type1Subr::make_glyph(PermString glyph, const Type1Charstring &cs, PermString definer)
-{
- return new Type1Subr(glyph, -1, definer, cs);
-}
-
-
-void
-Type1Subr::gen(Type1Writer &w)
-{
- int len = _cs.length();
- const unsigned char *data = _cs.data();
-
- if (is_subr())
- w << "dup " << _subrno << ' ' << len + w.lenIV() << w.charstring_start();
- else
- w << '/' << _name << ' ' << len + w.lenIV() << w.charstring_start();
-
- if (w.lenIV() < 0) {
- // lenIV < 0 means charstrings are unencrypted
- w.print((const char *)data, len);
-
- } else {
- // PERFORMANCE NOTE: Putting the charstring in a buffer of known length
- // and printing that buffer rather than one char at a time is an OK
- // optimization. (around 10%)
- unsigned char *buf = new unsigned char[len + w.lenIV()];
- unsigned char *t = buf;
-
- int r = t1R_cs;
- for (int i = 0; i < w.lenIV(); i++) {
- unsigned char c = (unsigned char)(r >> 8);
- *t++ = c;
- r = ((c + r) * (uint32_t) t1C1 + t1C2) & 0xFFFF;
- }
- for (int i = 0; i < len; i++, data++) {
- unsigned char c = (*data ^ (r >> 8));
- *t++ = c;
- r = ((c + r) * (uint32_t) t1C1 + t1C2) & 0xFFFF;
- }
-
- w.print((char *)buf, len + w.lenIV());
- delete[] buf;
- }
-
- w << _definer << '\n';
-}
-
-/*****
- * Type1SubrGroupItem
- **/
-
-Type1SubrGroupItem::Type1SubrGroupItem(Type1Font *font, bool is_subrs, const String &value)
- : _font(font), _is_subrs(is_subrs), _value(value)
-{
-}
-
-Type1SubrGroupItem::Type1SubrGroupItem(const Type1SubrGroupItem &from, Type1Font *font)
- : _font(font), _is_subrs(from._is_subrs),
- _value(from._value), _end_text(from._end_text)
-{
-}
-
-void
-Type1SubrGroupItem::add_end_text(const String &s)
-{
- _end_text += s + "\n";
-}
-
-void
-Type1SubrGroupItem::gen(Type1Writer &w)
-{
- Type1Font *font = _font;
-
- int pos = _value.find_left(_is_subrs ? " array" : " dict");
- if (pos >= 1 && isdigit((unsigned char) _value[pos - 1])) {
- int numpos = pos - 1;
- while (numpos >= 1 && isdigit((unsigned char) _value[numpos - 1]))
- numpos--;
-
- int n;
- if (_is_subrs) {
- n = font->nsubrs();
- while (n && !font->subr(n - 1))
- n--;
- } else
- n = font->nglyphs();
-
- w << _value.substring(0, numpos) << n << _value.substring(pos);
- } else
- w << _value;
-
- w << '\n';
-
- if (_is_subrs) {
- int count = font->nsubrs();
- for (int i = 0; i < count; i++)
- if (Type1Subr *g = font->subr_x(i))
- g->gen(w);
- } else {
- int count = font->nglyphs();
- for (int i = 0; i < count; i++)
- if (Type1Subr *g = font->glyph_x(i))
- g->gen(w);
- }
-
- w << _end_text;
-}
-
-/*****
- * Type1IncludedFont
- **/
-
-Type1IncludedFont::Type1IncludedFont(Type1Font *font, int unique_id)
- : _included_font(font), _unique_id(unique_id)
-{
-}
-
-Type1IncludedFont::~Type1IncludedFont()
-{
- delete _included_font;
-}
-
-void
-Type1IncludedFont::gen(Type1Writer &w)
-{
- FILE *f = tmpfile();
- if (!f)
- return;
-
- // write included font
- Type1PFAWriter new_w(f);
- _included_font->write(new_w);
- fflush(f);
-
- struct stat s;
- fstat(fileno(f), &s);
-
- w << "FontDirectory /" << _included_font->font_name() << " known{\n"
- << "/" << _included_font->font_name()
- << " findfont dup /UniqueID known {dup /UniqueID get "
- << _unique_id
- << " eq exch /FontType get 1 eq and}{pop false}ifelse {\nsave userdict/fbufstr 512 string put\n"
- << (int)(s.st_size / 512)
- << "{currentfile fbufstr readstring{pop}{clear currentfile\nclosefile/fontdownload/unexpectedEOF/.error cvx exec}ifelse}repeat\ncurrentfile "
- << (int)(s.st_size % 512)
- << " string readstring{pop}{clear currentfile\nclosefile/fontdownload/unexpectedEOF/.error cvx exec}ifelse\nrestore}if}if\n";
-
- rewind(f);
- char str[2048];
- while (1) {
- int r = fread(str, 1, 2048, f);
- if (r <= 0)
- break;
- w.print(str, r);
- }
-
- fclose(f);
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
deleted file mode 100644
index c49eafa6e87..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1mm.cc
+++ /dev/null
@@ -1,393 +0,0 @@
-// -*- related-file-name: "../include/efont/t1mm.hh" -*-
-
-/* t1mm.{cc,hh} -- Type 1 multiple master font information
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1mm.hh>
-#include <efont/t1interp.hh>
-#include <lcdf/error.hh>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-namespace Efont {
-
-MultipleMasterSpace::MultipleMasterSpace(PermString fn, int na, int nm)
- : CharstringProgram(1000),
- _ok(false), _font_name(fn), _naxes(na), _nmasters(nm),
- _axis_types(na, PermString()), _axis_labels(na, PermString()),
- _design_vector(0), _norm_design_vector(0), _weight_vector(0)
-{
-}
-
-
-void
-MultipleMasterSpace::set_master_positions(const Vector<NumVector> &mp)
-{
- _master_positions = mp;
-}
-
-void
-MultipleMasterSpace::set_normalize(const Vector<NumVector> &nin,
- const Vector<NumVector> &nout)
-{
- _normalize_in = nin;
- _normalize_out = nout;
-}
-
-void
-MultipleMasterSpace::set_axis_type(int ax, PermString t)
-{
- _axis_types[ax] = t;
-}
-
-void
-MultipleMasterSpace::set_axis_label(int ax, PermString t)
-{
- _axis_labels[ax] = t;
-}
-
-void
-MultipleMasterSpace::set_design_vector(const NumVector &v)
-{
- _default_design_vector = v;
-}
-
-void
-MultipleMasterSpace::set_weight_vector(const NumVector &v)
-{
- _default_weight_vector = v;
-}
-
-
-PermString
-MultipleMasterSpace::axis_abbreviation(PermString atype)
-{
- if (atype == "Weight")
- return "wt";
- else if (atype == "Width")
- return "wd";
- else if (atype == "OpticalSize")
- return "op";
- else if (atype == "Style")
- return "st";
- else
- return atype;
-}
-
-
-bool
-MultipleMasterSpace::error(ErrorHandler *errh, const char *s, ...) const
-{
- if (errh) {
- char buf[1024];
- va_list val;
- va_start(val, s);
- assert(strlen(s) < 800);
- sprintf(buf, (s[0] == ' ' ? "%.200s%s" : "%.200s: %s"),
- _font_name.c_str(), s);
- errh->xmessage(ErrorHandler::e_error, buf, val);
- va_end(val);
- }
- return false;
-}
-
-
-bool
-MultipleMasterSpace::check(ErrorHandler *errh)
-{
- if (_ok)
- return true;
-
- if (_nmasters <= 0 || _nmasters > 16)
- return error(errh, "number of masters must be between 1 and 16");
- if (_naxes <= 0 || _naxes > 4)
- return error(errh, "number of axes must be between 1 and 4");
-
- if (_master_positions.size() != _nmasters)
- return error(errh, "bad BlendDesignPositions");
- for (int i = 0; i < _nmasters; i++)
- if (_master_positions[i].size() != _naxes)
- return error(errh, "inconsistent BlendDesignPositions");
-
- if (_normalize_in.size() != _naxes || _normalize_out.size() != _naxes)
- return error(errh, "bad BlendDesignMap");
- for (int i = 0; i < _naxes; i++)
- if (_normalize_in[i].size() != _normalize_out[i].size())
- return error(errh, "bad BlendDesignMap");
-
- if (!_axis_types.size())
- _axis_types.assign(_naxes, PermString());
- if (_axis_types.size() != _naxes)
- return error(errh, "bad BlendAxisTypes");
-
- if (!_axis_labels.size())
- _axis_labels.assign(_naxes, PermString());
- if (_axis_labels.size() != _naxes)
- return error(errh, "bad axis labels");
-
- if (!_default_design_vector.size())
- _default_design_vector.assign(_naxes, UNKDOUBLE);
- if (_default_design_vector.size() != _naxes)
- return error(errh, "inconsistent design vector");
-
- if (!_default_weight_vector.size())
- _default_weight_vector.assign(_nmasters, UNKDOUBLE);
- if (_default_weight_vector.size() != _nmasters)
- return error(errh, "inconsistent weight vector");
-
- _ok = true;
- return true;
-}
-
-bool
-MultipleMasterSpace::check_intermediate(ErrorHandler *errh)
-{
- if (!_ok || _cdv)
- return true;
-
- for (int a = 0; a < _naxes; a++)
- for (int m = 0; m < _nmasters; m++)
- if (_master_positions[m][a] != 0 && _master_positions[m][a] != 1) {
- if (errh)
- errh->warning("%s requires intermediate master conversion programs",
- _font_name.c_str());
- return false;
- }
-
- return true;
-}
-
-
-int
-MultipleMasterSpace::axis(PermString ax) const
-{
- for (int a = 0; a < _naxes; a++)
- if (_axis_types[a] == ax || _axis_labels[a] == ax)
- return a;
- return -1;
-}
-
-double
-MultipleMasterSpace::axis_low(int ax) const
-{
- return _normalize_in[ax][0];
-}
-
-double
-MultipleMasterSpace::axis_high(int ax) const
-{
- return _normalize_in[ax].back();
-}
-
-
-Vector<double>
-MultipleMasterSpace::empty_design_vector() const
-{
- return Vector<double>(_naxes, UNKDOUBLE);
-}
-
-bool
-MultipleMasterSpace::set_design(NumVector &design_vector, int ax, double value,
- ErrorHandler *errh) const
-{
- if (ax < 0 || ax >= _naxes)
- return error(errh, " has only %d axes", _naxes);
-
- if (value < axis_low(ax)) {
- value = axis_low(ax);
- if (errh)
- errh->warning("raising %s's %s to %g", _font_name.c_str(),
- _axis_types[ax].c_str(), value);
- }
- if (value > axis_high(ax)) {
- value = axis_high(ax);
- if (errh)
- errh->warning("lowering %s's %s to %g", _font_name.c_str(),
- _axis_types[ax].c_str(), value);
- }
-
- design_vector[ax] = value;
- return true;
-}
-
-bool
-MultipleMasterSpace::set_design(NumVector &design_vector, PermString ax_name,
- double val, ErrorHandler *errh) const
-{
- int ax = axis(ax_name);
- if (ax < 0)
- return error(errh, " has no `%s' axis", ax_name.c_str());
- else
- return set_design(design_vector, ax, val, errh);
-}
-
-
-bool
-MultipleMasterSpace::normalize_vector(ErrorHandler *errh) const
-{
- NumVector &design = *_design_vector;
- NumVector &norm_design = *_norm_design_vector;
-
- for (int a = 0; a < _naxes; a++)
- if (!KNOWN(design[a])) {
- if (errh)
- errh->error("must specify %s's %s coordinate", _font_name.c_str(), _axis_types[a].c_str());
- return false;
- }
-
- // Move to normalized design coordinates.
- norm_design.assign(_naxes, UNKDOUBLE);
-
- if (_ndv) {
- CharstringInterp ai;
- if (!ai.interpret(this, &_ndv))
- return error(errh, "%s in NDV program", ai.error_string().c_str());
-
- } else
- for (int a = 0; a < _naxes; a++) {
- double d = design[a];
- double nd = UNKDOUBLE;
- const Vector<double> &norm_in = _normalize_in[a];
- const Vector<double> &norm_out = _normalize_out[a];
-
- if (d < norm_in[0])
- nd = norm_out[0];
- for (int i = 1; i < norm_in.size(); i++)
- if (d >= norm_in[i-1] && d < norm_in[i]) {
- nd = norm_out[i-1]
- + ((d - norm_in[i-1])
- * (norm_out[i] - norm_out[i-1])
- / (norm_in[i] - norm_in[i-1]));
- goto done;
- }
- if (d >= norm_in.back())
- nd = norm_out.back();
-
- done:
- norm_design[a] = nd;
- }
-
- for (int a = 0; a < _naxes; a++)
- if (!KNOWN(norm_design[a]))
- return error(errh, "bad normalization");
-
- return true;
-}
-
-
-bool
-MultipleMasterSpace::convert_vector(ErrorHandler *errh) const
-{
- NumVector &norm_design = *_norm_design_vector;
- NumVector &weight = *_weight_vector;
-
- weight.assign(_nmasters, 1);
-
- if (_cdv) {
- CharstringInterp ai;
- if (!ai.interpret(this, &_cdv))
- return error(errh, "%s in CDV program", ai.error_string().c_str());
-
- } else
- for (int a = 0; a < _naxes; a++)
- for (int m = 0; m < _nmasters; m++) {
- if (_master_positions[m][a] == 0)
- weight[m] *= 1 - norm_design[a];
- else if (_master_positions[m][a] == 1)
- weight[m] *= norm_design[a];
- else
- return error(errh, " requires intermediate master conversion programs");
- }
-
- return true;
-}
-
-
-bool
-MultipleMasterSpace::design_to_norm_design(const NumVector &design_in,
- NumVector &norm_design,
- ErrorHandler *errh) const
-{
- NumVector design(design_in);
- NumVector weight;
-
- _design_vector = &design;
- _norm_design_vector = &norm_design;
- _weight_vector = &weight;
- if (!normalize_vector(errh))
- return false;
- _design_vector = _norm_design_vector = _weight_vector = 0;
-
- return true;
-}
-
-
-bool
-MultipleMasterSpace::design_to_weight(const NumVector &design_in, NumVector &weight, ErrorHandler *errh) const
-{
- NumVector design(design_in);
- NumVector norm_design;
-
- bool dirty = false;
- for (int i = 0; i < _naxes; i++)
- if (design[i] != _default_design_vector[i])
- dirty = true;
-
- if (dirty) {
- _design_vector = &design;
- _norm_design_vector = &norm_design;
- _weight_vector = &weight;
- if (!normalize_vector(errh))
- return false;
- if (!convert_vector(errh))
- return false;
- _design_vector = _norm_design_vector = _weight_vector = 0;
- } else
- weight = _default_weight_vector;
-
- double sum = 0;
- for (int m = 0; m < _nmasters; m++)
- sum += weight[m];
- if (sum < 0.9999 || sum > 1.0001)
- return error(errh, "bad conversion: weight vector doesn't sum to 1");
-
- // adjust weight vector to max 4 decimal digits of precision, and make it
- // sum to exactly 1
- sum = 0;
- for (int m = 0; m < _nmasters - 1; m++) {
- weight[m] = floor(weight[m] * 10000. + 0.5) / 10000.;
- sum += weight[m];
- }
- weight[_nmasters - 1] = 1 - sum;
-
- return true;
-}
-
-
-Vector<double> *
-MultipleMasterSpace::mm_vector(VectorType t, bool writable) const
-{
- if (t == VEC_WEIGHT)
- return _weight_vector;
- else if (t == VEC_NORM_DESIGN)
- return _norm_design_vector;
- else if (t == VEC_DESIGN && !writable)
- return _design_vector;
- else
- return 0;
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
deleted file mode 100644
index 35e9f57a72c..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc
+++ /dev/null
@@ -1,613 +0,0 @@
-// -*- related-file-name: "../include/efont/t1rw.hh" -*-
-
-/* t1rw.{cc,hh} -- Type 1 font reading and writing
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1rw.hh>
-#include <efont/t1cs.hh>
-#include <lcdf/straccum.hh>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-namespace Efont {
-
-unsigned char Type1Reader::xvalue_store[257];
-unsigned char *Type1Reader::xvalue = &Type1Reader::xvalue_store[1];
-
-void
-Type1Reader::static_initialize()
-{
- if (xvalue['A'])
- return;
- // rely on static data being initialized to 0
- xvalue['0'] = 0; xvalue['1'] = 1; xvalue['2'] = 2; xvalue['3'] = 3;
- xvalue['4'] = 4; xvalue['5'] = 5; xvalue['6'] = 6; xvalue['7'] = 7;
- xvalue['8'] = 8; xvalue['9'] = 9;
- xvalue['A'] = 10; xvalue['B'] = 11; xvalue['C'] = 12; xvalue['D'] = 13;
- xvalue['E'] = 14; xvalue['F'] = 15;
- xvalue['a'] = 10; xvalue['b'] = 11; xvalue['c'] = 12; xvalue['d'] = 13;
- xvalue['e'] = 14; xvalue['f'] = 15;
-}
-
-
-Type1Reader::Type1Reader()
- : _data(new unsigned char[DATA_SIZE]), _len(0), _pos(0),
- _ungot(-1), _eexec(false)
-{
- static_initialize();
-}
-
-Type1Reader::~Type1Reader()
-{
- delete[] _data;
-}
-
-
-void
-Type1Reader::set_charstring_definer(PermString x)
-{
- _charstring_definer = x;
-}
-
-void
-Type1Reader::switch_eexec(bool on, unsigned char *data, int len)
-{
- if (on) {
- if (_pos < len + 3) {
- unsigned char *new_data = new unsigned char[len + 3 + DATA_SIZE];
- assert(_len <= DATA_SIZE);
- memcpy(new_data + len + 3, _data + _pos, _len - _pos);
- _len = len + 3 + _len - _pos;
- _pos = len + 3;
- delete[] _data;
- _data = new_data;
- }
- int original_pos = _pos;
- // don't forget _ungot!!
- if (_ungot >= 0)
- _data[--_pos] = _ungot, _ungot = -1;
- if (_crlf == 0 || _crlf == 2)
- _data[--_pos] = '\n';
- if (_crlf == 1 || _crlf == 2)
- _data[--_pos] = '\r';
- memcpy(_data + _pos - len, data, len);
- _pos -= len;
- start_eexec(original_pos - _pos);
- }
- _eexec = on;
-}
-
-
-int
-Type1Reader::more_data()
-{
- _pos = 0;
- _len = more_data(_data, DATA_SIZE);
- if (_len < 0)
- return -1;
- else
- return _data[_pos++];
-}
-
-
-inline int
-Type1Reader::get_base()
-{
- if (_pos >= _len)
- return more_data();
- else
- return _data[_pos++];
-}
-
-
-inline int
-Type1Reader::eexec(int c)
-{
- unsigned char answer = (unsigned char)(c ^ (_r >> 8));
- _r = (((unsigned char)c + _r) * (uint32_t) t1C1 + t1C2) & 0xFFFF;
- return answer;
-}
-
-
-int
-Type1Reader::ascii_eexec_get()
-{
- int d1 = get_base();
- while (isspace(d1))
- d1 = get_base();
-
- int d2 = get_base();
- while (isspace(d2))
- d2 = get_base();
- if (d2 < 0)
- return -1;
-
- return eexec((xvalue[d1] << 4) | (xvalue[d2]));
-}
-
-
-inline int
-Type1Reader::get()
-{
- if (!_eexec)
- return get_base();
-
- else if (_binary_eexec) {
- int c = get_base();
- return c < 0 ? c : eexec(c);
-
- } else
- return ascii_eexec_get();
-}
-
-
-void
-Type1Reader::start_eexec(int initial_ascii)
-{
- /* God damn this _ungot thing!! It makes sense not to check it on every
- char fetch, since it can only be set at the end of next_line; therefore,
- only the first get() into a user-visible function might need to check
- _ungot. The problem is I forgot start_eexec() was such a function! */
- int c = _ungot < 0 ? get_base() : _ungot;
- initial_ascii--;
- _ungot = -1;
-
- /* Strictly speaking, I should look for whitespace even in binary sections
- of PFB fonts; but it turns out some PFBs would be unreadable with that
- pedantic rule. */
- while (isspace(c) && (initial_ascii >= 0 || !preserve_whitespace()))
- c = get_base(), initial_ascii--;
-
- /* Differentiate between ASCII eexec and binary eexec. */
- int rand_bytes[4];
- _binary_eexec = false;
- for (int i = 0; i < 4; i++) {
- if (i)
- c = get_base();
- rand_bytes[i] = c;
- if (!isxdigit(c))
- _binary_eexec = true;
- }
-
- _r = t1R_ee;
- if (_binary_eexec)
- for (int i = 0; i < 4; i++)
- eexec(rand_bytes[i]);
- else {
- for (int i = 0; i < 2; i++) {
- c = xvalue[rand_bytes[i*2]] * 16 + xvalue[rand_bytes[i*2+1]];
- eexec(c);
- }
- ascii_eexec_get();
- ascii_eexec_get();
- }
-}
-
-
-bool
-Type1Reader::test_charstring(StringAccum &str)
-{
- /* PERFORMANCE NOTE: This function is definitely a bottleneck. Making it
- more efficient cut time by about 40%. */
-
- if (!_charstring_definer)
- return false;
- if (_charstring_len >= 0)
- return str.length() <= _charstring_start + _charstring_len;
-
- str.append('\0'); // protect against running off end of string
- char *s = str.data();
- char *start;
- while (*s == ' ')
- s++;
-
- if (s[0] == '/')
- s++;
- else if (s[0] == 'd' && s[1] == 'u' && s[2] == 'p' && isspace((unsigned char) s[3])) {
- s += 4;
- // 17.Jan.2000 -- some fonts have extra space here.
- while (isspace((unsigned char) *s))
- s++;
- } else
- goto not_charstring;
-
- // Force one literal space rather than isspace().
- // Why? Consistency: we force 1 literal space around _charstring_definer.
- while (*s != ' ' && *s)
- s++;
- if (*s++ != ' ' || !isdigit((unsigned char) *s))
- goto not_charstring;
- start = s;
- s++;
- while (*s != ' ' && *s)
- s++;
- if (strncmp(s, _charstring_definer.c_str(), _charstring_definer.length()) != 0)
- goto not_charstring;
-
- _charstring_len = strtol(start, 0, 10);
- _charstring_start = (s - str.data()) + _charstring_definer.length();
- str.pop_back();
- return str.length() <= _charstring_start + _charstring_len;
-
- not_charstring:
- str.pop_back();
- return false;
-}
-
-
-/* PERFORMANCE NOTE: All kinds of speedup tricks tried with eexec -- buffering
- (doing eexec processing at more_data time), etc., and all this stuff -- and
- found to have essentially zero effect for PFB fonts. Now, it might be
- effective for PFAs; but who cares? I hate PFAs. */
-
-bool
-Type1Reader::next_line(StringAccum &s)
-{
- if (_len < 0)
- return false;
-
- // Can't be a charstring if incoming accumulator has nonzero length.
- _charstring_start = 0;
- _charstring_len = (s.length() > 0 ? 0 : -1);
-
- int first_char = _ungot < 0 ? get() : _ungot;
- _ungot = -1;
-
- for (int c = first_char; c >= 0; c = get())
- switch (c) {
-
- case '\n':
- if (test_charstring(s))
- goto normal;
- else {
- _crlf = 0;
- goto done;
- }
-
- case '\r':
- // check for \r\n (counts as only one line ending)
- if (test_charstring(s))
- goto normal;
- c = get();
- if (c != '\n' || preserve_whitespace())
- _ungot = c, _crlf = 1;
- else
- _crlf = 2;
- goto done;
-
- normal:
- default:
- s.append((char)c);
- break;
-
- }
-
- done:
- return true;
-}
-
-
-int
-Type1Reader::get_data(unsigned char *data, int len)
-{
- if (_len < 0)
- return -1;
- if (len <= 0)
- return 0;
-
- int pos = 0;
- if (_ungot >= 0) {
- *data++ = _ungot;
- pos++;
- _ungot = -1;
- }
-
- for (; pos < len; pos++) {
- int c = get();
- if (c < 0)
- break;
- *data++ = c;
- }
-
- return pos;
-}
-
-
-/*****
- * Type1PFAReader
- **/
-
-Type1PFAReader::Type1PFAReader(FILE *f)
- : _f(f)
-{
-}
-
-int
-Type1PFAReader::more_data(unsigned char *data, int len)
-{
- size_t size = fread(data, 1, len, _f);
- return size ? (int)size : -1;
-}
-
-
-/*****
- * Type1PFBReader
- **/
-
-Type1PFBReader::Type1PFBReader(FILE *f)
- : _f(f), _binary(false), _left(0)
-{
-}
-
-int
-Type1PFBReader::more_data(unsigned char *data, int len)
-{
- while (_left == 0) {
- int c = getc(_f);
- if (c != 128)
- return -1;
-
- c = getc(_f);
- if (c == 3 || c < 1 || c > 3)
- return -1;
- _binary = (c == 2);
-
- _left = getc(_f);
- _left |= getc(_f) << 8;
- _left |= getc(_f) << 16;
- _left |= getc(_f) << 24;
- }
-
- if (_left < 0)
- return -1;
-
- if (len > _left)
- len = _left;
- _left -= len;
-
- return fread(data, 1, len, _f);
-}
-
-bool
-Type1PFBReader::preserve_whitespace() const
-{
- return _binary;
-}
-
-
-/*****
- * Type1SubsetReader
- **/
-
-Type1SubsetReader::Type1SubsetReader(Type1Reader *r, int left)
- : _reader(r), _left(left)
-{
-}
-
-int
-Type1SubsetReader::more_data(unsigned char *data, int len)
-{
- if (_left <= 0)
- return -1;
- if (len > _left)
- len = _left;
- int how_much = _reader->get_data(data, len);
- if (how_much > 0)
- _left -= how_much;
- return how_much;
-}
-
-bool
-Type1SubsetReader::preserve_whitespace() const
-{
- return _reader->preserve_whitespace();
-}
-
-
-/*****
- * Writer
- **/
-
-Type1Writer::Type1Writer()
- : _buf(new unsigned char[BufSize]), _pos(0),
- _eexec(false), _eexec_start(-1), _eexec_end(-1), _lenIV(4)
-{
-}
-
-
-Type1Writer::~Type1Writer()
-{
- assert(!_pos);
- delete[] _buf;
-}
-
-
-inline unsigned char
-Type1Writer::eexec(int p)
-{
- unsigned char c = ((unsigned char)p ^ (_r >> 8)) & 0xFF;
- _r = ((c + _r) * (uint32_t) t1C1 + t1C2) & 0xFFFF;
- return c;
-}
-
-
-void
-Type1Writer::flush()
-{
- local_flush();
-}
-
-
-/* PERFORMANCE NOTE: Doing eexec processing during flush -- which streamlines
- code for the print() methods -- seems to save some time (4-5%). It also
- makes write performance more consistent. But I have mixed feelings. */
-
-void
-Type1Writer::local_flush()
-{
- if (_eexec_start >= 0 && _eexec_end < 0)
- _eexec_end = _pos;
- for (int p = _eexec_start; p < _eexec_end; p++)
- _buf[p] = eexec(_buf[p]);
- print0(_buf, _pos);
- _pos = 0;
- _eexec_start = _eexec ? 0 : -1;
- _eexec_end = -1;
-}
-
-
-void
-Type1Writer::print(const char *s, int n)
-{
- while (n > 0) {
- if (_pos >= BufSize)
- local_flush();
- int copy = BufSize - _pos;
- if (copy > n) copy = n;
- memcpy(_buf + _pos, s, copy);
- _pos += copy;
- s += copy;
- n -= copy;
- }
-}
-
-
-Type1Writer &
-Type1Writer::operator<<(int x)
-{
- char str[128];
- sprintf(str, "%d", x);
- print(str, strlen(str));
- return *this;
-}
-
-
-Type1Writer &
-Type1Writer::operator<<(double x)
-{
- char str[256];
- sprintf(str, "%g", x);
- print(str, strlen(str));
- return *this;
-}
-
-
-void
-Type1Writer::switch_eexec(bool on)
-{
- _eexec = on;
- if (_eexec) {
- _eexec_start = _pos;
- _r = t1R_ee;
- print("SUCK", 4);
- } else
- _eexec_end = _pos;
-}
-
-
-/*****
- * Type1PFAWriter
- **/
-
-Type1PFAWriter::Type1PFAWriter(FILE *f)
- : _f(f), _hex_line(0)
-{
-}
-
-Type1PFAWriter::~Type1PFAWriter()
-{
- flush();
-}
-
-
-void
-Type1PFAWriter::switch_eexec(bool on)
-{
- flush();
- _hex_line = 0;
- Type1Writer::switch_eexec(on);
-}
-
-void
-Type1PFAWriter::print0(const unsigned char *c, int l)
-{
- if (eexecing()) {
- const char *hex = "0123456789ABCDEF";
- for (; l; c++, l--) {
- putc(hex[*c / 16], _f);
- putc(hex[*c % 16], _f);
- if (++_hex_line == 39) {
- putc('\n', _f);
- _hex_line = 0;
- }
- }
- } else {
- ssize_t result = fwrite(c, 1, l, _f);
- (void) result;
- }
-}
-
-
-/*****
- * Type1PFBWriter
- **/
-
-Type1PFBWriter::Type1PFBWriter(FILE *f)
- : _f(f), _binary(false)
-{
-}
-
-Type1PFBWriter::~Type1PFBWriter()
-{
- flush();
- fputc(128, _f);
- fputc(3, _f);
-}
-
-void
-Type1PFBWriter::flush()
-{
- Type1Writer::flush();
- if (_save.length()) {
- fputc(128, _f);
- fputc(_binary ? 2 : 1, _f);
- long l = _save.length();
- fputc(l & 0xFF, _f);
- fputc((l >> 8) & 0xFF, _f);
- fputc((l >> 16) & 0xFF, _f);
- fputc((l >> 24) & 0xFF, _f);
- ssize_t result = fwrite(_save.data(), 1, _save.length(), _f);
- (void) result;
- _save.clear();
- }
-}
-
-void
-Type1PFBWriter::switch_eexec(bool on)
-{
- flush();
- Type1Writer::switch_eexec(on);
- _binary = on;
-}
-
-void
-Type1PFBWriter::print0(const unsigned char *c, int l)
-{
- char *m = _save.extend(l);
- memcpy(m, c, l);
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
deleted file mode 100644
index e38aa37a9d7..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/t1unparser.cc
+++ /dev/null
@@ -1,137 +0,0 @@
-// -*- related-file-name: "../include/efont/t1unparser.hh" -*-
-
-/* t1unparser.{cc,hh} -- debug printing of Type 1 fonts
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1unparser.hh>
-namespace Efont {
-
-CharstringUnparser::CharstringUnparser()
- : CharstringInterp(),
- _one_command_per_line(false), _start_of_line(true)
-{
-}
-
-CharstringUnparser::CharstringUnparser(const CharstringUnparser &o)
- : CharstringInterp(o),
- _one_command_per_line(o._one_command_per_line),
- _start_of_line(o._start_of_line)
-{
-}
-
-void
-CharstringUnparser::clear()
-{
- _sa.clear();
- _start_of_line = true;
-}
-
-bool
-CharstringUnparser::number(double n)
-{
- if (_start_of_line) {
- _sa << _indent;
- _start_of_line = false;
- } else
- _sa << ' ';
- _sa << n;
- return true;
-}
-
-bool
-CharstringUnparser::type1_command(int cmd)
-{
- if (_start_of_line) {
- _sa << _indent;
- _start_of_line = false;
- } else
- _sa << ' ';
- if (cmd >= 0 && cmd <= Cs::cLastCommand)
- _sa << Cs::command_names[cmd];
- else
- _sa << "UNKNOWN_12_" << (cmd - 32);
- if (_one_command_per_line) {
- _sa << '\n';
- _start_of_line = true;
- }
- return true;
-}
-
-bool
-CharstringUnparser::type2_command(int cmd, const unsigned char *data, int *left)
-{
- if (_start_of_line) {
- _sa << _indent;
- _start_of_line = false;
- } else
- _sa << ' ';
-
- if (cmd >= 0 && cmd <= Cs::cLastCommand)
- _sa << Cs::command_names[cmd];
- else
- _sa << "UNKNOWN_12_" << (cmd - 32);
-
- switch (cmd) {
- case Cs::cHstem: case Cs::cHstemhm: case Cs::cVstem: case Cs::cVstemhm:
- case Cs::cHintmask: case Cs::cCntrmask:
- CharstringInterp::type2_command(cmd, data, left);
- break;
- }
-
- if (_one_command_per_line) {
- _sa << '\n';
- _start_of_line = true;
- }
-
- return true;
-}
-
-void
-CharstringUnparser::act_hintmask(int, const unsigned char *data, int nhints)
-{
- _sa << '[';
- for (int i = 0; i < nhints; i++, data++)
- sprintf(_sa.extend(2), "%02X", *data);
- _sa << ']';
-}
-
-String
-CharstringUnparser::value()
-{
- _start_of_line = true;
- return _sa.take_string();
-}
-
-String
-CharstringUnparser::unparse(const Charstring *cs)
-{
- if (cs) {
- CharstringUnparser u;
- u.interpret(0, cs);
- return u.value();
- } else
- return "(null)";
-}
-
-String
-CharstringUnparser::unparse(const Charstring &cs)
-{
- CharstringUnparser u;
- u.interpret(0, &cs);
- return u.value();
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
deleted file mode 100644
index eef06084ced..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfcs.cc
+++ /dev/null
@@ -1,232 +0,0 @@
-// -*- related-file-name: "../include/efont/ttfcs.hh" -*-
-
-/* ttfcs.{cc,hh} -- TrueType "charstring" emulation
- *
- * Copyright (c) 2006-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/ttfcs.hh>
-#include <efont/ttfhead.hh>
-#include <efont/t1csgen.hh>
-#include <efont/otfpost.hh>
-#include <efont/otfcmap.hh>
-#include <lcdf/hashmap.hh>
-#include <algorithm>
-namespace Efont {
-typedef OpenType::Glyph Glyph;
-
-TrueTypeBoundsCharstringProgram::TrueTypeBoundsCharstringProgram(const OpenType::Font* otf)
- : CharstringProgram(otf->units_per_em()),
- _otf(otf), _nglyphs(-1), _loca_long(false),
- _loca(otf->table("loca")), _glyf(otf->table("glyf")),
- _hmtx(otf->table("hmtx")), _got_glyph_names(false), _got_unicodes(false)
-{
- OpenType::Data maxp(otf->table("maxp"));
- if (maxp.length() >= 6)
- _nglyphs = maxp.u16(4);
-
- OpenType::Head head(otf->table("head"), 0);
- if (head.ok())
- _loca_long = head.index_to_loc_format() != 0;
- if (_loca_long)
- _loca.align_long();
- int loca_onesize = (_loca_long ? 4 : 2);
- if (_nglyphs >= _loca.length() / loca_onesize)
- _nglyphs = (_loca.length() / loca_onesize) - 1;
-
- // horizontal metrics
- OpenType::Data hhea(_otf->table("hhea"));
- // HHEA format:
- // 0 Fixed Table version number 0x00010000 for version 1.0.
- // 4 FWORD Ascender
- // 6 FWORD Descender
- // 8 FWORD LineGap
- // 10 UFWORD advanceWidthMax
- // 12 FWORD minLeftSideBearing
- // 14 FWORD minRightSideBearing
- // 16 FWORD xMaxExtent
- // 18 SHORT caretSlopeRise
- // 20 SHORT caretSlopeRun
- // 22 SHORT caretOffset
- // 24 SHORT (reserved)
- // 26 SHORT (reserved)
- // 28 SHORT (reserved)
- // 30 SHORT (reserved)
- // 32 SHORT metricDataFormat
- // 34 USHORT numberOfHMetrics
- if (hhea.length() >= 36
- && hhea.u32(0) == 0x10000)
- _nhmtx = hhea.u16(34);
- if (_nhmtx * 4 > _hmtx.length())
- _nhmtx = _hmtx.length() / 4;
-}
-
-TrueTypeBoundsCharstringProgram::~TrueTypeBoundsCharstringProgram()
-{
- for (Charstring **cs = _charstrings.begin(); cs < _charstrings.end(); cs++)
- delete *cs;
-}
-
-void TrueTypeBoundsCharstringProgram::font_matrix(double matrix[6]) const {
- matrix[0] = matrix[3] = 1.0 / _otf->units_per_em();
- matrix[1] = matrix[2] = matrix[4] = matrix[5] = 0;
-}
-
-int
-TrueTypeBoundsCharstringProgram::nglyphs() const
-{
- return _nglyphs;
-}
-
-PermString
-TrueTypeBoundsCharstringProgram::glyph_name(int gi) const
-{
- // generate glyph names based on what pdftex can understand
- if (gi == 0)
- return PermString(".notdef");
-
- // try 'post' table glyph names
- if (!_got_glyph_names) {
- OpenType::Post post(_otf->table("post"));
- if (post.ok())
- post.glyph_names(_glyph_names);
- HashMap<PermString, int> name2glyph(-1);
- // some 'post' tables are bogus, reject multiply-encoded names
- for (int gi = 0; gi < _glyph_names.size(); ++gi) {
- int& xgi = name2glyph.find_force(_glyph_names[gi]);
- if (xgi == -1)
- xgi = gi;
- else if (xgi == 0)
- _glyph_names[gi] = PermString();
- else
- _glyph_names[gi] = _glyph_names[xgi] = PermString();
- }
- _got_glyph_names = true;
- }
- if (gi >= 0 && gi < _glyph_names.size() && _glyph_names[gi])
- return _glyph_names[gi];
-
- // try 'uniXXXX' names
- if (!_got_unicodes) {
- OpenType::Cmap cmap(_otf->table("cmap"));
- if (cmap.ok()) {
- Vector<std::pair<uint32_t, Glyph> > ugp;
- cmap.unmap_all(ugp);
- std::sort(ugp.begin(), ugp.end());
- for (Vector<std::pair<uint32_t, Glyph> >::iterator it = ugp.begin();
- it != ugp.end(); ) {
- Vector<std::pair<uint32_t, Glyph> >::iterator nit = it + 1;
- // ignore code points with multiple glyph mappings
- if (nit == ugp.end() || nit->first != it->first) {
- if (it->second >= _unicodes.size())
- _unicodes.resize(it->second + 1, 0);
- if (!_unicodes[it->second])
- _unicodes[it->second] = it->first;
- } else
- while (nit != ugp.end() && nit->first == it->first)
- ++nit;
- it = nit;
- }
- }
- _got_unicodes = true;
- }
-
- if (gi >= 0 && gi < _unicodes.size() && _unicodes[gi] > 0 && _unicodes[gi] <= 0xFFFF) {
- char buf[10];
- sprintf(buf, "uni%04X", _unicodes[gi]);
- return PermString(buf);
- } else
- return permprintf("index%d", gi);
-}
-
-void
-TrueTypeBoundsCharstringProgram::glyph_names(Vector<PermString> &gn) const
-{
- gn.clear();
- for (int gi = 0; gi < _nglyphs; gi++)
- gn.push_back(glyph_name(gi));
-}
-
-Charstring *
-TrueTypeBoundsCharstringProgram::glyph(int gi) const
-{
- if (gi < 0 || gi >= _nglyphs)
- return 0;
- if (_charstrings.size() <= gi)
- _charstrings.resize(gi + 1, (Charstring *) 0);
- if (!_charstrings[gi]) {
- // calculate glyf offsets
- uint32_t offset, end_offset;
- if (_loca_long) {
- offset = _loca.u32(gi * 4);
- end_offset = _loca.u32(gi * 4 + 4);
- } else {
- offset = _loca.u16(gi * 2) * 2;
- end_offset = _loca.u16(gi * 2 + 2) * 2;
- }
-
- // fetch bounding box from glyf
- int ncontours, xmin, ymin, xmax, ymax;
- if (offset != end_offset) {
- if (offset > end_offset || offset + 10 > end_offset
- || end_offset > (uint32_t) _glyf.length())
- return 0;
-
- ncontours = _glyf.s16(offset);
- xmin = _glyf.s16(offset + 2);
- ymin = _glyf.s16(offset + 4);
- xmax = _glyf.s16(offset + 6);
- ymax = _glyf.s16(offset + 8);
- } else
- ncontours = xmin = ymin = xmax = ymax = 0;
-
- // fetch horizontal metrics
- int advance_width, lsb;
- if (gi >= _nhmtx) {
- advance_width = (_nhmtx ? _hmtx.u16((_nhmtx - 1) * 4) : 0);
- int hmtx_offset = _nhmtx * 4 + (gi - _nhmtx) * 2;
- lsb = (hmtx_offset + 2 <= _hmtx.length() ? _hmtx.s16(hmtx_offset) : 0);
- } else {
- advance_width = _hmtx.u16(gi * 4);
- lsb = _hmtx.s16(gi * 4 + 2);
- }
-
- // make charstring
- Type1CharstringGen gen;
- if (ncontours == 0) {
- gen.gen_number(0, 'X');
- gen.gen_number(advance_width);
- gen.gen_command(Charstring::cHsbw);
- } else {
- gen.gen_number(lsb, 'X');
- gen.gen_number(advance_width);
- gen.gen_command(Charstring::cHsbw);
- gen.gen_moveto(Point(xmin, ymin), false, false);
- if (xmax != xmin || ymax == ymin)
- gen.gen_number(xmax - xmin, 'x');
- if (ymax != ymin)
- gen.gen_number(ymax - ymin, 'y');
- gen.gen_command(ymax == ymin ? Charstring::cHlineto
- : (xmax == xmin ? Charstring::cVlineto
- : Charstring::cRlineto));
- gen.gen_command(Charstring::cClosepath);
- }
- gen.gen_command(Charstring::cEndchar);
-
- _charstrings[gi] = gen.output();
- }
- return _charstrings[gi];
-}
-
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
deleted file mode 100644
index 6dc36e7e8fc..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfhead.cc
+++ /dev/null
@@ -1,69 +0,0 @@
-// -*- related-file-name: "../include/efont/ttfhead.hh" -*-
-
-/* ttfhead.{cc,hh} -- TrueType head table
- *
- * Copyright (c) 2007-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/ttfhead.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-
-namespace Efont { namespace OpenType {
-
-Head::Head(const String &s, ErrorHandler *errh)
- : _d(s)
-{
- _error = parse_header(errh ? errh : ErrorHandler::silent_handler());
-}
-
-int
-Head::parse_header(ErrorHandler *errh)
-{
- // HEAD format:
- // 0 Fixed Table version number 0x00010000 (ver. 1.0)
- // 4 Fixed fontRevision
- // 8 ULONG checkSumAdjustment
- // 12 ULONG magicNumber Set to 0x5F0F3CF5
- // 16 USHORT flags
- // 18 USHORT unitsPerEm
- // 20 LONGDATETIME created
- // 28 LONGDATETIME modified
- // 36 USHORT xMin
- // 38 SHORT yMin
- // 40 SHORT xMax
- // 42 SHORT yMax
- // 44 USHORT macStyle
- // 46 USHORT lowestRecPPEM
- // 48 SHORT fontDirectionHint
- // 50 SHORT indexToLocFormat
- // 52 SHORT glyphDataFormat
- int len = _d.length();
- const uint8_t *data = _d.udata();
- if (len == 0)
- return errh->error("font has no 'head' table"), -EFAULT;
- if (54 > len)
- return errh->error("'head' table too small"), -EFAULT;
- if (!(data[0] == '\000' && data[1] == '\001'))
- return errh->error("bad 'head' version number"), -ERANGE;
- if (_d.u32(12) != 0x5F0F3CF5)
- return errh->error("bad 'head' magic number"), -ERANGE;
- return 0;
-}
-
-}}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
deleted file mode 100644
index 8690f2c672c..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/libefont/ttfkern.cc
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- related-file-name: "../include/efont/ttfkern.hh" -*-
-
-/* ttfkern.{cc,hh} -- TrueType kern table
- *
- * Copyright (c) 2009-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/ttfkern.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-
-namespace Efont { namespace OpenType {
-
-inline Data
-KernTable::subtable(uint32_t &off_in_out) const
-{
- uint32_t off = off_in_out, len;
- if (_version == 0) {
- if (_d.u16(off) != 0)
- throw new Format("kern subtable");
- len = _d.u16(off + 2);
- } else
- len = _d.u32(off);
- if (len < 6 || off + len > (uint32_t) _d.length())
- throw new Bounds();
- off_in_out = off + len;
- return _d.substring(off, len);
-}
-
-KernTable::KernTable(const Data &d, ErrorHandler *)
- : _d(d), _error(-1)
-{
- // USHORT Version
- // USHORT nTables
- if (d.length() == 0)
- throw BlankTable("kern");
-
- uint32_t ntables, off;
- if (d.u16(0) == 0) {
- ntables = d.u16(2);
- _version = 0;
- off = 4;
- } else if (d.u16(0) == 1) {
- ntables = d.u32(4);
- _version = 1;
- off = 8;
- } else
- throw Format("kern");
-
- for (uint32_t i = 0; i < ntables; ++i)
- (void) subtable(off);
-
- _error = 0;
-}
-
-bool
-KernTable::unparse_automatics(Vector<Positioning> &v, ErrorHandler *errh) const
-{
- uint32_t ntables = this->ntables();
- uint32_t off = first_offset();
- int success = 0;
- if (_error < 0)
- return false;
-
- for (uint16_t i = 0; i < ntables; ++i) {
- Data subt = _d.subtable(off);
- uint16_t coverage = subt.u16(4);
-
- if (_version == 0) {
- if ((coverage & COV_V0_HORIZONTAL) == 0
- || (coverage & (COV_V0_MINIMUM | COV_V0_CROSS_STREAM
- | COV_V0_OVERRIDE)) != 0
- || (coverage & COV_V0_FORMAT) != COV_V0_FORMAT0)
- continue;
- } else {
- if ((coverage & (COV_V1_VERTICAL | COV_V1_CROSS_STREAM
- | COV_V1_VARIATION)) != 0
- || (coverage & COV_V1_FORMAT) != COV_V1_FORMAT0)
- continue;
- }
-
- try {
- uint32_t off = (_version ? 16 : 14);
- uint16_t npairs = subt.u16(off - 8);
- for (uint16_t j = 0; j < npairs; ++j, off += 6) {
- v.push_back(Positioning(Position(subt.u16(off), 0, 0, subt.s16(off + 4), 0),
- Position(subt.u16(off + 2), 0, 0, 0, 0)));
- ++success;
- }
- } catch (Error e) {
- if (errh)
- errh->warning("%s, continuing", e.description.c_str());
- }
- }
-
- return success > 0;
-}
-
-}}
-
-#include <lcdf/vector.cc>
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.am
deleted file mode 100644
index f096b1c41bf..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-noinst_LIBRARIES = liblcdf.a
-
-liblcdf_a_SOURCES = bezier.cc \
- clp.c \
- error.cc \
- filename.cc \
- globmatch.cc \
- landmark.cc \
- md5.c \
- permstr.cc \
- point.cc \
- slurper.cc \
- straccum.cc \
- string.cc \
- strtonum.c \
- transform.cc \
- vectorv.cc
-
-if FIXLIBC
-liblcdf_a_SOURCES += fixlibc.c
-endif FIXLIBC
-
-liblcdf_a_LIBADD = @TEMPLATE_OBJS@
-CLEANFILES = @TEMPLATE_OBJS@
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-
-EXTRA_DIST = fixlibc.c
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.in
deleted file mode 100644
index 30d406ea760..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/Makefile.in
+++ /dev/null
@@ -1,736 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-@FIXLIBC_TRUE@am__append_1 = fixlibc.c
-subdir = lcdf-typetools-src/liblcdf
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_@AM_V@)
-am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo " AR " $@;
-am__v_AR_1 =
-liblcdf_a_AR = $(AR) $(ARFLAGS)
-liblcdf_a_DEPENDENCIES =
-am__liblcdf_a_SOURCES_DIST = bezier.cc clp.c error.cc filename.cc \
- globmatch.cc landmark.cc md5.c permstr.cc point.cc slurper.cc \
- straccum.cc string.cc strtonum.c transform.cc vectorv.cc \
- fixlibc.c
-@FIXLIBC_TRUE@am__objects_1 = fixlibc.$(OBJEXT)
-am_liblcdf_a_OBJECTS = bezier.$(OBJEXT) clp.$(OBJEXT) error.$(OBJEXT) \
- filename.$(OBJEXT) globmatch.$(OBJEXT) landmark.$(OBJEXT) \
- md5.$(OBJEXT) permstr.$(OBJEXT) point.$(OBJEXT) \
- slurper.$(OBJEXT) straccum.$(OBJEXT) string.$(OBJEXT) \
- strtonum.$(OBJEXT) transform.$(OBJEXT) vectorv.$(OBJEXT) \
- $(am__objects_1)
-liblcdf_a_OBJECTS = $(am_liblcdf_a_OBJECTS)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/bezier.Po ./$(DEPDIR)/clp.Po \
- ./$(DEPDIR)/error.Po ./$(DEPDIR)/filename.Po \
- ./$(DEPDIR)/fixlibc.Po ./$(DEPDIR)/globmatch.Po \
- ./$(DEPDIR)/landmark.Po ./$(DEPDIR)/md5.Po \
- ./$(DEPDIR)/permstr.Po ./$(DEPDIR)/point.Po \
- ./$(DEPDIR)/slurper.Po ./$(DEPDIR)/straccum.Po \
- ./$(DEPDIR)/string.Po ./$(DEPDIR)/strtonum.Po \
- ./$(DEPDIR)/transform.Po ./$(DEPDIR)/vectorv.Po
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(liblcdf_a_SOURCES)
-DIST_SOURCES = $(am__liblcdf_a_SOURCES_DIST)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-noinst_LIBRARIES = liblcdf.a
-liblcdf_a_SOURCES = bezier.cc clp.c error.cc filename.cc globmatch.cc \
- landmark.cc md5.c permstr.cc point.cc slurper.cc straccum.cc \
- string.cc strtonum.c transform.cc vectorv.cc $(am__append_1)
-liblcdf_a_LIBADD = @TEMPLATE_OBJS@
-CLEANFILES = @TEMPLATE_OBJS@
-AM_CPPFLAGS = -I$(srcdir)/../include
-EXTRA_DIST = fixlibc.c
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/liblcdf/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/liblcdf/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-liblcdf.a: $(liblcdf_a_OBJECTS) $(liblcdf_a_DEPENDENCIES) $(EXTRA_liblcdf_a_DEPENDENCIES)
- $(AM_V_at)-rm -f liblcdf.a
- $(AM_V_AR)$(liblcdf_a_AR) liblcdf.a $(liblcdf_a_OBJECTS) $(liblcdf_a_LIBADD)
- $(AM_V_at)$(RANLIB) liblcdf.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bezier.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clp.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filename.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fixlibc.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globmatch.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/landmark.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/permstr.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/point.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurper.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/straccum.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/string.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtonum.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transform.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vectorv.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/bezier.Po
- -rm -f ./$(DEPDIR)/clp.Po
- -rm -f ./$(DEPDIR)/error.Po
- -rm -f ./$(DEPDIR)/filename.Po
- -rm -f ./$(DEPDIR)/fixlibc.Po
- -rm -f ./$(DEPDIR)/globmatch.Po
- -rm -f ./$(DEPDIR)/landmark.Po
- -rm -f ./$(DEPDIR)/md5.Po
- -rm -f ./$(DEPDIR)/permstr.Po
- -rm -f ./$(DEPDIR)/point.Po
- -rm -f ./$(DEPDIR)/slurper.Po
- -rm -f ./$(DEPDIR)/straccum.Po
- -rm -f ./$(DEPDIR)/string.Po
- -rm -f ./$(DEPDIR)/strtonum.Po
- -rm -f ./$(DEPDIR)/transform.Po
- -rm -f ./$(DEPDIR)/vectorv.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/bezier.Po
- -rm -f ./$(DEPDIR)/clp.Po
- -rm -f ./$(DEPDIR)/error.Po
- -rm -f ./$(DEPDIR)/filename.Po
- -rm -f ./$(DEPDIR)/fixlibc.Po
- -rm -f ./$(DEPDIR)/globmatch.Po
- -rm -f ./$(DEPDIR)/landmark.Po
- -rm -f ./$(DEPDIR)/md5.Po
- -rm -f ./$(DEPDIR)/permstr.Po
- -rm -f ./$(DEPDIR)/point.Po
- -rm -f ./$(DEPDIR)/slurper.Po
- -rm -f ./$(DEPDIR)/straccum.Po
- -rm -f ./$(DEPDIR)/string.Po
- -rm -f ./$(DEPDIR)/strtonum.Po
- -rm -f ./$(DEPDIR)/transform.Po
- -rm -f ./$(DEPDIR)/vectorv.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-generic clean-libtool clean-noinstLIBRARIES \
- cscopelist-am ctags ctags-am distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
deleted file mode 100644
index c296a4b4aa3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/bezier.cc
+++ /dev/null
@@ -1,376 +0,0 @@
-// -*- related-file-name: "../include/lcdf/bezier.hh" -*-
-
-/* bezier.{cc,hh} -- cubic Bezier curves
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/bezier.hh>
-
-//
-// bounding box
-//
-
-void
-Bezier::make_bb() const noexcept
-{
- _bb = 0;
- for (int i = 1; i < 4; i++) {
- if (_p[i].x > bb_right_x())
- _bb = (_bb & ~0x03) | (i << 0);
- else if (_p[i].x < bb_left_x())
- _bb = (_bb & ~0x0C) | (i << 2);
- if (_p[i].y > bb_top_x())
- _bb = (_bb & ~0x30) | (i << 4);
- else if (_p[i].y < bb_bottom_x())
- _bb = (_bb & ~0xC0) | (i << 6);
- }
-}
-
-
-//
-// is_flat, eval
-//
-
-bool
-Bezier::is_flat(double t) const noexcept
-{
- return (_p[2].on_segment(_p[0], _p[3], t)
- && _p[1].on_segment(_p[0], _p[3], t));
-}
-
-static Point
-eval_bezier(Point *b_in, int degree, double u)
-{
- assert(degree < 4);
- Point b[4];
- for (int i = 0; i <= degree; i++)
- b[i] = b_in[i];
-
- double m = 1.0 - u;
- for (int i = 1; i <= degree; i++)
- for (int j = 0; j <= degree - i; j++)
- b[j] = b[j]*m + b[j+1]*u;
- return b[0];
-}
-
-Point
-Bezier::eval(double u) const noexcept
-{
- Bezier b = *this;
- double m = 1.0 - u;
- for (int i = 1; i < 4; i++)
- for (int j = 0; j < 4 - i; j++)
- b._p[j] = m * b._p[j] + u * b._p[j+1];
- return b._p[0];
-}
-
-
-//
-// halve
-//
-
-void
-Bezier::halve(Bezier &l, Bezier &r) const noexcept
-{
- Point half = Point::midpoint(_p[1], _p[2]);
- l._p[0] = _p[0];
- l._p[1] = Point::midpoint(_p[0], _p[1]);
- l._p[2] = Point::midpoint(l._p[1], half);
- r._p[3] = _p[3];
- r._p[2] = Point::midpoint(_p[2], _p[3]);
- r._p[1] = Point::midpoint(r._p[2], half);
- r._p[0] = l._p[3] = Point::midpoint(l._p[2], r._p[1]);
-}
-
-
-//
-// hit testing
-//
-
-bool
-Bezier::in_bb(const Point &p, double tolerance) const noexcept
-{
- ensure_bb();
- if (bb_right() + tolerance < p.x
- || bb_left() - tolerance > p.x
- || bb_top() + tolerance < p.y
- || bb_bottom() - tolerance > p.y)
- return false;
- else
- return true;
-}
-
-double
-Bezier::hit_recurse(const Point &p, double tolerance, double leftd,
- double rightd, double leftt, double rightt) const noexcept
-{
- Bezier left, right;
- double middled, resultt;
-
- if (is_flat(tolerance)) {
- if (p.on_segment(_p[0], _p[3], tolerance))
- return (leftt + rightt) / 2;
- else
- return -1;
- }
-
- if (leftd < tolerance * tolerance)
- return leftt;
- if (rightd < tolerance * tolerance)
- return rightt;
-
- if (!in_bb(p, tolerance))
- return -1;
-
- halve(left, right);
- middled = (right._p[0] - p).squared_length();
- resultt = left.hit_recurse
- (p, tolerance, leftd, middled, leftt, (leftt + rightt) / 2);
- if (resultt >= 0)
- return resultt;
-
- return right.hit_recurse
- (p, tolerance, middled, rightd, (leftt + rightt) / 2, rightt);
-}
-
-bool
-Bezier::hit(const Point &p, double tolerance) const noexcept
-{
- double leftd = (_p[0] - p).squared_length();
- double rightd = (_p[3] - p).squared_length();
- double resultt = hit_recurse(p, tolerance, leftd, rightd, 0, 1);
- return resultt >= 0;
-}
-
-
-//
-// segmentize to list of points
-//
-// uses recursive subdivision
-//
-
-void
-Bezier::segmentize(Vector<Point> &v, bool first) const
-{
- if (is_flat(0.5)) {
- if (first)
- v.push_back(_p[0]);
- v.push_back(_p[3]);
- } else {
- Bezier left, right;
- halve(left, right);
- left.segmentize(v, first);
- right.segmentize(v, false);
- }
-}
-
-
-//
-// curve fitting
-//
-// code after Philip J. Schneider's algorithm described, with code, in the
-// first Graphics Gems
-//
-
-static void
-chord_length_parameterize(const Point *d, int nd, Vector<double> &result)
-{
- assert(result.size() == 0);
- result.reserve(nd);
- result.push_back(0);
- for (int i = 1; i < nd; i++)
- result.push_back(result.back() + Point::distance(d[i-1], d[i]));
- double last_dist = result.back();
- for (int i = 1; i < nd; i++)
- result[i] /= last_dist;
-}
-
-static inline double
-B0(double u)
-{
- double m = 1.0 - u;
- return m*m*m;
-}
-
-static inline double
-B1(double u)
-{
- double m = 1.0 - u;
- return 3*m*m*u;
-}
-
-static inline double
-B2(double u)
-{
- double m = 1.0 - u;
- return 3*m*u*u;
-}
-
-static inline double
-B3(double u)
-{
- return u*u*u;
-}
-
-static Bezier
-generate_bezier(const Point *d, int nd, const Vector<double> &parameters,
- const Point &left_tangent, const Point &right_tangent)
-{
- Point *a0 = new Point[nd];
- Point *a1 = new Point[nd];
-
- for (int i = 0; i < nd; i++) {
- a0[i] = left_tangent * B1(parameters[i]);
- a1[i] = right_tangent * B2(parameters[i]);
- }
-
- double c[2][2], x[2];
- c[0][0] = c[0][1] = c[1][0] = c[1][1] = x[0] = x[1] = 0.0;
-
- int last = nd - 1;
- for (int i = 0; i < nd; i++) {
- c[0][0] += Point::dot(a0[i], a0[i]);
- c[0][1] += Point::dot(a0[i], a1[i]);
- c[1][1] += Point::dot(a1[i], a1[i]);
-
- Point tmp = d[i] - (d[0] * (B0(parameters[i]) + B1(parameters[i]))
- + d[last] * (B2(parameters[i]) + B3(parameters[i])));
- x[0] += Point::dot(a0[i], tmp);
- x[1] += Point::dot(a1[i], tmp);
- }
- c[1][0] = c[0][1];
-
- // compute determinants
- double det_c0_c1 = c[0][0]*c[1][1] - c[1][0]*c[0][1];
- double det_c0_x = c[0][0]*x[1] - c[0][1]*x[0];
- double det_x_c1 = x[0]*c[1][1] - x[1]*c[0][1];
-
- // finally, derive alpha values
- if (det_c0_c1 == 0.0)
- det_c0_c1 = c[0][0]*c[1][1] * 10e-12;
- double alpha_l = det_x_c1 / det_c0_c1;
- double alpha_r = det_c0_x / det_c0_c1;
-
- // if alpha negative, use the Wu/Barsky heuristic
- if (alpha_l < 0.0 || alpha_r < 0.0) {
- double distance = Point::distance(d[0], d[last]) / 3;
- return Bezier(d[0], d[0] + left_tangent*distance,
- d[last] + right_tangent*distance, d[last]);
- } else
- return Bezier(d[0], d[0] + left_tangent*alpha_l,
- d[last] + right_tangent*alpha_r, d[last]);
-}
-
-static double
-newton_raphson_root_find(const Bezier &b, const Point &p, double u)
-{
- const Point *b_pts = b.points();
-
- Point b_det[3];
- for (int i = 0; i < 3; i++)
- b_det[i] = (b_pts[i+1] - b_pts[i]) * 3;
-
- Point b_det_det[2];
- for (int i = 0; i < 2; i++)
- b_det_det[i] = (b_det[i+1] - b_det[i]) * 2;
-
- Point b_u = b.eval(u);
- Point b_det_u = eval_bezier(b_det, 2, u);
- Point b_det_det_u = eval_bezier(b_det_det, 1, u);
-
- double numerator = Point::dot(b_u - p, b_det_u);
- double denominator = Point::dot(b_det_u, b_det_u) +
- Point::dot(b_u - p, b_det_det_u);
-
- return u - numerator/denominator;
-}
-
-static void
-reparameterize(const Point *d, int nd, Vector<double> &parameters,
- const Bezier &b)
-{
- for (int i = 0; i < nd; i++)
- parameters[i] = newton_raphson_root_find(b, d[i], parameters[i]);
-}
-
-static double
-compute_max_error(const Point *d, int nd, const Bezier &b,
- const Vector<double> &parameters, int *split_point)
-{
- *split_point = nd/2;
- double max_dist = 0.0;
- for (int i = 1; i < nd - 1; i++) {
- double dist = (b.eval(parameters[i]) - d[i]).squared_length();
- if (dist >= max_dist) {
- max_dist = dist;
- *split_point = i;
- }
- }
- return max_dist;
-}
-
-static void
-fit0(const Point *d, int nd, Point left_tangent, Point right_tangent,
- double error, Vector<Bezier> &result)
-{
- // Use a heuristic for small regions (only two points)
- if (nd == 2) {
- double dist = Point::distance(d[0], d[1]) / 3;
- result.push_back(Bezier(d[0],
- d[0] + dist*left_tangent,
- d[1] + dist*right_tangent,
- d[1]));
- return;
- }
-
- // Parameterize points and attempt to fit curve
- Vector<double> parameters;
- chord_length_parameterize(d, nd, parameters);
- Bezier b = generate_bezier(d, nd, parameters, left_tangent, right_tangent);
-
- // find max error
- int split_point;
- double max_error = compute_max_error(d, nd, b, parameters, &split_point);
- if (max_error < error) {
- result.push_back(b);
- return;
- }
-
- // if error not too large, try iteration and reparameterization
- if (max_error < error*error)
- for (int i = 0; i < 4; i++) {
- reparameterize(d, nd, parameters, b);
- b = generate_bezier(d, nd, parameters, left_tangent, right_tangent);
- max_error = compute_max_error(d, nd, b, parameters, &split_point);
- if (max_error < error) {
- result.push_back(b);
- return;
- }
- }
-
- // fitting failed -- split at max error point and fit again
- Point center_tangent = ((d[split_point-1] - d[split_point+1])/2).normal();
- fit0(d, split_point+1, left_tangent, center_tangent, error, result);
- fit0(d+split_point, nd-split_point, -center_tangent, right_tangent, error, result);
-}
-
-void
-Bezier::fit(const Vector<Point> &points, double error, Vector<Bezier> &result)
-{
- int npoints = points.size();
- Point left_tangent = (points[1] - points[0]).normal();
- Point right_tangent = (points[npoints-2] - points[npoints-1]).normal();
- fit0(&points[0], npoints, left_tangent, right_tangent, error, result);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
deleted file mode 100644
index 1555f2298d4..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/clp.c
+++ /dev/null
@@ -1,2359 +0,0 @@
-/* -*- related-file-name: "../include/lcdf/clp.h" -*- */
-/* clp.c - Complete source code for CLP.
- * This file is part of CLP, the command line parser package.
- *
- * Copyright (c) 1997-2019 Eddie Kohler, ekohler@gmail.com
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file, which is available in full at
- * http://www.pdos.lcs.mit.edu/click/license.html. The conditions include: you
- * must preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/clp.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <assert.h>
-#include <stdarg.h>
-#include <ctype.h>
-
-/* By default, assume we have strtoul. */
-#if !defined(HAVE_STRTOUL) && !defined(HAVE_CONFIG_H)
-# define HAVE_STRTOUL 1
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/** @file clp.h
- * @brief Functions for parsing command line options.
- *
- * The CLP functions are used to parse command line arugments into options.
- * It automatically handles value parsing, error messages, long options with
- * minimum prefix matching, short options, and negated options.
- *
- * The CLP model works like this.
- *
- * <ol>
- * <li>The user declares an array of Clp_Option structures that define the
- * options their program accepts.</li>
- * <li>The user creates a Clp_Parser object using Clp_NewParser(), passing in
- * the command line arguments to parse and the Clp_Option structures.</li>
- * <li>A loop repeatedly calls Clp_Next() to parse the arguments.</li>
- * </ol>
- *
- * Unlike many command line parsing libraries, CLP steps through all arguments
- * one at a time, rather than slurping up all options at once. This makes it
- * meaningful to give an option more than once.
- *
- * Here's an example.
- *
- * @code
- * #define ANIMAL_OPT 1
- * #define VEGETABLE_OPT 2
- * #define MINERALS_OPT 3
- * #define USAGE_OPT 4
- *
- * static const Clp_Option options[] = {
- * { "animal", 'a', ANIMAL_OPT, Clp_ValString, 0 },
- * { "vegetable", 'v', VEGETABLE_OPT, Clp_ValString, Clp_Negate | Clp_Optional },
- * { "minerals", 'm', MINERALS_OPT, Clp_ValInt, 0 },
- * { "usage", 0, USAGE_OPT, 0, 0 }
- * };
- *
- * int main(int argc, char *argv[]) {
- * Clp_Parser *clp = Clp_NewParser(argc, argv,
- * sizeof(options) / sizeof(options[0]), options);
- * int opt;
- * while ((opt = Clp_Next(clp)) != Clp_Done)
- * switch (opt) {
- * case ANIMAL_OPT:
- * fprintf(stderr, "animal is %s\n", clp->val.s);
- * break;
- * case VEGETABLE_OPT:
- * if (clp->negated)
- * fprintf(stderr, "no vegetables!\n");
- * else if (clp->have_val)
- * fprintf(stderr, "vegetable is %s\n", clp->val.s);
- * else
- * fprintf(stderr, "vegetables OK\n");
- * break;
- * case MINERALS_OPT:
- * fprintf(stderr, "%d minerals\n", clp->val.i);
- * break;
- * case USAGE_OPT:
- * fprintf(stderr, "Usage: 20q [--animal=ANIMAL] [--vegetable[=VEGETABLE]] [--minerals=N]\n");
- * break;
- * case Clp_NotOption:
- * fprintf(stderr, "non-option %s\n", clp->vstr);
- * break;
- * }
- * }
- * }
- * @endcode
- *
- * Here are a couple of executions.
- *
- * <pre>
- * % ./20q --animal=cat
- * animal is cat
- * % ./20q --animal=cat -a dog -afish --animal bird --an=snake
- * animal is cat
- * animal is dog
- * animal is fish
- * animal is bird
- * animal is snake
- * % ./20q --no-vegetables
- * no vegetables!
- * % ./20q -v
- * vegetables OK
- * % ./20q -vkale
- * vegetable is kale
- * % ./20q -m10
- * 10 minerals
- * % ./20q -m foo
- * '-m' expects an integer, not 'foo'
- * </pre>
- */
-
-
-/* Option types for Clp_SetOptionChar */
-#define Clp_DoubledLong (Clp_LongImplicit * 2)
-
-#define Clp_InitialValType 8
-#define MAX_AMBIGUOUS_VALUES 4
-
-typedef struct {
- int val_type;
- Clp_ValParseFunc func;
- int flags;
- void *user_data;
-} Clp_ValType;
-
-typedef struct {
- unsigned ilong : 1;
- unsigned ishort : 1;
- unsigned imandatory : 1;
- unsigned ioptional : 1;
- unsigned ipos : 1;
- unsigned ineg : 1;
- unsigned iprefmatch : 1;
- unsigned lmmpos_short : 1;
- unsigned lmmneg_short : 1;
- unsigned char ilongoff;
- int lmmpos;
- int lmmneg;
-} Clp_InternOption;
-
-
-#define Clp_OptionCharsSize 5
-
-typedef struct {
- int c;
- int type;
-} Clp_Oclass;
-#define Clp_OclassSize 10
-
-typedef struct Clp_Internal {
- const Clp_Option *opt;
- Clp_InternOption *iopt;
- int nopt;
- unsigned opt_generation;
-
- Clp_ValType *valtype;
- int nvaltype;
-
- const char * const *argv;
- int argc;
-
- Clp_Oclass oclass[Clp_OclassSize];
- int noclass;
- int long1pos;
- int long1neg;
- int utf8;
-
- char option_chars[Clp_OptionCharsSize];
- const char *xtext;
-
- const char *program_name;
- void (*error_handler)(Clp_Parser *, const char *);
-
- int option_processing;
- int current_option;
-
- unsigned char is_short;
- unsigned char whole_negated; /* true if negated by an option character */
- unsigned char could_be_short;
- unsigned char current_short;
- unsigned char negated_by_no;
-
- int ambiguous;
- int ambiguous_values[MAX_AMBIGUOUS_VALUES];
-} Clp_Internal;
-
-
-struct Clp_ParserState {
- const char * const *argv;
- int argc;
-
- char option_chars[Clp_OptionCharsSize];
- const char *xtext;
-
- int option_processing;
-
- unsigned opt_generation;
- int current_option;
- unsigned char is_short;
- unsigned char whole_negated;
- unsigned char current_short;
- unsigned char negated_by_no;
-};
-
-
-typedef struct Clp_StringList {
-
- Clp_Option *items;
- Clp_InternOption *iopt;
- int nitems;
-
- int allow_int;
- int nitems_invalid_report;
-
-} Clp_StringList;
-
-
-static const Clp_Option clp_option_sentinel[] = {
- {"", 0, Clp_NotOption, 0, 0},
- {"", 0, Clp_Done, 0, 0},
- {"", 0, Clp_BadOption, 0, 0},
- {"", 0, Clp_Error, 0, 0}
-};
-
-
-static int parse_string(Clp_Parser *, const char *, int, void *);
-static int parse_int(Clp_Parser *, const char *, int, void *);
-static int parse_bool(Clp_Parser *, const char *, int, void *);
-static int parse_double(Clp_Parser *, const char *, int, void *);
-static int parse_string_list(Clp_Parser *, const char *, int, void *);
-
-static int ambiguity_error(Clp_Parser *, int, int *, const Clp_Option *,
- const Clp_InternOption *, const char *, const char *,
- ...);
-
-
-/*******
- * utf8
- **/
-
-#define U_REPLACEMENT 0xFFFD
-
-static char *
-encode_utf8(char *s, int n, int c)
-{
- if (c < 0 || c >= 0x110000 || (c >= 0xD800 && c <= 0xDFFF))
- c = U_REPLACEMENT;
- if (c <= 0x7F && n >= 1)
- *s++ = c;
- else if (c <= 0x7FF && n >= 2) {
- *s++ = 0xC0 | (c >> 6);
- goto char1;
- } else if (c <= 0xFFFF && n >= 3) {
- *s++ = 0xE0 | (c >> 12);
- goto char2;
- } else if (n >= 4) {
- *s++ = 0xF0 | (c >> 18);
- *s++ = 0x80 | ((c >> 12) & 0x3F);
- char2:
- *s++ = 0x80 | ((c >> 6) & 0x3F);
- char1:
- *s++ = 0x80 | (c & 0x3F);
- }
- return s;
-}
-
-static int
-decode_utf8(const char *s, const char **cp)
-{
- int c;
- if ((unsigned char) *s <= 0x7F) /* 1 byte: 0x000000-0x00007F */
- c = *s++;
- else if ((unsigned char) *s <= 0xC1) /* bad/overlong encoding */
- goto replacement;
- else if ((unsigned char) *s <= 0xDF) { /* 2 bytes: 0x000080-0x0007FF */
- if ((s[1] & 0xC0) != 0x80) /* bad encoding */
- goto replacement;
- c = (*s++ & 0x1F) << 6;
- goto char1;
- } else if ((unsigned char) *s <= 0xEF) { /* 3 bytes: 0x000800-0x00FFFF */
- if ((s[1] & 0xC0) != 0x80 /* bad encoding */
- || (s[2] & 0xC0) != 0x80 /* bad encoding */
- || ((unsigned char) *s == 0xE0 /* overlong encoding */
- && (s[1] & 0xE0) == 0x80)
- || ((unsigned char) *s == 0xED /* encoded surrogate */
- && (s[1] & 0xE0) == 0xA0))
- goto replacement;
- c = (*s++ & 0x0F) << 12;
- goto char2;
- } else if ((unsigned char) *s <= 0xF4) { /* 4 bytes: 0x010000-0x10FFFF */
- if ((s[1] & 0xC0) != 0x80 /* bad encoding */
- || (s[2] & 0xC0) != 0x80 /* bad encoding */
- || (s[3] & 0xC0) != 0x80 /* bad encoding */
- || ((unsigned char) *s == 0xF0 /* overlong encoding */
- && (s[1] & 0xF0) == 0x80)
- || ((unsigned char) *s == 0xF4 /* encoded value > 0x10FFFF */
- && (unsigned char) s[1] >= 0x90))
- goto replacement;
- c = (*s++ & 0x07) << 18;
- c += (*s++ & 0x3F) << 12;
- char2:
- c += (*s++ & 0x3F) << 6;
- char1:
- c += (*s++ & 0x3F);
- } else {
- replacement:
- c = U_REPLACEMENT;
- for (s++; (*s & 0xC0) == 0x80; s++)
- /* nothing */;
- }
- if (cp)
- *cp = s;
- return c;
-}
-
-static int
-utf8_charlen(const char *s)
-{
- const char *sout;
- (void) decode_utf8(s, &sout);
- return sout - s;
-}
-
-static int
-clp_utf8_charlen(const Clp_Internal *cli, const char *s)
-{
- return (cli->utf8 ? utf8_charlen(s) : 1);
-}
-
-
-/*******
- * Clp_NewParser, etc.
- **/
-
-static int
-min_different_chars(const char *s, const char *t)
- /* Returns the minimum number of bytes required to distinguish
- s from t.
- If s is shorter than t, returns strlen(s). */
-{
- const char *sfirst = s;
- while (*s && *t && *s == *t)
- s++, t++;
- if (!*s)
- return s - sfirst;
- else
- return s - sfirst + 1;
-}
-
-static int
-long_as_short(const Clp_Internal *cli, const Clp_Option *o,
- Clp_InternOption *io, int failure)
-{
- if ((cli->long1pos || cli->long1neg) && io->ilong) {
- const char *name = o->long_name + io->ilongoff;
- if (cli->utf8) {
- int c = decode_utf8(name, &name);
- if (!*name && c && c != U_REPLACEMENT)
- return c;
- } else if (name[0] && !name[1])
- return (unsigned char) name[0];
- }
- return failure;
-}
-
-static void
-compare_options(Clp_Parser *clp, const Clp_Option *o1, Clp_InternOption *io1,
- const Clp_Option *o2, Clp_InternOption *io2)
-{
- Clp_Internal *cli = clp->internal;
- int short1, shortx1;
-
- /* ignore meaningless combinations */
- if ((!io1->ishort && !io1->ilong) || (!io2->ishort && !io2->ilong)
- || !((io1->ipos && io2->ipos) || (io1->ineg && io2->ineg))
- || o1->option_id == o2->option_id)
- return;
-
- /* look for duplication of short options */
- short1 = (io1->ishort ? o1->short_name : -1);
- shortx1 = long_as_short(cli, o1, io1, -2);
- if (short1 >= 0 || shortx1 >= 0) {
- int short2 = (io2->ishort ? o2->short_name : -3);
- int shortx2 = long_as_short(cli, o2, io2, -4);
- if (short1 == short2)
- Clp_OptionError(clp, "CLP internal error: more than 1 option has short name %<%c%>", short1);
- else if ((short1 == shortx2 || shortx1 == short2 || shortx1 == shortx2)
- && ((io1->ipos && io2->ipos && cli->long1pos)
- || (io1->ineg && io2->ineg && cli->long1neg)))
- Clp_OptionError(clp, "CLP internal error: 1-char long name conflicts with short name %<%c%>", (short1 == shortx2 ? shortx2 : shortx1));
- }
-
- /* analyze longest minimum match */
- if (io1->ilong) {
- const char *name1 = o1->long_name + io1->ilongoff;
-
- /* long name's first character matches short name */
- if (io2->ishort && !io1->iprefmatch) {
- int name1char = (cli->utf8 ? decode_utf8(name1, 0) : (unsigned char) *name1);
- if (name1char == o2->short_name) {
- if (io1->ipos && io2->ipos)
- io1->lmmpos_short = 1;
- if (io1->ineg && io2->ineg)
- io1->lmmneg_short = 1;
- }
- }
-
- /* match long name to long name */
- if (io2->ilong) {
- const char *name2 = o2->long_name + io2->ilongoff;
- if (strcmp(name1, name2) == 0)
- Clp_OptionError(clp, "CLP internal error: duplicate long name %<%s%>", name1);
- if (io1->ipos && io2->ipos && !strncmp(name1, name2, io1->lmmpos)
- && (!io1->iprefmatch || strncmp(name1, name2, strlen(name1))))
- io1->lmmpos = min_different_chars(name1, name2);
- if (io1->ineg && io2->ineg && !strncmp(name1, name2, io1->lmmneg)
- && (!io1->iprefmatch || strncmp(name1, name2, strlen(name1))))
- io1->lmmneg = min_different_chars(name1, name2);
- }
- }
-}
-
-static void
-calculate_lmm(Clp_Parser *clp, const Clp_Option *opt, Clp_InternOption *iopt, int nopt)
-{
- int i, j;
- for (i = 0; i < nopt; ++i) {
- iopt[i].lmmpos = iopt[i].lmmneg = 1;
- iopt[i].lmmpos_short = iopt[i].lmmneg_short = 0;
- for (j = 0; j < nopt; ++j)
- compare_options(clp, &opt[i], &iopt[i], &opt[j], &iopt[j]);
- }
-}
-
-/** @param argc number of arguments
- * @param argv argument array
- * @param nopt number of option definitions
- * @param opt option definition array
- * @return the parser
- *
- * The new Clp_Parser that will parse the arguments in @a argv according to
- * the option definitions in @a opt.
- *
- * The Clp_Parser is created with the following characteristics:
- *
- * <ul>
- * <li>The "-" character introduces short options (<tt>Clp_SetOptionChar(clp,
- * '-', Clp_Short)</tt>).</li>
- * <li>Clp_ProgramName is set from the first argument in @a argv, if any. The
- * first argument returned by Clp_Next() will be the second argument in @a
- * argv. Note that this behavior differs from Clp_SetArguments.</li>
- * <li>UTF-8 support is on iff the <tt>LANG</tt> environment variable contains
- * one of the substrings "UTF-8", "UTF8", or "utf8". Override this with
- * Clp_SetUTF8().</li>
- * <li>The Clp_ValString, Clp_ValStringNotOption, Clp_ValInt, Clp_ValUnsigned,
- * Clp_ValBool, and Clp_ValDouble types are installed.</li>
- * <li>Errors are reported to standard error.</li>
- * </ul>
- *
- * You may also create a Clp_Parser with no arguments or options
- * (<tt>Clp_NewParser(0, 0, 0, 0)</tt>) and set the arguments and options
- * later.
- *
- * Returns NULL if there isn't enough memory to construct the parser.
- *
- * @note The CLP library will not modify the contents of @a argv or @a opt.
- * The calling program must not modify @a opt. It may modify @a argv in
- * limited cases.
- */
-Clp_Parser *
-Clp_NewParser(int argc, const char * const *argv, int nopt, const Clp_Option *opt)
-{
- Clp_Parser *clp = (Clp_Parser *)malloc(sizeof(Clp_Parser));
- Clp_Internal *cli = (Clp_Internal *)malloc(sizeof(Clp_Internal));
- Clp_InternOption *iopt = (Clp_InternOption *)malloc(sizeof(Clp_InternOption) * nopt);
- if (cli)
- cli->valtype = (Clp_ValType *)malloc(sizeof(Clp_ValType) * Clp_InitialValType);
- if (!clp || !cli || !iopt || !cli->valtype)
- goto failed;
-
- clp->option = &clp_option_sentinel[-Clp_Done];
- clp->negated = 0;
- clp->have_val = 0;
- clp->vstr = 0;
- clp->user_data = 0;
- clp->internal = cli;
-
- cli->opt = opt;
- cli->nopt = nopt;
- cli->iopt = iopt;
- cli->opt_generation = 0;
- cli->error_handler = 0;
-
- /* Assign program name (now so we can call Clp_OptionError) */
- if (argc > 0) {
- const char *slash = strrchr(argv[0], '/');
- cli->program_name = slash ? slash + 1 : argv[0];
- } else
- cli->program_name = 0;
-
- /* Assign arguments, skipping program name */
- Clp_SetArguments(clp, argc - 1, argv + 1);
-
- /* Initialize UTF-8 status and option classes */
- {
- char *s = getenv("LANG");
- cli->utf8 = (s && (strstr(s, "UTF-8") != 0 || strstr(s, "UTF8") != 0
- || strstr(s, "utf8") != 0));
- }
- cli->oclass[0].c = '-';
- cli->oclass[0].type = Clp_Short;
- cli->noclass = 1;
- cli->long1pos = cli->long1neg = 0;
-
- /* Add default type parsers */
- cli->nvaltype = 0;
- Clp_AddType(clp, Clp_ValString, 0, parse_string, 0);
- Clp_AddType(clp, Clp_ValStringNotOption, Clp_DisallowOptions, parse_string, 0);
- Clp_AddType(clp, Clp_ValInt, 0, parse_int, 0);
- Clp_AddType(clp, Clp_ValUnsigned, 0, parse_int, (void *)cli);
- Clp_AddType(clp, Clp_ValBool, 0, parse_bool, 0);
- Clp_AddType(clp, Clp_ValDouble, 0, parse_double, 0);
-
- /* Set options */
- Clp_SetOptions(clp, nopt, opt);
-
- return clp;
-
- failed:
- if (cli && cli->valtype)
- free(cli->valtype);
- if (cli)
- free(cli);
- if (clp)
- free(clp);
- if (iopt)
- free(iopt);
- return 0;
-}
-
-/** @param clp the parser
- *
- * All memory associated with @a clp is freed. */
-void
-Clp_DeleteParser(Clp_Parser *clp)
-{
- int i;
- Clp_Internal *cli;
- if (!clp)
- return;
-
- cli = clp->internal;
-
- /* get rid of any string list types */
- for (i = 0; i < cli->nvaltype; i++)
- if (cli->valtype[i].func == parse_string_list) {
- Clp_StringList *clsl = (Clp_StringList *)cli->valtype[i].user_data;
- free(clsl->items);
- free(clsl->iopt);
- free(clsl);
- }
-
- free(cli->valtype);
- free(cli->iopt);
- free(cli);
- free(clp);
-}
-
-
-/** @param clp the parser
- * @param errh error handler function
- * @return previous error handler function
- *
- * The error handler function is called when CLP encounters an error while
- * parsing the command line. It is called with the arguments "<tt>(*errh)(@a
- * clp, s)</tt>", where <tt>s</tt> is a description of the error terminated by
- * a newline. The <tt>s</tt> descriptions produced by CLP itself are prefixed
- * by the program name, if any. */
-Clp_ErrorHandler
-Clp_SetErrorHandler(Clp_Parser *clp, void (*errh)(Clp_Parser *, const char *))
-{
- Clp_Internal *cli = clp->internal;
- Clp_ErrorHandler old = cli->error_handler;
- cli->error_handler = errh;
- return old;
-}
-
-/** @param clp the parser
- * @param utf8 does the parser support UTF-8?
- * @return previous UTF-8 mode
- *
- * In UTF-8 mode, all input strings (arguments and long names for options) are
- * assumed to be encoded via UTF-8, and all character names
- * (Clp_SetOptionChar() and short names for options) may cover the whole
- * Unicode range. Out of UTF-8 mode, all input strings are treated as binary,
- * and all character names must be unsigned char values.
- *
- * Furthermore, error messages in UTF-8 mode may contain Unicode quote
- * characters. */
-int
-Clp_SetUTF8(Clp_Parser *clp, int utf8)
-{
- Clp_Internal *cli = clp->internal;
- int old_utf8 = cli->utf8;
- cli->utf8 = utf8;
- calculate_lmm(clp, cli->opt, cli->iopt, cli->nopt);
- return old_utf8;
-}
-
-/** @param clp the parser
- * @param c character
- * @return option character treatment
- *
- * Returns an integer specifying how CLP treats arguments that begin
- * with character @a c. See Clp_SetOptionChar for possibilities.
- */
-int
-Clp_OptionChar(Clp_Parser *clp, int c)
-{
- Clp_Internal *cli = clp->internal;
- int i, oclass = 0;
- if (cli->noclass > 0 && cli->oclass[0].c == 0)
- oclass = cli->oclass[0].type;
- for (i = 0; i < cli->noclass; ++i)
- if (cli->oclass[i].c == c)
- oclass = cli->oclass[i].type;
- return oclass;
-}
-
-/** @param clp the parser
- * @param c character
- * @param type option character treatment
- * @return previous option character treatment, or -1 on error
- *
- * @a type specifies how CLP treats arguments that begin with character @a c.
- * Possibilities are:
- *
- * <dl>
- * <dt>Clp_NotOption (or 0)</dt>
- * <dd>The argument cannot be an option.</dd>
- * <dt>Clp_Long</dt>
- * <dd>The argument is a long option.</dd>
- * <dt>Clp_Short</dt>
- * <dd>The argument is a set of short options.</dd>
- * <dt>Clp_Short|Clp_Long</dt>
- * <dd>The argument is either a long option or, if no matching long option is
- * found, a set of short options.</dd>
- * <dt>Clp_LongNegated</dt>
- * <dd>The argument is a negated long option. For example, after
- * Clp_SetOptionChar(@a clp, '^', Clp_LongNegated), the argument "^foo" is
- * equivalent to "--no-foo".</dd>
- * <dt>Clp_ShortNegated</dt>
- * <dd>The argument is a set of negated short options.</dd>
- * <dt>Clp_ShortNegated|Clp_LongNegated</dt>
- * <dd>The argument is either a negated long option or, if no matching long
- * option is found, a set of negated short options.</dd>
- * <dt>Clp_LongImplicit</dt>
- * <dd>The argument may be a long option, where the character @a c is actually
- * part of the long option name. For example, after Clp_SetOptionChar(@a clp,
- * 'f', Clp_LongImplicit), the argument "foo" may be equivalent to
- * "--foo".</dd>
- * </dl>
- *
- * In UTF-8 mode, @a c may be any Unicode character. Otherwise, @a c must be
- * an unsigned char value. The special character 0 assigns @a type to @em
- * every character.
- *
- * It is an error if @a c is out of range, @a type is illegal, or there are
- * too many character definitions stored in @a clp already. The function
- * returns -1 on error.
- *
- * A double hyphen "--" always introduces a long option. This behavior cannot
- * currently be changed with Clp_SetOptionChar().
- */
-int
-Clp_SetOptionChar(Clp_Parser *clp, int c, int type)
-{
- int i, long1pos, long1neg;
- int old = Clp_OptionChar(clp, c);
- Clp_Internal *cli = clp->internal;
-
- if (type != Clp_NotOption && type != Clp_Short && type != Clp_Long
- && type != Clp_ShortNegated && type != Clp_LongNegated
- && type != Clp_LongImplicit && type != (Clp_Short | Clp_Long)
- && type != (Clp_ShortNegated | Clp_LongNegated))
- return -1;
- if (c < 0 || c >= (cli->utf8 ? 0x110000 : 256))
- return -1;
-
- if (c == 0)
- cli->noclass = 0;
- for (i = 0; i < cli->noclass; ++i)
- if (cli->oclass[i].c == c)
- break;
- if (i == Clp_OclassSize)
- return -1;
-
- cli->oclass[i].c = c;
- cli->oclass[i].type = type;
- if (cli->noclass == i)
- cli->noclass = i + 1;
-
- long1pos = long1neg = 0;
- for (i = 0; i < cli->noclass; ++i) {
- if ((cli->oclass[i].type & Clp_Short)
- && (cli->oclass[i].type & Clp_Long))
- long1pos = 1;
- if ((cli->oclass[i].type & Clp_ShortNegated)
- && (cli->oclass[i].type & Clp_LongNegated))
- long1neg = 1;
- }
-
- if (long1pos != cli->long1pos || long1neg != cli->long1neg) {
- /* Must recheck option set */
- cli->long1pos = long1pos;
- cli->long1neg = long1neg;
- calculate_lmm(clp, cli->opt, cli->iopt, cli->nopt);
- }
-
- return old;
-}
-
-/** @param clp the parser
- * @param nopt number of option definitions
- * @param opt option definition array
- * @return 0 on success, -1 on failure
- *
- * Installs the option definitions in @a opt. Future option parsing will
- * use @a opt to search for options.
- *
- * Also checks @a opt's option definitions for validity. "CLP internal
- * errors" are reported via Clp_OptionError() if:
- *
- * <ul>
- * <li>An option has a negative ID.</li>
- * <li>Two different short options have the same name.</li>
- * <li>Two different long options have the same name.</li>
- * <li>A short and a long option are ambiguous, in that some option character
- * might introduce either a short or a long option (e.g., Clp_SetOptionChar(@a
- * clp, '-', Clp_Long|Clp_Short)), and a short name equals a long name.</li>
- * </ul>
- *
- * If necessary memory cannot be allocated, this function returns -1 without
- * modifying the parser.
- *
- * @note The CLP library will not modify the contents of @a argv or @a opt.
- * The calling program must not modify @a opt either until another call to
- * Clp_SetOptions() or the parser is destroyed.
- */
-int
-Clp_SetOptions(Clp_Parser *clp, int nopt, const Clp_Option *opt)
-{
- Clp_Internal *cli = clp->internal;
- Clp_InternOption *iopt;
- int i;
- static unsigned opt_generation = 0;
-
- if (nopt > cli->nopt) {
- iopt = (Clp_InternOption *)malloc(sizeof(Clp_InternOption) * nopt);
- if (!iopt)
- return -1;
- free(cli->iopt);
- cli->iopt = iopt;
- }
-
- cli->opt = opt;
- cli->nopt = nopt;
- cli->opt_generation = ++opt_generation;
- iopt = cli->iopt;
- cli->current_option = -1;
-
- /* Massage the options to make them usable */
- for (i = 0; i < nopt; i++) {
- /* Ignore negative option_ids, which are internal to CLP */
- if (opt[i].option_id < 0) {
- Clp_OptionError(clp, "CLP internal error: option %d has negative option_id", i);
- iopt[i].ilong = iopt[i].ishort = iopt[i].ipos = iopt[i].ineg = 0;
- continue;
- }
-
- /* Set flags based on input flags */
- iopt[i].ilong = (opt[i].long_name != 0 && opt[i].long_name[0] != 0);
- iopt[i].ishort = (opt[i].short_name > 0
- && opt[i].short_name < (cli->utf8 ? 0x110000 : 256));
- iopt[i].ipos = 1;
- iopt[i].ineg = (opt[i].flags & Clp_Negate) != 0;
- iopt[i].imandatory = (opt[i].flags & Clp_Mandatory) != 0;
- iopt[i].ioptional = (opt[i].flags & Clp_Optional) != 0;
- iopt[i].iprefmatch = (opt[i].flags & Clp_PreferredMatch) != 0;
- iopt[i].ilongoff = 0;
-
- /* Enforce invariants */
- if (opt[i].val_type <= 0)
- iopt[i].imandatory = iopt[i].ioptional = 0;
- if (opt[i].val_type > 0 && !iopt[i].ioptional)
- iopt[i].imandatory = 1;
-
- /* Options that start with 'no-' should be changed to OnlyNegated */
- if (iopt[i].ilong && strncmp(opt[i].long_name, "no-", 3) == 0) {
- iopt[i].ipos = 0;
- iopt[i].ineg = 1;
- iopt[i].ilongoff = 3;
- if (strncmp(opt[i].long_name + 3, "no-", 3) == 0)
- Clp_OptionError(clp, "CLP internal error: option %d begins with \"no-no-\"", i);
- } else if (opt[i].flags & Clp_OnlyNegated) {
- iopt[i].ipos = 0;
- iopt[i].ineg = 1;
- }
- }
-
- /* Check option set */
- calculate_lmm(clp, opt, iopt, nopt);
-
- return 0;
-}
-
-/** @param clp the parser
- * @param argc number of arguments
- * @param argv argument array
- *
- * Installs the arguments in @a argv for parsing. Future option parsing will
- * analyze @a argv.
- *
- * Unlike Clp_NewParser(), this function does not treat @a argv[0] specially.
- * The first subsequent call to Clp_Next() will analyze @a argv[0].
- *
- * This function also sets option processing to on, as by
- * Clp_SetOptionProcessing(@a clp, 1).
- *
- * @note The CLP library will not modify the contents of @a argv. The calling
- * program should not generally modify the element of @a argv that CLP is
- * currently analyzing.
- */
-void
-Clp_SetArguments(Clp_Parser *clp, int argc, const char * const *argv)
-{
- Clp_Internal *cli = clp->internal;
-
- cli->argc = argc + 1;
- cli->argv = argv - 1;
-
- cli->is_short = 0;
- cli->whole_negated = 0;
- cli->option_processing = 1;
- cli->current_option = -1;
-}
-
-
-/** @param clp the parser
- * @param on whether to search for options
- * @return previous option processing setting
- *
- * When option processing is off, every call to Clp_Next() returns
- * Clp_NotOption. By default the option <tt>"--"</tt> turns off option
- * processing and is otherwise ignored.
- */
-int
-Clp_SetOptionProcessing(Clp_Parser *clp, int on)
-{
- Clp_Internal *cli = clp->internal;
- int old = cli->option_processing;
- cli->option_processing = on;
- return old;
-}
-
-
-/*******
- * functions for Clp_Option lists
- **/
-
-/* the ever-glorious argcmp */
-
-static int
-argcmp(const char *ref, const char *arg, int min_match, int fewer_dashes)
- /* Returns 0 if ref and arg don't match.
- Returns -1 if ref and arg match, but fewer than min_match characters.
- Returns len if ref and arg match min_match or more characters;
- len is the number of characters that matched in arg.
- Allows arg to contain fewer dashes than ref iff fewer_dashes != 0.
-
- Examples:
- argcmp("x", "y", 1, 0) --> 0 / just plain wrong
- argcmp("a", "ax", 1, 0) --> 0 / ...even though min_match == 1
- and the 1st chars match
- argcmp("box", "bo", 3, 0) --> -1 / ambiguous
- argcmp("cat", "c=3", 1, 0) --> 1 / handles = arguments
- */
-{
- const char *refstart = ref;
- const char *argstart = arg;
- assert(min_match > 0);
-
- compare:
- while (*ref && *arg && *arg != '=' && *ref == *arg)
- ref++, arg++;
-
- /* Allow arg to contain fewer dashes than ref */
- if (fewer_dashes && *ref == '-' && ref[1] && ref[1] == *arg) {
- ref++;
- goto compare;
- }
-
- if (*arg && *arg != '=')
- return 0;
- else if (ref - refstart < min_match)
- return -1;
- else
- return arg - argstart;
-}
-
-static int
-find_prefix_opt(Clp_Parser *clp, const char *arg,
- int nopt, const Clp_Option *opt,
- const Clp_InternOption *iopt,
- int *ambiguous, int *ambiguous_values)
- /* Looks for an unambiguous match of 'arg' against one of the long
- options in 'opt'. Returns positive if it finds one; otherwise, returns
- -1 and possibly changes 'ambiguous' and 'ambiguous_values' to keep
- track of at most MAX_AMBIGUOUS_VALUES possibilities. */
-{
- int i, fewer_dashes = 0, first_ambiguous = *ambiguous;
- int negated = clp && clp->negated;
- int first_charlen = (clp ? clp_utf8_charlen(clp->internal, arg) : 1);
-
- retry:
- for (i = 0; i < nopt; i++) {
- int len, lmm;
- if (!iopt[i].ilong || (negated ? !iopt[i].ineg : !iopt[i].ipos))
- continue;
-
- lmm = (negated ? iopt[i].lmmneg : iopt[i].lmmpos);
- if (clp && clp->internal->could_be_short
- && (negated ? iopt[i].lmmneg_short : iopt[i].lmmpos_short))
- lmm = (first_charlen >= lmm ? first_charlen + 1 : lmm);
- len = argcmp(opt[i].long_name + iopt[i].ilongoff, arg, lmm, fewer_dashes);
- if (len > 0)
- return i;
- else if (len < 0) {
- if (*ambiguous < MAX_AMBIGUOUS_VALUES)
- ambiguous_values[*ambiguous] = i;
- (*ambiguous)++;
- }
- }
-
- /* If there were no partial matches, try again with fewer_dashes true */
- if (*ambiguous == first_ambiguous && !fewer_dashes) {
- fewer_dashes = 1;
- goto retry;
- }
-
- return -1;
-}
-
-
-/*****
- * Argument parsing
- **/
-
-static int
-val_type_binsearch(Clp_Internal *cli, int val_type)
-{
- unsigned l = 0, r = cli->nvaltype;
- while (l < r) {
- unsigned m = l + (r - l) / 2;
- if (cli->valtype[m].val_type == val_type)
- return m;
- else if (cli->valtype[m].val_type < val_type)
- l = m + 1;
- else
- r = m;
- }
- return l;
-}
-
-/** @param clp the parser
- * @param val_type value type ID
- * @param flags value type flags
- * @param parser parser function
- * @param user_data user data for @a parser function
- * @return 0 on success, -1 on failure
- *
- * Defines argument type @a val_type in parser @a clp. The parsing function
- * @a parser will be passed argument values for type @a val_type. It should
- * parse the argument into values (usually in @a clp->val, but sometimes
- * elsewhere), report errors if necessary, and return whether the parse was
- * successful.
- *
- * Any prior argument parser match @a val_type is removed. @a val_type must
- * be greater than zero.
- *
- * @a flags specifies additional parsing flags. At the moment the only
- * relevant flag is Clp_DisallowOptions, which means that separated values
- * must not look like options. For example, assume argument
- * <tt>--a</tt>/<tt>-a</tt> has mandatory value type Clp_ValStringNotOption
- * (which has Clp_DisallowOptions). Then:
- *
- * <ul>
- * <li><tt>--a=--b</tt> will parse with value <tt>--b</tt>.</li>
- * <li><tt>-a--b</tt> will parse with value <tt>--b</tt>.</li>
- * <li><tt>--a --b</tt> will not parse, since the mandatory value looks like
- * an option.</li>
- * <li><tt>-a --b</tt> will not parse, since the mandatory value looks like
- * an option.</li>
- * </ul>
- */
-int
-Clp_AddType(Clp_Parser *clp, int val_type, int flags,
- Clp_ValParseFunc parser, void *user_data)
-{
- Clp_Internal *cli = clp->internal;
- int vtpos;
-
- if (val_type <= 0 || !parser)
- return -1;
-
- vtpos = val_type_binsearch(cli, val_type);
-
- if (vtpos == cli->nvaltype || cli->valtype[vtpos].val_type != val_type) {
- if (cli->nvaltype != 0 && (cli->nvaltype % Clp_InitialValType) == 0) {
- Clp_ValType *new_valtype =
- (Clp_ValType *) realloc(cli->valtype, sizeof(Clp_ValType) * (cli->nvaltype + Clp_InitialValType));
- if (!new_valtype)
- return -1;
- cli->valtype = new_valtype;
- }
- memmove(&cli->valtype[vtpos + 1], &cli->valtype[vtpos],
- sizeof(Clp_ValType) * (cli->nvaltype - vtpos));
- cli->nvaltype++;
- cli->valtype[vtpos].func = 0;
- }
-
- if (cli->valtype[vtpos].func == parse_string_list) {
- Clp_StringList *clsl = (Clp_StringList *) cli->valtype[vtpos].user_data;
- free(clsl->items);
- free(clsl->iopt);
- free(clsl);
- }
-
- cli->valtype[vtpos].val_type = val_type;
- cli->valtype[vtpos].func = parser;
- cli->valtype[vtpos].flags = flags;
- cli->valtype[vtpos].user_data = user_data;
- return 0;
-}
-
-
-/*******
- * Default argument parsers
- **/
-
-static int
-parse_string(Clp_Parser *clp, const char *arg, int complain, void *user_data)
-{
- (void)complain, (void)user_data;
- clp->val.s = arg;
- return 1;
-}
-
-static int
-parse_int(Clp_Parser *clp, const char *arg, int complain, void *user_data)
-{
- const char *val;
- if (*arg == 0 || isspace((unsigned char) *arg)
- || (user_data != 0 && *arg == '-'))
- val = arg;
- else if (user_data != 0) { /* unsigned */
-#if HAVE_STRTOUL
- clp->val.u = strtoul(arg, (char **) &val, 0);
-#else
- /* don't bother really trying to do it right */
- if (arg[0] == '-')
- val = arg;
- else
- clp->val.u = strtol(arg, (char **) &val, 0);
-#endif
- } else
- clp->val.i = strtol(arg, (char **) &val, 0);
- if (*arg != 0 && *val == 0)
- return 1;
- else if (complain) {
- const char *message = user_data != 0
- ? "%<%O%> expects a nonnegative integer, not %<%s%>"
- : "%<%O%> expects an integer, not %<%s%>";
- return Clp_OptionError(clp, message, arg);
- } else
- return 0;
-}
-
-static int
-parse_double(Clp_Parser *clp, const char *arg, int complain, void *user_data)
-{
- const char *val;
- (void)user_data;
- if (*arg == 0 || isspace((unsigned char) *arg))
- val = arg;
- else
- clp->val.d = strtod(arg, (char **) &val);
- if (*arg != 0 && *val == 0)
- return 1;
- else if (complain)
- return Clp_OptionError(clp, "%<%O%> expects a real number, not %<%s%>", arg);
- else
- return 0;
-}
-
-static int
-parse_bool(Clp_Parser *clp, const char *arg, int complain, void *user_data)
-{
- int i;
- char lcarg[6];
- (void)user_data;
- if (strlen(arg) > 5 || strchr(arg, '=') != 0)
- goto error;
-
- for (i = 0; arg[i] != 0; i++)
- lcarg[i] = tolower((unsigned char) arg[i]);
- lcarg[i] = 0;
-
- if (argcmp("yes", lcarg, 1, 0) > 0
- || argcmp("true", lcarg, 1, 0) > 0
- || argcmp("1", lcarg, 1, 0) > 0) {
- clp->val.i = 1;
- return 1;
- } else if (argcmp("no", lcarg, 1, 0) > 0
- || argcmp("false", lcarg, 1, 0) > 0
- || argcmp("1", lcarg, 1, 0) > 0) {
- clp->val.i = 0;
- return 1;
- }
-
- error:
- if (complain)
- Clp_OptionError(clp, "%<%O%> expects a true-or-false value, not %<%s%>", arg);
- return 0;
-}
-
-
-/*****
- * Clp_AddStringListType
- **/
-
-static int
-parse_string_list(Clp_Parser *clp, const char *arg, int complain, void *user_data)
-{
- Clp_StringList *sl = (Clp_StringList *)user_data;
- int idx, ambiguous = 0;
- int ambiguous_values[MAX_AMBIGUOUS_VALUES + 1];
-
- /* actually look for a string value */
- idx = find_prefix_opt
- (0, arg, sl->nitems, sl->items, sl->iopt,
- &ambiguous, ambiguous_values);
- if (idx >= 0) {
- clp->val.i = sl->items[idx].option_id;
- return 1;
- }
-
- if (sl->allow_int) {
- if (parse_int(clp, arg, 0, 0))
- return 1;
- }
-
- if (complain) {
- const char *complaint = (ambiguous ? "ambiguous" : "invalid");
- if (!ambiguous) {
- ambiguous = sl->nitems_invalid_report;
- for (idx = 0; idx < ambiguous; idx++)
- ambiguous_values[idx] = idx;
- }
- return ambiguity_error
- (clp, ambiguous, ambiguous_values, sl->items, sl->iopt,
- "", "option %<%O%> value %<%s%> is %s", arg, complaint);
- } else
- return 0;
-}
-
-
-static int
-finish_string_list(Clp_Parser *clp, int val_type, int flags,
- Clp_Option *items, int nitems, int itemscap)
-{
- int i;
- Clp_StringList *clsl = (Clp_StringList *)malloc(sizeof(Clp_StringList));
- Clp_InternOption *iopt = (Clp_InternOption *)malloc(sizeof(Clp_InternOption) * nitems);
- if (!clsl || !iopt)
- goto error;
-
- clsl->items = items;
- clsl->iopt = iopt;
- clsl->nitems = nitems;
- clsl->allow_int = (flags & Clp_AllowNumbers) != 0;
-
- if (nitems < MAX_AMBIGUOUS_VALUES && nitems < itemscap && clsl->allow_int) {
- items[nitems].long_name = "any integer";
- clsl->nitems_invalid_report = nitems + 1;
- } else if (nitems > MAX_AMBIGUOUS_VALUES + 1)
- clsl->nitems_invalid_report = MAX_AMBIGUOUS_VALUES + 1;
- else
- clsl->nitems_invalid_report = nitems;
-
- for (i = 0; i < nitems; i++) {
- iopt[i].ilong = iopt[i].ipos = 1;
- iopt[i].ishort = iopt[i].ineg = iopt[i].ilongoff = iopt[i].iprefmatch = 0;
- }
- calculate_lmm(clp, items, iopt, nitems);
-
- if (Clp_AddType(clp, val_type, 0, parse_string_list, clsl) >= 0)
- return 0;
-
- error:
- if (clsl)
- free(clsl);
- if (iopt)
- free(iopt);
- return -1;
-}
-
-/** @param clp the parser
- * @param val_type value type ID
- * @param flags string list flags
- * @return 0 on success, -1 on failure
- *
- * Defines argument type @a val_type in parser @a clp. The parsing function
- * sets @a clp->val.i to an integer. The value string is matched against
- * strings provided in the ellipsis arguments. For example, the
- * Clp_AddStringListType() call below has the same effect as the
- * Clp_AddStringListTypeVec() call:
- *
- * For example:
- * @code
- * Clp_AddStringListType(clp, 100, Clp_AllowNumbers, "cat", 1,
- * "cattle", 2, "dog", 3, (const char *) NULL);
- *
- * const char * const strs[] = { "cat", "cattle", "dog" };
- * const int vals[] = { 1, 2, 3 };
- * Clp_AddStringListTypeVec(clp, 100, Clp_AllowNumbers, 3, strs, vals);
- * @endcode
- *
- * @note The CLP library will not modify any of the passed-in strings. The
- * calling program must not modify or free them either until the parser is
- * destroyed.
- */
-int
-Clp_AddStringListType(Clp_Parser *clp, int val_type, int flags, ...)
-{
- int nitems = 0;
- int itemscap = 5;
- Clp_Option *items = (Clp_Option *)malloc(sizeof(Clp_Option) * itemscap);
-
- va_list val;
- va_start(val, flags);
-
- if (!items)
- goto error;
-
- /* slurp up the arguments */
- while (1) {
- int value;
- char *name = va_arg(val, char *);
- if (!name)
- break;
- value = va_arg(val, int);
-
- if (nitems >= itemscap) {
- Clp_Option *new_items;
- itemscap *= 2;
- new_items = (Clp_Option *)realloc(items, sizeof(Clp_Option) * itemscap);
- if (!new_items)
- goto error;
- items = new_items;
- }
-
- items[nitems].long_name = name;
- items[nitems].option_id = value;
- items[nitems].flags = 0;
- nitems++;
- }
-
- va_end(val);
- if (finish_string_list(clp, val_type, flags, items, nitems, itemscap) >= 0)
- return 0;
-
- error:
- va_end(val);
- if (items)
- free(items);
- return -1;
-}
-
-/** @param clp the parser
- * @param val_type value type ID
- * @param flags string list flags
- * @param nstrs number of strings in list
- * @param strs array of strings
- * @param vals array of values
- * @return 0 on success, -1 on failure
- *
- * Defines argument type @a val_type in parser @a clp. The parsing function
- * sets @a clp->val.i to an integer. The value string is matched against the
- * @a strs. If there's a unique match, the corresponding entry from @a vals
- * is returned. Unique prefix matches also work. Finally, if @a flags
- * contains the Clp_AllowNumbers flag, then integers are also accepted.
- *
- * For example:
- * @code
- * const char * const strs[] = { "cat", "cattle", "dog" };
- * const int vals[] = { 1, 2, 3 };
- * Clp_AddStringListTypeVec(clp, 100, Clp_AllowNumbers, 3, strs, vals);
- * @endcode
- *
- * Say that option <tt>--animal</tt> takes value type 100. Then:
- *
- * <ul>
- * <li><tt>--animal=cat</tt> will succeed and set @a clp->val.i = 1.</li>
- * <li><tt>--animal=cattle</tt> will succeed and set @a clp->val.i = 2.</li>
- * <li><tt>--animal=dog</tt> will succeed and set @a clp->val.i = 3.</li>
- * <li><tt>--animal=d</tt> will succeed and set @a clp->val.i = 3.</li>
- * <li><tt>--animal=c</tt> will fail, since <tt>c</tt> is ambiguous.</li>
- * <li><tt>--animal=4</tt> will succeed and set @a clp->val.i = 4.</li>
- * </ul>
- *
- * @note The CLP library will not modify the contents of @a strs or @a vals.
- * The calling program can modify the @a strs array, but the actual strings
- * (for instance, @a strs[0] and @a strs[1]) must not be modified or freed
- * until the parser is destroyed.
- */
-int
-Clp_AddStringListTypeVec(Clp_Parser *clp, int val_type, int flags,
- int nstrs, const char * const *strs,
- const int *vals)
- /* An alternate way to make a string list type. See Clp_AddStringListType
- for the basics; this coalesces the strings and values into two arrays,
- rather than spreading them out into a variable argument list. */
-{
- int i;
- int itemscap = (nstrs < 5 ? 5 : nstrs);
- Clp_Option *items = (Clp_Option *)malloc(sizeof(Clp_Option) * itemscap);
- if (!items)
- return -1;
-
- /* copy over items */
- for (i = 0; i < nstrs; i++) {
- items[i].long_name = strs[i];
- items[i].option_id = vals[i];
- items[i].flags = 0;
- }
-
- if (finish_string_list(clp, val_type, flags, items, nstrs, itemscap) >= 0)
- return 0;
- else {
- free(items);
- return -1;
- }
-}
-
-
-/*******
- * Returning information
- **/
-
-const char *
-Clp_ProgramName(Clp_Parser *clp)
-{
- return clp->internal->program_name;
-}
-
-/** @param clp the parser
- * @param name new program name
- * @return previous program name
- *
- * The calling program should not modify or free @a name until @a clp itself
- * is destroyed. */
-const char *
-Clp_SetProgramName(Clp_Parser *clp, const char *name)
-{
- const char *old = clp->internal->program_name;
- clp->internal->program_name = name;
- return old;
-}
-
-
-/******
- * Clp_ParserStates
- **/
-
-/** @return the parser state
- *
- * A Clp_ParserState object can store a parsing state of a Clp_Parser object.
- * This state specifies exactly how far the Clp_Parser has gotten in parsing
- * an argument list. The Clp_SaveParser() and Clp_RestoreParser() functions
- * can be used to save this state and then restore it later, allowing a
- * Clp_Parser to switch among argument lists.
- *
- * The initial state is empty, in that after Clp_RestoreParser(clp, state),
- * Clp_Next(clp) would return Clp_Done.
- *
- * Parser states can be saved and restored among different parser objects.
- *
- * @sa Clp_DeleteParserState, Clp_SaveParser, Clp_RestoreParser
- */
-Clp_ParserState *
-Clp_NewParserState(void)
-{
- Clp_ParserState *state = (Clp_ParserState *)malloc(sizeof(Clp_ParserState));
- if (state) {
- state->argv = 0;
- state->argc = 0;
- state->option_chars[0] = 0;
- state->xtext = 0;
- state->option_processing = 0;
- state->opt_generation = 0;
- state->current_option = -1;
- state->is_short = 0;
- state->whole_negated = 0;
- state->current_short = 0;
- state->negated_by_no = 0;
- }
- return state;
-}
-
-/** @param state parser state
- *
- * The memory associated with @a state is freed.
- */
-void
-Clp_DeleteParserState(Clp_ParserState *state)
-{
- free(state);
-}
-
-/** @param clp the parser
- * @param state parser state
- * @sa Clp_NewParserState, Clp_RestoreParser
- */
-void
-Clp_SaveParser(const Clp_Parser *clp, Clp_ParserState *state)
-{
- Clp_Internal *cli = clp->internal;
- state->argv = cli->argv;
- state->argc = cli->argc;
- memcpy(state->option_chars, cli->option_chars, Clp_OptionCharsSize);
- state->xtext = cli->xtext;
-
- state->option_processing = cli->option_processing;
- state->opt_generation = cli->opt_generation;
- state->current_option = cli->current_option;
- state->is_short = cli->is_short;
- state->whole_negated = cli->whole_negated;
- state->current_short = cli->current_short;
- state->negated_by_no = cli->negated_by_no;
-}
-
-
-/** @param clp the parser
- * @param state parser state
- *
- * The parser state in @a state is restored into @a clp. The next call to
- * Clp_Next() will return the same result as it would have at the time @a
- * state was saved (probably by Clp_SaveParser(@a clp, @a state)).
- *
- * A parser state contains information about arguments (argc and argv; see
- * Clp_SetArguments()) and option processing (Clp_SetOptionProcessing()), but
- * not about options (Clp_SetOptions()). Changes to options and value types
- * are preserved across Clp_RestoreParser().
- *
- * @sa Clp_NewParserState, Clp_SaveParser
- */
-void
-Clp_RestoreParser(Clp_Parser *clp, const Clp_ParserState *state)
-{
- Clp_Internal *cli = clp->internal;
- cli->argv = state->argv;
- cli->argc = state->argc;
- memcpy(cli->option_chars, state->option_chars, Clp_OptionCharsSize);
- cli->xtext = state->xtext;
- cli->option_processing = state->option_processing;
- cli->is_short = state->is_short;
- cli->whole_negated = state->whole_negated;
- cli->current_short = state->current_short;
- cli->negated_by_no = state->negated_by_no;
- if (cli->opt_generation == state->opt_generation)
- cli->current_option = state->current_option;
- else
- cli->current_option = -1;
-}
-
-
-/*******
- * Clp_Next and its helpers
- **/
-
-static void
-set_option_text(Clp_Internal *cli, const char *text, int n_option_chars)
-{
- assert(n_option_chars < Clp_OptionCharsSize);
- memcpy(cli->option_chars, text, n_option_chars);
- cli->option_chars[n_option_chars] = 0;
- cli->xtext = text + n_option_chars;
-}
-
-static int
-get_oclass(Clp_Parser *clp, const char *text, int *ocharskip)
-{
- int c;
- if (clp->internal->utf8) {
- const char *s;
- c = decode_utf8(text, &s);
- *ocharskip = s - text;
- } else {
- c = (unsigned char) text[0];
- *ocharskip = 1;
- }
- return Clp_OptionChar(clp, c);
-}
-
-static int
-next_argument(Clp_Parser *clp, int want_argument)
- /* Moves clp to the next argument.
- Returns 1 if it finds another option.
- Returns 0 if there aren't any more arguments.
- Returns 0, sets clp->have_val = 1, and sets clp->vstr to the argument
- if the next argument isn't an option.
- If want_argument > 0, it'll look for an argument.
- want_argument == 1: Accept arguments that start with Clp_NotOption
- or Clp_LongImplicit.
- want_argument == 2: Accept ALL arguments.
-
- Where is the option stored when this returns?
- Well, cli->argv[0] holds the whole of the next command line argument.
- cli->option_chars holds a string: what characters began the option?
- It is generally "-" or "--".
- cli->text holds the text of the option:
- for short options, cli->text[0] is the relevant character;
- for long options, cli->text holds the rest of the option. */
-{
- Clp_Internal *cli = clp->internal;
- const char *text;
- int oclass, ocharskip;
-
- /* clear relevant flags */
- clp->have_val = 0;
- clp->vstr = 0;
- cli->could_be_short = 0;
-
- /* if we're in a string of short options, move up one char in the string */
- if (cli->is_short) {
- cli->xtext += clp_utf8_charlen(cli, cli->xtext);
- if (cli->xtext[0] == 0)
- cli->is_short = 0;
- else if (want_argument > 0) {
- /* handle -O[=]argument case */
- clp->have_val = 1;
- if (cli->xtext[0] == '=')
- clp->vstr = cli->xtext + 1;
- else
- clp->vstr = cli->xtext;
- cli->is_short = 0;
- return 0;
- }
- }
-
- /* if in short options, we're all set */
- if (cli->is_short)
- return 1;
-
- /** if not in short options, move to the next argument **/
- cli->whole_negated = 0;
- cli->xtext = 0;
-
- if (cli->argc <= 1)
- return 0;
-
- cli->argc--;
- cli->argv++;
- text = cli->argv[0];
-
- if (want_argument > 1)
- goto not_option;
-
- if (text[0] == '-' && text[1] == '-') {
- oclass = Clp_DoubledLong;
- ocharskip = 2;
- } else
- oclass = get_oclass(clp, text, &ocharskip);
-
- /* If this character could introduce either a short or a long option,
- try a long option first, but remember that short's a possibility for
- later. */
- if ((oclass & (Clp_Short | Clp_ShortNegated))
- && (oclass & (Clp_Long | Clp_LongNegated))) {
- oclass &= ~(Clp_Short | Clp_ShortNegated);
- if (text[ocharskip])
- cli->could_be_short = 1;
- }
-
- switch (oclass) {
-
- case Clp_Short:
- cli->is_short = 1;
- goto check_singleton;
-
- case Clp_ShortNegated:
- cli->is_short = 1;
- cli->whole_negated = 1;
- goto check_singleton;
-
- case Clp_Long:
- goto check_singleton;
-
- case Clp_LongNegated:
- cli->whole_negated = 1;
- goto check_singleton;
-
- check_singleton:
- /* For options introduced with one character, option-char,
- '[option-char]' alone is NOT an option. */
- if (!text[ocharskip])
- goto not_option;
- set_option_text(cli, text, ocharskip);
- break;
-
- case Clp_LongImplicit:
- /* LongImplict: option_chars == "" (since all chars are part of the
- option); restore head -> text of option */
- if (want_argument > 0)
- goto not_option;
- set_option_text(cli, text, 0);
- break;
-
- case Clp_DoubledLong:
- set_option_text(cli, text, ocharskip);
- break;
-
- not_option:
- case Clp_NotOption:
- cli->is_short = 0;
- clp->have_val = 1;
- clp->vstr = text;
- return 0;
-
- default:
- assert(0 /* CLP misconfiguration: bad option type */);
-
- }
-
- return 1;
-}
-
-
-static void
-switch_to_short_argument(Clp_Parser *clp)
-{
- Clp_Internal *cli = clp->internal;
- const char *text = cli->argv[0];
- int ocharskip, oclass = get_oclass(clp, text, &ocharskip);
- assert(cli->could_be_short);
- cli->is_short = 1;
- cli->whole_negated = (oclass & Clp_ShortNegated ? 1 : 0);
- set_option_text(cli, cli->argv[0], ocharskip);
-}
-
-
-static int
-find_long(Clp_Parser *clp, const char *arg)
- /* If arg corresponds to one of clp's options, finds that option &
- returns it. If any argument is given after an = sign in arg, sets
- clp->have_val = 1 and clp->vstr to that argument. Sets cli->ambiguous
- to 1 iff there was no match because the argument was ambiguous. */
-{
- Clp_Internal *cli = clp->internal;
- int optno, len, lmm;
- const Clp_Option *opt = cli->opt;
- const Clp_InternOption *iopt;
- int first_negative_ambiguous;
-
- /* Look for a normal option. */
- optno = find_prefix_opt
- (clp, arg, cli->nopt, opt, cli->iopt,
- &cli->ambiguous, cli->ambiguous_values);
- if (optno >= 0)
- goto worked;
-
- /* If we can't find it, look for a negated option. */
- /* I know this is silly, but it makes me happy to accept
- --no-no-option as a double negative synonym for --option. :) */
- first_negative_ambiguous = cli->ambiguous;
- while (arg[0] == 'n' && arg[1] == 'o' && arg[2] == '-') {
- arg += 3;
- clp->negated = !clp->negated;
- optno = find_prefix_opt
- (clp, arg, cli->nopt, opt, cli->iopt,
- &cli->ambiguous, cli->ambiguous_values);
- if (optno >= 0)
- goto worked;
- }
-
- /* No valid option was found; return 0. Mark the ambiguous values found
- through '--no' by making them negative. */
- {
- int i, max = cli->ambiguous;
- if (max > MAX_AMBIGUOUS_VALUES) max = MAX_AMBIGUOUS_VALUES;
- for (i = first_negative_ambiguous; i < max; i++)
- cli->ambiguous_values[i] = -cli->ambiguous_values[i] - 1;
- }
- return -1;
-
- worked:
- iopt = &cli->iopt[optno];
- lmm = (clp->negated ? iopt->lmmneg : iopt->lmmpos);
- if (cli->could_be_short
- && (clp->negated ? iopt->lmmneg_short : iopt->lmmpos_short)) {
- int first_charlen = clp_utf8_charlen(cli, arg);
- lmm = (first_charlen >= lmm ? first_charlen + 1 : lmm);
- }
- len = argcmp(opt[optno].long_name + iopt->ilongoff, arg, lmm, 1);
- assert(len > 0);
- if (arg[len] == '=') {
- clp->have_val = 1;
- clp->vstr = arg + len + 1;
- }
- return optno;
-}
-
-
-static int
-find_short(Clp_Parser *clp, const char *text)
- /* If short_name corresponds to one of clp's options, returns it. */
-{
- Clp_Internal *cli = clp->internal;
- const Clp_Option *opt = cli->opt;
- const Clp_InternOption *iopt = cli->iopt;
- int i, c;
- if (clp->internal->utf8)
- c = decode_utf8(text, 0);
- else
- c = (unsigned char) *text;
-
- for (i = 0; i < cli->nopt; i++)
- if (iopt[i].ishort && opt[i].short_name == c
- && (!clp->negated || iopt[i].ineg)) {
- clp->negated = clp->negated || !iopt[i].ipos;
- return i;
- }
-
- return -1;
-}
-
-
-/** @param clp the parser
- * @return option ID of next option
- *
- * Parse the next argument from the argument list, store information about
- * that argument in the fields of @a clp, and return the option's ID.
- *
- * If an argument was successfully parsed, that option's ID is returned.
- * Other possible return values are:
- *
- * <dl>
- * <dt>Clp_Done</dt>
- * <dd>There are no more arguments.</dd>
- * <dt>Clp_NotOption</dt>
- * <dd>The next argument was not an option. The argument's text is @a
- * clp->vstr (and @a clp->val.s).</dd>
- * <dt>Clp_BadOption</dt>
- * <dd>The next argument was a bad option: either an option that wasn't
- * understood, or an option lacking a required value, or an option whose value
- * couldn't be parsed. The option has been skipped.</dd>
- * <dt>Clp_Error</dt>
- * <dd>There was an internal error. This should never occur unless a user
- * messes with, for example, a Clp_Option array.</dd>
- * </dl>
- *
- * The fields of @a clp are set as follows.
- *
- * <dl>
- * <dt><tt>negated</tt></dt>
- * <dd>1 if the option was negated, 0 if it wasn't.</dd>
- * <dt><tt>have_val</tt></dt>
- * <dd>1 if the option had a value, 0 if it didn't. Note that negated options
- * are not allowed to have values.</dd>
- * <dt><tt>vstr</tt></dt>
- * <dd>The value string, if any. NULL if there was no value.</dd>
- * <dt><tt>val</tt></dt>
- * <dd>An option's value type will parse the value string into this
- * union.</dd>
- * </dl>
- *
- * The parsed argument is shifted off the argument list, so that sequential
- * calls to Clp_Next() step through the arugment list.
- */
-int
-Clp_Next(Clp_Parser *clp)
-{
- Clp_Internal *cli = clp->internal;
- int optno;
- const Clp_Option *opt;
- Clp_ParserState clpsave;
- int vtpos, complain;
-
- /* Set up clp */
- cli->current_option = -1;
- cli->ambiguous = 0;
-
- /* Get the next argument or option */
- if (!next_argument(clp, cli->option_processing ? 0 : 2)) {
- clp->val.s = clp->vstr;
- optno = clp->have_val ? Clp_NotOption : Clp_Done;
- clp->option = &clp_option_sentinel[-optno];
- return optno;
- }
-
- clp->negated = cli->whole_negated;
- if (cli->is_short)
- optno = find_short(clp, cli->xtext);
- else
- optno = find_long(clp, cli->xtext);
-
- /* If there's ambiguity between long & short options, and we couldn't
- find a long option, look for a short option */
- if (optno < 0 && cli->could_be_short) {
- switch_to_short_argument(clp);
- optno = find_short(clp, cli->xtext);
- }
-
- /* If we didn't find an option... */
- if (optno < 0 || (clp->negated && !cli->iopt[optno].ineg)) {
- /* default processing for the "--" option: turn off option processing
- and return the next argument */
- if (strcmp(cli->argv[0], "--") == 0) {
- Clp_SetOptionProcessing(clp, 0);
- return Clp_Next(clp);
- }
-
- /* otherwise, report some error or other */
- if (cli->ambiguous)
- ambiguity_error(clp, cli->ambiguous, cli->ambiguous_values,
- cli->opt, cli->iopt, cli->option_chars,
- "option %<%s%s%> is ambiguous",
- cli->option_chars, cli->xtext);
- else if (cli->is_short && !cli->could_be_short)
- Clp_OptionError(clp, "unrecognized option %<%s%C%>",
- cli->option_chars, cli->xtext);
- else
- Clp_OptionError(clp, "unrecognized option %<%s%s%>",
- cli->option_chars, cli->xtext);
-
- clp->option = &clp_option_sentinel[-Clp_BadOption];
- return Clp_BadOption;
- }
-
- /* Set the current option */
- cli->current_option = optno;
- cli->current_short = cli->is_short;
- cli->negated_by_no = clp->negated && !cli->whole_negated;
-
- /* The no-argument (or should-have-no-argument) case */
- if (clp->negated
- || (!cli->iopt[optno].imandatory && !cli->iopt[optno].ioptional)) {
- if (clp->have_val) {
- Clp_OptionError(clp, "%<%O%> can%,t take an argument");
- clp->option = &clp_option_sentinel[-Clp_BadOption];
- return Clp_BadOption;
- } else {
- clp->option = &cli->opt[optno];
- return cli->opt[optno].option_id;
- }
- }
-
- /* Get an argument if we need one, or if it's optional */
- /* Sanity-check the argument type. */
- opt = &cli->opt[optno];
- if (opt->val_type <= 0) {
- clp->option = &clp_option_sentinel[-Clp_Error];
- return Clp_Error;
- }
- vtpos = val_type_binsearch(cli, opt->val_type);
- if (vtpos == cli->nvaltype
- || cli->valtype[vtpos].val_type != opt->val_type) {
- clp->option = &clp_option_sentinel[-Clp_Error];
- return Clp_Error;
- }
-
- /* complain == 1 only if the argument was explicitly given,
- or it is mandatory. */
- complain = (clp->have_val != 0) || cli->iopt[optno].imandatory;
- Clp_SaveParser(clp, &clpsave);
-
- if (cli->iopt[optno].imandatory && !clp->have_val) {
- /* Mandatory argument case */
- /* Allow arguments to options to start with a dash, but only if the
- argument type allows it by not setting Clp_DisallowOptions */
- int disallow = (cli->valtype[vtpos].flags & Clp_DisallowOptions) != 0;
- next_argument(clp, disallow ? 1 : 2);
- if (!clp->have_val) {
- int got_option = cli->xtext != 0;
- Clp_RestoreParser(clp, &clpsave);
- if (got_option)
- Clp_OptionError(clp, "%<%O%> requires a non-option argument");
- else
- Clp_OptionError(clp, "%<%O%> requires an argument");
- clp->option = &clp_option_sentinel[-Clp_BadOption];
- return Clp_BadOption;
- }
-
- } else if (cli->is_short && !clp->have_val
- && cli->xtext[clp_utf8_charlen(cli, cli->xtext)])
- /* The -[option]argument case:
- Assume that the rest of the current string is the argument. */
- next_argument(clp, 1);
-
- /* Parse the argument */
- if (clp->have_val) {
- Clp_ValType *atr = &cli->valtype[vtpos];
- if (atr->func(clp, clp->vstr, complain, atr->user_data) <= 0) {
- /* parser failed */
- clp->have_val = 0;
- if (cli->iopt[optno].imandatory) {
- clp->option = &clp_option_sentinel[-Clp_BadOption];
- return Clp_BadOption;
- } else
- Clp_RestoreParser(clp, &clpsave);
- }
- }
-
- clp->option = opt;
- return opt->option_id;
-}
-
-
-/** @param clp the parser
- * @param allow_options whether options will be allowed
- *
- * Remove and return the next argument from @a clp's argument array. If there
- * are no arguments left, or if the next argument is an option and @a
- * allow_options != 0, then returns null.
- */
-const char *
-Clp_Shift(Clp_Parser *clp, int allow_options)
- /* Returns the next argument from the argument list without parsing it.
- If there are no more arguments, returns 0. */
-{
- Clp_ParserState clpsave;
- Clp_SaveParser(clp, &clpsave);
- next_argument(clp, allow_options ? 2 : 1);
- if (!clp->have_val)
- Clp_RestoreParser(clp, &clpsave);
- return clp->vstr;
-}
-
-
-/*******
- * Clp_OptionError
- **/
-
-typedef struct Clp_BuildString {
- char *text;
- char *pos;
- int capacity;
- int bad;
-} Clp_BuildString;
-
-static Clp_BuildString *
-new_build_string(void)
-{
- Clp_BuildString *bs = (Clp_BuildString *)malloc(sizeof(Clp_BuildString));
- if (!bs) goto bad;
- bs->text = (char *)malloc(256);
- if (!bs->text) goto bad;
- bs->pos = bs->text;
- bs->capacity = 256;
- bs->bad = 0;
- return bs;
-
- bad:
- if (bs) free(bs);
- return 0;
-}
-
-static void
-free_build_string(Clp_BuildString *bs)
-{
- if (bs) free(bs->text);
- free(bs);
-}
-
-static int
-grow_build_string(Clp_BuildString *bs, int want)
-{
- char *new_text;
- int ipos = bs->pos - bs->text;
- int new_capacity = bs->capacity;
- while (want >= new_capacity)
- new_capacity *= 2;
- new_text = (char *)realloc(bs->text, new_capacity);
- if (!new_text) {
- bs->bad = 1;
- return 0;
- } else {
- bs->text = new_text;
- bs->pos = bs->text + ipos;
- bs->capacity = new_capacity;
- return 1;
- }
-}
-
-#define ENSURE_BUILD_STRING(bs, space) \
- ((((bs)->pos - (bs)->text) + (space) >= (bs)->capacity) \
- || grow_build_string((bs), ((bs)->pos - (bs)->text) + (space)))
-
-static void
-append_build_string(Clp_BuildString *bs, const char *s, int l)
-{
- if (l < 0)
- l = strlen(s);
- if (ENSURE_BUILD_STRING(bs, l)) {
- memcpy(bs->pos, s, l);
- bs->pos += l;
- }
-}
-
-
-static Clp_BuildString *
-Clp_VaOptionError(Clp_Parser *clp, Clp_BuildString *bs,
- const char *fmt, va_list val)
-{
- Clp_Internal *cli = clp->internal;
- const char *percent;
- int c;
-
- if (!bs)
- bs = new_build_string();
- if (!bs)
- return 0;
- if (cli->program_name && cli->program_name[0]) {
- append_build_string(bs, cli->program_name, -1);
- append_build_string(bs, ": ", 2);
- }
-
- for (percent = strchr(fmt, '%'); percent; percent = strchr(fmt, '%')) {
- append_build_string(bs, fmt, percent - fmt);
- switch (*++percent) {
-
- case 's': {
- const char *s = va_arg(val, const char *);
- if (s)
- append_build_string(bs, s, -1);
- else
- append_build_string(bs, "(null)", 6);
- break;
- }
-
- case 'C': {
- const char *s = va_arg(val, const char *);
- if (cli->utf8)
- c = decode_utf8(s, 0);
- else
- c = (unsigned char) *s;
- goto char_c;
- }
-
- case 'c':
- c = va_arg(val, int);
- goto char_c;
-
- char_c:
- if (ENSURE_BUILD_STRING(bs, 4)) {
- if (c >= 32 && c <= 126)
- *bs->pos++ = c;
- else if (c < 32) {
- *bs->pos++ = '^';
- *bs->pos++ = c + 64;
- } else if (cli->utf8 && c >= 127 && c < 0x110000) {
- bs->pos = encode_utf8(bs->pos, 4, c);
- } else if (c >= 127 && c <= 255) {
- sprintf(bs->pos, "\\%03o", c & 0xFF);
- bs->pos += 4;
- } else {
- *bs->pos++ = '\\';
- *bs->pos++ = '?';
- }
- }
- break;
-
- case 'd': {
- int d = va_arg(val, int);
- if (ENSURE_BUILD_STRING(bs, 32)) {
- sprintf(bs->pos, "%d", d);
- bs->pos = strchr(bs->pos, 0);
- }
- break;
- }
-
- case 'O': {
- int optno = cli->current_option;
- const Clp_Option *opt = &cli->opt[optno];
- if (optno < 0)
- append_build_string(bs, "(no current option!)", -1);
- else if (cli->current_short) {
- append_build_string(bs, cli->option_chars, -1);
- if (ENSURE_BUILD_STRING(bs, 5)) {
- if (cli->utf8)
- bs->pos = encode_utf8(bs->pos, 5, opt->short_name);
- else
- *bs->pos++ = opt->short_name;
- }
- } else if (cli->negated_by_no) {
- append_build_string(bs, cli->option_chars, -1);
- append_build_string(bs, "no-", 3);
- append_build_string(bs, opt->long_name + cli->iopt[optno].ilongoff, -1);
- } else {
- append_build_string(bs, cli->option_chars, -1);
- append_build_string(bs, opt->long_name + cli->iopt[optno].ilongoff, -1);
- }
- break;
- }
-
- case '%':
- if (ENSURE_BUILD_STRING(bs, 1))
- *bs->pos++ = '%';
- break;
-
- case '`': /* backwards compatibility */
- case '<':
- append_build_string(bs, (cli->utf8 ? "\342\200\230" : "'"), -1);
- break;
-
- case '\'': /* backwards compatibility */
- case ',':
- case '>':
- append_build_string(bs, (cli->utf8 ? "\342\200\231" : "'"), -1);
- break;
-
- default:
- if (ENSURE_BUILD_STRING(bs, 2)) {
- *bs->pos++ = '%';
- *bs->pos++ = *percent;
- }
- break;
-
- }
- fmt = ++percent;
- }
-
- append_build_string(bs, fmt, -1);
- append_build_string(bs, "\n", 1);
-
- return bs;
-}
-
-static void
-do_error(Clp_Parser *clp, Clp_BuildString *bs)
-{
- const char *text;
- if (bs && !bs->bad) {
- *bs->pos = 0;
- text = bs->text;
- } else
- text = "out of memory\n";
-
- if (clp->internal->error_handler != 0)
- (*clp->internal->error_handler)(clp, text);
- else
- fputs(text, stderr);
-}
-
-/** @param clp the parser
- * @param format error format
- *
- * Format an error message from @a format and any additional arguments in the
- * ellipsis. The resulting error string by printing it to standard error or
- * passing it to Clp_SetErrorHandler.
- *
- * The following format characters are accepted:
- *
- * <dl>
- * <dt><tt>%</tt><tt>c</tt></dt>
- * <dd>A character (type <tt>int</tt>). Control characters are printed in
- * caret notation. If the parser is in UTF-8 mode, the character is formatted
- * in UTF-8. Otherwise, special characters are printed with backslashes and
- * octal notation.</dd>
- * <dt><tt>%</tt><tt>s</tt></dt>
- * <dd>A string (type <tt>const char *</tt>).</dd>
- * <dt><tt>%</tt><tt>C</tt></dt>
- * <dd>The argument is a string (type <tt>const char *</tt>). The first
- * character in this string is printed. If the parser is in UTF-8 mode, this
- * may involve multiple bytes.</dd>
- * <dt><tt>%</tt><tt>d</tt></dt>
- * <dd>An integer (type <tt>int</tt>). Printed in decimal.</dd>
- * <dt><tt>%</tt><tt>O</tt></dt>
- * <dd>The current option. No values are read from the argument list; the
- * current option is defined in the Clp_Parser object itself.</dd>
- * <dt><tt>%%</tt></dt>
- * <dd>Prints a percent character.</dd>
- * <dt><tt>%</tt><tt>&lt;</tt></dt>
- * <dd>Prints an open quote string. In UTF-8 mode, prints a left single
- * quote. Otherwise prints a single quote.</dd>
- * <dt><tt>%</tt><tt>&gt;</tt></dt>
- * <dd>Prints a closing quote string. In UTF-8 mode, prints a right single
- * quote. Otherwise prints a single quote.</dd>
- * <dt><tt>%</tt><tt>,</tt></dt>
- * <dd>Prints an apostrophe. In UTF-8 mode, prints a right single quote.
- * Otherwise prints a single quote.</dd>
- * </dl>
- *
- * Note that no flag characters, precision, or field width characters are
- * currently supported.
- *
- * @sa Clp_SetErrorHandler
- */
-int
-Clp_OptionError(Clp_Parser *clp, const char *format, ...)
-{
- Clp_BuildString *bs;
- va_list val;
- va_start(val, format);
- bs = Clp_VaOptionError(clp, 0, format, val);
- va_end(val);
- do_error(clp, bs);
- free_build_string(bs);
- return 0;
-}
-
-static int
-ambiguity_error(Clp_Parser *clp, int ambiguous, int *ambiguous_values,
- const Clp_Option *opt, const Clp_InternOption *iopt,
- const char *prefix, const char *fmt, ...)
-{
- Clp_Internal *cli = clp->internal;
- Clp_BuildString *bs;
- int i;
- va_list val;
- va_start(val, fmt);
- bs = Clp_VaOptionError(clp, 0, fmt, val);
- if (!bs) goto done;
-
- if (clp->internal->program_name && clp->internal->program_name[0]) {
- append_build_string(bs, clp->internal->program_name, -1);
- append_build_string(bs, ": ", 2);
- }
- append_build_string(bs, "(Possibilities are", -1);
-
- for (i = 0; i < ambiguous && i < MAX_AMBIGUOUS_VALUES; i++) {
- int value = ambiguous_values[i];
- const char *no_dash = "";
- if (value < 0)
- value = -(value + 1), no_dash = "no-";
- if (i == 0)
- append_build_string(bs, " ", 1);
- else if (i == ambiguous - 1)
- append_build_string(bs, (i == 1 ? " and " : ", and "), -1);
- else
- append_build_string(bs, ", ", 2);
- append_build_string(bs, (cli->utf8 ? "\342\200\230" : "'"), -1);
- append_build_string(bs, prefix, -1);
- append_build_string(bs, no_dash, -1);
- append_build_string(bs, opt[value].long_name + iopt[value].ilongoff, -1);
- append_build_string(bs, (cli->utf8 ? "\342\200\231" : "'"), -1);
- }
-
- if (ambiguous > MAX_AMBIGUOUS_VALUES)
- append_build_string(bs, ", and others", -1);
- append_build_string(bs, ".)\n", -1);
- va_end(val);
-
- done:
- do_error(clp, bs);
- free_build_string(bs);
- return 0;
-}
-
-static int
-copy_string(char *buf, int buflen, int bufpos, const char *what)
-{
- int l = strlen(what);
- if (l > buflen - bufpos - 1)
- l = buflen - bufpos - 1;
- memcpy(buf + bufpos, what, l);
- return l;
-}
-
-/** @param clp the parser
- * @param buf output buffer
- * @param len length of output buffer
- * @return number of characters written to the buffer, not including the terminating NUL
- *
- * A string that looks like the last option parsed by @a clp is extracted into
- * @a buf. The correct option characters are put into the string first,
- * followed by the option text. The output buffer is null-terminated unless
- * @a len == 0.
- *
- * @sa Clp_CurOptionName
- */
-int
-Clp_CurOptionNameBuf(Clp_Parser *clp, char *buf, int len)
-{
- Clp_Internal *cli = clp->internal;
- int optno = cli->current_option;
- int pos = 0;
- if (optno < 0)
- pos += copy_string(buf, len, pos, "(no current option!)");
- else if (cli->current_short) {
- pos += copy_string(buf, len, pos, cli->option_chars);
- if (cli->utf8)
- pos = (encode_utf8(buf + pos, len - pos - 1, cli->opt[optno].short_name) - buf);
- else if (pos < len - 1)
- buf[pos++] = cli->opt[optno].short_name;
- } else if (cli->negated_by_no) {
- pos += copy_string(buf, len, pos, cli->option_chars);
- pos += copy_string(buf, len, pos, "no-");
- pos += copy_string(buf, len, pos, cli->opt[optno].long_name + cli->iopt[optno].ilongoff);
- } else {
- pos += copy_string(buf, len, pos, cli->option_chars);
- pos += copy_string(buf, len, pos, cli->opt[optno].long_name + cli->iopt[optno].ilongoff);
- }
- if (pos < len)
- buf[pos] = 0;
- return pos;
-}
-
-/** @param clp the parser
- * @return string describing the current option
- *
- * This function acts like Clp_CurOptionNameBuf(), but returns a pointer into
- * a static buffer that will be rewritten on the next call to
- * Clp_CurOptionName().
- *
- * @note This function is not thread safe.
- *
- * @sa Clp_CurOptionName
- */
-const char *
-Clp_CurOptionName(Clp_Parser *clp)
-{
- static char buf[256];
- Clp_CurOptionNameBuf(clp, buf, 256);
- return buf;
-}
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
deleted file mode 100644
index 2c41f3f2e79..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/error.cc
+++ /dev/null
@@ -1,1185 +0,0 @@
-// -*- related-file-name: "../include/lcdf/error.hh" -*-
-/*
- * error.{cc,hh} -- flexible classes for error reporting
- * Eddie Kohler
- *
- * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2019 Eddie Kohler
- * Copyright (c) 2008 Meraki, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file. These conditions include: you must
- * preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <lcdf/hashmap.hh>
-#include <errno.h>
-#include <ctype.h>
-#include <algorithm>
-#ifndef __KERNEL__
-# include <stdlib.h>
-# if HAVE_UNISTD_H
-# include <unistd.h>
-# endif
-#endif
-
-/** @file error.hh
- * @brief Flexible error handling classes.
- */
-
-struct ErrorHandler::Conversion {
- String name;
- ConversionFunction hook;
- Conversion *next;
-};
-static ErrorHandler::Conversion *error_items;
-
-const char ErrorHandler::e_abort[] = "<-999>";
-const char ErrorHandler::e_fatal[] = "<-1>";
-const char ErrorHandler::e_emergency[] = "<0>";
-const char ErrorHandler::e_alert[] = "<1>";
-const char ErrorHandler::e_critical[] = "<2>";
-const char ErrorHandler::e_error[] = "<3>";
-const char ErrorHandler::e_warning[] = "<4>";
-const char ErrorHandler::e_warning_annotated[] = "<4>warning: ";
-const char ErrorHandler::e_notice[] = "<5>";
-const char ErrorHandler::e_info[] = "<6>";
-const char ErrorHandler::e_debug[] = "<7>";
-
-const int ErrorHandler::ok_result = 0;
-const int ErrorHandler::error_result = -EINVAL;
-
-ErrorHandler *ErrorHandler::the_default_handler = 0;
-ErrorHandler *ErrorHandler::the_silent_handler = 0;
-
-
-// ANNOTATION MANAGEMENT
-
-static const char *
-parse_level(const char *begin, const char *end, int *result)
-{
- int x = 0;
- const char *s = begin;
-
- bool negative = false;
- if (s != end && *s == '-') {
- negative = true;
- ++s;
- } else if (s != end && *s == '+')
- ++s;
-
- const char *digits = s;
- for (; s != end && *s >= '0' && *s <= '9'; ++s)
- x = x * 10 + *s - '0';
-
- if (s != end && *s == '.')
- for (++s; s != end && *s >= '0' && *s <= '9'; ++s)
- /* nada */;
-
- if (s == digits || (s == digits + 1 && s[-1] == '.'))
- return begin;
- if (result)
- *result = (negative ? -x : x);
- return s;
-}
-
-String
-ErrorHandler::make_anno(const char *name, const String &value)
-{
- StringAccum sa;
- sa.reserve(value.length() + 10);
-
- // level annotation requires special handling
- if (name[0] == '<' && name[1] == '>' && name[2] == 0) {
- if (parse_level(value.begin(), value.end(), 0) == value.end()) {
- sa << '<' << value << '>';
- return sa.take_string();
- } else
- return String();
- }
-
- sa << '{' << name << ':';
- const char *last = value.begin(), *end = value.end();
- for (const char *s = value.begin(); s != end; ++s)
- if (*s == '\\' || *s == '}') {
- sa.append(last, s);
- sa << '\\' << *s;
- last = s + 1;
- } else if (*s == '\n') {
- sa.append(last, s);
- sa << '\\' << 'n';
- last = s + 1;
- }
- sa.append(last, end);
- sa << '}';
- return sa.take_string();
-}
-
-const char *
-ErrorHandler::skip_anno(const String &str, const char *begin, const char *end,
- String *name_result, String *value_result, bool raw)
-{
- String name, value;
- const char *s = begin;
-
- if (s + 3 <= end && *s == '<') {
- const char *x = parse_level(s + 1, end, 0);
- if (x != s + 1 && x != end && *x == '>') {
- name = String::make_stable("<>", 2);
- if (str)
- value = str.substring(begin + 1, x);
- begin = x + 1;
- }
-
- } else if (s + 2 <= end && *s == '{' && s[1] == '}')
- begin = s + 2;
-
- else if (s + 3 <= end && *s == '{' && str) {
- for (++s; s != end && isalnum((unsigned char) *s); ++s)
- /* nada */;
- if (s == end || s == begin + 1 || (*s != '}' && *s != ':'))
- /* not an annotation */;
- else if (*s == '}' && str) {
- name = str.substring(begin + 1, s);
- begin = s + 1;
- } else if (*s == '}') {
- name = String::make_stable("{}", 2);
- begin = s + 1;
- } else if (str) {
- const char *x, *last = s + 1;
- StringAccum sa;
- for (x = s + 1; x != end && *x != '\n' && *x != '}'; ++x)
- if (*x == '\\' && x + 1 != end && x[1] != '\n') {
- if (!raw) {
- sa.append(last, x);
- sa << (x[1] == 'n' ? '\n' : x[1]);
- last = x + 2;
- }
- ++x;
- }
- if (x != end && *x == '}') {
- name = str.substring(begin + 1, s);
- if (sa) {
- sa.append(last, x);
- value = sa.take_string();
- } else
- value = str.substring(s + 1, x);
- begin = x + 1;
- }
- } else {
- const char *x;
- for (x = s + 1; x != end && *x != '\n' && *x != '}'; ++x)
- if (*x == '\\' && x + 1 != end && x[1] != '\n')
- ++x;
- if (x != end && *x == '}') {
- name = String::make_stable("{}", 2);
- begin = x + 1;
- }
- }
- }
-
- if (name_result)
- *name_result = name;
- if (value_result)
- *value_result = value;
- return begin;
-}
-
-const char *
-ErrorHandler::parse_anno(const String &str, const char *begin, const char *end,
- ...)
-{
- const char *names[8];
- void *values[8];
- int nanno = 0;
-
- va_list val;
- va_start(val, end);
- while (const char *n = va_arg(val, const char *)) {
- assert(nanno < 8);
- names[nanno] = n;
- if (n[0] == '#')
- values[nanno] = va_arg(val, int *);
- else
- values[nanno] = va_arg(val, String *);
- ++nanno;
- }
-
- String name, value;
- while (1) {
- begin = skip_anno(str, begin, end, &name, &value, false);
- if (!name)
- break;
- for (int i = 0; i < nanno; ++i)
- if (names[i][0] == '#') {
- if (name == (names[i] + 1))
- parse_level(value.begin(), value.end(), (int *) values[i]);
- } else {
- if (name == names[i])
- *(String *) values[i] = value;
- }
- }
-
- return begin;
-}
-
-String
-ErrorHandler::combine_anno(const String &text, const String &anno)
-{
- if (!anno)
- return text;
-
- String names[8], values[8];
- int nanno = 0;
- const char *abegin = anno.begin();
- while (abegin != anno.end()) {
- assert(nanno < 8);
- abegin = skip_anno(anno, abegin, anno.end(), &names[nanno], &values[nanno], true);
- if (names[nanno])
- ++nanno;
- else
- break;
- }
-
- const char *last = text.begin(), *s = last;
- String name;
- StringAccum sa;
- while (s != text.end()) {
- const char *line = s;
- uint32_t mask = (1U << nanno) - 1;
- while (1) {
- s = skip_anno(text, s, text.end(), &name, 0, false);
- if (!name)
- break;
- for (int i = 0; i < nanno; ++i)
- if (name == names[i])
- mask &= ~(1U << i);
- }
-
- if (mask) {
- sa.append(last, line);
- for (int i = 0; i < nanno; ++i)
- if (mask & (1U << i)) {
- if (names[i].equals("<>", 2))
- sa << '<' << values[i] << '>';
- else
- sa << '{' << names[i] << ':' << values[i] << '}';
- }
- last = line;
- }
- if (abegin != anno.end()) {
- sa.append(last, s);
- sa.append(abegin, anno.end());
- last = s;
- }
-
- while (s != text.end() && *s != '\n')
- ++s;
- if (s != text.end())
- ++s;
- }
-
- if (sa) {
- sa.append(last, text.end());
- return sa.take_string();
- } else
- return text;
-}
-
-String
-ErrorHandler::clean_landmark(const String &landmark, bool with_colon)
-{
- const char *end = landmark.end();
- while (end != landmark.begin() && isspace((unsigned char) end[-1]))
- --end;
- if (end != landmark.begin() && end[-1] == ':')
- --end;
- if (end == landmark.begin())
- return String();
- else if (with_colon)
- return landmark.substring(landmark.begin(), end) + ": ";
- else
- return landmark.substring(landmark.begin(), end);
-}
-
-
-// FORMATTING
-
-#define NUMBUF_SIZE 128
-#define ErrH ErrorHandler
-
-#if SIZEOF_UNSIGNED_LONG >= SIZEOF_VOID_P
-typedef unsigned long do_number_t;
-#else
-typedef uintptr_t do_number_t;
-#endif
-
-static char*
-do_number(do_number_t num, char *after_last, int base, int flags)
-{
- const char *digits =
- ((flags & ErrH::cf_uppercase) ? "0123456789ABCDEF" : "0123456789abcdef");
- char *pos = after_last;
- while (num) {
- *--pos = digits[num % base];
- num /= base;
- }
- if (pos == after_last)
- *--pos = '0';
- return pos;
-}
-
-static char *
-do_number_flags(char *pos, char *after_last, int base, int flags,
- int precision, int field_width)
-{
- // remove cf_alternate_form for zero results in base 16
- if ((flags & ErrH::cf_alternate_form) && base == 16 && *pos == '0')
- flags &= ~ErrH::cf_alternate_form;
-
- // account for zero padding
- if (precision >= 0)
- while (after_last - pos < precision)
- *--pos = '0';
- else if (flags & ErrH::cf_zero_pad) {
- if ((flags & ErrH::cf_alternate_form) && base == 16)
- field_width -= 2;
- if ((flags & ErrH::cf_negative)
- || (flags & (ErrH::cf_plus_positive | ErrH::cf_space_positive)))
- field_width--;
- while (after_last - pos < field_width)
- *--pos = '0';
- }
-
- // alternate forms
- if ((flags & ErrH::cf_alternate_form) && base == 8 && pos[1] != '0')
- *--pos = '0';
- else if ((flags & ErrH::cf_alternate_form) && base == 16) {
- *--pos = ((flags & ErrH::cf_uppercase) ? 'X' : 'x');
- *--pos = '0';
- }
-
- // sign
- if (flags & ErrH::cf_negative)
- *--pos = '-';
- else if (flags & ErrH::cf_plus_positive)
- *--pos = '+';
- else if (flags & ErrH::cf_space_positive)
- *--pos = ' ';
-
- return pos;
-}
-
-String
-ErrorHandler::vxformat(int default_flags, const char *s, va_list val)
-{
- StringAccum msg;
-
- char numbuf[NUMBUF_SIZE]; // for numerics
- numbuf[NUMBUF_SIZE-1] = 0;
-
- String strstore; // to ensure temporaries aren't destroyed
-
- // declare and initialize these here to make gcc shut up about possible
- // use before initialization
- int flags = 0;
- int field_width = -1;
- int precision = -1;
- int width_flag = 0;
- int base = 10;
- while (1) {
-
- const char *pct = strchr(s, '%');
- if (!pct) {
- if (*s)
- msg << s;
- break;
- }
- if (pct != s) {
- msg.append(s, pct - s);
- s = pct;
- }
-
- // parse flags
- flags = default_flags;
- flags:
- switch (*++s) {
- case '#': flags |= cf_alternate_form; goto flags;
- case '0': flags |= cf_zero_pad; goto flags;
- case '-': flags |= cf_left_just; goto flags;
- case ' ': flags |= cf_space_positive; goto flags;
- case '+': flags |= cf_plus_positive; goto flags;
- case '\'': flags |= cf_singlequote; goto flags;
- case '_': flags &= ~cf_utf8; goto flags;
- }
-
- // parse field width
- field_width = -1;
- if (*s == '*') {
- field_width = va_arg(val, int);
- if (field_width < 0) {
- field_width = -field_width;
- flags |= cf_left_just;
- }
- s++;
- } else if (*s >= '0' && *s <= '9')
- for (field_width = 0; *s >= '0' && *s <= '9'; s++)
- field_width = 10*field_width + *s - '0';
-
- // parse precision
- precision = -1;
- if (*s == '.') {
- s++;
- precision = 0;
- if (*s == '*') {
- precision = va_arg(val, int);
- s++;
- } else if (*s >= '0' && *s <= '9')
- for (; *s >= '0' && *s <= '9'; s++)
- precision = 10*precision + *s - '0';
- }
-
- // parse width flags
- width_flag = 0;
- width_flags:
- switch (*s) {
- case 'h': case 'l':
- if (width_flag == *s)
- width_flag = *s + 'A' - 'a';
- else if (width_flag)
- break;
- else
- width_flag = *s;
- s++;
- goto width_flags;
- case 'z':
- case 't':
- if (width_flag)
- break;
- width_flag = *s++;
- break;
- case '^':
- if (!isdigit((unsigned char) s[1]) || width_flag)
- break;
- for (s++; isdigit((unsigned char) *s); s++)
- width_flag = width_flag * 10 + *s - '0';
- width_flag = -width_flag;
- break;
- }
-
- // conversion character
- // after switch, data lies between `s1' and `s2'
- const char *s1 = 0, *s2 = 0;
- base = 10;
- switch (*s++) {
-
- case 's': {
- s1 = va_arg(val, const char *);
- if (!s1)
- s1 = "(null)";
-
- // fetch length
- int len;
- if (precision < 0)
- len = strlen(s1);
- else
- len = strnlen(s1, precision);
-
- // transform string if alternate form
- if (flags & cf_alternate_form) {
- strstore = String(s1, len).printable();
- if (precision < 0 || strstore.length() < precision)
- len = strstore.length();
- }
-
- // quote characters that look like annotations, readjusting length
- if (flags & (cf_singlequote | cf_alternate_form)) {
- if (!(flags & cf_alternate_form))
- strstore = String(s1, len);
-
- // check first line, considering trailing part of 'msg'
- const char *mbegin = msg.end();
- while (mbegin != msg.begin() && mbegin[-1] != '\n')
- --mbegin;
- if (skip_anno(strstore.begin(), strstore.end()) != strstore.begin()
- && skip_anno(mbegin, msg.end()) == msg.end()) {
- strstore = String::make_stable("{}", 2) + strstore;
- len += 2;
- }
-
- // check subsequent lines
- const char *s = std::find(strstore.begin(), strstore.end(), '\n');
- while (s != strstore.end() && s + 1 != strstore.end()) {
- size_t nextpos = (s + 1) - strstore.begin();
- if (skip_anno(s + 1, strstore.end()) != s + 1) {
- strstore = strstore.substring(strstore.begin(), s + 1)
- + String::make_stable("{}", 2)
- + strstore.substring(s + 1, strstore.end());
- len += 2;
- }
- s = std::find(strstore.begin() + nextpos, strstore.end(), '\n');
- }
- }
-
- // obtain begin and end pointers
- if (flags & (cf_singlequote | cf_alternate_form))
- s1 = strstore.begin();
- s2 = s1 + len;
- break;
- }
-
- case 'c': {
- int c = va_arg(val, int);
- // check for extension of 'signed char' to 'int'
- if (c < 0)
- c += 256;
- // assume ASCII
- if (c == '\n')
- strcpy(numbuf, "\\n");
- else if (c == '\t')
- strcpy(numbuf, "\\t");
- else if (c == '\r')
- strcpy(numbuf, "\\r");
- else if (c == '\0')
- strcpy(numbuf, "\\0");
- else if (c < 0 || c >= 256)
- strcpy(numbuf, "(bad char)");
- else if (c < 32 || c >= 0177)
- sprintf(numbuf, "\\%03o", c);
- else
- sprintf(numbuf, "%c", c);
- s1 = numbuf;
- s2 = strchr(numbuf, 0);
- break;
- }
-
- case '%': {
- numbuf[0] = '%';
- s1 = numbuf;
- s2 = s1 + 1;
- break;
- }
-
- case '<':
- s1 = (flags & cf_utf8 ? "\342\200\230" : "\'");
- s2 = s1 + strlen(s1);
- break;
-
- case '>':
- case ',':
- s1 = (flags & cf_utf8 ? "\342\200\231" : "\'");
- s2 = s1 + strlen(s1);
- break;
-
- case 'd':
- case 'i':
- flags |= cf_signed;
- /* fallthru */
- case 'u':
- number: {
- // protect numbuf from overflow
- if (field_width > NUMBUF_SIZE)
- field_width = NUMBUF_SIZE;
- if (precision > NUMBUF_SIZE - 4)
- precision = NUMBUF_SIZE - 4;
-
- s2 = numbuf + NUMBUF_SIZE;
-
- do_number_t num;
- switch (width_flag) {
- case 'H':
- case -8:
- num = (unsigned char) va_arg(val, int);
- if ((flags & cf_signed) && (signed char) num < 0)
- num = -(signed char) num, flags |= cf_negative;
- break;
- case 'h':
- case -16:
- num = (unsigned short) va_arg(val, int);
- if ((flags & cf_signed) && (short) num < 0)
- num = -(short) num, flags |= cf_negative;
- break;
- case 0:
- case -32:
-#if SIZEOF_LONG == 4
- case 'l':
-#endif
-#if SIZEOF_SIZE_T == 4
- case 'z':
-#endif
-#if SIZEOF_PTRDIFF_T == 4
- case 't':
-#endif
- num = va_arg(val, unsigned);
- if ((flags & cf_signed) && (int) num < 0)
- num = -(int) num, flags |= cf_negative;
- break;
-#if HAVE_INT64_TYPES
-# if SIZEOF_LONG == 8
- case 'l':
-# endif
-# if SIZEOF_LONG_LONG == 8
- case 'L':
-# endif
-# if SIZEOF_SIZE_T == 8
- case 'z':
-# endif
-# if SIZEOF_PTRDIFF_T == 8
- case 't':
-# endif
- case -64: {
- uint64_t qnum = va_arg(val, uint64_t);
- if ((flags & cf_signed) && (int64_t)qnum < 0)
- qnum = -(int64_t) qnum, flags |= cf_negative;
- StringAccum sa;
- sa.append_numeric(static_cast<String::uintmax_t>(qnum), base, (flags & cf_uppercase));
- s1 = s2 - sa.length();
- memcpy(const_cast<char*>(s1), sa.data(), s2 - s1);
- goto got_number;
- }
-#endif
- default:
- goto error;
- }
- s1 = do_number(num, (char*) s2, base, flags);
-
-#if HAVE_INT64_TYPES
- got_number:
-#endif
- s1 = do_number_flags((char*)s1, (char*) s2, base, flags, precision, field_width);
- break;
- }
-
- case 'o':
- base = 8;
- goto number;
-
- case 'X':
- flags |= cf_uppercase;
- /* fallthru */
- case 'x':
- base = 16;
- goto number;
-
- case 'p': {
- if (*s == '{') {
- s1 = s2 = s + 1;
- while (*s2 && *s2 != '}' && !isspace((unsigned char) *s2))
- ++s2;
- if (*s2 == '}')
- goto braces;
- }
- void* v = va_arg(val, void*);
- s2 = numbuf + NUMBUF_SIZE;
- s1 = do_number((do_number_t) v, (char*) s2, 16, flags);
- s1 = do_number_flags((char*) s1, (char*) s2, 16, flags | cf_alternate_form, precision, field_width);
- break;
- }
-
-#ifndef __KERNEL__
- case 'e': case 'f': case 'g':
- case 'E': case 'F': case 'G': {
- char format[80], *f = format, new_numbuf[NUMBUF_SIZE];
- *f++ = '%';
- if (flags & cf_alternate_form)
- *f++ = '#';
- if (precision >= 0)
- f += sprintf(f, ".%d", precision);
- *f++ = s[-1];
- *f++ = 0;
-
- int len = sprintf(new_numbuf, format, va_arg(val, double));
-
- s2 = numbuf + NUMBUF_SIZE;
- s1 = s2 - len;
- memcpy((char *)s1, new_numbuf, len); // note: no terminating \0
- s1 = do_number_flags((char *)s1, (char *)s2, 10, flags & ~cf_alternate_form, -1, field_width);
- break;
- }
-#endif
-
- case '{':
- s1 = s2 = s;
- while (*s2 && *s2 != '}' && !isspace((unsigned char) *s2))
- ++s2;
- if (*s2 != '}')
- goto error;
- goto braces;
-
- braces:
- s = s2 + 1;
- for (Conversion *item = error_items; item; item = item->next)
- if (item->name.equals(s1, s2 - s1)) {
- strstore = item->hook(flags, VA_LIST_REF(val));
- s1 = strstore.begin();
- s2 = strstore.end();
- goto got_result;
- }
- goto error;
-
- error:
- default:
- assert(0 /* Bad % in error */);
- break;
-
- }
-
- // add result of conversion
- got_result:
- int slen = s2 - s1;
- if (slen > field_width)
- field_width = slen;
- char *dest = msg.extend(field_width);
- if (flags & cf_left_just) {
- memcpy(dest, s1, slen);
- memset(dest + slen, ' ', field_width - slen);
- } else {
- memcpy(dest + field_width - slen, s1, slen);
- memset(dest, (flags & cf_zero_pad ? '0' : ' '), field_width - slen);
- }
- }
-
- return msg.take_string();
-}
-
-String
-ErrorHandler::xformat(int default_flags, const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String s = vxformat(default_flags, fmt, val);
- va_end(val);
- return s;
-}
-
-String
-ErrorHandler::xformat(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String s = vxformat(0, fmt, val);
- va_end(val);
- return s;
-}
-
-String
-ErrorHandler::format(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String s = vformat(fmt, val);
- va_end(val);
- return s;
-}
-
-
-// ERROR MESSAGE SHORTHAND
-
-void
-ErrorHandler::debug(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- xmessage(String::make_stable(e_debug, 3), fmt, val);
- va_end(val);
-}
-
-void
-ErrorHandler::message(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- xmessage(String::make_stable(e_info, 3), fmt, val);
- va_end(val);
-}
-
-int
-ErrorHandler::warning(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- int r = xmessage(String::make_stable(e_warning_annotated, 12), fmt, val);
- va_end(val);
- return r;
-}
-
-int
-ErrorHandler::error(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- int r = xmessage(String::make_stable(e_error, 3), fmt, val);
- va_end(val);
- return r;
-}
-
-void
-ErrorHandler::fatal(const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- (void) xmessage(String::make_stable(e_fatal, 4), fmt, val);
- va_end(val);
- abort();
-}
-
-void
-ErrorHandler::ldebug(const String &landmark, const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String l = make_landmark_anno(landmark);
- xmessage(String::make_stable(e_debug, 3) + l, fmt, val);
- va_end(val);
-}
-
-void
-ErrorHandler::lmessage(const String &landmark, const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String l = make_landmark_anno(landmark);
- xmessage(String::make_stable(e_info, 3) + l, fmt, val);
- va_end(val);
-}
-
-int
-ErrorHandler::lwarning(const String &landmark, const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String l = make_landmark_anno(landmark);
- int r = xmessage(l + String::make_stable(e_warning_annotated, 12), fmt, val);
- va_end(val);
- return r;
-}
-
-int
-ErrorHandler::lerror(const String &landmark, const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String l = make_landmark_anno(landmark);
- int r = xmessage(String::make_stable(e_error, 3) + l, fmt, val);
- va_end(val);
- return r;
-}
-
-void
-ErrorHandler::lfatal(const String &landmark, const char *fmt, ...)
-{
- va_list val;
- va_start(val, fmt);
- String l = make_landmark_anno(landmark);
- (void) xmessage(String::make_stable(e_fatal, 4) + l, fmt, val);
- va_end(val);
- abort();
-}
-
-int
-ErrorHandler::xmessage(const String &str)
-{
- String xstr = decorate(str);
-
- int min_level = 1000, xlevel = 1000;
- const char *s = xstr.begin(), *end = xstr.end();
- void *user_data = 0;
- while (s != end) {
- const char *l = parse_anno(xstr, s, end, "#<>", &xlevel,
- (const char *) 0);
- const char *nl = std::find(l, end, '\n');
- String line = xstr.substring(s, nl);
- s = nl + (nl != end);
- user_data = emit(line, user_data, s != end);
- min_level = (xlevel < min_level ? xlevel : min_level);
- }
-
- account(min_level);
-
- return (min_level <= el_warning ? error_result : ok_result);
-}
-
-String
-ErrorHandler::vformat(const char *fmt, va_list val)
-{
- return vxformat(0, fmt, val);
-}
-
-String
-ErrorHandler::decorate(const String &str)
-{
- return str;
-}
-
-void *
-ErrorHandler::emit(const String &, void *user_data, bool)
-{
- return user_data;
-}
-
-void
-ErrorHandler::account(int level)
-{
- if (level <= el_error)
- ++_nerrors;
-#ifndef __KERNEL__
- if (level <= el_abort)
- abort();
- else if (level <= el_fatal)
- exit(-level);
-#endif
-}
-
-
-#ifndef __KERNEL__
-//
-// FILE ERROR HANDLER
-//
-
-FileErrorHandler::FileErrorHandler(FILE *f, const String &context)
- : _f(f), _context(context), _default_flags(0)
-{
-# if HAVE_UNISTD_H
- if (isatty(fileno(_f))) {
-# endif
- char *s = getenv("LANG");
- if (s && (strstr(s, "UTF-8") != 0 || strstr(s, "UTF8") != 0
- || strstr(s, "utf8") != 0))
- _default_flags |= cf_utf8;
-# if HAVE_UNISTD_H
- }
-# endif
-}
-
-String
-FileErrorHandler::vformat(const char *fmt, va_list val)
-{
- return vxformat(_default_flags, fmt, val);
-}
-
-void *
-FileErrorHandler::emit(const String &str, void *, bool)
-{
- String landmark;
- const char *s = parse_anno(str, str.begin(), str.end(),
- "l", &landmark, (const char *) 0);
- StringAccum sa;
- sa << _context << clean_landmark(landmark, true)
- << str.substring(s, str.end()) << '\n';
- ssize_t result = fwrite(sa.begin(), 1, sa.length(), _f);
- (void) result;
- return 0;
-}
-
-#endif
-
-
-//
-// STATIC ERROR HANDLERS
-//
-
-ErrorHandler::Conversion *
-ErrorHandler::add_conversion(const String &name, ConversionFunction function)
-{
- if (Conversion *c = new Conversion) {
- c->name = name;
- c->hook = function;
- c->next = error_items;
- error_items = c;
- return c;
- } else
- return 0;
-}
-
-int
-ErrorHandler::remove_conversion(ErrorHandler::Conversion *conv)
-{
- Conversion **pprev = &error_items;
- for (Conversion *c = error_items; c; pprev = &c->next, c = *pprev)
- if (c == conv) {
- *pprev = c->next;
- delete c;
- return 0;
- }
- return -1;
-}
-
-ErrorHandler *
-ErrorHandler::static_initialize(ErrorHandler *default_handler)
-{
- if (!the_silent_handler) {
- the_default_handler = default_handler;
- the_silent_handler = new SilentErrorHandler;
- }
- return default_handler;
-}
-
-void
-ErrorHandler::static_cleanup()
-{
- delete the_default_handler;
- delete the_silent_handler;
- the_default_handler = the_silent_handler = 0;
- while (error_items) {
- Conversion *next = error_items->next;
- delete error_items;
- error_items = next;
- }
-}
-
-void
-ErrorHandler::set_default_handler(ErrorHandler *errh)
-{
- the_default_handler = errh;
-}
-
-
-//
-// ERROR VENEER
-//
-
-String
-ErrorVeneer::vformat(const char *fmt, va_list val)
-{
- if (_errh)
- return _errh->vformat(fmt, val);
- else
- return ErrorHandler::vformat(fmt, val);
-}
-
-String
-ErrorVeneer::decorate(const String &str)
-{
- if (_errh)
- return _errh->decorate(str);
- else
- return ErrorHandler::decorate(str);
-}
-
-void *
-ErrorVeneer::emit(const String &str, void *user_data, bool more)
-{
- if (_errh)
- return _errh->emit(str, user_data, more);
- else
- return ErrorHandler::emit(str, user_data, more);
-}
-
-void
-ErrorVeneer::account(int level)
-{
- ErrorHandler::account(level);
- if (_errh)
- _errh->account(level);
-}
-
-
-//
-// CONTEXT ERROR HANDLER
-//
-
-ContextErrorHandler::ContextErrorHandler(ErrorHandler *errh, const char *fmt,
- ...)
- : ErrorVeneer(errh), _indent(String::make_stable(" ", 2)),
- _context_landmark("{l:}"), _context_printed(false)
-{
- va_list val;
- va_start(val, fmt);
- _context = ErrorVeneer::vformat(fmt, val);
- va_end(val);
- if (_context)
- _context = combine_anno(_context, String::make_stable("{context:context}", 17));
-}
-
-String
-ContextErrorHandler::decorate(const String &str)
-{
- String context_anno;
- const char *str_endanno = parse_anno(str, str.begin(), str.end(),
- "context", &context_anno,
- (const char *) 0);
- if (context_anno.equals("no", 2))
- return ErrorVeneer::decorate(str);
-
- String istr;
- if (context_anno.equals("noindent", 8))
- istr = combine_anno(str, _context_landmark);
- else
- istr = combine_anno(str, _context_landmark + _indent);
-
- if (!_context_printed && !context_anno.equals("nocontext", 9)) {
- String astr = combine_anno(combine_anno(_context, _context_landmark),
- str.substring(str.begin(), str_endanno));
- if (astr && astr.back() != '\n')
- astr += '\n';
- _context_printed = true;
- return ErrorVeneer::decorate(astr + istr);
- } else
- return ErrorVeneer::decorate(istr);
-}
-
-
-//
-// PREFIX ERROR HANDLER
-//
-
-PrefixErrorHandler::PrefixErrorHandler(ErrorHandler *errh,
- const String &prefix)
- : ErrorVeneer(errh), _prefix(prefix)
-{
-}
-
-String
-PrefixErrorHandler::decorate(const String &str)
-{
- return ErrorVeneer::decorate(combine_anno(str, _prefix));
-}
-
-
-//
-// LANDMARK ERROR HANDLER
-//
-
-LandmarkErrorHandler::LandmarkErrorHandler(ErrorHandler *errh, const String &landmark)
- : ErrorVeneer(errh), _landmark(make_landmark_anno(landmark))
-{
-}
-
-String
-LandmarkErrorHandler::decorate(const String &str)
-{
- return ErrorVeneer::decorate(combine_anno(str, _landmark));
-}
-
-
-//
-// BAIL ERROR HANDLER
-//
-
-#ifndef __KERNEL__
-
-BailErrorHandler::BailErrorHandler(ErrorHandler *errh, int l)
- : ErrorVeneer(errh), _level(l)
-{
-}
-
-void
-BailErrorHandler::account(int level)
-{
- ErrorVeneer::account(level);
- if (level <= _level)
- exit(1);
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
deleted file mode 100644
index fe9fb757406..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/filename.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// -*- related-file-name: "../include/lcdf/filename.hh" -*-
-
-/* filename.{cc,hh} -- filenames
- *
- * Copyright (c) 1999-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/filename.hh>
-#include <lcdf/landmark.hh>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifndef PATHNAME_SEPARATOR
-# define PATHNAME_SEPARATOR '/'
-#endif
-#ifndef CURRENT_DIRECTORY
-# define CURRENT_DIRECTORY "./"
-#endif
-
-
-Filename::Filename(const String &fn)
- : _path(fn), _actual(0)
-{
- if (!fn)
- return;
-
- int last_slash = fn.find_right(PATHNAME_SEPARATOR);
- if (last_slash >= 0) {
- _dir = _path.substring(0, last_slash + 1);
- _name = _path.substring(last_slash + 1);
- } else {
- _dir = CURRENT_DIRECTORY;
- _name = fn;
- }
-
- assert(_dir.back() == PATHNAME_SEPARATOR);
-}
-
-Filename::Filename(const String &dir, const String &name)
- : _name(name), _actual(0)
-{
- if (!name)
- return;
-
- if (_name[0] == PATHNAME_SEPARATOR)
- _dir = "";
- else if (dir) {
- _dir = dir;
- if (dir.back() != PATHNAME_SEPARATOR)
- _dir += PATHNAME_SEPARATOR;
- } else
- _dir = CURRENT_DIRECTORY;
-
- int slash = name.find_right(PATHNAME_SEPARATOR);
- if (slash >= 0) {
- _dir += name.substring(0, slash + 1);
- _name = name.substring(slash + 1);
- }
-
- _path = _dir + _name;
-}
-
-Filename::Filename(FILE *actual, const String &name)
- : _name(name), _path(name), _actual(actual)
-{
-}
-
-
-String
-Filename::extension() const
-{
- int dot = _name.find_right('.');
- while (dot > 0 && _name[dot - 1] == '.')
- dot--;
- if (dot > 0)
- return _name.substring(dot + 1);
- else
- return String();
-}
-
-String
-Filename::base() const
-{
- if (String ex = extension())
- return _name.substring(0, _name.length() - ex.length() - 1);
- else
- return _name;
-}
-
-
-FILE *
-Filename::open_read(bool binary) const
-{
- if (_actual || !_path)
- return _actual;
- else
- return fopen(_path.c_str(), binary ? "rb" : "r");
-}
-
-bool
-Filename::readable() const
-{
- struct stat s;
- if (!_path)
- return false;
- return _actual || (_path && (stat(_path.c_str(), &s) >= 0));
-}
-
-
-FILE *
-Filename::open_write(bool binary) const
-{
- if (_actual || !_path)
- return _actual;
- else
- return fopen(_path.c_str(), "wb");
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/fixlibc.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/fixlibc.c
deleted file mode 100644
index d41238daf85..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/fixlibc.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Provide definitions for missing or incorrect libc functions. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !HAVE_STRDUP
-char *
-strdup(const char *s)
-{
- char *t;
- int l;
- if (!s)
- return 0;
- l = strlen(s) + 1;
- t = (char *)malloc(l);
- if (!t)
- return 0;
- memcpy(t, s, l);
- return t;
-}
-#endif
-
-#if !HAVE_STRERROR
-/* David Mazieres <dm@lcs.mit.edu> assures me that this definition works. */
-char *
-strerror(int errno)
-{
- extern int sys_nerr;
- extern char *sys_errlist[];
- if (errno < 0 || errno >= sys_nerr)
- return (char *)"bad error number";
- else
- return sys_errlist[errno];
-}
-#endif
-
-#if HAVE_BROKEN_STRTOD
-/* On NeXTSTEP, Melissa O'Neill <oneill@cs.sfu.ca> reports that strtod
- consumes whitespace after its argument, which makes mminstance (among other
- programs) not work. This wrapper gets rid of that whitespace again.
- (Originally, we suspected strtol too, but it seems to work, at least in
- NeXTSTEP 3.3 patch 2.) */
-
-double
-good_strtod(const char *nptr, char **endptr)
-{
- double d = strtod(nptr, endptr);
- if (endptr)
- while (*endptr > nptr && isspace((unsigned char) (*endptr)[-1]))
- (*endptr)--;
- return d;
-}
-#endif
-
-#if !HAVE_STRNLEN || HAVE_BROKEN_STRNLEN
-size_t
-strnlen(const char *s, size_t maxlen)
-{
- const char *p = (const char *) memchr(s, 0, maxlen);
- return p ? p - s : maxlen;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
deleted file mode 100644
index 891c9b09955..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/globmatch.cc
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- related-file-name: "../include/lcdf/globmatch.hh" -*-
-
-/* globmatch.{cc,hh} -- glob_match() function for shell globbing
- *
- * Copyright (c) 2000-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/globmatch.hh>
-#include <lcdf/string.hh>
-#include <lcdf/vector.hh>
-
-bool
-glob_match(const String& str, const String& pattern)
-{
- const char* sdata = str.data();
- const char* pdata = pattern.data();
- int slen = str.length();
- int plen = pattern.length();
- int spos = 0, ppos = 0;
- Vector<int> glob_ppos, glob_spos1, glob_spos2;
-
- while (1) {
- while (ppos < plen)
- switch (pdata[ppos]) {
-
- case '?':
- if (spos >= slen)
- goto done;
- spos++;
- ppos++;
- break;
-
- case '*':
- glob_ppos.push_back(ppos + 1);
- glob_spos1.push_back(spos);
- glob_spos2.push_back(slen);
- spos = slen;
- ppos++;
- break;
-
- case '[': {
- if (spos >= slen)
- goto done;
-
- // find end of character class
- int p = ppos + 1;
- bool negated = false;
- if (p < plen && pdata[p] == '^') {
- negated = true;
- p++;
- }
- int first = p;
- if (p < plen && pdata[p] == ']')
- p++;
- while (p < plen && pdata[p] != ']')
- p++;
- if (p >= plen) // not a character class at all
- goto ordinary;
-
- // parse character class
- bool in = false;
- for (int i = first; i < p && !in; i++) {
- int c1 = pdata[i];
- int c2 = c1;
- if (i < p - 2 && pdata[i+1] == '-') {
- c2 = pdata[i+2];
- i += 2;
- }
- if (sdata[spos] >= c1 && sdata[spos] <= c2)
- in = true;
- }
-
- if ((negated && in) || (!negated && !in))
- goto done;
- ppos = p + 1;
- spos++;
- break;
- }
-
- default:
- ordinary:
- if (spos >= slen || sdata[spos] != pdata[ppos])
- goto done;
- spos++;
- ppos++;
- break;
-
- }
-
- done:
- if (spos == slen && ppos == plen)
- return true;
- while (glob_ppos.size() && glob_spos1.back() == glob_spos2.back()) {
- glob_ppos.pop_back();
- glob_spos1.pop_back();
- glob_spos2.pop_back();
- }
- if (glob_ppos.size()) {
- glob_spos2.back()--;
- spos = glob_spos2.back();
- ppos = glob_ppos.back();
- } else
- return false;
- }
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
deleted file mode 100644
index 3d4252e5d19..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/landmark.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- related-file-name: "../include/lcdf/landmark.hh" -*-
-
-/* landmark.{cc,hh} -- FILE:LINE type landmarks
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/landmark.hh>
-
-Landmark
-operator+(const Landmark &landmark, int offset)
-{
- if (landmark.has_line())
- return Landmark(landmark.file(), landmark.line() + offset);
- else
- return landmark;
-}
-
-Landmark::operator String() const
-{
- if (_file && has_line())
- return _file + ":" + String(_line);
- else
- return _file;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/md5.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/md5.c
deleted file mode 100644
index c8508865c20..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/md5.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; related-file-name: "../include/lcdf/md5.h" -*- */
-/* md5.c - MD5 Message-Digest Algorithm
- * Copyright (C) 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
- *
- * according to the definition of MD5 in RFC 1321 from April 1992.
- * NOTE: This is *not* the same file as the one from glibc.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
-/* heavily modified for GnuPG by <werner.koch@guug.de> */
-/* modified again for Sylpheed by <wk@gnupg.org> 2001-02-11 */
-/* modified again for LCDF by Eddie Kohler <kohler@icir.org> */
-
-
-/* Test values:
- * "" D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E
- * "a" 0C C1 75 B9 C0 F1 B6 A8 31 C3 99 E2 69 77 26 61
- * "abc 90 01 50 98 3C D2 4F B0 D6 96 3F 7D 28 E1 7F 72
- * "message digest" F9 6B 69 7D 7C B7 93 8D 52 5A 2F 31 AA F1 61 D0
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <lcdf/inttypes.h>
-#include <lcdf/md5.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/****************
- * Rotate a 32 bit integer by n bits
- */
-#if defined(__GNUC__) && defined(__i386__)
-static inline uint32_t
-rol( uint32_t x, int n)
-{
- __asm__("roll %%cl,%0"
- :"=r" (x)
- :"0" (x),"c" (n));
- return x;
-}
-#else
-#define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) )
-#endif
-
-
-void
-md5_init(MD5_CONTEXT *ctx)
-{
- ctx->A = 0x67452301;
- ctx->B = 0xefcdab89;
- ctx->C = 0x98badcfe;
- ctx->D = 0x10325476;
-
- ctx->nblocks = 0;
- ctx->count = 0;
- ctx->finalized = 0;
-}
-
-/* These are the four functions used in the four steps of the MD5 algorithm
- and defined in the RFC 1321. The first function is a little bit optimized
- (as found in Colin Plumbs public domain implementation). */
-/* #define FF(b, c, d) ((b & c) | (~b & d)) */
-#define FF(b, c, d) (d ^ (b & (c ^ d)))
-#define FG(b, c, d) FF (d, b, c)
-#define FH(b, c, d) (b ^ c ^ d)
-#define FI(b, c, d) (c ^ (b | ~d))
-
-
-/****************
- * transform n*64 bytes
- */
-static void
-transform(MD5_CONTEXT *ctx, const unsigned char *data)
-{
- uint32_t correct_words[16];
- uint32_t A = ctx->A;
- uint32_t B = ctx->B;
- uint32_t C = ctx->C;
- uint32_t D = ctx->D;
- uint32_t *cwp = correct_words;
-
-#if WORDS_BIGENDIAN
- {
- int i;
- unsigned char *p2, *p1;
-
- for (i = 0, p1 = data, p2 = (unsigned char*)correct_words;
- i < 16; i++, p2 += 4) {
- p2[3] = *p1++;
- p2[2] = *p1++;
- p2[1] = *p1++;
- p2[0] = *p1++;
- }
- }
-#elif WORDS_BIGENDIAN_SET
- memcpy(correct_words, data, 64);
-#else
-# error "WORDS_BIGENDIAN has not been set!"
-#endif
-
-
-#define OP(a, b, c, d, s, T) \
- do { \
- a += FF (b, c, d) + (*cwp++) + T; \
- a = rol(a, s); \
- a += b; \
- } while (0)
-
- /* Before we start, one word about the strange constants.
- They are defined in RFC 1321 as
-
- T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64
- */
-
- /* Round 1. */
- OP (A, B, C, D, 7, 0xd76aa478);
- OP (D, A, B, C, 12, 0xe8c7b756);
- OP (C, D, A, B, 17, 0x242070db);
- OP (B, C, D, A, 22, 0xc1bdceee);
- OP (A, B, C, D, 7, 0xf57c0faf);
- OP (D, A, B, C, 12, 0x4787c62a);
- OP (C, D, A, B, 17, 0xa8304613);
- OP (B, C, D, A, 22, 0xfd469501);
- OP (A, B, C, D, 7, 0x698098d8);
- OP (D, A, B, C, 12, 0x8b44f7af);
- OP (C, D, A, B, 17, 0xffff5bb1);
- OP (B, C, D, A, 22, 0x895cd7be);
- OP (A, B, C, D, 7, 0x6b901122);
- OP (D, A, B, C, 12, 0xfd987193);
- OP (C, D, A, B, 17, 0xa679438e);
- OP (B, C, D, A, 22, 0x49b40821);
-
-#undef OP
-#define OP(f, a, b, c, d, k, s, T) \
- do { \
- a += f (b, c, d) + correct_words[k] + T; \
- a = rol(a, s); \
- a += b; \
- } while (0)
-
- /* Round 2. */
- OP (FG, A, B, C, D, 1, 5, 0xf61e2562);
- OP (FG, D, A, B, C, 6, 9, 0xc040b340);
- OP (FG, C, D, A, B, 11, 14, 0x265e5a51);
- OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa);
- OP (FG, A, B, C, D, 5, 5, 0xd62f105d);
- OP (FG, D, A, B, C, 10, 9, 0x02441453);
- OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);
- OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8);
- OP (FG, A, B, C, D, 9, 5, 0x21e1cde6);
- OP (FG, D, A, B, C, 14, 9, 0xc33707d6);
- OP (FG, C, D, A, B, 3, 14, 0xf4d50d87);
- OP (FG, B, C, D, A, 8, 20, 0x455a14ed);
- OP (FG, A, B, C, D, 13, 5, 0xa9e3e905);
- OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8);
- OP (FG, C, D, A, B, 7, 14, 0x676f02d9);
- OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);
-
- /* Round 3. */
- OP (FH, A, B, C, D, 5, 4, 0xfffa3942);
- OP (FH, D, A, B, C, 8, 11, 0x8771f681);
- OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);
- OP (FH, B, C, D, A, 14, 23, 0xfde5380c);
- OP (FH, A, B, C, D, 1, 4, 0xa4beea44);
- OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9);
- OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60);
- OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);
- OP (FH, A, B, C, D, 13, 4, 0x289b7ec6);
- OP (FH, D, A, B, C, 0, 11, 0xeaa127fa);
- OP (FH, C, D, A, B, 3, 16, 0xd4ef3085);
- OP (FH, B, C, D, A, 6, 23, 0x04881d05);
- OP (FH, A, B, C, D, 9, 4, 0xd9d4d039);
- OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);
- OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);
- OP (FH, B, C, D, A, 2, 23, 0xc4ac5665);
-
- /* Round 4. */
- OP (FI, A, B, C, D, 0, 6, 0xf4292244);
- OP (FI, D, A, B, C, 7, 10, 0x432aff97);
- OP (FI, C, D, A, B, 14, 15, 0xab9423a7);
- OP (FI, B, C, D, A, 5, 21, 0xfc93a039);
- OP (FI, A, B, C, D, 12, 6, 0x655b59c3);
- OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92);
- OP (FI, C, D, A, B, 10, 15, 0xffeff47d);
- OP (FI, B, C, D, A, 1, 21, 0x85845dd1);
- OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f);
- OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);
- OP (FI, C, D, A, B, 6, 15, 0xa3014314);
- OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);
- OP (FI, A, B, C, D, 4, 6, 0xf7537e82);
- OP (FI, D, A, B, C, 11, 10, 0xbd3af235);
- OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb);
- OP (FI, B, C, D, A, 9, 21, 0xeb86d391);
-
- /* Put checksum in context given as argument. */
- ctx->A += A;
- ctx->B += B;
- ctx->C += C;
- ctx->D += D;
-}
-
-
-
-/* The routine updates the message-digest context to
- * account for the presence of each of the characters inBuf[0..inLen-1]
- * in the message whose digest is being computed.
- */
-void
-md5_update(MD5_CONTEXT *hd, const unsigned char *inbuf, size_t inlen)
-{
- if (hd->count == 64) { /* flush the buffer */
- transform( hd, hd->buf );
- hd->count = 0;
- hd->nblocks++;
- }
- if (!inbuf)
- return;
- if (hd->count) {
- for (; inlen && hd->count < 64; inlen--)
- hd->buf[hd->count++] = *inbuf++;
- md5_update(hd, NULL, 0);
- if (!inlen)
- return;
- }
-
- while (inlen >= 64) {
- transform(hd, inbuf);
- hd->count = 0;
- hd->nblocks++;
- inlen -= 64;
- inbuf += 64;
- }
-
- for (; inlen && hd->count < 64; inlen--)
- hd->buf[hd->count++] = *inbuf++;
-}
-
-
-
-/* The routine final terminates the message-digest computation and
- * ends with the desired message digest in mdContext->digest[0...15].
- * The handle is prepared for a new MD5 cycle.
- * Returns 16 bytes representing the digest.
- */
-
-static void
-do_final(MD5_CONTEXT *hd)
-{
- uint32_t t, msb, lsb;
- unsigned char *p;
-
- md5_update(hd, NULL, 0); /* flush */
-
- msb = 0;
- t = hd->nblocks;
- if ((lsb = t << 6) < t) /* multiply by 64 to make a byte count */
- msb++;
- msb += t >> 26;
- t = lsb;
- if ((lsb = t + hd->count) < t) /* add the count */
- msb++;
- t = lsb;
- if ((lsb = t << 3) < t) /* multiply by 8 to make a bit count */
- msb++;
- msb += t >> 29;
-
- if (hd->count < 56) { /* enough room */
- hd->buf[hd->count++] = 0x80; /* pad */
- while(hd->count < 56)
- hd->buf[hd->count++] = 0; /* pad */
- } else { /* need one extra block */
- hd->buf[hd->count++] = 0x80; /* pad character */
- while (hd->count < 64)
- hd->buf[hd->count++] = 0;
- md5_update(hd, NULL, 0); /* flush */
- memset(hd->buf, 0, 56); /* fill next block with zeroes */
- }
-
- /* append the 64 bit count */
- hd->buf[56] = lsb ;
- hd->buf[57] = lsb >> 8;
- hd->buf[58] = lsb >> 16;
- hd->buf[59] = lsb >> 24;
- hd->buf[60] = msb ;
- hd->buf[61] = msb >> 8;
- hd->buf[62] = msb >> 16;
- hd->buf[63] = msb >> 24;
- transform(hd, hd->buf);
-
- p = hd->buf;
-#if WORDS_BIGENDIAN
-#define X(a) do { *p++ = hd->a ; *p++ = hd->a >> 8; \
- *p++ = hd->a >> 16; *p++ = hd->a >> 24; } while(0)
-#elif WORDS_BIGENDIAN_SET
- /*#define X(a) do { *(uint32_t*)p = hd->##a ; p += 4; } while(0)*/
- /* Unixware's cpp doesn't like the above construct so we do it his way:
- * (reported by Allan Clark) */
-#define X(a) do { *(uint32_t*)p = (*hd).a ; p += 4; } while(0)
-#else
-# error "WORDS_BIGENDIAN has not been set!"
-#endif
- X(A);
- X(B);
- X(C);
- X(D);
-#undef X
- hd->finalized = 1;
-}
-
-void
-md5_final(unsigned char *digest, MD5_CONTEXT *ctx)
-{
- if (!ctx->finalized)
- do_final(ctx);
- memcpy(digest, ctx->buf, 16);
-}
-
-void
-md5_final_text(char *buf, MD5_CONTEXT *ctx)
-{
- static const char *chars = "abcdefghijklmnopqrstuvwxyz234567";
- int bit;
- if (!ctx->finalized)
- do_final(ctx);
- for (bit = 0; bit < 16*8; bit += 5) {
- int first_char = bit / 8;
- int val = ctx->buf[first_char] >> (bit % 8);
- if (bit + 8 > (first_char + 1) * 8 && first_char < 15)
- val += ctx->buf[first_char + 1] << (8 - (bit % 8));
- *buf++ = chars[val & 0x1F];
- }
- *buf++ = 0;
-}
-
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
deleted file mode 100644
index 55d4b30fd0e..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/permstr.cc
+++ /dev/null
@@ -1,319 +0,0 @@
-// -*- related-file-name: "../include/lcdf/permstr.hh" -*-
-
-/* permstr.{cc,hh} -- permanent strings
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/permstr.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-static PermString::Initializer initializer;
-
-PermString::Doodad PermString::zero_char_doodad = {
- 0, 0, { 0, 0 }
-};
-PermString::Doodad PermString::one_char_doodad[256];
-PermString::Doodad* PermString::buckets[NHASH];
-
-PermString::Initializer::Initializer()
-{
- static int initialized = 0;
- if (!initialized) {
- PermString::static_initialize();
- initialized = 1;
- }
-}
-
-void
-PermString::static_initialize()
-{
- for (int i = 0; i < 256; i++) {
- one_char_doodad[i].next = 0;
- one_char_doodad[i].length = 1;
- one_char_doodad[i].data[0] = i;
- one_char_doodad[i].data[1] = 0;
- }
-}
-
-
-// This scatter array, and the ideas behind it, are stolen from lcc.
-static int scatter[] = { /* map characters to random values */
- 2078917053, 143302914, 1027100827, 1953210302, 755253631,
- 2002600785, 1405390230, 45248011, 1099951567, 433832350,
- 2018585307, 438263339, 813528929, 1703199216, 618906479,
- 573714703, 766270699, 275680090, 1510320440, 1583583926,
- 1723401032, 1965443329, 1098183682, 1636505764, 980071615,
- 1011597961, 643279273, 1315461275, 157584038, 1069844923,
- 471560540, 89017443, 1213147837, 1498661368, 2042227746,
- 1968401469, 1353778505, 1300134328, 2013649480, 306246424,
- 1733966678, 1884751139, 744509763, 400011959, 1440466707,
- 1363416242, 973726663, 59253759, 1639096332, 336563455,
- 1642837685, 1215013716, 154523136, 593537720, 704035832,
- 1134594751, 1605135681, 1347315106, 302572379, 1762719719,
- 269676381, 774132919, 1851737163, 1482824219, 125310639,
- 1746481261, 1303742040, 1479089144, 899131941, 1169907872,
- 1785335569, 485614972, 907175364, 382361684, 885626931,
- 200158423, 1745777927, 1859353594, 259412182, 1237390611,
- 48433401, 1902249868, 304920680, 202956538, 348303940,
- 1008956512, 1337551289, 1953439621, 208787970, 1640123668,
- 1568675693, 478464352, 266772940, 1272929208, 1961288571,
- 392083579, 871926821, 1117546963, 1871172724, 1771058762,
- 139971187, 1509024645, 109190086, 1047146551, 1891386329,
- 994817018, 1247304975, 1489680608, 706686964, 1506717157,
- 579587572, 755120366, 1261483377, 884508252, 958076904,
- 1609787317, 1893464764, 148144545, 1415743291, 2102252735,
- 1788268214, 836935336, 433233439, 2055041154, 2109864544,
- 247038362, 299641085, 834307717, 1364585325, 23330161,
- 457882831, 1504556512, 1532354806, 567072918, 404219416,
- 1276257488, 1561889936, 1651524391, 618454448, 121093252,
- 1010757900, 1198042020, 876213618, 124757630, 2082550272,
- 1834290522, 1734544947, 1828531389, 1982435068, 1002804590,
- 1783300476, 1623219634, 1839739926, 69050267, 1530777140,
- 1802120822, 316088629, 1830418225, 488944891, 1680673954,
- 1853748387, 946827723, 1037746818, 1238619545, 1513900641,
- 1441966234, 367393385, 928306929, 946006977, 985847834,
- 1049400181, 1956764878, 36406206, 1925613800, 2081522508,
- 2118956479, 1612420674, 1668583807, 1800004220, 1447372094,
- 523904750, 1435821048, 923108080, 216161028, 1504871315,
- 306401572, 2018281851, 1820959944, 2136819798, 359743094,
- 1354150250, 1843084537, 1306570817, 244413420, 934220434,
- 672987810, 1686379655, 1301613820, 1601294739, 484902984,
- 139978006, 503211273, 294184214, 176384212, 281341425,
- 228223074, 147857043, 1893762099, 1896806882, 1947861263,
- 1193650546, 273227984, 1236198663, 2116758626, 489389012,
- 593586330, 275676551, 360187215, 267062626, 265012701,
- 719930310, 1621212876, 2108097238, 2026501127, 1865626297,
- 894834024, 552005290, 1404522304, 48964196, 5816381,
- 1889425288, 188942202, 509027654, 36125855, 365326415,
- 790369079, 264348929, 513183458, 536647531, 13672163,
- 313561074, 1730298077, 286900147, 1549759737, 1699573055,
- 776289160, 2143346068, 1975249606, 1136476375, 262925046,
- 92778659, 1856406685, 1884137923, 53392249, 1735424165,
- 1602280572
-};
-
-
-void
-PermString::initialize(const char* s, int length)
-{
- const unsigned char* m = reinterpret_cast<const unsigned char*>(s);
- const unsigned char* mm;
-
- if (length < 0)
- length = (s ? strlen(s) : 0);
-
- if (length == 0) {
- _rep = zero_char_doodad.data;
- return;
- } else if (length == 1) {
- _rep = one_char_doodad[m[0]].data;
- return;
- }
-
- unsigned hash;
- int l;
- for (hash = 0, l = length, mm = m; l; mm++, l--)
- hash = (hash << 1) + scatter[*mm];
- hash &= (NHASH - 1);
-
- Doodad *buck;
- for (buck = buckets[hash]; buck; buck = buck->next)
- if (length == buck->length && memcmp(s, buck->data, length) == 0) {
- _rep = buck->data;
- return;
- }
-
- // CANNOT USE new because the structure has variable size.
- buck = (Doodad *)malloc(sizeof(Doodad) + length - 1);
- buck->next = buckets[hash];
- buckets[hash] = buck;
- buck->length = length;
- memcpy(buck->data, s, length);
- buck->data[length] = 0;
-
- _rep = buck->data;
-}
-
-static int pspos;
-static int pscap = 64;
-static char *psc = (char *)malloc(pscap);
-
-static void
-append(const char *s, int len)
-{
- if (pspos + len >= pscap) {
- pscap *= 2;
- psc = (char *)realloc(psc, pscap);
- }
- memcpy(psc + pspos, s, len);
- pspos += len;
-}
-
-inline static void
-extend(int len)
-{
- while (pspos + len >= pscap) {
- pscap *= 2;
- psc = (char *)realloc(psc, pscap);
- }
-}
-
-PermString
-vpermprintf(const char *s, va_list val)
-{
- pspos = 0;
- while (1) {
-
- const char *pct = strchr(s, '%');
- if (!pct) {
- if (*s)
- append(s, strlen(s));
- break;
- }
- if (pct != s) {
- append(s, pct - s);
- s = pct;
- }
-
- int iflag = -1;
- while (1)
- switch (*++s) {
-
- case '0':
- /* zeroflag = 1; */
- break;
-
- case '1': case '2': case '3': case '4': case '5':
- case '6': case '7': case '8': case '9':
- assert(iflag == -1 /* Too many decimal flags in permprintf */);
- iflag = 0;
- while (*s >= '0' && *s <= '9') {
- iflag = iflag * 10 + *s - '0';
- s++;
- }
- break;
-
- case '*':
- assert(iflag == -1 /* iflag given */);
- iflag = va_arg(val, int);
- break;
-
- case 's': {
- const char *x = va_arg(val, const char *);
- if (x) {
- if (iflag < 0)
- append(x, strlen(x));
- else
- append(x, iflag);
- }
- goto pctdone;
- }
-
- case 'c': {
- char c = (char)(va_arg(val, int) & 0xFF);
- append(&c, 1);
- goto pctdone;
- }
-
- case 'p': {
- PermString::Capsule x = va_arg(val, PermString::Capsule);
- PermString px;
- if (x)
- px = PermString::decapsule(x);
- if (iflag < 0 || iflag > px.length())
- append(px.c_str(), px.length());
- else
- append(px.c_str(), iflag);
- goto pctdone;
- }
-
- case 'd': {
- // FIXME FIXME rewrite for sense
- int x = va_arg(val, int);
- if (pspos == pscap)
- extend(1);
-
- // FIXME -2^31
- unsigned int ux = x;
- if (x < 0) {
- psc[pspos++] = '-';
- ux = -x;
- }
-
- int numdigits = 0;
- for (unsigned digcountx = ux; digcountx > 9; digcountx /= 10)
- numdigits++;
-
- extend(numdigits + 1);
- int digit = numdigits;
- do {
- psc[pspos + digit] = (ux % 10) + '0';
- ux /= 10;
- digit--;
- } while (ux);
- pspos += numdigits + 1;
-
- goto pctdone;
- }
-
- case 'g': {
- // FIXME FIXME rewrite for sense
- double x = va_arg(val, double);
- char buffer[1000];
- int len;
- sprintf(buffer, "%.10g%n", x, &len);
- extend(len);
- strcpy(psc + pspos, buffer);
- pspos += len;
- goto pctdone;
- }
-
- default:
- assert(0 /* Bad % in permprintf */);
- goto pctdone;
-
- }
-
- pctdone:
- s++;
- }
-
- return PermString(psc, pspos);
-}
-
-PermString permprintf(const char *s, ...)
-{
- va_list val;
- va_start(val, s);
- PermString p = vpermprintf(s, val);
- va_end(val);
- return p;
-}
-
-PermString permcat(PermString a, PermString b)
-{
- if (!a || !b)
- return a ? a : b;
- unsigned al = a.length();
- unsigned bl = b.length();
- char *s = new char[al + bl];
- memcpy(s, a.c_str(), al);
- memcpy(s + al, b.c_str(), bl);
- PermString p(s, al + bl);
- delete[] s;
- return p;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
deleted file mode 100644
index 9fd881e9612..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/point.cc
+++ /dev/null
@@ -1,57 +0,0 @@
-// -*- related-file-name: "../include/lcdf/point.hh" -*-
-
-/* point.{cc,hh} -- 2D points
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/point.hh>
-
-Point
-Point::rotated(double rotation) const noexcept
-{
- double r = length();
- double theta = angle() + rotation;
- return Point(r * cos(theta), r * sin(theta));
-}
-
-Point
-Point::midpoint(const Point &a, const Point &b) noexcept
-{
- return Point((a.x + b.x)/2, (a.y + b.y)/2);
-}
-
-bool
-Point::on_line(const Point &a, const Point &b, double tolerance) const noexcept
-{
- Point c = b - a;
- double d = c.x * (y - a.y) - c.y * (x - a.x);
- return (d * d <= tolerance * tolerance * c.squared_length());
-}
-
-bool
-Point::on_segment(const Point &a, const Point &b, double t) const noexcept
-{
- double tt;
- Point c = b - a;
- if (fabs(c.x) > fabs(c.y))
- tt = (x - a.x) / c.x;
- else if (c.y)
- tt = (y - a.y) / c.y;
- else
- tt = 0;
- if (tt < 0 || tt > 1)
- return 0;
- return on_line(a, b, t);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
deleted file mode 100644
index 0755059e825..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/slurper.cc
+++ /dev/null
@@ -1,187 +0,0 @@
-// -*- related-file-name: "../include/lcdf/slurper.hh" -*-
-
-/* slurper.{cc,hh} -- reading from files a line at a time
- *
- * Copyright (c) 1998-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/slurper.hh>
-#include <string.h>
-
-static const int DefChunkCap = 2048;
-static const int WorthMoving = 256;
-
-
-Slurper::Slurper(const Filename &filename, FILE *f)
- : _filename(filename), _lineno(0),
- _data(new unsigned char[DefChunkCap]), _cap(DefChunkCap),
- _pos(0), _len(0), _line(0), _line_len(0),
- _saved_line(false), _at_eof(false)
-{
- if (f) {
- _f = f;
- _own_f = false;
- } else {
- _f = _filename.open_read();
- _own_f = true;
- }
-}
-
-Slurper::~Slurper()
-{
- delete[] _data;
- if (_f && _own_f) fclose(_f);
-}
-
-
-void
-Slurper::grow_buffer()
-{
- // If we need to keep the upper part of the buffer, shift it down (moving
- // any data we care about).
- if (_pos >= _cap - WorthMoving) {
- // I used to move it myself, with a comment that SunOS didn't have a
- // correct implementation of memmove. This should be detected by
- // configure, if it's really a problem.
- memmove(_data, _data + _pos, _len - _pos);
- _len -= _pos;
- _pos = 0;
- }
-
- // Grow the buffer if necessary.
- if (_len >= _cap) {
- unsigned char *new_data = new unsigned char[ 2 * _cap ];
- // I can't believe I didn't have the line below!!
- memcpy(new_data, _data, _len);
- delete[] _data;
- _data = new_data;
- _cap = 2 * _cap;
- }
-}
-
-
-inline int
-Slurper::more_data()
-{
- grow_buffer();
-
- // Read new data into the buffer.
- int amount = fread(_data + _len, 1, _cap - _len, _f);
- _len += amount;
- return amount;
-}
-
-char *
-Slurper::get_line_at(unsigned pos)
-{
- while (1) {
- for (; pos < _len; pos++)
- if (_data[pos] == '\n' || _data[pos] == '\r')
- goto line_ends_at_pos;
-
- // no line end? look for more data. save and reset `pos', since _pos
- // may change.
- int offset = pos - _pos;
- bool got_more_data = more_data() != 0;
- pos = _pos + offset;
- if (!got_more_data) {
- _at_eof = true;
- goto line_ends_at_pos;
- }
- }
-
- line_ends_at_pos:
-
- // PRECONDITION: the line starts at _pos and ends at pos.
- unsigned next_pos;
-
- // Find beginning of next line. 3 cases:
- // 1. line ends in \r\n -> _pos = pos + 2;
- // 2. line ends in \r OR \n -> _pos = pos + 1;
- // 3. neither -> must be last line in file; _pos = pos,
- // since pos == _len
- if (pos == _len) {
- // last line in file didn't end in `\n': must have no data left
- // ensure we have enough space for terminating nul
- if (pos == _cap) grow_buffer();
- next_pos = pos;
- // if already at EOF, don't increment the line number
- if (pos == _pos) _lineno--;
-
- } else if (_data[pos] == '\n')
- next_pos = pos + 1;
-
- else {
- assert(_data[pos] == '\r');
- // If `\r' is last char in buffer, `\n' might be next char. Must read more
- // data to check for it, or we'd report an empty line that didn't really
- // exist.
- if (pos == _len - 1) {
- // be careful about the possible shift of _pos and _len!
- int offset = pos - _pos;
- more_data();
- pos = _pos + offset;
- }
- if (pos < _len - 1 && _data[pos + 1] == '\n')
- next_pos = pos + 2;
- else
- next_pos = pos + 1;
- }
-
- _line = _data + _pos;
- _line_len = pos - _pos;
- _data[pos] = 0;
- _pos = next_pos;
- _lineno++;
- return (char *)_line;
-}
-
-char *
-Slurper::next_line()
-{
- if (_saved_line) {
- _saved_line = false;
- return (char *)_line;
- }
- get_line_at(_pos);
- if (_line_len == 0 && _at_eof)
- _line = 0;
- return (char *)_line;
-}
-
-char *
-Slurper::peek_line()
-{
- next_line();
- _saved_line = true;
- return (char *)_line;
-}
-
-char *
-Slurper::append_next_line()
-{
- unsigned delta = (_data + _pos) - (_line + _line_len);
- if (_len - _pos > _line_len) {
- memmove(_line + delta, _line, _line_len);
- _line += delta;
- } else {
- memmove(_data + _pos - delta, _data + _pos, _len - _pos);
- _pos -= delta;
- _len -= delta;
- }
-
- unsigned append_at = _pos;
- _pos = _line - _data;
- return get_line_at(append_at);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
deleted file mode 100644
index 6ee6b62f22b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/straccum.cc
+++ /dev/null
@@ -1,306 +0,0 @@
-// -*- related-file-name: "../include/lcdf/straccum.hh" -*-
-/*
- * straccum.{cc,hh} -- build up strings with operator<<
- * Eddie Kohler
- *
- * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2019 Eddie Kohler
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file. These conditions include: you must
- * preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/straccum.hh>
-#include <lcdf/vector.hh>
-#include <stdarg.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-
-/** @class StringAccum
- * @brief Efficiently build up Strings from pieces.
- *
- * Like the String class, StringAccum represents a string of characters.
- * However, unlike a String, a StringAccum is inherently mutable, and
- * efficiently supports building up a large string from many smaller pieces.
- *
- * StringAccum objects support operator<<() operations for most fundamental
- * data types. A StringAccum is generally built up by operator<<(), and then
- * turned into a String by the take_string() method. Extracting the String
- * from a StringAccum does no memory allocation or copying; the StringAccum's
- * memory is donated to the String.
- *
- * <h3>Out-of-memory StringAccums</h3>
- *
- * When there is not enough memory to add requested characters to a
- * StringAccum object, the object becomes a special "out-of-memory"
- * StringAccum. Out-of-memory objects are contagious: the result of any
- * concatenation operation involving an out-of-memory StringAccum is another
- * out-of-memory StringAccum. Appending an out-of-memory String with "sa <<
- * s" makes "sa" out-of-memory. (However, other usually-equivalent calls,
- * such as "sa.append(s.begin(), s.end())", <em>do not</em> make "sa"
- * out-of-memory.) Calling take_string() on an out-of-memory StringAccum
- * returns an out-of-memory String.
- *
- * Out-of-memory StringAccum objects have length zero.
- */
-
-
-void
-StringAccum::assign_out_of_memory()
-{
- assert(_cap >= 0);
- if (_cap > 0)
- delete[] (_s - MEMO_SPACE);
- _s = reinterpret_cast<unsigned char *>(const_cast<char *>(String::out_of_memory_data()));
- _cap = -1;
- _len = 0;
-}
-
-char *
-StringAccum::grow(int want)
-{
- // can't append to out-of-memory strings
- if (_cap < 0) {
- errno = ENOMEM;
- return 0;
- }
-
- int ncap = (_cap ? (_cap + MEMO_SPACE) * 2 : 128) - MEMO_SPACE;
- while (ncap <= want)
- ncap = (ncap + MEMO_SPACE) * 2 - MEMO_SPACE;
-
- unsigned char *n = new unsigned char[ncap + MEMO_SPACE];
- if (!n) {
- assign_out_of_memory();
- errno = ENOMEM;
- return 0;
- }
- n += MEMO_SPACE;
-
- if (_s) {
- memcpy(n, _s, _len);
- delete[] (_s - MEMO_SPACE);
- }
- _s = n;
- _cap = ncap;
- return reinterpret_cast<char *>(_s + _len);
-}
-
-int
-StringAccum::resize(int len)
-{
- assert(len >= 0);
- if (len > _cap && !grow(len))
- return -ENOMEM;
- else {
- _len = len;
- return 0;
- }
-}
-
-char *
-StringAccum::hard_extend(int nadjust, int nreserve)
-{
- char *x = grow(_len + nadjust + nreserve);
- if (x)
- _len += nadjust;
- return x;
-}
-
-const char *
-StringAccum::c_str()
-{
- if (_len < _cap || grow(_len))
- _s[_len] = '\0';
- return reinterpret_cast<char *>(_s);
-}
-
-void
-StringAccum::append_fill(int c, int len)
-{
- if (char *s = extend(len))
- memset(s, c, len);
-}
-
-void
-StringAccum::append_utf8_hard(unsigned ch)
-{
- if (ch < 0x80)
- append((unsigned char) ch);
- else if (ch < 0x800) {
- append((unsigned char) (0xC0 + ((ch >> 6) & 0x1F)));
- append((unsigned char) (0x80 + (ch & 0x3F)));
- } else if (ch < 0x10000) {
- append((unsigned char) (0xE0 + ((ch >> 12) & 0x0F)));
- append((unsigned char) (0x80 + ((ch >> 6) & 0x3F)));
- append((unsigned char) (0x80 + (ch & 0x3F)));
- } else if (ch < 0x110000) {
- append((unsigned char) (0xF0 + ((ch >> 18) & 0x07)));
- append((unsigned char) (0x80 + ((ch >> 12) & 0x3F)));
- append((unsigned char) (0x80 + ((ch >> 6) & 0x3F)));
- append((unsigned char) (0x80 + (ch & 0x3F)));
- } else
- append((unsigned char) '?');
-}
-
-void
-StringAccum::hard_append(const char *s, int len)
-{
- // We must be careful about calls like "sa.append(sa.begin(), sa.end())";
- // a naive implementation might use sa's data after freeing it.
- const char *my_s = reinterpret_cast<char *>(_s);
-
- if (len <= 0) {
- // do nothing
- } else if (_len + len <= _cap) {
- success:
- memcpy(_s + _len, s, len);
- _len += len;
- } else if (s < my_s || s >= my_s + _cap) {
- if (grow(_len + len))
- goto success;
- } else {
- unsigned char *old_s = _s;
- int old_len = _len;
-
- _s = 0;
- _len = 0;
- _cap = 0;
-
- if (char *new_s = extend(old_len + len)) {
- memcpy(new_s, old_s, old_len);
- memcpy(new_s + old_len, s, len);
- }
-
- delete[] (old_s - MEMO_SPACE);
- }
-}
-
-void
-StringAccum::append(const char *s)
-{
- hard_append(s, strlen(s));
-}
-
-String
-StringAccum::take_string()
-{
- int len = length();
- int cap = _cap;
- char *str = reinterpret_cast<char *>(_s);
- if (len > 0) {
- _s = 0;
- _len = _cap = 0;
- return String::make_claim(str, len, cap);
- } else if (!out_of_memory())
- return String();
- else {
- clear();
- return String::make_out_of_memory();
- }
-}
-
-void
-StringAccum::swap(StringAccum &o)
-{
- unsigned char *os = o._s;
- int olen = o._len, ocap = o._cap;
- o._s = _s;
- o._len = _len, o._cap = _cap;
- _s = os;
- _len = olen, _cap = ocap;
-}
-
-/** @relates StringAccum
- @brief Append decimal representation of @a i to @a sa.
- @return @a sa */
-StringAccum &
-operator<<(StringAccum &sa, long i)
-{
- if (char *x = sa.reserve(24)) {
- int len = sprintf(x, "%ld", i);
- sa.adjust_length(len);
- }
- return sa;
-}
-
-/** @relates StringAccum
- @brief Append decimal representation of @a u to @a sa.
- @return @a sa */
-StringAccum &
-operator<<(StringAccum &sa, unsigned long u)
-{
- if (char *x = sa.reserve(24)) {
- int len = sprintf(x, "%lu", u);
- sa.adjust_length(len);
- }
- return sa;
-}
-
-StringAccum &
-operator<<(StringAccum &sa, double d)
-{
- if (char *x = sa.reserve(256)) {
- int len = sprintf(x, "%.12g", d);
- sa.adjust_length(len);
- }
- return sa;
-}
-
-StringAccum &
-StringAccum::snprintf(int n, const char *format, ...)
-{
- va_list val;
- va_start(val, format);
- if (char *x = reserve(n + 1)) {
-#if HAVE_VSNPRINTF
- int len = vsnprintf(x, n + 1, format, val);
-#else
- int len = vsprintf(x, format, val);
- assert(len <= n);
-#endif
- adjust_length(len);
- }
- va_end(val);
- return *this;
-}
-
-void
-StringAccum::append_break_lines(const String& text, int linelen, const String &leftmargin)
-{
- if (text.length() == 0)
- return;
- const char* line = text.begin();
- const char* ends = text.end();
- linelen -= leftmargin.length();
- for (const char* s = line; s < ends; s++) {
- const char* start = s;
- while (s < ends && isspace((unsigned char) *s))
- s++;
- const char* word = s;
- while (s < ends && !isspace((unsigned char) *s))
- s++;
- if (s - line > linelen && start > line) {
- *this << leftmargin;
- append(line, start - line);
- *this << '\n';
- line = word;
- }
- }
- if (line < text.end()) {
- *this << leftmargin;
- append(line, text.end() - line);
- *this << '\n';
- }
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
deleted file mode 100644
index 41e7ae0d602..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/string.cc
+++ /dev/null
@@ -1,786 +0,0 @@
-// -*- related-file-name: "../include/lcdf/string.hh" -*-
-/*
- * string.{cc,hh} -- a String class with shared substrings
- * Eddie Kohler
- *
- * Copyright (c) 1999-2000 Massachusetts Institute of Technology
- * Copyright (c) 2001-2019 Eddie Kohler
- * Copyright (c) 2008-2009 Meraki, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file. These conditions include: you must
- * preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/string.hh>
-#include <lcdf/straccum.hh>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <lcdf/inttypes.h>
-
-#ifndef likely
-#define likely(x) (x)
-#endif
-#ifndef unlikely
-#define unlikely(x) (x)
-#endif
-
-/** @file string.hh
- * @brief The LCDF String class.
- */
-
-/** @class String
- * @brief A string of characters.
- *
- * The String class represents a string of characters. Strings may be
- * constructed from C strings, characters, numbers, and so forth. They may
- * also be added together. The underlying character arrays are dynamically
- * allocated; String operations allocate and free memory as needed. A String
- * and its substrings generally share memory. Accessing a character by index
- * takes O(1) time; so does creating a substring.
- *
- * <h3>Out-of-memory strings</h3>
- *
- * When there is not enough memory to create a particular string, a special
- * "out-of-memory" string is returned instead. Out-of-memory strings are
- * contagious: the result of any concatenation operation involving an
- * out-of-memory string is another out-of-memory string. Thus, the final
- * result of a series of String operations will be an out-of-memory string,
- * even if the out-of-memory condition occurs in the middle.
- *
- * Out-of-memory strings have zero characters, but they aren't equal to other
- * empty strings. If @a s is a normal String (even an empty string), and @a
- * oom is an out-of-memory string, then @a s @< @a oom.
- *
- * All out-of-memory strings are equal and share the same data(), which is
- * different from the data() of any other string. See
- * String::out_of_memory_data(). The String::make_out_of_memory() function
- * returns an out-of-memory string.
- */
-
-const char String::null_data = '\0';
-const char String::oom_data = '\0';
-const char String::bool_data[] = "true\0false";
-const char String::int_data[] = "0\0001\0002\0003\0004\0005\0006\0007\0008\0009";
-
-#if HAVE_STRING_PROFILING > 1
-# define MEMO_INITIALIZER_TAIL , 0, 0
-#else
-# define MEMO_INITIALIZER_TAIL
-#endif
-
-const String::rep_t String::null_string_rep = {
- &null_data, 0, 0
-};
-const String::rep_t String::oom_string_rep = {
- &oom_data, 0, 0
-};
-
-#if HAVE_STRING_PROFILING
-uint64_t String::live_memo_count;
-uint64_t String::memo_sizes[55];
-uint64_t String::live_memo_sizes[55];
-uint64_t String::live_memo_bytes[55];
-# if HAVE_STRING_PROFILING > 1
-String::memo_t *String::live_memos[55];
-# endif
-#endif
-
-/** @cond never */
-String::memo_t *
-String::create_memo(char *space, int dirty, int capacity)
-{
- assert(capacity > 0 && capacity >= dirty);
- memo_t *memo;
- if (space)
- memo = reinterpret_cast<memo_t *>(space);
- else
- memo = reinterpret_cast<memo_t *>(new char[MEMO_SPACE + capacity]);
- if (memo) {
- memo->capacity = capacity;
- memo->dirty = dirty;
- memo->refcount = (space ? 0 : 1);
-#if HAVE_STRING_PROFILING
- int bucket = profile_memo_size_bucket(dirty, capacity);
- ++memo_sizes[bucket];
- ++live_memo_sizes[bucket];
- live_memo_bytes[bucket] += capacity;
- ++live_memo_count;
-# if HAVE_STRING_PROFILING > 1
- memo->pprev = &live_memos[bucket];
- if ((memo->next = *memo->pprev))
- memo->next->pprev = &memo->next;
- *memo->pprev = memo;
-# endif
-#endif
- }
- return memo;
-}
-
-void
-String::delete_memo(memo_t *memo)
-{
- assert(memo->capacity > 0);
- assert(memo->capacity >= memo->dirty);
-#if HAVE_STRING_PROFILING
- int bucket = profile_memo_size_bucket(memo->dirty, memo->capacity);
- --live_memo_sizes[bucket];
- live_memo_bytes[bucket] -= memo->capacity;
- --live_memo_count;
-# if HAVE_STRING_PROFILING > 1
- if ((*memo->pprev = memo->next))
- memo->next->pprev = memo->pprev;
-# endif
-#endif
- delete[] reinterpret_cast<char *>(memo);
-}
-
-
-#if HAVE_STRING_PROFILING
-void
-String::one_profile_report(StringAccum &sa, int i, int examples)
-{
- if (i <= 16)
- sa << "memo_dirty_" << i;
- else if (i < 25) {
- uint32_t s = (i - 17) * 2 + 17;
- sa << "memo_cap_" << s << '_' << (s + 1);
- } else if (i < 29) {
- uint32_t s = (i - 25) * 8 + 33;
- sa << "memo_cap_" << s << '_' << (s + 7);
- } else {
- uint32_t s1 = (1U << (i - 23)) + 1;
- uint32_t s2 = (s1 - 1) << 1;
- sa << "memo_cap_" << s1 << '_' << s2;
- }
- sa << '\t' << live_memo_sizes[i] << '\t' << memo_sizes[i] << '\t' << live_memo_bytes[i] << '\n';
- if (examples) {
-# if HAVE_STRING_PROFILING > 1
- for (memo_t *m = live_memos[i]; m; m = m->next) {
- sa << " [" << m->dirty << "] ";
- uint32_t dirty = m->dirty;
- if (dirty > 0 && m->real_data[dirty - 1] == '\0')
- --dirty;
- sa.append(m->real_data, dirty > 128 ? 128 : dirty);
- sa << '\n';
- }
-# endif
- }
-}
-
-void
-String::profile_report(StringAccum &sa, int examples)
-{
- uint64_t all_live_sizes = 0, all_sizes = 0, all_live_bytes = 0;
- for (int i = 0; i < 55; ++i) {
- if (memo_sizes[i])
- one_profile_report(sa, i, examples);
- all_live_sizes += live_memo_sizes[i];
- all_sizes += memo_sizes[i];
- all_live_bytes += live_memo_bytes[i];
- }
- sa << "memo_total\t" << all_live_sizes << '\t' << all_sizes << '\t' << all_live_bytes << '\n';
-}
-#endif
-
-/** @endcond never */
-
-
-/** @brief Construct a base-10 string representation of @a x. */
-String::String(int x)
-{
- if (x >= 0 && x < 10)
- assign_memo(int_data + 2 * x, 1, 0);
- else {
- char buf[128];
- sprintf(buf, "%d", x);
- assign(buf, -1, false);
- }
-}
-
-/** @overload */
-String::String(unsigned x)
-{
- if (x < 10)
- assign_memo(int_data + 2 * x, 1, 0);
- else {
- char buf[128];
- sprintf(buf, "%u", x);
- assign(buf, -1, false);
- }
-}
-
-/** @overload */
-String::String(long x)
-{
- if (x >= 0 && x < 10)
- assign_memo(int_data + 2 * x, 1, 0);
- else {
- char buf[128];
- sprintf(buf, "%ld", x);
- assign(buf, -1, false);
- }
-}
-
-/** @overload */
-String::String(unsigned long x)
-{
- if (x < 10)
- assign_memo(int_data + 2 * x, 1, 0);
- else {
- char buf[128];
- sprintf(buf, "%lu", x);
- assign(buf, -1, false);
- }
-}
-
-String::String(double x)
-{
- char buf[128];
- int len = sprintf(buf, "%.12g", x);
- assign(buf, len, false);
-}
-
-String
-String::make_claim(char *str, int len, int capacity)
-{
- assert(str && len > 0 && capacity >= len);
- memo_t *new_memo = create_memo(str - MEMO_SPACE, len, capacity);
- return String(str, len, new_memo);
-}
-
-String
-String::make_stable(const char *s, int len)
-{
- if (len < 0)
- len = (s ? strlen(s) : 0);
- return String(s, len, 0);
-}
-
-String
-String::make_fill(int c, int len)
-{
- String s;
- s.append_fill(c, len);
- return s;
-}
-
-void
-String::assign_out_of_memory()
-{
- if (_r.memo)
- deref();
- _r.memo = 0;
- _r.data = &oom_data;
- _r.length = 0;
-}
-
-void
-String::assign(const char *s, int len, bool need_deref)
-{
- if (!s) {
- assert(len <= 0);
- len = 0;
- } else if (len < 0)
- len = strlen(s);
-
- // need to start with dereference
- if (need_deref) {
- if (unlikely(_r.memo
- && s >= _r.memo->real_data
- && s + len <= _r.memo->real_data + _r.memo->capacity)) {
- // Be careful about "String s = ...; s = s.c_str();"
- _r.data = s;
- _r.length = len;
- return;
- } else
- deref();
- }
-
- if (len == 0) {
- _r.memo = 0;
- _r.data = (s == &oom_data ? s : &null_data);
-
- } else {
- // Make the memo a multiple of 16 characters and bigger than 'len'.
- int memo_capacity = (len + 15 + MEMO_SPACE) & ~15;
- _r.memo = create_memo(0, len, memo_capacity - MEMO_SPACE);
- if (!_r.memo) {
- assign_out_of_memory();
- return;
- }
- memcpy(_r.memo->real_data, s, len);
- _r.data = _r.memo->real_data;
- }
-
- _r.length = len;
-}
-
-/** @brief Append @a len unknown characters to this string.
- * @return Modifiable pointer to the appended characters.
- *
- * The caller may safely modify the returned memory. Null is returned if
- * the string becomes out-of-memory. */
-char *
-String::append_uninitialized(int len)
-{
- // Appending anything to "out of memory" leaves it as "out of memory"
- if (unlikely(len <= 0) || out_of_memory())
- return 0;
-
- // If we can, append into unused space. First, we check that there's
- // enough unused space for 'len' characters to fit; then, we check
- // that the unused space immediately follows the data in '*this'.
- uint32_t dirty;
- if (_r.memo
- && ((dirty = _r.memo->dirty), _r.memo->capacity > dirty + len)) {
- char *real_dirty = _r.memo->real_data + dirty;
- if (real_dirty == _r.data + _r.length) {
- _r.memo->dirty = dirty + len;
- _r.length += len;
- assert(_r.memo->dirty < _r.memo->capacity);
-#if HAVE_STRING_PROFILING
- profile_update_memo_dirty(_r.memo, dirty, dirty + len, _r.memo->capacity);
-#endif
- return real_dirty;
- }
- }
-
- // Now we have to make new space. Make sure the memo is a multiple of 16
- // bytes and that it is at least 16. But for large strings, allocate a
- // power of 2, since power-of-2 sizes minimize waste in frequently-used
- // allocators, like Linux kmalloc.
- int want_memo_len = _r.length + len + MEMO_SPACE;
- int memo_capacity;
- if (want_memo_len <= 1024)
- memo_capacity = (want_memo_len + 15) & ~15;
- else
- for (memo_capacity = 2048; memo_capacity < want_memo_len; )
- memo_capacity *= 2;
-
- memo_t *new_memo = create_memo(0, _r.length + len, memo_capacity - MEMO_SPACE);
- if (!new_memo) {
- assign_out_of_memory();
- return 0;
- }
-
- char *new_data = new_memo->real_data;
- memcpy(new_data, _r.data, _r.length);
-
- deref();
- _r.data = new_data;
- new_data += _r.length; // now new_data points to the garbage
- _r.length += len;
- _r.memo = new_memo;
- return new_data;
-}
-
-void
-String::append(const char *s, int len, memo_t *memo)
-{
- if (!s) {
- assert(len <= 0);
- len = 0;
- } else if (len < 0)
- len = strlen(s);
-
- if (s == &oom_data)
- // Appending "out of memory" to a regular string makes it "out of
- // memory"
- assign_out_of_memory();
- else if (len == 0)
- /* do nothing */;
- else if (_r.length == 0 && memo && !out_of_memory()) {
- deref();
- assign_memo(s, len, memo);
- } else if (likely(!(_r.memo
- && s >= _r.memo->real_data
- && s + len <= _r.memo->real_data + _r.memo->capacity))) {
- if (char *space = append_uninitialized(len))
- memcpy(space, s, len);
- } else {
- String preserve_s(*this);
- if (char *space = append_uninitialized(len))
- memcpy(space, s, len);
- }
-}
-
-/** @brief Append @a len copies of character @a c to this string. */
-void
-String::append_fill(int c, int len)
-{
- assert(len >= 0);
- if (char *space = append_uninitialized(len))
- memset(space, c, len);
-}
-
-/** @brief Ensure the string's data is unshared and return a mutable
- pointer to it. */
-char *
-String::mutable_data()
-{
- // If _memo has a capacity (it's not one of the special strings) and it's
- // uniquely referenced, return _data right away.
- if (_r.memo && _r.memo->refcount == 1)
- return const_cast<char *>(_r.data);
-
- // Otherwise, make a copy of it. Rely on: deref() doesn't change _data or
- // _length; and if _capacity == 0, then deref() doesn't free _real_data.
- assert(!_r.memo || _r.memo->refcount > 1);
- // But in multithreaded situations we must hold a local copy of memo!
- String do_not_delete_underlying_memo(*this);
- deref();
- assign(_r.data, _r.length, false);
- return const_cast<char *>(_r.data);
-}
-
-char *
-String::mutable_c_str()
-{
- (void) mutable_data();
- (void) c_str();
- return const_cast<char *>(_r.data);
-}
-
-/** @brief Return a substring of this string, consisting of the @a len
- characters starting at index @a pos.
- @param pos substring's first position relative to the string
- @param len length of substring
-
- If @a pos is negative, starts that far from the end of the string. If @a
- len is negative, leaves that many characters off the end of the string.
- If @a pos and @a len specify a substring that is partly outside the
- string, only the part within the string is returned. If the substring is
- beyond either end of the string, returns an empty string (but this
- should be considered a programming error; a future version may generate
- a warning for this case).
-
- @note String::substring() is intended to behave like Perl's substr(). */
-String
-String::substring(int pos, int len) const
-{
- if (pos < 0)
- pos += _r.length;
-
- int pos2;
- if (len < 0)
- pos2 = _r.length + len;
- else if (pos >= 0 && len >= _r.length) // avoid integer overflow
- pos2 = _r.length;
- else
- pos2 = pos + len;
-
- if (pos < 0)
- pos = 0;
- if (pos2 > _r.length)
- pos2 = _r.length;
-
- if (pos >= pos2)
- return String();
- else
- return String(_r.data + pos, pos2 - pos, _r.memo);
-}
-
-int
-String::find_left(char c, int start) const
-{
- if (start < 0)
- start = 0;
- for (int i = start; i < _r.length; i++)
- if (_r.data[i] == c)
- return i;
- return -1;
-}
-
-int
-String::find_left(const String &str, int start) const
-{
- if (start < 0)
- start = 0;
- int max_pos = length() - str.length();
- for (int i = start; i <= max_pos; ++i)
- if (memcmp(_r.data + i, str.data(), str.length()) == 0)
- return i;
- return -1;
-}
-
-int
-String::find_right(char c, int start) const
-{
- if (start >= _r.length)
- start = _r.length - 1;
- for (int i = start; i >= 0; i--)
- if (_r.data[i] == c)
- return i;
- return -1;
-}
-
-static String
-hard_lower(const String &s, int pos)
-{
- String new_s(s.data(), s.length());
- char *x = const_cast<char *>(new_s.data()); // know it's mutable
- int len = s.length();
- for (; pos < len; pos++)
- x[pos] = tolower((unsigned char) x[pos]);
- return new_s;
-}
-
-/** @brief Return a lowercased version of this string.
-
- Translates the ASCII characters 'A' through 'Z' into their lowercase
- equivalents. */
-String
-String::lower() const
-{
- // avoid copies
- if (!out_of_memory())
- for (int i = 0; i < _r.length; i++)
- if (_r.data[i] >= 'A' && _r.data[i] <= 'Z')
- return hard_lower(*this, i);
- return *this;
-}
-
-static String
-hard_upper(const String &s, int pos)
-{
- String new_s(s.data(), s.length());
- char *x = const_cast<char *>(new_s.data()); // know it's mutable
- int len = s.length();
- for (; pos < len; pos++)
- x[pos] = toupper((unsigned char) x[pos]);
- return new_s;
-}
-
-/** @brief Return an uppercased version of this string.
-
- Translates the ASCII characters 'a' through 'z' into their uppercase
- equivalents. */
-String
-String::upper() const
-{
- // avoid copies
- for (int i = 0; i < _r.length; i++)
- if (_r.data[i] >= 'a' && _r.data[i] <= 'z')
- return hard_upper(*this, i);
- return *this;
-}
-
-static String
-hard_printable(const String &s, int pos, int type)
-{
- StringAccum sa(s.length() * 2);
- sa.append(s.data(), pos);
- const unsigned char *x = reinterpret_cast<const unsigned char *>(s.data());
- int len = s.length();
- for (; pos < len; pos++) {
- if (x[pos] >= 32 && x[pos] < 127)
- sa << x[pos];
- else if (x[pos] < 32 && type != 1)
- sa << '^' << (unsigned char)(x[pos] + 64);
- else if (char *buf = sa.extend(4, 1))
- sprintf(buf, "\\%03o", x[pos]);
- }
- return sa.take_string();
-}
-
-/** @brief Return a "printable" version of this string.
- @param type quoting type
-
- The default quoting type (0) translates control characters 0-31 into
- "control" sequences, such as "^@" for the null character, and characters
- 127-255 into octal escape sequences, such as "\377" for 255. Quoting
- type 1 translates all characters outside of 32-126 into octal escape
- sequences. */
-String
-String::printable(int type) const
-{
- // avoid copies
- if (!out_of_memory())
- for (int i = 0; i < _r.length; i++)
- if (_r.data[i] < 32 || _r.data[i] > 126)
- return hard_printable(*this, i, type);
- return *this;
-}
-
-hashcode_t
-String::hashcode(const char *begin, const char *end)
-{
- if (end <= begin)
- return 0;
-
- uint32_t hash = end - begin;
- int rem = hash & 3;
- end -= rem;
- uint32_t last16;
-
-#if !HAVE_INDIFFERENT_ALIGNMENT
- if (!(reinterpret_cast<uintptr_t>(begin) & 1)) {
-#endif
-#define get16(p) (*reinterpret_cast<const uint16_t *>((p)))
- for (; begin != end; begin += 4) {
- hash += get16(begin);
- uint32_t tmp = (get16(begin + 2) << 11) ^ hash;
- hash = (hash << 16) ^ tmp;
- hash += hash >> 11;
- }
- if (rem >= 2) {
- last16 = get16(begin);
- goto rem2;
- }
-#undef get16
-#if !HAVE_INDIFFERENT_ALIGNMENT
- } else {
-# if WORDS_BIGENDIAN
-# define get16(p) (((unsigned char) (p)[0] << 8) + (unsigned char) (p)[1])
-# elif WORDS_BIGENDIAN_SET
-# define get16(p) ((unsigned char) (p)[0] + ((unsigned char) (p)[1] << 8))
-# else
-# error "unknown byte order"
-# endif
- // should be exactly the same as the code above
- for (; begin != end; begin += 4) {
- hash += get16(begin);
- uint32_t tmp = (get16(begin + 2) << 11) ^ hash;
- hash = (hash << 16) ^ tmp;
- hash += hash >> 11;
- }
- if (rem >= 2) {
- last16 = get16(begin);
- goto rem2;
- }
-# undef get16
- }
-#endif
-
- /* Handle end cases */
- if (0) { // weird organization avoids uninitialized
- rem2: // variable warnings
- if (rem == 3) {
- hash += last16;
- hash ^= hash << 16;
- hash ^= ((unsigned char) begin[2]) << 18;
- hash += hash >> 11;
- } else {
- hash += last16;
- hash ^= hash << 11;
- hash += hash >> 17;
- }
- } else if (rem == 1) {
- hash += (unsigned char) *begin;
- hash ^= hash << 10;
- hash += hash >> 1;
- }
-
- /* Force "avalanching" of final 127 bits */
- hash ^= hash << 3;
- hash += hash >> 5;
- hash ^= hash << 4;
- hash += hash >> 17;
- hash ^= hash << 25;
- hash += hash >> 6;
-
- return hash;
-}
-
-#if 0
-// 11.Apr.2008 -- This old hash function was swapped out in favor of
-// SuperFastHash, above.
-hashcode_t
-String::hashcode() const
-{
- int l = length();
- const char *d = data();
- if (!l)
- return 0;
- else if (l == 1)
- return d[0] | (d[0] << 8);
- else if (l < 4)
- return d[0] + (d[1] << 3) + (l << 12);
- else
- return d[0] + (d[1] << 8) + (d[2] << 16) + (d[3] << 24)
- + (l << 12) + (d[l-1] << 10);
-}
-#endif
-
-bool
-String::equals(const char *s, int len) const
-{
- // It'd be nice to make "out-of-memory" strings compare unequal to
- // anything, even themselves, but this would be a bad idea for Strings
- // used as (for example) keys in hashtables. Instead, "out-of-memory"
- // strings compare unequal to other null strings, but equal to each other.
- if (len < 0)
- len = strlen(s);
- if (_r.length != len)
- return false;
- else if (_r.data == s)
- return true;
- else if (len == 0)
- return (s != &oom_data && _r.data != &oom_data);
- else
- return memcmp(_r.data, s, len) == 0;
-}
-
-bool
-String::starts_with(const char *s, int len) const
-{
- // See note on equals() re: "out-of-memory" strings.
- if (len < 0)
- len = strlen(s);
- if (_r.length < len)
- return false;
- else if (_r.data == s)
- return true;
- else if (len == 0)
- return (s != &oom_data && _r.data != &oom_data);
- else
- return memcmp(_r.data, s, len) == 0;
-}
-
-int
-String::compare(const char *s, int len) const
-{
- if (len < 0)
- len = strlen(s);
- if (_r.data == s)
- return _r.length - len;
- else if (_r.data == &oom_data)
- return 1;
- else if (s == &oom_data)
- return -1;
- else if (_r.length == len)
- return memcmp(_r.data, s, len);
- else if (_r.length < len) {
- int v = memcmp(_r.data, s, _r.length);
- return (v ? v : -1);
- } else {
- int v = memcmp(_r.data, s, len);
- return (v ? v : 1);
- }
-}
-
-void
-String::align(int n)
-{
- int offset = reinterpret_cast<uintptr_t>(_r.data) % n;
- if (offset) {
- String s;
- s.append_uninitialized(_r.length + n + 1);
- offset = reinterpret_cast<uintptr_t>(s._r.data) % n;
- memcpy((char *)s._r.data + n - offset, _r.data, _r.length);
- s._r.data += n - offset;
- s._r.length = _r.length;
- *this = s;
- }
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/strtonum.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/strtonum.c
deleted file mode 100644
index 36898c5a7ad..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/strtonum.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- related-file-name: "../include/lcdf/strtonum.h" -*- */
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/strtonum.h>
-#include <stdlib.h>
-#if HAVE_BROKEN_STRTOD
-# define strtod good_strtod
-#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A faster strtod which only calls the real strtod if the string has a
- fractional part. */
-
-double
-strtonumber(const char *f, char **endf)
-{
- long v = strtol((char *)f, endf, 10);
-
- /* handle any possible decimal part */
- if (**endf == '.' || **endf == 'E' || **endf == 'e')
- return strtod((char *)f, endf);
- else
- return v;
-}
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
deleted file mode 100644
index 8f92dfeba83..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/transform.cc
+++ /dev/null
@@ -1,182 +0,0 @@
-// -*- related-file-name: "../include/lcdf/transform.hh" -*-
-
-/* transform.{cc,hh} -- planar affine transformations
- *
- * Copyright (c) 2000-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/transform.hh>
-#include <lcdf/straccum.hh>
-#include <math.h>
-
-Transform::Transform()
-{
- _m[0] = _m[3] = 1;
- _m[1] = _m[2] = _m[4] = _m[5] = 0;
- _null = true;
-}
-
-Transform::Transform(const double m[6])
-{
- _m[0] = m[0];
- _m[1] = m[1];
- _m[2] = m[2];
- _m[3] = m[3];
- _m[4] = m[4];
- _m[5] = m[5];
- check_null(0);
-}
-
-Transform::Transform(double m0, double m1, double m2,
- double m3, double m4, double m5)
-{
- _m[0] = m0;
- _m[1] = m1;
- _m[2] = m2;
- _m[3] = m3;
- _m[4] = m4;
- _m[5] = m5;
- check_null(0);
-}
-
-void
-Transform::check_null(double tolerance)
-{
- _null = (fabs(_m[0] - 1) < tolerance && fabs(_m[1]) < tolerance
- && fabs(_m[2]) < tolerance && fabs(_m[3] - 1) < tolerance
- && fabs(_m[4]) < tolerance && fabs(_m[5]) < tolerance);
-}
-
-
-void
-Transform::scale(double x, double y)
-{
- _m[0] *= x;
- _m[1] *= x;
- _m[2] *= y;
- _m[3] *= y;
-
- if (x != 1 || y != 1)
- _null = false;
-}
-
-void
-Transform::rotate(double r)
-{
- double c = cos(r);
- double s = sin(r);
-
- double a = _m[0], b = _m[2];
- _m[0] = a*c + b*s;
- _m[2] = b*c - a*s;
-
- a = _m[1], b = _m[3];
- _m[1] = a*c + b*s;
- _m[3] = b*c - a*s;
-
- if (r != 0)
- _null = false;
-}
-
-void
-Transform::translate(double x, double y)
-{
- _m[4] += _m[0]*x + _m[2]*y;
- _m[5] += _m[1]*x + _m[3]*y;
-
- if (x != 0 || y != 0)
- _null = false;
-}
-
-void Transform::raw_translate(double x, double y) {
- _m[4] += x;
- _m[5] += y;
-
- if (x != 0 || y != 0)
- _null = false;
-}
-
-void
-Transform::shear(double s)
-{
- *this *= Transform(1, 0, s, 1, 0, 0);
-}
-
-Transform& Transform::operator*=(const Transform& x) {
- if (x.null())
- /* do nothing */;
- else if (null())
- memcpy(_m, x._m, sizeof(_m));
- else {
- double m[6];
- m[0] = _m[0] * x._m[0] + _m[2] * x._m[1];
- m[1] = _m[1] * x._m[0] + _m[3] * x._m[1];
- m[2] = _m[0] * x._m[2] + _m[2] * x._m[3];
- m[3] = _m[1] * x._m[2] + _m[3] * x._m[3];
- m[4] = _m[0] * x._m[4] + _m[2] * x._m[5] + _m[4];
- m[5] = _m[1] * x._m[4] + _m[3] * x._m[5] + _m[5];
- memcpy(_m, m, sizeof(_m));
- }
- return *this;
-}
-
-
-void
-Transform::real_apply_to(Point &p) const
-{
- double x = p.x;
- p.x = x*_m[0] + p.y*_m[2] + _m[4];
- p.y = x*_m[1] + p.y*_m[3] + _m[5];
-}
-
-Point
-Transform::real_apply(const Point &p) const
-{
- return Point(p.x*_m[0] + p.y*_m[2] + _m[4],
- p.x*_m[1] + p.y*_m[3] + _m[5]);
-}
-
-Bezier &
-operator*=(Bezier &b, const Transform &t)
-{
- if (!t.null()) {
- b.mpoint(0) *= t;
- b.mpoint(1) *= t;
- b.mpoint(2) *= t;
- b.mpoint(3) *= t;
- }
- return b;
-}
-
-Bezier
-operator*(const Bezier &b, const Transform &t)
-{
- return (t.null()
- ? b
- : Bezier(b.point(0) * t, b.point(1) * t, b.point(2) * t, b.point(3) * t));
-}
-
-String
-Transform::unparse() const
-{
- StringAccum sa;
- sa << '[';
- for (int i = 0; i < 6; i++) {
- if (i)
- sa << ',' << ' ';
- sa << _m[i];
- }
- sa << ']';
- return sa.take_string();
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/vectorv.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/vectorv.cc
deleted file mode 100644
index eee30630f9f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/liblcdf/vectorv.cc
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * vectorv.cc -- template specialization for Vector<void*>
- * Eddie Kohler
- *
- * Copyright (c) 1999-2006 Massachusetts Institute of Technology
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, subject to the conditions
- * listed in the Click LICENSE file. These conditions include: you must
- * preserve this copyright notice, and you cannot mention the copyright
- * holders in advertising related to the Software without their permission.
- * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This
- * notice is a summary of the Click LICENSE file; the license in that file is
- * legally binding.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <lcdf/vector.hh>
-#include <string.h>
-
-Vector<void*>::Vector(const Vector<void*> &o)
- : _l(0), _n(0), _capacity(0)
-{
- *this = o;
-}
-
-Vector<void*>::~Vector()
-{
- delete[] _l;
-}
-
-Vector<void*> &
-Vector<void*>::operator=(const Vector<void*> &o)
-{
- if (&o != this) {
- _n = 0;
- if (reserve(o._n)) {
- _n = o._n;
- memcpy(_l, o._l, sizeof(void *) * _n);
- }
- }
- return *this;
-}
-
-Vector<void*> &
-Vector<void*>::assign(int n, void *e)
-{
- _n = 0;
- resize(n, e);
- return *this;
-}
-
-bool
-Vector<void*>::reserve(int want)
-{
- if (want < 0)
- want = (_capacity > 0 ? _capacity * 2 : 4);
- if (want <= _capacity)
- return true;
-
- void **new_l = new void*[want];
- if (!new_l)
- return false;
-
- if (_n) {
- memcpy(new_l, _l, sizeof(void*) * _n);
- }
- delete[] _l;
-
- _l = new_l;
- _capacity = want;
- return true;
-}
-
-Vector<void*>::iterator
-Vector<void*>::erase(iterator a, iterator b)
-{
- if (b > a) {
- assert(a >= begin() && b <= end());
- memmove(a, b, (end() - b) * sizeof(void*));
- _n -= b - a;
- return a;
- } else
- return b;
-}
-
-void
-Vector<void*>::resize(int nn, void *e)
-{
- if (nn <= _capacity || reserve(nn)) {
- for (int i = _n; i < nn; i++)
- _l[i] = e;
- _n = nn;
- }
-}
-
-void
-Vector<void*>::swap(Vector<void*>& o)
-{
- void **l = _l;
- int n = _n;
- int cap = _capacity;
- _l = o._l;
- _n = o._n;
- _capacity = o._capacity;
- o._l = l;
- o._n = n;
- o._capacity = cap;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/m4/lcdf-typetools.m4 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/m4/lcdf-typetools.m4
deleted file mode 100644
index 7aaff4c33af..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/m4/lcdf-typetools.m4
+++ /dev/null
@@ -1,15 +0,0 @@
-## Define configure options for lcdf-typetools. Extracted from configure.ac
-## for ease of building TeX Live.
-m4_define_default([kpse_indent_26], [26])[]dnl
-m4_define([kpse_lcdf_typetools_progs], [cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1rawafm t1reencode t1testpage ttftotype42])[]dnl
-AC_FOREACH([Kpse_Prog], kpse_lcdf_typetools_progs,
- [AC_ARG_ENABLE(Kpse_Prog,
- AS_HELP_STRING([--disable-]Kpse_Prog,
- [do not build the ]Kpse_Prog[ program],
- kpse_indent_26))])
-m4_define([kpse_otftotfm_auto_opts], [cfftot1 t1dotlessj ttftotype42 updmap])[]dnl
-AC_FOREACH([Kpse_Opt], kpse_otftotfm_auto_opts,
- [AC_ARG_ENABLE(Kpse_Opt,
- AS_HELP_STRING([--disable-auto-]Kpse_Opt,
- [disable running ]Kpse_Opt[ from otftotfm],
- kpse_indent_26))])
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.am
deleted file mode 100644
index acabc098098..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = mmafm
-man_MANS = mmafm.1
-
-mmafm_SOURCES = main.cc
-
-mmafm_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = mmafm.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.in
deleted file mode 100644
index 2b7e846d241..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/Makefile.in
+++ /dev/null
@@ -1,748 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = mmafm$(EXEEXT)
-subdir = lcdf-typetools-src/mmafm
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_mmafm_OBJECTS = main.$(OBJEXT)
-mmafm_OBJECTS = $(am_mmafm_OBJECTS)
-mmafm_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/main.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(mmafm_SOURCES)
-DIST_SOURCES = $(mmafm_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = mmafm.1
-mmafm_SOURCES = main.cc
-mmafm_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = mmafm.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/mmafm/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/mmafm/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-mmafm$(EXEEXT): $(mmafm_OBJECTS) $(mmafm_DEPENDENCIES) $(EXTRA_mmafm_DEPENDENCIES)
- @rm -f mmafm$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(mmafm_OBJECTS) $(mmafm_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/main.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/main.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
deleted file mode 100644
index 67e635f662a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/main.cc
+++ /dev/null
@@ -1,434 +0,0 @@
-/* main.cc -- driver for mmafm program
- *
- * Copyright (c) 1997-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/findmet.hh>
-#include <efont/psres.hh>
-#include <lcdf/slurper.hh>
-#include <efont/afm.hh>
-#include <efont/afmw.hh>
-#include <efont/amfm.hh>
-#include <lcdf/error.hh>
-#include <lcdf/clp.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <math.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-
-#define WEIGHT_OPT 300
-#define WIDTH_OPT 301
-#define OPSIZE_OPT 302
-#define STYLE_OPT 303
-#define N1_OPT 304
-#define N2_OPT 305
-#define N3_OPT 306
-#define N4_OPT 307
-#define VERSION_OPT 308
-#define HELP_OPT 309
-#define OUTPUT_OPT 310
-#define PRECISION_OPT 311
-#define KERN_PREC_OPT 312
-
-const Clp_Option options[] = {
- { "1", '1', N1_OPT, Clp_ValDouble, 0 },
- { "2", '2', N2_OPT, Clp_ValDouble, 0 },
- { "3", '3', N3_OPT, Clp_ValDouble, 0 },
- { "4", '4', N4_OPT, Clp_ValDouble, 0 },
- { "weight", 'w', WEIGHT_OPT, Clp_ValDouble, 0 },
- { "width", 'W', WIDTH_OPT, Clp_ValDouble, 0 },
- { "optical-size", 'O', OPSIZE_OPT, Clp_ValDouble, 0 },
- { "style", 0, STYLE_OPT, Clp_ValDouble, 0 },
- { "wt", 0, WEIGHT_OPT, Clp_ValDouble, 0 },
- { "wd", 0, WIDTH_OPT, Clp_ValDouble, 0 },
- { "min-kern", 'k', KERN_PREC_OPT, Clp_ValDouble, 0 },
- { "minimum-kern", 'k', KERN_PREC_OPT, Clp_ValDouble, 0 },
- { "kern-precision", 'k', KERN_PREC_OPT, Clp_ValDouble, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "precision", 'p', PRECISION_OPT, Clp_ValInt, 0 },
- { "version", 'v', VERSION_OPT, 0, 0 },
- { "help", 'h', HELP_OPT, 0, 0 },
-};
-
-using namespace Efont;
-
-
-static const char *program_name;
-static ErrorHandler *errh;
-static AmfmMetrics *amfm;
-
-static Vector<PermString> ax_names;
-static Vector<int> ax_nums;
-static Vector<double> values;
-
-static void
-set_design(PermString a, double v)
-{
- ax_names.push_back(a);
- ax_nums.push_back(-1);
- values.push_back(v);
-}
-
-static void
-set_design(int a, double v)
-{
- ax_names.push_back(PermString());
- ax_nums.push_back(a);
- values.push_back(v);
-}
-
-static void
-set_amfm(AmfmMetrics *a)
-{
- if (a) {
- if (amfm) errh->fatal("already read one AMFM file");
- amfm = a;
- }
-}
-
-
-// apply precision
-static inline void
-pround(double &v, double multiplier, double divider)
-{
- if (KNOWN(v))
- v = floor(v * multiplier + 0.5) * divider;
-}
-
-static void
-apply_precision(Metrics *m, int precision)
-{
- if (precision < 0)
- return;
-
- double multiplier = 1, divider = 1;
- for (int i = 0; i < precision; i++)
- multiplier *= 10, divider /= 10;
-
- for (int i = 0; i < m->nfd(); i++)
- pround(m->fd(i), multiplier, divider);
-
- for (int i = 0; i < m->nglyphs(); i++) {
- pround(m->wd(i), multiplier, divider);
- pround(m->lf(i), multiplier, divider);
- pround(m->bt(i), multiplier, divider);
- pround(m->rt(i), multiplier, divider);
- pround(m->tp(i), multiplier, divider);
- }
-
- for (int i = 0; i < m->nkv(); i++)
- pround(m->kv(i), multiplier, divider);
-}
-
-static void
-apply_kern_precision(Metrics *m, double kern_precision)
-{
- if (kern_precision <= 0)
- return;
-
- for (int i = 0; i < m->nkv(); i++)
- if (fabs(m->kv(i)) < kern_precision)
- m->kv(i) = 0;
-}
-
-
-static void
-read_file(const char *fn, MetricsFinder *finder)
-{
- Filename filename;
- FILE *file;
-
- if (strcmp(fn, "-") == 0) {
- filename = Filename("<stdin>");
- file = stdin;
- } else {
- filename = Filename(fn);
- file = filename.open_read();
- }
- int save_errno = errno;
-
- if (!file) {
- // look for a font by name
- AmfmMetrics *new_amfm = finder->find_amfm(fn, errh);
- if (new_amfm) {
- set_amfm(new_amfm);
- return;
- }
- if (finder->find_metrics(fn, errh))
- return;
-
- // check for instance name. don't use InstanceMetricsFinder.
- const char *underscore = strchr(fn, '_');
- if (underscore)
- new_amfm = finder->find_amfm(PermString(fn, underscore - fn), errh);
- if (!new_amfm)
- errh->fatal("%s: %s", fn, strerror(save_errno));
- set_amfm(new_amfm);
-
- int i = 0;
- while (underscore[0] == '_' && underscore[1]) {
- double x = strtod(underscore + 1, const_cast<char **>(&underscore));
- set_design(i, x);
- i++;
- }
- return;
- }
-
- Slurper slurper(filename, file);
- bool is_afm = false;
- if (file != stdin) {
- char *first_line = slurper.peek_line();
- if (first_line)
- is_afm = strncmp(first_line, "StartFontMetrics", 16) == 0;
- }
-
- if (is_afm) {
- Metrics *afm = AfmReader::read(slurper, errh);
- if (afm)
- finder->record(afm);
- } else
- set_amfm(AmfmReader::read(slurper, finder, errh));
-}
-
-
-static void
-usage_error(const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION | FONT]...", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-static void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<Mmafm%> creates an AFM font metrics file for a multiple master font by\n\
-interpolating at a point you specify and writes it to the standard output.\n\
-\n\
-Usage: %s [OPTION | FONT]...\n\
-\n\
-Each FONT is either an AFM or AMFM file name, or the font name of a multiple\n\
-master font. In the second case, mmafm will find the actual AMFM file using\n\
-the PSRESOURCEPATH environment variable.\n\
-\n\
-General options:\n\
- -o, --output=FILE Write output to FILE.\n\
- -h, --help Print this message and exit.\n\
- -v, --version Print version number and warranty and exit.\n\
-\n\
-Interpolation settings:\n\
- -w, --weight=N Set weight to N.\n\
- -W, --width=N Set width to N.\n\
- -O, --optical-size=N Set optical size to N.\n\
- --style=N Set style axis to N.\n\
- --1=N, --2=N, --3=N, --4=N Set first (second, third, fourth) axis to N.\n\
- -p, --precision=N Allow N digits of fraction (default 3).\n\
- -k, --min-kern=N Remove kerns smaller than N (default 2).\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-int
-main(int argc, char *argv[])
-{
- MetricsFinder *finder = new CacheMetricsFinder;
-
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
- PsresMetricsFinder *psres_finder = new PsresMetricsFinder(psres);
- finder->add_finder(psres_finder);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr, String(program_name) + ": "));
-
- FILE *output_file = 0;
- int precision = 3;
- double kern_precision = 2.0;
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case WEIGHT_OPT:
- set_design("Weight", clp->val.d);
- break;
-
- case WIDTH_OPT:
- set_design("Width", clp->val.d);
- break;
-
- case OPSIZE_OPT:
- set_design("OpticalSize", clp->val.d);
- break;
-
- case STYLE_OPT:
- set_design("Style", clp->val.d);
- break;
-
- case N1_OPT:
- case N2_OPT:
- case N3_OPT:
- case N4_OPT:
- set_design(opt - N1_OPT, clp->val.d);
- break;
-
- case PRECISION_OPT:
- precision = clp->val.i;
- break;
-
- case KERN_PREC_OPT:
- kern_precision = clp->val.d;
- break;
-
- case OUTPUT_OPT:
- if (output_file) errh->fatal("output file already specified");
- if (strcmp(clp->vstr, "-") == 0)
- output_file = stdout;
- else {
- output_file = fopen(clp->vstr, "wb");
- if (!output_file)
- errh->fatal("%s: %s", clp->vstr, strerror(errno));
- }
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case VERSION_OPT:
- printf("mmafm (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 1997-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case Clp_NotOption:
- read_file(clp->vstr, finder);
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(0);
- break;
-
- }
- }
-
- done:
- if (!amfm) usage_error("missing font argument");
-
- MultipleMasterSpace *mmspace = amfm->mmspace();
-#if MMAFM_RUN_MMPFB
- if (!mmspace->check_intermediate()) {
- char *buf = new char[amfm->font_name().length() + 30];
- sprintf(buf, "mmpfb -q --amcp-info '%s'", amfm->font_name().c_str());
-
- FILE *f = popen(buf, "r");
- if (f) {
- Filename fake("<mmpfb output>");
- Slurper slurpy(fake, f);
- AmfmReader::add_amcp_file(slurpy, amfm, errh);
- pclose(f);
- }
-
- delete[] buf;
- }
-#endif
-
- Vector<double> design = mmspace->default_design_vector();
- for (int i = 0; i < values.size(); i++)
- if (ax_names[i])
- mmspace->set_design(design, ax_names[i], values[i], errh);
- else
- mmspace->set_design(design, ax_nums[i], values[i], errh);
-
- Vector<double> weight;
- if (!mmspace->design_to_weight(design, weight, errh)) {
- if (!mmspace->check_intermediate()) {
- errh->message("(I can%,t interpolate font programs with intermediate masters on my own.");
-#if MMAFM_RUN_MMPFB
- errh->message("I tried to run %<mmpfb --amcp-info %s%>, but it didn't work.", amfm->font_name().c_str());
- errh->message("Maybe your PSRESOURCEPATH environment variable is not set?");
-#endif
- errh->fatal("See the manual page for more information.)");
- } else
- errh->fatal("can%,t create weight vector");
- }
-
- // Need to check for case when all design coordinates are unspecified. The
- // AMFM file contains a default WeightVector, but often NOT a default
- // DesignVector; we don't want to generate a file with a FontName like
- // `MyriadMM_-9.79797979e97_-9.79797979e97_' because the DesignVector
- // components are unknown.
- if (!KNOWN(design[0]))
- errh->fatal("must specify %s%,s %s coordinate", amfm->font_name().c_str(),
- mmspace->axis_type(0).c_str());
-
- Metrics *m = amfm->interpolate(design, weight, errh);
- if (m) {
-
- // Add a comment identifying this as interpolated by mmafm
- if (MetricsXt *xt = m->find_xt("AFM")) {
- AfmMetricsXt *afm_xt = (AfmMetricsXt *)xt;
-
-#if HAVE_CTIME
- time_t cur_time = time(0);
- char *time_str = ctime(&cur_time);
- int time_len = strlen(time_str) - 1;
- char *buf = new char[strlen(VERSION) + time_len + 100];
- sprintf(buf, "Interpolated by mmafm-%s on %.*s.", VERSION,
- time_len, time_str);
-#else
- char *buf = new char[strlen(VERSION) + 100];
- sprintf(buf, "Interpolated by mmafm-%s.", VERSION);
-#endif
-
- afm_xt->opening_comments.push_back(buf);
- afm_xt->opening_comments.push_back("Mmafm is free software. See <http://www.lcdf.org/type/>.");
- delete[] buf;
- }
-
- // round numbers if necessary
- if (precision >= 0)
- apply_precision(m, precision);
- if (kern_precision > 0)
- apply_kern_precision(m, kern_precision);
-
- // write the output file
- if (!output_file)
- output_file = stdout;
- AfmWriter::write(m, output_file);
-
- return 0;
- } else
- return 1;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
deleted file mode 100644
index 58be625b366..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmafm/mmafm.1
+++ /dev/null
@@ -1,178 +0,0 @@
-.\" -*-nroff-*-
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.ds E " \-\-
-.if t .ds E \(em
-.de Op
-.BR "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
-..
-.de Oy
-.BI "\\$1\fR=" "\\$2\fR, " "\\$3\& " "\\$4" "\\$5" "\\$6"
-..
-.de Ol
-.BI "\\$1\fR=" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.de Es
-.Sp
-.RS 5
-.nf
-..
-.de Ee
-.fi
-.RE
-.PP
-..
-.TH MMAFM 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-mmafm \- creates AFM font metrics for multiple master fonts
-'
-.SH SYNOPSIS
-.B mmafm
-\%[OPTIONS...]
-.I font
-'
-.SH DESCRIPTION
-.B Mmafm
-creates AFM font metrics for PostScript multiple master fonts by
-interpolation. You pass it an AMFM file (multiple master font metrics) and
-options specifying the design point you want, and it writes the resulting
-AFM file to the standard output.
-.PP
-Each
-.I font
-argument is either the filename of an AFM or AMFM font metrics file, or a
-PostScript font name. If you give a font name,
-.B mmafm
-will look up the actual font metrics file using the PSRESOURCEPATH
-environment variable. This colon-separated path is searched for `PSres.upr'
-files, an Adobe method for indexing PostScript resources.
-.PP
-You can also give the name of a multiple master font instance, like
-`MinionMM_367_400_12_'.
-.B Mmafm
-will parse the font name and create that instance for you. `PSres.upr'
-files must be set up for this to work.
-.PP
-Any multiple master font should be distributed with a single AMFM file and
-several AFM files (one for each master). For Myriad, for example, the AMFM
-file is MyriadMM.amfm and the AFM files are MyriadMM-LightCn.afm,
-MyriadMM-LightSemiEx.afm, MyriadMM-BlackCn.afm, and
-MyriadMM-BlackSemiEx.afm.
-.B Mmafm
-needs to find all these files to function. For fonts in the Adobe type
-library, you can download the necessary files from
-<http://www.lcdf.org/type>; look for the mm-metrics package.
-.PP
-You must always supply the AMFM file (or its font name) on the command
-line, but
-.B mmafm
-will look for any required AFM files you don't supply yourself. It tries
-the PSRESOURCEPATH environment variable, and also looks for files named
-`\fIFontName\fR.afm' or `\fIFontName\fR.AFM' in the directory that
-contained the AMFM file. (The Myriad filenames given above fit this
-pattern.)
-.PP
-.B Mmafm
-supports fonts with intermediate masters, like Adobe Jenson and Kepler. If
-your PSRESOURCEPATH environment variable is set up, it will handle these
-fonts automatically. Otherwise, you must first run
-.RB ` "mmpfb \-\-amcp\-info" '
-on the font outline files to create auxiliary AMCP files for these fonts.
-Each AMCP file should be in the same directory as its corresponding AMFM
-file and should have the same root filename, but with a `.amcp' extension
-instead of `.amfm'. See
-.M mmpfb 1
-for more information.
-'
-'
-.SH EXAMPLE
-'
-.nf
-% mmafm \-\-weight=400 \-\-width=600 MyriadMM.amfm > MyriadMM_400_600_.afm
-.fi
-'
-.SH OPTIONS
-Long options may be abbreviated to their unique prefixes.
-'
-.TP 5
-.Oy \-\-output file \-o file
-Send output to
-.I file
-instead of standard output.
-'
-.TP
-.Oy \-\-weight N \-w N
-Set the weight axis to
-.IR N .
-'
-.TP
-.Oy \-\-width N \-W N
-Set the width axis to
-.IR N .
-'
-.TP
-.Oy \-\-optical\-size N \-O N
-Set the optical size axis to
-.IR N .
-'
-.TP
-.Ol \-\-style N
-Set the style axis to
-.IR N .
-.TP
-\fB\-\-1\fR=\fIN\fR (\fB\-\-2\fR=\fIN\fR, \fB\-\-3\fR=\fIN\fR, \fB\-\-4\fR=\fIN\fR)
-Set the first (second, third, fourth) axis to
-.IR N .
-'
-.TP
-.Oy \-\-precision N \-p N
-Round output numbers so they have at most
-.I N
-digits after the decimal point. Smaller numbers are less precise; `\fB\-p
-\fR0' rounds all numbers to integers. The default precision is 3.
-'
-.TP
-.Oy \-\-min\-kern N \-k N
-Only output kerning pairs whose absolute value is
-.IR N
-or larger. Smaller minimum kerns make kerning more precise and the output
-AFM file bigger. The default minimum kern is 2.0.
-'
-.SH TROUBLESHOOTING
-.PP
-Some programs, such as TeX's
-.BR fontinst ,
-can choke on AFM files that include fractional numbers. Therefore, if you
-have trouble with an AFM file, try rerunning
-.B mmafm
-with the
-.Op \-\-precision=0
-option.
-'
-.SH SEE ALSO
-.M mmpfb 1
-'
-.SH DIAGNOSTICS
-.TP 5
-\fIFont\fR requires intermediate master conversion programs
-You haven't yet created an AMCP file for \fIFont\fR.
-'
-.SH AUTHOR
-.na
-Eddie Kohler, ekohler@gmail.com
-.PP
-The latest version is available from:
-.br
-http://www.lcdf.org/type/
-.br
-AMFM and AFM files for Adobe Type Library fonts are also available at that
-URL.
-.PP
-Thanks to Melissa O'Neill for suggestions and patient
-debugging.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.am
deleted file mode 100644
index d1b8d0370d1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = mmpfb
-man_MANS = mmpfb.1
-
-mmpfb_SOURCES = myfont.cc myfont.hh \
- main.cc \
- t1minimize.cc t1minimize.hh \
- t1rewrit.cc t1rewrit.hh
-
-mmpfb_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = mmpfb.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.in
deleted file mode 100644
index a6991dea01d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/Makefile.in
+++ /dev/null
@@ -1,781 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = mmpfb$(EXEEXT)
-subdir = lcdf-typetools-src/mmpfb
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_mmpfb_OBJECTS = myfont.$(OBJEXT) main.$(OBJEXT) \
- t1minimize.$(OBJEXT) t1rewrit.$(OBJEXT)
-mmpfb_OBJECTS = $(am_mmpfb_OBJECTS)
-mmpfb_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/main.Po ./$(DEPDIR)/myfont.Po \
- ./$(DEPDIR)/t1minimize.Po ./$(DEPDIR)/t1rewrit.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(mmpfb_SOURCES)
-DIST_SOURCES = $(mmpfb_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = mmpfb.1
-mmpfb_SOURCES = myfont.cc myfont.hh \
- main.cc \
- t1minimize.cc t1minimize.hh \
- t1rewrit.cc t1rewrit.hh
-
-mmpfb_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = mmpfb.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/mmpfb/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/mmpfb/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-mmpfb$(EXEEXT): $(mmpfb_OBJECTS) $(mmpfb_DEPENDENCIES) $(EXTRA_mmpfb_DEPENDENCIES)
- @rm -f mmpfb$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(mmpfb_OBJECTS) $(mmpfb_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/myfont.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1minimize.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1rewrit.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/main.Po
- -rm -f ./$(DEPDIR)/myfont.Po
- -rm -f ./$(DEPDIR)/t1minimize.Po
- -rm -f ./$(DEPDIR)/t1rewrit.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/main.Po
- -rm -f ./$(DEPDIR)/myfont.Po
- -rm -f ./$(DEPDIR)/t1minimize.Po
- -rm -f ./$(DEPDIR)/t1rewrit.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
deleted file mode 100644
index 8b742f77c55..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/main.cc
+++ /dev/null
@@ -1,463 +0,0 @@
-/* main.cc -- driver for mmpfb program
- *
- * Copyright (c) 1997-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1mm.hh>
-#include "myfont.hh"
-#include "t1rewrit.hh"
-#include "t1minimize.hh"
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-#define WEIGHT_OPT 300
-#define WIDTH_OPT 301
-#define OPSIZE_OPT 302
-#define STYLE_OPT 303
-#define N1_OPT 304
-#define N2_OPT 305
-#define N3_OPT 306
-#define N4_OPT 307
-#define VERSION_OPT 308
-#define AMCP_INFO_OPT 309
-#define HELP_OPT 310
-#define PFA_OPT 311
-#define PFB_OPT 312
-#define OUTPUT_OPT 313
-#define QUIET_OPT 314
-#define PRECISION_OPT 315
-#define SUBRS_OPT 316
-#define MINIMIZE_OPT 317
-
-const Clp_Option options[] = {
- { "1", '1', N1_OPT, Clp_ValDouble, 0 },
- { "2", '2', N2_OPT, Clp_ValDouble, 0 },
- { "3", '3', N3_OPT, Clp_ValDouble, 0 },
- { "4", '4', N4_OPT, Clp_ValDouble, 0 },
- { "amcp-info", 0, AMCP_INFO_OPT, 0, 0 },
- { "help", 'h', HELP_OPT, 0, 0 },
- { "minimize", 'm', MINIMIZE_OPT, 0, Clp_Negate },
- { "optical-size", 'O', OPSIZE_OPT, Clp_ValDouble, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "pfa", 'a', PFA_OPT, 0, 0 },
- { "pfb", 'b', PFB_OPT, 0, 0 },
- { "precision", 'p', PRECISION_OPT, Clp_ValUnsigned, 0 },
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "style", 0, STYLE_OPT, Clp_ValDouble, 0 },
- { "subrs", 0, SUBRS_OPT, Clp_ValInt, Clp_Negate },
- { "version", 'v', VERSION_OPT, 0, 0 },
- { "wd", 0, WIDTH_OPT, Clp_ValDouble, 0 },
- { "weight", 'w', WEIGHT_OPT, Clp_ValDouble, 0 },
- { "width", 'W', WIDTH_OPT, Clp_ValDouble, 0 },
- { "wt", 0, WEIGHT_OPT, Clp_ValDouble, 0 },
-};
-
-using namespace Efont;
-
-static const char *program_name;
-static ErrorHandler *errh;
-static MyFont *font;
-static MultipleMasterSpace *mmspace;
-
-static Vector<PermString> ax_names;
-static Vector<int> ax_nums;
-static Vector<double> values;
-
-
-void
-usage_error(const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... FONT", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<Mmpfb%> creates a single-master PostScript Type 1 font by interpolating a\n\
-multiple master font at a point you specify. The resulting font does not\n\
-contain multiple master extensions. It is written to the standard output.\n\
-\n\
-Usage: %s [OPTION]... FONT\n\
-\n\
-FONT is either the name of a PFA or PFB multiple master font file, or a\n\
-PostScript font name. In the second case, mmpfb will find the actual outline\n\
-file using the PSRESOURCEPATH environment variable.\n\
-\n\
-General options:\n\
- --amcp-info Print AMCP info, if necessary, and exit.\n\
- -a, --pfa Output PFA font.\n\
- -b, --pfb Output PFB font. This is the default.\n\
- -o, --output=FILE Write output to FILE.\n\
- -p, --precision=N Set precision to N (larger means more precise).\n\
- --subrs=N Limit output font to at most N subroutines.\n\
- --no-minimize Do not replace original font%,s PostScript code.\n\
- -h, --help Print this message and exit.\n\
- -q, --quiet Do not generate any error messages.\n\
- -v, --version Print version number and exit.\n\
-\n\
-Interpolation settings:\n\
- -w, --weight=N Set weight to N.\n\
- -W, --width=N Set width to N.\n\
- -O, --optical-size=N Set optical size to N.\n\
- --style=N Set style axis to N.\n\
- --1=N, --2=N, --3=N, --4=N Set first (second, third, fourth) axis to N.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-static void
-set_design(PermString a, double v)
-{
- ax_names.push_back(a);
- ax_nums.push_back(-1);
- values.push_back(v);
-}
-
-static void
-set_design(int a, double v)
-{
- ax_names.push_back(PermString());
- ax_nums.push_back(a);
- values.push_back(v);
-}
-
-void
-do_file(const char *filename, PsresDatabase *psres)
-{
- FILE *f;
- if (strcmp(filename, "-") == 0) {
- f = stdin;
- filename = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else
- f = fopen(filename, "rb");
-
- if (!f) {
- // check for PostScript or instance name
- Filename fn = psres->filename_value("FontOutline", filename);
- const char *underscore = strchr(filename, '_');
- if (!fn && underscore) {
- fn = psres->filename_value
- ("FontOutline", PermString(filename, underscore - filename));
- int i = 0;
- while (underscore[0] == '_' && underscore[1]) {
- double x = strtod(underscore + 1, const_cast<char **>(&underscore));
- set_design(i, x);
- i++;
- }
- }
- f = fn.open_read();
- }
-
- if (!f)
- errh->fatal("%s: %s", filename, strerror(errno));
-
- Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == EOF)
- errh->fatal("%s: empty file", filename);
- if (c == 128)
- reader = new Type1PFBReader(f);
- else
- reader = new Type1PFAReader(f);
-
- font = new MyFont(*reader);
- delete reader;
- if (!font->ok())
- errh->fatal("%s: invalid font", filename);
- else if (font->nglyphs() == 0)
- errh->fatal("%s: font contains no characters", filename);
-
- mmspace = font->create_mmspace(errh);
- if (!mmspace)
- errh->fatal("%s: not a multiple master font", filename);
-
- font->undo_synthetic();
-}
-
-
-static void
-print_conversion_program(FILE *f, const Type1Charstring &cs, PermString name)
-{
- if (cs) {
- const unsigned char *data = cs.data();
- for (int i = 0; i < cs.length(); ) {
- int l = cs.length() - i;
- if (l > 32)
- l = 32;
- fprintf(f, "%s <", name.c_str());
- for (int j = 0; j < l; j++)
- fprintf(f, "%02X", data[j]);
- fprintf(f, ">\n");
- data += l;
- i += l;
- }
- }
-}
-
-
-static void
-print_amcp_info(MultipleMasterSpace *mmspace, FILE *f)
-{
- const Type1Charstring &ndv = mmspace->ndv();
- const Type1Charstring &cdv = mmspace->cdv();
- if (!ndv && !cdv)
- fprintf(stderr, "%s does not have conversion programs.\n",
- mmspace->font_name().c_str());
- else {
- fprintf(f, "StartConversionPrograms %d %d\n", ndv.length(),
- cdv.length());
- print_conversion_program(f, ndv, "NDV");
- print_conversion_program(f, cdv, "CDV");
- fprintf(f, "EndConversionPrograms\n");
- }
-}
-
-
-int
-main(int argc, char *argv[])
-{
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- bool write_pfb = true;
- bool amcp_info = false;
- bool minimize = true;
- int precision = 5;
- int subr_count = -1;
- FILE *outfile = 0;
- ::errh =
- ErrorHandler::static_initialize(new FileErrorHandler(stderr, String(program_name) + ": "));
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case WEIGHT_OPT:
- set_design("Weight", clp->val.d);
- break;
-
- case WIDTH_OPT:
- set_design("Width", clp->val.d);
- break;
-
- case OPSIZE_OPT:
- set_design("OpticalSize", clp->val.d);
- break;
-
- case STYLE_OPT:
- set_design("Style", clp->val.d);
- break;
-
- case N1_OPT:
- case N2_OPT:
- case N3_OPT:
- case N4_OPT:
- set_design(opt - N1_OPT, clp->val.d);
- break;
-
- case AMCP_INFO_OPT:
- amcp_info = true;
- break;
-
- case PFA_OPT:
- write_pfb = false;
- break;
-
- case PFB_OPT:
- write_pfb = true;
- break;
-
- case PRECISION_OPT:
- if (clp->val.i > 107) {
- errh->warning("precision lowered to 107");
- precision = 107;
- } else if (clp->val.i < 1) {
- errh->warning("precision raised to 1");
- precision = 1;
- } else
- precision = clp->val.i;
- break;
-
- case SUBRS_OPT:
- if (clp->negated)
- subr_count = -1;
- else if (clp->val.i <= 0)
- errh->warning("subr count too small");
- else
- subr_count = clp->val.i;
- break;
-
- case MINIMIZE_OPT:
- minimize = !clp->negated;
- break;
-
- case QUIET_OPT:
- if (clp->negated)
- errh = ErrorHandler::default_handler();
- else
- errh = new SilentErrorHandler;
- break;
-
- case OUTPUT_OPT:
- if (outfile) errh->fatal("output file already specified");
- if (strcmp(clp->vstr, "-") == 0)
- outfile = stdout;
- else {
- outfile = fopen(clp->vstr, "wb");
- if (!outfile)
- errh->fatal("%s: %s", clp->vstr, strerror(errno));
- }
- break;
-
- case VERSION_OPT:
- printf("mmpfb (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 1997-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- do_file(clp->vstr, psres);
- break;
-
- case Clp_Done:
- if (!font)
- usage_error("missing font argument");
- goto done;
-
- case Clp_BadOption:
- usage_error(0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- if (outfile == 0)
- outfile = stdout;
-
- if (amcp_info) {
- print_amcp_info(mmspace, outfile);
- exit(0);
- }
-
- Vector<double> design = mmspace->empty_design_vector();
- for (int i = 0; i < values.size(); i++)
- if (ax_names[i])
- mmspace->set_design(design, ax_names[i], values[i], errh);
- else
- mmspace->set_design(design, ax_nums[i], values[i], errh);
-
- Vector<double> default_design = mmspace->default_design_vector();
- for (int i = 0; i < mmspace->naxes(); i++)
- if (!KNOWN(design[i]) && KNOWN(default_design[i])) {
- errh->warning("using default value %g for %s%,s %s", default_design[i],
- font->font_name().c_str(), mmspace->axis_type(i).c_str());
- design[i] = default_design[i];
- }
-
- if (!font->set_design_vector(mmspace, design, errh))
- exit(1);
-
- font->interpolate_dicts(minimize, errh);
- font->interpolate_charstrings(precision, errh);
-
- if (subr_count >= 0) {
- Type1SubrRemover sr(font, errh);
- sr.run(subr_count);
- }
-
- font->fill_in_subrs();
-
- Type1Font *t1font;
- if (minimize) {
- t1font = ::minimize(font);
- delete font;
- } else
- t1font = font;
-
- { // Add an identifying comment.
-#if HAVE_CTIME
- time_t cur_time = time(0);
- char *time_str = ctime(&cur_time);
- int time_len = strlen(time_str) - 1;
- char *buf = new char[strlen(VERSION) + time_len + 100];
- sprintf(buf, "%%%% Interpolated by mmpfb-%s on %.*s.", VERSION,
- time_len, time_str);
-#else
- char *buf = new char[strlen(VERSION) + 100];
- sprintf(buf, "%%%% Interpolated by mmpfb-%s.", VERSION);
-#endif
-
- t1font->add_header_comment(buf);
- t1font->add_header_comment("%% Mmpfb is free software. See <http://www.lcdf.org/type/>.");
- delete[] buf;
- }
-
- if (write_pfb) {
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(outfile), _O_BINARY);
-#endif
- Type1PFBWriter w(outfile);
- t1font->write(w);
- } else {
- Type1PFAWriter w(outfile);
- t1font->write(w);
- }
-
- return 0;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
deleted file mode 100644
index 42dadb72bf5..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/mmpfb.1
+++ /dev/null
@@ -1,206 +0,0 @@
-.\" -*-nroff-*-
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.ds E " \-\-
-.if t .ds E \(em
-.de Op
-.BR "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
-..
-.de Oy
-.BI "\\$1\fR=" "\\$2\fR, " "\\$3\& " "\\$4" "\\$5" "\\$6"
-..
-.de Ol
-.BI "\\$1\fR=" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH MMPFB 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-mmpfb \- creates single-master fonts from multiple master fonts
-'
-.SH SYNOPSIS
-.B mmpfb
-\%[OPTIONS...]
-.I font
-'
-.SH DESCRIPTION
-.B Mmpfb
-creates a normal, single-master PostScript font from a multiple master font
-by interpolation. You pass it a PFB or PFA font and options specifying the
-design point you want; it writes the resulting PFB or PFA font to the
-standard output.
-.PP
-The fonts
-.B mmpfb
-creates are interpolated at a low level to remove multiple master
-instructions from individual characters. Therefore, they can be used by
-programs that don't normally understand multiple master fonts, like
-.BR ps2pk (1).
-.PP
-.B Mmpfb
-supports fonts with intermediate masters, like Adobe Jenson and Kepler. It
-can also create AMCP (Adobe Multiple Master Conversion Program) files for
-use by
-.M mmafm 1 ;
-see
-.B \-\-amcp\-info
-below.
-.PP
-The
-.I font
-argument is either the name of a PFA or PFB font file, or a PostScript font
-name. If you give a font name,
-.B mmpfb
-will find the actual outline file using the PSRESOURCEPATH environment
-variable. This colon-separated path is searched for `PSres.upr' files, an
-Adobe method for indexing PostScript resources.
-.PP
-You can also give the name of a multiple
-master font instance, like `MinionMM_367_400_12_'.
-.B Mmpfb
-will parse the font name and create that instance for you. `PSres.upr'
-files must be set up for this to work.
-'
-'
-.SH EXAMPLE
-'
-.nf
-% mmpfb \-\-weight=400 \-\-width=600 MyriadMM.pfb > MyriadMM_400_600_.pfb
-.fi
-'
-.SH OPTIONS
-Long options may be abbreviated to their unique prefixes.
-'
-.TP 5
-.Oy \-\-output file \-o file
-'
-Send output to
-.I file
-instead of standard output.
-'
-.TP
-.BR \-\-pfb ", " \-b
-'
-Output a PFB font. This is the default.
-'
-.TP
-.BR \-\-pfa ", " \-a
-'
-Output a PFA font.
-'
-.TP
-.Op \-\-amcp\-info
-'
-Do not create a font; instead, output an AMCP file for use by
-.M mmafm 1 .
-A message is printed if the font doesn't have intermediate masters, in
-which case no AMCP file is necessary.
-'
-.TP
-.Oy \-\-weight N \-w N
-'
-Set the weight axis to
-.IR N .
-'
-.TP
-.Oy \-\-width N \-W N
-'
-Set the width axis to
-.IR N .
-'
-.TP
-.Oy \-\-optical\-size N \-O N
-'
-Set the optical size axis to
-.IR N .
-'
-.TP
-.Ol \-\-style N
-'
-Set the style axis to
-.IR N .
-.TP
-\fB\-\-1\fR=\fIN\fR (\fB\-\-2\fR=\fIN\fR, \fB\-\-3\fR=\fIN\fR, \fB\-\-4\fR=\fIN\fR)
-'
-Set the first (second, third, fourth) axis to
-.IR N .
-'
-.TP
-.Oy \-\-precision N \-p N
-'
-Set the output precision to
-.IR N .
-Higher values mean the control points in the output font will be more
-exactly aligned; lower values (1 or 2) create smaller output font
-files, and are close enough for most purposes. A precision of
-.IR N
-means that each point will be within
-.RI 1/ N
-font units of the exact interpolated value. (A font unit is generally
-1/7200 inch for a 10-point font.) The default is 5.
-'
-.TP
-.Ol \-\-subrs N
-'
-Limit the output font to at most
-.IR N
-subroutines. 256 is a good value for
-.IR N .
-'
-.TP
-.BR \-\-no\-minimize
-'
-Do not minimize the output font definition. By default,
-.B mmpfb
-removes extra PostScript code and dictionary definitions from the font.
-Supply the
-.B \-\-no\-minimize
-option to avoid this behavior.
-'
-.SH TROUBLESHOOTING
-.LP
-The "IBM" Type 1 font interpreter shipped as part of the X font server and
-.B ps2pk
-(among others) is inappropriately strict about PostScript code embedded in
-a font. The
-.B \-\-minimize
-option (now the default) fixes this problem.
-.LP
-Some versions of Adobe Acrobat Distiller may report "Warning: unable to
-embed font X. Invalid character outline data" when distilling an instance
-generated by
-.BR mmpfb .
-This is due to a limitation in the number of font subroutines Distiller can
-accept. (Multiple master fonts, and the single-master fonts generated by
-.BR mmpfb ,
-tend to have a lot of subroutines.) Try limiting the number of subroutines
-in the generated font with the
-.Op \-\-subrs
-option.
-'
-.SH SEE ALSO
-.M mmafm 1
-'
-.SH DIAGNOSTICS
-.TP 5
-reducing \fIfont\fR to minimum number of subroutines (\fIN\fR)
-You tried to reduce the number of subroutines to less than \fIN\fR using
-the
-.Op \-\-subrs
-option, but the font needs at least \fIN\fR to function. The output font
-will have \fIN\fR subroutines.
-'
-.SH AUTHOR
-.na
-Eddie Kohler, ekohler@gmail.com
-.PP
-The latest version is available from:
-.br
-http://www.lcdf.org/type/
-.PP
-Thanks to Melissa O'Neill for suggestions and patient
-debugging.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
deleted file mode 100644
index 7a58a32d170..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.cc
+++ /dev/null
@@ -1,300 +0,0 @@
-/* myfont.cc -- general multiple- to single-master conversion
- *
- * Copyright (c) 1997-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "myfont.hh"
-#include <efont/t1item.hh>
-#include <efont/t1interp.hh>
-#include "t1rewrit.hh"
-#include <efont/t1mm.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-using namespace Efont;
-
-MyFont::MyFont(Type1Reader &reader)
- : Type1Font(reader)
-{
-}
-
-MyFont::~MyFont()
-{
-}
-
-void
-MyFont::kill_def(Type1Definition *t1d, int whichd)
-{
- if (!t1d)
- return;
-
- if (whichd < 0)
- for (whichd = dFont; whichd < dLast; whichd = (Dict)(whichd + 1))
- if (dict(whichd, t1d->name()) == t1d)
- break;
- if (whichd < 0 || whichd >= dLast || dict(whichd, t1d->name()) != t1d)
- return;
-
- int icount = nitems();
- for (int i = first_dict_item(whichd); i < icount; i++)
- if (item(i) == t1d) {
- StringAccum sa;
- sa << '%';
- t1d->gen(sa);
- PermString name = t1d->name();
- Type1CopyItem *t1ci = new Type1CopyItem(sa.take_string());
- set_item(i, t1ci);
- set_dict(whichd, name, 0);
- return;
- }
-
- assert(0);
-}
-
-bool
-MyFont::set_design_vector(MultipleMasterSpace *mmspace, const Vector<double> &design, ErrorHandler *errh)
-{
- Type1Definition *t1d = dict("DesignVector");
- if (t1d) {
- t1d->set_numvec(design);
- kill_def(t1d, dFont);
- }
-
- t1d = dict("NormDesignVector");
- if (t1d) {
- NumVector norm_design;
- if (mmspace->design_to_norm_design(design, norm_design))
- t1d->set_numvec(norm_design);
- kill_def(t1d, dFont);
- }
-
- if (!mmspace->design_to_weight(design, _weight_vector, errh))
- return false;
-
- // Need to check for case when all design coordinates are unspecified. The
- // font file contains a default WeightVector, but possibly NOT a default
- // DesignVector; we don't want to generate a FontName like
- // `MyriadMM_-9.79797979e97_-9.79797979e97_' because the DesignVector
- // components are unknown.
- if (!KNOWN(design[0])) {
- errh->error("must specify %s%,s %s coordinate", font_name().c_str(),
- mmspace->axis_type(0).c_str());
- return false;
- }
-
- t1d = dict("WeightVector");
- if (t1d) {
- t1d->set_numvec(_weight_vector);
- kill_def(t1d, dFont);
- }
-
- int naxes = design.size();
- _nmasters = _weight_vector.size();
-
- PermString name;
- t1d = dict("FontName");
- if (t1d && t1d->value_name(name)) {
- StringAccum sa(name);
- for (int a = 0; a < naxes; a++)
- sa << '_' << design[a];
- // Multiple masters require an underscore AFTER the font name
- sa << '_';
- t1d->set_name(sa.c_str());
- uncache_defs(); // remove cached font name
- }
-
- // add a FullName too
- String full_name;
- t1d = fi_dict("FullName");
- if (t1d && t1d->value_string(full_name)) {
- StringAccum sa(full_name);
- for (int a = 0; a < naxes; a++) {
- sa << (a ? ' ' : '_') << design[a];
- PermString label = mmspace->axis_abbreviation(a);
- if (label)
- sa << ' ' << label;
- }
- t1d->set_string(sa.c_str());
- }
-
- // save UniqueID, then kill its definition
- int uniqueid;
- t1d = dict("UniqueID");
- bool have_uniqueid = (t1d && t1d->value_int(uniqueid));
- kill_def(t1d, dFont);
-
- // prepare XUID
- t1d = dict("XUID");
- NumVector xuid;
- if (!t1d || !t1d->value_numvec(xuid)) {
- if (have_uniqueid) {
- t1d = ensure(dFont, "XUID");
- xuid.clear();
- xuid.push_back(1);
- xuid.push_back(uniqueid);
- } else if (t1d) {
- kill_def(t1d, dFont);
- t1d = 0;
- }
- }
- if (t1d) {
- // Append design vector values to the XUID to prevent cache pollution.
- for (int a = 0; a < naxes; a++)
- xuid.push_back((int)(design[a] * 100));
- t1d->set_numvec(xuid);
- }
-
- return true;
-}
-
-void
-MyFont::interpolate_dict_int(PermString name, Dict the_dict, ErrorHandler *errh)
-{
- Type1Definition *def = dict(the_dict, name);
- Type1Definition *blend_def = dict(the_dict + dBlend, name);
- NumVector blend;
-
- if (def && blend_def && blend_def->value_numvec(blend)) {
- int n = _nmasters;
- double val = 0;
- for (int m = 0; m < n; m++)
- val += blend[m] * _weight_vector[m];
- int ival = (int)floor(val + 0.50001);
- if (fabs(val - ival) >= 0.001)
- errh->warning("interpolated %s should be an integer (it is %g)", name.c_str(), val);
- def->set_num(ival);
- kill_def(blend_def, the_dict + dBlend);
- }
-}
-
-void
-MyFont::interpolate_dict_num(PermString name, Dict the_dict, bool force_integer)
-{
- Type1Definition *def = dict(the_dict, name);
- Type1Definition *blend_def = dict(the_dict + dBlend, name);
- NumVector blend;
-
- if (def && blend_def && blend_def->value_numvec(blend)) {
- int n = _nmasters;
- double val = 0;
- for (int m = 0; m < n; m++)
- val += blend[m] * _weight_vector[m];
- if (force_integer)
- val = floor(val + 0.50001);
- def->set_num(val);
- kill_def(blend_def, the_dict + dBlend);
- } else if (def && !blend_def && force_integer) {
- double val;
- if (def->value_num(val))
- def->set_num(floor(val + 0.50001));
- }
-}
-
-void
-MyFont::interpolate_dict_numvec(PermString name, Dict the_dict, int round_mode, bool executable)
-{
- Type1Definition *def = dict(the_dict, name);
- Type1Definition *blend_def = dict(the_dict + dBlend, name);
- Vector<NumVector> blend;
-
- if (def && blend_def && blend_def->value_numvec_vec(blend)) {
- int n = blend.size();
- NumVector val;
- for (int i = 0; i < n; i++) {
- double d = 0;
- for (int m = 0; m < _nmasters; m++)
- d += blend[i][m] * _weight_vector[m];
- if (round_mode == 2 && i < 2)
- d = floor(d - 0.50001);
- else if (round_mode)
- d = floor(d + 0.50001);
- val.push_back(d);
- }
- def->set_numvec(val, executable);
- kill_def(blend_def, the_dict + dBlend);
- }
-}
-
-void
-MyFont::interpolate_dicts(bool force_integer, ErrorHandler *errh)
-{
- // Unfortunately, some programs (acroread) expect the FontBBox to consist
- // of integers. Round its elements away from zero (this is what the
- // Acrobat distiller seems to do).
- interpolate_dict_numvec("FontBBox", dFont, 2, true);
-
- interpolate_dict_numvec("BlueValues", dPrivate, force_integer);
- interpolate_dict_numvec("OtherBlues", dPrivate, force_integer);
- interpolate_dict_numvec("FamilyBlues", dPrivate, force_integer);
- interpolate_dict_numvec("FamilyOtherBlues", dPrivate, force_integer);
- interpolate_dict_numvec("StdHW", dPrivate);
- interpolate_dict_numvec("StdVW", dPrivate);
- interpolate_dict_numvec("StemSnapH", dPrivate);
- interpolate_dict_numvec("StemSnapV", dPrivate);
-
- interpolate_dict_num("BlueScale", dPrivate);
- interpolate_dict_num("BlueShift", dPrivate, force_integer);
- interpolate_dict_int("BlueFuzz", dPrivate, errh);
-
- {
- Type1Definition *def = p_dict("ForceBold");
- Type1Definition *blend_def = bp_dict("ForceBold");
- Type1Definition *thresh = p_dict("ForceBoldThreshold");
- Vector<PermString> namevec;
- double thresh_val;
- if (def && blend_def && thresh && blend_def->value_namevec(namevec)
- && thresh->value_num(thresh_val) && namevec.size() == _nmasters) {
- double v = 0;
- for (int m = 0; m < _nmasters; m++)
- if (namevec[m] == "true")
- v += _weight_vector[m];
- def->set_code(v >= thresh_val ? "true" : "false");
- kill_def(blend_def, dBlendPrivate);
- }
- }
-
- interpolate_dict_num("UnderlinePosition", dFontInfo);
- interpolate_dict_num("UnderlineThickness", dFontInfo);
- interpolate_dict_num("ItalicAngle", dFontInfo);
-
- if (Type1Definition *def = bp_dict("BuildCharArray"))
- kill_def(def, dBlendPrivate);
-
- for (DictHashMap::const_iterator i = dict_begin(dBlend); i; i++) {
- PermString name = i.key();
- if (i.value() && name != "Private" && name != "FontInfo"
- && name != "ConvertDesignVector" && name != "NormalizeDesignVector")
- errh->warning("didn%,t interpolate %s in Blend", name.c_str());
- }
-
- for (DictHashMap::const_iterator i = dict_begin(dBlendPrivate); i; i++)
- if (i.value() && i.key() != "Erode")
- errh->warning("didn%,t interpolate %s in BlendPrivate", i.key().c_str());
-
- kill_def(p_dict("NDV"), dPrivate);
- kill_def(p_dict("CDV"), dPrivate);
- kill_def(p_dict("UniqueID"), dPrivate);
- kill_def(fi_dict("BlendDesignPositions"), dFontInfo);
- kill_def(fi_dict("BlendDesignMap"), dFontInfo);
- kill_def(fi_dict("BlendAxisTypes"), dFontInfo);
-}
-
-void
-MyFont::interpolate_charstrings(int precision, ErrorHandler *errh)
-{
- Type1MMRemover remover(this, _weight_vector, precision, errh);
- remover.run();
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.hh
deleted file mode 100644
index ffe35668f94..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/myfont.hh
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef MYFONT_HH
-#define MYFONT_HH
-#include <efont/t1font.hh>
-namespace Efont { class MultipleMasterSpace; }
-class ErrorHandler;
-
-class MyFont : public Efont::Type1Font { public:
-
- MyFont(Efont::Type1Reader &);
- ~MyFont();
-
- bool set_design_vector(Efont::MultipleMasterSpace *, const Vector<double> &, ErrorHandler * = 0);
-
- void interpolate_dicts(bool force_integers, ErrorHandler *);
- void interpolate_charstrings(int precision, ErrorHandler * = 0);
-
- private:
-
- typedef Vector<double> NumVector;
-
- int _nmasters;
- Vector<double> _weight_vector;
-
- void interpolate_dict_int(PermString, Dict, ErrorHandler *);
- void interpolate_dict_num(PermString, Dict, bool round_integer = false);
- void interpolate_dict_numvec(PermString, Dict, int round_mode = 0, bool executable = false);
- void kill_def(Efont::Type1Definition *, int which_dict = -1);
-
-};
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
deleted file mode 100644
index da7fee98cc3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-/* t1minimize.cc -- make minimal copy of a Type 1 font
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "t1minimize.hh"
-#include <efont/t1item.hh>
-#include <stdio.h>
-
-using namespace Efont;
-
-Type1Font *
-minimize(Type1Font *font)
-{
- Vector<double> xuid_extension;
- xuid_extension.push_back(0x000395C1);
- Type1Font *output = Type1Font::skeleton_make_copy(font, font->font_name(), &xuid_extension);
-
- // Subrs
- for (int i = 0; i < font->nsubrs(); i++)
- if (Type1Subr *s = font->subr_x(i))
- output->set_subr(s->subrno(), s->t1cs(), s->definer());
-
- // CharStrings
- for (int i = 0; i < font->nglyphs(); i++)
- if (Type1Subr *g = font->glyph_x(i))
- output->add_glyph(Type1Subr::make_glyph(g->name(), g->t1cs(), g->definer()));
-
- return output;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.hh
deleted file mode 100644
index a5c3ea04906..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1minimize.hh
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef EFONT_T1MINIMIZE_HH
-#define EFONT_T1MINIMIZE_HH
-#include <efont/t1font.hh>
-
-Efont::Type1Font *minimize(Efont::Type1Font *);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
deleted file mode 100644
index c8a4f507f03..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.cc
+++ /dev/null
@@ -1,924 +0,0 @@
-/* t1rewrit.cc -- routines for multiple- to single-master charstring conversion
- *
- * Copyright (c) 1997-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "t1rewrit.hh"
-#include <efont/t1item.hh>
-#include <efont/t1csgen.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <stdio.h>
-#include <math.h>
-
-using namespace Efont;
-
-static bool itc_complained = false;
-static ErrorHandler *itc_errh;
-
-void
-itc_complain()
-{
- //itc_errh->warning("strange %<callothersubr%>; is this an ITC font?");
- itc_complained = true;
-}
-
-
-/*****
- * HintReplacementDetector
- **/
-
-class HintReplacementDetector : public CharstringInterp { public:
-
- HintReplacementDetector(Type1Font *, int);
- HintReplacementDetector(Type1Font *, const Vector<double> &, int);
-
- bool is_hint_replacement(int i) const { return _hint_replacements[i] != 0; }
- int call_count(int i) const { return _call_counts[i]; }
-
- bool type1_command(int);
-
- bool run(Type1Font *, Type1Charstring &);
-
- private:
-
- Vector<int> _hint_replacements;
- Vector<int> _call_counts;
- int _subr_level;
- int _count_calls_below;
-
-};
-
-HintReplacementDetector::HintReplacementDetector(Type1Font *f, int b)
- : CharstringInterp(),
- _hint_replacements(f->nsubrs(), 0), _call_counts(f->nsubrs(), 0),
- _count_calls_below(b)
-{
-}
-
-HintReplacementDetector::HintReplacementDetector(Type1Font *f, const Vector<double> &wv, int b)
- : CharstringInterp(wv),
- _hint_replacements(f->nsubrs(), 0), _call_counts(f->nsubrs(), 0),
- _count_calls_below(b)
-{
-}
-
-bool
-HintReplacementDetector::type1_command(int cmd)
-{
- switch (cmd) {
-
- case Cs::cCallothersubr: {
- if (size() < 2)
- goto unknown;
- int command = (int)top(0);
- int n = (int)top(1);
- if (command == Cs::othcReplacehints && n == 1) {
- pop(2);
- _hint_replacements[(int)top()] = 1;
- ps_clear();
- ps_push(top());
- pop();
- break;
- } else if (command >= Cs::othcMM1 && command <= Cs::othcMM6) {
- pop(2);
- return mm_command(command, n);
- } else if (command >= Cs::othcITC_load && command <= Cs::othcITC_random) {
- pop(2);
- return itc_command(command, n);
- } else
- goto unknown;
- }
-
- case Cs::cCallsubr: {
- if (size() < 1)
- return error(errUnderflow, cmd);
- int which = (int)pop();
- if (!_count_calls_below || _subr_level < _count_calls_below)
- _call_counts[which]++;
-
- Charstring *subr_cs = get_subr(which);
- if (!subr_cs)
- return error(errSubr, which);
-
- _subr_level++;
- subr_cs->process(*this);
- _subr_level--;
-
- if (error() != errOK)
- return false;
- return !done();
- }
-
- case Cs::cEndchar:
- case Cs::cReturn:
- return CharstringInterp::type1_command(cmd);
-
- case Cs::cBlend:
- case Cs::cAbs:
- case Cs::cAdd:
- case Cs::cSub:
- case Cs::cDiv:
- case Cs::cNeg:
- case Cs::cRandom:
- case Cs::cMul:
- case Cs::cSqrt:
- case Cs::cDrop:
- case Cs::cExch:
- case Cs::cIndex:
- case Cs::cRoll:
- case Cs::cDup:
- case Cs::cAnd:
- case Cs::cOr:
- case Cs::cNot:
- case Cs::cEq:
- case Cs::cIfelse:
- return arith_command(cmd);
-
- case Cs::cPop:
- if (ps_size() >= 1)
- push(ps_pop());
- break;
-
- default:
- unknown:
- clear();
- break;
-
- }
- return true;
-}
-
-bool
-HintReplacementDetector::run(Type1Font *f, Type1Charstring &cs)
-{
- _subr_level = 0;
- CharstringInterp::interpret(f, &cs);
- return error() == errOK;
-}
-
-
-/*****
- * Type1OneMMRemover
- **/
-
-class Type1OneMMRemover: public CharstringInterp { public:
-
- Type1OneMMRemover(Type1MMRemover *);
-
- bool type1_command(int);
-
- inline bool run_fresh_subr(const Type1Charstring &, bool);
- inline bool run_fresh_glyph(const Type1Charstring &);
- inline bool rerun_subr(const Type1Charstring &);
-
- Type1Charstring *output_prefix();
- void output_main(Type1Charstring &);
-
- private:
-
- Type1MMRemover *_remover;
- Type1CharstringGen _prefix_gen;
- Type1CharstringGen _main_gen;
-
- int _subr_level;
- bool _in_subr;
- bool _in_prefix;
- bool _must_expand;
-
- inline void run_subr(Type1Charstring *);
- bool itc_command(int command, int on_stack);
-
- bool run(const Type1Charstring &, bool, bool, bool);
-
-};
-
-/* For version 1.1
- *
- * Problem: Sometimes a charstring will call one subroutine, which will call
- * another, etc., which finally does a multiple master CallOtherSubr! The
- * required arguments might build up only gradually over all the subrs. This
- * makes it hard to remove the eventual CallOtherSubr!
- *
- * Partial solution: Divide each subroutine into two parts: the initial
- * "prefix" contains the closure of any initial multiple-master commands
- * (including those from sub-subroutines), the following "main" part has all
- * the other commands. In a situation like this:
- *
- * subr-1 = 8 15 callothersubr pop pop pop return
- * subr-2 = 4 5 6 1 callsubr return
- * subr-3 = 1 2 3 2 callsubr return
- *
- * we'll divide it up like this: (prefix || main)
- *
- * subr-1 = 8 15 callothersubr pop pop pop || (nothing)
- * subr-2 = 4 5 6 8 15 callothersubr pop pop pop || (nothing)
- * subr-3 = 1 2 3 4 5 6 8 15 callothersubr pop pop pop || (nothing)
- *
- * Now, when we call a subroutine, we EXECUTE its prefix part. Then, if its
- * main part is nonempty, we output the original call to the subroutine to
- * take care of the main part. */
-
-
-Type1OneMMRemover::Type1OneMMRemover(Type1MMRemover *remover)
- : CharstringInterp(remover->weight_vector()),
- _remover(remover), _prefix_gen(remover->precision()),
- _main_gen(remover->precision())
-{
-}
-
-inline void
-Type1OneMMRemover::run_subr(Type1Charstring *cs)
-{
- _subr_level++;
- cs->process(*this);
- _subr_level--;
-}
-
-bool
-Type1OneMMRemover::itc_command(int command, int on_stack)
-{
- const Vector<double> &weight = weight_vector();
- assert(weight.size());
- Vector<double> *scratch = scratch_vector();
- Type1CharstringGen *gen =
- (_in_prefix ? &_prefix_gen : (_in_subr ? &_main_gen : 0));
-
- int base = size() - on_stack - 2;
- switch (command) {
-
- case Cs::othcITC_load: {
- if (on_stack != 1)
- return false;
- int offset = (int)at(base);
- for (int i = 0; i < weight.size(); i++)
- vec(scratch, offset+i) = weight.at_u(i);
- // save load command, so we expand its effects into the scratch
- // vector
- if (gen) {
- gen->gen_number(offset);
- gen->gen_number(1);
- gen->gen_number(Cs::othcITC_load);
- gen->gen_command(Cs::cCallothersubr);
- }
- break;
- }
-
- case Cs::othcITC_put: {
- if (on_stack != 2)
- return false;
- int offset = (int)at(base+1);
- vec(scratch, offset) = at(base);
- // save put command, so we expand its effects into the scratch
- // vector
- if (gen) {
- gen->gen_number(at(base));
- gen->gen_number(offset);
- gen->gen_number(2);
- gen->gen_number(Cs::othcITC_put);
- gen->gen_command(Cs::cCallothersubr);
- }
- break;
- }
-
- case Cs::othcITC_get: {
- if (on_stack != 1)
- return false;
- int offset = (int)at(base);
- double d = vec(scratch, offset);
- if (!KNOWN(d)) {
- _must_expand = true;
- return false;
- }
- ps_push(d);
- break;
- }
-
- case Cs::othcITC_add: {
- if (on_stack != 2)
- return false;
- ps_push(at(base) + at(base+1));
- break;
- }
-
- case Cs::othcITC_sub: {
- if (on_stack != 2)
- return false;
- ps_push(at(base) - at(base+1));
- break;
- }
-
- case Cs::othcITC_mul: {
- if (on_stack != 2)
- return false;
- ps_push(at(base) * at(base+1));
- break;
- }
-
- case Cs::othcITC_div: {
- if (on_stack != 2)
- return false;
- ps_push(at(base) / at(base+1));
- break;
- }
-
- case Cs::othcITC_ifelse: {
- if (on_stack != 4)
- return false;
- if (at(base+2) <= at(base+3))
- ps_push(at(base));
- else
- ps_push(at(base+1));
- break;
- }
-
- default:
- return false;
-
- }
-
- pop(on_stack + 2);
- return true;
-}
-
-bool
-Type1OneMMRemover::type1_command(int cmd)
-{
- switch (cmd) {
-
- case Cs::cCallothersubr: {
- // Expand known othersubr calls. If we cannot expand the othersubr
- // call completely, then write it to the expander.
- if (size() < 2)
- goto partial_othersubr;
- int command = (int)top(0);
- int n = (int)top(1);
- if (command >= Cs::othcITC_load && command <= Cs::othcITC_random) {
- if (!itc_complained)
- itc_complain();
- if (size() < 2 + n || !itc_command(command, n))
- goto partial_othersubr;
- } else if (command >= Cs::othcMM1 && command <= Cs::othcMM6) {
- if (size() < 2 + n)
- goto partial_othersubr;
- pop(2);
- mm_command(command, n);
- } else
- goto normal;
- break;
- }
-
- partial_othersubr: {
- if (!_in_prefix) {
- _must_expand = true;
- goto normal;
- }
- _prefix_gen.gen_stack(*this, 0);
- _prefix_gen.gen_command(Cs::cCallothersubr);
- break;
- }
-
- case Cs::cCallsubr: {
- // expand subroutines in line if necessary
- if (size() < 1)
- goto normal;
- int subrno = (int)pop();
- if (_subr_level < 1) { // otherwise, have already included prefix
- if (Type1Charstring *cs = _remover->subr_prefix(subrno))
- run_subr(cs);
- }
- if (Type1Charstring *cs = _remover->subr_expander(subrno))
- run_subr(cs);
- else {
- push(subrno);
- goto normal;
- }
- break;
- }
-
- case Cs::cPop:
- if (ps_size() >= 1)
- push(ps_pop());
- else if (_in_prefix && ps_size() == 0) {
- _prefix_gen.gen_stack(*this, 0);
- _prefix_gen.gen_command(Cs::cPop);
- } else
- goto normal;
- break;
-
- case Cs::cDiv:
- if (size() < 2)
- goto normal;
- top(1) /= top(0);
- pop();
- break;
-
- case Cs::cReturn:
- return false;
-
- normal:
- default:
- _main_gen.gen_stack(*this, cmd);
- _main_gen.gen_command(cmd);
- _in_prefix = 0;
- return (cmd != Cs::cEndchar);
-
- }
- return true;
-}
-
-
-bool
-Type1OneMMRemover::run(const Type1Charstring &cs,
- bool in_subr, bool do_prefix, bool fresh)
-{
- _prefix_gen.clear();
- _main_gen.clear();
- _in_subr = in_subr;
- _in_prefix = do_prefix;
- _subr_level = (fresh ? 0 : 1);
- _must_expand = false;
- Vector<double> *scratch = scratch_vector();
- scratch->assign(scratch->size(), UNKDOUBLE);
-
- CharstringInterp::interpret(_remover->program(), &cs);
-
- if (in_subr) {
- _main_gen.gen_stack(*this, Cs::cReturn);
- _main_gen.gen_command(Cs::cReturn);
- }
- if (_must_expand)
- return true;
- if (fresh && in_subr) {
- if (_main_gen.length() == 0
- || (_main_gen.length() == 1 && _main_gen.data()[0] == Cs::cReturn))
- return true;
- }
- return false;
-}
-
-inline bool
-Type1OneMMRemover::run_fresh_subr(const Type1Charstring &cs, bool do_prefix)
-{
- return run(cs, true, do_prefix, true);
-}
-
-inline bool
-Type1OneMMRemover::run_fresh_glyph(const Type1Charstring &cs)
-{
- return run(cs, false, false, true);
-}
-
-inline bool
-Type1OneMMRemover::rerun_subr(const Type1Charstring &cs)
-{
- return run(cs, true, false, false);
-}
-
-Type1Charstring *
-Type1OneMMRemover::output_prefix()
-{
- if (_prefix_gen.length() > 0) {
- _prefix_gen.gen_command(Cs::cReturn);
- return _prefix_gen.output();
- } else
- return 0;
-}
-
-void
-Type1OneMMRemover::output_main(Type1Charstring &cs)
-{
- _main_gen.output(cs);
-}
-
-
-/*****
- * Type1BadCallRemover
- **/
-
-class Type1BadCallRemover: public CharstringInterp { public:
-
- Type1BadCallRemover(Type1MMRemover *);
-
- bool type1_command(int);
-
- bool run(Type1Charstring &, bool is_subr);
-
- private:
-
- Type1CharstringGen _gen;
- Type1MMRemover *_remover;
- bool _is_subr;
-
-};
-
-Type1BadCallRemover::Type1BadCallRemover(Type1MMRemover *remover)
- : CharstringInterp(remover->weight_vector()),
- _gen(remover->precision()), _remover(remover)
-{
-}
-
-bool
-Type1BadCallRemover::type1_command(int cmd)
-{
- switch (cmd) {
-
- case Cs::cCallsubr: {
- if (size() < 1)
- goto normal;
- int subrno = (int)top();
- if (!get_subr(subrno)) {
- pop();
- return false;
- } else
- goto normal;
- }
-
- normal:
- default:
- _gen.gen_stack(*this, 0);
- _gen.gen_command(cmd);
- return (cmd != Cs::cEndchar || _is_subr) && cmd != Cs::cReturn;
-
- }
-}
-
-bool
-Type1BadCallRemover::run(Type1Charstring &cs, bool is_subr)
-{
- _is_subr = is_subr;
- _gen.clear();
- CharstringInterp::interpret(_remover->program(), &cs);
- _gen.output(cs);
- return error() == errOK;
-}
-
-
-/*****
- * Type1MMRemover
- **/
-
-Type1MMRemover::Type1MMRemover(Type1Font *font, const Vector<double> &wv,
- int precision, ErrorHandler *errh)
- : _font(font), _weight_vector(wv), _precision(precision),
- _nsubrs(font->nsubrs()),
- _subr_done(_nsubrs, 0),
- _subr_prefix(_nsubrs, (Type1Charstring *)0),
- _must_expand_subr(_nsubrs, 0),
- _hint_replacement_subr(_nsubrs, 0),
- _expand_all_subrs(false), _errh(errh)
-{
- itc_errh = _errh;
-
- // find subroutines needed for hint replacement
- HintReplacementDetector hr(font, wv, 0);
- for (int i = 0; i < _font->nglyphs(); i++)
- if (Type1Subr *g = _font->glyph_x(i))
- hr.run(font, g->t1cs());
- for (int i = 0; i < _nsubrs; i++)
- if (hr.is_hint_replacement(i))
- _hint_replacement_subr[i] = 1;
-
- // don't get rid of first 4 subrs
- for (int i = 0; i < _nsubrs && i < 4; i++)
- _subr_done[i] = 1;
-}
-
-Type1MMRemover::~Type1MMRemover()
-{
- for (int i = 0; i < _nsubrs; i++)
- if (_subr_prefix[i])
- delete _subr_prefix[i];
-}
-
-
-Type1Charstring *
-Type1MMRemover::subr_prefix(int subrno)
-{
- if (subrno < 0 || subrno >= _nsubrs)
- return 0;
-
- if (!_subr_done[subrno]) {
- _subr_done[subrno] = 1;
-
- Type1Charstring *subr = _font->subr(subrno);
- if (!subr)
- return 0;
-
- Type1OneMMRemover one(this);
- if (one.run_fresh_subr(*subr, !_hint_replacement_subr[subrno]))
- _must_expand_subr[subrno] = true;
- _subr_prefix[subrno] = one.output_prefix();
- one.output_main(*subr);
- }
-
- return _subr_prefix[subrno];
-}
-
-Type1Charstring *
-Type1MMRemover::subr_expander(int subrno)
-{
- if (subrno < 0 || subrno >= _nsubrs)
- return 0;
- if (!_subr_done[subrno])
- (void)subr_prefix(subrno);
- if (!_expand_all_subrs && !_must_expand_subr[subrno])
- return 0;
- return _font->subr(subrno);
-}
-
-extern "C" {
-static int CDECL
-sort_permstring_compare(const void *v1, const void *v2)
-{
- const PermString *s1 = (const PermString *)v1;
- const PermString *s2 = (const PermString *)v2;
- return strcmp(s1->c_str(), s2->c_str());
-}
-}
-
-void
-Type1MMRemover::run()
-{
- Type1OneMMRemover one(this);
-
- // check subroutines
- for (int subrno = 0; subrno < _nsubrs; subrno++)
- (void)subr_prefix(subrno);
-
- // expand glyphs
- Vector<PermString> bad_glyphs;
- for (int i = 0; i < _font->nglyphs(); i++) {
- Type1Subr *g = _font->glyph_x(i);
- if (g) {
- if (one.run_fresh_glyph(g->t1cs())) {
- // Every glyph should be fully expandable without encountering
- // a MM command. If we fail the first time, try again,
- // expanding ALL subroutines. This catches, for example, SUBR
- // 1 { 1 0 return }; GLYPH g { 1 callsubr 2 blend }; This will
- // fail the first time, because `1 callsubr' will be left as a
- // subroutine call, so `1 0' (required arguments to `blend')
- // won't be visible.
- _expand_all_subrs = true;
- if (one.run_fresh_glyph(g->t1cs()))
- bad_glyphs.push_back(g->name());
- _expand_all_subrs = false;
- }
- one.output_main(g->t1cs());
- }
- }
-
- // remove uncalled subroutines, expand hint replacement subroutines
- HintReplacementDetector hr(_font, _weight_vector, 0);
- for (int i = 0; i < _font->nglyphs(); i++)
- if (Type1Subr *g = _font->glyph_x(i))
- hr.run(_font, g->t1cs());
- // don't remove first four subroutines!
- for (int subrno = 4; subrno < _nsubrs; subrno++)
- if (hr.call_count(subrno) || _hint_replacement_subr[subrno]) {
- Type1Charstring *cs = _font->subr(subrno);
- if (one.rerun_subr(*cs)) {
- _expand_all_subrs = true;
- if (one.rerun_subr(*cs))
- bad_glyphs.push_back(permprintf("subr %d", subrno));
- _expand_all_subrs = false;
- }
- one.output_main(*cs);
- } else
- _font->remove_subr(subrno);
-
- // remove calls to removed subroutines
- Type1BadCallRemover bcr(this);
- for (int i = 0; i < _font->nglyphs(); i++)
- if (Type1Subr *g = _font->glyph_x(i))
- bcr.run(g->t1cs(), false);
- for (int subrno = 4; subrno < _nsubrs; subrno++)
- if (Type1Charstring *cs = _font->subr(subrno))
- bcr.run(*cs, true);
-
- // report warnings
- if (bad_glyphs.size()) {
- qsort(&bad_glyphs[0], bad_glyphs.size(), sizeof(PermString), sort_permstring_compare);
- _errh->error("could not fully interpolate the following glyphs:");
- StringAccum sa;
- for (int i = 0; i < bad_glyphs.size(); i++) {
- PermString n = bad_glyphs[i];
- bool comma = (i < bad_glyphs.size() - 1);
- if (sa.length() && sa.length() + 1 + n.length() + comma > 70) {
- _errh->message(" %s", sa.c_str());
- sa.clear();
- }
- sa << (sa.length() ? " " : "") << n << (comma ? "," : "");
- }
- _errh->message(" %s", sa.c_str());
- }
-}
-
-
-/*****
- * SubrExpander
- **/
-
-class SubrExpander : public CharstringInterp { public:
-
- SubrExpander();
-
- void set_renumbering(const Vector<int> *v) { _renumbering = v; }
-
- bool type1_command(int);
-
- bool run(Type1Font *, Type1Charstring &);
-
- private:
-
- Type1CharstringGen _gen;
- const Vector<int> *_renumbering;
- int _subr_level;
-
-};
-
-SubrExpander::SubrExpander()
- : CharstringInterp(), _gen(0), _renumbering(0)
-{
-}
-
-bool
-SubrExpander::type1_command(int cmd)
-{
- switch (cmd) {
-
- case Cs::cCallsubr: {
- if (size() < 1)
- goto unknown;
- int subrno = (int)top(0);
- int renumber_subrno = (subrno >= 0 && subrno < _renumbering->size() ? (*_renumbering)[subrno] : subrno);
- if (renumber_subrno >= 0) {
- top(0) = renumber_subrno;
- goto unknown;
- }
- pop();
- if (Charstring *subr_cs = get_subr(subrno)) {
- _subr_level++;
- subr_cs->process(*this);
- _subr_level--;
- }
- return !done();
- }
-
- case Cs::cEndchar:
- set_done();
- goto end_cs;
-
- case Cs::cReturn:
- if (_subr_level)
- return false;
- goto end_cs;
-
- end_cs:
- _gen.gen_stack(*this, cmd);
- _gen.gen_command(cmd);
- return false;
-
- default:
- unknown:
- _gen.gen_stack(*this, cmd);
- _gen.gen_command(cmd);
- break;
-
- }
- return true;
-}
-
-bool
-SubrExpander::run(Type1Font *font, Type1Charstring &cs)
-{
- _gen.clear();
- _subr_level = 0;
- CharstringInterp::interpret(font, &cs);
- _gen.output(cs);
- return error() == errOK;
-}
-
-
-/*****
- * Type1SubrRemover
- **/
-
-Type1SubrRemover::Type1SubrRemover(Type1Font *font, ErrorHandler *errh)
- : _font(font), _nsubrs(font->nsubrs()),
- _renumbering(_nsubrs, REMOVABLE), _cost(_nsubrs, 0),
- _save_count(0), _nonexist_count(0), _errh(errh)
-{
- // find subroutines needed for hint replacement
- HintReplacementDetector hr(font, 2);
- for (int i = 0; i < _font->nglyphs(); i++) {
- Type1Subr *g = _font->glyph_x(i);
- if (g)
- hr.run(_font, g->t1cs());
- }
-
- // save necessary subroutines
- for (int i = 0; i < 4; i++) {
- _renumbering[i] = i;
- _save_count++;
- }
- // save hint-replacement subroutines
- for (int i = 0; i < _nsubrs; i++) {
- Type1Subr *cs = _font->subr_x(i);
- if (!cs) {
- _renumbering[i] = DEAD;
- _nonexist_count++;
- } else if (hr.is_hint_replacement(i)) {
- _renumbering[i] = i;
- _save_count++;
- } else
- _cost[i] = hr.call_count(i) * (cs->t1cs().length() - (i <= 107 ? 2 : 3));
- }
-}
-
-Type1SubrRemover::~Type1SubrRemover()
-{
-}
-
-static Vector<int> *sort_keys;
-
-extern "C" {
-static int CDECL
-sort_permute_compare(const void *v1, const void *v2)
-{
- const int *i1 = (const int *)v1;
- const int *i2 = (const int *)v2;
- return (*sort_keys)[*i1] - (*sort_keys)[*i2];
-}
-}
-
-bool
-Type1SubrRemover::run(int lower_to)
-{
- if (lower_to < 0)
- lower_to = _nsubrs;
- if (lower_to < _save_count) {
- _errh->warning("reducing %s to minimum number of subroutines (%d)",
- _font->font_name().c_str(), _save_count - _nonexist_count);
- lower_to = _save_count;
- }
- int to_remove = _nsubrs - _nonexist_count - lower_to;
- if (to_remove < 0)
- to_remove = 0;
-
- // multiply by lost bytes per call
- Vector<int> permute;
- for (int i = 0; i < _nsubrs; i++)
- permute.push_back(i);
-
- // sort them by least frequent use -> most frequent use
- sort_keys = &_cost;
- qsort(&permute[0], _nsubrs, sizeof(int), sort_permute_compare);
-
- // mark first portion of `permute' to be removed
- int removed = 0;
- for (int i = 0; i < _nsubrs; i++) {
- int p = permute[i];
- if (_renumbering[p] == REMOVABLE && removed < to_remove) {
- _renumbering[p] = DEAD;
- removed++;
- }
- }
-
- // renumber the rest
- int renumber_pos = 0;
- for (int i = 0; i < _nsubrs; i++)
- if (_renumbering[i] == REMOVABLE) { // save it
- while (_renumbering[renumber_pos] >= 0)
- renumber_pos++;
- _renumbering[i] = renumber_pos++;
- }
- SubrExpander rem0;
- rem0.set_renumbering(&_renumbering);
-
- // go through and change them all
- for (int i = 0; i < _nsubrs; i++) {
- Type1Subr *s = _font->subr_x(i);
- if (s && _renumbering[i] >= 0)
- rem0.run(_font, s->t1cs());
- }
- for (int i = 0; i < _font->nglyphs(); i++)
- if (Type1Subr *g = _font->glyph_x(i))
- rem0.run(_font, g->t1cs());
-
- // actually remove subroutines
- _font->renumber_subrs(_renumbering);
-
- return true;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.hh
deleted file mode 100644
index eac9d75beeb..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/mmpfb/t1rewrit.hh
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef T1REWRIT_HH
-#define T1REWRIT_HH
-#include <efont/t1interp.hh>
-#include <efont/t1font.hh>
-#include <lcdf/straccum.hh>
-
-class Type1MMRemover { public:
-
- Type1MMRemover(Efont::Type1Font *, const Vector<double> &weight_vec, int, ErrorHandler *);
- ~Type1MMRemover();
-
- Efont::CharstringProgram *program() const { return _font; }
- const Vector<double> &weight_vector() const { return _weight_vector; }
- int nmasters() const { return _weight_vector.size(); }
- int precision() const { return _precision; }
-
- Efont::Type1Charstring *subr_prefix(int);
- Efont::Type1Charstring *subr_expander(int);
-
- void run();
-
- private:
-
- Efont::Type1Font *_font;
- Vector<double> _weight_vector;
- int _precision;
-
- int _nsubrs;
- Vector<int> _subr_done;
- Vector<Efont::Type1Charstring *> _subr_prefix;
- Vector<int> _must_expand_subr;
- Vector<int> _hint_replacement_subr;
- bool _expand_all_subrs;
-
- ErrorHandler *_errh;
-
-};
-
-
-class Type1SubrRemover { public:
-
- Type1SubrRemover(Efont::Type1Font *, ErrorHandler *);
- ~Type1SubrRemover();
-
- Efont::CharstringProgram *program() const { return _font; }
- ErrorHandler *errh() const { return _errh; }
-
- int save_count() const { return _save_count; }
-
- bool run(int);
-
- private:
-
- Efont::Type1Font *_font;
-
- int _nsubrs;
- enum { REMOVABLE = -1, DEAD = -2 };
- Vector<int> _renumbering;
- Vector<int> _cost;
- int _save_count;
- int _nonexist_count;
-
- ErrorHandler *_errh;
-
-};
-
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.am
deleted file mode 100644
index b2f3dbfa52a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = otfinfo
-man_MANS = otfinfo.1
-
-otfinfo_SOURCES = \
- otfinfo.cc
-
-otfinfo_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-otfinfo_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = otfinfo.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.in
deleted file mode 100644
index 2a949aa07f9..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/Makefile.in
+++ /dev/null
@@ -1,750 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = otfinfo$(EXEEXT)
-subdir = lcdf-typetools-src/otfinfo
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_otfinfo_OBJECTS = otfinfo.$(OBJEXT)
-otfinfo_OBJECTS = $(am_otfinfo_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/otfinfo.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(otfinfo_SOURCES)
-DIST_SOURCES = $(otfinfo_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = otfinfo.1
-otfinfo_SOURCES = \
- otfinfo.cc
-
-otfinfo_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-otfinfo_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = otfinfo.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/otfinfo/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/otfinfo/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-otfinfo$(EXEEXT): $(otfinfo_OBJECTS) $(otfinfo_DEPENDENCIES) $(EXTRA_otfinfo_DEPENDENCIES)
- @rm -f otfinfo$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(otfinfo_OBJECTS) $(otfinfo_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otfinfo.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/otfinfo.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/otfinfo.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
deleted file mode 100644
index 558d5e144f3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.1
+++ /dev/null
@@ -1,199 +0,0 @@
-'\"t
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH OTFINFO 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-otfinfo \- report information about OpenType fonts
-.SH SYNOPSIS
-.B otfinfo
-\%[\fB-sfzpvag\fR]
-\%[\fIFILE...\fR]
-'
-.SH DESCRIPTION
-.BR Otfinfo
-reports information about the named OpenType font
-.IR FILE s
-(or standard input, if no
-.IR FILE s
-are given). Results are printed to standard output. Each line is prefaced
-with the relevant
-.I FILE
-if more than one
-.I FILE
-was supplied.
-'
-.SH OPTIONS
-With long options, you need type only as many characters as will make the
-option unique.
-.SS Query options
-.PD 0
-.PD 0
-.TP 5
-.BR \-s ", " \-\-scripts
-Print supported scripts and language systems. The scripts are printed one
-per line, with human-readable descriptions; for example:
-.nf
- cyrl Cyrillic
- grek Greek
- latn Latin
- latn.TUR Latin/Turkish
-.fi
-'
-.Sp
-.TP 5
-.BR \-f ", " \-\-features
-Print GSUB and GPOS features supported by the selected script (see the
-.B \-\-script
-option below). The scripts are printed one per line, with human-readable
-descriptions; for example:
-.nf
- aalt Access All Alternates
- c2sc Small Capitals From Capitals
- case Case-Sensitive Forms
- cpsp Capital Spacing
- \&...
- zero Slashed Zero
-.fi
-'
-.Sp
-.TP 5
-.BR \-z ", " \-\-optical\-size
-Print optical size information. For example:
-.nf
- design size 11 pt, size range (8.4 pt, 13 pt], subfamily ID 11, subfamily name Semibold Italic
-.fi
-'
-.Sp
-.TP 5
-.BR \-p ", " \-\-postscript\-name
-Print each font's PostScript name. For example:
-.nf
- MinionPro-SemiboldItCapt
-.fi
-'
-.Sp
-.TP 5
-.BR \-a ", " \-\-family
-Print each font's family name. For example:
-.nf
- Minion Pro
-.fi
-'
-.Sp
-.TP 5
-.BR \-v ", " \-\-font\-version
-Print font version information, if available. For example:
-.nf
- OTF 1.013;PS 001.000;Core 1.0.27;makeotf.lib(1.11)
-.fi
-'
-.Sp
-.TP 5
-.BR \-i ", " \-\-info
-Print each font's name, version, designer, vendor, copyright, and license
-information. For example:
-.nf
- Family: Minion Pro
- Subfamily: Regular
- Full name: Minion Pro
- PostScript name: MinionPro-Regular
- Version: OTF 1.011;PS 001.000;Core 1.0.27;makeotf.lib1.3.1
- Unique ID: 1.011;ADBE;MinionPro-Regular
- Designer: Robert Slimbach
- Vendor URL: http://www.adobe.com/type/
- Trademark: Minion is either a registered trademark or a trademark of Adobe Systems Incorporated in the United States and/or other countries.
- Copyright: \(co 2000 Adobe Systems Incorporated. All Rights Reserved. U.S. Patent Des. 337,604. Other patents pending.
- License URL: http://www.adobe.com/type/legal.html
-.fi
-'
-.Sp
-.TP 5
-.BR \-g ", " \-\-glyphs
-Print the name of every glyph in each font, one per line. For example:
-.nf
- \&.notdef
- space
- exclam
- \&...
- ncommaaccent.end
- lje.alt
-.fi
-'
-.Sp
-.TP 5
-.BR \-u ", " \-\-unicode
-Print each Unicode code point supported by the font, followed by the glyph number
-representing that code point (and, if present, the name of the corresponding glyph).
-.Sp
-.TP 5
-.BR \-t ", " \-\-tables
-Print the size and name of every OpenType table in the font. For example:
-.nf
- 52 BASE
- 87723 CFF
- 4940 DSIG
- 21366 GPOS
- \&...
-.fi
-'
-.Sp
-.TP 5
-.BR \-T " \fItable\fR, " \-\-dump\-table= \fItable\fR
-Print the contents of the font's OpenType table \fItable\fR.
-'
-.PD
-'
-'
-.SS Miscellaneous options
-'
-.PD 0
-.TP 5
-.BI \-\-script= "script\fR[.\fIlang\fR]"
-Select the script system
-.I script
-and language system
-.IR lang
-used to look up features by
-.BR \-\-features .
-Examples include "latn" (Latin script), "grek" (Greek script), and "yi.YIC"
-(Yi script with classic characters). If
-.I lang
-is not specified, otfinfo will use the default language system for that
-script. Defaults to "latn".
-'
-.Sp
-.TP 5
-.BR \-V ", " \-\-verbose
-Write progress messages to standard error.
-'
-.Sp
-.TP 5
-.BR \-q ", " \-\-quiet
-Do not generate any error messages.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "SEE ALSO"
-.LP
-.M otftotfm 1
-.LP
-.IR "OpenType Specification" ,
-Version 1.4
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
deleted file mode 100644
index ea917b6a073..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otfinfo/otfinfo.cc
+++ /dev/null
@@ -1,726 +0,0 @@
-/* otfinfo.cc -- driver for reporting information about OpenType fonts
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <efont/otfcmap.hh>
-#include <efont/otfgsub.hh>
-#include <efont/otfgpos.hh>
-#include <efont/otfname.hh>
-#include <efont/otfos2.hh>
-#include <efont/otfpost.hh>
-#include <efont/cff.hh>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#include <algorithm>
-#include <utility>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define QUIET_OPT 303
-#define VERBOSE_OPT 304
-#define SCRIPT_OPT 305
-
-#define QUERY_SCRIPTS_OPT 320
-#define QUERY_FEATURES_OPT 321
-#define QUERY_OPTICAL_SIZE_OPT 322
-#define QUERY_POSTSCRIPT_NAME_OPT 323
-#define QUERY_GLYPHS_OPT 324
-#define QUERY_FVERSION_OPT 325
-#define TABLES_OPT 326
-#define QUERY_FAMILY_OPT 327
-#define INFO_OPT 328
-#define DUMP_TABLE_OPT 329
-#define QUERY_UNICODE_OPT 330
-
-const Clp_Option options[] = {
- { "script", 0, SCRIPT_OPT, Clp_ValString, 0 },
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "verbose", 'V', VERBOSE_OPT, 0, Clp_Negate },
- { "features", 'f', QUERY_FEATURES_OPT, 0, 0 },
- { "scripts", 's', QUERY_SCRIPTS_OPT, 0, 0 },
- { "size", 0, QUERY_OPTICAL_SIZE_OPT, 0, 0 },
- { "optical-size", 'z', QUERY_OPTICAL_SIZE_OPT, 0, 0 },
- { "postscript-name", 'p', QUERY_POSTSCRIPT_NAME_OPT, 0, 0 },
- { "family", 'a', QUERY_FAMILY_OPT, 0, 0 },
- { "font-version", 'v', QUERY_FVERSION_OPT, 0, 0 },
- { "info", 'i', INFO_OPT, 0, 0 },
- { "glyphs", 'g', QUERY_GLYPHS_OPT, 0, 0 },
- { "tables", 't', TABLES_OPT, 0, 0 },
- { "dump-table", 'T', DUMP_TABLE_OPT, Clp_ValString, 0 },
- { "unicode", 'u', QUERY_UNICODE_OPT, 0, 0 },
- { "help", 'h', HELP_OPT, 0, 0 },
- { "version", 0, VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-
-static Efont::OpenType::Tag script, langsys;
-
-bool verbose = false;
-bool quiet = false;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... FONT", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<Otfinfo%> reports information about an OpenType font to standard output.\n\
-Options specify what information to print.\n\
-\n\
-Usage: %s [-sfzpg | OPTIONS] [OTFFILES...]\n\n",
- program_name);
- uerrh.message("\
-Query options:\n\
- -s, --scripts Report font%,s supported scripts.\n\
- -f, --features Report font%,s GSUB/GPOS features.\n\
- -z, --optical-size Report font%,s optical size information.\n\
- -p, --postscript-name Report font%,s PostScript name.\n\
- -a, --family Report font%,s family name.\n\
- -v, --font-version Report font%,s version information.\n\
- -i, --info Report font%,s names and designer/vendor info.\n\
- -g, --glyphs Report font%,s glyph names.\n\
- -t, --tables Report font%,s OpenType tables.\n\
- -T, --dump-table NAME Output font%,s %<NAME%> table.\n\
-\n\
-Other options:\n\
- --script=SCRIPT[.LANG] Set script used for --features [latn].\n\
- -V, --verbose Print progress information to standard error.\n\
- -h, --help Print this message and exit.\n\
- -q, --quiet Do not generate any error messages.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n");
-}
-
-String
-read_file(String filename, ErrorHandler *errh, bool warning = false)
-{
- FILE *f;
- int f_errno = 0;
- if (!filename || filename == "-") {
- filename = "<stdin>";
- f = stdin;
-#if defined(_MSDOS) || defined(_WIN32)
- // Set the file mode to binary
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else {
- f = fopen(filename.c_str(), "rb");
- f_errno = errno;
- }
-
- String error_anno = (warning ? errh->e_warning : errh->e_error) + ErrorHandler::make_landmark_anno(filename);
- if (!f) {
- errh->xmessage(error_anno, strerror(f_errno));
- return String();
- }
-
- StringAccum sa;
- int amt;
- do {
- if (char *x = sa.reserve(8192)) {
- amt = fread(x, 1, 8192, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f) || ferror(f))
- errh->xmessage(error_anno, strerror(errno));
- if (f != stdin)
- fclose(f);
- return sa.take_string();
-}
-
-String
-printable_filename(const String &s)
-{
- if (!s || s == "-")
- return String::make_stable("<stdin>");
- else
- return s;
-}
-
-static void
-collect_script_descriptions(const OpenType::ScriptList &script_list, Vector<String> &output, ErrorHandler *errh)
-{
- Vector<OpenType::Tag> script, langsys;
- script_list.language_systems(script, langsys, errh);
- for (int i = 0; i < script.size(); i++) {
- String what = script[i].text();
- const char *s = script[i].script_description();
- String where = (s ? s : "<unknown script>");
- if (!langsys[i].null()) {
- what += String(".") + langsys[i].text();
- s = langsys[i].language_description();
- where += String("/") + (s ? s : "<unknown language>");
- }
- if (what.length() < 8)
- output.push_back(what + String("\t\t") + where);
- else
- output.push_back(what + String("\t") + where);
- }
-}
-
-static void
-do_query_scripts(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- Vector<String> results;
- if (String gsub_table = otf.table("GSUB")) {
- OpenType::Gsub gsub(gsub_table, &otf, errh);
- collect_script_descriptions(gsub.script_list(), results, errh);
- }
- if (String gpos_table = otf.table("GPOS")) {
- OpenType::Gpos gpos(gpos_table, errh);
- collect_script_descriptions(gpos.script_list(), results, errh);
- }
-
- if (results.size()) {
- std::sort(results.begin(), results.end());
- String *unique_result = std::unique(results.begin(), results.end());
- for (String *sp = results.begin(); sp < unique_result; sp++)
- result_errh->message("%s", sp->c_str());
- }
-}
-
-static void
-collect_feature_descriptions(const OpenType::ScriptList &script_list, const OpenType::FeatureList &feature_list, Vector<String> &output, ErrorHandler *errh)
-{
- int required_fid;
- Vector<int> fids;
- // collect features applying to this script
- script_list.features(script, langsys, required_fid, fids, errh);
- for (int i = -1; i < fids.size(); i++) {
- int fid = (i < 0 ? required_fid : fids[i]);
- if (fid >= 0) {
- OpenType::Tag tag = feature_list.tag(fid);
- const char *s = tag.feature_description();
- output.push_back(tag.text() + String("\t") + (s ? s : "<unknown feature>"));
- }
- }
-}
-
-static void
-do_query_features(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- Vector<String> results;
- if (String gsub_table = otf.table("GSUB")) {
- OpenType::Gsub gsub(gsub_table, &otf, errh);
- collect_feature_descriptions(gsub.script_list(), gsub.feature_list(), results, errh);
- }
- if (String gpos_table = otf.table("GPOS")) {
- OpenType::Gpos gpos(gpos_table, errh);
- collect_feature_descriptions(gpos.script_list(), gpos.feature_list(), results, errh);
- }
-
- if (results.size()) {
- std::sort(results.begin(), results.end());
- String *unique_result = std::unique(results.begin(), results.end());
- for (String *sp = results.begin(); sp < unique_result; sp++)
- result_errh->message("%s", sp->c_str());
- }
-}
-
-static bool
-do_query_optical_size_size(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- try {
- String gpos_table = otf.table("GPOS");
- if (!gpos_table)
- return false;
-
- OpenType::Gpos gpos(gpos_table, errh);
- OpenType::Name name(otf.table("name"), errh);
-
- // extract 'size' feature
- int required_fid;
- Vector<int> fids;
- gpos.script_list().features(script, langsys, required_fid, fids, errh);
-
- int size_fid = gpos.feature_list().find(OpenType::Tag("size"), fids);
- if (size_fid < 0)
- return false;
-
- // old Adobe fonts implement an old, incorrect idea
- // of what the FeatureParams offset means.
- OpenType::Data size_data = gpos.feature_list().size_params(size_fid, name, errh);
- if (!size_data.length())
- return false;
-
- StringAccum sa;
- sa << "design size " << (size_data.u16(0) / 10.) << " pt";
- if (size_data.u16(2) != 0) {
- sa << ", size range (" << (size_data.u16(6) / 10.) << " pt, "
- << (size_data.u16(8) / 10.) << " pt], "
- << "subfamily ID " << size_data.u16(2);
- if (String n = name.english_name(size_data.u16(4)))
- sa << ", subfamily name " << n;
- }
-
- result_errh->message("%s", sa.c_str());
- return true;
-
- } catch (OpenType::Error) {
- return errh->nerrors() != before_nerrors;
- }
-}
-
-static void
-do_query_optical_size(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- try {
- if (do_query_optical_size_size(otf, errh, result_errh))
- return;
-
- String os2_table = otf.table("OS/2");
- if (!os2_table)
- throw OpenType::Error();
-
- OpenType::Os2 os2(os2_table, errh);
- if (!os2.ok() || !os2.has_optical_point_size())
- throw OpenType::Error();
-
- StringAccum sa;
- sa << "size range [" << os2.lower_optical_point_size() << ", " << os2.upper_optical_point_size() << ")";
- result_errh->message("%s", sa.c_str());
-
- } catch (OpenType::Error) {
- if (errh->nerrors() == before_nerrors)
- result_errh->message("no optical size information");
- }
-}
-
-static void
-do_query_family_name(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- String family_name = "no family name information";
-
- if (String name_table = otf.table("name")) {
- OpenType::Name name(name_table, errh);
- if (name.ok())
- family_name = name.english_name(OpenType::Name::N_FAMILY);
- }
-
- if (errh->nerrors() == before_nerrors)
- result_errh->message("%s", family_name.c_str());
-}
-
-static void
-do_query_postscript_name(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- String postscript_name = "no PostScript name information";
-
- if (String name_table = otf.table("name")) {
- OpenType::Name name(name_table, errh);
- if (name.ok())
- postscript_name = name.english_name(OpenType::Name::N_POSTSCRIPT);
- }
-
- if (errh->nerrors() == before_nerrors)
- result_errh->message("%s", postscript_name.c_str());
-}
-
-static void
-do_query_font_version(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- String version = "no version information";
-
- if (String name_table = otf.table("name")) {
- OpenType::Name name(name_table, errh);
- if (name.ok())
- version = name.english_name(OpenType::Name::N_VERSION);
- }
-
- if (errh->nerrors() == before_nerrors)
- result_errh->message("%s", version.c_str());
-}
-
-static void
-do_info(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- StringAccum sa;
-
- if (String name_table = otf.table("name")) {
- OpenType::Name name(name_table, errh);
- if (name.ok()) {
- if (String s = name.english_name(OpenType::Name::N_FAMILY))
- sa << "Family: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_SUBFAMILY))
- sa << "Subfamily: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_FULLNAME))
- sa << "Full name: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_POSTSCRIPT))
- sa << "PostScript name: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_POSTSCRIPT_CID))
- sa << "PostScript CID name: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_PREF_FAMILY))
- sa << "Preferred family: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_PREF_SUBFAMILY))
- sa << "Preferred subfamily: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_MAC_COMPAT_FULLNAME))
- sa << "Mac font menu name: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_VERSION))
- sa << "Version: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_UNIQUEID))
- sa << "Unique ID: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_DESCRIPTION))
- sa << "Description: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_DESIGNER))
- sa << "Designer: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_DESIGNER_URL))
- sa << "Designer URL: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_MANUFACTURER))
- sa << "Manufacturer: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_VENDOR_URL))
- sa << "Vendor URL: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_TRADEMARK))
- sa << "Trademark: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_COPYRIGHT))
- sa << "Copyright: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_LICENSE_URL))
- sa << "License URL: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_LICENSE_DESCRIPTION))
- sa << "License Description: " << s << "\n";
- if (String s = name.english_name(OpenType::Name::N_SAMPLE_TEXT))
- sa << "Sample text: " << s << "\n";
- }
- }
-
- if (String os2_table = otf.table("OS/2")) {
- OpenType::Os2 os2(os2_table, errh);
- if (os2.ok()) {
- if (String s = os2.vendor_id()) {
- while (s.length() && (s.back() == ' ' || s.back() == 0))
- s = s.substring(s.begin(), s.end() - 1);
- if (s)
- sa << "Vendor ID: " << s << "\n";
- }
- }
- }
-
- if (sa || errh->nerrors() == before_nerrors)
- result_errh->message("%s", (sa ? sa.c_str() : "no information"));
-}
-
-static void
-do_query_glyphs_cff(const OpenType::Font& otf, ErrorHandler* errh, Vector<PermString>& glyph_names)
-{
- try {
- // get font
- Cff cff(otf.table("CFF"), otf.units_per_em(), errh);
- if (!cff.ok())
- return;
-
- Cff::FontParent *fp = cff.font(PermString(), errh);
- if (!fp || !fp->ok())
- return;
- Cff::Font *font = dynamic_cast<Cff::Font *>(fp);
- if (!font) {
- errh->error("CID-keyed fonts not supported");
- return;
- }
-
- // save glyph names
- font->glyph_names(glyph_names);
- } catch (OpenType::Error) {
- }
-}
-
-static void
-do_query_glyphs_post(const OpenType::Font& otf, ErrorHandler* errh, Vector<PermString>& glyph_names)
-{
- try {
- // get font
- OpenType::Post post(otf.table("post"), errh);
- if (!post.ok())
- return;
-
- // save glyph names
- post.glyph_names(glyph_names);
- } catch (OpenType::Error) {
- }
-}
-
-static void
-do_query_glyphs(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- Vector<PermString> glyph_names;
- if (otf.table("CFF"))
- do_query_glyphs_cff(otf, errh, glyph_names);
- else if (otf.table("post"))
- do_query_glyphs_post(otf, errh, glyph_names);
- for (PermString* s = glyph_names.begin(); s != glyph_names.end(); ++s)
- result_errh->message("%s", s->c_str());
- if (glyph_names.empty() && errh->nerrors() == before_nerrors)
- errh->message("no glyph name information");
-}
-
-static void
-do_query_unicode(const OpenType::Font& otf, ErrorHandler* errh, ErrorHandler* result_errh)
-{
- Vector<PermString> glyph_names;
- if (otf.table("CFF"))
- do_query_glyphs_cff(otf, errh, glyph_names);
- else if (otf.table("post"))
- do_query_glyphs_post(otf, errh, glyph_names);
-
- try {
- OpenType::Cmap cmap(otf.table("cmap"), errh);
- if (!cmap.ok())
- throw OpenType::Error();
-
- Vector<std::pair<uint32_t, int> > u2g;
- cmap.unmap_all(u2g);
- std::sort(u2g.begin(), u2g.end());
- for (std::pair<uint32_t, int>* it = u2g.begin(); it != u2g.end(); ++it) {
- char name[10];
- if (it->first < 0x10000)
- sprintf(name, "uni%04X", it->first);
- else
- sprintf(name, "u%X", it->first);
- if (it->second < glyph_names.size())
- result_errh->message("%s %d %s\n", name, it->second, glyph_names[it->second].c_str());
- else
- result_errh->message("%s %d\n", name, it->second);
- }
- } catch (OpenType::Error) {
- }
-}
-
-static void
-do_tables(const OpenType::Font &otf, ErrorHandler *errh, ErrorHandler *result_errh)
-{
- int before_nerrors = errh->nerrors();
- try {
- int n = otf.ntables();
-
- for (int i = 0; i < n; i++)
- if (OpenType::Tag tag = otf.table_tag(i)) {
- String s = otf.table(tag);
- result_errh->message("%7u %s\n", s.length(), tag.text().c_str());
- }
- } catch (OpenType::Error) {
- if (errh->nerrors() == before_nerrors)
- result_errh->message("corrupted tables");
- }
-}
-
-static void
-do_dump_table(const OpenType::Font &otf, OpenType::Tag tag, ErrorHandler *errh)
-{
- int before_nerrors = errh->nerrors();
- try {
- if (otf.has_table(tag)) {
- String s = otf.table(tag);
- int written = fwrite(s.data(), 1, s.length(), stdout);
- if (written != s.length())
- errh->error("%s", strerror(errno));
- } else
- errh->message("no %<%s%> table", tag.text().c_str());
- } catch (OpenType::Error) {
- if (errh->nerrors() == before_nerrors)
- errh->message("corrupted tables");
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr, String(program_name) + ": "));
- Vector<const char *> input_files;
- OpenType::Tag dump_table;
- int query = 0;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case SCRIPT_OPT: {
- if (!script.null())
- usage_error(errh, "--script already specified");
- String arg = clp->vstr;
- int period = arg.find_left('.');
- OpenType::Tag scr(period <= 0 ? arg : arg.substring(0, period));
- if (scr.valid() && period > 0) {
- OpenType::Tag lang(arg.substring(period + 1));
- if (lang.valid()) {
- script = scr;
- langsys = lang;
- } else
- usage_error(errh, "bad language tag");
- } else if (scr.valid())
- script = scr;
- else
- usage_error(errh, "bad script tag");
- break;
- }
-
- case QUERY_SCRIPTS_OPT:
- case QUERY_FEATURES_OPT:
- case QUERY_OPTICAL_SIZE_OPT:
- case QUERY_POSTSCRIPT_NAME_OPT:
- case QUERY_GLYPHS_OPT:
- case QUERY_FAMILY_OPT:
- case QUERY_FVERSION_OPT:
- case QUERY_UNICODE_OPT:
- case TABLES_OPT:
- case INFO_OPT:
- if (query)
- usage_error(errh, "supply exactly one query type option");
- query = opt;
- break;
-
- case DUMP_TABLE_OPT:
- if (query)
- usage_error(errh, "supply exactly one query type option");
- if (!(dump_table = OpenType::Tag(clp->vstr)))
- usage_error(errh, "bad table name");
- query = opt;
- break;
-
- case QUIET_OPT:
- if (clp->negated)
- errh = ErrorHandler::default_handler();
- else
- errh = new SilentErrorHandler;
- break;
-
- case VERBOSE_OPT:
- verbose = !clp->negated;
- break;
-
- case VERSION_OPT:
- printf("otfinfo (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 2003-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- input_files.push_back(clp->vstr);
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- if (!query)
- usage_error(errh, "supply exactly one query option");
- if (!input_files.size())
- input_files.push_back("-");
- if (script.null())
- script = Efont::OpenType::Tag("latn");
-
- FileErrorHandler stdout_errh(stdout);
- for (const char **input_filep = input_files.begin(); input_filep != input_files.end(); input_filep++) {
- int before_nerrors = errh->nerrors();
- String font_data = read_file(*input_filep, errh);
- if (errh->nerrors() != before_nerrors)
- continue;
-
- String input_file = printable_filename(*input_filep);
- LandmarkErrorHandler cerrh(errh, input_file);
- OpenType::Font otf(font_data, &cerrh);
- if (!otf.ok())
- continue;
-
- PrefixErrorHandler stdout_cerrh(&stdout_errh, input_file + ":");
- ErrorHandler *result_errh = (input_files.size() > 1 ? static_cast<ErrorHandler *>(&stdout_cerrh) : static_cast<ErrorHandler *>(&stdout_errh));
- if (query == QUERY_SCRIPTS_OPT)
- do_query_scripts(otf, &cerrh, result_errh);
- else if (query == QUERY_FEATURES_OPT)
- do_query_features(otf, &cerrh, result_errh);
- else if (query == QUERY_OPTICAL_SIZE_OPT)
- do_query_optical_size(otf, &cerrh, result_errh);
- else if (query == QUERY_POSTSCRIPT_NAME_OPT)
- do_query_postscript_name(otf, &cerrh, result_errh);
- else if (query == QUERY_GLYPHS_OPT)
- do_query_glyphs(otf, &cerrh, result_errh);
- else if (query == QUERY_UNICODE_OPT)
- do_query_unicode(otf, &cerrh, result_errh);
- else if (query == QUERY_FAMILY_OPT)
- do_query_family_name(otf, &cerrh, result_errh);
- else if (query == QUERY_FVERSION_OPT)
- do_query_font_version(otf, &cerrh, result_errh);
- else if (query == TABLES_OPT)
- do_tables(otf, &cerrh, result_errh);
- else if (query == DUMP_TABLE_OPT)
- do_dump_table(otf, dump_table, &cerrh);
- else if (query == INFO_OPT)
- do_info(otf, &cerrh, result_errh);
- }
-
- Clp_DeleteParser(clp);
- return (errh->nerrors() == 0 ? 0 : 1);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.am
deleted file mode 100644
index 106e4a6f9b7..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = otftotfm
-man_MANS = otftotfm.1
-
-otftotfm_SOURCES = \
- automatic.cc automatic.hh \
- dvipsencoding.cc dvipsencoding.hh \
- glyphfilter.cc glyphfilter.hh \
- metrics.cc metrics.hh \
- otftotfm.cc otftotfm.hh \
- secondary.cc secondary.hh \
- setting.hh \
- uniprop.cc uniprop.hh \
- util.cc util.hh
-EXTRA_otftotfm_SOURCES = kpseinterface.c kpseinterface.h
-
-otftotfm_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-otftotfm_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = otftotfm.1
-
-if have_kpathsea
-otftotfm_SOURCES += kpseinterface.c kpseinterface.h
-AM_CPPFLAGS += $(KPATHSEA_INCLUDES)
-otftotfm_LDADD += $(KPATHSEA_LIBS)
-otftotfm_DEPENDENCIES += $(KPATHSEA_DEPEND)
-endif have_kpathsea
-
-## Rebuild libkpathsea in a TeX Live build
-@KPATHSEA_RULE@
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.in
deleted file mode 100644
index f4e5711abf7..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/Makefile.in
+++ /dev/null
@@ -1,842 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = otftotfm$(EXEEXT)
-@have_kpathsea_TRUE@am__append_1 = kpseinterface.c kpseinterface.h
-@have_kpathsea_TRUE@am__append_2 = $(KPATHSEA_INCLUDES)
-@have_kpathsea_TRUE@am__append_3 = $(KPATHSEA_LIBS)
-@have_kpathsea_TRUE@am__append_4 = $(KPATHSEA_DEPEND)
-subdir = lcdf-typetools-src/otftotfm
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am__otftotfm_SOURCES_DIST = automatic.cc automatic.hh dvipsencoding.cc \
- dvipsencoding.hh glyphfilter.cc glyphfilter.hh metrics.cc \
- metrics.hh otftotfm.cc otftotfm.hh secondary.cc secondary.hh \
- setting.hh uniprop.cc uniprop.hh util.cc util.hh \
- kpseinterface.c kpseinterface.h
-@have_kpathsea_TRUE@am__objects_1 = kpseinterface.$(OBJEXT)
-am_otftotfm_OBJECTS = automatic.$(OBJEXT) dvipsencoding.$(OBJEXT) \
- glyphfilter.$(OBJEXT) metrics.$(OBJEXT) otftotfm.$(OBJEXT) \
- secondary.$(OBJEXT) uniprop.$(OBJEXT) util.$(OBJEXT) \
- $(am__objects_1)
-otftotfm_OBJECTS = $(am_otftotfm_OBJECTS)
-am__DEPENDENCIES_1 =
-@have_kpathsea_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/automatic.Po \
- ./$(DEPDIR)/dvipsencoding.Po ./$(DEPDIR)/glyphfilter.Po \
- ./$(DEPDIR)/kpseinterface.Po ./$(DEPDIR)/metrics.Po \
- ./$(DEPDIR)/otftotfm.Po ./$(DEPDIR)/secondary.Po \
- ./$(DEPDIR)/uniprop.Po ./$(DEPDIR)/util.Po
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(otftotfm_SOURCES) $(EXTRA_otftotfm_SOURCES)
-DIST_SOURCES = $(am__otftotfm_SOURCES_DIST) $(EXTRA_otftotfm_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = otftotfm.1
-otftotfm_SOURCES = automatic.cc automatic.hh dvipsencoding.cc \
- dvipsencoding.hh glyphfilter.cc glyphfilter.hh metrics.cc \
- metrics.hh otftotfm.cc otftotfm.hh secondary.cc secondary.hh \
- setting.hh uniprop.cc uniprop.hh util.cc util.hh \
- $(am__append_1)
-EXTRA_otftotfm_SOURCES = kpseinterface.c kpseinterface.h
-otftotfm_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a \
- $(am__append_3)
-otftotfm_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a \
- $(am__append_4)
-AM_CPPFLAGS = -I$(srcdir)/../include $(am__append_2)
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = otftotfm.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/otftotfm/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/otftotfm/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-otftotfm$(EXEEXT): $(otftotfm_OBJECTS) $(otftotfm_DEPENDENCIES) $(EXTRA_otftotfm_DEPENDENCIES)
- @rm -f otftotfm$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(otftotfm_OBJECTS) $(otftotfm_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/automatic.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dvipsencoding.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glyphfilter.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kpseinterface.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metrics.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otftotfm.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secondary.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uniprop.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/automatic.Po
- -rm -f ./$(DEPDIR)/dvipsencoding.Po
- -rm -f ./$(DEPDIR)/glyphfilter.Po
- -rm -f ./$(DEPDIR)/kpseinterface.Po
- -rm -f ./$(DEPDIR)/metrics.Po
- -rm -f ./$(DEPDIR)/otftotfm.Po
- -rm -f ./$(DEPDIR)/secondary.Po
- -rm -f ./$(DEPDIR)/uniprop.Po
- -rm -f ./$(DEPDIR)/util.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/automatic.Po
- -rm -f ./$(DEPDIR)/dvipsencoding.Po
- -rm -f ./$(DEPDIR)/glyphfilter.Po
- -rm -f ./$(DEPDIR)/kpseinterface.Po
- -rm -f ./$(DEPDIR)/metrics.Po
- -rm -f ./$(DEPDIR)/otftotfm.Po
- -rm -f ./$(DEPDIR)/secondary.Po
- -rm -f ./$(DEPDIR)/uniprop.Po
- -rm -f ./$(DEPDIR)/util.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-@KPATHSEA_RULE@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
deleted file mode 100644
index 0567de51e2c..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.cc
+++ /dev/null
@@ -1,816 +0,0 @@
-/* automatic.{cc,hh} -- code for automatic mode and interfacing with kpathsea
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#include <config.h>
-#include "automatic.hh"
-#include "kpseinterface.h"
-#include "util.hh"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <sys/stat.h>
-#include <sys/types.h>
-#if HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#if HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#include <algorithm>
-
-#ifdef WIN32
-# include <io.h>
-# include <direct.h>
-# define mkdir(dir, access) _mkdir(dir)
-# define COPY_CMD "copy"
-# define CMD_SEP "&"
-#else
-# define COPY_CMD "cp"
-# define CMD_SEP ";"
-#endif
-
-/* kpathsea may already have defined this */
-#ifndef DEV_NULL
-# ifdef WIN32
-# define DEV_NULL "NUL"
-# else
-# define DEV_NULL "/dev/null"
-# endif
-#endif
-
-#if HAVE_AUTO_T1DOTLESSJ
-enum { T1DOTLESSJ_EXIT_J_NODOT = 2 };
-#endif
-
-static String odir[NUMODIR];
-static String typeface;
-static String vendor;
-static String map_file;
-#define DEFAULT_VENDOR "lcdftools"
-#define DEFAULT_TYPEFACE "unknown"
-
-static const struct {
- const char *name;
- const char *envvar;
- const char *texdir;
-} odir_info[] = {
- { "encoding", "ENCODINGDESTDIR", "#fonts/enc/dvips/@#dvips/@" },
- { "TFM", "TFMDESTDIR", "fonts/tfm/%" },
- { "PL", "PLDESTDIR", "fonts/pl/%" },
- { "VF", "VFDESTDIR", "fonts/vf/%" },
- { "VPL", "VPLDESTDIR", "fonts/vpl/%" },
- { "Type 1", "T1DESTDIR", "fonts/type1/%" },
- { "DVIPS map", "DVIPS directory", "#fonts/map/dvips/@#dvips/@" },
- { "DVIPS updmap", "DVIPS directory", "dvips" },
- { "TrueType", "TTFDESTDIR", "fonts/truetype/%" },
- { "OpenType", "OPENTYPEDESTDIR", "fonts/opentype/%" },
- { "Type 42", "T42DESTDIR", "fonts/type42/%" }
-};
-
-#if HAVE_KPATHSEA
-static String odir_kpathsea[NUMODIR];
-
-static bool writable_texdir_tried = false;
-static String writable_texdir; // always ends with directory separator
-static int tds_1_1 = -1;
-
-static bool mktexupd_tried = false;
-static String mktexupd;
-
-static String
-kpsei_string(char* x)
-{
- String s(x);
- free((void*)x);
- return s;
-}
-
-static void
-look_for_writable_texdir(const char *path_variable, bool create)
-{
- String path = kpsei_string(kpsei_path_expand(path_variable));
- while (path && !writable_texdir) {
- const char* colon = std::find(path.begin(), path.end(), kpsei_env_sep_char);
- String texdir = path.substring(path.begin(), colon);
- path = path.substring(colon + 1, path.end());
- if (access(texdir.c_str(), W_OK) >= 0)
- writable_texdir = texdir;
- else if (create && errno != EACCES && mkdir(texdir.c_str(), 0777) >= 0)
- // create file if it doesn't exist already
- writable_texdir = texdir;
- }
- if (writable_texdir && writable_texdir.back() != '/')
- writable_texdir += "/";
-}
-
-static void
-find_writable_texdir(ErrorHandler *errh, const char *)
-{
-#if defined(W32TEX)
-// W32TeX does not have TEXMFVAR
- char *p = kpsei_var_value("TEXMFVAR");
- if (p == NULL) // W32TeX
- look_for_writable_texdir("$TEXMFLOCAL", true);
- else { // TeXLive
- free (p);
- look_for_writable_texdir("$TEXMFVAR", true);
- }
-#else
- look_for_writable_texdir("$TEXMFVAR", true);
-#endif
- if (!writable_texdir)
- look_for_writable_texdir("$VARTEXMF", false);
- if (!writable_texdir)
- look_for_writable_texdir("$TEXMF", false);
- if (!writable_texdir) {
- errh->warning("no writable directory found in $TEXMFVAR or $TEXMF");
- errh->message("(You probably need to set your TEXMF environment variable; see\n\
-the manual for more information. The current TEXMF path is\n\
-%<%s%>.)", kpsei_string(kpsei_path_expand("$TEXMF")).c_str());
- }
- writable_texdir_tried = true;
-}
-
-static String
-get_vendor()
-{
- return (vendor ? vendor : String(DEFAULT_VENDOR));
-}
-
-static String
-get_typeface()
-{
- return (typeface ? typeface : String(DEFAULT_TYPEFACE));
-}
-#endif
-
-bool
-set_vendor(const String &s)
-{
- bool had = (bool) vendor;
- vendor = s;
- return !had;
-}
-
-bool
-set_typeface(const String &s, bool override)
-{
- bool had = (bool) typeface;
- if (!had || override)
- typeface = s;
- return !had;
-}
-
-String
-getodir(int o, ErrorHandler *errh)
-{
- assert(o >= 0 && o < NUMODIR);
-
- if (!odir[o] && automatic && odir_info[o].envvar)
- odir[o] = getenv(odir_info[o].envvar);
-
-#if HAVE_KPATHSEA
- if (!odir[o] && automatic && !writable_texdir_tried)
- find_writable_texdir(errh, odir_info[o].name);
-
- if (!odir[o] && automatic && writable_texdir) {
- String suffix = odir_info[o].texdir;
-
- // May need to behave differently on TDS 1.1 rather than TDS 1.0.
- if (suffix[0] == '#') {
- // check type of TDS
- if (tds_1_1 < 0) {
- // using a procedure suggested by Olaf Weber
- String encfonts = kpsei_string(kpsei_path_expand("$TEXMFMAIN/fonts/enc"));
- if (!encfonts)
- encfonts = kpsei_string(kpsei_path_expand("$TEXMFDIST/fonts/enc"));
- tds_1_1 = (encfonts != String());
- }
- if (tds_1_1 == 0)
- suffix = suffix.substring(std::find(suffix.begin() + 1, suffix.end(), '#') + 1, suffix.end());
- else
- suffix = suffix.substring(suffix.begin() + 1, std::find(suffix.begin() + 1, suffix.end(), '#'));
- }
-
- String dir = writable_texdir + suffix;
-
- if (dir.back() == '%')
- dir = dir.substring(0, -1) + get_vendor() + "/" + get_typeface();
- else if (dir.back() == '@')
- dir = dir.substring(0, -1) + get_vendor();
-
- // create parent directories as appropriate
- int slash = writable_texdir.length() - 1;
- while (access(dir.c_str(), F_OK) < 0 && slash < dir.length()) {
- if ((slash = dir.find_left('/', slash + 1)) < 0)
- slash = dir.length();
- String subdir = dir.substring(0, slash);
- if (access(subdir.c_str(), F_OK) < 0
- && !no_create
- && mkdir(subdir.c_str(), 0777) < 0)
- goto kpathsea_done;
- }
-
- // that's our answer
- odir[o] = dir;
- odir_kpathsea[o] = dir;
- }
- kpathsea_done:
-#endif
-
- if (!odir[o]) {
- if (automatic) {
- errh->warning("%s not specified, placing %s files in %<.%>", odir_info[o].envvar, odir_info[o].name);
-#if !HAVE_KPATHSEA
- static int kpathsea_warning = 0;
- if (++kpathsea_warning == 1)
- errh->message("(This version of otftotfm lacks $TEXMF directory support.)");
-#endif
- }
- odir[o] = ".";
- }
-
- while (odir[o].length() && odir[o].back() == '/')
- odir[o] = odir[o].substring(0, -1);
-
- if (verbose)
- errh->message("placing %s files in %<%s%>", odir_info[o].name, odir[o].c_str());
- return odir[o];
-}
-
-void
-setodir(int o, const String &value)
-{
- assert(o >= 0 && o < NUMODIR);
- odir[o] = value;
-}
-
-const char *
-odirname(int o)
-{
- if (o == NUMODIR) {
- return "default";
- } else {
- assert(o >= 0 && o < NUMODIR);
- return odir_info[o].name;
- }
-}
-
-#if HAVE_KPATHSEA
-static bool
-file_in_kpathsea_odir(int o, const String &file)
-{
- return odir_kpathsea[o]
- && file.length() > odir[o].length()
- && memcmp(file.data(), odir[o].data(), odir[o].length()) == 0
- && file[odir[o].length()] == '/';
-}
-#endif
-
-void
-update_odir(int o, String file, ErrorHandler *errh)
-{
- assert(o >= 0 && o < NUMODIR);
-#if HAVE_KPATHSEA
- if (file.find_left('/') < 0)
- file = odir[o] + "/" + file;
-
- // exit if this directory was not found via kpathsea, or the file is not
- // in the kpathsea directory
- if (!file_in_kpathsea_odir(o, file))
- return;
-
- assert(writable_texdir && writable_texdir.length() <= odir[o].length()
- && memcmp(file.data(), writable_texdir.data(), writable_texdir.length()) == 0);
-
- // divide the filename into portions
- // file == writable_texdir + directory + file
- file = file.substring(writable_texdir.length());
- while (file && file[0] == '/')
- file = file.substring(1);
- int last_slash = file.find_right('/');
- String directory = (last_slash >= 0 ? file.substring(0, last_slash) : String());
- file = file.substring(last_slash >= 0 ? last_slash + 1 : 0);
- if (!file) // no filename to update
- return;
-
- // return if nocreate
- if (no_create) {
- errh->message("would update %sls-R for %s/%s", writable_texdir.c_str(), directory.c_str(), file.c_str());
- return;
- } else if (verbose)
- errh->message("updating %sls-R for %s/%s", writable_texdir.c_str(), directory.c_str(), file.c_str());
-
- // try to update ls-R ourselves, rather than running mktexupd --
- // mktexupd's runtime is painful: a half second to update a file
- String ls_r = writable_texdir + "ls-R";
- bool success = false;
- if (access(ls_r.c_str(), R_OK) >= 0) // make sure it already exists
- if (FILE *f = fopen(ls_r.c_str(), "ab")) {
- fprintf(f, "./%s:\n%s\n", directory.c_str(), file.c_str());
- success = true;
- fclose(f);
- }
-
- // otherwise, run mktexupd
- if (!success && writable_texdir.find_left('\'') < 0 && directory.find_left('\'') < 0 && file.find_left('\'') < 0) {
- // look for mktexupd script
- if (!mktexupd_tried) {
-#ifdef _WIN32
- mktexupd = "mktexupd.exe";
-#else
- mktexupd = kpsei_string(kpsei_find_file("mktexupd", KPSEI_FMT_WEB2C));
-#endif
- mktexupd_tried = true;
- }
-
- // run script
- if (mktexupd) {
- String command = mktexupd + " " + shell_quote(writable_texdir + directory) + " " + shell_quote(file);
- int retval = system(command.c_str());
- if (retval == 127)
- errh->error("could not run %<%s%>", command.c_str());
- else if (retval < 0)
- errh->error("could not run %<%s%>: %s", command.c_str(), strerror(errno));
- else if (retval != 0)
- errh->error("%<%s%> failed", command.c_str());
- }
- }
-#else
- (void) file, (void) errh;
-#endif
-}
-
-bool
-set_map_file(const String &s)
-{
- bool had = (bool) map_file;
- map_file = s;
- return !had;
-}
-
-String
-installed_type1(const String &otf_filename, const String &ps_fontname, bool allow_generate, ErrorHandler *errh)
-{
- (void) otf_filename, (void) allow_generate, (void) errh;
-
- if (!ps_fontname)
- return String();
-
-#if HAVE_KPATHSEA
-# if HAVE_AUTO_CFFTOT1
- if (!(force && allow_generate && otf_filename && otf_filename != "-" && getodir(O_TYPE1, errh))) {
-# endif
- // look for .pfb and .pfa
- String file, path;
- if ((file = ps_fontname + ".pfb", path = kpsei_string(kpsei_find_file(file.c_str(), KPSEI_FMT_TYPE1)))
- || (file = ps_fontname + ".pfa", path = kpsei_string(kpsei_find_file(file.c_str(), KPSEI_FMT_TYPE1)))) {
- if (path == "./" + file || path == file) {
- if (verbose)
- errh->message("ignoring Type 1 file %s found with kpathsea in %<.%>", path.c_str());
- } else {
- if (verbose)
- errh->message("Type 1 file %s found with kpathsea at %s", file.c_str(), path.c_str());
- return path;
- }
- }
-# if HAVE_AUTO_CFFTOT1
- }
-# endif
-#endif
-
-#if HAVE_AUTO_CFFTOT1
- // if not found, and can generate on the fly, run cfftot1
- if (allow_generate && otf_filename && otf_filename != "-" && getodir(O_TYPE1, errh)) {
- String pfb_filename = odir[O_TYPE1] + "/" + ps_fontname + ".pfb";
- if (pfb_filename.find_left('\'') >= 0 || otf_filename.find_left('\'') >= 0)
- return String();
- String command = "cfftot1 " + shell_quote(otf_filename) + " -n " + shell_quote(ps_fontname) + " " + shell_quote(pfb_filename);
- int retval = mysystem(command.c_str(), errh);
- if (retval == 127)
- errh->error("could not run %<%s%>", command.c_str());
- else if (retval < 0)
- errh->error("could not run %<%s%>: %s", command.c_str(), strerror(errno));
- else if (retval != 0)
- errh->error("%<%s%> failed", command.c_str());
- if (retval == 0) {
- update_odir(O_TYPE1, pfb_filename, errh);
- return pfb_filename;
- }
- }
-#endif
-
- return String();
-}
-
-String
-installed_type1_dotlessj(const String &otf_filename, const String &ps_fontname, bool allow_generate, ErrorHandler *errh)
-{
- (void) otf_filename, (void) allow_generate, (void) errh;
-
- if (!ps_fontname)
- return String();
- if (verbose)
- errh->message("searching for dotless-j font for %s", ps_fontname.c_str());
-
- String j_ps_fontname = ps_fontname + "LCDFJ";
-
-#if HAVE_KPATHSEA
-# if HAVE_AUTO_T1DOTLESSJ
- if (!(force && allow_generate && getodir(O_TYPE1, errh))) {
-# endif
- // look for existing .pfb or .pfa
- String file, path;
- if ((file = j_ps_fontname + ".pfb", path = kpsei_string(kpsei_find_file(file.c_str(), KPSEI_FMT_TYPE1)))
- || (file = j_ps_fontname + ".pfa", path = kpsei_string(kpsei_find_file(file.c_str(), KPSEI_FMT_TYPE1)))) {
- // ignore versions in the current directory
- if (path == "./" + file || path == file) {
- if (verbose)
- errh->message("ignoring Type 1 file %s found with kpathsea in %<.%>", path.c_str());
- } else {
- if (verbose)
- errh->message("Type 1 file %s found with kpathsea at %s", file.c_str(), path.c_str());
- return path;
- }
- }
-# if HAVE_AUTO_T1DOTLESSJ
- }
-# endif
-#endif
-
-#if HAVE_AUTO_T1DOTLESSJ
- // if not found, and can generate on the fly, try running t1dotlessj
- if (allow_generate && getodir(O_TYPE1, errh)) {
- if (String base_filename = installed_type1(otf_filename, ps_fontname, allow_generate, errh)) {
- String pfb_filename = odir[O_TYPE1] + "/" + j_ps_fontname + ".pfb";
- if (pfb_filename.find_left('\'') >= 0 || base_filename.find_left('\'') >= 0)
- return String();
- String command = "t1dotlessj " + shell_quote(base_filename) + " -n " + shell_quote(j_ps_fontname) + " " + shell_quote(pfb_filename);
- int retval = mysystem(command.c_str(), errh);
- if (retval == 127)
- errh->warning("could not run %<%s%>", command.c_str());
- else if (retval < 0)
- errh->warning("could not run %<%s%>: %s", command.c_str(), strerror(errno));
- else if (WEXITSTATUS(retval) == T1DOTLESSJ_EXIT_J_NODOT)
- return String("\0", 1);
- else if (retval != 0)
- errh->warning("%<%s%> failed (%d)", command.c_str(), retval);
- if (retval == 0) {
- update_odir(O_TYPE1, pfb_filename, errh);
- return pfb_filename;
- } else
- errh->warning("output font will not contain a dotless-j character");
- }
- }
-#endif
-
- return String();
-}
-
-String
-installed_truetype(const String &ttf_filename, bool allow_generate, ErrorHandler *errh)
-{
- String file = pathname_filename(ttf_filename);
-
-#if HAVE_KPATHSEA
- if (!(force && allow_generate && ttf_filename && ttf_filename != "-" && getodir(O_TRUETYPE, errh))) {
- if (String path = kpsei_string(kpsei_find_file(file.c_str(), KPSEI_FMT_TRUETYPE))) {
- if (path == "./" + file || path == file) {
- if (verbose)
- errh->message("ignoring TrueType file %s found with kpathsea in %<.%>", path.c_str());
- } else {
- if (verbose)
- errh->message("TrueType file %s found with kpathsea at %s", file.c_str(), path.c_str());
- return path;
- }
- }
- }
-#endif
-
- // perhaps generate type 42 in the future, for now just copy
- if (allow_generate && ttf_filename && ttf_filename != "-" && getodir(O_TRUETYPE, errh)) {
- String installed_ttf_filename = odir[O_TRUETYPE] + "/" + file;
- if (installed_ttf_filename.find_left('\'') >= 0 || installed_ttf_filename.find_left('\"') >= 0)
- return String();
-
- int retval;
- if (!same_filename(ttf_filename, installed_ttf_filename)) {
- String command = COPY_CMD " " + shell_quote(ttf_filename) + " " + shell_quote(installed_ttf_filename);
- retval = mysystem(command.c_str(), errh);
- if (retval == 127)
- errh->error("could not run %<%s%>", command.c_str());
- else if (retval < 0)
- errh->error("could not run %<%s%>: %s", command.c_str(), strerror(errno));
- else if (retval != 0)
- errh->error("%<%s%> failed", command.c_str());
- } else {
- if (verbose)
- errh->message("TrueType file %s already located in output directory", installed_ttf_filename.c_str());
- retval = 0;
- }
-
- if (retval == 0) {
- update_odir(O_TRUETYPE, installed_ttf_filename, errh);
- return installed_ttf_filename;
- }
- }
-
- return String();
-}
-
-String
-installed_type42(const String &ttf_filename, const String &ps_fontname, bool allow_generate, ErrorHandler *errh)
-{
- (void) allow_generate, (void) ttf_filename, (void) errh;
-
- if (!ps_fontname)
- return String();
-
-#if HAVE_KPATHSEA
-# if HAVE_AUTO_TTFTOTYPE42
- if (!(force && allow_generate && ttf_filename && ttf_filename != "-" && getodir(O_TYPE42, errh))) {
-# endif
- // look for .pfb and .pfa
- String file, path;
- if ((file = ps_fontname + ".t42", path = kpsei_string(kpsei_find_file(file.c_str(), KPSEI_FMT_TYPE42)))) {
- if (path == "./" + file || path == file) {
- if (verbose)
- errh->message("ignoring Type 42 file %s found with kpathsea in %<.%>", path.c_str());
- } else {
- if (verbose)
- errh->message("Type 42 file %s found with kpathsea at %s", file.c_str(), path.c_str());
- return path;
- }
- }
-# if HAVE_AUTO_TTFTOTYPE42
- }
-# endif
-#endif
-
-#if HAVE_AUTO_TTFTOTYPE42
- // if not found, and can generate on the fly, run ttftotype42
- if (allow_generate && ttf_filename && ttf_filename != "-" && getodir(O_TYPE42, errh)) {
- String t42_filename = odir[O_TYPE42] + "/" + ps_fontname + ".t42";
- if (t42_filename.find_left('\'') >= 0 || ttf_filename.find_left('\'') >= 0)
- return String();
- String command = "ttftotype42 " + shell_quote(ttf_filename) + " " + shell_quote(t42_filename);
- int retval = mysystem(command.c_str(), errh);
- if (retval == 127)
- errh->error("could not run %<%s%>", command.c_str());
- else if (retval < 0)
- errh->error("could not run %<%s%>: %s", command.c_str(), strerror(errno));
- else if (retval != 0)
- errh->error("%<%s%> failed", command.c_str());
- if (retval == 0) {
- update_odir(O_TYPE42, t42_filename, errh);
- return t42_filename;
- }
- }
-#endif
-
- return String();
-}
-
-int
-update_autofont_map(const String &fontname, String mapline, ErrorHandler *errh)
-{
-#if HAVE_KPATHSEA
- if (automatic && !map_file && getodir(O_MAP, errh))
- map_file = odir[O_MAP] + "/" + get_vendor() + ".map";
-#endif
-
- if (map_file == "" || map_file == "-")
- fputs(mapline.c_str(), stdout);
- else {
- // report no_create/verbose
- if (no_create) {
- errh->message("would update %s for %s", map_file.c_str(), String(fontname).c_str());
- return 0;
- } else if (verbose)
- errh->message("updating %s for %s", map_file.c_str(), String(fontname).c_str());
-
- int fd = open(map_file.c_str(), O_RDWR | O_CREAT, 0666);
- if (fd < 0)
- return errh->lerror(map_file, "%s", strerror(errno));
- FILE *f = fdopen(fd, "r+");
- // NB: also change encoding logic if you change this code
-
-#if defined(F_SETLKW) && defined(HAVE_FTRUNCATE)
- {
- struct flock lock;
- lock.l_type = F_WRLCK;
- lock.l_whence = SEEK_SET;
- lock.l_start = 0;
- lock.l_len = 0;
- int result;
- while ((result = fcntl(fd, F_SETLKW, &lock)) < 0 && errno == EINTR)
- /* try again */;
- if (result < 0) {
- result = errno;
- fclose(f);
- return errh->error("locking %s: %s", map_file.c_str(), strerror(result));
- }
- }
-#endif
-
- // read old data from map file
- StringAccum sa;
- int amt;
- do {
- if (char *x = sa.reserve(8192)) {
- amt = fread(x, 1, 8192, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f))
- return errh->error("%s: %s", map_file.c_str(), strerror(errno));
- String text = sa.take_string();
-
- // add comment if necessary
- bool created = (!text);
- if (created)
- text = "% Automatically maintained by otftotfm or other programs. Do not edit.\n\n";
- if (text.back() != '\n')
- text += "\n";
-
- // append old encodings
- int fl = 0;
- int nl = text.find_left('\n') + 1;
- bool changed = created;
- while (fl < text.length()) {
- if (fl + fontname.length() + 1 < nl
- && memcmp(text.data() + fl, fontname.data(), fontname.length()) == 0
- && text[fl + fontname.length()] == ' ') {
- // found the old name
- if (text.substring(fl, nl - fl) == mapline) {
- // duplicate of old name, don't change it
- fclose(f);
- if (verbose)
- errh->message("%s unchanged", map_file.c_str());
- return 0;
- } else {
- text = text.substring(0, fl) + text.substring(nl);
- nl = fl;
- changed = true;
- }
- }
- fl = nl;
- nl = text.find_left('\n', fl) + 1;
- }
-
- if (!mapline && !changed) {
- // special case: empty mapline, unchanged file
- if (verbose)
- errh->message("%s unchanged", map_file.c_str());
- } else {
- // add our text
- text += mapline;
-
- // rewind file
-#if HAVE_FTRUNCATE
- rewind(f);
- if (ftruncate(fd, 0) < 0)
-#endif
- {
- fclose(f);
- f = fopen(map_file.c_str(), "wb");
- fd = fileno(f);
- }
-
- // write data
- ignore_result(fwrite(text.data(), 1, text.length(), f));
- }
-
- fclose(f);
-
- // inform about the new file if necessary
- if (created)
- update_odir(O_MAP, map_file, errh);
-
-#if HAVE_KPATHSEA && !WIN32
- // run 'updmap' if present
- String updmap_prog = output_flags & G_UPDMAP_USER ? "updmap-user" : "updmap-sys";
- String updmap_dir, updmap_file;
- if (automatic && (output_flags & G_UPDMAP))
- updmap_dir = getodir(O_MAP_PARENT, errh);
- if (updmap_dir
- && (updmap_file = updmap_dir + "/" + updmap_prog)
- && access(updmap_file.c_str(), X_OK) >= 0) {
- // want to run `updmap` from its directory, can't use system()
- if (verbose)
- errh->message("running %s", updmap_file.c_str());
-
- pid_t child = fork();
- if (child < 0)
- errh->fatal("%s during fork", strerror(errno));
- else if (child == 0) {
- // change to updmap directory, run it
- if (chdir(updmap_dir.c_str()) < 0)
- errh->fatal("%s: %s during chdir", updmap_dir.c_str(), strerror(errno));
- if (execl(output_flags & G_UPDMAP_USER ? "./updmap-user" : "./updmap-sys",
- updmap_file.c_str(),
- (const char*) 0) < 0)
- errh->fatal("%s: %s during exec", updmap_file.c_str(), strerror(errno));
- exit(1); // should never get here
- }
-
-# if HAVE_WAITPID
- // wait for updmap to finish
- int status;
- while (1) {
- pid_t answer = waitpid(child, &status, 0);
- if (answer >= 0)
- break;
- else if (errno != EINTR)
- errh->fatal("%s during wait", strerror(errno));
- }
- if (!WIFEXITED(status))
- errh->warning("%s exited abnormally", updmap_file.c_str());
- else if (WEXITSTATUS(status) != 0)
- errh->warning("%s exited with status %d", updmap_file.c_str(), WEXITSTATUS(status));
-# else
-# error "need waitpid() support: report this bug to the maintainer"
-# endif
- goto ran_updmap;
- }
-
-# if HAVE_AUTO_UPDMAP
- // run system updmap
- if (output_flags & G_UPDMAP) {
- String filename = map_file;
- int slash = filename.find_right('/');
- if (slash >= 0)
- filename = filename.substring(slash + 1);
- String redirect = verbose ? " 1>&2" : " >" DEV_NULL " 2>&1";
- String command = updmap_prog + " --nomkmap --enable Map " + shell_quote(filename) + redirect
- + CMD_SEP " " + updmap_prog + redirect;
- int retval = mysystem(command.c_str(), errh);
- if (retval == 127)
- errh->warning("could not run %<%s%>", command.c_str());
- else if (retval < 0)
- errh->warning("could not run %<%s%>: %s", command.c_str(), strerror(errno));
- else if (retval != 0)
- errh->warning("%<%s%> exited with status %d;\nrun it manually to check for errors", command.c_str(), WEXITSTATUS(retval));
- goto ran_updmap;
- }
-# endif
-
- if (verbose)
- errh->message("not running updmap");
-
- ran_updmap: ;
-#endif
- }
-
- return 0;
-}
-
-String
-locate_encoding(String encfile, ErrorHandler *errh, bool literal)
-{
- if (!encfile || encfile == "-")
- return encfile;
-
- if (!literal) {
- int slash = encfile.find_right('/');
- int dot = encfile.find_left('.', slash >= 0 ? slash : 0);
- if (dot < 0)
- if (String file = locate_encoding(encfile + ".enc", errh, true))
- return file;
- }
-
-#if HAVE_KPATHSEA
- if (String file = kpsei_string(kpsei_find_file(encfile.c_str(), KPSEI_FMT_ENCODING))) {
- if (verbose)
- errh->message("encoding file %s found with kpathsea at %s", encfile.c_str(), file.c_str());
- return file;
- } else if (verbose)
- errh->message("encoding file %s not found with kpathsea", encfile.c_str());
-#endif
-
- if (access(encfile.c_str(), R_OK) >= 0)
- return encfile;
- else
- return String();
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.hh
deleted file mode 100644
index 6149232f4f9..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/automatic.hh
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef OTFTOTFM_AUTOMATIC_HH
-#define OTFTOTFM_AUTOMATIC_HH
-#include <lcdf/string.hh>
-class ErrorHandler;
-
-enum {
- O_ENCODING = 0, O_TFM, O_PL, O_VF, O_VPL, O_TYPE1, O_MAP, O_MAP_PARENT,
- O_TRUETYPE, O_OPENTYPE, O_TYPE42, NUMODIR
-};
-
-extern bool automatic;
-extern bool no_create;
-String getodir(int o, ErrorHandler *);
-void setodir(int o, const String &);
-bool set_vendor(const String &);
-bool set_typeface(const String &, bool override);
-bool set_map_file(const String &);
-const char *odirname(int o);
-void update_odir(int o, String file, ErrorHandler *);
-String installed_type1(const String &otf_filename, const String &ps_fontname, bool allow_generate, ErrorHandler *);
-String installed_type1_dotlessj(const String &otf_filename, const String &ps_fontname, bool allow_generate, ErrorHandler *);
-String installed_truetype(const String &ttf_filename, bool allow_generate, ErrorHandler *errh);
-String installed_type42(const String &ttf_filename, const String &ps_fontname, bool allow_generate, ErrorHandler *errh);
-int update_autofont_map(const String &fontname, String mapline, ErrorHandler *);
-String locate_encoding(String encfile, ErrorHandler *, bool literal = false);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
deleted file mode 100644
index 6a30b9d17fd..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.cc
+++ /dev/null
@@ -1,979 +0,0 @@
-/* dvipsencoding.{cc,hh} -- store a DVIPS encoding
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "dvipsencoding.hh"
-#include "metrics.hh"
-#include "secondary.hh"
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <string.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <algorithm>
-#include "util.hh"
-
-enum { GLYPHLIST_ALTERNATIVE = 0x40000000,
- GLYPHLIST_USEMAP = GLYPHLIST_ALTERNATIVE,
- U_EMPTYSLOT = 0xD801,
- U_ALTSELECTOR = 0xD802 };
-static HashMap<String, uint32_t> glyphlist((uint32_t) -1);
-static Vector<uint32_t> glyphmap;
-static PermString::Initializer perm_initializer;
-PermString DvipsEncoding::dot_notdef(".notdef");
-
-#define NEXT_GLYPH_NAME(gn) ("/" + (gn))
-
-void
-DvipsEncoding::add_glyphlist(String text)
-{
- const char *s = text.begin(), *end = text.end();
- while (s != end) {
- // move to first nonblank
- while (s != end && isspace((unsigned char) *s))
- ++s;
- // ignore comments
- if (s != end && *s == '#') {
- skip_to_end_of_line:
- while (s != end && *s != '\n' && *s != '\r')
- ++s;
- continue;
- }
- // parse glyph name
- const char *name_start = s;
- while (s != end && !isspace((unsigned char) *s) && *s != ';')
- ++s;
- if (s == name_start)
- goto skip_to_end_of_line;
- String glyph_name = text.substring(name_start, s).compact();
- int map_pos = glyphmap.size();
- // parse Unicodes
- while (1) {
- while (s != end && (*s == ' ' || *s == '\t'))
- ++s;
- if (s == end || *s == '\n' || *s == '\r' || *s == '#'
- || (map_pos == glyphmap.size() && *s != ';' && *s != ','))
- break;
- if (*s == ';' || *s == ',') {
- ++s;
- while (s != end && (*s == ' ' || *s == '\t'))
- ++s;
- if (s == end || !isxdigit((unsigned char) *s))
- goto skip_to_end_of_line;
- if (map_pos != glyphmap.size())
- glyphmap.push_back(GLYPHLIST_ALTERNATIVE);
- }
- uint32_t u = 0;
- while (s != end && isxdigit((unsigned char) *s)) {
- if (*s >= '0' && *s <= '9')
- u = (u << 4) + *s - '0';
- else if (*s >= 'A' && *s <= 'F')
- u = (u << 4) + *s - 'A' + 10;
- else
- u = (u << 4) + *s - 'a' + 10;
- ++s;
- }
- if (u == 0 || u > 0x10FFFF)
- goto skip_to_end_of_line;
- glyphmap.push_back(u);
- if (s != end && !isspace((unsigned char) *s) && *s != ',' && *s != ';')
- break;
- }
- // store result
- if (map_pos == glyphmap.size() - 1) {
- glyphlist.insert(glyph_name, glyphmap.back());
- glyphmap.pop_back();
- } else {
- glyphlist.insert(glyph_name, map_pos | GLYPHLIST_USEMAP);
- glyphmap.push_back(0);
- }
- goto skip_to_end_of_line;
- }
-}
-
-static void
-unicode_add_suffix(Vector<uint32_t> &prefix,
- int prefix_starting_from,
- const Vector<uint32_t> &suffix)
-{
- int prefix_size = prefix.size();
- for (Vector<uint32_t>::const_iterator it = suffix.begin();
- it != suffix.end() && *it != 0;
- ++it)
- if (*it == GLYPHLIST_ALTERNATIVE) {
- prefix.push_back(*it);
- for (int i = prefix_starting_from; i < prefix_size; ++i)
- prefix.push_back(prefix[i]);
- } else
- prefix.push_back(*it);
-}
-
-bool
-DvipsEncoding::glyphname_unicode(String gn, Vector<uint32_t> &unis)
-{
- int unis_first_size = unis.size();
-
- // drop all characters to the right of the first dot
- String::iterator dot = std::find(gn.begin(), gn.end(), '.');
- if (dot > gn.begin() && dot < gn.end())
- gn = gn.substring(gn.begin(), dot);
-
- // map the first component, handle later components recursively
- String::iterator underscore = std::find(gn.begin(), gn.end(), '_');
- String component = gn.substring(gn.begin(), underscore);
- int prefix_start = 0;
- Vector<uint32_t> suffix;
- if (String gn_suffix = gn.substring(underscore + 1, gn.end())) {
- if (!glyphname_unicode(gn_suffix, suffix))
- return false;
- }
-
- // check glyphlist
- int value = glyphlist[component];
- uint32_t uval;
- if (value >= 0 && !(value & GLYPHLIST_USEMAP))
- unis.push_back(value);
- else if (value >= 0) {
- for (int i = (value & ~GLYPHLIST_USEMAP);
- glyphmap[i];
- ++i)
- if (glyphmap[i] == GLYPHLIST_ALTERNATIVE) {
- unicode_add_suffix(unis, prefix_start, suffix);
- unis.push_back(GLYPHLIST_ALTERNATIVE);
- prefix_start = unis.size();
- } else
- unis.push_back(glyphmap[i]);
- } else if (component.length() >= 7
- && (component.length() % 4) == 3
- && (memcmp(component.data(), "uni", 3) == 0
- // 16.Aug.2008: Some texnansx.enc have incorrect "Uni"
- // prefix, but we might as well understand it.
- || memcmp(component.data(), "Uni", 3) == 0)) {
- for (const char *s = component.begin() + 3;
- s < component.end();
- s += 4)
- if (parse_unicode_number(s, s + 4, -1, uval))
- unis.push_back(uval);
- else {
- unis.resize(unis_first_size);
- return false;
- }
- } else if (component.length() >= 5
- && component.length() <= 7
- && component[0] == 'u'
- && parse_unicode_number(component.begin() + 1, component.end(), -1, uval))
- unis.push_back(uval);
- else
- return false;
-
- unicode_add_suffix(unis, prefix_start, suffix);
- return true;
-}
-
-
-DvipsEncoding::DvipsEncoding()
- : _boundary_char(-1), _altselector_char(-1), _unicoding_map(-1),
- _warn_missing(false)
-{
-}
-
-void
-DvipsEncoding::encode(int e, PermString what)
-{
- if (e >= _e.size())
- _e.resize(e + 1, dot_notdef);
- _e[e] = what;
-}
-
-int
-DvipsEncoding::encoding_of(PermString what, bool encoding_required)
-{
- int slot = -1;
- for (int i = 0; i < _e.size(); i++)
- if (_e[i] == what) {
- slot = i;
- goto use_slot;
- } else if (!_e[i] || _e[i] == dot_notdef)
- slot = i;
- if (what == "||")
- return _boundary_char;
- else if (!encoding_required || slot < 0)
- return -1;
- use_slot:
- if (encoding_required) {
- if (slot >= _encoding_required.size())
- _encoding_required.resize(slot + 1, false);
- _encoding_required[slot] = true;
- this->encode(slot, what);
- }
- return slot;
-}
-
-static String
-tokenize(const String &s, int &pos_in, int &line)
-{
- const char *data = s.data();
- int len = s.length();
- int pos = pos_in;
- while (1) {
- // skip whitespace
- while (pos < len && isspace((unsigned char) data[pos])) {
- if (data[pos] == '\n')
- line++;
- else if (data[pos] == '\r' && (pos + 1 == len || data[pos+1] != '\n'))
- line++;
- pos++;
- }
-
- if (pos >= len) {
- pos_in = len;
- return String();
- } else if (data[pos] == '%') {
- for (pos++; pos < len && data[pos] != '\n' && data[pos] != '\r'; pos++)
- /* nada */;
- } else if (data[pos] == '[' || data[pos] == ']' || data[pos] == '{' || data[pos] == '}') {
- pos_in = pos + 1;
- return s.substring(pos, 1);
- } else if (data[pos] == '(') {
- int first = pos, nest = 0;
- for (pos++; pos < len && (data[pos] != ')' || nest); pos++)
- switch (data[pos]) {
- case '(': nest++; break;
- case ')': nest--; break;
- case '\\':
- if (pos + 1 < len)
- pos++;
- break;
- case '\n': line++; break;
- case '\r':
- if (pos + 1 == len || data[pos+1] != '\n')
- line++;
- break;
- }
- pos_in = (pos < len ? pos + 1 : len);
- return s.substring(first, pos_in - first);
- } else {
- int first = pos;
- while (pos < len && data[pos] == '/')
- pos++;
- while (pos < len && data[pos] != '/' && !isspace((unsigned char) data[pos]) && data[pos] != '[' && data[pos] != ']' && data[pos] != '%' && data[pos] != '(' && data[pos] != '{' && data[pos] != '}')
- pos++;
- pos_in = pos;
- return s.substring(first, pos - first);
- }
- }
-}
-
-
-static String
-comment_tokenize(const String &s, int &pos_in, int &line)
-{
- const char *data = s.data();
- int len = s.length();
- int pos = pos_in;
- while (1) {
- while (pos < len && data[pos] != '%' && data[pos] != '(') {
- if (data[pos] == '\n')
- line++;
- else if (data[pos] == '\r' && (pos + 1 == len || data[pos+1] != '\n'))
- line++;
- pos++;
- }
-
- if (pos >= len) {
- pos_in = len;
- return String();
- } else if (data[pos] == '%') {
- for (pos++; pos < len && (data[pos] == ' ' || data[pos] == '\t'); pos++)
- /* nada */;
- int first = pos;
- for (; pos < len && data[pos] != '\n' && data[pos] != '\r'; pos++)
- /* nada */;
- pos_in = pos;
- if (pos > first)
- return s.substring(first, pos - first);
- } else {
- int nest = 0;
- for (pos++; pos < len && (data[pos] != ')' || nest); pos++)
- switch (data[pos]) {
- case '(': nest++; break;
- case ')': nest--; break;
- case '\\':
- if (pos + 1 < len)
- pos++;
- break;
- case '\n': line++; break;
- case '\r':
- if (pos + 1 == len || data[pos+1] != '\n')
- line++;
- break;
- }
- }
- }
-}
-
-static bool
-retokenize_isword(char c)
-{
- return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
- || (c >= '0' && c <= '9') || c == '.' || c == '_';
-}
-
-
-static struct { const char *s; int v; } ligkern_ops[] = {
- { "=:", DvipsEncoding::JL_LIG }, { "|=:", DvipsEncoding::JL_CLIG },
- { "|=:>", DvipsEncoding::JL_CLIG_S }, { "=:|", DvipsEncoding::JL_LIGC },
- { "=:|>", DvipsEncoding::JL_LIGC_S }, { "|=:|", DvipsEncoding::JL_CLIGC },
- { "|=:>", DvipsEncoding::JL_CLIGC_S }, { "|=:|>>", DvipsEncoding::JL_CLIGC_SS },
- { "{}", DvipsEncoding::JT_KERN }, { "{K}", DvipsEncoding::JT_KERN },
- { "{L}", DvipsEncoding::JT_LIG }, { "{LK}", DvipsEncoding::JT_NOLIGKERN },
- { "{KL}", DvipsEncoding::JT_NOLIGKERN }, { "{k}", DvipsEncoding::JT_KERN },
- { "{l}", DvipsEncoding::JT_LIG }, { "{lk}", DvipsEncoding::JT_NOLIGKERN },
- { "{kl}", DvipsEncoding::JT_NOLIGKERN },
- // some encodings have @{@} instead of {}
- { "@{@}", DvipsEncoding::JT_KERN },
- { 0, 0 }
-};
-
-static int
-find_ligkern_op(const String &s)
-{
- for (int i = 0; ligkern_ops[i].s; i++)
- if (ligkern_ops[i].s == s)
- return ligkern_ops[i].v;
- return 0;
-}
-
-inline bool
-operator==(const DvipsEncoding::Ligature& l1, const DvipsEncoding::Ligature& l2)
-{
- return l1.c1 == l2.c1 && l1.c2 == l2.c2;
-}
-
-void
-DvipsEncoding::add_ligkern(const Ligature &l, int override)
-{
- Ligature *old = std::find(_lig.begin(), _lig.end(), l);
- if (old == _lig.end())
- _lig.push_back(l);
- else {
- if ((l.join & JT_KERN) && (override > 0 || !(old->join & JT_KERN))) {
- old->join |= JT_KERN;
- old->k = l.k;
- }
- if ((l.join & JT_LIG) && (override > 0 || !(old->join & JT_LIG))) {
- old->join = (old->join & JT_KERN) | (l.join & JT_LIGALL);
- old->d = l.d;
- }
- }
-}
-
-int
-DvipsEncoding::parse_ligkern_words(Vector<String> &v, int override, ErrorHandler *errh)
-{
- _file_had_ligkern = true;
- int op;
- long l;
- char *endptr;
- if (v.size() == 3) {
- // empty string fails
- if (!v[0])
- return -1;
- // boundary char setting
- if (v[0] == "||" && v[1] == "=") {
- char *endptr;
- if (override > 0 || _boundary_char < 0)
- _boundary_char = strtol(v[2].c_str(), &endptr, 10);
- if (*endptr == 0 && _boundary_char < _e.size())
- return 0;
- else
- return errh->error("parse error in boundary character assignment");
- }
- // altselector char setting
- if (v[0] == "^^" && v[1] == "=") {
- char *endptr;
- if (override > 0 || _altselector_char < 0)
- _altselector_char = strtol(v[2].c_str(), &endptr, 10);
- if (*endptr == 0 && _altselector_char < _e.size())
- return 0;
- else
- return errh->error("parse error in altselector character assignment");
- }
- // encoding
- l = strtol(v[0].c_str(), &endptr, 0);
- if (endptr == v[0].end() && v[1] == "=") {
- if (l >= 0 && l < 256) {
- if (override > 0 || !_e[l])
- encode(l, v[2]);
- return 0;
- } else
- return errh->error("encoding value %<%d%> out of range", l);
- }
-
- // kern operation
- if (v[1].length() >= 3 && v[1][0] == '{' && v[1].back() == '}') {
- String middle = v[1].substring(1, v[1].length() - 2);
- l = strtol(middle.c_str(), &endptr, 0);
- if (endptr == middle.end()) {
- op = JT_KERN;
- goto found_kernop;
- }
- }
- op = find_ligkern_op(v[1]);
- if (!op || (op & JT_ADDLIG))
- return -1;
- found_kernop:
- int av = (v[0] == "*" ? J_ALL : encoding_of(v[0]));
- if (av < 0)
- return errh->warning("bad %<%s%> (%<%s%> has no encoding)", v[1].c_str(), v[0].c_str());
- int bv = (v[2] == "*" ? J_ALL : encoding_of(v[2]));
- if (bv < 0)
- return errh->warning("bad %<%s%> (%<%s%> has no encoding)", v[1].c_str(), v[2].c_str());
- if ((op & JT_KERN) && l && (av == J_ALL || bv == J_ALL))
- return errh->warning("%<%s %s %s%> illegal, only {0} works with *", v[0].c_str(), v[1].c_str(), v[2].c_str());
- Ligature lig = { av, bv, op, static_cast<int>(l), 0 };
- add_ligkern(lig, override);
- return 0;
-
- } else if (v.size() == 4 && ((op = find_ligkern_op(v[2])) & JT_ADDLIG)) {
- int av = encoding_of(v[0], override > 0);
- if (av < 0)
- return (override > 0 ? errh->warning("bad ligature (%<%s%> has no encoding)", v[0].c_str()) : -1);
- int bv = encoding_of(v[1], override > 0);
- if (bv < 0)
- return (override > 0 ? errh->warning("bad ligature (%<%s%> has no encoding)", v[1].c_str()) : -1);
- int cv = encoding_of(v[3], override > 0);
- if (cv < 0)
- return (override > 0 ? errh->warning("bad ligature (%<%s%> has no encoding)", v[3].c_str()) : -1);
- Ligature lig = { av, bv, op, 0, cv };
- add_ligkern(lig, override);
- return 0;
-
- } else
- return -EPARSE;
-}
-
-int
-DvipsEncoding::parse_position_words(Vector<String> &v, int override, ErrorHandler *errh)
-{
- if (v.size() != 4)
- return -EPARSE;
-
- int c = encoding_of(v[0]);
- if (c < 0)
- return (override > 0 ? errh->warning("bad positioning (%<%s%> has no encoding)", v[0].c_str()) : -1);
-
- char *endptr;
- int pdx, pdy, adx;
- if (!v[1] || !v[2] || !v[3]
- || (pdx = strtol(v[1].c_str(), &endptr, 10), *endptr)
- || (pdy = strtol(v[2].c_str(), &endptr, 10), *endptr)
- || (adx = strtol(v[3].c_str(), &endptr, 10), *endptr))
- return errh->error("parse error in POSITION");
-
- Ligature l = { c, pdx, pdy, adx, 0 };
- Ligature *old = std::find(_pos.begin(), _pos.end(), l);
- if (old == _pos.end())
- _pos.push_back(l);
- else if (override > 0)
- *old = l;
- return 0;
-}
-
-int
-DvipsEncoding::parse_unicoding_words(Vector<String> &v, int override, ErrorHandler *errh)
-{
- int av;
- if (v.size() < 2 || (v[1] != "=" && v[1] != "=:" && v[1] != ":="))
- return -EPARSE;
- else if (v[0] == "||" || (av = encoding_of(v[0])) < 0)
- return errh->warning("bad UNICODING (%<%s%> has no encoding)", v[0].c_str());
-
- int original_size = _unicoding.size();
-
- if (v.size() == 2 || (v.size() == 3 && v[2] == dot_notdef))
- /* no warnings to delete a glyph */;
- else {
- for (int i = 2; i < v.size(); i++) {
- if (_unicoding.size() != original_size)
- _unicoding.push_back(GLYPHLIST_ALTERNATIVE);
- if (!glyphname_unicode(v[i], _unicoding)) {
- errh->warning("can%,t map %<%s%> to Unicode", v[i].c_str());
- if (i == v.size() - 1 && _unicoding.size() == original_size)
- errh->warning("target %<%s%> will be deleted from encoding", v[0].c_str());
- else if (_unicoding.size() != original_size)
- _unicoding.pop_back();
- }
- }
- }
-
- _unicoding.push_back(0);
- if (override > 0 || _unicoding_map[v[0]] < 0)
- _unicoding_map.insert(v[0], original_size);
- return 0;
-}
-
-const DvipsEncoding::WordType DvipsEncoding::word_types[] = {
- { "LIGKERN", &DvipsEncoding::parse_ligkern_words },
- { "POSITION", &DvipsEncoding::parse_position_words },
- { "UNICODING", &DvipsEncoding::parse_unicoding_words }
-};
-
-void
-DvipsEncoding::parse_word_group(Vector<String> &words, int override, int wt, ErrorHandler *errh)
-{
- if (words.size() > 0) {
- int (DvipsEncoding::*method)(Vector<String> &, int, ErrorHandler *) = word_types[wt].parsefunc;
- if ((this->*method)(words, override, errh) == -EPARSE) {
- Vector<String> rewords;
- for (String *sp = words.begin(); sp != words.end(); sp++) {
- const char *s = sp->begin(), *ends = sp->end();
- while (s != ends) {
- const char *word = s;
- if (*s == '{') {
- for (s++; s != ends && *s != '}'; s++)
- /* nada */;
- if (s != ends)
- s++;
- } else {
- bool x = retokenize_isword(*s);
- for (s++; s != ends && x == retokenize_isword(*s); s++)
- /* nada */;
- }
- rewords.push_back(sp->substring(word, s));
- }
- }
- if ((this->*method)(rewords, override, errh) == -EPARSE)
- errh->error("parse error in %s", word_types[wt].name);
-
- }
- words.clear();
- }
-}
-
-int
-DvipsEncoding::parse_words(const String &s, int override, int wt, ErrorHandler *errh)
-{
- Vector<String> words;
- const char *data = s.data();
- const char *end = s.end();
- while (data < end) {
- while (data < end && isspace((unsigned char) *data))
- data++;
- const char *first = data;
- while (data < end && !isspace((unsigned char) *data) && *data != ';')
- data++;
- if (data == first) {
- data++; // step past semicolon (or harmlessly past EOS)
- parse_word_group(words, override, wt, errh);
- } else
- words.push_back(s.substring(first, data));
- }
- parse_word_group(words, override, wt, errh);
- return 0;
-}
-
-String
-DvipsEncoding::landmark(int line) const
-{
- StringAccum sa;
- sa << _printable_filename << ':' << line;
- return sa.take_string();
-}
-
-static String
-trim_space(const String &s, int pos)
-{
- while (pos < s.length() && isspace((unsigned char) s[pos]))
- pos++;
- int epos = s.length();
- for (int x = 0; x < 2; x++) {
- while (epos > pos && isspace((unsigned char) s[epos - 1]))
- epos--;
- if (epos == pos || s[epos - 1] != ';')
- break;
- epos--;
- }
- return s.substring(pos, epos - pos);
-}
-
-int
-DvipsEncoding::parse(String filename, bool ignore_ligkern, bool ignore_other, ErrorHandler *errh)
-{
- int before = errh->nerrors();
- String s = read_file(filename, errh);
- if (errh->nerrors() != before)
- return -1;
- _filename = filename;
- _printable_filename = printable_filename(filename);
- _file_had_ligkern = false;
- int pos = 0, line = 1;
-
- // parse text
- String token = tokenize(s, pos, line);
- if (!token || token[0] != '/')
- return errh->lerror(landmark(line), "parse error, expected name");
- _name = token.substring(1);
- _initial_comment = s.substring(0, pos - token.length());
-
- if (tokenize(s, pos, line) != "[")
- return errh->lerror(landmark(line), "parse error, expected [");
-
- while ((token = tokenize(s, pos, line)) && token[0] == '/')
- _e.push_back(token.substring(1));
-
- _final_text = token + s.substring(pos);
-
- // now parse comments
- pos = 0, line = 1;
- Vector<String> words;
- LandmarkErrorHandler lerrh(errh, "");
- while ((token = comment_tokenize(s, pos, line)))
- if (token.length() >= 8
- && memcmp(token.data(), "LIGKERN", 7) == 0
- && isspace((unsigned char) token[7])
- && !ignore_ligkern) {
- lerrh.set_landmark(landmark(line));
- parse_words(token.substring(8), 1, WT_LIGKERN, &lerrh);
-
- } else if (token.length() >= 9
- && memcmp(token.data(), "LIGKERNX", 8) == 0
- && isspace((unsigned char) token[8])
- && !ignore_ligkern) {
- lerrh.set_landmark(landmark(line));
- parse_words(token.substring(9), 1, WT_LIGKERN, &lerrh);
-
- } else if (token.length() >= 10
- && memcmp(token.data(), "UNICODING", 9) == 0
- && isspace((unsigned char) token[9])
- && !ignore_other) {
- lerrh.set_landmark(landmark(line));
- parse_words(token.substring(10), 1, WT_UNICODING, &lerrh);
-
- } else if (token.length() >= 9
- && memcmp(token.data(), "POSITION", 8) == 0
- && isspace((unsigned char) token[8])
- && !ignore_other) {
- lerrh.set_landmark(landmark(line));
- parse_words(token.substring(9), 1, WT_POSITION, &lerrh);
-
- } else if (token.length() >= 13
- && memcmp(token.data(), "CODINGSCHEME", 12) == 0
- && isspace((unsigned char) token[12])
- && !ignore_other) {
- _coding_scheme = trim_space(token, 13);
- if (_coding_scheme.length() > 39)
- lerrh.lwarning(landmark(line), "only first 39 chars of CODINGSCHEME are significant");
- if (std::find(_coding_scheme.begin(), _coding_scheme.end(), '(') < _coding_scheme.end()
- || std::find(_coding_scheme.begin(), _coding_scheme.end(), ')') < _coding_scheme.end()) {
- lerrh.lerror(landmark(line), "CODINGSCHEME cannot contain parentheses");
- _coding_scheme = String();
- }
-
- } else if (token.length() >= 11
- && memcmp(token.data(), "WARNMISSING", 11) == 0
- && (token.length() == 11 || isspace((unsigned char) token[11]))
- && !ignore_other) {
- String value = trim_space(token, 11);
- if (value == "1" || value == "yes" || value == "true" || !value)
- _warn_missing = true;
- else if (value == "0" || value == "no" || value == "false")
- _warn_missing = false;
- else
- lerrh.lerror(landmark(line), "WARNMISSING command not understood");
- }
-
- return 0;
-}
-
-int
-DvipsEncoding::parse_ligkern(const String &ligkern_text, int override, ErrorHandler *errh)
-{
- return parse_words(ligkern_text, override, WT_LIGKERN, errh);
-}
-
-int
-DvipsEncoding::parse_position(const String &position_text, int override, ErrorHandler *errh)
-{
- return parse_words(position_text, override, WT_POSITION, errh);
-}
-
-int
-DvipsEncoding::parse_unicoding(const String &unicoding_text, int override, ErrorHandler *errh)
-{
- return parse_words(unicoding_text, override, WT_UNICODING, errh);
-}
-
-void
-DvipsEncoding::bad_codepoint(int code, Metrics &metrics, HashMap<PermString, int> &unencoded)
-{
- for (int i = 0; i < _lig.size(); i++) {
- Ligature &l = _lig[i];
- if (l.c1 == code || l.c2 == code)
- l.join = 0;
- else if ((l.join & JT_ADDLIG) && l.d == code)
- l.join &= ~JT_LIGALL;
- }
-
- if (_warn_missing) {
- Vector<uint32_t> garbage;
- bool unicodes_explicit = x_unicodes(_e[code], garbage);
- if (!unicodes_explicit || garbage.size() > 0) {
- Vector<Setting> v;
- v.push_back(Setting(Setting::RULE, 500, 500));
- v.push_back(Setting(Setting::SPECIAL, String("Warning: missing glyph '") + _e[code] + "'"));
- metrics.encode_virtual(code, _e[code], 0, v, true);
- unencoded.insert(_e[code], 1);
- }
- }
-}
-
-static inline Efont::OpenType::Glyph
-map_uni(uint32_t uni, const Efont::OpenType::Cmap &cmap, const Metrics &m)
-{
- if (uni == U_EMPTYSLOT)
- return m.emptyslot_glyph();
- else
- return cmap.map_uni(uni);
-}
-
-bool
-DvipsEncoding::x_unicodes(PermString chname, Vector<uint32_t> &unicodes) const
-{
- int i = _unicoding_map[chname];
- if (i >= 0) {
- for (; _unicoding[i] > 0; i++)
- unicodes.push_back(_unicoding[i]);
- return true;
- } else {
- glyphname_unicode(chname, unicodes);
- return false;
- }
-}
-
-
-void
-DvipsEncoding::make_metrics(Metrics &metrics, const FontInfo &finfo, Secondary *secondary, bool literal, ErrorHandler *errh)
-{
- // first pass: without secondaries
- for (int code = 0; code < _e.size(); code++) {
- PermString chname = _e[code];
-
- // common case: skip .notdef
- if (chname == dot_notdef)
- continue;
-
- // find first single Unicode glyph supported by the font
- Efont::OpenType::Glyph glyph = 0;
- uint32_t glyph_uni = 0;
- {
- Vector<uint32_t> unicodes;
- (void) x_unicodes(chname, unicodes);
- Vector<uint32_t>::iterator u = unicodes.begin();
- while (u != unicodes.end() && glyph <= 0) {
- uint32_t this_uni = u[0];
- ++u;
- if (u != unicodes.end()) {
- if (*u != GLYPHLIST_ALTERNATIVE)
- break;
- ++u;
- }
-
- glyph = map_uni(this_uni, *finfo.cmap, metrics);
- if (glyph_uni == 0 || glyph > 0)
- glyph_uni = this_uni;
- }
- }
-
- // find named glyph, if any
- Efont::OpenType::Glyph named_glyph = finfo.glyphid(chname);
-#if 0
- // 2.May.2008: ff, fi, fl, ffi, and ffl might map to f_f, f_i, f_l,
- // f_f_i, and f_f_l
- if (!named_glyph && chname.length() > 0 && chname.length() <= 3
- && chname[0] == 'f') {
- if (chname.equals("ff", 2))
- named_glyph = finfo.glyphid("f_f");
- else if (chname.equals("fi", 2))
- named_glyph = finfo.glyphid("f_i");
- else if (chname.equals("fl", 2))
- named_glyph = finfo.glyphid("f_l");
- else if (chname.equals("ffi", 2))
- named_glyph = finfo.glyphid("f_f_i");
- else if (chname.equals("ffl", 2))
- named_glyph = finfo.glyphid("f_f_l");
- }
-#endif
- // do not use a Unicode-mapped glyph if literal
- if (literal)
- glyph = named_glyph;
-
- // If we found a glyph, maybe use its named_glyph variant.
- if (glyph > 0 && named_glyph > 0
- && std::find(chname.begin(), chname.end(), '.') < chname.end())
- glyph = named_glyph;
-
- // assign slot
- if (glyph > 0)
- metrics.encode(code, glyph_uni, glyph);
- }
-
- // second pass: with secondaries
- for (int code = 0; code < _e.size(); code++) {
- // skip already-encoded characters and .notdef
- if (literal || metrics.glyph(code) > 0 || _e[code] == dot_notdef)
- continue;
-
- PermString chname = _e[code];
-
- // find all Unicodes
- Vector<uint32_t> unicodes;
- bool unicodes_explicit = x_unicodes(chname, unicodes);
-
- // find named glyph, if any
- Efont::OpenType::Glyph named_glyph = finfo.glyphid(chname);
-
- // 1. We were not able to find the glyph using Unicode.
- // 2. There might be a named_glyph.
- // May need to try secondaries later. Store this slot.
- // Try secondaries, if there's explicit unicoding or no named_glyph.
- if (unicodes_explicit || named_glyph <= 0)
- for (uint32_t *u = unicodes.begin(); u != unicodes.end(); ) {
- uint32_t *endu = u + 1;
- while (endu != unicodes.end() && *endu != GLYPHLIST_ALTERNATIVE)
- ++endu;
- if (secondary->encode_uni(code, chname, u, endu, metrics, errh))
- goto encoded;
- u = (endu == unicodes.end() ? endu : endu + 1);
- }
-
- // 1. We were not able to find the glyph using Unicode or secondaries.
- // 2. There might be a named_glyph.
- // Use named glyph, if any. Special case for "UNICODING foo =: ;",
- // which should turn off the character (even if a named_glyph exists),
- // UNLESS the glyph was explicitly requested.
- if (named_glyph > 0
- && (!unicodes_explicit
- || unicodes.size() > 0
- || (_encoding_required.size() > code && _encoding_required[code]))) {
- uint32_t uni = 0;
- if (unicodes.size() == 1 || (unicodes.size() > 0 && unicodes[1] == GLYPHLIST_ALTERNATIVE))
- uni = unicodes[0];
- metrics.encode(code, uni, named_glyph);
- }
-
- encoded:
- /* all set */;
- }
-
- // add altselector
- if (_altselector_char >= 0 && _altselector_char < _e.size()) {
- metrics.add_altselector_code(_altselector_char, 0);
- if (metrics.glyph(_altselector_char) <= 0 && !literal)
- (void) secondary->encode_uni(_altselector_char, "<altselector>", U_ALTSELECTOR, metrics, errh);
- }
-
- // final pass: complain
- HashMap<PermString, int> unencoded_map;
- for (int code = 0; code < _e.size(); code++)
- if (_e[code] != dot_notdef && metrics.glyph(code) <= 0)
- bad_codepoint(code, metrics, unencoded_map);
- Vector<String> unencoded;
- for (HashMap<PermString, int>::iterator it = unencoded_map.begin(); it; ++it)
- unencoded.push_back(it.key());
-
- if (unencoded.size() == 1) {
- errh->warning("%<%s%> glyph not found in font", unencoded[0].c_str());
- errh->message("(This glyph will appear as a blot and cause warnings if used.)");
- } else if (unencoded.size() > 1) {
- std::sort(unencoded.begin(), unencoded.end());
- StringAccum sa;
- for (const String* a = unencoded.begin(); a < unencoded.end(); a++)
- sa << *a << ' ';
- sa.pop_back();
- sa.append_break_lines(sa.take_string(), 68, " ");
- sa.pop_back();
- errh->warning("%d glyphs not found in font:", unencoded.size());
- errh->message("%s\n(These glyphs will appear as blots and cause warnings if used.)", sa.c_str());
- }
-
- metrics.set_coding_scheme(_coding_scheme);
-}
-
-void
-DvipsEncoding::make_base_mappings(Vector<int> &mappings, const FontInfo &finfo)
-{
- mappings.clear();
- for (int code = 0; code < _e.size(); code++) {
- PermString chname = _e[code];
-
- // common case: skip .notdef
- if (chname == dot_notdef)
- continue;
-
- // find named glyph
- Efont::OpenType::Glyph named_glyph = finfo.glyphid(chname);
- if (named_glyph > 0) {
- if (mappings.size() <= named_glyph)
- mappings.resize(named_glyph + 1, -1);
- mappings[named_glyph] = code;
- }
- }
-}
-
-
-void
-DvipsEncoding::apply_ligkern_lig(Metrics &metrics, ErrorHandler *errh) const
-{
- assert((int)J_ALL == (int)Metrics::CODE_ALL);
- for (const Ligature *l = _lig.begin(); l < _lig.end(); l++) {
- if (l->c1 < 0 || l->c2 < 0 || l->join < 0 || !(l->join & JT_LIG))
- continue;
- metrics.remove_ligatures(l->c1, l->c2);
- if (!(l->join & JT_ADDLIG))
- /* nada */;
- else if ((l->join & JT_LIGALL) == JL_LIG)
- metrics.add_ligature(l->c1, l->c2, l->d);
- else if ((l->join & JT_LIGALL) == JL_LIGC)
- metrics.add_ligature(l->c1, l->c2, metrics.pair_code(l->d, l->c2));
- else if ((l->join & JT_LIGALL) == JL_CLIG)
- metrics.add_ligature(l->c1, l->c2, metrics.pair_code(l->c1, l->d));
- else {
- static int complex_join_warning = 0;
- if (!complex_join_warning) {
- errh->warning("complex LIGKERN ligature removed (I only support %<=:%>, %<=:|%>, and %<|=:%>)");
- complex_join_warning = 1;
- }
- }
- }
-}
-
-void
-DvipsEncoding::apply_ligkern_kern(Metrics &metrics, ErrorHandler *) const
-{
- assert((int)J_ALL == (int)Metrics::CODE_ALL);
- for (const Ligature *l = _lig.begin(); l < _lig.end(); l++)
- if (l->c1 >= 0 && l->c2 >= 0 && (l->join & JT_KERN))
- metrics.set_kern(l->c1, l->c2, l->k);
-}
-
-void
-DvipsEncoding::apply_position(Metrics &metrics, ErrorHandler *) const
-{
- for (const Ligature *l = _pos.begin(); l < _pos.end(); l++)
- if (l->c1 >= 0)
- metrics.add_single_positioning(l->c1, l->c2, l->join, l->k);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.hh
deleted file mode 100644
index 67181b2d654..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/dvipsencoding.hh
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef OTFTOTFM_DVIPSENCODING_HH
-#define OTFTOTFM_DVIPSENCODING_HH
-#include <efont/otfcmap.hh>
-#include <efont/cff.hh>
-#include <lcdf/hashmap.hh>
-class Metrics;
-class Secondary;
-class FontInfo;
-
-class DvipsEncoding { public:
-
- DvipsEncoding();
-
- static void add_glyphlist(String);
-
- operator bool() const { return _e.size() > 0; }
- const String &name() const { return _name; }
- const String &filename() const { return _filename; }
- int boundary_char() const { return _boundary_char; }
- const String &coding_scheme() const { return _coding_scheme; }
- void set_coding_scheme(const String &s) { _coding_scheme = s; }
- void set_warn_missing(bool wm) { _warn_missing = wm; }
-
- void encode(int, PermString);
- inline int encoding_of(PermString) const;
- int encoding_of(PermString, bool encode);
- inline bool encoded(int e) const;
- inline PermString encoding(int e) const;
- int encoding_size() const { return _e.size(); }
-
- int parse(String filename, bool ignore_ligkern, bool ignore_other, ErrorHandler *);
- int parse_ligkern(const String &ligkern_text, int override, ErrorHandler *);
- int parse_position(const String &ligkern_text, int override, ErrorHandler *);
- int parse_unicoding(const String &unicoding_text, int override, ErrorHandler *);
-
- bool file_had_ligkern() const { return _file_had_ligkern; }
-
- // also modifies 'this':
- void make_metrics(Metrics &, const FontInfo &, Secondary *, bool literal, ErrorHandler *);
- void make_base_mappings(Vector<int> &mappings, const FontInfo &);
-
- void apply_ligkern_lig(Metrics &, ErrorHandler *) const;
- void apply_ligkern_kern(Metrics &, ErrorHandler *) const;
- void apply_position(Metrics &, ErrorHandler *) const;
-
- enum { JT_KERN = 32, JT_LIG = 64, JT_ADDLIG = 128, JT_LIGALL = 199,
- JL_LIG = JT_LIG | JT_ADDLIG, JL_CLIG = JL_LIG | 1,
- JL_CLIG_S = JL_LIG | 2, JL_LIGC = JL_LIG | 3,
- JL_LIGC_S = JL_LIG | 4, JL_CLIGC = JL_LIG | 5,
- JL_CLIGC_S = JL_LIG | 6, JL_CLIGC_SS = JL_LIG | 7,
- JT_NOLIGKERN = JT_KERN | JT_LIG,
- J_ALL = 0x7FFFFFFF }; // also see nokern_names in dvipsencoding.cc
-
- private:
-
- struct Ligature {
- int c1, c2, join, k, d;
- };
-
- Vector<PermString> _e;
- Vector<bool> _encoding_required;
- int _boundary_char;
- int _altselector_char;
-
- Vector<Ligature> _lig;
- Vector<Ligature> _pos;
- HashMap<PermString, int> _unicoding_map;
- Vector<uint32_t> _unicoding;
-
- mutable Vector<uint32_t> _unicodes;
-
- String _name;
- String _filename;
- String _printable_filename;
- String _coding_scheme;
- String _initial_comment;
- String _final_text;
- bool _file_had_ligkern;
- bool _warn_missing;
-
- struct WordType {
- const char *name;
- int (DvipsEncoding::*parsefunc)(Vector<String>&, int, ErrorHandler*);
- };
- static const WordType word_types[];
- enum { WT_LIGKERN = 0, WT_POSITION, WT_UNICODING };
-
- void add_ligkern(const Ligature &, int override);
- enum { EPARSE = 90000 };
- int parse_ligkern_words(Vector<String> &, int override, ErrorHandler *);
- int parse_position_words(Vector<String> &, int override, ErrorHandler *);
- int parse_unicoding_words(Vector<String> &, int override, ErrorHandler *);
- void parse_word_group(Vector<String> &, int override, int wt, ErrorHandler *);
- int parse_words(const String &, int override, int wt, ErrorHandler *);
- void bad_codepoint(int, Metrics &, HashMap<PermString, int> &bad_unicodes);
- bool x_unicodes(PermString chname, Vector<uint32_t> &unicodes) const;
- String landmark(int line) const;
-
- static PermString dot_notdef;
-
- static bool glyphname_unicode(String, Vector<uint32_t> &);
-
- friend inline bool operator==(const Ligature&, const Ligature&);
-
-};
-
-inline bool
-DvipsEncoding::encoded(int e) const
-{
- return e >= 0 && e < _e.size() && _e[e] != dot_notdef;
-}
-
-inline PermString
-DvipsEncoding::encoding(int e) const
-{
- if (encoded(e))
- return _e[e];
- else
- return PermString();
-}
-
-inline int
-DvipsEncoding::encoding_of(PermString what) const
-{
- return const_cast<DvipsEncoding *>(this)->encoding_of(what, false);
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
deleted file mode 100644
index 03ffcbd86ee..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.cc
+++ /dev/null
@@ -1,236 +0,0 @@
-/* glyphfilter.{cc,hh} -- define subsets of characters
- *
- * Copyright (c) 2004-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#ifdef WIN32
-# define _USE_MATH_DEFINES
-#endif
-#include "glyphfilter.hh"
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <ctype.h>
-#include <algorithm>
-#include "uniprop.hh"
-#include "util.hh"
-
-bool
-GlyphFilter::allow(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode, int ptype) const
-{
- // out-of-range glyphs never match
- if (glyph < 0 || glyph >= glyph_names.size())
- return false;
-
- String glyph_name = glyph_names[glyph];
- int uniprop = -1;
- bool any_includes = false;
- bool included = false;
-
- // loop over patterns
- for (const Pattern* p = _patterns.begin(); p < _patterns.end(); p++) {
- // check pattern type
- if ((p->type & ~T_TYPEMASK) != ptype)
- continue;
- // check include/exclude
- if ((p->type & T_EXCLUDE) == 0) {
- if (included)
- continue;
- any_includes = true;
- }
- // check if there's a match
- bool match;
- if (p->data == D_NAME)
- match = glob_match(glyph_name, p->pattern);
- else if (p->data == D_UNIPROP) {
- if (uniprop < 0)
- uniprop = UnicodeProperty::property(unicode);
- match = ((uniprop & p->u.uniprop.mask) == p->u.uniprop.value);
- } else
- match = (unicode >= p->u.unirange.low && unicode <= p->u.unirange.high);
- // act if match
- if (match == ((p->type & T_NEGATE) == 0)) {
- if ((p->type & T_EXCLUDE) == 0)
- included = true;
- else
- return false;
- }
- }
-
- return !any_includes || included;
-}
-
-GlyphFilter::Pattern::Pattern(uint16_t ptype)
- : type(ptype), data(D_NAME)
-{
- // make sure that even unused data has a known value, to simplify
- // operator==
- u.unirange.low = u.unirange.high = 0;
-}
-
-int
-GlyphFilter::Pattern::compare(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- int cmp = a.type - b.type;
- if (cmp == 0)
- cmp = a.data - b.data;
- if (cmp == 0)
- cmp = (int) (a.u.unirange.low - b.u.unirange.low);
- if (cmp == 0)
- cmp = (int) (a.u.unirange.high - b.u.unirange.high);
- if (cmp == 0)
- cmp = String::compare(a.pattern, b.pattern);
- return cmp;
-}
-
-void
-GlyphFilter::add_pattern(const String& pattern, int ptype, ErrorHandler* errh)
-{
- _sorted = false;
-
- const char* begin = pattern.begin();
- const char* end = pattern.end();
- while (begin < end && isspace((unsigned char) *begin))
- begin++;
- if (begin >= end)
- errh->error("missing pattern");
-
- while (begin < end) {
- const char* word = begin;
- while (word < end && !isspace((unsigned char) *word))
- word++;
- bool negated = false;
- if (begin < word && begin[0] == '!')
- negated = true, begin++;
-
- // actually parse clause
- Pattern p(ptype + (negated ? T_NEGATE : 0));
-
- // unicode property
- if (begin + 3 <= word && begin[0] == '<' && word[-1] == '>') {
- p.data = D_UNIPROP;
- if (UnicodeProperty::parse_property(pattern.substring(begin + 1, word - 1), p.u.uniprop.value, p.u.uniprop.mask))
- _patterns.push_back(p);
- else if (errh)
- errh->error("unknown Unicode property %<%s%>", pattern.c_str());
- goto next_clause;
- }
-
- // unicode values
- {
- const char* dash = std::find(begin, word, '-');
- if (parse_unicode_number(begin, dash, 2, p.u.unirange.low)) {
- if (dash == word)
- p.u.unirange.high = p.u.unirange.low;
- else if (dash == word - 1)
- p.u.unirange.high = 0xFFFFFFFFU;
- else if (parse_unicode_number(dash + 1, word, (begin[0] == 'U' ? 1 : 0), p.u.unirange.high))
- /* do nothing */;
- else
- goto name_pattern; // assume it's a name
- p.data = D_UNIRANGE;
- _patterns.push_back(p);
- goto next_clause;
- }
- }
-
- // otherwise must be name pattern
- name_pattern:
- p.data = D_NAME;
- p.pattern = pattern.substring(begin, word);
- _patterns.push_back(p);
-
- // move to next clause
- next_clause:
- for (begin = word; begin < end && isspace((unsigned char) *begin); begin++)
- /* nada */;
- }
-}
-
-void
-GlyphFilter::add_substitution_filter(const String& s, bool is_exclude, ErrorHandler* errh)
-{
- add_pattern(s, is_exclude ? T_SRC + T_EXCLUDE : T_SRC, errh);
-}
-
-void
-GlyphFilter::add_alternate_filter(const String& s, bool is_exclude, ErrorHandler* errh)
-{
- add_pattern(s, is_exclude ? T_DST + T_EXCLUDE : T_DST, errh);
-}
-
-GlyphFilter&
-GlyphFilter::operator+=(const GlyphFilter& gf)
-{
- // be careful about self-addition
- _patterns.reserve(gf._patterns.size());
- const Pattern* end = gf._patterns.end();
- for (const Pattern* p = gf._patterns.begin(); p < end; p++)
- _patterns.push_back(*p);
- return *this;
-}
-
-GlyphFilter
-operator+(const GlyphFilter& a, const GlyphFilter& b)
-{
- if (!b)
- return a;
- if (!a)
- return b;
- GlyphFilter x(a);
- x += b;
- return x;
-}
-
-bool
-operator==(const GlyphFilter& a, const GlyphFilter& b)
-{
- if (&a == &b)
- return true;
- if (a._patterns.size() != b._patterns.size())
- return false;
- const GlyphFilter::Pattern* pa = a._patterns.begin();
- const GlyphFilter::Pattern* pb = b._patterns.begin();
- for (; pa < a._patterns.end(); pa++, pb++)
- if (!(*pa == *pb))
- return false;
- return true;
-}
-
-void
-GlyphFilter::sort()
-{
- if (!_sorted) {
- std::sort(_patterns.begin(), _patterns.end());
- Pattern* true_end = std::unique(_patterns.begin(), _patterns.end());
- _patterns.erase(true_end, _patterns.end());
- _sorted = true;
- }
-}
-
-void
-GlyphFilter::unparse(StringAccum& sa) const
-{
- for (const Pattern* p = _patterns.begin(); p < _patterns.end(); p++) {
- sa << (p->type & T_DST ? 'D' : 'S') << (p->type & T_NEGATE ? "!" : "") << (p->type & T_EXCLUDE ? "X" : "");
- if (p->data == D_NAME)
- sa << '<' << p->pattern << '>';
- else if (p->data == D_UNIPROP)
- sa << "[UNIPROP:" << p->u.uniprop.mask << '=' << p->u.uniprop.value << ']';
- else
- sa.snprintf(20, "[U+%02x-U+%02x]", p->u.unirange.low, p->u.unirange.high);
- sa << ' ';
- }
- if (_patterns.size())
- sa.pop_back();
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh
deleted file mode 100644
index 4fc25ddadff..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/glyphfilter.hh
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef OTFTOTFM_GLYPHFILTER_HH
-#define OTFTOTFM_GLYPHFILTER_HH
-#include <efont/otf.hh>
-#include <lcdf/vector.hh>
-class Metrics;
-
-class GlyphFilter { public:
-
- GlyphFilter() : _sorted(true) { }
-
- operator bool() const { return _patterns.size() != 0; }
-
- inline bool allow_substitution(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const;
- inline bool allow_alternate(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const;
-
- void add_substitution_filter(const String&, bool is_exclude, ErrorHandler*);
- void add_alternate_filter(const String&, bool is_exclude, ErrorHandler*);
-
- friend bool operator==(const GlyphFilter&, const GlyphFilter&);
- inline bool check_eq(GlyphFilter&); // may alter both GlyphFilters
-
- GlyphFilter& operator+=(const GlyphFilter&);
-
- void unparse(StringAccum&) const;
-
- struct Pattern {
- uint16_t type;
- uint16_t data;
- union {
- struct {
- int mask;
- int value;
- } uniprop;
- struct {
- uint32_t low;
- uint32_t high;
- } unirange;
- } u;
- String pattern;
- Pattern(uint16_t type);
- static int compare(const Pattern&, const Pattern&);
- };
-
- private:
-
- enum { T_EXCLUDE = 1, T_NEGATE = 2, T_TYPEMASK = 3,
- T_SRC = 0, T_DST = 4 };
- enum { D_NAME, D_UNIPROP, D_UNIRANGE };
-
- Vector<Pattern> _patterns;
- bool _sorted;
-
- bool allow(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode, int ptype) const;
- void add_pattern(const String&, int ptype, ErrorHandler*);
- void sort();
-
-};
-
-inline bool
-GlyphFilter::allow_substitution(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const
-{
- return (!_patterns.size() || allow(glyph, glyph_names, unicode, T_SRC));
-}
-
-inline bool
-GlyphFilter::allow_alternate(Efont::OpenType::Glyph glyph, const Vector<PermString>& glyph_names, uint32_t unicode) const
-{
- return (!_patterns.size() || allow(glyph, glyph_names, unicode, T_DST));
-}
-
-inline bool operator==(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- return a.type == b.type && a.data == b.data && a.u.unirange.low == b.u.unirange.low && a.u.unirange.high == b.u.unirange.high && a.pattern == b.pattern;
-}
-
-inline bool operator<(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- return GlyphFilter::Pattern::compare(a, b) < 0;
-}
-
-inline bool operator!=(const GlyphFilter::Pattern& a, const GlyphFilter::Pattern& b)
-{
- return !(a == b);
-}
-
-bool operator==(const GlyphFilter&, const GlyphFilter&);
-
-inline bool operator!=(const GlyphFilter& a, const GlyphFilter& b)
-{
- return !(a == b);
-}
-
-inline bool
-GlyphFilter::check_eq(GlyphFilter& o)
-{
- sort();
- o.sort();
- return *this == o;
-}
-
-GlyphFilter operator+(const GlyphFilter&, const GlyphFilter&);
-
-inline StringAccum&
-operator<<(StringAccum& sa, const GlyphFilter& gf)
-{
- gf.unparse(sa);
- return sa;
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
deleted file mode 100644
index 68eecbcc56d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* kpseinterface.{c,h} -- interface with the kpathsea library
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#include <kpathsea/config.h>
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <kpathsea/progname.h>
-#include <kpathsea/expand.h>
-#include <kpathsea/c-pathch.h>
-#include <kpathsea/tex-file.h>
-#ifdef W32TEX
-#include <kpathsea/variable.h>
-#endif
-#include "kpseinterface.h"
-
-int kpsei_env_sep_char = ENV_SEP;
-
-void
-kpsei_init(const char* argv0, const char* progname)
-{
- kpse_set_program_name(argv0, progname);
-#ifdef SELFAUTODIR
- putenv("SELFAUTODIR=" SELFAUTODIR);
-#endif
-#ifdef SELFAUTOLOC
- putenv("SELFAUTOLOC=" SELFAUTOLOC);
-#endif
-#ifdef SELFAUTOPARENT
- putenv("SELFAUTOPARENT=" SELFAUTOPARENT);
-#endif
-#ifdef SELFAUTOGRANDPARENT
- putenv("SELFAUTOGRANDPARENT=" SELFAUTOGRANDPARENT);
-#endif
-}
-
-char*
-kpsei_path_expand(const char* path)
-{
- return kpse_path_expand(path);
-}
-
-char*
-kpsei_find_file(const char* name, int format)
-{
- char *result;
- switch (format) {
- case KPSEI_FMT_WEB2C:
- return kpse_find_file(name, kpse_web2c_format, true);
- case KPSEI_FMT_ENCODING:
-#if HAVE_DECL_KPSE_ENC_FORMAT
- if ((result = kpse_find_file(name, kpse_enc_format, true)))
- return result;
-#endif
- return kpse_find_file(name, kpse_tex_ps_header_format, true);
- case KPSEI_FMT_TYPE1:
- return kpse_find_file(name, kpse_type1_format, false);
- case KPSEI_FMT_TYPE42:
- return kpse_find_file(name, kpse_type42_format, false);
- case KPSEI_FMT_TRUETYPE:
- return kpse_find_file(name, kpse_truetype_format, false);
-#if HAVE_DECL_KPSE_OPENTYPE_FORMAT
- case KPSEI_FMT_OPENTYPE:
- return kpse_find_file(name, kpse_opentype_format, false);
-#endif
- case KPSEI_FMT_OTHER_TEXT:
- return kpse_find_file(name, kpse_program_text_format, true);
- case KPSEI_FMT_MAP:
- return kpse_find_file(name, kpse_fontmap_format, true);
- default:
- return 0;
- }
-}
-
-void
-kpsei_set_debug_flags(unsigned flags)
-{
- kpathsea_debug = flags;
-}
-
-#ifdef W32TEX
-char*
-kpsei_var_value(const char *name)
-{
- return kpse_var_value(name);
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.h b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.h
deleted file mode 100644
index 413e06e6572..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/kpseinterface.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef OTFTOTFM_KPSEINTERFACE_H
-#define OTFTOTFM_KPSEINTERFACE_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void kpsei_init(const char* argv0, const char* progname);
-extern int kpsei_env_sep_char;
-char* kpsei_path_expand(const char* path); /* free() result */
-enum { KPSEI_FMT_WEB2C, KPSEI_FMT_ENCODING, KPSEI_FMT_TYPE1,
- KPSEI_FMT_OTHER_TEXT, KPSEI_FMT_MAP, KPSEI_FMT_TRUETYPE,
- KPSEI_FMT_OPENTYPE, KPSEI_FMT_TYPE42 };
-char* kpsei_find_file(const char* name, int format);
-void kpsei_set_debug_flags(unsigned flags);
-
-#ifdef W32TEX
-char* kpsei_var_value(const char *name);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
deleted file mode 100644
index 84259ad69c6..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.cc
+++ /dev/null
@@ -1,1573 +0,0 @@
-/* metrics.{cc,hh} -- an encoding during and after OpenType features
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "metrics.hh"
-#include "dvipsencoding.hh"
-#include "util.hh"
-#include "glyphfilter.hh"
-#include <string.h>
-#include <stdio.h>
-#include <algorithm>
-#include <lcdf/straccum.hh>
-
-Metrics::Metrics(const Efont::CharstringProgram *font, int nglyphs)
- : _boundary_glyph(nglyphs), _emptyslot_glyph(nglyphs + 1),
- _design_units(1000), _units_per_em(font->units_per_em()),
- _liveness_marked(false)
-{
- _encoding.assign(256, Char());
- add_mapped_font(font, String());
-}
-
-Metrics::~Metrics()
-{
- for (Char *c = _encoding.begin(); c != _encoding.end(); c++)
- delete c->virtual_char;
-}
-
-int
-Metrics::add_mapped_font(const Efont::CharstringProgram *font, const String &name)
-{
- _mapped_fonts.push_back(font);
- _mapped_font_names.push_back(name);
- return _mapped_fonts.size() - 1;
-}
-
-void
-Metrics::check() const
-{
- // check invariants
- // 1. all 'ligatures' entries refer to valid characters
- // 2. all 'ligatures' entries with 'in1 == c' are in '_encoding[c].ligs'
- // 3. 'virtual_char' SHOW operations point to valid non-virtual chars
- for (int code = 0; code < _encoding.size(); code++) {
- const Char *ch = &_encoding[code];
- assert((ch->virtual_char != 0) == (ch->glyph == VIRTUAL_GLYPH));
- for (const Ligature *l = ch->ligatures.begin(); l != ch->ligatures.end(); l++)
- assert(valid_code(l->in2) && valid_code(l->out));
- for (const Kern *k = ch->kerns.begin(); k != ch->kerns.end(); k++)
- assert(valid_code(k->in2));
- if (const VirtualChar *vc = ch->virtual_char) {
- assert(vc->name);
- int font_number = 0;
- for (const Setting *s = vc->setting.begin(); s != vc->setting.end(); s++) {
- assert(s->valid_op());
- if (s->op == Setting::SHOW && font_number == 0)
- assert(nonvirtual_code(s->x));
- else if (s->op == Setting::FONT)
- font_number = s->x;
- }
- }
- assert(ch->built_in1 < 0 || valid_code(ch->built_in1));
- assert(ch->built_in2 < 0 || valid_code(ch->built_in2));
- assert((ch->built_in1 >= 0) == (ch->built_in2 >= 0));
- assert(ch->base_code < 0 || valid_code(ch->base_code));
- if (valid_code(ch->base_code)) {
- const Char *ch2 = &_encoding[ch->base_code];
- assert((!ch->virtual_char && ch->glyph)
- || (!ch2->virtual_char && ch2->glyph));
- }
- if (ch->flag(Char::CONTEXT_ONLY))
- assert(ch->virtual_char && ch->built_in1 >= 0 && ch->built_in2 >= 0);
- if (ch->flag(Char::CONTEXT_ONLY))
- assert(ch->flag(Char::LIVE));
- }
-}
-
-PermString
-Metrics::code_name(Code code) const
-{
- if (code < 0 || code >= _encoding.size())
- return permprintf("<badcode%d>", code);
- else {
- const Char &ch = _encoding[code];
- if (ch.virtual_char)
- return ch.virtual_char->name;
- else if (ch.glyph == _boundary_glyph)
- return "<boundary>";
- else if (ch.glyph == _emptyslot_glyph)
- return "<emptyslot>";
- else if (ch.glyph >= 0 && ch.glyph < _mapped_fonts[0]->nglyphs())
- return _mapped_fonts[0]->glyph_name(ch.glyph);
- else
- return permprintf("<glyph%d>", ch.glyph);
- }
-}
-
-
-/*****************************************************************************/
-/* encoding */
-
-Metrics::Code
-Metrics::unicode_encoding(uint32_t uni) const
-{
- for (const Char *ch = _encoding.begin(); ch < _encoding.end(); ch++)
- if (ch->unicode == uni)
- return ch - _encoding.begin();
- return -1;
-}
-
-Metrics::Code
-Metrics::hard_encoding(Glyph g, Code after) const
-{
- if (g < 0)
- return -1;
- int answer = -1, n = 0;
- for (int i = _encoding.size() - 1; i >= after; i--)
- if (_encoding[i].glyph == g)
- answer = i, n++;
- if (n < 2 && after == 0) {
- if (g >= _emap.size())
- _emap.resize(g + 1, -2);
- _emap[g] = answer;
- }
- return answer;
-}
-
-Metrics::Code
-Metrics::force_encoding(Glyph g, int lookup_source)
-{
- assert(g >= 0);
- int e = encoding(g, 0);
- if (e >= 0)
- return e;
- else {
- Char ch;
- ch.glyph = g;
- ch.base_code = _encoding.size();
- ch.lookup_source = lookup_source;
- _encoding.push_back(ch);
- assign_emap(g, ch.base_code);
- return ch.base_code;
- }
-}
-
-void
-Metrics::encode(Code code, uint32_t uni, Glyph g)
-{
- assert(code >= 0 && g >= 0 && g != VIRTUAL_GLYPH);
- if (code >= _encoding.size())
- _encoding.resize(code + 1, Char());
- _encoding[code].unicode = uni;
- _encoding[code].glyph = g;
- if (g > 0)
- _encoding[code].base_code = code;
- assert(!_encoding[code].virtual_char);
- assign_emap(g, code);
-}
-
-void
-Metrics::encode_virtual(Code code, PermString name, uint32_t uni, const Vector<Setting> &v, bool base_char)
-{
- assert(code >= 0 && v.size() > 0);
- if (code >= _encoding.size())
- _encoding.resize(code + 1, Char());
- _encoding[code].unicode = uni;
- _encoding[code].glyph = VIRTUAL_GLYPH;
- if (base_char)
- _encoding[code].flags |= Char::BASE_REP;
- assert(!_encoding[code].virtual_char);
- VirtualChar *vc = _encoding[code].virtual_char = new VirtualChar;
- vc->name = name;
- vc->setting = v;
- int font_number = 0;
- for (Setting *s = vc->setting.begin(); s != vc->setting.end(); s++) {
- assert(s->valid_op() && (s->op != Setting::SHOW || font_number != 0 || nonvirtual_code(s->x)));
- if (s->op == Setting::FONT)
- font_number = s->x;
- }
-}
-
-void
-Metrics::apply_base_encoding(const String &font_name, const DvipsEncoding &dvipsenc, const Vector<int> &mapping)
-{
- int font_number = -1;
- for (Char *c = _encoding.begin(); c != _encoding.end(); c++)
- if (c->glyph > 0 && !c->virtual_char && c->glyph < mapping.size()
- && mapping[c->glyph] >= 0) {
- if (font_number < 0)
- font_number = add_mapped_font(mapped_font(0), font_name);
- VirtualChar *vc = c->virtual_char = new VirtualChar;
- vc->name = dvipsenc.encoding(mapping[c->glyph]);
- vc->setting.push_back(Setting(Setting::FONT, font_number));
- vc->setting.push_back(Setting(Setting::SHOW, mapping[c->glyph], c->glyph));
- c->glyph = VIRTUAL_GLYPH;
- c->base_code = -1;
- c->flags = (c->flags & ~Char::BASE_LIVE) | Char::BASE_REP;
- }
-}
-
-void
-Metrics::add_altselector_code(Code code, int altselector_type)
-{
- for (Kern *k = _altselectors.begin(); k != _altselectors.end(); k++)
- if (k->in2 == code) {
- k->kern = altselector_type;
- return;
- }
- _altselectors.push_back(Kern(code, altselector_type));
-}
-
-bool
-Metrics::base_glyphs(Vector<Glyph> &v, int size) const
-{
- bool any = false;
- v.assign(_encoding.size(), 0);
- for (const Char *ch = _encoding.begin(); ch != _encoding.end(); ch++)
- if (ch->base_code >= 0 && ch->base_code < size) {
- v[ch->base_code] = ch->glyph;
- any = true;
- }
- return any;
-}
-
-
-/*****************************************************************************/
-/* Char methods */
-
-void
-Metrics::Char::clear()
-{
- glyph = 0;
- base_code = -1;
- unicode = 0;
- ligatures.clear();
- kerns.clear();
- delete virtual_char;
- virtual_char = 0;
- pdx = pdy = adx = 0;
- built_in1 = built_in2 = -1;
- lookup_source = -1;
- flags = 0;
-}
-
-void
-Metrics::Char::swap(Char &c)
-{
- std::swap(glyph, c.glyph);
- // NB: only a partial switch of base_code!!
- if (base_code < 0)
- base_code = c.base_code;
- c.base_code = -1;
- std::swap(unicode, c.unicode);
- ligatures.swap(c.ligatures);
- kerns.swap(c.kerns);
- std::swap(virtual_char, c.virtual_char);
- std::swap(pdx, c.pdx);
- std::swap(pdy, c.pdy);
- std::swap(adx, c.adx);
- std::swap(built_in1, c.built_in1);
- std::swap(built_in2, c.built_in2);
- std::swap(lookup_source, c.lookup_source);
- std::swap(flags, c.flags);
-}
-
-
-/*****************************************************************************/
-/* manipulating ligature lists */
-
-Metrics::Ligature *
-Metrics::ligature_obj(Code code1, Code code2)
-{
- assert(valid_code(code1) && valid_code(code2));
- Char &ch = _encoding[code1];
- for (Ligature *l = ch.ligatures.begin(); l != ch.ligatures.end(); l++)
- if (l->in2 == code2)
- return l;
- return 0;
-}
-
-inline void
-Metrics::new_ligature(Code in1, Code in2, Code out)
-{
- assert(valid_code(in1) && valid_code(in2) && valid_code(out));
- _encoding[in1].ligatures.push_back(Ligature(in2, out));
-}
-
-inline void
-Metrics::repoint_ligature(Code, Ligature *l, Code out)
-{
- l->out = out;
-}
-
-void
-Metrics::add_ligature(Code in1, Code in2, Code out)
-{
- if (Ligature *l = ligature_obj(in1, in2)) {
- Char &ch = _encoding[l->out];
- if (ch.flags & Char::BUILT) {
- // move old ligatures to point to the true ligature
- for (Ligature *ll = ch.ligatures.begin(); ll != ch.ligatures.end(); ll++)
- add_ligature(out, ll->in2, ll->out);
- repoint_ligature(in1, l, out);
- }
- } else
- new_ligature(in1, in2, out);
-}
-
-Metrics::Code
-Metrics::pair_code(Code in1, Code in2, int lookup_source)
-{
- if (const Ligature *l = ligature_obj(in1, in2)) {
- if (lookup_source < 0)
- _encoding[l->out].flags &= ~Char::INTERMEDIATE;
- return l->out;
- } else {
- Char ch;
- ch.glyph = VIRTUAL_GLYPH;
- ch.flags = Char::BUILT | (lookup_source >= 0 ? Char::INTERMEDIATE : 0);
- VirtualChar *vc = ch.virtual_char = new VirtualChar;
- vc->name = permprintf("%s__%s", code_str(in1), code_str(in2));
- setting(in1, vc->setting, SET_INTERMEDIATE);
- vc->setting.push_back(Setting(Setting::KERN));
- setting(in2, vc->setting, SET_INTERMEDIATE);
- ch.built_in1 = in1;
- ch.built_in2 = in2;
- ch.lookup_source = lookup_source;
- _encoding.push_back(ch);
- new_ligature(in1, in2, _encoding.size() - 1);
- return _encoding.size() - 1;
- }
-}
-
-void
-Metrics::remove_ligatures(Code in1, Code in2)
-{
- if (in1 == CODE_ALL) {
- for (in1 = 0; in1 < _encoding.size(); in1++)
- remove_ligatures(in1, in2);
- } else {
- Char &ch = _encoding[in1];
- if (in2 == CODE_ALL)
- ch.ligatures.clear();
- else if (Ligature *l = ligature_obj(in1, in2)) {
- *l = ch.ligatures.back();
- ch.ligatures.pop_back();
- }
- }
-}
-
-
-/*****************************************************************************/
-/* manipulating kern lists */
-
-Metrics::Kern *
-Metrics::kern_obj(Code in1, Code in2)
-{
- assert(valid_code(in1) && valid_code(in2));
- Char &ch = _encoding[in1];
- for (Kern *k = ch.kerns.begin(); k != ch.kerns.end(); k++)
- if (k->in2 == in2)
- return k;
- return 0;
-}
-
-int
-Metrics::kern(Code in1, Code in2) const
-{
- assert(valid_code(in1) && valid_code(in2));
- const Char &ch = _encoding[in1];
- for (const Kern *k = ch.kerns.begin(); k != ch.kerns.end(); k++)
- if (k->in2 == in2)
- return k->kern;
- return 0;
-}
-
-void
-Metrics::add_kern(Code in1, Code in2, int kern)
-{
- if (Kern *k = kern_obj(in1, in2))
- k->kern += kern;
- else
- _encoding[in1].kerns.push_back(Kern(in2, kern));
-}
-
-void
-Metrics::set_kern(Code in1, Code in2, int kern)
-{
- if (in1 == CODE_ALL) {
- for (in1 = 0; in1 < _encoding.size(); in1++)
- set_kern(in1, in2, kern);
- } else {
- Char &ch = _encoding[in1];
- if (in2 == CODE_ALL) {
- assert(kern == 0);
- ch.kerns.clear();
- } else if (Kern *k = kern_obj(in1, in2)) {
- if (kern == 0) {
- *k = ch.kerns.back();
- ch.kerns.pop_back();
- } else
- k->kern = kern;
- } else if (kern != 0)
- ch.kerns.push_back(Kern(in2, kern));
- }
-}
-
-int
-Metrics::reencode_right_ligkern(Code old_in2, Code new_in2)
-{
- int nchanges = 0;
- for (Char *ch = _encoding.begin(); ch != _encoding.end(); ch++) {
- for (Ligature *l = ch->ligatures.begin(); l != ch->ligatures.end(); l++)
- if (l->in2 == old_in2) {
- if (new_in2 >= 0)
- l->in2 = new_in2;
- else {
- *l = ch->ligatures.back();
- ch->ligatures.pop_back();
- l--;
- }
- nchanges++;
- }
- for (Kern *k = ch->kerns.begin(); k != ch->kerns.end(); k++)
- if (k->in2 == old_in2) {
- if (new_in2 >= 0)
- k->in2 = new_in2;
- else {
- *k = ch->kerns.back();
- ch->kerns.pop_back();
- k--;
- }
- nchanges++;
- }
- // XXX?
- if (ch->context_setting(-1, old_in2) && new_in2 >= 0 && ch->built_in1 >= 0)
- ch->built_in2 = new_in2;
- }
- return nchanges;
-}
-
-
-/*****************************************************************************/
-/* positioning */
-
-void
-Metrics::add_single_positioning(Code c, int pdx, int pdy, int adx)
-{
- assert(valid_code(c));
- Char &ch = _encoding[c];
- ch.pdx += pdx;
- ch.pdy += pdy;
- ch.adx += adx;
-}
-
-
-/*****************************************************************************/
-/* changed_context structure */
-
-class Metrics::ChangedContext { public:
- ChangedContext(int ncodes);
- ~ChangedContext();
- typedef Metrics::Code Code;
-
- enum Context { CH_NONE = 0, CH_SOME = 1, CH_ALL = 2 };
- bool allowed(Code, bool left_context) const;
- bool pair_allowed(Code, Code) const;
- bool virgin(Code) const;
- void disallow(Code);
- void disallow_pair(Code, Code);
- private:
- Vector<Vector<uint32_t> *> _v;
- int _initial_ncodes;
- mutable Vector<uint32_t> _all_sentinel;
- ChangedContext(const ChangedContext &);
- ChangedContext &operator=(const ChangedContext &);
- static inline bool bit(const Vector<uint32_t> &, Code);
- inline void ensure_all(Code) const;
-};
-
-Metrics::ChangedContext::ChangedContext(int ncodes)
- : _v(ncodes, 0), _initial_ncodes(ncodes), _all_sentinel(((ncodes - 1) >> 5) + 1, 0xFFFFFFFFU)
-{
-}
-
-Metrics::ChangedContext::~ChangedContext()
-{
- for (Vector<uint32_t> **v = _v.begin(); v != _v.end(); v++)
- if (*v != &_all_sentinel)
- delete *v;
-}
-
-inline void
-Metrics::ChangedContext::ensure_all(Code c) const
-{
- if (c >= 0 && (c >> 5) >= _all_sentinel.size())
- _all_sentinel.resize((c >> 5) + 1, 0xFFFFFFFFU);
-}
-
-inline bool
-Metrics::ChangedContext::bit(const Vector<uint32_t> &v, Code c)
-{
- if (c < 0 || (c >> 5) >= v.size())
- return false;
- else
- return (v[c >> 5] & (1 << (c & 0x1F))) != 0;
-}
-
-bool
-Metrics::ChangedContext::allowed(Code c, bool left_context) const
-{
- if (c < 0)
- return false;
- else if (c >= _v.size())
- return left_context;
- else
- return (_v[c] != &_all_sentinel);
-}
-
-bool
-Metrics::ChangedContext::pair_allowed(Code c1, Code c2) const
-{
- ensure_all(c2);
- if (c1 < 0 || c2 < 0)
- return false;
- else if (c1 >= _v.size() || c2 >= _v.size() || !_v[c1])
- return true;
- else
- return !bit(*_v[c1], c2);
-}
-
-bool
-Metrics::ChangedContext::virgin(Code c) const
-{
- return (c >= 0 && (c >= _v.size() || _v[c] == 0));
-}
-
-void
-Metrics::ChangedContext::disallow(Code c)
-{
- assert(c >= 0);
- if (c >= _v.size())
- _v.resize(c + 1, 0);
- if (_v[c] != &_all_sentinel) {
- delete _v[c];
- _v[c] = &_all_sentinel;
- }
-}
-
-void
-Metrics::ChangedContext::disallow_pair(Code c1, Code c2)
-{
- assert(c1 >= 0 && c2 >= 0);
- if (c1 >= _v.size())
- _v.resize(c1 + 1, 0);
- if (!_v[c1])
- _v[c1] = new Vector<uint32_t>;
- if (_v[c1] != &_all_sentinel) {
- if ((c2 >> 5) >= _v[c1]->size())
- _v[c1]->resize((c2 >> 5) + 1, 0);
- (*_v[c1])[c2 >> 5] |= 1 << (c2 & 0x1F);
- }
-}
-
-
-/*****************************************************************************/
-/* applying GSUB substitutions */
-
-void
-Metrics::apply_single(Code cin, const Substitution *s, int lookup,
- ChangedContext &ctx, const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names)
-{
- // check if encoded
- if (!ctx.allowed(cin, false))
- /* not encoded before this substitution began, or completely changed;
- ingore */
- return;
-
- // check if substitution of this code allowed
- if (!glyph_filter.allow_substitution(s->in_glyph(), glyph_names, unicode(cin)))
- return;
-
- // look for an allowed alternate
- Glyph out = -1;
- for (int i = 0; out < 0 && i < s->out_nglyphs(); i++)
- if (glyph_filter.allow_alternate(s->out_glyph(i), glyph_names, unicode(cin)))
- out = s->out_glyph(i);
- if (out < 0) // no allowed alternate
- return;
-
- // apply substitution
- if (ctx.virgin(cin)) {
- // no one has changed this glyph yet, change it unilaterally
- assign_emap(s->in_glyph(), -2);
- assign_emap(out, cin);
- assert(!_encoding[cin].virtual_char);
- _encoding[cin].glyph = out;
- } else {
- // some contextual substitutions have changed this glyph, add
- // contextual substitutions for the remaining possibilities
- Code cout = force_encoding(out, lookup);
- for (Code right = 0; right < _encoding.size(); right++)
- if (_encoding[right].visible() && !_encoding[right].flag(Char::BUILT) && ctx.pair_allowed(cin, right)) {
- Code pair = pair_code(cout, right, lookup);
- _encoding[cout].flags &= ~Char::INTERMEDIATE;
- add_ligature(cin, right, pair);
- }
- }
-
- // no more substitutions for cin
- ctx.disallow(cin);
-}
-
-void
-Metrics::apply_ligature(const Vector<Code> &in, const Substitution *s, int lookup)
-{
- // build up the character pair
- int cin1 = in[0];
- for (const Code *inp = in.begin() + 1; inp < in.end() - 1; inp++)
- cin1 = pair_code(cin1, *inp, lookup);
- int cin2 = in.back();
-
- // build up the output character
- Vector<Code> out;
- s->all_out_glyphs(out);
- int cout = -1;
- for (Glyph *outp = out.begin(); outp < out.end(); outp++) {
- *outp = force_encoding(*outp, lookup);
- cout = (cout < 0 ? *outp : pair_code(cout, *outp, lookup));
- }
- _encoding[cout].flags &= ~Char::INTERMEDIATE;
-
- // check for replacing a fake ligature
- int old_out = -1;
- if (Ligature *l = ligature_obj(cin1, cin2)) {
- if (l->out == cout) // already created this same ligature
- return;
- if (_encoding[l->out].flags & Char::BUILT)
- old_out = l->out;
- }
-
- // make the final ligature
- add_ligature(cin1, cin2, cout);
-
- //fprintf(stderr, "%s : %d/%s %d/%s => %d/%s [was %d/%s]\n", s->unparse().c_str(), cin1, code_str(cin1), cin2, code_str(cin2), cout, code_str(cout), old_out, code_str(old_out));
-
- // if appropriate, swap old ligatures to point to the new result
- if (old_out >= 0)
- for (Char *ch = _encoding.begin(); ch != _encoding.end(); ch++)
- for (Ligature *l = ch->ligatures.begin(); l != ch->ligatures.end(); l++)
- if (l->out == old_out)
- repoint_ligature(ch - _encoding.begin(), l, cout);
-}
-
-void
-Metrics::apply_simple_context_ligature(const Vector<Code> &codes,
- const Substitution *s, int lookup, ChangedContext &ctx,
- const GlyphFilter &glyph_filter,
- const Vector<PermString>& glyph_names)
-{
- int nleft = s->left_nglyphs(), nin = s->in_nglyphs();
- assert(codes.size() >= 2);
-
- // check if context allows substitutions
- for (int i = 0; i < codes.size(); ++i) {
- if (!ctx.allowed(codes[i], i < nleft)
- || !glyph_filter.allow_substitution(s->in_glyph(i), glyph_names, unicode(codes[i])))
- return;
- }
-
- // check if any part of the combination has already changed
- int ncheck = nleft + (nin > 2 ? 2 : nin);
- if (ncheck == codes.size())
- --ncheck;
- for (const Code *inp = codes.begin(); inp < codes.begin() + ncheck; ++inp)
- if (!ctx.pair_allowed(inp[0], inp[1]))
- return;
-
- // mark this combination as changed if appropriate
- if (codes.size() == 2 && nin == 1)
- ctx.disallow_pair(codes[0], codes[1]);
-
- // actually apply ligature
- apply_ligature(codes, s, lookup);
-}
-
-bool
-Metrics::next_encoding(Vector<Code> &codes, const Vector<Glyph> &glyphs) const
-{
- if (!codes.size()) {
- codes.assign(glyphs.size(), 0);
- for (int i = 0; i < glyphs.size(); ++i)
- if ((codes[i] = encoding(glyphs[i], 0)) < 0)
- return false;
- return true;
- } else {
- for (int i = 0; i < glyphs.size(); ++i)
- if ((codes[i] = encoding(glyphs[i], codes[i] + 1)) >= 0)
- return true;
- else
- codes[i] = encoding(glyphs[i], 0);
- return false;
- }
-}
-
-int
-Metrics::apply(const Vector<Substitution>& sv, bool allow_single, int lookup, const GlyphFilter& glyph_filter, const Vector<PermString>& glyph_names)
-{
- Vector<Glyph> glyphs;
- Vector<Code> codes;
-
- // keep track of what substitutions we have performed
- ChangedContext ctx(_encoding.size());
-
- // loop over substitutions
- int failures = 0;
- for (const Substitution *s = sv.begin(); s != sv.end(); s++) {
- bool is_single = s->is_single() || s->is_alternate();
- bool is_apply_single = is_single && allow_single;
- bool is_apply_simple_context_ligature = !is_single && !s->is_multiple() && s->is_simple_context();
-
- if (is_apply_single || is_apply_simple_context_ligature) {
- s->all_in_glyphs(glyphs);
- for (codes.clear(); next_encoding(codes, glyphs); ) {
- if (is_apply_single)
- apply_single(codes[0], s, lookup, ctx, glyph_filter, glyph_names);
- else
- apply_simple_context_ligature(codes, s, lookup, ctx, glyph_filter, glyph_names);
- }
- } else
- failures++;
- }
-
- return sv.size() - failures;
-}
-
-void
-Metrics::apply_alternates_single(Code cin, const Substitution *s, int lookup,
- const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names)
-{
- for (const Kern *as = _altselectors.begin(); as != _altselectors.end(); as++)
- if (as->kern == 0) {
- Code last = cin;
- uint32_t u = unicode(cin);
- for (int i = 0; i < s->out_nglyphs(); i++)
- if (glyph_filter.allow_alternate(s->out_glyph(i), glyph_names, u)) {
- Code out = force_encoding(s->out_glyph(i), lookup);
- add_ligature(last, as->in2, out);
- last = out;
- }
- } else if (as->kern <= s->out_nglyphs()) {
- Code out = force_encoding(s->out_glyph(as->kern - 1), lookup);
- add_ligature(cin, as->in2, out);
- }
-}
-
-void
-Metrics::apply_alternates_ligature(const Vector<Code> &codes,
- const Substitution *s, int lookup,
- const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names)
-{
- // check whether the output character is allowed
- if (!glyph_filter.allow_alternate(s->out_glyph(), glyph_names, 0))
- return;
-
- // find alternate selector and apply ligature if appropriate
- for (const Kern *as = _altselectors.begin(); as != _altselectors.end(); as++)
- if (as->kern == 0) {
- Vector<Code> lig(codes);
- lig.insert(lig.begin() + 1, as->in2);
- apply_ligature(lig, s, lookup);
- }
-}
-
-void
-Metrics::apply_alternates(const Vector<Substitution>& sv, int lookup, const GlyphFilter& glyph_filter, const Vector<PermString>& glyph_names)
-{
- Vector<Glyph> glyphs;
- Vector<Code> codes;
-
- for (const Substitution *s = sv.begin(); s != sv.end(); s++) {
- bool is_single = s->is_single() || s->is_alternate();
- if (is_single || s->is_ligature()) {
- s->all_in_glyphs(glyphs);
- for (codes.clear(); next_encoding(codes, glyphs); ) {
- if (is_single)
- apply_alternates_single(codes[0], s, lookup, glyph_filter, glyph_names);
- else
- apply_alternates_ligature(codes, s, lookup, glyph_filter, glyph_names);
- }
- }
- }
-}
-
-
-/*****************************************************************************/
-/* applying GPOS positionings */
-
-static bool // returns old value
-assign_bitvec(int*& bitvec, int e, int n)
-{
- if (e >= 0 && e < n) {
- if (!bitvec) {
- bitvec = new int[((n - 1) >> 5) + 1];
- memset(bitvec, 0, sizeof(int) * (((n - 1) >> 5) + 1));
- }
- bool result = (bitvec[e >> 5] & (1 << (e & 0x1F))) != 0;
- bitvec[e >> 5] |= (1 << (e & 0x1F));
- return result;
- } else
- return false;
-}
-
-int
-Metrics::apply(const Vector<Positioning>& pv)
-{
- // keep track of what substitutions we have performed
- int *single_changed = 0;
- Vector<int *> pair_changed(_encoding.size(), 0);
- Vector<Glyph> glyphs;
- Vector<Code> codes;
-
- // loop over substitutions
- int success = 0;
- for (const Positioning *p = pv.begin(); p != pv.end(); p++) {
- bool is_single = p->is_single();
- if (is_single || p->is_pairkern()) {
- p->all_in_glyphs(glyphs);
- for (codes.clear(); next_encoding(codes, glyphs); )
- if (is_single) {
- if (!assign_bitvec(single_changed, codes[0], _encoding.size())) {
- _encoding[codes[0]].pdx += p->left().pdx;
- _encoding[codes[0]].pdy += p->left().pdy;
- _encoding[codes[0]].adx += p->left().adx;
- }
- } else {
- if (!assign_bitvec(pair_changed[codes[0]], codes[1], _encoding.size()))
- add_kern(codes[0], codes[1], p->left().adx);
- }
- success++;
- }
- }
-
- delete[] single_changed;
- for (int i = 0; i < pair_changed.size(); i++)
- delete[] pair_changed[i];
- return success;
-}
-
-
-/*****************************************************************************/
-/* liveness marking, Ligature3s */
-
-String Metrics::Ligature3::unparse(const Metrics& m) const {
- StringAccum sa;
- sa << '[' << m.code_name(in1) << ' ' << m.code_name(in2)
- << " -> " << m.code_name(out) << ']';
- return sa.take_string();
-}
-
-inline bool
-operator<(const Metrics::Ligature3 &l1, const Metrics::Ligature3 &l2)
-{
- // topological < : is l1's output one of l2's inputs?
- if (l1.out == l2.in1 || l1.out == l2.in2)
- return true;
- else
- return l1.in1 < l2.in1
- || (l1.in1 == l2.in1 && (l1.in2 < l2.in2
- || (l1.in2 == l2.in2 && l1.out < l2.out)));
-}
-
-void
-Metrics::all_ligatures(Vector<Ligature3> &all_ligs) const
-{
- /* Develop a topologically-sorted ligature list. */
- all_ligs.clear();
- for (Code code = 0; code < _encoding.size(); code++)
- for (const Ligature *l = _encoding[code].ligatures.begin(); l != _encoding[code].ligatures.end(); l++)
- all_ligs.push_back(Ligature3(code, l->in2, l->out));
- std::sort(all_ligs.begin(), all_ligs.end());
-}
-
-void
-Metrics::mark_liveness(int size, const Vector<Ligature3> *all_ligs)
-{
- _liveness_marked = true;
- bool changed;
-
- // make sure we have ligatures
- Vector<Ligature3> my_ligs;
- if (!all_ligs) {
- all_ligatures(my_ligs);
- all_ligs = &my_ligs;
- }
-
- /* Characters below 'size' are in both virtual and base encodings. */
- for (Char *ch = _encoding.begin(); ch < _encoding.begin() + size; ch++)
- if (ch->visible())
- ch->flags |= Char::LIVE | (ch->virtual_char ? 0 : Char::BASE_LIVE);
-
- /* Characters reachable from live chars by live ligatures are live. */
- redo_live_reachable:
- for (const Ligature3 *l = all_ligs->begin(); l != all_ligs->end(); l++)
- if (_encoding[l->in1].flag(Char::LIVE) && _encoding[l->in2].flag(Char::LIVE)) {
- Char &ch = _encoding[l->out];
- if (!ch.flag(Char::LIVE))
- ch.flags |= Char::LIVE | Char::CONTEXT_ONLY | (ch.virtual_char ? 0 : Char::BASE_LIVE);
- if (ch.flag(Char::CONTEXT_ONLY) && !ch.context_setting(l->in1, l->in2))
- ch.flags &= ~Char::CONTEXT_ONLY;
- }
-
- /* Characters reachable from context-only ligatures are live. */
- changed = false;
- for (Char *ch = _encoding.begin(); ch != _encoding.end(); ch++)
- if (ch->flag(Char::CONTEXT_ONLY)) {
- Char &ch1 = _encoding[ch->built_in1];
- Char &ch2 = _encoding[ch->built_in2];
- if (!ch1.flag(Char::LIVE) || !ch2.flag(Char::LIVE)) {
- ch1.flags |= Char::LIVE;
- ch2.flags |= Char::LIVE;
- changed = true;
- }
- }
- if (changed)
- goto redo_live_reachable;
-
- /* Characters reachable from live settings are base-live. */
- for (Char *ch = _encoding.begin(); ch != _encoding.end(); ch++)
- if (ch->flag(Char::LIVE))
- if (VirtualChar *vc = ch->virtual_char) {
- int font_number = 0;
- for (Setting *s = vc->setting.begin(); s != vc->setting.end(); s++)
- if (s->op == Setting::SHOW && font_number == 0
- && _encoding[s->x].base_code >= 0)
- _encoding[s->x].flags |= Char::BASE_LIVE;
- else if (s->op == Setting::FONT)
- font_number = s->x;
- }
-}
-
-void
-Metrics::reencode(const Vector<Code> &reencoding)
-{
- for (Char *ch = _encoding.begin(); ch != _encoding.end(); ch++) {
- for (Ligature *l = ch->ligatures.begin(); l != ch->ligatures.end(); l++) {
- l->in2 = reencoding[l->in2];
- l->out = reencoding[l->out];
- }
- for (Kern *k = ch->kerns.begin(); k != ch->kerns.end(); k++)
- k->in2 = reencoding[k->in2];
- if (VirtualChar *vc = ch->virtual_char) {
- int font_number = 0;
- for (Setting *s = vc->setting.begin(); s != vc->setting.end(); s++)
- if (s->op == Setting::SHOW && font_number == 0)
- s->x = reencoding[s->x];
- else if (s->op == Setting::FONT)
- font_number = s->x;
- }
- if (ch->built_in1 >= 0) {
- ch->built_in1 = reencoding[ch->built_in1];
- ch->built_in2 = reencoding[ch->built_in2];
- }
- if (ch->base_code >= 0)
- ch->base_code = reencoding[ch->base_code];
- }
- _emap.clear();
-}
-
-
-/*****************************************************************************/
-/* shrinking the encoding */
-
-bool
-Metrics::Char::context_setting(Code in1, Code in2) const
-{
- // return true iff this character could represent the context setting of
- // 'in1' and 'in2'
- if (!virtual_char || ligatures.size())
- return false;
- else
- return (in1 == built_in1 || in2 == built_in2);
-}
-
-void
-Metrics::cut_encoding(int size)
-{
- /* Function makes it so that characters below 'size' do not point to
- characters above 'size', except for context ligatures. */
-
- /* Change "emptyslot"s to ".notdef"s. */
- for (Char *ch = _encoding.begin(); ch != _encoding.end(); ch++)
- if (ch->glyph == emptyslot_glyph()) {
- ch->glyph = 0;
- ch->base_code = -1;
- // 21.Feb.2007: Character isn't live any more.
- ch->flags &= ~(Char::BASE_LIVE | Char::LIVE);
- }
-
- /* Maybe we don't need to do anything else. */
- if (_encoding.size() <= size) {
- _encoding.resize(size, Char());
- return;
- }
-
- /* Need liveness markings. */
- if (!_liveness_marked)
- mark_liveness(size);
-
- /* Characters below 'size' are 'good'.
- Characters above 'size' are not 'good'. */
- Vector<int> good(_encoding.size(), 1);
- for (Code c = size; c < _encoding.size(); c++)
- good[c] = 0;
-
- /* Characters encoded via base_code are 'good', though. */
- for (Char *ch = _encoding.begin(); ch < _encoding.begin() + size; ch++)
- if (ch->base_code >= size)
- good[ch->base_code] = 1;
-
- /* Some fake characters might point beyond 'size'; remove them too. No
- need for a multipass algorithm since virtual chars never point to
- virtual chars. */
- for (Code c = 0; c < _encoding.size(); c++) {
- if (VirtualChar *vc = _encoding[c].virtual_char) {
- int font_number = 0;
- for (Setting *s = vc->setting.begin(); s != vc->setting.end(); s++)
- if (s->op == Setting::SHOW && font_number == 0 && !good[s->x]) {
- _encoding[c].clear();
- goto bad_virtual_char;
- } else if (s->op == Setting::FONT)
- font_number = s->x;
- }
- if (c < size)
- good[c] = 1;
- bad_virtual_char: ;
- }
-
- /* Certainly none of the later ligatures or kerns will be meaningful. */
- for (Code c = size; c < _encoding.size(); c++) {
- _encoding[c].ligatures.clear();
- _encoding[c].kerns.clear();
- }
-
- /* Remove ligatures and kerns that point beyond 'size', except for valid
- context ligatures. Also remove ligatures that have non-live
- components. */
- /* 30.May.2005 -- Kerns might point involve a too-high character; kill
- them. */
- for (Code c = 0; c < size; c++) {
- Char &ch = _encoding[c];
- for (Ligature *l = ch.ligatures.begin(); l != ch.ligatures.end(); l++)
- if (!good[l->in2] || l->in2 >= size
- || (!good[l->out] && !_encoding[l->out].context_setting(c, l->in2))) {
- *l = ch.ligatures.back();
- ch.ligatures.pop_back();
- l--;
- }
- for (Kern *k = ch.kerns.begin(); k != ch.kerns.end(); k++)
- if (!good[k->in2] || k->in2 >= size) {
- *k = ch.kerns.back();
- ch.kerns.pop_back();
- k--;
- }
- }
-
- /* We are done! */
-}
-
-namespace {
-// preference-sorting extra characters
-enum {
- CONVENTIONAL_F_LIGATURE_SCORE = 4,
- CONVENTIONAL_F_F_LIGATURE_SCORE = 5,
- BASIC_LATIN_LOWER_SCORE = 3,
- BASIC_LATIN_UPPER_SCORE = 4,
- BASIC_LATIN_OTHER_SCORE = 5,
- LATIN1_SUPPLEMENT_SCORE = 6,
- LOW_16_SCORE = 7,
- OTHER_SCORE = 8,
- NOCHAR_SCORE = 100000,
- CONTEXT_PENALTY = 4
-};
-
-static int
-unicode_score(uint32_t u)
-{
- if (u == 0)
- return NOCHAR_SCORE;
- else if (u >= 'a' && u <= 'z')
- return BASIC_LATIN_LOWER_SCORE;
- else if (u >= 'A' && u <= 'Z')
- return BASIC_LATIN_UPPER_SCORE;
- else if (u < 0x0080)
- return BASIC_LATIN_OTHER_SCORE;
- else if (u < 0x0100)
- return LATIN1_SUPPLEMENT_SCORE;
- else if (u < 0x8000)
- return LOW_16_SCORE;
- else
- return OTHER_SCORE;
-}
-
-struct Slot {
- Metrics::Code old_code;
- Metrics::Code new_code;
- Metrics::Glyph glyph;
- int score;
- int lookup_source;
-};
-
-inline bool
-operator<(const Slot &a, const Slot &b)
-{
- // note: will give real glyphs priority over virtual ones at a given
- // priority
- // 6.Jul.2014 -- Make sure you include an old_code comparison; this
- // is required to ensure that a ligature's inputs (which have smaller
- // old_codes) are included whenever its outputs are included.
- if (a.lookup_source != b.lookup_source)
- return a.lookup_source < b.lookup_source;
- if (a.score != b.score)
- return a.score < b.score;
- if (a.glyph != b.glyph)
- return a.glyph < b.glyph;
- return a.old_code < b.old_code;
-}
-}
-
-void
-Metrics::shrink_encoding(int size, const DvipsEncoding &dvipsenc, ErrorHandler *errh)
-{
- /* Move characters around. */
-
- /* Maybe we don't need to do anything. */
- if (_encoding.size() <= size) {
- cut_encoding(size);
- return;
- }
-
- /* Need a list of all ligatures.. */
- Vector<Ligature3> all_ligs;
- all_ligatures(all_ligs);
-
- /* Need liveness markings. */
- if (!_liveness_marked)
- mark_liveness(size, &all_ligs);
-
- /* Score characters by importance. Importance relates first to Unicode
- values, and then recursively to the importances of characters that form
- a ligature. */
-
- /* Create an initial set of scores, based on Unicode values. */
- Vector<int> scores(_encoding.size(), NOCHAR_SCORE);
- for (int i = 0; i < _encoding.size(); i++)
- if (_encoding[i].unicode)
- scores[i] = unicode_score(_encoding[i].unicode);
-
- /* Prefer conventional f-ligatures. */
- bool has_ff = false;
- for (Ligature3* l = all_ligs.begin(); l != all_ligs.end(); ++l)
- if (_encoding[l->in1].unicode == 'f'
- && (_encoding[l->in2].unicode == 'f'
- || _encoding[l->in2].unicode == 'i'
- || _encoding[l->in2].unicode == 'l')) {
- if (scores[l->out] > CONVENTIONAL_F_LIGATURE_SCORE)
- scores[l->out] = CONVENTIONAL_F_LIGATURE_SCORE;
- if (_encoding[l->in2].unicode == 'f') {
- _encoding[l->out].flags |= Char::IS_FF;
- has_ff = true;
- }
- }
- if (has_ff)
- for (Ligature3* l = all_ligs.begin(); l != all_ligs.end(); ++l)
- if (_encoding[l->in1].flag(Char::IS_FF)
- && (_encoding[l->in2].unicode == 'i'
- || _encoding[l->in2].unicode == 'l')
- && scores[l->out] > CONVENTIONAL_F_F_LIGATURE_SCORE)
- scores[l->out] = CONVENTIONAL_F_F_LIGATURE_SCORE;
-
- /* Repeat these steps until you reach a stable set of scores: Score
- ligatures (ligscore = SUM[char scores]), then score characters touched
- only by fakes. */
- bool changed = true;
- while (changed) {
- changed = false;
- for (Ligature3 *l = all_ligs.begin(); l != all_ligs.end(); l++) {
- int score = scores[l->in1] + scores[l->in2];
- if (scores[l->out] > score)
- scores[l->out] = score, changed = true;
- }
-
- for (Code c = 0; c < _encoding.size(); c++)
- if (VirtualChar *vc = _encoding[c].virtual_char) {
- /* Make sure that if this virtual character appears, its parts
- will also appear, by scoring the parts less */
- int score = scores[c] - 1, font_number = 0;
- for (Setting *s = vc->setting.begin(); s != vc->setting.end(); s++)
- if (s->op == Setting::SHOW && font_number == 0
- && score < scores[s->x])
- scores[s->x] = score, changed = true;
- else if (s->op == Setting::FONT)
- font_number = s->x;
- }
- }
-
- /* Rescore intermediates to not be better off than their endpoints. */
- /* XXX multiple layers of intermediate? */
- for (Code c = 0; c < _encoding.size(); c++) {
- Char &ch = _encoding[c];
- if (ch.flag(Char::INTERMEDIATE))
- for (Ligature *l = ch.ligatures.begin(); l != ch.ligatures.end(); l++)
- if (scores[c] < scores[l->out] && !_encoding[l->out].context_setting(c, l->in2))
- scores[c] = scores[l->out];
- }
-
- /* Collect characters that want to be reassigned. */
- Vector<Slot> slots;
- for (Code c = size; c < _encoding.size(); c++)
- if (scores[c] < NOCHAR_SCORE
- && !(_encoding[c].flags & Char::CONTEXT_ONLY)
- && (_encoding[c].flags & (Char::LIVE | Char::BASE_LIVE))) {
- Slot slot = { c, -1, _encoding[c].glyph, scores[c], _encoding[c].lookup_source };
- slots.push_back(slot);
- }
- // Sort them by score, then by glyph.
- std::sort(slots.begin(), slots.end());
-
- /* Prefer their old slots, if available. */
- for (Slot *slot = slots.begin(); slot < slots.end(); slot++)
- if (PermString g = code_name(slot->old_code)) {
- int c = dvipsenc.encoding_of(g);
- if (c >= 0 && _encoding[c].glyph == 0) {
- _encoding[c].swap(_encoding[slot->old_code]);
- slot->new_code = c;
- }
- }
-
- /* List empty slots in two phases: Those not encoded by the input
- encoding, then those encoded by the input encoding (but that character
- wasn't available). */
- Vector<Code> empty_codes;
- for (int want_encoded = 0; want_encoded < 2; want_encoded++)
- for (Code c = 0; c < size; c++)
- if (_encoding[c].base_code < 0
- && dvipsenc.encoded(c) == (bool) want_encoded)
- empty_codes.push_back(c);
-
- /* Then, assign codes to the unencoded characters. */
- int nunencoded = 0;
-
- for (Slot *slot = slots.begin(); slot != slots.end(); slot++) {
- if (slot->new_code >= 0)
- continue;
-
- int needs = (_encoding[slot->old_code].visible_base() ? 1 : 0)
- + (_encoding[slot->old_code].flag(Char::LIVE) ? 2 : 0);
- assert(needs > 0);
-
- Code dest = -1;
- for (Code *h = empty_codes.begin(); h < empty_codes.end() && dest < 0; h++) {
- int haves = (_encoding[*h].base_code < 0 ? 1 : 0)
- + (!_encoding[*h].visible() ? 2 : 0);
- if ((needs & haves) == needs)
- dest = *h;
- }
-
- if (dest >= 0) {
- if (needs & 2) {
- assert(!_encoding[dest].visible());
- _encoding[dest].swap(_encoding[slot->old_code]);
- slot->new_code = dest;
- } else {
- _encoding[slot->old_code].base_code = dest;
- slot->new_code = slot->old_code;
- }
- if (needs & 1) {
- assert(_encoding[dest].base_code < 0 || _encoding[dest].base_code == slot->old_code);
- _encoding[dest].base_code = slot->old_code;
- }
- } else
- nunencoded++;
- }
-
- /* Complain if some characters can't fit. */
- if (nunencoded) {
- // collect names of unencoded glyphs
- Vector<String> unencoded;
- for (Slot *slot = slots.begin(); slot != slots.end(); slot++)
- if (slot->new_code < 0)
- unencoded.push_back(code_name(slot->old_code));
- std::sort(unencoded.begin(), unencoded.end());
- StringAccum sa;
- for (const String* a = unencoded.begin(); a < unencoded.end(); a++)
- sa << *a << ' ';
- sa.pop_back();
- sa.append_break_lines(sa.take_string(), 68, " ");
- sa.pop_back();
- errh->lwarning(" ", (unencoded.size() == 1 ? "not enough room in encoding, ignoring %d glyph" : "not enough room in encoding, ignoring %d glyphs"), unencoded.size());
- errh->lmessage(" ", "(\
-The font uses more glyphs than the encoding has available slots,\n\
-so these glyphs have been left out:\n%s\n\
-To select specific glyphs, add them to the input encoding.)", sa.c_str());
- }
-
- /* Reencode changed slots. */
- Vector<Code> reencoding;
- for (Code c = 0; c < _encoding.size(); c++)
- reencoding.push_back(c);
- for (Slot *s = slots.begin(); s != slots.end(); s++)
- if (s->new_code >= 0)
- reencoding[s->old_code] = s->new_code;
- reencode(reencoding);
-
- check();
-}
-
-void
-Metrics::make_base(int size)
-{
- Vector<Code> reencoding;
- for (Code c = 0; c < size && c < _encoding.size(); c++) {
- Char &ch = _encoding[c];
- if (ch.base_code >= 0 && ch.base_code != c) {
- if (!reencoding.size())
- for (Code cc = 0; cc < _encoding.size(); cc++)
- reencoding.push_back(cc);
- reencoding[ch.base_code] = c;
- reencoding[c] = ch.base_code;
- _encoding[c].swap(_encoding[ch.base_code]);
- }
- if (ch.virtual_char) // remove it
- ch.clear();
- }
- if (reencoding.size()) {
- reencode(reencoding);
- cut_encoding(size);
- }
- check();
-}
-
-
-/*****************************************************************************/
-/* output */
-
-bool
-Metrics::need_virtual(int size) const
-{
- if (size > _encoding.size())
- size = _encoding.size();
- for (const Char *ch = _encoding.begin(); ch < _encoding.begin() + size; ch++)
- if (ch->glyph /* actually encoded */
- && (ch->pdx || ch->pdy || ch->adx || ch->virtual_char))
- return true;
- return false;
-}
-
-bool
-Metrics::need_base()
-{
- if (!_liveness_marked)
- mark_liveness(_encoding.size());
- for (const Char *ch = _encoding.begin(); ch < _encoding.end(); ch++)
- if ((ch->flags & Char::BASE_LIVE) && ch->glyph != _boundary_glyph)
- return true;
- return false;
-}
-
-bool
-Metrics::setting(Code code, Vector<Setting> &v, SettingMode sm) const
-{
- extern int letterspace;
-
- if (!(sm & SET_KEEP))
- v.clear();
-
- if (!valid_code(code) || _encoding[code].glyph == 0)
- return false;
-
- const Char &ch = _encoding[code];
-
- if (const VirtualChar *vc = ch.virtual_char) {
- bool good = true;
- int font_number = 0;
-
- if (ch.pdx != 0 || ch.pdy != 0)
- v.push_back(Setting(Setting::MOVE, ch.pdx, ch.pdy));
-
- for (const Setting *s = vc->setting.begin(); s != vc->setting.end(); s++)
- switch (s->op) {
- case Setting::MOVE:
- case Setting::RULE:
- case Setting::PUSH:
- case Setting::POP:
- case Setting::SPECIAL:
- v.push_back(*s);
- break;
- case Setting::FONT:
- v.push_back(*s);
- font_number = s->x;
- break;
- case Setting::SHOW:
- if (font_number == 0)
- good &= setting(s->x, v, (SettingMode)(sm | SET_KEEP));
- else
- v.push_back(*s);
- break;
- case Setting::KERN:
- case Setting::KERNX:
- if (sm & SET_INTERMEDIATE)
- v.push_back(*s);
- else if (font_number == 0 && s > vc->setting.begin()
- && s + 1 < vc->setting.end()
- && s[-1].op == Setting::SHOW
- && s[1].op == Setting::SHOW) {
- int k = kern(s[-1].x, s[1].x);
- if (s->op == Setting::KERNX)
- k -= letterspace;
- if (k)
- v.push_back(Setting(Setting::MOVE, k, 0));
- }
- break;
- }
-
- if (ch.pdy != 0 || ch.adx - ch.pdx != 0)
- v.push_back(Setting(Setting::MOVE, ch.adx - ch.pdx, -ch.pdy));
- return good;
-
- } else if (ch.base_code >= 0) {
- if (ch.pdx != 0 || ch.pdy != 0)
- v.push_back(Setting(Setting::MOVE, ch.pdx, ch.pdy));
-
- v.push_back(Setting(Setting::SHOW, ch.base_code, ch.glyph));
-
- if (ch.pdy != 0 || ch.adx - ch.pdx != 0)
- v.push_back(Setting(Setting::MOVE, ch.adx - ch.pdx, -ch.pdy));
- return true;
-
- } else
- return false;
-}
-
-int
-Metrics::ligatures(Code in1, Vector<Code> &in2, Vector<Code> &out, Vector<int> &context) const
-{
- in2.clear();
- out.clear();
- context.clear();
-
- const Char &in1ch = _encoding[in1];
- for (const Ligature *l = in1ch.ligatures.begin(); l != in1ch.ligatures.end(); l++) {
- in2.push_back(l->in2);
- const Char &outch = _encoding[l->out];
- if (outch.context_setting(in1, l->in2)) {
- if (in1 == outch.built_in1 && l->in2 == outch.built_in2)
- in2.pop_back();
- else if (in1 == outch.built_in1) {
- out.push_back(outch.built_in2);
- context.push_back(-1);
- } else {
- out.push_back(outch.built_in1);
- context.push_back(1);
- }
- } else {
- out.push_back(l->out);
- context.push_back(0);
- }
- }
-
- return in2.size();
-}
-
-int
-Metrics::kerns(Code in1, Vector<Code> &in2, Vector<int> &kern) const
-{
- in2.clear();
- kern.clear();
-
- const Char &in1ch = _encoding[in1];
- for (const Kern *k = in1ch.kerns.begin(); k != in1ch.kerns.end(); k++)
- if (k->kern != 0) {
- in2.push_back(k->in2);
- kern.push_back(k->kern);
- }
-
- return in2.size();
-}
-
-
-/*****************************************************************************/
-/* debugging */
-
-void
-Metrics::unparse(const Char *ch) const
-{
- Code c;
- if (ch >= _encoding.begin() && ch < _encoding.end())
- c = ch - _encoding.begin();
- else
- c = -1;
- fprintf(stderr, "%4d/%s%s%s%s%s%s\n", c, code_str(c),
- (ch->flag(Char::LIVE) ? " [L]" : ""),
- (ch->flag(Char::BASE_LIVE) ? " [B]" : ""),
- (ch->flag(Char::CONTEXT_ONLY) ? " [C]" : ""),
- (ch->flag(Char::BUILT) ? " [!]" : ""),
- (ch->base_code >= 0 ? " <BC>" : ""));
- if (ch->base_code >= 0 && ch->base_code != c)
- fprintf(stderr, "\tBASE %d/%s\n", ch->base_code, code_str(ch->base_code));
- if (const VirtualChar *vc = ch->virtual_char) {
- fprintf(stderr, "\t*");
- int curfont = 0;
- for (const Setting *s = vc->setting.begin(); s != vc->setting.end(); s++)
- switch (s->op) {
- case Setting::FONT:
- fprintf(stderr, " {F%d}", s->x);
- curfont = s->x;
- break;
- case Setting::SHOW:
- fprintf(stderr, " %d", s->x);
- if (curfont == 0)
- fprintf(stderr, "/%s", code_str(s->x));
- break;
- case Setting::KERN:
- fprintf(stderr, " <>");
- break;
- case Setting::MOVE:
- fprintf(stderr, " <%+d,%+d>", s->x, s->y);
- break;
- case Setting::RULE:
- fprintf(stderr, " [%d,%d]", s->x, s->y);
- break;
- case Setting::PUSH:
- fprintf(stderr, " (");
- break;
- case Setting::POP:
- fprintf(stderr, " )");
- break;
- case Setting::SPECIAL:
- fprintf(stderr, " S{%s}", s->s.c_str());
- break;
- }
- fprintf(stderr, " ((%d/%s, %d/%s))\n", ch->built_in1, code_str(ch->built_in1), ch->built_in2, code_str(ch->built_in2));
- }
- for (const Ligature *l = ch->ligatures.begin(); l != ch->ligatures.end(); l++)
- fprintf(stderr, "\t[%d/%s => %d/%s]%s\n", l->in2, code_str(l->in2), l->out, code_str(l->out), (_encoding[l->out].context_setting(c, l->in2) ? " [C]" : ""));
-#if 0
- for (const Kern *k = ch->kerns.begin(); k != ch->kerns.end(); k++)
- fprintf(stderr, "\t{%d/%s %+d}\n", k->in2, code_str(k->in2), k->kern);
-#endif
-}
-
-void
-Metrics::unparse() const
-{
- for (const Char *ch = _encoding.begin(); ch < _encoding.end(); ch++)
- if (ch->glyph)
- unparse(ch);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
deleted file mode 100644
index 4e03246d53b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/metrics.hh
+++ /dev/null
@@ -1,288 +0,0 @@
-#ifndef OTFTOTFM_METRICS_HH
-#define OTFTOTFM_METRICS_HH
-#include <efont/otfgsub.hh>
-#include <efont/otfgpos.hh>
-#include "setting.hh"
-namespace Efont { class CharstringProgram; }
-class DvipsEncoding;
-class GlyphFilter;
-
-class Metrics { public:
-
- typedef int Code;
- typedef Efont::OpenType::Glyph Glyph;
- enum { VIRTUAL_GLYPH = 0x10000 };
-
- typedef Efont::OpenType::Substitution Substitution;
- typedef Efont::OpenType::Positioning Positioning;
-
- Metrics(const Efont::CharstringProgram *, int nglyphs);
- ~Metrics();
-
- void check() const;
-
- Glyph boundary_glyph() const { return _boundary_glyph; }
- Glyph emptyslot_glyph() const { return _emptyslot_glyph; }
-
- String coding_scheme() const { return _coding_scheme; }
- void set_coding_scheme(const String &s) { _coding_scheme = s; }
-
- int design_units() const { return _design_units; }
- int units_per_em() const { return _units_per_em; }
- void set_design_units(int du) { _design_units = du; }
-
- int n_mapped_fonts() const { return _mapped_fonts.size();}
- const Efont::CharstringProgram *mapped_font(int i) const { return _mapped_fonts[i]; }
- const String &mapped_font_name(int i) const { return _mapped_font_names[i]; }
- int add_mapped_font(const Efont::CharstringProgram *, const String &);
-
- inline int encoding_size() const { return _encoding.size(); }
- inline bool valid_code(Code) const;
- inline bool nonvirtual_code(Code) const;
- PermString code_name(Code) const;
- inline const char *code_str(Code) const;
-
- inline Glyph glyph(Code code) const;
- inline uint32_t unicode(Code code) const;
- inline Code encoding(Glyph g, Code after) const;
- Code unicode_encoding(uint32_t uni) const;
- Code force_encoding(Glyph g, int lookup_source = -1);
- void encode(Code code, uint32_t uni, Glyph g);
- void encode_virtual(Code, PermString, uint32_t uni, const Vector<Setting> &, bool base_char);
-
- void add_altselector_code(Code, int altselector_type);
- bool altselectors() const { return _altselectors.size() > 0; }
-
- inline bool was_base_glyph(Code) const;
- inline Code base_code(Code) const;
- inline Glyph base_glyph(Code) const;
- bool base_glyphs(Vector<Glyph> &, int size) const;
-
- void add_ligature(Code in1, Code in2, Code out);
- Code pair_code(Code, Code, int lookup_source = -1);
- void add_kern(Code in1, Code in2, int kern);
- void set_kern(Code in1, Code in2, int kern);
- void add_single_positioning(Code, int pdx, int pdy, int adx);
-
- enum { CODE_ALL = 0x7FFFFFFF };
- void remove_ligatures(Code in1, Code in2);
- int reencode_right_ligkern(Code old_in2, Code new_in2);
-
- int apply(const Vector<Substitution>&, bool allow_single, int lookup, const GlyphFilter&, const Vector<PermString>& glyph_names);
- void apply_alternates(const Vector<Substitution>&, int lookup, const GlyphFilter&, const Vector<PermString>& glyph_names);
- int apply(const Vector<Positioning>&);
-
- void apply_base_encoding(const String &font_name, const DvipsEncoding &, const Vector<int> &mapping);
-
- void cut_encoding(int size);
- void shrink_encoding(int size, const DvipsEncoding &, ErrorHandler *);
- void make_base(int size);
-
- bool need_virtual(int size) const;
- bool need_base();
- enum SettingMode { SET_NONE = 0, SET_KEEP = 1, SET_INTERMEDIATE = 3 };
- bool setting(Code, Vector<Setting> &, SettingMode = SET_NONE) const;
- int ligatures(Code in1, Vector<Code> &in2, Vector<Code> &out, Vector<int> &context) const;
- int kerns(Code in1, Vector<Code> &in2, Vector<int> &kern) const;
- int kern(Code in1, Code in2) const;
-
- void unparse() const;
-
- struct Ligature {
- Code in2;
- Code out;
- Ligature(Code in2_, Code out_) : in2(in2_), out(out_) { }
- };
-
- struct Kern {
- Code in2;
- int kern;
- Kern(Code in2_, int kern_) : in2(in2_), kern(kern_) { }
- };
-
- struct VirtualChar {
- PermString name;
- Vector<Setting> setting;
- };
-
- struct Ligature3 {
- Code in1;
- Code in2;
- Code out;
- Ligature3(Code in1_, Code in2_, Code out_) : in1(in1_), in2(in2_), out(out_) { }
- String unparse(const Metrics& m) const;
- };
-
- private:
-
- struct Char {
- Glyph glyph;
- Code base_code;
- uint32_t unicode;
- Vector<Ligature> ligatures;
- Vector<Kern> kerns;
- VirtualChar *virtual_char;
- int pdx;
- int pdy;
- int adx;
- Code built_in1;
- Code built_in2;
- int lookup_source;
- enum { BUILT = 1, INTERMEDIATE = 2, CONTEXT_ONLY = 4, LIVE = 8,
- BASE_LIVE = 16, BASE_REP = 32, IS_FF = 64 };
- int flags;
-
- Char() : virtual_char(0) { clear(); }
- void clear();
- void swap(Char &);
- bool visible() const { return glyph != 0; }
- bool visible_base() const { return glyph != 0 && glyph != VIRTUAL_GLYPH; }
- bool flag(int f) const { return (flags & f) != 0; }
- inline bool base_glyph() const;
- bool context_setting(Code in1, Code in2) const;
- };
-
- Vector<Char> _encoding;
- mutable Vector<int> _emap;
-
- Glyph _boundary_glyph;
- Glyph _emptyslot_glyph;
-
- Vector<Kern> _altselectors;
-
- String _coding_scheme;
- int _design_units;
- int _units_per_em;
-
- bool _liveness_marked : 1;
-
- Vector<const Efont::CharstringProgram *> _mapped_fonts;
- Vector<String> _mapped_font_names;
-
- Metrics(const Metrics &); // does not exist
- Metrics &operator=(const Metrics &); // does not exist
-
- inline void assign_emap(Glyph, Code);
- Code hard_encoding(Glyph, Code) const;
- bool next_encoding(Vector<Code> &codes, const Vector<Glyph> &glyphs) const;
-
- Ligature *ligature_obj(Code, Code);
- Kern *kern_obj(Code, Code);
- inline void new_ligature(Code, Code, Code);
- inline void repoint_ligature(Code, Ligature *, Code);
-
- friend bool operator<(const Ligature3 &, const Ligature3 &);
- void all_ligatures(Vector<Ligature3> &) const;
- void mark_liveness(int size, const Vector<Ligature3> * = 0);
- void reencode(const Vector<Code> &);
-
- class ChangedContext;
- void apply_ligature(const Vector<Code> &, const Substitution *, int lookup);
- void apply_single(Code cin, const Substitution *s, int lookup,
- ChangedContext &ctx, const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names);
- void apply_simple_context_ligature(const Vector<Code> &codes,
- const Substitution *s, int lookup, ChangedContext &ctx,
- const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names);
- void apply_alternates_single(Code cin, const Substitution *s, int lookup,
- const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names);
- void apply_alternates_ligature(const Vector<Code> &codes,
- const Substitution *s, int lookup,
- const GlyphFilter &glyph_filter,
- const Vector<PermString> &glyph_names);
-
- void unparse(const Char *) const;
-
-};
-
-
-inline bool
-Metrics::valid_code(Code code) const
-{
- return code >= 0 && code < _encoding.size();
-}
-
-inline bool
-Metrics::nonvirtual_code(Code code) const
-{
- return code >= 0 && code < _encoding.size() && !_encoding[code].virtual_char;
-}
-
-inline Metrics::Glyph
-Metrics::glyph(Code code) const
-{
- if (code < 0 || code >= _encoding.size())
- return 0;
- else
- return _encoding[code].glyph;
-}
-
-inline uint32_t
-Metrics::unicode(Code code) const
-{
- if (code < 0 || code >= _encoding.size())
- return 0;
- else
- return _encoding[code].unicode;
-}
-
-inline Metrics::Glyph
-Metrics::base_glyph(Code code) const
-{
- if (code < 0 || code >= _encoding.size() || _encoding[code].base_code < 0)
- return 0;
- else
- return _encoding[code].glyph;
-}
-
-inline Metrics::Code
-Metrics::base_code(Code code) const
-{
- if (code < 0 || code >= _encoding.size())
- return 0;
- else
- return _encoding[code].base_code;
-}
-
-inline Metrics::Code
-Metrics::encoding(Glyph g, Code after) const
-{
- Code c;
- if (g >= 0 && g < _emap.size() && (c = _emap.at_u(g)) >= -1)
- return c < 0 || c >= after ? c : -1;
- else
- return hard_encoding(g, after);
-}
-
-inline void
-Metrics::assign_emap(Glyph g, Code code)
-{
- if (g >= _emap.size())
- _emap.resize(g + 1, -1);
- _emap[g] = (_emap[g] == -1 || _emap[g] == code ? code : -2);
-}
-
-inline const char *
-Metrics::code_str(Code code) const
-{
- return code_name(code).c_str();
-}
-
-inline bool
-Metrics::Char::base_glyph() const
-{
- return glyph == VIRTUAL_GLYPH ? flags & BASE_REP : glyph != 0;
-}
-
-inline bool
-Metrics::was_base_glyph(Code code) const
-{
- if (code < 0 || code >= _encoding.size())
- return 0;
- else
- return _encoding[code].base_glyph();
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
deleted file mode 100644
index 6ecb0a7591f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.1
+++ /dev/null
@@ -1,1669 +0,0 @@
-'\"t
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.de Bp
-.IP \(bu 3n
-..
-.TH OTFTOTFM 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-otftotfm \- create TeX font metrics from OpenType fonts
-.SH SYNOPSIS
-.B otftotfm
-\%[\fB\-a\fR]
-\%[\fBoptions\fR]
-\%\fIfontfile\fR [\fItexname\fR]
-'
-.SH DESCRIPTION
-.BR Otftotfm
-creates the font metric and encoding files required to use an OpenType font
-with TeX. You supply an OpenType ".otf" or ".ttf" font file,
-a base ".enc" encoding,
-and a TeX name "\fItexname\fR" for the resulting font, and say which
-OpenType features should be turned on. Then
-.B otftotfm
-generates and installs the corresponding TeX-related metric files (".tfm"
-TeX font metrics, ".vf" virtual fonts, and ".enc" encoding files). It
-works on both PostScript-flavored and TrueType-flavored OpenType fonts,
-although TrueType-flavor support will only work easily with pdftex.
-.LP
-The easiest way to use
-.B otftotfm
-is with the
-.B \-a
-option; see Automatic Mode below. Without
-.BR \-a ,
-.B otftotfm
-writes all its output files to the current directory.
-.LP
-After running "\fBotftotfm\fR \fIfontfile\fR \fItexname\fR" and
-installing the results (manually or with
-.BR \-a ),
-you can use the OpenType font in plain TeX with a command like this:
-.Sp
-.nf
- \efont\emyfont=\fItexname\fR at 10pt
- {\emyfont This text uses the OpenType font.}
-.fi
-.Sp
-LaTeX users will generally make a ".fd" input file so that commands like
-"\erenewcommand{\ermdefault}{TeXName}" work correctly. See the EXAMPLE
-section for more; check the DIAGNOSTICS and FREQUENTLY ASKED QUESTIONS
-sections if you have trouble.
-'
-.SS "OpenType Features"
-.LP
-OpenType fonts support optional
-.I features
-that change their appearance. Use the
-.B \-f
-option to turn on selected features. For example, "\fB\-f\fRsmcp" replaces
-lower-case letters with the corresponding small capitals, in fonts that
-support this.
-'
-.PP
-You'll generally provide at least the "\fB\-f\fRkern" and "\fB\-f\fRliga"
-options, which activate pair kerns and f-ligatures. Other interesting
-features include "\fB\-f\fRcpsp", for capital spacing; "\fB\-f\fRdlig", for
-optional ligatures; "\fB\-f\fRlnum", "\fB\-f\fRonum", "\fB\-f\fRpnum", and
-"\fB\-f\fRtnum", to control digit glyphs; "\fB\-f\fRsmcp", for small
-capitals; "\fB\-f\fRswsh", for swash variants; and "\fB\-f\fRcswh", for
-contextual swash. See the FEATURE DIRECTORY section below for more. The
-.M otfinfo 1
-program will report which features a font supports; run "\fBotfinfo\fR
-\fB\-f\fR \fIfontfile\fR".
-'
-.PP
-Feature options can also apply a feature to a subset of characters in the
-font. For example, "\fB\-\-lf\fR smcp"
-.I only
-replaces letters with small capitals, whereas "\fB\-f\fRsmcp" might
-additionally replace digits and punctuation marks with small-capital
-versions.
-'
-.SS Automatic Mode
-.PP
-Automatic mode, triggered by the
-.BR \-a / \-\-automatic
-option, installs font metrics and encoding files where TeX can find them,
-and additionally installs a Type 1 font and mapping for
-.M dvips 1 .
-This requires a TeX installation that follows the TeX Directory Structure
-standard (http://www.tug.org/tds/), such as most Unix TeX installations.
-'
-.PP
-Automatic mode should run seamlessly out of the box.
-.B Otftotfm
-will install metrics files, encodings, map files, and Type\~1 fonts into
-.I $HOME/.texmf-var
-or any other writable TEXMF directory, and run
-.M updmap 1
-to update the global lists of installed fonts. (On older teTeX
-installations, you may first need to copy the system's
-.I updmap.cfg
-file to
-.I $HOME/texmf/web2c
-and run
-.M mktexlsr 1 .
-On newer TeXLive installations, you may need to set the TEXMFVAR environment
-variable.)
-You can then run "\fBotftotfm\fR
-.B \-a
-.IR fontfile
-.IR texname \&"
-and immediately refer to the font in TeX using the
-.I texname
-you supplied. Again, you will have to write ".fd" files and/or typescripts
-to make the font conveniently accessible from LaTeX or ConTeXt. See the
-DIAGNOSTICS section if you have problems with these instructions.
-'
-.PP
-In automatic mode,
-.B otftotfm
-searches your $TEXMFVAR or $TEXMF path for a writable directory, then
-installs files under that directory tree as follows:
-'
-.TS
-l l l .
-\fBFile type\fR \fBDirectory\fR \fBFilename\fR
-TFM TEXMF/fonts/tfm/\fIvendor\fR/\fItypeface\fR/ \fItexname\fR[\-\-base].tfm
-VF TEXMF/fonts/vf/\fIvendor\fR/\fItypeface\fR/ \fItexname\fR.vf
-PL TEXMF/fonts/pl/\fIvendor\fR/\fItypeface\fR/ \fItexname\fR[\-\-base].pl
-VPL TEXMF/fonts/vpl/\fIvendor\fR/\fItypeface\fR/ \fItexname\fR.vpl
-encoding TEXMF/fonts/enc/dvips/\fIvendor\fR/ a_\fIsignature\fR.enc
- or TEXMF/dvips/\fIvendor\fR/
-font map TEXMF/fonts/map/dvips/\fIvendor\fR/ \fIvendor\fR.map
- or TEXMF/dvips/\fIvendor\fR/
-.TE
-.PP
-"TEXMF" stands for the writable TEXMF directory. \fITexname\fR is the
-font name supplied as
-.BR otftotfm 's
-second argument. The \fIvendor\fR and \fItypeface\fR strings are required
-by TDS; they default to "lcdftools" and the font's family name,
-respectively, but see the
-.B \-\-vendor
-and
-.B \-\-typeface
-options. \fISignature\fR is an opaque 6-character encoding signature.
-.PP
-.B Otftotfm
-also installs a font file suitable for printing. PostScript-flavored
-OpenType fonts are translated to Type 1 format and installed as PFB fonts.
-TrueType-flavored fonts are normally installed as is, since pdftex and
-pdflatex can read TrueType directly; but if you provide the
-.B \-\-type42
-option,
-.B otftotfm
-will translate TrueType fonts to Type 42 format, which dvips understands.
-.B Otftotfm
-does not overwrite existing font files.
-.PP
-The installation paths are as follows, where \fIPSname\fR is the font's
-PostScript name.
-.TS
-l l l .
-PFB TEXMF/fonts/type1/\fIvendor\fR/\fItypeface\fR/ \fIPSname\fR.pfb
-TrueType TEXMF/fonts/truetype/\fIvendor\fR/\fItypeface\fR/ \fIfontfile\fR
-Type 42 TEXMF/fonts/type42/\fIvendor\fR/\fItypeface\fR/ \fIPSname\fR.t42
-.TE
-.PP
-You can override these directories with environment variables and options
-as follows. Options take precedence over environment variables.
-'
-.TS
-l l l .
-\fBFile type\fR \fBEnvironment variable\fR \fBOption\fR
-TFM TFMDESTDIR \-\-tfm\-directory
-VF VFDESTDIR \-\-vf\-directory
-PL PLDESTDIR \-\-pl\-directory
-VPL VPLDESTDIR \-\-vpl\-directory
-encoding ENCODINGDESTDIR \-\-encoding\-directory
-PFB T1DESTDIR \-\-type1\-directory
-TrueType TRUETYPEDESTDIR \-\-truetype\-directory
-Type 42 T42DESTDIR \-\-type42\-directory
-font map \- \-\-map\-file
-.TE
-.PP
-.B Otftotfm
-will update the
-.I TEXMF/ls-R
-file when installing files under TEXMF. It will also run the
-.M updmap 1
-program after changing a map file, unless the
-.B \-\-no\-updmap
-option was supplied. However, if an executable file called
-.IR TEXMF/dvips/updmap
-exists, this file is executed (from the
-.I TEXMF/dvips
-directory) rather than the global
-.BR updmap .
-This is so you can write a fast, customized version of
-.B updmap
-if desired.
-'
-.SH EXAMPLE
-This section uses MinionPro to show one way to install OpenType fonts for
-LaTeX. We begin with six fonts: "MinionPro-Regular.otf",
-"MinionPro-It.otf", "MinionPro-Semibold.otf", "MinionPro-SemiboldIt.otf",
-"MinionPro-Bold.otf", and "MinionPro-BoldIt.otf".
-.PP
-Our first task is to decide how to encode the fonts. The "encoding scheme"
-is used by TeX to decide how to typeset accents and symbols like "$". The
-"LY1" encoding scheme has reasonable accent support and is a good choice
-for many OpenType fonts. LY1 corresponds to the "texnansx.enc" encoding
-file, so we will supply
-.B otftotfm
-with the "\fB\-e\fR texnansx" option.
-.RS
-.LP
-Expert note: Strictly speaking, LY1 corresponds to the "texnansi.enc"
-encoding file. Since the "texnansx.enc" version omits duplicate
-characters, it has more room for font-specific glyphs and is generally a
-better choice; but if you plan to type characters like "ae" directly into
-your editor, rather than using TeX commands like \eae, you should use
-"texnansi.enc".
-.RE
-.PP
-Next, we decide on a naming scheme for the font metric files. Let's use
-the OpenType font names as a base. (There's generally no need to follow
-the six-character "Karl Berry" naming scheme.) Just in case we come back
-later and add a different encoding scheme, we'll prepend "LY1--" to each
-name.
-.PP
-We're now ready to run
-.B otftotfm
-for the first set of fonts. Note the "\fB\-f\fRkern \fB\-f\fRliga"
-options, which access pair kerns and the default "f" ligatures.
-.Sp
-.nf
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-Regular.otf \e
- \fB\-f\fRkern \fB\-f\fRliga LY1\-\-MinionPro\-Regular
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-It.otf \e
- \fB\-f\fRkern \fB\-f\fRliga LY1\-\-MinionPro\-It
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-Semibold.otf \e
- \fB\-f\fRkern \fB\-f\fRliga LY1\-\-MinionPro\-Semibold
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-SemiboldIt.otf \e
- \fB\-f\fRkern \fB\-f\fRliga LY1\-\-MinionPro\-SemiboldIt
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-Bold.otf \e
- \fB\-f\fRkern \fB\-f\fRliga LY1\-\-MinionPro\-Bold
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-BoldIt.otf \e
- \fB\-f\fRkern \fB\-f\fRliga LY1\-\-MinionPro\-BoldIt
-.fi
-.Sp
-The small-caps fonts are generated with an additional "\fB\-f\fRsmcp"
-option. We append "\-\-fsmcp" to the font metric names as well,
-differentiating them from the regular fonts. Although MinionPro's italic
-fonts support small-caps, the LaTeX font selection scheme can't access them
-easily, so we've left them off.
-.Sp
-.nf
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-Regular.otf \e
- \fB\-f\fRkern \fB\-f\fRliga \fB\-f\fRsmcp LY1\-\-MinionPro-Regular\-\-fsmcp
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-Semibold.otf \e
- \fB\-f\fRkern \fB\-f\fRliga \fB\-f\fRsmcp LY1\-\-MinionPro\-Semibold\-\-fsmcp
- \fBotftotfm\fR \fB\-a\fR \fB\-e\fR texnansx MinionPro\-Bold.otf \e
- \fB\-f\fRkern \fB\-f\fRliga \fB\-f\fRsmcp LY1\-\-MinionPro\-Bold\-\-fsmcp
-.fi
-.Sp
-To get old-style numerals, just add the "\fB\-f\fRonum" option to each
-invocation -- and, to reduce confusion, append "\-\-fonum" to the font metric
-names.
-.PP
-At this point, all our font metric files are installed, and it's finally
-time to create the ".fd" file. (The ".fd" format is documented in
-.IR "The LaTeX Companion" .)
-Let's call the LaTeX font family "MinionPro". Then the ".fd" file is
-"LY1MinionPro.fd", and it contains:
-.Sp
-.nf
- \eDeclareFontFamily{LY1}{MinionPro}{}
- \eDeclareFontShape{LY1}{MinionPro}{m}{n}%
- { <\-> LY1\-\-MinionPro\-Regular }{}
- \eDeclareFontShape{LY1}{MinionPro}{m}{it}{ <\-> LY1\-\-MinionPro\-It }{}
- \eDeclareFontShape{LY1}{MinionPro}{m}{sc}%
- { <\-> LY1\-\-MinionPro\-Regular\-\-fsmcp }{}
- \eDeclareFontShape{LY1}{MinionPro}{sb}{n}%
- { <\-> LY1\-\-MinionPro\-Semibold }{}
- \eDeclareFontShape{LY1}{MinionPro}{sb}{it}%
- { <\-> LY1\-\-MinionPro\-SemiboldIt }{}
- \eDeclareFontShape{LY1}{MinionPro}{sb}{sc}%
- { <\-> LY1\-\-MinionPro\-Semibold\-\-fsmcp }{}
- \eDeclareFontShape{LY1}{MinionPro}{b}{n}{ <\-> LY1\-\-MinionPro-Bold }{}
- \eDeclareFontShape{LY1}{MinionPro}{b}{it}%
- { <\-> LY1\-\-MinionPro\-BoldIt }{}
- \eDeclareFontShape{LY1}{MinionPro}{b}{sc}%
- { <\-> LY1\-\-MinionPro\-Bold\-\-fsmcp }{}
- \eDeclareFontShape{LY1}{MinionPro}{bx}{n}%
- { <\-> ssub * MinionPro/b/n }{}
- \eDeclareFontShape{LY1}{MinionPro}{bx}{it}%
- { <\-> ssub * MinionPro/b/it }{}
- \eDeclareFontShape{LY1}{MinionPro}{bx}{sc}%
- { <\-> ssub * MinionPro/b/sc }{}
-.fi
-.PP
-We're now ready to use MinionPro in LaTeX, with lines like this in the
-document preamble:
-.Sp
-.nf
- \eusepackage[LY1]{fontenc}
- \erenewcommand{\ermdefault}{MinionPro}
- \erenewcommand{\ebfdefault}{b}
-.fi
-.PP
-Of course, we're free at any time to add more MinionPro variants with
-.BR otftotfm ;
-they'll become accessible to LaTeX as soon as we edit the "MinionPro.fd"
-file.
-'
-.SH OPTIONS
-With long options, you need type only as many characters as will make the
-option unique.
-.SS Font Feature and Transformation Options
-.PD 0
-.TP 5
-.BI \-s " script\fR[.\fIlang\fR], " \-\-script= "script\fR[.\fIlang\fR]"
-Apply features suitable to the script system
-.I script
-and language system
-.IR lang .
-Scripts and language systems are two-to-four-letter names assigned by
-Microsoft and Adobe. Examples include "latn" (Latin script), "grek" (Greek
-script), and "yi.YIC" (Yi script with classic characters). If
-.I lang
-is not specified,
-.B otftotfm
-will use the default language system for that
-script. You can give this option multiple times. Run "\fBotfinfo\fR
-\-s \fIfont\fR" to see the list of scripts and languages a
-font supports. Defaults to "latn".
-'
-.Sp
-.TP 5
-.BI \-f " feature\fR, " \-\-feature= "feature"
-Activate the feature named
-.IR feature .
-Features are four-letter names assigned by Microsoft and Adobe; they are
-meant to correspond to font behaviors, such as kerning or small-capitals.
-Examples include "liga" (default ligatures), "dlig" (discretionary
-ligatures), "kern" (kerning), and "c2sc" (replacing capitals with small
-capitals). Give this option multiple times to apply multiple features. Run
-"\fBotfinfo\fR \-f [\-\-script option] \fIfont\fR" to see the list
-of features a font supports for a specified script.
-Defaults to any features required by the selected scripts.
-'
-.Sp
-.TP 5
-.BI \-\-lf " feature\fR, " \-\-letter\-feature= "feature"
-Activate the feature named
-.IR feature ,
-but only for letters. For instance, the "\-f smcp" option will apply the
-small-caps feature to all characters in the encoding; this may result in
-changes to punctuation and numbers as well as letters. The "\-\-lf smcp"
-option will apply the small-caps feature only to letters, meaning
-characters with the "Letter" Unicode property.
-'
-.Sp
-.TP 5
-.BI \-\-subs\-filter " pattern"
-.TP 5
-.BI \-\-include\-subs " pattern"
-.TP 5
-.BI \-\-exclude\-subs " pattern"
-.TP 5
-.BI \-\-clear\-subs
-Limit the characters that
-.B otftotfm
-will substitute. Substitution is allowed on an input character if it
-matches at least one of the
-.B \-\-include
-patterns, and none of the
-.B \-\-exclude
-patterns. Each pattern applies to all following features, except that the
-.B \-\-clear
-option clears any accumulated patterns. The
-.BI \-\-subs\-filter " pattern"
-option acts like
-.B \-\-clear\-subs
-followed by
-.BI \-\-include\-subs " pattern\fR. "
-For pattern syntax, see GLYPH PATTERNS, below.
-.Sp
-In the command line below, the \&'<Number>' pattern will force the "onum"
-feature to substitute only numbers (and not, for example, punctuation).
-The "salt" feature can still substitute any character.
-.nf
- \fBotftotfm\fR \fB\-f\fRsalt \fB\-\-include\-subs\fR="<Number>" \fB\-f\fRonum \.\.\.
-.fi
-'
-.Sp
-.TP 5
-.BI \-E " fac\fR, " \-\-extend= fac
-Widen, or extend, the font by a factor of
-.IR fac .
-Like
-.M afm2tfm 1 's
-.B \-e
-option.
-'
-.Sp
-.TP 5
-.BI \-S " amt\fR, " \-\-slant= amt
-Oblique, or slant, the font by
-.IR amt .
-Like
-.M afm2tfm 1 's
-.B \-s
-option.
-'
-.Sp
-.TP 5
-.BI \-L " amt\fR, " \-\-letterspacing= amt
-Letterspace each character by
-.IR amt
-units, where 1000 units equals one em. The width of each character
-increases by
-.IR amt ,
-with half the space distributed to each sidebearing. Boundary-character
-kerns are added to maintain alignment at the ends of lines.
-'
-.Sp
-.TP 5
-.BR \-\-math\-spacing "[=\fIskewchar\fR]"
-Ignore the font's claimed character widths, deriving horizontal metrics
-from bounding boxes instead. This results in similar spacing as the
-Computer Modern Math Italic font, with increased sidebearings for letters
-like f and j.
-.Sp
-If you provide
-.IR skewchar ,
-a number between 0 and 255 or a single character, then
-.B otftotfm
-adds heuristically-derived kerns to the font that may improve accent
-positions in math mode. To get the benefits, you must tell TeX about the
-.I skewchar
-with a command like "\eskewchar\efont=\fIskewchar\fR".
-'
-.Sp
-.TP 5
-.BI "\-k " "N\fR, " \-\-min\-kern= N
-Only output kerning pairs whose absolute value is
-.IR N
-or larger. Larger minimum kerns make kerning less precise, but shrink the
-output TFM file. The default minimum kern is 2.0, or 0.002 em.
-'
-.Sp
-.TP 5
-.BI \-\-space\-factor= fac
-Scale the width of the inter-word space by a factor of
-.IR fac .
-'
-.Sp
-.TP 5
-.BI \-\-design\-size= size
-Set the output font's design size to
-.IR size ,
-a value in TeX points. This value is mostly just documentation, since LaTeX
-essentially ignores fonts' design sizes, but plain TeX may occasionally use
-the design size to decide how large a font should be. (Loading a font in
-TeX "at" a particular size effectively ignores the design size; loading a
-font plain or "scaled" by a given factor uses the design size.) The default
-is taken from the input font's optical size feature, or 10pt if it has no
-such feature.
-'
-.Sp
-.TP 5
-.BI \-\-fixed\-width
-Set the font to fixed-width (its space character will have no stretch or
-shrink). Normally you won't need this option; the font will tell
-.B otftotfm
-whether it is fixed width. The opposite of
-.B \-\-fixed\-width
-is
-.BR \-\-proportional\-width .
-'
-.Sp
-.TP 5
-.BI \-\-italic\-angle= angle
-Set the output font's default italic angle to
-.IR angle ,
-a number of degrees. This value is used by TeX to position
-accents. Normally you won't need this option; the font will tell
-.B otftotfm
-its italic angle.
-.PD
-'
-.Sp
-.TP 5
-.BI \-\-x\-height= val
-Set the output font's x-height to
-.IR val .
-This value is used by TeX to position accents. Normally you won't
-need this option.
-.IR Val
-may be a number expressed in font units; \(oqx\(cq, which uses the
-height of the font's lowercase x; or \(oqfont\(cq, which uses the
-font's declared x-height metric.
-'
-.SS Encoding Options
-'
-.PD 0
-.TP 5
-.BI \-e " encoding\fR, " \-\-encoding= encoding
-Select the output metrics's base
-.M dvips 1
-encoding.
-.B Otftotfm
-will search for
-.IR encoding [.enc]
-the same way that
-.B dvips
-would, so you may not need to give a full pathname. Say
-.B \-e \-
-to start with the font's default encoding.
-See ENCODINGS, below,
-for more information.
-'
-.Sp
-.TP 5
-.BI \-\-boundary\-char= char
-Set the font's boundary character to
-.IR char ,
-which should either be a single non-digit character, or a number between \-1
-and 255. The default is taken from the encoding.
-'
-.Sp
-.TP 5
-.BI \-\-altselector\-char= char
-Set the font's alternate selector character to
-.IR char ,
-which should either be a single non-digit character, or a number between
-\&\-1 and 255. Alternate selectors let TeX authors explicitly choose
-between versions of a character. For instance, the
-\&'\-\-altselector\-char="*"' option turns the "*" character into a special
-switch that cycles between alternates. For instance, the TeX input "A"
-would produce the normal version of the "A" Unicode character, "A*" would
-produce the first alternate, "A**" would produce the second alternate, and
-so forth. Furthermore, "s*t" will activate any discretionary "s_t"
-ligature in the font.
-.Sp
-The
-.B \-\-altselector\-char
-mechanism uses the features specified by
-.BR \-\-altselector\-feature
-options.
-.Sp
-The alternate-selector character may also be specified in the encoding; see
-ENCODINGS, below. See Sivan Toledo's article cited in the SEE ALSO section
-for more information.
-'
-.Sp
-.TP 5
-.BI \-\-altselector\-feature= feature
-Activate the feature named
-.I feature
-for the
-.B \-\-altselector\-char
-mechanism. Give this option multiple times to activate multiple
-features. This option activates features only for use with
-.BR \-\-altselector\-char ;
-use the
-.B \-\-feature
-option to activate features globally. Defaults to the
-.I salt
-and
-.I dlig
-features.
-'
-.Sp
-.TP 5
-.BI \-\-alternates\-filter= pattern
-.TP 5
-.BI \-\-include\-alternates= pattern
-.TP 5
-.BI \-\-exclude\-alternates= pattern
-.TP 5
-.BI \-\-clear\-alternates
-Limit the alternate characters that
-.B otftotfm
-will select. An alternate is used if it matches at least one of the
-.B \-\-include
-patterns, and none of the
-.B \-\-exclude
-patterns. Each pattern applies to all following features, except that the
-.B \-\-clear
-option clears any accumulated patterns. The
-.BI \-\-alternates\-filter " pattern"
-option acts like
-.B \-\-clear\-alternates
-followed by
-.BI \-\-include\-alternates " pattern\fR. "
-For pattern syntax, see GLYPH PATTERNS, below.
-.Sp
-OpenType fonts can have many alternates per character, most of which aren't
-interesting. For example, the character "a" in WarnockPro-Regular has five
-alternates, "ordfeminine", "Asmall", "asuperior", "a.end", and
-"orn.013". The
-.B \-\-altselector\-char
-option lets you cycle through these alternates, but it's better to leave
-out the ones you don't want, to avoid overfull encodings. Thus, if you were
-only interested in ".end" variants, you might supply an
-\&'\-\-include\-alternates="*.end"'
-option.
-.Sp
-In the command line below, the \&'*.end' pattern will apply to "aalt"
-alternates, but not to "salt" alternates.
-.nf
- \fBotftotfm\fR \fB\-f\fRsalt \fB\-\-include\-alternates\fR="*.end" \fB\-f\fRaalt \.\.\.
-.fi
-'
-.Sp
-.TP 5
-.BI \-\-ligkern= command
-Add a LIGKERN
-.IR command
-to the encoding. For example, \&'\fB\-\-ligkern\fR "T {L} h"' suppresses any
-T_h ligature in the font. You can supply multiple
-.B \-\-ligkern
-options. See ENCODINGS, below.
-'
-.Sp
-.TP 5
-.BI \-\-position= command
-Add a POSITION
-.IR command
-to the encoding. For example, \&'\fB\-\-position\fR "T 10 0 20"' adds ten
-units of space to either side of the "T" character. You can supply
-multiple
-.B \-\-position
-options. See ENCODINGS, below.
-'
-.Sp
-.TP 5
-.BI \-\-unicoding= command
-Add a UNICODING
-.IR command
-to the encoding. For example, \&'\fB\-\-unicoding\fR "pi1 =: uni03D6"' tells
-.B otftotfm
-to encode "/pi1" as U+03D6 GREEK PI SYMBOL. You can supply multiple
-.B \-\-unicoding
-options. See ENCODINGS, below.
-'
-.Sp
-.TP 5
-.BI \-\-no\-encoding\-commands
-Ignore any LIGKERN and/or UNICODING commands in the encoding file.
-'
-.Sp
-.TP 5
-.BI \-\-no\-default\-ligkern
-Don't include
-.BR otftotfm 's
-default LIGKERN commands.
-'
-.Sp
-.TP 5
-.BI \-\-coding\-scheme= scheme
-Add a CODINGSCHEME to the encoding. See ENCODINGS, below.
-'
-.Sp
-.TP 5
-.BI \-\-warn\-missing
-Warn about encoded characters not supported by the font. See the
-WARNMISSING command in ENCODINGS, below.
-'
-.Sp
-.TP 5
-.BI \-\-literal\-encoding= encoding
-Select the
-.M dvips 1
-encoding used for the font. No glyph substitutions will be permitted, so
-the output encoding will equal the input encoding (and
-.B otftotfm
-will not generate an output encoding).
-'
-.Sp
-.TP 5
-.BI \-\-base\-encodings= file
-.B Experts only.
-Allow the output font to refer to existing "base" fonts. This can greatly
-reduce the number of base fonts generated by
-.BR otftotfm ". "
-Each line in the
-.I file
-argument contains a TeX font name (as for
-.BR \-\-name )
-and a corresponding literal encoding file (as for
-.BR \-\-literal\-encoding );
-for example:
-.nf
- WarnoProReg\-\-eka eka
- WarnoProReg\-\-exp1 exp1
-.fi
-The named fonts must have been created by prior runs of
-.B otftotfm
-on the same input OpenType font, with the same
-.BR \-\-extend
-and
-.BR \-\-slant
-options as the current run. The current output font will refer to glyphs
-from the named base fonts when possible. If the base fonts cover all
-glyphs required by the output font,
-.B otftotfm
-won't generate any new base fonts at all. The
-.I file
-can also refer to dotless-J fonts using the following syntax:
-.nf
- WarnoProReg\-\-lcdfj \- dotlessj
-.fi
-'
-.PD
-'
-'
-.SS Automatic Mode Options
-'
-.PD 0
-.TP 5
-.BI \-a "\fR, " \-\-automatic
-Select automatic mode.
-'
-.Sp
-.TP 5
-.BI \-v " vendor\fR, " \-\-vendor= vendor
-Set the font vendor name, which is used to locate files within the TDS.
-Defaults to "lcdftools".
-.Sp
-In automatic mode, TeX and friends will generally find required font files
-independently of the vendor you select.
-'
-.Sp
-.TP 5
-.BI \-\-typeface= typeface
-Set the font typeface name, which is used to locate files within the TDS.
-Defaults to the current font's family name with unsuiable characters
-removed.
-'
-.Sp
-.TP 5
-.BI \-\-no\-type1
-Do not use
-.M cfftot1 1
-to create Type 1 fonts corresponding to the OpenType input fonts.
-'
-.Sp
-.TP 5
-.BI \-\-no\-dotlessj
-Do not use
-.M t1dotlessj 1
-to create a special dotless-j font when the input font doesn't have
-dotless-j.
-'
-.Sp
-.TP 5
-.BI \-\-no\-truetype
-Do not install TrueType-flavored fonts.
-'
-.Sp
-.TP 5
-.BI \-\-type42
-Install TrueType-flavored fonts in translated Type 42 format.
-'
-.Sp
-.TP 5
-.BI \-\-no\-updmap
-Do not run an
-.M updmap 1
-program. This can be useful if you're installing a bunch of fonts; it is
-much faster to run
-.B updmap
-once, at the end, than to run it once per font.
-.PD
-'
-'
-.SS Output Options
-.PD 0
-.TP 5
-.BI \-n " texname\fR, " \-\-name= texname
-Set the TeX name of the output font, which is used in font map files and,
-in automatic mode, to generate the output filename. The default is derived
-from the OpenType font's name and the features you selected.
-'
-.Sp
-.TP 5
-.BI \-p "\fR, " \-\-pl
-Output human-readable PL and VPL metrics, not binary TFM and VF metrics.
-Note:
-.BR Otftotfm 's
-PL and VPL output files are legal, but the
-.B fontinst
-program may not accept them (it has a picky parser). Make sure to supply a
-.BR \-\-coding\-scheme ;
-if that doesn't help, run the TFM output through
-.M tftopl 1 .
-'
-.Sp
-.TP 5
-.BI \-\-no\-virtual
-Do not generate virtual fonts (VFs and VPLs).
-.B Otftotfm
-will warn if the selected font features cannot be implemented without
-virtual fonts.
-'
-.Sp
-.TP 5
-.BI \-\-no\-encoding
-Do not generate an encoding file.
-'
-.Sp
-.TP 5
-.BR \-\-output\-encoding [=\fIfile\fR]
-Only generate an encoding file; do not generate any other output. The
-encoding file is written to
-.IR file ,
-or to standard output if no
-.I file
-argument is supplied.
-'
-.Sp
-.TP 5
-.BI \-\-no\-map
-Do not generate a font map line for the font.
-'
-.\" .Sp
-.\" .TP 5
-.\" .BI \-\-base\-name name
-.\" Experts only: Set the TeX name of the "base" output font. When
-.\" .B otftotfm
-.\" needs to make a virtual font (because of font features and/or
-.\" letterspacing), it must generate at least two TFM metrics files, one for
-.\" the base font and one for the virtual font. In some cases, multiple
-.\" virtual fonts can share the same base metrics, reducing the number of
-.\" installed metrics files. This option lets you explicitly set the name of
-.\" the base output font independently from the main output font, and thus
-.\" force fonts to share base metrics. The default base name is derived from
-.\" the TeX name, with "\f(CW\-\-base\fR" appended.
-.PD
-'
-'
-.SS File Location Options
-.PD 0
-.TP 5
-.BI \-\-tfm\-directory= dir
-.TP 5
-.BI \-\-pl\-directory= dir
-.TP 5
-.BI \-\-vf\-directory= dir
-.TP 5
-.BI \-\-vpl\-directory= dir
-.TP 5
-.BI \-\-encoding\-directory= dir
-.TP 5
-.BI \-\-type1\-directory= dir
-.TP 5
-.BI \-\-truetype\-directory= dir
-.TP 5
-.BI \-\-type42\-directory= dir
-.TP 5
-.BI \-\-directory= dir
-Set the directory used for various output types. Each directory may be set
-by an environment variable, and defaults to a TDS directory in automatic
-mode, or to "." otherwise. Environment variable names and default TDS
-locations are described in the Automatic Mode section above. The
-.B \-\-directory
-option sets the default directory for all output types.
-'
-.Sp
-.TP 5
-.BI \-\-map\-file= filename
-Set file in which
-.B otftotfm
-will write a font map
-line for the font. The default is the standard output in manual mode, and
-"TEXMF/fonts/map/dvips/\fIvendor\fR/\fIvendor\fR.map" (or
-"TEXMF/dvips/\fIvendor\fR/\fIvendor\fR.map" on older installations) in
-automatic mode.
-.PD
-'
-'
-.SS Miscellaneous Options
-.PD 0
-.TP 5
-.BI \-\-glyphlist= file
-Use
-.I file
-as a Adobe glyph list, which helps translate glyph names to Unicode code
-points. Give multiple options to include multiple files.
-See ENCODINGS, below, for more information.
-'
-.Sp
-.TP 5
-.BR \-V ", " \-\-verbose
-Write progress messages to standard error.
-'
-.Sp
-.TP 5
-.BR \-\-no\-create
-Do not create or modify any files. Instead, write messages about the
-program's hypothetical progress to standard error.
-'
-.Sp
-.TP 5
-.BR \-\-force
-Generate all files, even if it looks like versions are already installed.
-'
-.Sp
-.TP 5
-.BR \-q ", " \-\-quiet
-Do not generate any error messages.
-'
-.Sp
-.TP 5
-.BI \-\-kpathsea\-debug= flags
-Set path searching debugging flags. See the
-.I Kpathsea
-manual for details.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH ENCODINGS
-.B Otftotfm
-interprets encoding files as Unicode. For example, say an input encoding
-has "/dotlessi" at position 10.
-.B Otftotfm
-detects that position 10 should contain Unicode character U+0131 LATIN
-SMALL LETTER DOTLESS I, and uses the font's glyph for that character
-(possibly modified by any active features). The selected glyph might not
-be named "dotlessi"; only the Unicode value matters.
-.PP
-.B Otftotfm
-assigns Unicode values to glyph names using a table published by Adobe (SEE
-ALSO has a reference), with extensions for TeX. For more fine-grained
-control, add UNICODING commands to the input encoding file. These commands
-have the following format:
-.nf
- % UNICODING \fIglyph\fR =: \fIchoice1\fR [\fIchoice2\fR ...] ;
-.fi
-This tells
-.B otftotfm
-that the glyph named
-.I glyph
-translates into the first Unicode value in the
-.I choice
-list that has a character in the font. \fIGlyph\fR and the
-.IR choice s
-are PostScript glyph names; the initial "%" sign is required; and each
-UNICODING line can contain multiple commands, separated by spaced
-semicolons. For example,
-.nf
- % UNICODING pi1 =: uni03D6 ;
-.fi
-encodes the character "/pi1" as U+03D6 GREEK PI SYMBOL,
-and
-.nf
- % UNICODING Delta =: uni0394 uni2206 ;
-.fi
-makes U+0394 GREEK CAPITAL LETTER DELTA preferred to
-U+2206 INCREMENT as an encoding for "/Delta". You can also supply
-glyph names:
-.nf
- % UNICODING Delta =: Deltagreek Delta ;
-.fi
-A mapping with no Unicode values removes that glyph from the input
-encoding. For instance, this erases any f-ligature characters from the
-encoding:
-.nf
- % UNICODING ff =: ; fi =: ; fl =: ; ffi =: ; ffl =: ;
-.fi
-The slots are available for
-.BR otftfm 's
-own use, for example for other characters required by the font. (If the
-f-ligatures themselves are required by the font, for instance by a \&'liga'
-feature, then they will be stored into their old slots when possible.) Map
-a glyph to \&'emptyslot' if you don't want
-.B otftotfm
-to use the slot. For example, this will leave the \&'ff' slot unused if
-the font has no \&'ff' glyph:
-.nf
- % UNICODING ff =: ff emptyslot ;
-.fi
-(Note that most OpenType fonts provide a visible representation for unused
-encoding slots, namely a box with an X inside.)
-.PP
-LIGKERN comments in the encoding can add ligatures and inhibit kerns, as in
-.M afm2tfm 1 .
-To add a ligature, say:
-.nf
- % LIGKERN \fIglyph1\fR \fIglyph2\fR =: \fIresult\fR ;
-.fi
-The "=:" operator indicates a normal ligature, where both the input glyphs
-are removed and replaced by
-.IR result .
-To preserve the left-hand glyph, for an effect like "\fIglyph1\fR
-\fIglyph2\fR =: \fIglyph1\fR \fIresult\fR", use "|=:" instead; to preserve
-the right-hand glyph, use "=:|".
-.\" The other five ligature operators are not yet supported.
-To remove all kerns between two characters, say:
-.nf
- % LIGKERN \fIglyph1\fR {} \fIglyph2\fR ;
-.fi
-A "*" matches any character, so
-.nf
- % LIGKERN a {} * ;
-.fi
-removes all kerns with "a" as the left-hand character, and
-.nf
- % LIGKERN * {} * ;
-.fi
-removes all kerns.
-.PP
-.B Otftotfm
-also supports extended syntax for setting kern values and inhibiting
-ligatures. To add an \fIn\fR-unit kern between two glyphs, say:
-.nf
- % LIGKERNX \fIglyph1\fR {\fIn\fR} \fIglyph2\fR ;
-.fi
-where \fIn\fR is an integer. This:
-.nf
- % LIGKERNX \fIglyph1\fR {L} \fIglyph2\fR ;
-.fi
-inhibits any ligature between
-.I glyph1
-and
-.IR glyph2 .
-"{LK}" and "{KL}" inhibit both ligatures and kerns.
-.PP
-You can set the
-.B \-\-boundary\-char
-and
-.B \-\-altselector\-char
-from an encoding file with commands like this:
-.nf
- % LIGKERN || = \fIboundarychar\fR ;
- % LIGKERNX ^^ = \fIaltselectorchar\fR ;
-.fi
-As with UNICODING, each LIGKERN or LIGKERNX line can contain multiple
-commands, separated by spaced semicolons.
-.PP
-.B Otftotfm
-has a default set of eight ligatures, namely:
-.nf
- space l =: lslash ; space L =: Lslash ;
- question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ;
- hyphen hyphen =: endash ; endash hyphen =: emdash ;
- quoteleft quoteleft =: quotedblleft ;
- quoteright quoteright =: quotedblright
-.fi
-LIGKERN commands in the encoding file and
-.B \-\-ligkern
-options can override these defaults, or supply the
-.B \-\-no\-default\-ligkern
-option to turn them off.
-.PP
-The POSITION command shifts a glyph within its bounding box. The syntax is
-.nf
- % POSITION \fIglyph\fR \fIpdx\fR \fIpdy\fR \fIadx\fR ;
-.fi
-This will add
-.I pdx
-units of space to
-.IR glyph 's
-left edge; raise it up by
-.I pdy
-units; and add
-.I adx
-units to its width. For example, to add 10 units of space to either side
-of the "T" glyph, supply
-.nf
- % POSITION T 10 0 20
-.fi
-To move the "degree" symbol up by 20 units, supply
-.nf
- % POSITION degree 0 20 0
-.fi
-.PP
-The CODINGSCHEME command specifies the coding scheme for fonts using this
-encoding. This is a string, less than 40 characters long and containing no
-parentheses, that classifies the encoding for TeX's purposes. Sample
-coding schemes include "TEX TEXT", "TEX MATH ITALIC", and "EXTENDED TEX
-FONT ENCODING - LATIN". For example:
-.nf
- % CODINGSCHEME EXTENDED TEX FONT ENCODING - LATIN
-.fi
-Most tools ignore the coding scheme; fontinst is an exception.
-.B Otftotfm
-uses the encoding's PostScript name for the default coding scheme.
-.PP
-Finally, the WARNMISSING command makes any glyphs not supported by the
-input font appear as black boxes. The
-.M dvips 1
-processor will also print a warning when encountering these glyphs. For
-example:
-.nf
- % WARNMISSING yes
-.fi
-.PP
-The
-.BR \-\-unicoding ,
-.BR \-\-ligkern ,
-.BR \-\-position ,
-.BR \-\-coding\-scheme ,
-and
-.B \-\-warn\-missing
-options add UNICODING, LIGKERN/LIGKERNX, POSITION, CODINGSCHEME, and
-WARNMISSING commands to an encoding, and can override commands in the
-encoding itself. Some common encoding files have commands that are
-inappropriate for OpenType fonts; for example, "t1.enc" hard-codes
-f-ligatures, which can cause problems with small-cap fonts. Supply the
-.B \-\-no\-encoding\-commands
-option to ignore all commands from the encoding file. Commands from
-options like
-.B \-\-ligkern
-are processed in any case.
-'
-.SS New Glyphs
-.PP
-New glyphs, such as ligatures and contextual substitutions, are added to
-the encoding in any empty spaces, using their original locations when
-possible. If the encoding doesn't have enough space for all new glyphs,
-shorter ligatures composed of unaccented letters get precedence.
-'
-.SS Synthetic Glyphs
-.PP
-.B Otftotfm
-can synthesize some glyphs using virtual font manipulations, if a required
-glyph is not available in the input font. Specifically, it will synthesize:
-.Sp
-.PD 0
-.TP 22
-cwm
-TeX's compound word mark (a zero-width "strut" rule with height equal to the font's x-height)
-.TP
-ascendercompwordmark
-"cwm" with height equal to the font's ascenders
-.TP
-capitalcompwordmark
-"cwm" with height equal to the font's capitals
-.TP
-visualspace
-A square cup used to represent spaces
-.TP
-dotlessj
-A dotless "j", synthesized with
-.M t1dotlessj 1
-.TP
-dblbracketleft
-Kerned version of "[["
-.TP
-dblbracketright
-Kerned version of "]]"
-.TP
-bardbl
-The parallel symbol "||"
-.TP
-asteriskmath
-Vertically-centered "*"
-.TP
-ringfitted
-Ring accent centered on the width of "A"
-.TP
-twelveudash
-2/3-em-wide dash
-.TP
-threequartersemdash
-3/4-em-wide dash
-.TP
-centigrade
-"(degrees)C"
-.TP
-interrobang
-Combined "?!" symbol
-.TP
-interrobangdown
-Inverted interrobang
-.TP
-pertenthousand
-Per-ten-thousand sign (% with two extra 0s)
-.TP
-IJ
-"IJ" ligature
-.TP
-ij
-"ij" ligature
-.TP
-Germandbls
-"SS" (a capital sharp-s)
-.TP
-SSsmall
-Small-capital version of "SS"
-.TP
-FFsmall
-Small-capital version of "FF"
-.TP
-FIsmall
-Small-capital version of "FI"
-.TP
-FLsmall
-Small-capital version of "FL"
-.TP
-FFIsmall
-Small-capital version of "FFI"
-.TP
-FFLsmall
-Small-capital version of "FFL"
-.PD
-'
-'
-.SH "GLYPH PATTERNS"
-.LP
-The
-.BR \-\-include\-subs
-and
-.BR \-\-include\-alternates
-options, and their
-.B \-\-exclude
-and
-.B \-\-*\-filter
-variants, accept the following types of pattern.
-.Bp
-Glyph names. Example: "Aacute". For PostScript-flavored fonts, use
-.M otfinfo 1 's
-.B \-g
-option to see a font's glyph names, and "\fBcfftot1\fR \fIfont\fR.otf |
-\fBt1testpage\fR" to generate a PostScript file showing each glyph.
-.Bp
-Glyph name patterns using the shell-style glob-matching rules: "*" matches
-any number of characters, "?" matches any single character, and "[...]"
-matches any character in a set. Example: "*.end".
-.Bp
-Unicode category properties in angle brackets. Examples: "<Letter>",
-"<UppercaseLetter>", "<Lu>". The complete list of both short and long
-names: Letter/L, UppercaseLetter/Lu, LowercaseLetter/Ll,
-TitlecaseLetter/Lt, ModifierLetter/Lm, OtherLetter/Lo; Number/N,
-DecimalNumber/Nd, LetterNumber/Nl, OtherNumber/No; Punctuation/P,
-ConnectorPunctuation/Pc, DashPunctuation/Pd, OpenPunctuation/Ps,
-ClosePunctuation/Pe, InitialPunctuation/Pi, FinalPunctuation/Pf,
-OtherPunctuation/Po; Symbol/S, MathSymbol/Sm, CurrencySymbol/Sc,
-ModifierSymbol/Sk, OtherSymbol/So; Mark/M, SpacingMark/Mc,
-EnclosingMark/Me, NonspacingMark/Mn; Separator/Z, SpaceSeparator/Zs,
-LineSeparator/Zl, ParagraphSeparator/Zp; Other/C, Surrogate/Cs, Format/Cf,
-Control/Cc, PrivateUse/Co, Unassigned/Cn. Category values current as of
-Unicode 4.0.
-.Bp
-Unicode ranges. Example: "U+007f-U+008C".
-.PP
-The "!" prefix negates a pattern, and you can separate multiple patterns by
-spaces.
-'
-.SH "FEATURE DIRECTORY"
-.LP
-This section lists features common to Western OpenType fonts and describes
-how
-.B otftotfm
-handles them for common fonts. Please send the author mail if
-.B otftotfm
-does not handle a feature you need, or you believe it handles some feature
-incorrectly.
-.Sp
-.PD 0
-.TP 5
-.IR aalt ", Access All Alternates"
-Lets the user choose between all available alternate forms for a character.
-This includes things like superscript and subscript variants, different
-styles (swash, for example), and even ornaments. The
-.BR \-\-altselector\-feature= aalt
-option can help an
-.BR \-\-altselector\-char
-provide useful access to alternates, but the
-.I aalt
-feature isn't usually useful on its own. Try the
-.IR salt " and " calt
-features instead.
-.TP 5
-.IR c2sc ", Small Capitals From Capitals"
-Replaces capital letters with small capitals: a sort of converse of the
-more conventional
-.I smcp
-feature, which replaces lower-case letters with small capitals. Supported.
-.TP 5
-.IR calt ", Contextual Alternates"
-Lets the user choose between context-appropriate swash forms for each
-character. For example, given the word "DREW" in a cursive typeface, the "R
-E W" might be translated to calmer forms than the initial "D". There may be
-more than one choice for a given letter, in which case the user should be
-able to select among them. TeX can't support complex contextual alternates,
-or alternate selection, but
-.B otftotfm
-supports some fonts quite well. The input encoding should have lots of
-empty space for variants, and it should specify a boundary character. See
-also
-.IR cswh .
-.TP 5
-.IR case ", Case-Sensitive Forms"
-Shifts punctuation marks up to a position that works well with
-all-capital-letter sequences. For example, the hyphen character, which
-generally centers vertically on the x-height, is raised up to center
-vertically on a capital letter. Also replaces text figures with lining
-figures, and accent marks with forms more appropriate for capitals.
-Supported.
-.TP 5
-.IR cpsp ", Capital Spacing"
-Adds a bit of space on either side of each capital letter. Supported.
-(However, the OpenType tag registry suggests that
-.I cpsp
-be on by default, but applying to all-caps text only; TeX cannot easily
-implement that contextual intelligence.)
-.TP 5
-.IR cswh ", Contextual Swash"
-Lets the user choose between context-appropriate swash forms for each
-character. For example, in the words "Ab AC", the first "A" might be
-translated to a swash form, while the second might not. There may be more
-than one choice for a given letter, in which case the user should be able
-to select among them.
-.B Otftotfm
-supports some fonts quite well. The input encoding should have lots of
-empty space for swash variants, and it should specify a boundary
-character. See also
-.IR calt " and " swsh .
-.TP 5
-.IR dlig ", Discretionary Ligatures"
-Activates uncommon ligatures, such as "c_t", "s_p", and "s_t". Supported.
-.TP 5
-.IR dnom ", Denominators"
-Replaces digits and some punctuation marks with smaller forms sitting on
-the baseline, intended for fraction denominators. Supported.
-.TP 5
-.IR fina ", Terminal Forms"
-Substitutes appropriate forms for letters occurring at the ends of words.
-This feature doesn't select swash variants; it's intended for normal use,
-and the specification recommends that it be on by default. Partially
-supported: TeX will only treat spaces as the ends of words, where a correct
-implementation would probably include punctuation too. See
-.IR cswh
-for selecting swash variants active at the ends of words.
-.TP 5
-.IR frac ", Fractions"
-Replaces simple sequences like "1/2" with nice-looking fractions.
-Supported, but beware: many fonts will translate "11/32" into "1" + "1/3" +
-"2".
-.TP 5
-.IR hist ", Historical Forms"
-Replaces characters with historical variants. Usually, this means at least
-translating regular "s" to long "s". Supported.
-.TP 5
-.IR kern ", Kerning"
-Adjusts the space between characters (pair kerning). Generally supported,
-and you should probably turn it on. As a special case, "\fB\-f\fRkern" can
-also read kerning information from the "kern" table in conventional
-TrueType fonts.
-.TP 5
-.IR liga ", Standard Ligatures"
-Activates common ligatures, such as "f_f", "f_i", "f_f_j", and (in some
-Adobe fonts) "T_h". Generally supported, and you should probably turn it
-on.
-.TP 5
-.IR lnum ", Lining Figures"
-Uses lining figures, the set of digits that are all about as high as
-capital letters.
-Supported. Compare
-.IR onum ;
-see also
-.IR pnum
-and
-.IR tnum.
-.TP 5
-.IR numr ", Numerators"
-Replaces digits and some punctuation marks with smaller, raised forms
-intended for fraction numerators. Supported, but not usually useful.
-.TP 5
-.IR onum ", Oldstyle Figures"
-Uses old-style figures, also known as text figures. This is the set of
-digits that have ascenders and descenders like lower-case letters.
-Supported. Compare
-.IR lnum ;
-see also
-.IR pnum
-and
-.IR tnum .
-.TP 5
-.IR ordn ", Ordinals"
-Designed for Spanish and French. Replaces ordinal numbers, such as "2.o",
-with forms where the "o" is raised, and replaces the sequence "No" with an
-integrated glyph. Supported.
-.TP 5
-.IR ornm ", Ornaments"
-Replaces some alphabetic characters in the font with ornaments, and links
-the bullet character to a set of all bullet-like ornaments, from which the
-user can choose. Partially supported: TeX can handle alphabetic
-substitutions, but not bullet choice.
-.TP 5
-.IR pnum ", Proportional Figures"
-Digits will have different widths. Supported. Compare
-.IR tnum ;
-see also
-.IR lnum
-and
-.IR onum.
-.TP 5
-.IR salt ", Stylistic Alternates"
-Lets the user choose between stylistic alternate forms for a character.
-The
-.BR \-\-altselector\-char
-mechanism provides useful access to this feature. If you turn on
-.IR salt
-globally,
-.B otftotfm
-takes the first alternate form whenever there's more than one choice. See
-also
-.IR aalt
-and
-.IR ss01 ;
-.IR salt
-is generally more useful than
-.IR aalt
-for TeX, since it refers exclusively to stylistic alternates.
-.TP 5
-.IR sinf ", Scientific Inferiors"
-Replaces digits and some punctuation marks with smaller, lowered forms
-intended for subscripts. Supported. Compare
-.IR subs .
-.TP 5
-.IR size ", Optical Size"
-This feature stores information about the range of optical sizes for which
-the font was intended. There is no point in selecting it with
-.BR otftotfm ,
-since it should not change the font's appearance in any way.
-.TP 5
-.IR smcp ", Small Capitals"
-Replaces lower-case letters with small capitals. Supported. Compare
-.IR c2sc .
-.TP 5
-.IR ss01 - ss20 ", Stylistic Sets 1-20"
-Replaces characters with a uniform set of stylistic alternates. Differs
-from features like
-.I salt
-in that a Stylistic Set is uniform: an
-.I ssXX
-feature should never involve selection from a set of possible alternate
-characters. Supported.
-.TP 5
-.IR subs ", Subscript"
-Replaces characters with smaller, lowered forms intended for subscripts.
-Supported. Compare
-.IR sinf ;
-some fonts support
-.I sinf
-but not
-.IR subs .
-.TP 5
-.IR sups ", Superscript"
-Replaces digits, some punctuation marks, and some lower-case letters with
-smaller, raised forms intended for superscripts. Supported.
-.TP 5
-.IR swsh ", Swash"
-Activates all swash forms for each character. There may be more than one
-swash form, in which case
-.B otftotfm
-will pick the first one listed. Supported, except that swash variants
-other than the first are inaccessible. Note that some fonts with swash
-variants support the
-.I cswh
-feature exclusively.
-.TP 5
-.IR tnum ", Tabular Figures"
-All digits will have the same width, so that tables and the like will align
-visually. Supported. Compare
-.IR pnum ;
-see also
-.IR lnum
-and
-.IR onum.
-.TP 5
-.IR zero ", Slashed Zero"
-Replaces the zero character with a slashed zero. Supported.
-.PD
-'
-.SH "DIAGNOSTICS AND TROUBLESHOOTING"
-'
-.TP 5
-no writable directory found in $TEXMF
-'
-.B Otftotfm
-could not find a writable directory in your $TEXMFVAR or $TEXMF path. Did
-you create a
-.I $HOME/.texmf-var
-or
-.I $HOME/texmf
-directory? If so, run the command "kpsewhich \-\-expand\-path='$TEXMF'" to
-verify that directory is not being found. You may need to set your TEXMF
-environment variable, to \&'{!!'"$HOME"'/texmf,!!$TEXMFMAIN}', for instance
-(note the different kinds of quotes; on my machine, this expands to
-\&'{!!/home/kohler/texmf,!!$TEXMFMAIN}').
-'
-.TP 5
-\&'\fIchar\fR' has no encoding, ignoring kern removal
-.PD 0
-.TP 5
-(or ligature removal, lig/kern removal, or ligature)
-.PD
-'
-These messages indicate a slight problem with your encoding file: one of
-the LIGKERN commands referred to a character not present in the encoding.
-This might be due to a misspelling in the LIGKERN command or the encoding
-file, or it might be an oversight. Either fix the encoding file or ignore
-the warning.
-'
-.TP 5
-can't map \&'\fIchar\fR' to Unicode
-'
-Another encoding file problem: One of the glyph names in an UNICODING block
-could not be converted to Unicode. This is problematic since UNICODING
-exists wholly to translate glyph names into Unicode. Fix the encoding file
-or ignore the warning.
-'
-.TP 5
-not enough room in encoding, ignoring \fIN\fR glyph(s) ...
-'
-There wasn't space in the encoding for all the glyphs referred to by the
-features you selected. For example, maybe the font had more ligatures than
-there were empty slots in the encoding. Fix this warning by selecting fewer
-features, or by using an encoding with more empty slots, such as the 7t.enc
-encoding distributed with
-.BR otftotfm .
-'
-.TP 5
-The \&'\fB\-a\fR' option did not install my font correctly.
-'
-Try again with the \&'\fB\-\-verbose\fR' option, which causes
-.BR otftotfm
-to explain its behavior. Note that by default,
-.BR otftotfm
-will not re-install files already present in your system's TeX search paths
-(in the current directory, for instance). Use \&'\fB\-\-force\fR' to
-override this behavior.
-'
-.SH "FREQUENTLY ASKED QUESTIONS"
-.TP 5
-How can I get a small-caps "SS" in place of the German sharp-S?
-'
-Supply the option \&'\fB\-\-unicoding\fR "germandbls =: SSsmall"'.
-'
-.TP 5
-How can I prevent f-ligatures from forming in a small-caps font?
-'
-This should happen automatically, but some overzealous encoding files add
-f-ligatures even when the font doesn't request them. Try the
-"\fB\-\-no\-encoding\-commands\fR" option if this is a problem for you.
-'
-.TP 5
-\fBOtftotfm\fR seems to take a long time.
-'
-Use the
-.B \-V
-option to see what it's doing. Often the culprit is the
-.M updmap 1
-program; if you're planning to run
-.B otftotfm
-multiple times, give it the
-.B \-\-no\-updmap
-option and run
-.B updmap
-manually when you're done.
-'
-.TP 5
-How can I refer to the different forms of phi?
-'
-\fBOtftotfm\fR follows TeX practice and widely-distributed TeX encoding
-vectors, so "/phi" in an input encoding vector should map to a "straight"
-phi and "/phi1" should map to a "loopy" phi. Note that TeX practice
-differs from the PostScript standard naming conventions, in which "/phi" is
-"loopy" and "/phi1" is "straight"; this means that \fBotftotfm\fR may map
-"/phi" in an input encoding vector to a font's "/phi1" glyph, and vice
-versa. Perhaps most unambiguously, you can use "/uni03D5" for the
-"straight" form and "/uni03C6" for the "loopy" form.
-'
-.TP 5
-How can I get lining figures (that is, normal line-height digits) with small caps ('\fB\-f\fRsmcp')?
-'
-Many fonts use old-style figures by default with small caps. Since the
-default is not specified, it's wise to explicitly supply \&'\fB\-f\fRlnum' or
-\&'\fB-f\fRonum'.
-'
-.SH "BUGS"
-.\" .LP
-.\" Presumably some context-sensitive positionings and ligatures could be
-.\" implemented with TeX's boundary character, but
-.\" .B otftotfm
-.\" doesn't do that yet.
-.LP
-See the documentation for
-.B \-\-pl
-above if you have problems running
-.BR otftotfm 's
-output through
-.BR fontinst .
-'
-.SH "SEE ALSO"
-.LP
-.M pltotf 1 ,
-.M tftopl 1 ,
-.M vptovf 1 ,
-.M afm2tfm 1 ,
-.M dvips 1 ,
-.M cfftot1 1 ,
-.M otfinfo 1 ,
-.M t1dotlessj 1 ,
-.M t1testpage 1 ,
-.M ttftotype42 1 ,
-.M kpsewhich 1 ,
-.M updmap 1
-.LP
-.I "Adobe Type 1 Font Format"
-.LP
-Adobe Technical Notes #5176,
-.IR "The Compact Font Format Specification" ,
-and #5177,
-.I "The Type 2 Charstring Format"
-.LP
-.IR "OpenType Specification" ,
-Version 1.4
-.LP
-.IR "A Directory Structure for TeX Files" ,
-http://www.tug.org/tds/
-.LP
-.IR "Kpathsea: A library for path searching" ,
-http://www.tug.org/kpathsea/
-.LP
-Sivan Toledo,
-.IR "Exploiting Rich Fonts" ,
-TUGboat 21(2), 2000,
-http://www.tug.org/TUGboat/Articles/tb21-2/tb67tole.pdf
-.LP
-Michel Goossens, Frank Mittelbach, and Alexander Samarin,
-.IR "The LaTeX Companion"
-(for information on the .fd file format)
-.LP
-Adobe Systems, "Unicode and Glyph Names". Refers to the glyphlist.txt file
-used to translate glyph names to Unicode code points.
-http://partners.adobe.com/public/developer/opentype/index_glyph.html
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
-.PP
-Thanks to Karl Berry, Marco Kuhlmann, Adam Lindsay, Bruce D'Arcus, Thomas
-Esser, Claire Connelly, Nelson H.F. Beebe, and Ryuji Suzuki for
-suggestions, bug reports, and help. Particular thanks to Achim Blumensath
-and Michael Zedler for suggestions and patches, some of them extensive.
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
deleted file mode 100644
index 913e4cb68e4..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc
+++ /dev/null
@@ -1,2449 +0,0 @@
-/* otftotfm.cc -- driver for translating OpenType fonts to TeX metrics
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#ifdef WIN32
-# define _USE_MATH_DEFINES
-#endif
-#include <efont/psres.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1bounds.hh>
-#include <efont/otfcmap.hh>
-#include <efont/otfname.hh>
-#include <efont/otfgsub.hh>
-#include <efont/ttfkern.hh>
-#include "glyphfilter.hh"
-#include "metrics.hh"
-#include "dvipsencoding.hh"
-#include "automatic.hh"
-#include "secondary.hh"
-#include "kpseinterface.h"
-#include "util.hh"
-#include "otftotfm.hh"
-#include <lcdf/md5.h>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <lcdf/hashmap.hh>
-#include <lcdf/straccum.hh>
-#include <efont/cff.hh>
-#include <efont/otf.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#include <signal.h>
-#include <algorithm>
-#include <math.h>
-/* M_PI isn't defined in C99 */
-#ifndef M_PI
-# define M_PI 3.14159265358979323846264338327
-#endif
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#ifdef _MSC_VER
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define QUERY_SCRIPTS_OPT 303
-#define QUERY_FEATURES_OPT 304
-#define KPATHSEA_DEBUG_OPT 305
-
-#define SCRIPT_OPT 311
-#define FEATURE_OPT 312
-#define ENCODING_OPT 313
-#define LITERAL_ENCODING_OPT 314
-#define EXTEND_OPT 315
-#define SLANT_OPT 316
-#define LETTERSPACE_OPT 317
-#define LIGKERN_OPT 318
-#define CODINGSCHEME_OPT 319
-#define UNICODING_OPT 320
-#define BOUNDARY_CHAR_OPT 321
-#define DESIGN_SIZE_OPT 322
-#define MINIMUM_KERN_OPT 323
-#define ALTSELECTOR_CHAR_OPT 324
-#define INCLUDE_ALTERNATES_OPT 325
-#define EXCLUDE_ALTERNATES_OPT 326
-#define CLEAR_ALTERNATES_OPT 327
-#define ALTSELECTOR_FEATURE_OPT 328
-#define DEFAULT_LIGKERN_OPT 329
-#define NO_ECOMMAND_OPT 330
-#define LETTER_FEATURE_OPT 331
-#define INCLUDE_SUBS_OPT 332
-#define EXCLUDE_SUBS_OPT 333
-#define CLEAR_SUBS_OPT 334
-#define SUBS_FILTER_OPT 335
-#define ALTERNATES_FILTER_OPT 336
-#define SPACE_FACTOR_OPT 337
-#define MATH_SPACING_OPT 338
-#define POSITION_OPT 339
-#define WARN_MISSING_OPT 340
-#define BASE_ENCODINGS_OPT 341
-#define FIXED_PITCH_OPT 342
-#define ITALIC_ANGLE_OPT 343
-#define PROPORTIONAL_WIDTH_OPT 344
-#define X_HEIGHT_OPT 345
-
-#define AUTOMATIC_OPT 350
-#define FONT_NAME_OPT 351
-#define QUIET_OPT 352
-#define GLYPHLIST_OPT 353
-#define VENDOR_OPT 354
-#define TYPEFACE_OPT 355
-#define NOCREATE_OPT 356
-#define VERBOSE_OPT 357
-#define FORCE_OPT 358
-
-#define VIRTUAL_OPT 360
-#define PL_OPT 361
-#define TFM_OPT 362
-#define MAP_FILE_OPT 363
-#define OUTPUT_ENCODING_OPT 364
-
-#define DIR_OPTS 380
-#define ENCODING_DIR_OPT (DIR_OPTS + O_ENCODING)
-#define TFM_DIR_OPT (DIR_OPTS + O_TFM)
-#define PL_DIR_OPT (DIR_OPTS + O_PL)
-#define VF_DIR_OPT (DIR_OPTS + O_VF)
-#define VPL_DIR_OPT (DIR_OPTS + O_VPL)
-#define TYPE1_DIR_OPT (DIR_OPTS + O_TYPE1)
-#define TYPE42_DIR_OPT (DIR_OPTS + O_TYPE42)
-#define TRUETYPE_DIR_OPT (DIR_OPTS + O_TRUETYPE)
-#define DIR_OPT (DIR_OPTS + NUMODIR)
-
-#define NO_OUTPUT_OPTS 400
-#define NO_ENCODING_OPT (NO_OUTPUT_OPTS + G_ENCODING)
-#define NO_TYPE1_OPT (NO_OUTPUT_OPTS + G_TYPE1)
-#define NO_DOTLESSJ_OPT (NO_OUTPUT_OPTS + G_DOTLESSJ)
-#define NO_UPDMAP_OPT (NO_OUTPUT_OPTS + G_UPDMAP)
-#define UPDMAP_SYS_OPT (NO_OUTPUT_OPTS + G_UPDMAP_USER)
-
-#define YES_OUTPUT_OPTS 2000
-#define TRUETYPE_OPT (YES_OUTPUT_OPTS + G_TRUETYPE)
-#define TYPE42_OPT (YES_OUTPUT_OPTS + G_TYPE42)
-#define UPDMAP_USER_OPT (YES_OUTPUT_OPTS + G_UPDMAP_USER)
-
-#define CHAR_OPTTYPE (Clp_ValFirstUser)
-
-static Clp_Option options[] = {
-
- { "script", 's', SCRIPT_OPT, Clp_ValString, 0 },
- { "feature", 'f', FEATURE_OPT, Clp_ValString, 0 },
- { "letter-feature", 0, LETTER_FEATURE_OPT, Clp_ValString, 0 },
- { "lf", 0, LETTER_FEATURE_OPT, Clp_ValString, 0 },
- { "include-substitutions", 0, INCLUDE_SUBS_OPT, Clp_ValString, 0 },
- { "exclude-substitutions", 0, EXCLUDE_SUBS_OPT, Clp_ValString, 0 },
- { "clear-substitutions", 0, CLEAR_SUBS_OPT, 0, 0 },
- { "substitution-filter", 0, SUBS_FILTER_OPT, Clp_ValString, 0 },
- { "subs-filter", 0, SUBS_FILTER_OPT, Clp_ValString, 0 },
- { "encoding", 'e', ENCODING_OPT, Clp_ValString, 0 },
- { "literal-encoding", 0, LITERAL_ENCODING_OPT, Clp_ValString, 0 },
- { "base-encodings", 0, BASE_ENCODINGS_OPT, Clp_ValString, 0 },
- { "extend", 'E', EXTEND_OPT, Clp_ValDouble, 0 },
- { "slant", 'S', SLANT_OPT, Clp_ValDouble, 0 },
- { "letterspacing", 'L', LETTERSPACE_OPT, Clp_ValInt, 0 },
- { "letterspace", 'L', LETTERSPACE_OPT, Clp_ValInt, 0 },
- { "min-kern", 'k', MINIMUM_KERN_OPT, Clp_ValDouble, 0 },
- { "minimum-kern", 'k', MINIMUM_KERN_OPT, Clp_ValDouble, 0 },
- { "kern-precision", 'k', MINIMUM_KERN_OPT, Clp_ValDouble, 0 },
- { "ligkern", 0, LIGKERN_OPT, Clp_ValString, 0 },
- { "position", 0, POSITION_OPT, Clp_ValString, 0 },
- { "warn-missing", 0, WARN_MISSING_OPT, 0, Clp_Negate },
- { "no-encoding-commands", 0, NO_ECOMMAND_OPT, 0, 0 },
- { "default-ligkern", 0, DEFAULT_LIGKERN_OPT, 0, Clp_Negate },
- { "unicoding", 0, UNICODING_OPT, Clp_ValString, 0 },
- { "coding-scheme", 0, CODINGSCHEME_OPT, Clp_ValString, 0 },
- { "boundary-char", 0, BOUNDARY_CHAR_OPT, CHAR_OPTTYPE, 0 },
- { "altselector", 0, ALTSELECTOR_CHAR_OPT, CHAR_OPTTYPE, Clp_PreferredMatch },
- { "altselector-char", 0, ALTSELECTOR_CHAR_OPT, CHAR_OPTTYPE, 0 },
- { "altselector-feature", 0, ALTSELECTOR_FEATURE_OPT, Clp_ValString, 0 },
- { "design-size", 0, DESIGN_SIZE_OPT, Clp_ValDouble, 0 },
- { "include-alternates", 0, INCLUDE_ALTERNATES_OPT, Clp_ValString, 0 },
- { "exclude-alternates", 0, EXCLUDE_ALTERNATES_OPT, Clp_ValString, 0 },
- { "clear-alternates", 0, CLEAR_ALTERNATES_OPT, 0, 0 },
- { "alternates-filter", 0, ALTERNATES_FILTER_OPT, Clp_ValString, 0 },
- { "space-factor", 0, SPACE_FACTOR_OPT, Clp_ValDouble, 0 },
- { "math-spacing", 0, MATH_SPACING_OPT, CHAR_OPTTYPE, Clp_Negate | Clp_Optional },
- { "fixed-pitch", 0, FIXED_PITCH_OPT, 0, Clp_Negate },
- { "fixed-width", 0, FIXED_PITCH_OPT, 0, Clp_Negate },
- { "proportional-width", 0, PROPORTIONAL_WIDTH_OPT, 0, Clp_Negate },
- { "italic-angle", 0, ITALIC_ANGLE_OPT, Clp_ValDouble, 0 },
- { "x-height", 0, X_HEIGHT_OPT, Clp_ValString, 0 },
-
- { "pl", 'p', PL_OPT, 0, Clp_Negate },
- { "tfm", 't', TFM_OPT, 0, Clp_Negate }, // not in documentation
- { "virtual", 0, VIRTUAL_OPT, 0, Clp_Negate },
- { "no-encoding", 0, NO_ENCODING_OPT, 0, 0 },
- { "no-type1", 0, NO_TYPE1_OPT, 0, 0 },
- { "no-dotlessj", 0, NO_DOTLESSJ_OPT, 0, 0 },
- { "no-updmap", 0, NO_UPDMAP_OPT, 0, 0 },
- { "updmap-sys", 0, UPDMAP_SYS_OPT, 0, 0 },
- { "updmap-user", 0, UPDMAP_USER_OPT, 0, 0 },
- { "truetype", 0, TRUETYPE_OPT, 0, Clp_Negate },
- { "type42", 0, TYPE42_OPT, 0, Clp_Negate },
- { "map-file", 0, MAP_FILE_OPT, Clp_ValString, Clp_Negate },
- { "output-encoding", 0, OUTPUT_ENCODING_OPT, Clp_ValString, Clp_Optional },
-
- { "automatic", 'a', AUTOMATIC_OPT, 0, Clp_Negate },
- { "name", 'n', FONT_NAME_OPT, Clp_ValString, 0 },
- { "vendor", 'v', VENDOR_OPT, Clp_ValString, 0 },
- { "typeface", 0, TYPEFACE_OPT, Clp_ValString, 0 },
-
- { "directory", 0, DIR_OPT, Clp_ValString, 0 },
- { "encoding-directory", 0, ENCODING_DIR_OPT, Clp_ValString, 0 },
- { "pl-directory", 0, PL_DIR_OPT, Clp_ValString, 0 },
- { "tfm-directory", 0, TFM_DIR_OPT, Clp_ValString, 0 },
- { "vpl-directory", 0, VPL_DIR_OPT, Clp_ValString, 0 },
- { "vf-directory", 0, VF_DIR_OPT, Clp_ValString, 0 },
- { "type1-directory", 0, TYPE1_DIR_OPT, Clp_ValString, 0 },
- { "type42-directory", 0, TYPE42_DIR_OPT, Clp_ValString, 0 },
- { "truetype-directory", 0, TRUETYPE_DIR_OPT, Clp_ValString, 0 },
-
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "glyphlist", 0, GLYPHLIST_OPT, Clp_ValString, 0 },
- { "no-create", 0, NOCREATE_OPT, 0, 0 },
- { "force", 0, FORCE_OPT, 0, Clp_Negate },
- { "verbose", 'V', VERBOSE_OPT, 0, Clp_Negate },
- { "kpathsea-debug", 0, KPATHSEA_DEBUG_OPT, Clp_ValInt, 0 },
-
- { "help", 'h', HELP_OPT, 0, 0 },
- { "version", 0, VERSION_OPT, 0, 0 },
-
- { "query-features", 0, QUERY_FEATURES_OPT, 0, 0 },
- { "qf", 0, QUERY_FEATURES_OPT, 0, 0 },
- { "query-scripts", 0, QUERY_SCRIPTS_OPT, 0, 0 },
- { "qs", 0, QUERY_SCRIPTS_OPT, 0, 0 },
-
-};
-
-static const char * const default_ligkerns = "\
-space l =: lslash ; space L =: Lslash ; \
-question quoteleft =: questiondown ; \
-exclam quoteleft =: exclamdown ; \
-hyphen hyphen =: endash ; endash hyphen =: emdash ; \
-quoteleft quoteleft =: quotedblleft ; \
-quoteright quoteright =: quotedblright ;";
-
-struct BaseEncoding {
- String font_name;
- String secondary;
- DvipsEncoding encoding;
-};
-
-static const char *program_name;
-static String current_time;
-static StringAccum invocation;
-
-static PermString::Initializer perm_initializer;
-static PermString dot_notdef(".notdef");
-
-static Vector<Efont::OpenType::Tag> interesting_scripts;
-static Vector<Efont::OpenType::Tag> interesting_features;
-static Vector<Efont::OpenType::Tag> altselector_features;
-static GlyphFilter null_filter;
-static HashMap<Efont::OpenType::Tag, GlyphFilter*> feature_filters(0);
-static HashMap<Efont::OpenType::Tag, GlyphFilter*> altselector_feature_filters(0);
-
-static String font_name;
-static String encoding_file;
-static Vector<BaseEncoding *> base_encodings;
-static double extend;
-static double slant;
-int letterspace;
-static double design_size;
-static double minimum_kern = 2.0;
-static double space_factor = 1.0;
-static bool math_spacing = false;
-static int skew_char = -1;
-static bool override_is_fixed_pitch = false;
-static bool is_fixed_pitch;
-static bool override_italic_angle = false;
-static double italic_angle;
-static int override_x_height = FontInfo::x_height_auto;
-static double x_height;
-
-static String out_encoding_file;
-static String out_encoding_name;
-
-unsigned output_flags = G_ENCODING | G_METRICS | G_VMETRICS | G_PSFONTSMAP | G_TYPE1 | G_DOTLESSJ | G_UPDMAP | G_TRUETYPE;
-
-bool automatic = false;
-bool verbose = false;
-bool no_create = false;
-bool quiet = false;
-bool force = false;
-
-static String otf_data;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... FONT", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<Otftotfm%> generates TeX font metrics files from an OpenType font (PostScript\n\
-flavor only), including ligatures, kerns, and some positionings. Supply\n\
-%<-s SCRIPT[.LANG]%> options to specify a language system, %<-f FEAT%> options to\n\
-turn on optional OpenType features, and a %<-e ENC%> option to specify a base\n\
-encoding. Output files are written to the current directory (but see\n\
-%<--automatic%> and the %<directory%> options).\n\
-\n\
-Usage: %s [-a] [OPTIONS] OTFFILE FONTNAME\n\n",
- program_name);
- uerrh.message("\
-Font feature and transformation options:\n\
- -s, --script=SCRIPT[.LANG] Use features for script SCRIPT[.LANG] [latn].\n\
- -f, --feature=FEAT Activate feature FEAT.\n\
- --lf, --letter-feature=FEAT Activate feature FEAT for letters.\n\
- --subs-filter=PAT Substitute only characters matching PAT.\n\
- --include-subs=PAT Same, but cumulative.\n\
- --exclude-subs=PAT Don%,t substitute characters matching PAT.\n\
- --clear-subs Clear included/excluded substitutions.\n\
- -E, --extend=F Widen characters by a factor of F.\n\
- -S, --slant=AMT Oblique characters by AMT, generally <<1.\n\
- -L, --letterspacing=AMT Letterspace each character by AMT units.\n\
- --math-spacing[=SKEWCH] Use letterspacing appropriate for math.\n\
- -k, --min-kern=N Omit kerns with absolute value < N [2.0].\n\
- --space-factor=F Scale wordspace by a factor of F.\n\
- --design-size=SIZE Set font design size to SIZE.\n\
- --fixed-width Set fixed width (no space stretch).\n\
- --italic-angle=ANGLE Set font italic angle (for positioning accents).\n\
- --x-height=AMT Set x-height to AMT units.\n\
-\n");
- uerrh.message("\
-Encoding options:\n\
- -e, --encoding=FILE Use DVIPS encoding FILE as a base encoding.\n\
- --boundary-char=CHAR Set the boundary character to CHAR.\n\
- --altselector-char=CHAR Set the alternate selector character to CHAR.\n\
- --altselector-feature=F Activate feature F for --altselector-char.\n\
- --alternates-filter=PAT Include only alternate characters matching PAT.\n\
- --include-alternates=PAT Same as --alternates-filter, but cumulative.\n\
- --exclude-alternates=PAT Ignore alternate characters matching PAT.\n\
- --clear-alternates Clear included/excluded alternates.\n\
- --ligkern=COMMAND Add a ligature or kern.\n\
- --position=COMMAND Add a POSITION command.\n\
- --unicoding=COMMAND Add a UNICODING command.\n\
- --no-encoding-commands Ignore encoding file%,s LIGKERN/UNICODINGs.\n\
- --no-default-ligkern Don%,t include default LIGKERNs.\n\
- --coding-scheme=SCHEME Set the output coding scheme to SCHEME.\n\
- --warn-missing Warn about characters not supported by font.\n\
- --literal-encoding=FILE Use DVIPS encoding FILE verbatim.\n\
- --base-encodings=FILE Output can refer to base fonts named in FILE.\n\
-\n");
- uerrh.message("\
-Automatic mode options:\n\
- -a, --automatic Install in a TeX Directory Structure.\n\
- -v, --vendor=NAME Set font vendor for TDS [lcdftools].\n\
- --typeface=NAME Set typeface name for TDS [<font family>].\n\
- --no-type1 Do not generate Type 1 fonts.\n\
- --no-dotlessj Do not generate dotless-j fonts.\n\
- --no-truetype Do not install TrueType-flavored input fonts.\n\
- --no-updmap Do not run updmap.\n\
- --updmap-user Run `updmap-user` instead of `updmap-sys`.\n\
-\n\
-Output options:\n\
- -n, --name=NAME Generated font name is NAME.\n\
- -p, --pl Output human-readable PL/VPLs, not TFM/VFs.\n\
- --no-virtual Do not generate VFs or VPLs.\n\
- --no-encoding Do not generate an encoding file.\n\
- --no-map Do not generate a psfonts.map line.\n\
- --output-encoding[=FILE] Only generate an encoding file.\n\
-\n");
- uerrh.message("\
-File location options:\n\
- --tfm-directory=DIR Put TFM files in DIR [.|automatic].\n\
- --pl-directory=DIR Put PL files in DIR [.|automatic].\n\
- --vf-directory=DIR Put VF files in DIR [.|automatic].\n\
- --vpl-directory=DIR Put VPL files in DIR [.|automatic].\n\
- --encoding-directory=DIR Put encoding files in DIR [.|automatic].\n\
- --type1-directory=DIR Put Type 1 fonts in DIR [automatic].\n\
- --truetype-directory=DIR Put TrueType fonts in DIR [automatic].\n\
- --directory=DIR Put output in DIR [.|automatic].\n\
- --map-file=FILE Update FILE with psfonts.map information [-].\n\
-\n\
-Other options:\n\
- --glyphlist=FILE Use FILE to map Adobe glyph names to Unicode.\n\
- -V, --verbose Print progress information to standard error.\n\
- --no-create Print messages, don't modify any files.\n\
- --force Generate files even if versions already exist.\n"
-#if HAVE_KPATHSEA
-" --kpathsea-debug=MASK Set path searching debug flags to MASK.\n"
-#endif
-" -h, --help Print this message and exit.\n\
- -q, --quiet Do not generate any error messages.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n");
-}
-
-#ifndef WIN32
-extern "C" {
-static void
-sigchld_handler(int s)
-{
-#if !HAVE_SIGACTION
- signal(s, sigchld_handler);
-#else
- (void) s;
-#endif
-}
-}
-
-static void
-handle_sigchld()
-{
-#ifdef SIGCHLD
- int sigchld = SIGCHLD;
-#else
- int sigchld = SIGCLD;
-#endif
-#if HAVE_SIGACTION
- struct sigaction sa;
- sigaction(sigchld, 0, &sa);
- sa.sa_handler = sigchld_handler;
- sa.sa_flags = 0;
- sigaction(sigchld, &sa, 0);
-#else
- signal(sigchld, sigchld_handler);
-#endif
-}
-#endif
-
-
-// MAIN
-
-String
-suffix_font_name(const String &font_name, const String &suffix)
-{
- const char *begin = font_name.begin(), *end = font_name.end();
- while (end > begin && isdigit((unsigned char) end[-1]))
- --end;
- if (end < font_name.end() && end > begin && end[-1] != '-' && end[-1] != '+')
- end = font_name.end();
- else
- while (end > begin && (end[-1] == '-' || end[-1] == '+'))
- --end;
- if (end == begin)
- end = font_name.end();
- return font_name.substring(begin, end) + suffix + font_name.substring(end, font_name.end());
-}
-
-static inline String
-make_base_font_name(const String &font_name)
-{
- return suffix_font_name(font_name, "--base");
-}
-
-static double
-get_design_size(const FontInfo &finfo)
-{
- try {
- String gpos_table = finfo.otf->table("GPOS");
- if (!gpos_table)
- throw OpenType::Error();
-
- ErrorHandler *errh = ErrorHandler::silent_handler();
- OpenType::Gpos gpos(gpos_table, errh);
-
- // extract 'size' feature(s)
- int required_fid;
- Vector<int> fids;
- for (const OpenType::Tag *t = interesting_scripts.begin(); t < interesting_scripts.end(); t += 2)
- gpos.script_list().features(t[0], t[1], required_fid, fids, 0, false);
-
- int size_fid = gpos.feature_list().find(OpenType::Tag("size"), fids);
- if (size_fid < 0)
- throw OpenType::Error();
-
- // old Adobe fonts implement an old, incorrect idea
- // of what the FeatureParams offset means.
- OpenType::Name name(finfo.otf->table("name"), errh);
- OpenType::Data size_data = gpos.feature_list().size_params(size_fid, name, errh);
- if (!size_data.length())
- throw OpenType::Error();
-
- double result = size_data.u16(0) / 10.;
- // check for insane design sizes
- if (result < 1 || result > 1000)
- throw OpenType::Error();
-
- // return a number in 'pt', not 'bp'
- return result * 72.27 / 72.;
-
- } catch (OpenType::Error) {
- return 10.0;
- }
-}
-
-static const char * const digit_names[] = {
- "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
-};
-
-static inline const char *
-lig_context_str(int ctx)
-{
- return (ctx == 0 ? "LIG" : (ctx < 0 ? "/LIG" : "LIG/"));
-}
-
-static double max_printed_real;
-
-namespace {
-struct Printer {
- Printer(FILE* f, unsigned design_units, unsigned units_per_em)
- : f_(f), du_((double) design_units / units_per_em),
- round_(design_units == 1000) {
- }
- inline double transform(double value) const;
- void print_transformed(const char* prefix, double value) const;
- void print(const char* prefix, double value) const;
- String render(double value) const;
- FILE* f_;
- double du_;
- bool round_;
-};
-
-inline double Printer::transform(double value) const {
- value *= du_;
- if (round_)
- value = ceil(value);
- return value;
-}
-
-void Printer::print_transformed(const char* prefix, double value) const {
- if (round_ || value == 0 || (value > 0.01 && value - floor(value) < 0.01))
- fprintf(f_, "%s R %g)\n", prefix, value);
- else
- fprintf(f_, "%s R %.4f)\n", prefix, value);
- max_printed_real = std::max(max_printed_real, fabs(value));
-}
-
-void Printer::print(const char* prefix, double value) const {
- print_transformed(prefix, transform(value));
-}
-
-String Printer::render(double value) const {
- value = transform(value);
- if (round_ || value == 0 || (value > 0.01 && value - floor(value) < 0.01))
- return String(value);
- else {
- char buf[128];
- sprintf(buf, "%.4f", value);
- return String(buf);
- }
-}
-} // namespace
-
-double
-font_slant(const FontInfo &finfo)
-{
- double val = finfo.italic_angle();
- return -tan(val * M_PI / 180.0) + slant;
-}
-
-static void
-output_pl(Metrics &metrics, const String &ps_name, int boundary_char,
- const FontInfo &finfo, bool vpl,
- const String &filename, ErrorHandler *errh)
-{
- // create file
- if (no_create) {
- errh->message("would create %s", filename.c_str());
- return;
- }
-
- if (verbose)
- errh->message("creating %s", filename.c_str());
- FILE *f = fopen(filename.c_str(), "wb");
- if (!f) {
- errh->error("%s: %s", filename.c_str(), strerror(errno));
- return;
- }
-
- // XXX check DESIGNSIZE and DESIGNUNITS for correctness
-
- fprintf(f, "(COMMENT Created by '%s'%s)\n", invocation.c_str(), current_time.c_str());
-
- // calculate a TeX FAMILY name using afm2tfm's algorithm
- String family_name = String("TeX-") + ps_name;
- if (family_name.length() > 19)
- family_name = family_name.substring(0, 9) + family_name.substring(-10);
- fprintf(f, "(FAMILY %s)\n", family_name.c_str());
-
- if (metrics.coding_scheme())
- fprintf(f, "(CODINGSCHEME %.39s)\n", String(metrics.coding_scheme()).c_str());
- int design_units = metrics.design_units();
-
- if (design_size <= 0)
- design_size = get_design_size(finfo);
- max_printed_real = 0;
-
- fprintf(f, "(DESIGNSIZE R %.1f)\n"
- "(DESIGNUNITS R %d.0)\n"
- "(COMMENT DESIGNSIZE (1 em) IS IN POINTS)\n"
- "(COMMENT OTHER DIMENSIONS ARE MULTIPLES OF DESIGNSIZE/%d)\n"
- "(FONTDIMEN\n", design_size, design_units, design_units);
-
- // figure out font dimensions
- Transform font_xform;
- if (extend)
- font_xform.scale(extend, 1);
- if (slant)
- font_xform.shear(slant);
- double bounds[4], width;
- Printer pr(f, design_units, metrics.units_per_em());
-
- double actual_slant = font_slant(finfo);
- if (actual_slant)
- fprintf(f, " (SLANT R %g)\n", actual_slant);
-
- if (char_bounds(bounds, width, finfo, font_xform, ' ')) {
- // advance space width by letterspacing, scale by space_factor
- double space_width = (width + (vpl ? letterspace : 0)) * space_factor;
- pr.print(" (SPACE", space_width);
- if (finfo.is_fixed_pitch()) {
- // fixed-pitch: no space stretch or shrink
- pr.print(" (STRETCH", 0);
- pr.print(" (SHRINK", 0);
- pr.print(" (EXTRASPACE", space_width);
- } else {
- pr.print(" (STRETCH", space_width / 2.);
- pr.print(" (SHRINK", space_width / 3.);
- pr.print(" (EXTRASPACE", space_width / 6.);
- }
- }
-
- double x_height = finfo.x_height(font_xform);
- if (x_height < finfo.units_per_em())
- pr.print(" (XHEIGHT", x_height);
-
- pr.print(" (QUAD", finfo.units_per_em());
- fprintf(f, " )\n");
-
- if (boundary_char >= 0)
- fprintf(f, "(BOUNDARYCHAR D %d)\n", boundary_char);
-
- // figure out font mapping
- int mapped_font0 = 0;
- Vector<int> font_mapping;
- if (vpl) {
- int vpl_first_font = (metrics.need_base() ? 0 : 1);
- font_mapping.assign(metrics.n_mapped_fonts(), 0);
- if (vpl_first_font == 1 && font_mapping.size() == 1)
- font_mapping.push_back(0);
- // how many times is each font used?
- Vector<Setting> settings;
- for (int i = 0; i < 256; i++)
- if (metrics.setting(i, settings)) {
- int font_number = 0;
- for (const Setting *s = settings.begin(); s < settings.end(); s++)
- if (s->op == Setting::SHOW)
- font_mapping[font_number]++;
- else if (s->op == Setting::FONT)
- font_number = (int) s->x;
- }
- // make sure the most-used font is number 0
- mapped_font0 = std::max_element(font_mapping.begin(), font_mapping.end()) - font_mapping.begin();
- // prepare the mapping
- for (int i = vpl_first_font; i < font_mapping.size(); i++)
- font_mapping[i] = i - vpl_first_font;
- font_mapping[mapped_font0] = 0;
- font_mapping[vpl_first_font] = mapped_font0 - vpl_first_font;
- if (vpl_first_font != 0)
- font_mapping[0] = font_mapping.size() - 1;
- // write MAPFONT
- for (int i = 0; i < metrics.n_mapped_fonts() - vpl_first_font; i++) {
- int j = std::find(font_mapping.begin(), font_mapping.end(), i) - font_mapping.begin();
- String name = metrics.mapped_font_name(j);
- if (!name)
- name = make_base_font_name(font_name);
- fprintf(f, "(MAPFONT D %d\n (FONTNAME %s)\n (FONTDSIZE R %.1f)\n )\n", i, name.c_str(), design_size);
- }
- } else
- for (int i = 0; i < metrics.n_mapped_fonts(); i++)
- font_mapping.push_back(i);
-
- // figure out the proper names and numbers for glyphs
- Vector<String> glyph_ids;
- Vector<String> glyph_comments(257, String());
- Vector<String> glyph_base_comments(257, String());
- for (int i = 0; i < metrics.encoding_size(); i++) {
- if (metrics.glyph(i)) {
- PermString name = metrics.code_name(i), expected_name;
- if (i >= '0' && i <= '9')
- expected_name = digit_names[i - '0'];
- else if ((i >= 'A' && i <= 'Z') || (i >= 'a' && i <= 'z'))
- expected_name = PermString((char)i);
- String glyph_comment;
- if (name != expected_name)
- glyph_comment = " (COMMENT " + String(name) + ")";
-
- int base = metrics.base_code(i);
- if (base >= 0 && base < 256)
- glyph_base_comments[base] = glyph_comment;
-
- if (i >= 256)
- continue;
-
- char* expected_name_end;
- if (expected_name
- && (name == expected_name
- || (name.length() == 7
- && memcmp(name.data(), "uni00", 5) == 0
- && strtol(name.c_str() + 3, &expected_name_end, 16) == i
- && *expected_name_end == 0)))
- glyph_ids.push_back("C " + String((char)i));
- else
- glyph_ids.push_back("D " + String(i));
-
- glyph_comments[i] = glyph_base_comments[i] = glyph_comment;
-
- } else if (i < 256)
- glyph_ids.push_back("D " + String(i));
- }
- // finally, BOUNDARYCHAR
- glyph_ids.push_back("BOUNDARYCHAR");
-
- // LIGTABLE
- fprintf(f, "(LIGTABLE\n");
- Vector<int> lig_code2, lig_outcode, lig_context, kern_code2, kern_amt;
- // don't print KRN x after printing LIG x
- uint32_t used[8];
- bool any_ligs = false;
- StringAccum omitted_clig_sa;
- for (int i = 0; i <= 256; i++)
- if (metrics.glyph(i) && minimum_kern < 10000) {
- int any_lig = metrics.ligatures(i, lig_code2, lig_outcode, lig_context);
- int any_kern = metrics.kerns(i, kern_code2, kern_amt);
- if (any_lig || any_kern) {
- StringAccum kern_sa;
- memset(used, 0, sizeof(used));
- for (int j = 0; j < lig_code2.size(); j++) {
- if (lig_outcode[j] < 257) {
- kern_sa << " (" << lig_context_str(lig_context[j])
- << ' ' << glyph_ids[lig_code2[j]]
- << ' ' << glyph_ids[lig_outcode[j]]
- << ')' << glyph_comments[lig_code2[j]]
- << glyph_comments[lig_outcode[j]] << '\n';
- used[lig_code2[j] >> 5] |= (1 << (lig_code2[j] & 0x1F));
- } else {
- omitted_clig_sa << "(COMMENT omitted "
- << lig_context_str(lig_context[j])
- << ' ' << metrics.code_name(i)
- << ' ' << metrics.code_name(lig_code2[j])
- << ' ' << metrics.code_name(lig_outcode[j])
- << ")\n";
- }
- }
- for (Vector<int>::const_iterator k2 = kern_code2.begin(); k2 < kern_code2.end(); k2++)
- if (!(used[*k2 >> 5] & (1 << (*k2 & 0x1F)))) {
- double this_kern = kern_amt[k2 - kern_code2.begin()];
- if (fabs(this_kern) >= minimum_kern)
- kern_sa << " (KRN " << glyph_ids[*k2]
- << " R " << pr.render(this_kern)
- << ')' << glyph_comments[*k2] << '\n';
- }
- if (kern_sa) {
- if (any_ligs)
- fprintf(f, "\n");
- fprintf(f, " (LABEL %s)%s\n%s (STOP)\n", glyph_ids[i].c_str(), glyph_comments[i].c_str(), kern_sa.c_str());
- any_ligs = true;
- }
- }
- }
- fprintf(f, " )\n");
- if (omitted_clig_sa)
- fprintf(f, "%s\n", omitted_clig_sa.c_str());
-
- // CHARACTERs
- Vector<Setting> settings;
- StringAccum sa;
- Vector<Point> push_stack;
-
- for (int i = 0; i < 256; i++)
- if (metrics.setting(i, settings)) {
- fprintf(f, "(CHARACTER %s%s\n", glyph_ids[i].c_str(), glyph_comments[i].c_str());
-
- // unparse settings into DVI commands
- sa.clear();
- push_stack.clear();
- CharstringBounds boundser(font_xform);
- int program_number = mapped_font0;
- const CharstringProgram *program = finfo.program();
- for (const Setting *s = settings.begin(); s < settings.end(); s++)
- switch (s->op) {
-
- case Setting::SHOW:
- if (vpl || program == finfo.program())
- boundser.char_bounds(program->glyph_context(s->y));
- // 3.Aug.2004 -- reported by Marco Kuhlmann: Don't use
- // glyph_ids[] array when looking at a different font.
- if (program_number == 0)
- sa << " (SETCHAR " << glyph_ids[s->x] << ')' << glyph_base_comments[s->x] << "\n";
- else
- sa << " (SETCHAR D " << s->x << ")\n";
- break;
-
- case Setting::MOVE: {
- int x = 0, y = 0;
- while (s+1 < settings.end() && s[1].op == Setting::MOVE)
- x += s->x, y += s->y, s++;
- if (vpl)
- boundser.translate(s->x + x, s->y + y);
- if (s->x + x)
- sa << " (MOVERIGHT R " << pr.render(s->x + x) << ")\n";
- if (s->y + y)
- sa << " (MOVEUP R " << pr.render(s->y + y) << ")\n";
- break;
- }
-
- case Setting::RULE:
- if (vpl) {
- boundser.mark(Point(0, 0));
- boundser.mark(Point(s->x, s->y));
- boundser.translate(s->x, 0);
- }
- sa << " (SETRULE R " << pr.render(s->y) << " R " << pr.render(s->x) << ")\n";
- break;
-
- case Setting::FONT:
- if ((int) s->x != program_number) {
- program = metrics.mapped_font((int) s->x);
- program_number = (int) s->x;
- sa << " (SELECTFONT D " << font_mapping[program_number] << ")\n";
- }
- break;
-
- case Setting::PUSH:
- push_stack.push_back(boundser.transform(Point(0, 0)));
- sa << " (PUSH)\n";
- break;
-
- case Setting::POP: {
- assert(push_stack.size());
- Point p = push_stack.back() - boundser.transform(Point(0, 0));
- if (vpl)
- boundser.translate(p.x, p.y);
- push_stack.pop_back();
- sa << " (POP)\n";
- break;
- }
-
- case Setting::SPECIAL: {
- bool needhex = false;
- for (const char *str = s->s.begin(); str < s->s.end() && !needhex; str++)
- if (*str < ' ' || *str > '~' || *str == '(' || *str == ')')
- needhex = true;
- if (needhex) {
- sa << " (SPECIALHEX ";
- for (const char *str = s->s.begin(); str < s->s.end(); str++) {
- static const char hexdig[] = "0123456789ABCDEF";
- int val = (unsigned char) *str;
- sa << hexdig[val >> 4] << hexdig[val & 0xF];
- }
- sa << ")\n";
- } else
- sa << " (SPECIAL " << s->s << ")\n";
- break;
- }
-
- }
-
- assert(push_stack.size() == 0);
-
- // output information
- boundser.output(bounds, width);
- pr.print(" (CHARWD", width);
- if (bounds[3] > 0)
- pr.print(" (CHARHT", bounds[3]);
- if (bounds[1] < 0)
- pr.print(" (CHARDP", -bounds[1]);
- if (bounds[2] > width)
- pr.print_transformed(" (CHARIC", pr.transform(bounds[2]) - pr.transform(width));
- if (vpl && (settings.size() > 1 || settings[0].op != Setting::SHOW))
- fprintf(f, " (MAP\n%s )\n", sa.c_str());
- fprintf(f, " )\n");
- }
-
- // at last, close the file
- fclose(f);
-
- // Did we print a number too big for TeX to handle? If so, try again.
- if (max_printed_real >= 2047) {
- if (metrics.design_units() <= 1)
- errh->fatal("This font appears to be broken. It has characters so big that the PL format\ncannot represent them.");
- metrics.set_design_units(metrics.design_units() > 200 ? metrics.design_units() - 250 : 1);
- if (verbose)
- errh->message("the font%,s metrics overflow the limits of PL files\n(reducing DESIGNUNITS to %d and trying again)", metrics.design_units());
- output_pl(metrics, ps_name, boundary_char, finfo, vpl, filename, errh);
- }
-}
-
-struct Lookup {
- bool used;
- bool required;
- Vector<OpenType::Tag> features;
- GlyphFilter* filter;
- Lookup() : used(false), required(false), filter(0) { }
-};
-
-static void
-find_lookups(const OpenType::ScriptList& scripts, const OpenType::FeatureList& features, Vector<Lookup>& lookups, ErrorHandler* errh)
-{
- Vector<int> fids, lookupids;
- int required;
-
- // go over all scripts
- for (int i = 0; i < interesting_scripts.size(); i += 2) {
- OpenType::Tag script = interesting_scripts[i];
- OpenType::Tag langsys = interesting_scripts[i+1];
-
- // collect features applying to this script
- scripts.features(script, langsys, required, fids, errh);
-
- // only use the selected features
- features.filter(fids, interesting_features);
-
- // mark features as having been used
- for (int j = (required < 0 ? 0 : -1); j < fids.size(); j++) {
- int fid = (j < 0 ? required : fids[j]);
- OpenType::Tag ftag = features.tag(fid);
- if (features.lookups(fid, lookupids, errh) < 0)
- lookupids.clear();
- for (int k = 0; k < lookupids.size(); k++) {
- int l = lookupids[k];
- if (l < 0 || l >= lookups.size())
- errh->error("lookup for %<%s%> feature out of range", OpenType::Tag::langsys_text(script, langsys).c_str());
- else {
- lookups[l].used = true;
- lookups[l].features.push_back(ftag);
- if (j < 0)
- lookups[l].required = true;
- }
- }
- }
- }
-
- // now check for compatible glyph filters
- for (Lookup* l = lookups.begin(); l < lookups.end(); l++)
- if (l->used && !l->required) {
- l->filter = feature_filters[l->features[0]];
- for (OpenType::Tag* ft = l->features.begin() + 1; ft < l->features.end(); ft++)
- if (!l->filter->check_eq(*feature_filters[*ft])) {
- errh->error("%<%s%> and %<%s%> features share a lookup, but have different filters", l->features[0].text().c_str(), ft->text().c_str());
- break;
- }
- }
-}
-
-static int
-write_encoding_file(String &filename, const String &encoding_name,
- StringAccum &contents, ErrorHandler *errh)
-{
- FILE *f;
- int ok_retval = (access(filename.c_str(), R_OK) >= 0 ? 0 : 1);
-
- if (no_create) {
- errh->message((ok_retval ? "would create encoding file %s" : "would update encoding file %s"), filename.c_str());
- return ok_retval;
- } else if (verbose)
- errh->message((ok_retval ? "creating encoding file %s" : "updating encoding file %s"), filename.c_str());
-
- int fd = open(filename.c_str(), O_RDWR | O_CREAT, 0666);
- if (fd < 0)
- return errh->error("%s: %s", filename.c_str(), strerror(errno));
- f = fdopen(fd, "r+");
- // NB: also change update_autofont_map if you change this code
-
-#if defined(F_SETLKW) && defined(HAVE_FTRUNCATE)
- {
- struct flock lock;
- lock.l_type = F_WRLCK;
- lock.l_whence = SEEK_SET;
- lock.l_start = 0;
- lock.l_len = 0;
- int result;
- while ((result = fcntl(fd, F_SETLKW, &lock)) < 0 && errno == EINTR)
- /* try again */;
- if (result < 0) {
- result = errno;
- fclose(f);
- return errh->error("locking %s: %s", filename.c_str(), strerror(result));
- }
- }
-#endif
-
- // read old data from encoding file
- StringAccum sa;
- int amt;
- do {
- if (char *x = sa.reserve(8192)) {
- amt = fread(x, 1, 8192, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f) || ferror(f))
- return errh->error("%s: %s", filename.c_str(), strerror(errno));
- String old_encodings = sa.take_string();
- bool created = (!old_encodings);
-
- // append old encodings
- int pos1 = old_encodings.find_left("\n%%");
- while (pos1 >= 0 && pos1 < old_encodings.length()) {
- int pos2 = old_encodings.find_left("\n%%", pos1 + 1);
- if (pos2 < 0)
- pos2 = old_encodings.length();
- if (old_encodings.substring(pos1 + 3, encoding_name.length()) == encoding_name) {
- // encoding already exists, don't change it
- fclose(f);
- if (verbose)
- errh->message("%s unchanged", filename.c_str());
- return 0;
- } else
- contents << old_encodings.substring(pos1, pos2 - pos1);
- pos1 = pos2;
- }
-
- // rewind file
-#ifdef HAVE_FTRUNCATE
- rewind(f);
- if (ftruncate(fd, 0) < 0)
-#endif
- {
- fclose(f);
- f = fopen(filename.c_str(), "wb");
- fd = fileno(f);
- }
-
- ignore_result(fwrite(contents.data(), 1, contents.length(), f));
-
- fclose(f);
-
- // inform about the new file if necessary
- if (created)
- update_odir(O_ENCODING, filename, errh);
- return 0;
-}
-
-static bool
-output_encoding(const Metrics &metrics,
- const Vector<PermString> &glyph_names,
- ErrorHandler *errh)
-{
- static const char * const hex_digits = "0123456789ABCDEF";
-
- // collect encoding data
- Vector<Metrics::Glyph> glyphs;
- if (!metrics.base_glyphs(glyphs, 256))
- return false;
-
- StringAccum sa;
- for (int i = 0; i < 256; i++) {
- if ((i & 0xF) == 0)
- sa << (i ? "\n%" : "%") << hex_digits[(i >> 4) & 0xF] << '0' << '\n' << ' ';
- else if ((i & 0x7) == 0)
- sa << '\n' << ' ';
- int g = glyphs[i];
- if (g > 0 && g < glyph_names.size())
- sa << ' ' << '/' << glyph_names[g];
- else
- sa << " /.notdef";
- }
- sa << '\n';
-
- // digest encoding data
- MD5_CONTEXT md5;
- md5_init(&md5);
- md5_update(&md5, (const unsigned char *)sa.data(), sa.length());
- char text_digest[MD5_TEXT_DIGEST_SIZE + 1];
- md5_final_text(text_digest, &md5);
-
- // name encoding using digest
- out_encoding_name = "AutoEnc_" + String(text_digest);
-
- // create encoding filename
- bool output_encoding_only = (bool) out_encoding_file;
- if (!out_encoding_file)
- out_encoding_file = getodir(O_ENCODING, errh) + String("/a_") + String(text_digest).substring(0, 6) + ".enc";
-
- // exit if we're not responsible for generating an encoding
- if (!(output_flags & G_ENCODING))
- return true;
-
- // put encoding block in a StringAccum
- // 3.Jun.2003: stick command line definition at the end of the encoding,
- // where it won't confuse idiotic ps2pk
- StringAccum contents;
- if (!output_encoding_only)
- contents << "% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT\n\n\
-%%" << out_encoding_name << "\n";
- contents << "% Encoding created by otftotfm" << current_time << "\n\
-% Command line follows encoding\n";
-
- // the encoding itself
- contents << '/' << out_encoding_name << " [\n" << sa << "] def\n";
-
- // write banner -- unfortunately this takes some doing
- String banner = String("Command line: '") + String(invocation.data(), invocation.length()) + String("'");
- char *buf = banner.mutable_data();
- // get rid of crap characters
- for (int i = 0; i < banner.length(); i++)
- if (buf[i] < ' ' || buf[i] > 0176) {
- if (buf[i] == '\n' || buf[i] == '\r')
- buf[i] = ' ';
- else
- buf[i] = '.';
- }
- // break lines at 80 characters -- it would be nice if this were in a
- // library
- while (banner.length() > 0) {
- int pos = banner.find_left(' '), last_pos = pos;
- while (pos < 75 && pos >= 0) {
- last_pos = pos;
- pos = banner.find_left(' ', pos + 1);
- }
- if (last_pos < 0 || (pos < 0 && banner.length() < 75))
- last_pos = banner.length();
- contents << "% " << banner.substring(0, last_pos) << '\n';
- banner = banner.substring(last_pos + 1);
- }
-
- // open encoding file
- if (out_encoding_file == "-")
- ignore_result(fwrite(contents.data(), 1, contents.length(), stdout));
- else if (write_encoding_file(out_encoding_file, out_encoding_name, contents, errh) == 1)
- update_odir(O_ENCODING, out_encoding_file, errh);
- return true;
-}
-
-static void
-output_tfm(Metrics &metrics, const String &ps_name, int boundary_char,
- const FontInfo &finfo, String tfm_filename, String vf_filename,
- String pl_filename, ErrorHandler *errh)
-{
- bool had_pl_filename = !pl_filename.empty();
- bool vpl = vf_filename;
-
- if (!pl_filename) {
- if (no_create) {
- errh->message("would write %s to temporary file", (vpl ? "VPL" : "PL"));
- pl_filename = "<temporary>";
- } else {
- int pl_fd = temporary_file(pl_filename, errh);
- if (pl_fd < 0)
- return;
- output_pl(metrics, ps_name, boundary_char, finfo, vpl, pl_filename, errh);
- close(pl_fd);
- }
- }
-
- StringAccum command;
- if (vpl)
- command << "vptovf " << shell_quote(pl_filename) << ' ' << shell_quote(vf_filename) << ' ' << shell_quote(tfm_filename) << " 2>&1";
- else
- command << "pltotf " << shell_quote(pl_filename) << ' ' << shell_quote(tfm_filename) << " 2>&1";
-
- FILE* cmdfile = mypopen(command.c_str(), "r", errh);
- int status;
- if (cmdfile) {
- StringAccum results;
- while (!feof(cmdfile)) {
- char* buf = results.reserve(BUFSIZ);
- results.adjust_length(fread(buf, 1, BUFSIZ, cmdfile));
- }
- // compensate for shitty vptovf/pltotf messages
- char* by_units, *last_line;
- while (!results.empty()
- && (by_units = strstr((char*) results.c_str(), " units"))
- && (last_line = strrchr((char*) results.c_str(), '\n'))
- && results.end() - last_line > 1
- && isdigit((unsigned char) last_line[1])) {
- char* start_number = last_line + 1;
- char* end_number = last_line + 2;
- while (end_number < results.end()
- && isdigit((unsigned char) *end_number))
- ++end_number;
- if (end_number < results.end() && *end_number == '.') {
- char* dot = end_number;
- ++end_number;
- while (end_number < results.end()
- && end_number < dot + 8
- && isdigit((unsigned char) *end_number))
- ++end_number;
- }
- String number(start_number, end_number);
- char* by_units_dest = by_units + 1 + (end_number - start_number);
- memmove(by_units_dest, by_units + 1, start_number - (by_units + 1));
- memmove(by_units + 1, number.begin(), number.length());
- }
- if (!results.empty())
- fwrite(results.begin(), 1, results.length(), stderr);
- status = pclose(cmdfile);
- } else
- status = -1;
-
- if (!no_create && !had_pl_filename)
- unlink(pl_filename.c_str());
-
- if (status != 0)
- errh->fatal("%s execution failed", (vpl ? "vptovf" : "pltotf"));
- else {
- update_odir(O_TFM, tfm_filename, errh);
- if (vpl)
- update_odir(O_VF, vf_filename, errh);
- }
-}
-
-void
-output_metrics(Metrics &metrics, const String &ps_name, int boundary_char,
- const FontInfo &finfo,
- const String &encoding_name, const String &encoding_file,
- const String &font_name,
- String (*dvips_include)(const String &ps_name, const FontInfo &, ErrorHandler *),
- ErrorHandler *errh)
-{
- String base_font_name = font_name;
- bool need_virtual = metrics.need_virtual(257);
- if (need_virtual) {
- if (output_flags & G_VMETRICS)
- base_font_name = make_base_font_name(font_name);
- else if (output_flags & G_METRICS)
- errh->warning("features require virtual fonts");
- }
-
- // output virtual metrics
- if (!(output_flags & G_VMETRICS))
- /* do nothing */;
- else if (!need_virtual) {
- if (automatic) {
- // erase old virtual font
- String vf = getodir(O_VF, errh) + "/" + font_name + ".vf";
- if (no_create)
- errh->message("would remove potential VF file %<%s%>", vf.c_str());
- else {
- if (verbose)
- errh->message("removing potential VF file %<%s%>", vf.c_str());
- if (unlink(vf.c_str()) < 0 && errno != ENOENT)
- errh->error("removing %s: %s", vf.c_str(), strerror(errno));
- }
- }
- } else {
- String vplfile;
- if (output_flags & G_ASCII) {
- vplfile = getodir(O_VPL, errh) + "/" + font_name + ".vpl";
- output_pl(metrics, ps_name, boundary_char, finfo, true, vplfile, errh);
- update_odir(O_VPL, vplfile, errh);
- }
- if (output_flags & G_BINARY) {
- String tfm = getodir(O_TFM, errh) + "/" + font_name + ".tfm";
- String vf = getodir(O_VF, errh) + "/" + font_name + ".vf";
- output_tfm(metrics, ps_name, boundary_char, finfo, tfm, vf, vplfile, errh);
- }
- }
-
- // quit if no base needed
- metrics.make_base(257);
- if (!metrics.need_base())
- return;
-
- // output metrics
- double save_minimum_kern = minimum_kern;
- if (need_virtual)
- minimum_kern = 100000;
- if (output_flags & G_METRICS) {
- String plfile;
- if (output_flags & G_ASCII) {
- plfile = getodir(O_PL, errh) + "/" + base_font_name + ".pl";
- output_pl(metrics, ps_name, boundary_char, finfo, false, plfile, errh);
- update_odir(O_PL, plfile, errh);
- }
- if (output_flags & G_BINARY) {
- String tfm = getodir(O_TFM, errh) + "/" + base_font_name + ".tfm";
- output_tfm(metrics, ps_name, boundary_char, finfo, tfm, String(), plfile, errh);
- }
- }
- minimum_kern = save_minimum_kern;
-
- // print DVIPS map line
- if (errh->nerrors() == 0 && (output_flags & G_PSFONTSMAP)) {
- StringAccum sa;
- sa << base_font_name << ' ' << ps_name << " \"";
- if (extend)
- sa << extend << " ExtendFont ";
- if (slant)
- sa << slant << " SlantFont ";
- if (encoding_name)
- sa << encoding_name << " ReEncodeFont\" <[" << pathname_filename(encoding_file);
- else
- sa << "\"";
- sa << ' ' << dvips_include(ps_name, finfo, errh) << '\n';
- update_autofont_map(base_font_name, sa.take_string(), errh);
- // if virtual font, remove any map line for base font name
- if (base_font_name != font_name)
- update_autofont_map(font_name, "", errh);
- }
-}
-
-
-enum { F_GSUB_TRY = 1, F_GSUB_PART = 2, F_GSUB_ALL = 4,
- F_GPOS_TRY = 8, F_GPOS_PART = 16, F_GPOS_ALL = 32,
- X_UNUSED = 0, X_BOTH_NONE = 1, X_GSUB_NONE = 2,
- X_GSUB_PART = 3, X_GPOS_NONE = 4, X_GPOS_PART = 5, X_COUNT };
-
-static const char * const x_messages[] = {
- "% ignored, not supported by font",
- "% ignored, too complex for me",
- "complex substitutions from % ignored",
- "some complex substitutions from % ignored",
- "complex positionings from % ignored",
- "some complex positionings from % ignored",
-};
-
-static void
-report_underused_features(const HashMap<uint32_t, int> &feature_usage, ErrorHandler *errh)
-{
- Vector<String> x[X_COUNT];
- for (int i = 0; i < interesting_features.size(); i++) {
- OpenType::Tag f = interesting_features[i];
- int fu = feature_usage[f.value()];
- String ftext = errh->format("%<%s%>", f.text().c_str());
- if (fu == 0)
- x[X_UNUSED].push_back(ftext);
- else if ((fu & (F_GSUB_TRY | F_GPOS_TRY)) == fu)
- x[X_BOTH_NONE].push_back(ftext);
- else {
- if (fu & F_GSUB_TRY) {
- if ((fu & (F_GSUB_PART | F_GSUB_ALL)) == 0)
- x[X_GSUB_NONE].push_back(ftext);
- else if (fu & F_GSUB_PART)
- x[X_GSUB_PART].push_back(ftext);
- }
- if (fu & F_GPOS_TRY) {
- if ((fu & (F_GPOS_PART | F_GPOS_ALL)) == 0)
- x[X_GPOS_NONE].push_back(ftext);
- else if (fu & F_GPOS_PART)
- x[X_GPOS_PART].push_back(ftext);
- }
- }
- }
-
- for (int i = 0; i < X_COUNT; i++)
- if (x[i].size())
- goto found;
- return;
-
- found:
- for (int i = 0; i < X_COUNT; i++)
- if (x[i].size()) {
- StringAccum sa;
- const char* msg_pct = strchr(x_messages[i], '%');
- sa.append(x_messages[i], msg_pct - x_messages[i]);
- const char* sep = (x[i].size() > 2 ? ", " : " ");
- for (const String* a = x[i].begin(); a < x[i].end() - 1; a++)
- sa << *a << sep;
- sa << (x[i].size() > 1 ? "and " : "") << x[i].back()
- << (x[i].size() > 1 ? " features" : " feature") << (msg_pct+1);
- sa.append_break_lines(sa.take_string(), 58);
- errh->warning("%s", sa.c_str());
- }
-}
-
-static String otf_filename;
-
-static String
-main_dvips_map(const String &ps_name, const FontInfo &finfo, ErrorHandler *errh)
-{
- if (String fn = installed_type1(otf_filename, ps_name, (output_flags & G_TYPE1) != 0, errh))
- return "<" + pathname_filename(fn);
- if (!finfo.cff) {
- String ttf_fn, t42_fn;
- ttf_fn = installed_truetype(otf_filename, (output_flags & G_TRUETYPE) != 0, errh);
- t42_fn = installed_type42(otf_filename, ps_name, (output_flags & G_TYPE42) != 0, errh);
- if (t42_fn && (!ttf_fn || (output_flags & G_TYPE42) != 0))
- return "<" + pathname_filename(t42_fn);
- else if (ttf_fn)
- return "<" + pathname_filename(ttf_fn);
- }
- return "<" + pathname_filename(otf_filename);
-}
-
-static void
-do_gsub(Metrics& metrics, const OpenType::Font& otf,
- DvipsEncoding& dvipsenc, bool dvipsenc_literal,
- HashMap<uint32_t, int>& feature_usage,
- const Vector<PermString>& glyph_names, ErrorHandler* errh)
-{
- // find activated GSUB features
- OpenType::Gsub gsub(otf.table("GSUB"), &otf, errh);
- Vector<Lookup> lookups(gsub.nlookups(), Lookup());
- find_lookups(gsub.script_list(), gsub.feature_list(), lookups, errh);
-
- // find all characters that might result
- Vector<bool> used(glyph_names.size(), false);
- for (Metrics::Code c = 0; c < metrics.encoding_size(); ++c) {
- Metrics::Glyph g = metrics.glyph(c);
- if (g >= 0 && g < used.size())
- used[g] = true;
- }
- for (int i = 0; i < lookups.size(); ++i)
- if (lookups[i].used) {
- OpenType::GsubLookup l = gsub.lookup(i);
- l.mark_out_glyphs(gsub, used);
- }
- OpenType::Coverage used_coverage(used);
-
- // apply activated GSUB features
- Vector<OpenType::Substitution> subs;
- for (int i = 0; i < lookups.size(); i++)
- if (lookups[i].used) {
- OpenType::GsubLookup l = gsub.lookup(i);
- subs.clear();
- bool understood = l.unparse_automatics(gsub, subs, used_coverage);
-
- // check for -ffina, which should apply only at the ends of words,
- // and -finit, which should apply only at the beginnings.
- OpenType::Tag feature = (lookups[i].features.size() == 1 ? lookups[i].features[0] : OpenType::Tag());
- if (feature == OpenType::Tag("fina") || feature == OpenType::Tag("fin2") || feature == OpenType::Tag("fin3")) {
- if (dvipsenc.boundary_char() < 0)
- errh->warning("%<-ffina%> requires a boundary character\n(The input encoding didn%,t specify a boundary character, but\nI need one to implement %<-ffina%> features correctly. Try\nthe %<--boundary-char%> option.)");
- else {
- int bg = metrics.boundary_glyph();
- for (int j = 0; j < subs.size(); j++)
- subs[j].add_outer_right(bg);
- }
- } else if (feature == OpenType::Tag("init")) {
- int bg = metrics.boundary_glyph();
- for (int j = 0; j < subs.size(); j++)
- subs[j].add_outer_left(bg);
- }
-
- //for (int subno = 0; subno < subs.size(); subno++) fprintf(stderr, "%5d\t%s\n", i, subs[subno].unparse().c_str());
-
- // figure out which glyph filter to use
- int nunderstood = metrics.apply(subs, !dvipsenc_literal, i, *lookups[i].filter, glyph_names);
-
- // mark as used
- int d = (understood && nunderstood == subs.size() ? F_GSUB_ALL : (nunderstood ? F_GSUB_PART : 0)) + F_GSUB_TRY;
- for (int j = 0; j < lookups[i].features.size(); j++)
- feature_usage.find_force(lookups[i].features[j].value()) |= d;
- }
-
- // apply alternate selectors
- if (metrics.altselectors() && !dvipsenc_literal) {
- // do lookups
- altselector_features.swap(interesting_features);
- altselector_feature_filters.swap(feature_filters);
- Vector<Lookup> alt_lookups(gsub.nlookups(), Lookup());
- find_lookups(gsub.script_list(), gsub.feature_list(), alt_lookups, ErrorHandler::silent_handler());
- Vector<OpenType::Substitution> alt_subs;
- for (int i = 0; i < alt_lookups.size(); i++)
- if (alt_lookups[i].used) {
- OpenType::GsubLookup l = gsub.lookup(i);
- alt_subs.clear();
- (void) l.unparse_automatics(gsub, alt_subs, used_coverage);
- metrics.apply_alternates(alt_subs, i, *alt_lookups[i].filter, glyph_names);
- }
- altselector_features.swap(interesting_features);
- altselector_feature_filters.swap(feature_filters);
- }
-}
-
-static bool
-kern_feature_requested()
-{
- return std::find(interesting_features.begin(), interesting_features.end(),
- OpenType::Tag("kern")) != interesting_features.end();
-}
-
-static void
-do_try_ttf_kern(Metrics& metrics, const OpenType::Font& otf, HashMap<uint32_t, int>& feature_usage, ErrorHandler* errh)
-{
- // if no GPOS "kern" lookups and "kern" requested, try "kern" table
- if (!kern_feature_requested())
- return;
- try {
- OpenType::KernTable kern(otf.table("kern"), errh);
- Vector<OpenType::Positioning> poss;
- bool understood = kern.unparse_automatics(poss, errh);
- int nunderstood = metrics.apply(poss);
-
- // mark as used
- int d = (understood && nunderstood == poss.size() ? F_GPOS_ALL : (nunderstood ? F_GPOS_PART : 0)) + F_GPOS_TRY;
- feature_usage.find_force(OpenType::Tag("kern").value()) |= d;
- } catch (OpenType::BlankTable) {
- // nada
- } catch (OpenType::Error e) {
- errh->warning("kern %<%s%> error, continuing", e.description.c_str());
- }
-}
-
-static void
-do_gpos(Metrics& metrics, const OpenType::Font& otf, HashMap<uint32_t, int>& feature_usage, ErrorHandler* errh)
-{
- OpenType::Gpos gpos(otf.table("GPOS"), errh);
- Vector<Lookup> lookups(gpos.nlookups(), Lookup());
- find_lookups(gpos.script_list(), gpos.feature_list(), lookups, errh);
-
- // OpenType recommends that if GPOS exists, but the "kern" feature loads
- // no lookups, we use the TrueType "kern" table, if any.
- if (kern_feature_requested()) {
- OpenType::Tag kern_tag("kern");
- for (Lookup *l = lookups.begin(); l != lookups.end(); ++l)
- if (std::find(l->features.begin(), l->features.end(), kern_tag) != l->features.end())
- goto skip_ttf_kern;
- do_try_ttf_kern(metrics, otf, feature_usage, errh);
- skip_ttf_kern: ;
- }
-
- Vector<OpenType::Positioning> poss;
- for (int i = 0; i < lookups.size(); i++)
- if (lookups[i].used) {
- OpenType::GposLookup l = gpos.lookup(i);
- poss.clear();
- bool understood = l.unparse_automatics(poss, errh);
- int nunderstood = metrics.apply(poss);
-
- // mark as used
- int d = (understood && nunderstood == poss.size() ? F_GPOS_ALL : (nunderstood ? F_GPOS_PART : 0)) + F_GPOS_TRY;
- for (int j = 0; j < lookups[i].features.size(); j++)
- feature_usage.find_force(lookups[i].features[j].value()) |= d;
- }
-}
-
-static void
-do_math_spacing(Metrics &metrics, const FontInfo &finfo,
- const DvipsEncoding &dvipsenc)
-{
- Transform font_xform;
- if (extend)
- font_xform.scale(extend, 1);
- if (slant)
- font_xform.shear(slant);
- CharstringBounds boundser(font_xform);
-
- double x_height = finfo.x_height(font_xform);
- double actual_slant = font_slant(finfo);
- int boundary_char = dvipsenc.boundary_char();
-
- double bounds[4], width;
-
- for (int code = 0; code < metrics.encoding_size(); code++)
- if (metrics.was_base_glyph(code)
- && code != boundary_char
- && char_bounds(bounds, width, finfo, font_xform, metrics.unicode(code))) {
- int left_sb = (bounds[0] < 0 ? (int) ceil(-bounds[0]) : 0);
- metrics.add_single_positioning(code, left_sb, 0, left_sb);
-
- if (skew_char >= 0 && code < 256) {
- double sheight = std::max(bounds[3], x_height) - 0.5 * x_height;
- double right_sb = std::max(bounds[2] - width, 0.0);
- double desired = left_sb + 0.5 * width + actual_slant * sheight + 0.25 * right_sb;
- double computed = 0.5 * (left_sb + width + right_sb);
- int skew = (int) (desired - computed);
- metrics.add_kern(code, skew_char, skew);
- }
- }
-}
-
-static void
-do_file(const String &otf_filename, const OpenType::Font &otf,
- const DvipsEncoding &dvipsenc_in, bool dvipsenc_literal,
- ErrorHandler *errh)
-{
- FontInfo finfo(&otf, errh);
- if (!finfo.ok())
- return;
- if (!finfo.cff)
- errh->warning("TrueType-flavored font support is experimental");
- if (override_is_fixed_pitch)
- finfo.set_is_fixed_pitch(is_fixed_pitch);
- if (override_italic_angle)
- finfo.set_italic_angle(italic_angle);
- if (override_x_height != FontInfo::x_height_auto)
- finfo.set_x_height(override_x_height, x_height);
-
- // save glyph names
- Vector<PermString> glyph_names;
- finfo.glyph_names(glyph_names);
- OpenType::debug_glyph_names = glyph_names;
-
- // set typeface name from font family name
- {
- String typeface = finfo.family_name();
-
- // make it reasonable for the shell
- StringAccum sa;
- for (int i = 0; i < typeface.length(); i++)
- if (isalnum((unsigned char) typeface[i]) || typeface[i] == '_' || typeface[i] == '-' || typeface[i] == '.' || typeface[i] == ',' || typeface[i] == '+')
- sa << typeface[i];
-
- set_typeface(sa.length() ? sa.take_string() : font_name, false);
- }
-
- // initialize encoding
- DvipsEncoding dvipsenc(dvipsenc_in); // make copy
- Metrics metrics(finfo.program(), finfo.nglyphs());
- // encode boundary glyph at 256; pretend its Unicode value is '\n'
- metrics.encode(256, '\n', metrics.boundary_glyph());
- if (dvipsenc_literal)
- dvipsenc.make_metrics(metrics, finfo, 0, true, errh);
- else {
- T1Secondary secondary(finfo, font_name, otf_filename);
- dvipsenc.make_metrics(metrics, finfo, &secondary, false, errh);
- }
-
- // maintain statistics about features
- HashMap<uint32_t, int> feature_usage(0);
-
- // apply activated GSUB features
- try {
- do_gsub(metrics, otf, dvipsenc, dvipsenc_literal, feature_usage, glyph_names, errh);
- } catch (OpenType::BlankTable) {
- // nada
- } catch (OpenType::Error e) {
- errh->warning("GSUB %<%s%> error, continuing", e.description.c_str());
- }
-
- // apply LIGKERN ligature commands to the result
- dvipsenc.apply_ligkern_lig(metrics, errh);
-
- // test fake ligature mechanism
- //metrics.add_threeligature('T', 'h', 'e', '0');
-
- // reencode characters to fit within 8 bytes (+ 1 for the boundary)
- if (!dvipsenc_literal)
- metrics.shrink_encoding(257, dvipsenc_in, errh);
-
- // apply activated GPOS features
- try {
- do_gpos(metrics, otf, feature_usage, errh);
- } catch (OpenType::BlankTable) {
- do_try_ttf_kern(metrics, otf, feature_usage, errh);
- } catch (OpenType::Error e) {
- errh->warning("GPOS %<%s%> error, continuing", e.description.c_str());
- }
-
- // apply LIGKERN kerning and POS positioning commands to the result
- dvipsenc.apply_ligkern_kern(metrics, errh);
- dvipsenc.apply_position(metrics, errh);
-
- // use prespecified raw fonts
- for (BaseEncoding **be = base_encodings.begin(); be != base_encodings.end(); be++)
- if (!(*be)->secondary) {
- Vector<int> mapp;
- (*be)->encoding.make_base_mappings(mapp, finfo);
- metrics.apply_base_encoding((*be)->font_name, (*be)->encoding, mapp);
- }
-
- // remove extra characters
- metrics.cut_encoding(257);
- //metrics.unparse();
- int boundary_char = dvipsenc.boundary_char();
-
- // apply letterspacing, if any
- if (letterspace)
- for (int code = 0; code < metrics.encoding_size(); code++)
- if (metrics.was_base_glyph(code) && code != boundary_char) {
- metrics.add_single_positioning(code, letterspace / 2, 0, letterspace);
- if (code < 256) {
- metrics.add_kern(code, 256, -letterspace / 2);
- metrics.add_kern(256, code, -letterspace / 2);
- }
- }
-
- // apply math letterspacing, if any
- if (math_spacing)
- do_math_spacing(metrics, finfo, dvipsenc);
-
- // reencode right components of boundary_glyph as boundary_char
- if (metrics.reencode_right_ligkern(256, boundary_char) > 0
- && boundary_char < 0) {
- errh->warning("no boundary character, ignoring some ligatures and/or kerns\n");
- errh->message("(You may want to try the --boundary-char option.)");
- }
-
- // report unused and underused features if any
- report_underused_features(feature_usage, errh);
-
- // figure out our FONTNAME
- if (!font_name) {
- // derive font name from OpenType font name
- font_name = finfo.postscript_name();
- if (encoding_file) {
- int slash = encoding_file.find_right('/') + 1;
- int dot = encoding_file.find_right('.');
- if (dot < slash) // includes dot < 0 case
- dot = encoding_file.length();
- font_name += String("--") + encoding_file.substring(slash, dot - slash);
- }
- if (interesting_scripts.size() != 2 || interesting_scripts[0] != OpenType::Tag("latn") || interesting_scripts[1].valid())
- for (int i = 0; i < interesting_scripts.size(); i += 2) {
- font_name += String("--S") + interesting_scripts[i].text();
- if (interesting_scripts[i+1].valid())
- font_name += String(".") + interesting_scripts[i+1].text();
- }
- for (int i = 0; i < interesting_features.size(); i++)
- if (feature_usage[interesting_features[i].value()])
- font_name += String("--F") + interesting_features[i].text();
- }
-
- // output encoding
- if (dvipsenc_literal) {
- out_encoding_name = dvipsenc_in.name();
- out_encoding_file = dvipsenc_in.filename();
- } else
- output_encoding(metrics, glyph_names, errh);
-
- // set up coding scheme
- if (metrics.coding_scheme())
- metrics.set_design_units(1);
- else
- metrics.set_coding_scheme(out_encoding_name);
-
- // force no type 1
- if (!finfo.cff && (output_flags & G_TYPE1)) {
- errh->warning("assuming --no-type1 since this font is TrueType-flavored");
- output_flags &= ~G_TYPE1;
- }
-
- // output
- ::otf_filename = otf_filename;
- output_metrics(metrics, finfo.postscript_name(), dvipsenc.boundary_char(),
- finfo,
- out_encoding_name, out_encoding_file,
- font_name, main_dvips_map, errh);
-}
-
-
-String
-installed_metrics_font_name(const String &base_font_name, const String &secondary)
-{
- for (BaseEncoding **be = base_encodings.begin(); be != base_encodings.end(); be++)
- if ((*be)->secondary == secondary && ::font_name == base_font_name)
- return (*be)->font_name;
- return String();
-}
-
-
-extern "C" {
-static int
-clp_parse_char(Clp_Parser *clp, const char *arg, int complain, void *)
-{
- if (arg[0] && !arg[1] && !isdigit((unsigned char) arg[0])) {
- clp->val.i = (unsigned char)arg[0];
- return 1;
- } else if (arg[0] == '-' || isdigit((unsigned char) arg[0])) {
- char *end;
- clp->val.i = strtol(arg, &end, 10);
- if (clp->val.i <= 255 && !*end)
- return 1;
- }
- if (complain)
- Clp_OptionError(clp, "'%O' expects a character, not '%s'", arg);
- return 0;
-}
-}
-
-static void
-parse_base_encodings(const String &filename, ErrorHandler *errh)
-{
- String str = read_file(filename, errh, true);
- String print_filename = (filename == "-" ? "<stdin>" : filename) + ":";
- int lineno = 1;
- str.c_str();
- const char *s_end = str.end();
- for (const char *s = str.begin(); s != s_end; ) {
- while (s != s_end && isspace((unsigned char) *s) && *s != '\n' && *s != '\r')
- s++;
- // skip comments and blank lines
- if (s != s_end && *s != '%' && *s != '#' && *s != '\n' && *s != '\r') {
- const char *w1 = s;
- while (s != s_end && !isspace((unsigned char) *s))
- s++;
- BaseEncoding *be = new BaseEncoding;
- be->font_name = str.substring(w1, s);
- while (s != s_end && isspace((unsigned char) *s) && *s != '\n' && *s != '\r')
- s++;
- const char *w2 = s;
- while (s != s_end && !isspace((unsigned char) *s))
- s++;
- String efile = str.substring(w2, s);
- while (s != s_end && isspace((unsigned char) *s) && *s != '\n' && *s != '\r')
- s++;
- if (s != s_end && !isspace((unsigned char) *s) && *s != '%' && *s != '#') {
- const char *w3 = s;
- while (s != s_end && !isspace((unsigned char) *s))
- s++;
- be->secondary = str.substring(w3, s);
- }
- LandmarkErrorHandler lerrh(errh, print_filename + String(lineno));
- int before = lerrh.nerrors();
- if (be->secondary)
- /* encoding ignored */;
- else if (!efile)
- lerrh.error("missing encoding name");
- else if (String path = locate_encoding(efile, errh))
- be->encoding.parse(path, true, true, &lerrh);
- else
- lerrh.error("encoding %<%s%> not found", efile.c_str());
- if (lerrh.nerrors() == before)
- base_encodings.push_back(be);
- else
- delete be;
- }
- while (s != s_end && *s != '\n' && *s != '\r')
- s++;
- if (s != s_end && *s == '\r')
- s++;
- if (s != s_end && *s == '\n')
- s++;
- lineno++;
- }
-}
-
-int
-main(int argc, char *argv[])
-{
-#ifndef WIN32
- handle_sigchld();
-#endif
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- Clp_AddType(clp, CHAR_OPTTYPE, 0, clp_parse_char, 0);
- program_name = Clp_ProgramName(clp);
-#if HAVE_KPATHSEA
- kpsei_init(argv[0], "lcdftools");
-#endif
-#ifdef HAVE_CTIME
- {
- time_t t = time(0);
- char *c = ctime(&t);
- current_time = " on " + String(c).substring(0, -1); // get rid of \n
- }
-#endif
- for (int i = 0; i < argc; i++)
- invocation << (i ? " " : "") << argv[i];
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr, String(program_name) + ": "));
- const char *input_file = 0;
- Vector<String> glyphlist_files;
- bool literal_encoding = false;
- bool have_encoding_file = false;
- Vector<String> ligkern;
- Vector<String> pos;
- Vector<String> unicoding;
- Vector<String> base_encoding_files;
- bool no_ecommand = false, default_ligkern = true;
- int warn_missing = -1;
- unsigned specified_output_flags = 0;
- String codingscheme;
- const char* odirs[NUMODIR + 1];
- for (int i = 0; i <= NUMODIR; ++i) {
- odirs[i] = 0;
- }
-
- GlyphFilter current_substitution_filter;
- GlyphFilter current_alternate_filter;
- GlyphFilter* current_filter_ptr = &null_filter;
- Vector<GlyphFilter*> allocated_filters;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case SCRIPT_OPT: {
- String arg = clp->vstr;
- int period = arg.find_left('.');
- OpenType::Tag scr(period <= 0 ? arg : arg.substring(0, period));
- if (scr.valid() && period > 0) {
- OpenType::Tag lang(arg.substring(period + 1));
- if (lang.valid()) {
- interesting_scripts.push_back(scr);
- interesting_scripts.push_back(lang);
- } else
- usage_error(errh, "bad language tag");
- } else if (scr.valid()) {
- interesting_scripts.push_back(scr);
- interesting_scripts.push_back(OpenType::Tag());
- } else
- usage_error(errh, "bad script tag");
- break;
- }
-
- case FEATURE_OPT: {
- OpenType::Tag t(clp->vstr);
- if (!t.valid())
- usage_error(errh, "bad feature tag");
- else if (feature_filters[t])
- usage_error(errh, "feature %<%s%> included twice", t.text().c_str());
- else {
- if (!current_filter_ptr) {
- current_filter_ptr = new GlyphFilter(current_substitution_filter + current_alternate_filter);
- allocated_filters.push_back(current_filter_ptr);
- }
- interesting_features.push_back(t);
- feature_filters.insert(t, current_filter_ptr);
- }
- break;
- }
-
- case LETTER_FEATURE_OPT: {
- OpenType::Tag t(clp->vstr);
- if (!t.valid())
- usage_error(errh, "bad feature tag");
- else if (feature_filters[t])
- usage_error(errh, "feature %<%s%> included twice", t.text().c_str());
- else {
- interesting_features.push_back(t);
- GlyphFilter* gf = new GlyphFilter;
- gf->add_substitution_filter("<Letter>", false, errh);
- *gf += current_alternate_filter;
- feature_filters.insert(t, gf);
- }
- break;
- }
-
- case SUBS_FILTER_OPT:
- current_substitution_filter = null_filter;
- /* fallthru */
- case EXCLUDE_SUBS_OPT:
- case INCLUDE_SUBS_OPT:
- current_substitution_filter.add_substitution_filter(clp->vstr, opt == EXCLUDE_SUBS_OPT, errh);
- current_filter_ptr = 0;
- break;
-
- case CLEAR_SUBS_OPT:
- current_substitution_filter = null_filter;
- current_filter_ptr = 0;
- break;
-
- case ENCODING_OPT:
- if (encoding_file)
- usage_error(errh, "encoding specified twice");
- encoding_file = clp->vstr;
- have_encoding_file = true;
- break;
-
- case LITERAL_ENCODING_OPT:
- if (encoding_file)
- usage_error(errh, "encoding specified twice");
- encoding_file = clp->vstr;
- have_encoding_file = true;
- literal_encoding = true;
- break;
-
- case BASE_ENCODINGS_OPT:
- base_encoding_files.push_back(clp->vstr);
- break;
-
- case EXTEND_OPT:
- if (extend)
- usage_error(errh, "extend value specified twice");
- extend = clp->val.d;
- break;
-
- case SLANT_OPT:
- if (slant)
- usage_error(errh, "slant value specified twice");
- slant = clp->val.d;
- break;
-
- case LETTERSPACE_OPT:
- if (letterspace)
- usage_error(errh, "letterspacing value specified twice");
- letterspace = clp->val.i;
- break;
-
- case SPACE_FACTOR_OPT:
- if (space_factor != 1)
- usage_error(errh, "space factor specified twice");
- space_factor = clp->val.d;
- break;
-
- case MATH_SPACING_OPT:
- math_spacing = !clp->negated;
- if (math_spacing && clp->have_val) {
- if (clp->val.i < 0 || clp->val.i > 255)
- usage_error(errh, "--math-spacing skew character must be between 0 and 255");
- skew_char = clp->val.i;
- }
- break;
-
- case DESIGN_SIZE_OPT:
- if (design_size > 0)
- usage_error(errh, "design size value specified twice");
- else if (clp->val.d <= 0)
- usage_error(errh, "design size must be > 0");
- design_size = clp->val.d;
- break;
-
- case LIGKERN_OPT:
- ligkern.push_back(clp->vstr);
- break;
-
- case POSITION_OPT:
- pos.push_back(clp->vstr);
- break;
-
- case WARN_MISSING_OPT:
- warn_missing = !clp->negated;
- break;
-
- case NO_ECOMMAND_OPT:
- no_ecommand = true;
- break;
-
- case DEFAULT_LIGKERN_OPT:
- default_ligkern = !clp->negated;
- break;
-
- case BOUNDARY_CHAR_OPT:
- ligkern.push_back(String("|| = ") + String(clp->val.i));
- break;
-
- case ALTSELECTOR_CHAR_OPT:
- ligkern.push_back(String("^^ = ") + String(clp->val.i));
- break;
-
- case ALTSELECTOR_FEATURE_OPT: {
- OpenType::Tag t(clp->vstr);
- if (!t.valid())
- usage_error(errh, "bad feature tag");
- else if (altselector_feature_filters[t])
- usage_error(errh, "altselector feature %<%s%> included twice", t.text().c_str());
- else {
- if (!current_filter_ptr) {
- current_filter_ptr = new GlyphFilter(current_substitution_filter + current_alternate_filter);
- allocated_filters.push_back(current_filter_ptr);
- }
- altselector_features.push_back(t);
- altselector_feature_filters.insert(t, current_filter_ptr);
- }
- break;
- }
-
- case ALTERNATES_FILTER_OPT:
- current_alternate_filter = null_filter;
- /* fallthru */
- case EXCLUDE_ALTERNATES_OPT:
- case INCLUDE_ALTERNATES_OPT:
- current_alternate_filter.add_alternate_filter(clp->vstr, opt == EXCLUDE_ALTERNATES_OPT, errh);
- current_filter_ptr = 0;
- break;
-
- case CLEAR_ALTERNATES_OPT:
- current_alternate_filter = null_filter;
- current_filter_ptr = 0;
- break;
-
- case UNICODING_OPT:
- unicoding.push_back(clp->vstr);
- break;
-
- case CODINGSCHEME_OPT:
- if (codingscheme)
- usage_error(errh, "coding scheme specified twice");
- codingscheme = clp->vstr;
- if (codingscheme.length() > 39)
- errh->warning("only first 39 characters of coding scheme are significant");
- if (codingscheme.find_left('(') >= 0 || codingscheme.find_left(')') >= 0)
- usage_error(errh, "coding scheme cannot contain parentheses");
- break;
-
- case AUTOMATIC_OPT:
- automatic = !clp->negated;
- break;
-
- case VENDOR_OPT:
- if (!set_vendor(clp->vstr))
- usage_error(errh, "vendor name specified twice");
- break;
-
- case TYPEFACE_OPT:
- if (!set_typeface(clp->vstr, true))
- usage_error(errh, "typeface name specified twice");
- break;
-
- case VIRTUAL_OPT:
- if (clp->negated)
- output_flags &= ~G_VMETRICS;
- else
- output_flags |= G_VMETRICS;
- specified_output_flags |= G_VMETRICS;
- break;
-
- case NO_ENCODING_OPT:
- case NO_TYPE1_OPT:
- case NO_DOTLESSJ_OPT:
- case NO_UPDMAP_OPT:
- case UPDMAP_SYS_OPT:
- output_flags &= ~(opt - NO_OUTPUT_OPTS);
- specified_output_flags |= opt - NO_OUTPUT_OPTS;
- break;
-
- case TRUETYPE_OPT:
- case TYPE42_OPT:
- case UPDMAP_USER_OPT:
- if (!clp->negated)
- output_flags |= (opt - YES_OUTPUT_OPTS);
- else
- output_flags &= ~(opt - YES_OUTPUT_OPTS);
- specified_output_flags |= opt - YES_OUTPUT_OPTS;
- break;
-
- case OUTPUT_ENCODING_OPT:
- if (out_encoding_file)
- usage_error(errh, "encoding output file specified twice");
- out_encoding_file = (clp->have_val ? clp->vstr : "-");
- output_flags = G_ENCODING;
- specified_output_flags = -1;
- break;
-
- case MINIMUM_KERN_OPT:
- minimum_kern = clp->val.d;
- break;
-
- case MAP_FILE_OPT:
- if (clp->negated)
- output_flags &= ~G_PSFONTSMAP;
- else {
- output_flags |= G_PSFONTSMAP;
- if (!set_map_file(clp->vstr))
- usage_error(errh, "map file specified twice");
- }
- specified_output_flags |= G_PSFONTSMAP;
- break;
-
- case PL_OPT:
- if (clp->negated)
- output_flags &= ~G_ASCII;
- else
- output_flags |= G_ASCII;
- specified_output_flags |= G_ASCII;
- break;
-
- case TFM_OPT:
- if (clp->negated)
- output_flags &= ~G_BINARY;
- else
- output_flags |= G_BINARY;
- specified_output_flags |= G_BINARY;
- break;
-
- case ENCODING_DIR_OPT:
- case TFM_DIR_OPT:
- case PL_DIR_OPT:
- case VF_DIR_OPT:
- case VPL_DIR_OPT:
- case TYPE1_DIR_OPT:
- case TRUETYPE_DIR_OPT:
- case TYPE42_DIR_OPT:
- case DIR_OPT:
- if (!odirs[opt - DIR_OPTS])
- odirs[opt - DIR_OPTS] = clp->vstr;
- else
- usage_error(errh, "%s directory specified twice", odirname(opt - DIR_OPTS));
- break;
-
- case FONT_NAME_OPT:
- font_name:
- if (font_name)
- usage_error(errh, "font name specified twice");
- font_name = clp->vstr;
- break;
-
- case FIXED_PITCH_OPT:
- override_is_fixed_pitch = true;
- is_fixed_pitch = !clp->negated;
- break;
-
- case PROPORTIONAL_WIDTH_OPT:
- override_is_fixed_pitch = true;
- is_fixed_pitch = !!clp->negated;
- break;
-
- case ITALIC_ANGLE_OPT:
- override_italic_angle = true;
- italic_angle = clp->val.d;
- break;
-
- case GLYPHLIST_OPT:
- glyphlist_files.push_back(clp->vstr);
- break;
-
- case QUERY_FEATURES_OPT:
- usage_error(errh, "run %<otfinfo --query-features%> instead");
- break;
-
- case QUERY_SCRIPTS_OPT:
- usage_error(errh, "run %<otfinfo --query-scripts%> instead");
- break;
-
- case QUIET_OPT:
- if (clp->negated)
- errh = ErrorHandler::default_handler();
- else
- // 9.Nov.05 -- need a new SilentErrorHandler, because we use
- // the base SilentErrorHandler elsewhere to ignore errors
- errh = new SilentErrorHandler;
- break;
-
- case VERBOSE_OPT:
- verbose = !clp->negated;
- break;
-
- case NOCREATE_OPT:
- no_create = clp->negated;
- break;
-
- case FORCE_OPT:
- force = !clp->negated;
- break;
-
- case KPATHSEA_DEBUG_OPT:
-#if HAVE_KPATHSEA
- kpsei_set_debug_flags(clp->val.u);
-#else
- errh->warning("Not compiled with kpathsea!");
-#endif
- break;
-
- case X_HEIGHT_OPT: {
- char* ends;
- if (strcmp(clp->vstr, "auto") == 0)
- override_x_height = FontInfo::x_height_auto;
- else if (strcmp(clp->vstr, "x") == 0)
- override_x_height = FontInfo::x_height_x;
- else if (strcmp(clp->vstr, "font") == 0
- || strcmp(clp->vstr, "os/2") == 0)
- override_x_height = FontInfo::x_height_os2;
- else if ((x_height = strtod(clp->vstr, &ends)) >= 0
- && *ends == 0 && *clp->vstr != 0)
- override_x_height = FontInfo::x_height_explicit;
- else
- usage_error(errh, "bad --x-height option");
- break;
- }
-
- case VERSION_OPT:
- printf("otftotfm (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 2002-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- if (input_file && font_name)
- usage_error(errh, "too many arguments");
- else if (input_file)
- goto font_name;
- else
- input_file = clp->vstr;
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- // check for odd option combinations
- if (warn_missing > 0 && !(output_flags & G_VMETRICS))
- errh->warning("%<--warn-missing%> has no effect with %<--no-virtual%>");
- if (!(specified_output_flags & (G_BINARY | G_ASCII)))
- output_flags |= G_BINARY;
-
- // set up file names
- if (!input_file)
- usage_error(errh, "no font filename provided");
- if (encoding_file == "-")
- encoding_file = "";
-
- // set up output directories
- if (odirs[NUMODIR]) {
- for (int i = 0; i < NUMODIR; ++i)
- if (!odirs[i])
- odirs[i] = odirs[NUMODIR];
- }
- for (int i = 0; i < NUMODIR; ++i)
- if (odirs[i])
- setodir(i, odirs[i]);
-
- // set up feature filters
- if (!altselector_features.size()) {
- if (!current_filter_ptr) {
- current_filter_ptr = new GlyphFilter(current_substitution_filter + current_alternate_filter);
- allocated_filters.push_back(current_filter_ptr);
- }
- altselector_features.push_back(OpenType::Tag("dlig"));
- altselector_feature_filters.insert(OpenType::Tag("dlig"), current_filter_ptr);
- altselector_features.push_back(OpenType::Tag("salt"));
- altselector_feature_filters.insert(OpenType::Tag("salt"), current_filter_ptr);
- } else if (!current_filter_ptr) {
- errh->warning("some filtering options ignored");
- errh->message("(--include-*, --exclude-*, and --*-filter options must occur\nbefore the feature options to which they should apply.)");
- }
-
- try {
- // read font
- otf_data = read_file(input_file, errh);
- if (errh->nerrors())
- exit(1);
-
- LandmarkErrorHandler cerrh(errh, printable_filename(input_file));
- BailErrorHandler bail_errh(&cerrh);
-
- OpenType::Font otf(otf_data, &bail_errh);
- assert(otf.ok());
-
- // figure out scripts we care about
- if (!interesting_scripts.size()) {
- interesting_scripts.push_back(Efont::OpenType::Tag("latn"));
- interesting_scripts.push_back(Efont::OpenType::Tag());
- }
- std::sort(interesting_features.begin(), interesting_features.end());
- std::sort(altselector_features.begin(), altselector_features.end());
-
- // find glyphlist
- if (!glyphlist_files.size()) {
-#if HAVE_KPATHSEA
- if (String g = kpsei_find_file("glyphlist.txt", KPSEI_FMT_MAP)) {
- glyphlist_files.push_back(g);
- if (verbose)
- errh->message("glyphlist.txt found with kpathsea at %s", g.c_str());
- } else
-#endif
- glyphlist_files.push_back(GLYPHLISTDIR "/glyphlist.txt");
-#if HAVE_KPATHSEA
- if (String g = kpsei_find_file("texglyphlist.txt", KPSEI_FMT_MAP)) {
- glyphlist_files.push_back(g);
- if (verbose)
- errh->message("texglyphlist.txt found with kpathsea at %s", g.c_str());
- } else
-#endif
- glyphlist_files.push_back(GLYPHLISTDIR "/texglyphlist.txt");
- }
-
- // read glyphlist
- for (String *g = glyphlist_files.begin(); g < glyphlist_files.end(); g++)
- if (String s = read_file(*g, errh, true))
- DvipsEncoding::add_glyphlist(s);
-
- // read base encodings
- for (String *s = base_encoding_files.begin(); s < base_encoding_files.end(); s++)
- parse_base_encodings(*s, errh);
-
- // read encoding
- DvipsEncoding dvipsenc;
- if (encoding_file) {
- if (String path = locate_encoding(encoding_file, errh))
- dvipsenc.parse(path, no_ecommand, no_ecommand, errh);
- else
- errh->fatal("encoding %<%s%> not found", encoding_file.c_str());
- } else {
- String cff_data(otf.table("CFF"));
- if (!cff_data) {
- errh->error("explicit encoding required for TrueType fonts");
- errh->message("(Use %<-e ENCODING%> to choose an encoding. %<-e texnansx%> often works.)");
- exit(1);
- } else if (!have_encoding_file) {
- errh->warning("no encoding provided");
- errh->message("(Use %<-e ENCODING%> to choose an encoding. %<-e texnansx%> often works,\nor say %<-e -%> to turn off this warning.)");
- }
-
- // use encoding from font
- Cff cff(cff_data, otf.units_per_em(), &bail_errh);
- Cff::FontParent *font = cff.font(PermString(), &bail_errh);
- assert(cff.ok() && font->ok());
- if (Type1Encoding *t1e = font->type1_encoding()) {
- for (int i = 0; i < 256; i++)
- dvipsenc.encode(i, (*t1e)[i]);
- } else
- errh->fatal("font has no encoding, specify one explicitly");
- }
-
- // apply default ligkern commands
- if (default_ligkern)
- dvipsenc.parse_ligkern(default_ligkerns, 0, ErrorHandler::silent_handler());
-
- // apply command-line ligkern commands and coding scheme
- cerrh.set_landmark("--ligkern command");
- for (int i = 0; i < ligkern.size(); i++)
- dvipsenc.parse_ligkern(ligkern[i], 1, &cerrh);
- cerrh.set_landmark("--position command");
- for (int i = 0; i < pos.size(); i++)
- dvipsenc.parse_position(pos[i], 1, &cerrh);
- cerrh.set_landmark("--unicoding command");
- for (int i = 0; i < unicoding.size(); i++)
- dvipsenc.parse_unicoding(unicoding[i], 1, &cerrh);
- if (codingscheme)
- dvipsenc.set_coding_scheme(codingscheme);
- if (warn_missing >= 0)
- dvipsenc.set_warn_missing(warn_missing);
-
- do_file(input_file, otf, dvipsenc, literal_encoding, errh);
-
- } catch (OpenType::Error e) {
- errh->error("unhandled exception %<%s%>", e.description.c_str());
- }
-
- for (int i = 0; i < allocated_filters.size(); ++i)
- delete allocated_filters[i];
- Clp_DeleteParser(clp);
- return (errh->nerrors() == 0 ? 0 : 1);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.hh
deleted file mode 100644
index 368a7b8135d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.hh
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef OTFTOTFM_OTFTOTFM_HH
-#define OTFTOTFM_OTFTOTFM_HH
-#include <lcdf/string.hh>
-class Metrics;
-class FontInfo;
-class StringAccum;
-class ErrorHandler;
-
-String suffix_font_name(const String &font_name, const String &suffix);
-
-String installed_metrics_font_name(const String &font_name, const String &secondary);
-
-void output_metrics(Metrics &metrics, const String &ps_name, int boundary_char,
- const FontInfo &finfo,
- const String &encoding_name, const String &encoding_file,
- const String &font_name,
- String (*dvips_include)(const String &ps_name, const FontInfo &, ErrorHandler *),
- ErrorHandler *errh);
-
-double font_cap_height(const FontInfo &, const Transform &);
-double font_ascender(const FontInfo &, const Transform &);
-double font_slant(const FontInfo &);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
deleted file mode 100644
index 64343f7db21..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.cc
+++ /dev/null
@@ -1,706 +0,0 @@
-/* secondary.{cc,hh} -- code for generating fake glyphs
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#include <config.h>
-#include "secondary.hh"
-#include "metrics.hh"
-#include "automatic.hh"
-#include "otftotfm.hh"
-#include "util.hh"
-#include <efont/t1bounds.hh>
-#include <efont/t1font.hh>
-#include <efont/t1rw.hh>
-#include <efont/otfname.hh>
-#include <efont/otfos2.hh>
-#include <efont/otfpost.hh>
-#include <efont/t1csgen.hh>
-#include <efont/t1unparser.hh>
-#include <efont/ttfcs.hh>
-#include <lcdf/straccum.hh>
-#include <stdarg.h>
-#include <errno.h>
-#include <limits.h>
-#include <algorithm>
-
-enum {
- U_EXCLAMDOWN = 0x00A1, // U+00A1 INVERTED EXCLAMATION MARK
- U_DEGREE = 0x00B0, // U+00B0 DEGREE SIGN
- U_QUESTIONDOWN = 0x00BF, // U+00BF INVERTED QUESTION MARK
- U_IJ = 0x0132, // U+0132 LATIN CAPITAL LIGATURE IJ
- U_ij = 0x0133, // U+0133 LATIN SMALL LIGATURE IJ
- U_DOTLESSJ = 0x0237, // U+0237 LATIN SMALL LETTER DOTLESS J
- U_RINGABOVE = 0x02DA, // U+02DA RING ABOVE
- U_COMBININGRINGABOVE = 0x030A, // U+030A COMBINING RING ABOVE
- U_CWM = 0x200C, // U+200C ZERO WIDTH NON-JOINER
- U_ENDASH = 0x2013, // U+2013 EN DASH
- U_PERTENTHOUSAND = 0x2031, // U+2031 PER TEN THOUSAND SIGN
- U_INTERROBANG = 0x203D, // U+203D INTERROBANG
- U_FRACTION = 0x2044, // U+2044 FRACTION SLASH
- U_CENTIGRADE = 0x2103, // U+2103 DEGREE CELSIUS
- U_ASTERISKMATH = 0x2217, // U+2217 ASTERISK OPERATOR
- U_BARDBL = 0x2225, // U+2225 PARALLEL TO
- U_VISIBLESPACE = 0x2423, // U+2423 OPEN BOX
- U_DBLBRACKETLEFT = 0x27E6, // U+27E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET
- U_DBLBRACKETRIGHT = 0x27E7, // U+27E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET
- U_INTERROBANGDOWN = 0x2E18, // U+2E18 INVERTED INTERROBANG
- U_ALTSELECTOR = 0xD802, // invalid Unicode
- U_CAPITALCWM = 0xD809, // invalid Unicode
- U_ASCENDERCWM = 0xD80A, // invalid Unicode
- U_TWELVEUDASH = 0xD80C, // invalid Unicode
- U_RINGFITTED = 0xD80D, // invalid Unicode
-
- // BEGIN BACKWARDS COMPATIBILITY -- newer texglyphlist.txt does not include
- // these code points
- U_SS = 0xD800, // invalid Unicode
- U_SSSMALL = 0xD803, // invalid Unicode
- U_FFSMALL = 0xD804, // invalid Unicode
- U_FISMALL = 0xD805, // invalid Unicode
- U_FLSMALL = 0xD806, // invalid Unicode
- U_FFISMALL = 0xD807, // invalid Unicode
- U_FFLSMALL = 0xD808, // invalid Unicode
- // END BACKWARDS COMPATIBILITY
-
- U_VS1 = 0xFE00,
- U_VS16 = 0xFE0F,
- U_VS17 = 0xE0100,
- U_VS256 = 0xE01FF,
- U_DOTLESSJ_2 = 0xF6BE,
- U_THREEQUARTERSEMDASH = 0xF6DE,
- U_FSMALL = 0xF766,
- U_ISMALL = 0xF769,
- U_LSMALL = 0xF76C,
- U_SSMALL = 0xF773,
- U_MATHDOTLESSJ = 0x1D6A5 // U+1D6A5 MATHEMATICAL ITALIC SMALL DOTLESS J
-};
-
-
-FontInfo::FontInfo(const Efont::OpenType::Font *otf_, ErrorHandler *errh)
- : otf(otf_), cmap(0), cff_file(0), cff(0), post(0), name(0), _nglyphs(-1),
- _got_glyph_names(false), _ttb_program(0), _override_is_fixed_pitch(false),
- _override_italic_angle(false), _override_x_height(x_height_auto)
-{
- cmap = new Efont::OpenType::Cmap(otf->table("cmap"), errh);
- assert(cmap->ok());
-
- if (String cff_string = otf->table("CFF")) {
- cff_file = new Efont::Cff(cff_string, otf->units_per_em(), errh);
- if (!cff_file->ok())
- return;
- Efont::Cff::FontParent *fp = cff_file->font(PermString(), errh);
- if (!fp || !fp->ok())
- return;
- if (!(cff = dynamic_cast<Efont::Cff::Font *>(fp))) {
- errh->error("CID-keyed fonts not supported");
- return;
- }
- _nglyphs = cff->nglyphs();
- }
-
- if (!cff) {
- post = new Efont::OpenType::Post(otf->table("post"), errh);
- // read number of glyphs from 'maxp' -- should probably be elsewhere
- if (Efont::OpenType::Data maxp = otf->table("maxp"))
- if (maxp.length() >= 6)
- _nglyphs = maxp.u16(4);
- if (_nglyphs < 0 && post->ok())
- _nglyphs = post->nglyphs();
- }
-
- name = new Efont::OpenType::Name(otf->table("name"), errh);
-}
-
-FontInfo::~FontInfo()
-{
- delete cmap;
- delete cff_file;
- delete post;
- delete name;
- delete _ttb_program;
-}
-
-bool
-FontInfo::ok() const
-{
- if (cff)
- return cmap->ok() && cff->ok();
- else
- return post && post->ok() && name && name->ok();
-}
-
-bool
-FontInfo::glyph_names(Vector<PermString> &glyph_names) const
-{
- program()->glyph_names(glyph_names);
- return true;
-}
-
-int
-FontInfo::glyphid(PermString name) const
-{
- if (cff)
- return cff->glyphid(name);
- else {
- if (!_got_glyph_names) {
- glyph_names(_glyph_names);
- _got_glyph_names = true;
- }
- PermString *found = std::find(_glyph_names.begin(), _glyph_names.end(), name);
- if (found == _glyph_names.end())
- return 0;
- return found - _glyph_names.begin();
- }
-}
-
-String
-FontInfo::family_name() const
-{
- if (cff)
- return cff->dict_string(Efont::Cff::oFamilyName);
- else
- return name->english_name(Efont::OpenType::Name::N_FAMILY);
-}
-
-String
-FontInfo::postscript_name() const
-{
- if (cff)
- return cff->font_name();
- else
- return name->english_name(Efont::OpenType::Name::N_POSTSCRIPT);
-}
-
-const Efont::CharstringProgram *
-FontInfo::program() const
-{
- if (cff)
- return cff;
- else {
- if (!_ttb_program)
- _ttb_program = new Efont::TrueTypeBoundsCharstringProgram(otf);
- return _ttb_program;
- }
-}
-
-bool
-FontInfo::is_fixed_pitch() const
-{
- if (_override_is_fixed_pitch)
- return _is_fixed_pitch;
- else if (cff) {
- double d;
- return (cff->dict_value(Efont::Cff::oIsFixedPitch, &d) && d);
- } else
- return post->is_fixed_pitch();
-}
-
-double
-FontInfo::italic_angle() const
-{
- if (_override_italic_angle)
- return _italic_angle;
- else if (cff) {
- double d;
- (void) cff->dict_value(Efont::Cff::oItalicAngle, &d);
- return d;
- } else
- return post->italic_angle();
-}
-
-double FontInfo::x_height(const Transform& font_xform) const {
- if (_override_x_height == x_height_explicit)
- return _x_height;
- double x1 = -1, x2 = -1;
- if (_override_x_height != x_height_os2)
- // XXX what if 'x', 'm', 'z' were subject to substitution?
- x1 = char_one_bound(*this, font_xform, 3, false, units_per_em(),
- (int) 'x', (int) 'm', (int) 'z', 0);
- if (_override_x_height != x_height_x)
- try {
- Efont::OpenType::Os2 os2(otf->table("OS/2"));
- x2 = (Point(0, os2.x_height()) * font_xform).y;
- } catch (Efont::OpenType::Bounds) {
- }
- static bool warned = false;
- if (_override_x_height == x_height_auto
- && x1 >= 0
- && x2 >= 0
- && fabs(x1 - x2) > units_per_em() / 50.) {
- if (!warned) {
- ErrorHandler* errh = ErrorHandler::default_handler();
- errh->warning("font x-height and height of %<x%> differ by %d%%", (int) (fabs(x1 - x2) * 100 / units_per_em()));
- errh->message("(The height of %<x%> is usually more reliable than the x-height, so I%,m\nusing that. Or try --use-x-height or --no-use-x-height.)\n");
- warned = true;
- }
- return x1;
- } else
- return x2 >= 0 ? x2 : x1;
-}
-
-
-/* */
-
-Secondary::~Secondary()
-{
-}
-
-bool
-Secondary::encode_uni(int code, PermString name,
- const uint32_t* uni_begin, const uint32_t* uni_end,
- Metrics &metrics, ErrorHandler *errh)
-{
- uint32_t uni = 0;
- if (uni_begin + 1 == uni_end)
- uni = *uni_begin;
-
- SettingSet set(this, metrics);
- int max_s = 0;
- while (uni_begin != uni_end) {
- int s = setting(*uni_begin, set, errh);
- if (s == 0)
- return false;
- max_s = (max_s > s ? max_s : s);
- ++uni_begin;
- set.checkpoint();
- }
-
- if (uni == U_ALTSELECTOR
- || (uni >= U_VS1 && uni <= U_VS16)
- || (uni >= U_VS17 && uni <= U_VS256)) {
- int selector = 0;
- if (uni >= U_VS1 && uni <= U_VS16)
- selector = uni - U_VS1 + 1;
- else if (uni >= U_VS17 && uni <= U_VS256)
- selector = uni - U_VS17 + 17;
- metrics.add_altselector_code(code, selector);
- name = selector ? permprintf("<vs%d>", selector) : PermString("<altselector>");
- }
-
- metrics.encode_virtual(code, name, 0, set.settings(), max_s > 1);
- return true;
-}
-
-T1Secondary::T1Secondary(const FontInfo &finfo, const String &font_name,
- const String &otf_file_name)
- : Secondary(finfo), _font_name(font_name), _otf_file_name(otf_file_name),
- _units_per_em(finfo.units_per_em()),
- _xheight((int) ceil(finfo.x_height(Transform()))),
- _spacewidth(_units_per_em)
-{
- double bounds[4], width;
- if (char_bounds(bounds, width, finfo, Transform(), ' '))
- _spacewidth = (int) ceil(width);
-}
-
-int
-Secondary::setting(uint32_t uni, SettingSet& set, ErrorHandler *errh)
-{
- if (_next)
- return _next->setting(uni, set, errh);
- else
- return 0;
-}
-
-SettingSet& SettingSet::show(int uni) {
- if (!ok_)
- return *this;
- int code = metrics_.unicode_encoding(uni);
- if (code < 0) {
- Glyph glyph = s_->_finfo.cmap->map_uni(uni);
- if (glyph != 0)
- code = metrics_.force_encoding(glyph);
- }
- if (code < 0) {
- ok_ = false;
- while (v_.size() > original_size_)
- v_.pop_back();
- } else {
- if (!v_.empty()
- && v_.back().op == Setting::SHOW
- && kern_type_)
- v_.push_back(Setting(kern_type_));
- v_.push_back(Setting(Setting::SHOW, code, metrics_.base_glyph(code)));
- }
- return *this;
-}
-
-
-static String dotlessj_file_name;
-
-static String
-dotlessj_dvips_include(const String &, const FontInfo &, ErrorHandler *)
-{
- return "<" + pathname_filename(dotlessj_file_name);
-}
-
-int
-T1Secondary::dotlessj_font(Metrics &metrics, ErrorHandler *errh, Glyph &dj_glyph)
-{
- if (!_font_name || !_finfo.otf || !_finfo.cff)
- return -1;
-
- String dj_name;
- bool install_metrics;
- // XXX make sure dotlessj is for the main font?
- if ((dj_name = installed_metrics_font_name(_font_name, "dotlessj")))
- install_metrics = false;
- else {
- dj_name = suffix_font_name(_font_name, "--lcdfj");
- install_metrics = true;
- }
-
- // is dotlessj already mapped?
- for (int i = 0; i < metrics.n_mapped_fonts(); i++)
- if (metrics.mapped_font_name(i) == dj_name)
- return i;
-
- if (String filename = installed_type1_dotlessj(_otf_file_name, _finfo.cff->font_name(), (output_flags & G_DOTLESSJ), errh)) {
-
- // check for special case: "\0" means the font's "j" is already
- // dotless
- if (filename == String("\0", 1))
- return J_NODOT;
-
- // open dotless-j font file
- FILE *f = fopen(filename.c_str(), "rb");
- if (!f) {
- errh->error("%s: %s", filename.c_str(), strerror(errno));
- return -1;
- }
-
- // read font
- Efont::Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == 128)
- reader = new Efont::Type1PFBReader(f);
- else
- reader = new Efont::Type1PFAReader(f);
- Efont::Type1Font *font = new Efont::Type1Font(*reader);
- delete reader;
-
- if (!font->ok()) {
- errh->error("%s: no glyphs in dotless-J font", filename.c_str());
- delete font;
- return -1;
- }
-
- // find dotless-J character
- Vector<PermString> glyph_names;
- font->glyph_names(glyph_names);
- Vector<PermString>::iterator g = std::find(glyph_names.begin(), glyph_names.end(), "uni0237");
- if (g == glyph_names.end()) {
- errh->error("%s: dotless-J font has no %<uni0237%> glyph", filename.c_str());
- delete font;
- return -1;
- }
- dj_glyph = g - glyph_names.begin();
-
- // create metrics for dotless-J
- if (install_metrics) {
- Metrics dj_metrics(font, 256);
- dj_metrics.encode('j', U_DOTLESSJ, dj_glyph);
- ::dotlessj_file_name = filename;
- output_metrics(dj_metrics, font->font_name(), -1, _finfo, String(), String(), dj_name, dotlessj_dvips_include, errh);
- } else if (verbose)
- errh->message("using %<%s%> for dotless-J font metrics", dj_name.c_str());
-
- // add font to metrics
- return metrics.add_mapped_font(font, dj_name);
-
- } else
- return -1;
-}
-
-int
-T1Secondary::setting(uint32_t uni, SettingSet& set, ErrorHandler *errh)
-{
- Transform xform;
- extern int letterspace;
-
- if (set.show(uni).check())
- return 1;
-
- switch (uni) {
-
- case U_CWM:
- case U_ALTSELECTOR:
- set.push_back(Setting::RULE, 0, _xheight);
- return 1;
-
- case U_CAPITALCWM:
- set.push_back(Setting::RULE, 0, font_cap_height(_finfo, xform));
- return 1;
-
- case U_ASCENDERCWM:
- set.push_back(Setting::RULE, 0, font_ascender(_finfo, xform));
- return 1;
-
- case U_VISIBLESPACE: {
- int sb = (int) (0.050 * _units_per_em), h = (int) (0.150 * _units_per_em),
- lw = (int) (0.040 * _units_per_em);
- set.move(sb, -h);
- set.push_back(Setting::RULE, lw, h);
- set.push_back(Setting::RULE, _spacewidth, lw);
- set.push_back(Setting::RULE, lw, h);
- set.move(sb, h);
- return 2;
- }
-
- case U_SS:
- if (set.show('S').show('S').check())
- return 1;
- break;
-
- case U_SSSMALL:
- if (set.show(U_SSMALL).show(U_SSMALL).check()
- || set.show('s').show('s').check())
- return 1;
- break;
-
- case U_FFSMALL:
- if (set.show(U_FSMALL).show(U_FSMALL).check()
- || set.show('f').show('f').check())
- return 1;
- break;
-
- case U_FISMALL:
- if (set.show(U_FSMALL).show(U_ISMALL).check()
- || set.show('f').show('i').check())
- return 1;
- break;
-
- case U_FLSMALL:
- if (set.show(U_FSMALL).show(U_LSMALL).check()
- || set.show('f').show('l').check())
- return 1;
- break;
-
- case U_FFISMALL:
- if (set.show(U_FSMALL).show(U_FSMALL).show(U_ISMALL).check()
- || set.show('f').show('f').show('i').check())
- return 1;
- break;
-
- case U_FFLSMALL:
- if (set.show(U_FSMALL).show(U_FSMALL).show(U_LSMALL).check()
- || set.show('f').show('f').show('l').check())
- return 1;
- break;
-
- case U_IJ:
- if (set.show('I').show('J').check())
- return 1;
- break;
-
- case U_ij:
- if (set.show('i').show('j').check())
- return 1;
- break;
-
- case U_DOTLESSJ:
- case U_DOTLESSJ_2:
- case U_MATHDOTLESSJ: {
- Glyph dj_glyph;
- int which = dotlessj_font(set.metrics(), errh, dj_glyph);
- if (which >= 0) {
- set.push_back(Setting::FONT, which);
- set.push_back(Setting::SHOW, 'j', dj_glyph);
- return 2;
- } else if (which == J_NODOT && set.show('j').check())
- return 1;
- break;
- }
-
- case U_DBLBRACKETLEFT:
- if (set.show('[').check()) {
- if (!_finfo.is_fixed_pitch()) {
- double d = char_one_bound(_finfo, xform, 4, true, 0, '[', 0);
- set.move((int) (-0.666 * d - letterspace));
- }
- set.show('[');
- return 1;
- }
- break;
-
- case U_DBLBRACKETRIGHT:
- if (set.show(']').check()) {
- if (!_finfo.is_fixed_pitch()) {
- double d = char_one_bound(_finfo, xform, 4, true, 0, ']', 0);
- set.move((int) (-0.666 * d - letterspace));
- }
- set.show(']');
- return 1;
- }
- break;
-
- case U_BARDBL:
- if (set.show('|').check()) {
- if (!_finfo.is_fixed_pitch()) {
- double d = char_one_bound(_finfo, Transform(), 4, true, 0, '|', 0);
- set.move((int) (-0.333 * d - letterspace));
- }
- set.show('|');
- return 1;
- }
- break;
-
- case U_ASTERISKMATH: {
- double bounds[5];
- double dropdown = 0;
- if (char_bounds(bounds, bounds[4], _finfo, xform, '*'))
- dropdown += std::max(bounds[3], 0.) + std::min(bounds[1], 0.);
- if (char_bounds(bounds, bounds[4], _finfo, xform, '('))
- dropdown -= std::max(bounds[3], 0.) + std::min(bounds[1], 0.);
- int dy = (int) (-dropdown / 2);
- if (set.move(0, dy).show('*').move(0, -dy).check())
- return 1;
- break;
- }
-
- case U_TWELVEUDASH:
- if (set.show(U_ENDASH).check()) {
- if (!_finfo.is_fixed_pitch()) {
- double d = char_one_bound(_finfo, xform, 4, true, 0, U_ENDASH, 0);
- set.move((int) (_units_per_em * 0.667 - 2 * d - letterspace));
- }
- set.show(U_ENDASH);
- return 1;
- }
- break;
-
- case U_THREEQUARTERSEMDASH:
- if (set.show(U_ENDASH).check()) {
- if (!_finfo.is_fixed_pitch()) {
- double d = char_one_bound(_finfo, xform, 4, true, 0, U_ENDASH, 0);
- set.move((int) (_units_per_em * 0.750 - 2 * d - letterspace));
- }
- set.show(U_ENDASH);
- return 1;
- }
- break;
-
- case U_CENTIGRADE:
- // TODO: set italic correction to that of a 'C'
- if (set.show(U_DEGREE).kernx(true).show('C').kernx(false).check())
- return 1;
- break;
-
- case U_INTERROBANG: {
- double exclam_offset =
- (char_one_bound(_finfo, xform, 4, true, 0, '?', 0)
- - char_one_bound(_finfo, xform, 4, true, 0, '!', 0)) * 0.5
- + 0.050 * _units_per_em;
- if (set.push_back(Setting::PUSH).move((int) exclam_offset)
- .show('!').push_back(Setting::POP).show('?').check())
- return 1;
- break;
- }
-
- case U_INTERROBANGDOWN: {
- double exclam_offset =
- (char_one_bound(_finfo, xform, 4, true, 0, U_QUESTIONDOWN, 0)
- - char_one_bound(_finfo, xform, 4, true, 0, U_EXCLAMDOWN, 0)) * 0.5
- + 0.050 * _units_per_em;
- if (set.push_back(Setting::PUSH).move((int) exclam_offset)
- .show(U_EXCLAMDOWN).push_back(Setting::POP).show(U_QUESTIONDOWN).check())
- return 1;
- break;
- }
-
- case U_PERTENTHOUSAND:
- if (set.show(0xF661).kernx(true).show(U_FRACTION)
- .show(0xF655).show(0xF655).show(0xF655).kernx(false).check())
- return 1;
- break;
-
- case U_RINGFITTED: {
- int A_width = char_one_bound(_finfo, xform, 4, true, -_units_per_em, 'A', 0);
- uint32_t ring_char = U_RINGABOVE;
- int ring_width = char_one_bound(_finfo, xform, 4, true, -_units_per_em, ring_char, 0);
- if (ring_width <= -_units_per_em) {
- ring_char = U_COMBININGRINGABOVE;
- ring_width = char_one_bound(_finfo, xform, 4, true, -_units_per_em, ring_char, 0);
- }
- if (A_width > -_units_per_em && ring_width > -_units_per_em) {
- int offset = (A_width - ring_width) / 2;
- if (set.move(offset).show(ring_char).move(A_width - ring_width - offset).check()) {
- return 1;
- }
- }
- break;
- }
-
- }
-
- // variant selectors get the same setting as ALTSELECTOR
- if ((uni >= U_VS1 && uni <= U_VS16) || (uni >= U_VS17 && uni <= U_VS256))
- return setting(U_ALTSELECTOR, set, errh);
-
- // otherwise, try other secondaries
- return Secondary::setting(uni, set, errh);
-}
-
-
-bool
-char_bounds(double bounds[4], double& width, const FontInfo &finfo,
- const Transform &transform, uint32_t uni)
-{
- if (Efont::OpenType::Glyph g = finfo.cmap->map_uni(uni))
- return Efont::CharstringBounds::bounds(transform, finfo.program()->glyph_context(g), bounds, width);
- else
- return false;
-}
-
-double
-char_one_bound(const FontInfo &finfo, const Transform &transform,
- int dimen, bool max, double best, int uni, ...)
-{
- double bounds[5];
- va_list val;
- va_start(val, uni);
- while (uni != 0) {
- if (char_bounds(bounds, bounds[4], finfo, transform, uni))
- if (max ? bounds[dimen] > best : bounds[dimen] < best)
- best = bounds[dimen];
- uni = va_arg(val, int);
- }
- va_end(val);
- return best;
-}
-
-double
-font_cap_height(const FontInfo &finfo, const Transform &font_xform)
-{
- try {
- Efont::OpenType::Os2 os2(finfo.otf->table("OS/2"));
- return os2.cap_height();
- } catch (Efont::OpenType::Bounds) {
- // XXX what if 'H', 'O', 'B' were subject to substitution?
- return char_one_bound(finfo, font_xform, 3, false, finfo.units_per_em(),
- (int) 'H', (int) 'O', (int) 'B', 0);
- }
-}
-
-double
-font_ascender(const FontInfo &finfo, const Transform &font_xform)
-{
- try {
- Efont::OpenType::Os2 os2(finfo.otf->table("OS/2"));
- return os2.typo_ascender();
- } catch (Efont::OpenType::Bounds) {
- // XXX what if 'd', 'l' were subject to substitution?
- return char_one_bound(finfo, font_xform, 3, true,
- finfo.x_height(font_xform),
- (int) 'd', (int) 'l', 0);
- }
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
deleted file mode 100644
index 1330e9450a8..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/secondary.hh
+++ /dev/null
@@ -1,177 +0,0 @@
-#ifndef OTFTOTFM_SECONDARY_HH
-#define OTFTOTFM_SECONDARY_HH
-#include <efont/otfcmap.hh>
-#include <efont/cff.hh>
-#include "setting.hh"
-class Metrics;
-class Secondary;
-class Transform;
-namespace Efont { class TrueTypeBoundsCharstringProgram; }
-
-struct FontInfo {
-
- const Efont::OpenType::Font *otf;
- const Efont::OpenType::Cmap *cmap;
-
- Efont::Cff *cff_file;
- const Efont::Cff::Font *cff;
-
- const Efont::OpenType::Post *post;
- const Efont::OpenType::Name *name;
-
- FontInfo(const Efont::OpenType::Font *otf, ErrorHandler *);
- ~FontInfo();
-
- bool ok() const;
-
- int nglyphs() const { return _nglyphs; }
- bool glyph_names(Vector<PermString> &) const;
- int glyphid(PermString) const;
- const Efont::CharstringProgram *program() const;
- int units_per_em() const {
- return program()->units_per_em();
- }
-
- bool is_fixed_pitch() const;
- double italic_angle() const;
- double x_height(const Transform& font_xform) const;
-
- void set_is_fixed_pitch(bool is_fixed_pitch) {
- _override_is_fixed_pitch = true;
- _is_fixed_pitch = is_fixed_pitch;
- }
- void set_italic_angle(double italic_angle) {
- _override_italic_angle = true;
- _italic_angle = italic_angle;
- }
- enum { x_height_auto = 0, x_height_explicit,
- x_height_os2, x_height_x };
- void set_x_height(int source, double x_height) {
- _override_x_height = source;
- _x_height = x_height;
- }
-
- String family_name() const;
- String postscript_name() const;
-
- private:
-
- int _nglyphs;
- mutable Vector<PermString> _glyph_names;
- mutable bool _got_glyph_names;
- mutable Vector<uint32_t> _unicodes;
- mutable Efont::TrueTypeBoundsCharstringProgram *_ttb_program;
- bool _override_is_fixed_pitch;
- bool _override_italic_angle;
- bool _is_fixed_pitch;
- uint8_t _override_x_height;
- double _italic_angle;
- double _x_height;
-
-};
-
-class SettingSet {
-public:
- inline SettingSet(Secondary* s, Metrics& m);
- inline SettingSet& push_back(Setting s);
- inline SettingSet& push_back(int op, int x = 0, int y = 0);
- inline SettingSet& move(int x, int y = 0);
- SettingSet& show(int uni);
- inline SettingSet& kernx(bool is_kernx);
- inline bool check();
- inline void checkpoint();
- inline Metrics& metrics() const;
- inline const Vector<Setting>& settings() const;
-private:
- Secondary* s_;
- Vector<Setting> v_;
- int original_size_;
- Metrics& metrics_;
- int kern_type_;
- bool ok_;
- typedef Efont::OpenType::Glyph Glyph;
-};
-
-class Secondary { public:
- Secondary(const FontInfo& finfo) : _finfo(finfo), _next(0) { }
- virtual ~Secondary();
- void set_next(Secondary *s) { _next = s; }
- typedef Efont::OpenType::Glyph Glyph;
- bool encode_uni(int code, PermString name, const uint32_t* uni_first, const uint32_t* uni_last, Metrics &metrics, ErrorHandler *errh);
- inline bool encode_uni(int code, PermString name, uint32_t uni, Metrics& m, ErrorHandler* errh);
- virtual int setting(uint32_t uni, SettingSet&, ErrorHandler *);
- protected:
- const FontInfo& _finfo;
-
- friend class SettingSet;
- private:
- Secondary *_next;
-};
-
-class T1Secondary : public Secondary { public:
- T1Secondary(const FontInfo &, const String &font_name, const String &otf_file_name);
- int setting(uint32_t uni, SettingSet&, ErrorHandler *);
- private:
- String _font_name;
- String _otf_file_name;
- int _units_per_em;
- int _xheight;
- int _spacewidth;
- enum { J_NODOT = -1031892 /* unlikely value */ };
- int dotlessj_font(Metrics &, ErrorHandler *, Glyph &dj_glyph);
-};
-
-bool char_bounds(double bounds[4], double& width, const FontInfo &,
- const Transform &, uint32_t uni);
-
-double char_one_bound(const FontInfo &, const Transform &,
- int dimen, bool max, double best, int uni, ...);
-
-inline SettingSet::SettingSet(Secondary* s, Metrics& m)
- : s_(s), original_size_(0), metrics_(m),
- kern_type_(Setting::KERN), ok_(true) {
-}
-
-inline SettingSet& SettingSet::kernx(bool is_kernx) {
- kern_type_ = is_kernx ? Setting::KERNX : Setting::KERN;
- return *this;
-}
-
-inline SettingSet& SettingSet::push_back(Setting s) {
- if (ok_)
- v_.push_back(s);
- return *this;
-}
-
-inline SettingSet& SettingSet::push_back(int op, int x, int y) {
- return push_back(Setting(op, x, y));
-}
-
-inline SettingSet& SettingSet::move(int x, int y) {
- return push_back(Setting(Setting::MOVE, x, y));
-}
-
-inline bool SettingSet::check() {
- bool ok = ok_;
- ok_ = true;
- return ok;
-}
-
-inline void SettingSet::checkpoint() {
- assert(ok_);
- original_size_ = v_.size();
-}
-
-inline Metrics& SettingSet::metrics() const {
- return metrics_;
-}
-
-inline const Vector<Setting>& SettingSet::settings() const {
- return v_;
-}
-
-inline bool Secondary::encode_uni(int code, PermString name, uint32_t uni, Metrics& m, ErrorHandler* errh) {
- return encode_uni(code, name, &uni, &uni + 1, m, errh);
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/setting.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/setting.hh
deleted file mode 100644
index af1854174b2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/setting.hh
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef OTFTOTFM_SETTING_HH
-#define OTFTOTFM_SETTING_HH
-#include <lcdf/string.hh>
-
-struct Setting {
- enum { NONE, FONT, SHOW, KERN, KERNX, MOVE, RULE, PUSH, POP,
- SPECIAL, DEAD };
- int op;
- int x;
- int y;
- String s;
- Setting(int op_in, int x_in = 0, int y_in = 0)
- : op(op_in), x(x_in), y(y_in) { }
- Setting(int op_in, const String &s_in) : op(op_in), s(s_in) { }
- bool valid_op() const { return op >= FONT && op <= SPECIAL; }
-};
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
deleted file mode 100644
index de8d1e6c032..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.cc
+++ /dev/null
@@ -1,483 +0,0 @@
-/* uniprop.{cc,hh} -- code for Unicode character properties
- *
- * Copyright (c) 2004-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#include <config.h>
-#include "uniprop.hh"
-#include <lcdf/string.hh>
-
-const unsigned char UnicodeProperty::property_pages[] = {
- 0, P_Cn,
- 0, P_Cc, 32, P_Zs, 33, P_Po, 36, P_Sc, 37, P_Po, 40, P_Ps, 41, P_Pe, 42, P_Po, 43, P_Sm, 44, P_Po, 45, P_Pd, 46, P_Po, 48, P_Nd, 58, P_Po, 60, P_Sm, 63, P_Po, 65, P_Lu, 91, P_Ps, 92, P_Po, 93, P_Pe, 94, P_Sk, 95, P_Pc, 96, P_Sk, 97, P_Ll, 123, P_Ps, 124, P_Sm, 125, P_Pe, 126, P_Sm, 127, P_Cc, 160, P_Zs, 161, P_Po, 162, P_Sc, 166, P_So, 167, P_Po, 168, P_Sk, 169, P_So, 170, P_Lo, 171, P_Pi, 172, P_Sm, 173, P_Cf, 174, P_So, 175, P_Sk, 176, P_So, 177, P_Sm, 178, P_No, 180, P_Sk, 181, P_Ll, 182, P_Po, 184, P_Sk, 185, P_No, 186, P_Lo, 187, P_Pf, 188, P_No, 191, P_Po, 192, P_Lu, 215, P_Sm, 216, P_Lu, 223, P_Ll, 247, P_Sm, 248, P_Ll,
- 0, P_Lul, 56, P_Ll, 57, P_Lul, 73, P_Ll, 74, P_Lul, 120, P_Lu, 122, P_Ll, 123, P_Lul, 127, P_Ll, 129, P_Lu, 131, P_Ll, 132, P_Lul, 134, P_Lu, 136, P_Ll, 137, P_Lu, 140, P_Ll, 142, P_Lu, 146, P_Ll, 147, P_Lu, 149, P_Ll, 150, P_Lu, 153, P_Ll, 156, P_Lu, 158, P_Ll, 159, P_Lu, 161, P_Ll, 162, P_Lul, 166, P_Lu, 168, P_Ll, 169, P_Lul, 171, P_Ll, 172, P_Lul, 174, P_Lu, 176, P_Ll, 177, P_Lu, 180, P_Ll, 181, P_Lul, 183, P_Lu, 185, P_Ll, 187, P_Lo, 188, P_Lul, 190, P_Ll, 192, P_Lo, 196, P_Lu, 197, P_Lt, 198, P_Ll, 199, P_Lu, 200, P_Lt, 201, P_Ll, 202, P_Lu, 203, P_Lt, 204, P_Ll, 205, P_Lul, 221, P_Ll, 222, P_Lul, 240, P_Ll, 241, P_Lu, 242, P_Lt, 243, P_Ll, 244, P_Lul, 246, P_Lu, 249, P_Ll, 250, P_Lul,
- 0, P_Lul, 52, P_Ll, 58, P_Lu, 60, P_Ll, 61, P_Lu, 63, P_Ll, 65, P_Lul, 67, P_Lu, 71, P_Ll, 72, P_Lul, 80, P_Ll, 148, P_Lo, 149, P_Ll, 176, P_Lm, 194, P_Sk, 198, P_Lm, 210, P_Sk, 224, P_Lm, 229, P_Sk, 236, P_Lm, 237, P_Sk, 238, P_Lm, 239, P_Sk,
- 0, P_Mn, 112, P_Lul, 116, P_Lm, 117, P_Sk, 118, P_Lul, 120, P_Cn, 122, P_Lm, 123, P_Ll, 126, P_Po, 127, P_Lu, 128, P_Cn, 132, P_Sk, 134, P_Lu, 135, P_Po, 136, P_Lu, 139, P_Cn, 140, P_Lu, 141, P_Cn, 142, P_Lu, 144, P_Ll, 145, P_Lu, 162, P_Cn, 163, P_Lu, 172, P_Ll, 207, P_Lul, 209, P_Ll, 210, P_Lu, 213, P_Ll, 216, P_Lul, 240, P_Ll, 244, P_Lul, 246, P_Sm, 247, P_Lul, 249, P_Lu, 251, P_Ll, 253, P_Lu,
- 0, P_Lu, 48, P_Ll, 96, P_Lul, 130, P_So, 131, P_Mn, 136, P_Me, 138, P_Lul, 192, P_Lu, 194, P_Ll, 195, P_Lul, 207, P_Ll, 208, P_Lul,
- 0, P_Lul, 48, P_Cn, 49, P_Lu, 87, P_Cn, 89, P_Lm, 90, P_Po, 96, P_Cn, 97, P_Ll, 136, P_Cn, 137, P_Po, 138, P_Pd, 139, P_Cn, 141, P_So, 143, P_Sc, 144, P_Cn, 145, P_Mn, 190, P_Pd, 191, P_Mn, 192, P_Po, 193, P_Mn, 195, P_Po, 196, P_Mn, 198, P_Po, 199, P_Mn, 200, P_Cn, 208, P_Lo, 235, P_Cn, 240, P_Lo, 243, P_Po, 245, P_Cn,
- 0, P_Cf, 6, P_Sm, 9, P_Po, 11, P_Sc, 12, P_Po, 14, P_So, 16, P_Mn, 27, P_Po, 28, P_Cf, 29, P_Cn, 30, P_Po, 32, P_Lo, 64, P_Lm, 65, P_Lo, 75, P_Mn, 96, P_Nd, 106, P_Po, 110, P_Lo, 112, P_Mn, 113, P_Lo, 212, P_Po, 213, P_Lo, 214, P_Mn, 221, P_Cf, 222, P_So, 223, P_Mn, 229, P_Lm, 231, P_Mn, 233, P_So, 234, P_Mn, 238, P_Lo, 240, P_Nd, 250, P_Lo, 253, P_So, 255, P_Lo,
- 0, P_Po, 14, P_Cn, 15, P_Cf, 16, P_Lo, 17, P_Mn, 18, P_Lo, 48, P_Mn, 75, P_Cn, 77, P_Lo, 166, P_Mn, 177, P_Lo, 178, P_Cn, 192, P_Nd, 202, P_Lo, 235, P_Mn, 244, P_Lm, 246, P_So, 247, P_Po, 250, P_Lm, 251, P_Cn,
- 0, P_Lo, 22, P_Mn, 26, P_Lm, 27, P_Mn, 36, P_Lm, 37, P_Mn, 40, P_Lm, 41, P_Mn, 46, P_Cn, 48, P_Po, 63, P_Cn, 64, P_Lo, 89, P_Mn, 92, P_Cn, 94, P_Po, 95, P_Cn, 160, P_Lo, 181, P_Cn, 182, P_Lo, 190, P_Cn, 212, P_Mn, 226, P_Cf, 227, P_Mn,
- 0, P_Mn, 3, P_Mc, 4, P_Lo, 58, P_Mn, 59, P_Mc, 60, P_Mn, 61, P_Lo, 62, P_Mc, 65, P_Mn, 73, P_Mc, 77, P_Mn, 78, P_Mc, 80, P_Lo, 81, P_Mn, 88, P_Lo, 98, P_Mn, 100, P_Po, 102, P_Nd, 112, P_Po, 113, P_Lm, 114, P_Lo, 129, P_Mn, 130, P_Mc, 132, P_Cn, 133, P_Lo, 141, P_Cn, 143, P_Lo, 145, P_Cn, 147, P_Lo, 169, P_Cn, 170, P_Lo, 177, P_Cn, 178, P_Lo, 179, P_Cn, 182, P_Lo, 186, P_Cn, 188, P_Mn, 189, P_Lo, 190, P_Mc, 193, P_Mn, 197, P_Cn, 199, P_Mc, 201, P_Cn, 203, P_Mc, 205, P_Mn, 206, P_Lo, 207, P_Cn, 215, P_Mc, 216, P_Cn, 220, P_Lo, 222, P_Cn, 223, P_Lo, 226, P_Mn, 228, P_Cn, 230, P_Nd, 240, P_Lo, 242, P_Sc, 244, P_No, 250, P_So, 251, P_Sc, 252, P_Cn,
- 0, P_Cn, 1, P_Mn, 3, P_Mc, 4, P_Cn, 5, P_Lo, 11, P_Cn, 15, P_Lo, 17, P_Cn, 19, P_Lo, 41, P_Cn, 42, P_Lo, 49, P_Cn, 50, P_Lo, 52, P_Cn, 53, P_Lo, 55, P_Cn, 56, P_Lo, 58, P_Cn, 60, P_Mn, 61, P_Cn, 62, P_Mc, 65, P_Mn, 67, P_Cn, 71, P_Mn, 73, P_Cn, 75, P_Mn, 78, P_Cn, 81, P_Mn, 82, P_Cn, 89, P_Lo, 93, P_Cn, 94, P_Lo, 95, P_Cn, 102, P_Nd, 112, P_Mn, 114, P_Lo, 117, P_Mn, 118, P_Cn, 129, P_Mn, 131, P_Mc, 132, P_Cn, 133, P_Lo, 142, P_Cn, 143, P_Lo, 146, P_Cn, 147, P_Lo, 169, P_Cn, 170, P_Lo, 177, P_Cn, 178, P_Lo, 180, P_Cn, 181, P_Lo, 186, P_Cn, 188, P_Mn, 189, P_Lo, 190, P_Mc, 193, P_Mn, 198, P_Cn, 199, P_Mn, 201, P_Mc, 202, P_Cn, 203, P_Mc, 205, P_Mn, 206, P_Cn, 208, P_Lo, 209, P_Cn, 224, P_Lo, 226, P_Mn, 228, P_Cn, 230, P_Nd, 240, P_Po, 241, P_Sc, 242, P_Cn, 249, P_Lo, 250, P_Cn,
- 0, P_Cn, 1, P_Mn, 2, P_Mc, 4, P_Cn, 5, P_Lo, 13, P_Cn, 15, P_Lo, 17, P_Cn, 19, P_Lo, 41, P_Cn, 42, P_Lo, 49, P_Cn, 50, P_Lo, 52, P_Cn, 53, P_Lo, 58, P_Cn, 60, P_Mn, 61, P_Lo, 62, P_Mc, 63, P_Mn, 64, P_Mc, 65, P_Mn, 69, P_Cn, 71, P_Mc, 73, P_Cn, 75, P_Mc, 77, P_Mn, 78, P_Cn, 86, P_Mn, 87, P_Mc, 88, P_Cn, 92, P_Lo, 94, P_Cn, 95, P_Lo, 98, P_Mn, 100, P_Cn, 102, P_Nd, 112, P_So, 113, P_Lo, 114, P_No, 120, P_Cn, 130, P_Mn, 131, P_Lo, 132, P_Cn, 133, P_Lo, 139, P_Cn, 142, P_Lo, 145, P_Cn, 146, P_Lo, 150, P_Cn, 153, P_Lo, 155, P_Cn, 156, P_Lo, 157, P_Cn, 158, P_Lo, 160, P_Cn, 163, P_Lo, 165, P_Cn, 168, P_Lo, 171, P_Cn, 174, P_Lo, 186, P_Cn, 190, P_Mc, 192, P_Mn, 193, P_Mc, 195, P_Cn, 198, P_Mc, 201, P_Cn, 202, P_Mc, 205, P_Mn, 206, P_Cn, 208, P_Lo, 209, P_Cn, 215, P_Mc, 216, P_Cn, 230, P_Nd, 240, P_No, 243, P_So, 249, P_Sc, 250, P_So, 251, P_Cn,
- 0, P_Mn, 1, P_Mc, 4, P_Cn, 5, P_Lo, 13, P_Cn, 14, P_Lo, 17, P_Cn, 18, P_Lo, 41, P_Cn, 42, P_Lo, 58, P_Cn, 61, P_Lo, 62, P_Mn, 65, P_Mc, 69, P_Cn, 70, P_Mn, 73, P_Cn, 74, P_Mn, 78, P_Cn, 85, P_Mn, 87, P_Cn, 88, P_Lo, 91, P_Cn, 96, P_Lo, 98, P_Mn, 100, P_Cn, 102, P_Nd, 112, P_Cn, 120, P_No, 127, P_So, 128, P_Lo, 129, P_Mn, 130, P_Mc, 132, P_Cn, 133, P_Lo, 141, P_Cn, 142, P_Lo, 145, P_Cn, 146, P_Lo, 169, P_Cn, 170, P_Lo, 180, P_Cn, 181, P_Lo, 186, P_Cn, 188, P_Mn, 189, P_Lo, 190, P_Mc, 191, P_Mn, 192, P_Mc, 197, P_Cn, 198, P_Mn, 199, P_Mc, 201, P_Cn, 202, P_Mc, 204, P_Mn, 206, P_Cn, 213, P_Mc, 215, P_Cn, 222, P_Lo, 223, P_Cn, 224, P_Lo, 226, P_Mn, 228, P_Cn, 230, P_Nd, 240, P_Cn, 241, P_Lo, 243, P_Cn,
- 0, P_Cn, 1, P_Mn, 2, P_Mc, 4, P_Cn, 5, P_Lo, 13, P_Cn, 14, P_Lo, 17, P_Cn, 18, P_Lo, 59, P_Cn, 61, P_Lo, 62, P_Mc, 65, P_Mn, 69, P_Cn, 70, P_Mc, 73, P_Cn, 74, P_Mc, 77, P_Mn, 78, P_Lo, 79, P_So, 80, P_Cn, 84, P_Lo, 87, P_Mc, 88, P_No, 95, P_Lo, 98, P_Mn, 100, P_Cn, 102, P_Nd, 112, P_No, 121, P_So, 122, P_Lo, 128, P_Cn, 130, P_Mc, 132, P_Cn, 133, P_Lo, 151, P_Cn, 154, P_Lo, 178, P_Cn, 179, P_Lo, 188, P_Cn, 189, P_Lo, 190, P_Cn, 192, P_Lo, 199, P_Cn, 202, P_Mn, 203, P_Cn, 207, P_Mc, 210, P_Mn, 213, P_Cn, 214, P_Mn, 215, P_Cn, 216, P_Mc, 224, P_Cn, 230, P_Nd, 240, P_Cn, 242, P_Mc, 244, P_Po, 245, P_Cn,
- 0, P_Cn, 1, P_Lo, 49, P_Mn, 50, P_Lo, 52, P_Mn, 59, P_Cn, 63, P_Sc, 64, P_Lo, 70, P_Lm, 71, P_Mn, 79, P_Po, 80, P_Nd, 90, P_Po, 92, P_Cn, 129, P_Lo, 131, P_Cn, 132, P_Lo, 133, P_Cn, 135, P_Lo, 137, P_Cn, 138, P_Lo, 139, P_Cn, 141, P_Lo, 142, P_Cn, 148, P_Lo, 152, P_Cn, 153, P_Lo, 160, P_Cn, 161, P_Lo, 164, P_Cn, 165, P_Lo, 166, P_Cn, 167, P_Lo, 168, P_Cn, 170, P_Lo, 172, P_Cn, 173, P_Lo, 177, P_Mn, 178, P_Lo, 180, P_Mn, 186, P_Cn, 187, P_Mn, 189, P_Lo, 190, P_Cn, 192, P_Lo, 197, P_Cn, 198, P_Lm, 199, P_Cn, 200, P_Mn, 206, P_Cn, 208, P_Nd, 218, P_Cn, 220, P_Lo, 224, P_Cn,
- 0, P_Lo, 1, P_So, 4, P_Po, 19, P_So, 20, P_Po, 21, P_So, 24, P_Mn, 26, P_So, 32, P_Nd, 42, P_No, 52, P_So, 53, P_Mn, 54, P_So, 55, P_Mn, 56, P_So, 57, P_Mn, 58, P_Ps, 59, P_Pe, 60, P_Ps, 61, P_Pe, 62, P_Mc, 64, P_Lo, 72, P_Cn, 73, P_Lo, 109, P_Cn, 113, P_Mn, 127, P_Mc, 128, P_Mn, 133, P_Po, 134, P_Mn, 136, P_Lo, 141, P_Mn, 152, P_Cn, 153, P_Mn, 189, P_Cn, 190, P_So, 198, P_Mn, 199, P_So, 205, P_Cn, 206, P_So, 208, P_Po, 213, P_So, 217, P_Po, 219, P_Cn,
- 0, P_Lo, 43, P_Mc, 45, P_Mn, 49, P_Mc, 50, P_Mn, 56, P_Mc, 57, P_Mn, 59, P_Mc, 61, P_Mn, 63, P_Lo, 64, P_Nd, 74, P_Po, 80, P_Lo, 86, P_Mc, 88, P_Mn, 90, P_Lo, 94, P_Mn, 97, P_Lo, 98, P_Mc, 101, P_Lo, 103, P_Mc, 110, P_Lo, 113, P_Mn, 117, P_Lo, 130, P_Mn, 131, P_Mc, 133, P_Mn, 135, P_Mc, 141, P_Mn, 142, P_Lo, 143, P_Mc, 144, P_Nd, 154, P_Mc, 157, P_Mn, 158, P_So, 160, P_Lu, 198, P_Cn, 199, P_Lu, 200, P_Cn, 205, P_Lu, 206, P_Cn, 208, P_Lo, 251, P_Po, 252, P_Lm, 253, P_Lo,
- 0, P_Lo,
- 0, P_Lo, 73, P_Cn, 74, P_Lo, 78, P_Cn, 80, P_Lo, 87, P_Cn, 88, P_Lo, 89, P_Cn, 90, P_Lo, 94, P_Cn, 96, P_Lo, 137, P_Cn, 138, P_Lo, 142, P_Cn, 144, P_Lo, 177, P_Cn, 178, P_Lo, 182, P_Cn, 184, P_Lo, 191, P_Cn, 192, P_Lo, 193, P_Cn, 194, P_Lo, 198, P_Cn, 200, P_Lo, 215, P_Cn, 216, P_Lo,
- 0, P_Lo, 17, P_Cn, 18, P_Lo, 22, P_Cn, 24, P_Lo, 91, P_Cn, 93, P_Mn, 96, P_Po, 105, P_No, 125, P_Cn, 128, P_Lo, 144, P_So, 154, P_Cn, 160, P_Lu, 246, P_Cn, 248, P_Ll, 254, P_Cn,
- 0, P_Pd, 1, P_Lo,
- 0, P_Lo, 109, P_Po, 111, P_Lo, 128, P_Zs, 129, P_Lo, 155, P_Ps, 156, P_Pe, 157, P_Cn, 160, P_Lo, 235, P_Po, 238, P_Nl, 241, P_Lo, 249, P_Cn,
- 0, P_Lo, 13, P_Cn, 14, P_Lo, 18, P_Mn, 21, P_Cn, 32, P_Lo, 50, P_Mn, 53, P_Po, 55, P_Cn, 64, P_Lo, 82, P_Mn, 84, P_Cn, 96, P_Lo, 109, P_Cn, 110, P_Lo, 113, P_Cn, 114, P_Mn, 116, P_Cn, 128, P_Lo, 180, P_Mn, 182, P_Mc, 183, P_Mn, 190, P_Mc, 198, P_Mn, 199, P_Mc, 201, P_Mn, 212, P_Po, 215, P_Lm, 216, P_Po, 219, P_Sc, 220, P_Lo, 221, P_Mn, 222, P_Cn, 224, P_Nd, 234, P_Cn, 240, P_No, 250, P_Cn,
- 0, P_Po, 6, P_Pd, 7, P_Po, 11, P_Mn, 14, P_Cf, 15, P_Cn, 16, P_Nd, 26, P_Cn, 32, P_Lo, 67, P_Lm, 68, P_Lo, 120, P_Cn, 128, P_Lo, 133, P_Mn, 135, P_Lo, 169, P_Mn, 170, P_Lo, 171, P_Cn, 176, P_Lo, 246, P_Cn,
- 0, P_Lo, 31, P_Cn, 32, P_Mn, 35, P_Mc, 39, P_Mn, 41, P_Mc, 44, P_Cn, 48, P_Mc, 50, P_Mn, 51, P_Mc, 57, P_Mn, 60, P_Cn, 64, P_So, 65, P_Cn, 68, P_Po, 70, P_Nd, 80, P_Lo, 110, P_Cn, 112, P_Lo, 117, P_Cn, 128, P_Lo, 172, P_Cn, 176, P_Lo, 202, P_Cn, 208, P_Nd, 218, P_No, 219, P_Cn, 222, P_So,
- 0, P_Lo, 23, P_Mn, 25, P_Mc, 27, P_Mn, 28, P_Cn, 30, P_Po, 32, P_Lo, 85, P_Mc, 86, P_Mn, 87, P_Mc, 88, P_Mn, 95, P_Cn, 96, P_Mn, 97, P_Mc, 98, P_Mn, 99, P_Mc, 101, P_Mn, 109, P_Mc, 115, P_Mn, 125, P_Cn, 127, P_Mn, 128, P_Nd, 138, P_Cn, 144, P_Nd, 154, P_Cn, 160, P_Po, 167, P_Lm, 168, P_Po, 174, P_Cn, 176, P_Mn, 190, P_Me, 191, P_Cn,
- 0, P_Mn, 4, P_Mc, 5, P_Lo, 52, P_Mn, 53, P_Mc, 54, P_Mn, 59, P_Mc, 60, P_Mn, 61, P_Mc, 66, P_Mn, 67, P_Mc, 69, P_Lo, 76, P_Cn, 80, P_Nd, 90, P_Po, 97, P_So, 107, P_Mn, 116, P_So, 125, P_Cn, 128, P_Mn, 130, P_Mc, 131, P_Lo, 161, P_Mc, 162, P_Mn, 166, P_Mc, 168, P_Mn, 170, P_Mc, 171, P_Mn, 174, P_Lo, 176, P_Nd, 186, P_Lo, 230, P_Mn, 231, P_Mc, 232, P_Mn, 234, P_Mc, 237, P_Mn, 238, P_Mc, 239, P_Mn, 242, P_Mc, 244, P_Cn, 252, P_Po,
- 0, P_Lo, 36, P_Mc, 44, P_Mn, 52, P_Mc, 54, P_Mn, 56, P_Cn, 59, P_Po, 64, P_Nd, 74, P_Cn, 77, P_Lo, 80, P_Nd, 90, P_Lo, 120, P_Lm, 126, P_Po, 128, P_Ll, 137, P_Cn, 192, P_Po, 200, P_Cn, 208, P_Mn, 211, P_Po, 212, P_Mn, 225, P_Mc, 226, P_Mn, 233, P_Lo, 237, P_Mn, 238, P_Lo, 242, P_Mc, 244, P_Mn, 245, P_Lo, 247, P_Cn, 248, P_Mn, 250, P_Cn,
- 0, P_Ll, 44, P_Lm, 107, P_Ll, 120, P_Lm, 121, P_Ll, 155, P_Lm, 192, P_Mn, 246, P_Cn, 251, P_Mn,
- 0, P_Lul, 150, P_Ll, 158, P_Lul,
- 0, P_Ll, 8, P_Lu, 16, P_Ll, 22, P_Cn, 24, P_Lu, 30, P_Cn, 32, P_Ll, 40, P_Lu, 48, P_Ll, 56, P_Lu, 64, P_Ll, 70, P_Cn, 72, P_Lu, 78, P_Cn, 80, P_Ll, 88, P_Cn, 89, P_Lu, 90, P_Cn, 91, P_Lu, 92, P_Cn, 93, P_Lu, 94, P_Cn, 95, P_Lul, 97, P_Ll, 104, P_Lu, 112, P_Ll, 126, P_Cn, 128, P_Ll, 136, P_Lt, 144, P_Ll, 152, P_Lt, 160, P_Ll, 168, P_Lt, 176, P_Ll, 181, P_Cn, 182, P_Ll, 184, P_Lu, 188, P_Lt, 189, P_Sk, 190, P_Ll, 191, P_Sk, 194, P_Ll, 197, P_Cn, 198, P_Ll, 200, P_Lu, 204, P_Lt, 205, P_Sk, 208, P_Ll, 212, P_Cn, 214, P_Ll, 216, P_Lu, 220, P_Cn, 221, P_Sk, 224, P_Ll, 232, P_Lu, 237, P_Sk, 240, P_Cn, 242, P_Ll, 245, P_Cn, 246, P_Ll, 248, P_Lu, 252, P_Lt, 253, P_Sk, 255, P_Cn,
- 0, P_Zs, 11, P_Cf, 16, P_Pd, 22, P_Po, 24, P_Pi, 25, P_Pf, 26, P_Ps, 27, P_Pi, 29, P_Pf, 30, P_Ps, 31, P_Pi, 32, P_Po, 40, P_Zl, 41, P_Zp, 42, P_Cf, 47, P_Zs, 48, P_Po, 57, P_Pi, 58, P_Pf, 59, P_Po, 63, P_Pc, 65, P_Po, 68, P_Sm, 69, P_Ps, 70, P_Pe, 71, P_Po, 82, P_Sm, 83, P_Po, 84, P_Pc, 85, P_Po, 95, P_Zs, 96, P_Cf, 101, P_Cn, 102, P_Cf, 112, P_No, 113, P_Lm, 114, P_Cn, 116, P_No, 122, P_Sm, 125, P_Ps, 126, P_Pe, 127, P_Lm, 128, P_No, 138, P_Sm, 141, P_Ps, 142, P_Pe, 143, P_Cn, 144, P_Lm, 157, P_Cn, 160, P_Sc, 191, P_Cn, 208, P_Mn, 221, P_Me, 225, P_Mn, 226, P_Me, 229, P_Mn, 241, P_Cn,
- 0, P_So, 2, P_Lu, 3, P_So, 7, P_Lu, 8, P_So, 10, P_Ll, 11, P_Lu, 14, P_Ll, 16, P_Lu, 19, P_Ll, 20, P_So, 21, P_Lu, 22, P_So, 24, P_Sm, 25, P_Lu, 30, P_So, 36, P_Lu, 37, P_So, 38, P_Lu, 39, P_So, 40, P_Lu, 41, P_So, 42, P_Lu, 46, P_So, 47, P_Ll, 48, P_Lu, 52, P_Ll, 53, P_Lo, 57, P_Ll, 58, P_So, 60, P_Ll, 62, P_Lu, 64, P_Sm, 69, P_Lul, 71, P_Ll, 74, P_So, 75, P_Sm, 76, P_So, 78, P_Ll, 79, P_So, 80, P_No, 96, P_Nl, 131, P_Lul, 133, P_Nl, 137, P_No, 138, P_So, 140, P_Cn, 144, P_Sm, 149, P_So, 154, P_Sm, 156, P_So, 160, P_Sm, 161, P_So, 163, P_Sm, 164, P_So, 166, P_Sm, 167, P_So, 174, P_Sm, 175, P_So, 206, P_Sm, 208, P_So, 210, P_Sm, 211, P_So, 212, P_Sm, 213, P_So, 244, P_Sm,
- 0, P_Sm,
- 0, P_So, 8, P_Ps, 9, P_Pe, 10, P_Ps, 11, P_Pe, 12, P_So, 32, P_Sm, 34, P_So, 41, P_Ps, 42, P_Pe, 43, P_So, 124, P_Sm, 125, P_So, 155, P_Sm, 180, P_So, 220, P_Sm, 226, P_So, 255, P_Cn,
- 0, P_So, 39, P_Cn, 64, P_So, 75, P_Cn, 96, P_No, 156, P_So, 234, P_No,
- 0, P_So, 183, P_Sm, 184, P_So, 193, P_Sm, 194, P_So, 248, P_Sm,
- 0, P_So, 111, P_Sm, 112, P_So,
- 0, P_So, 104, P_Ps, 105, P_Pe, 106, P_Ps, 107, P_Pe, 108, P_Ps, 109, P_Pe, 110, P_Ps, 111, P_Pe, 112, P_Ps, 113, P_Pe, 114, P_Ps, 115, P_Pe, 116, P_Ps, 117, P_Pe, 118, P_No, 148, P_So, 192, P_Sm, 197, P_Ps, 198, P_Pe, 199, P_Sm, 230, P_Ps, 231, P_Pe, 232, P_Ps, 233, P_Pe, 234, P_Ps, 235, P_Pe, 236, P_Ps, 237, P_Pe, 238, P_Ps, 239, P_Pe, 240, P_Sm,
- 0, P_So,
- 0, P_Sm, 131, P_Ps, 132, P_Pe, 133, P_Ps, 134, P_Pe, 135, P_Ps, 136, P_Pe, 137, P_Ps, 138, P_Pe, 139, P_Ps, 140, P_Pe, 141, P_Ps, 142, P_Pe, 143, P_Ps, 144, P_Pe, 145, P_Ps, 146, P_Pe, 147, P_Ps, 148, P_Pe, 149, P_Ps, 150, P_Pe, 151, P_Ps, 152, P_Pe, 153, P_Sm, 216, P_Ps, 217, P_Pe, 218, P_Ps, 219, P_Pe, 220, P_Sm, 252, P_Ps, 253, P_Pe, 254, P_Sm,
- 0, P_So, 48, P_Sm, 69, P_So, 71, P_Sm, 77, P_So, 116, P_Cn, 118, P_So, 150, P_Cn, 152, P_So, 186, P_Cn, 189, P_So, 201, P_Cn, 202, P_So, 210, P_Cn, 236, P_So, 240, P_Cn,
- 0, P_Lu, 47, P_Cn, 48, P_Ll, 95, P_Cn, 96, P_Lul, 98, P_Lu, 101, P_Ll, 103, P_Lul, 109, P_Lu, 113, P_Ll, 114, P_Lul, 116, P_Ll, 117, P_Lul, 119, P_Ll, 124, P_Lm, 126, P_Lu, 129, P_Ll, 130, P_Lul, 228, P_Ll, 229, P_So, 235, P_Lul, 239, P_Mn, 242, P_Lul, 244, P_Cn, 249, P_Po, 253, P_No, 254, P_Po,
- 0, P_Ll, 38, P_Cn, 39, P_Ll, 40, P_Cn, 45, P_Ll, 46, P_Cn, 48, P_Lo, 104, P_Cn, 111, P_Lm, 112, P_Po, 113, P_Cn, 127, P_Mn, 128, P_Lo, 151, P_Cn, 160, P_Lo, 167, P_Cn, 168, P_Lo, 175, P_Cn, 176, P_Lo, 183, P_Cn, 184, P_Lo, 191, P_Cn, 192, P_Lo, 199, P_Cn, 200, P_Lo, 207, P_Cn, 208, P_Lo, 215, P_Cn, 216, P_Lo, 223, P_Cn, 224, P_Mn,
- 0, P_Po, 2, P_Pi, 3, P_Pf, 4, P_Pi, 5, P_Pf, 6, P_Po, 9, P_Pi, 10, P_Pf, 11, P_Po, 12, P_Pi, 13, P_Pf, 14, P_Po, 23, P_Pd, 24, P_Po, 26, P_Pd, 27, P_Po, 28, P_Pi, 29, P_Pf, 30, P_Po, 32, P_Pi, 33, P_Pf, 34, P_Ps, 35, P_Pe, 36, P_Ps, 37, P_Pe, 38, P_Ps, 39, P_Pe, 40, P_Ps, 41, P_Pe, 42, P_Po, 47, P_Lm, 48, P_Po, 58, P_Pd, 60, P_Po, 64, P_Pd, 65, P_Po, 66, P_Ps, 67, P_Po, 69, P_Cn, 128, P_So, 154, P_Cn, 155, P_So, 244, P_Cn,
- 0, P_So, 214, P_Cn, 240, P_So, 252, P_Cn,
- 0, P_Zs, 1, P_Po, 4, P_So, 5, P_Lm, 6, P_Lo, 7, P_Nl, 8, P_Ps, 9, P_Pe, 10, P_Ps, 11, P_Pe, 12, P_Ps, 13, P_Pe, 14, P_Ps, 15, P_Pe, 16, P_Ps, 17, P_Pe, 18, P_So, 20, P_Ps, 21, P_Pe, 22, P_Ps, 23, P_Pe, 24, P_Ps, 25, P_Pe, 26, P_Ps, 27, P_Pe, 28, P_Pd, 29, P_Ps, 30, P_Pe, 32, P_So, 33, P_Nl, 42, P_Mn, 46, P_Mc, 48, P_Pd, 49, P_Lm, 54, P_So, 56, P_Nl, 59, P_Lm, 60, P_Lo, 61, P_Po, 62, P_So, 64, P_Cn, 65, P_Lo, 151, P_Cn, 153, P_Mn, 155, P_Sk, 157, P_Lm, 159, P_Lo, 160, P_Pd, 161, P_Lo, 251, P_Po, 252, P_Lm, 255, P_Lo,
- 0, P_Cn, 5, P_Lo, 46, P_Cn, 49, P_Lo, 143, P_Cn, 144, P_So, 146, P_No, 150, P_So, 160, P_Lo, 187, P_Cn, 192, P_So, 228, P_Cn, 240, P_Lo,
- 0, P_So, 31, P_Cn, 32, P_No, 42, P_So, 72, P_No, 80, P_So, 81, P_No, 96, P_So, 128, P_No, 138, P_So, 177, P_No, 192, P_So, 255, P_Cn,
- 0, P_Lo, 1, P_Cn,
- 0, P_Cn, 181, P_Lo, 182, P_Cn, 192, P_So,
- 0, P_Cn, 213, P_Lo, 214, P_Cn,
- 0, P_Lo, 21, P_Lm, 22, P_Lo,
- 0, P_Lo, 141, P_Cn, 144, P_So, 199, P_Cn, 208, P_Lo, 248, P_Lm, 254, P_Po,
- 0, P_Lo, 12, P_Lm, 13, P_Po, 16, P_Lo, 32, P_Nd, 42, P_Lo, 44, P_Cn, 64, P_Lul, 110, P_Lo, 111, P_Mn, 112, P_Me, 115, P_Po, 116, P_Mn, 126, P_Po, 127, P_Lm, 128, P_Lul, 156, P_Lm, 158, P_Mn, 160, P_Lo, 230, P_Nl, 240, P_Mn, 242, P_Po, 248, P_Cn,
- 0, P_Sk, 23, P_Lm, 32, P_Sk, 34, P_Lul, 48, P_Ll, 50, P_Lul, 112, P_Lm, 113, P_Ll, 121, P_Lul, 125, P_Lu, 127, P_Ll, 128, P_Lul, 136, P_Lm, 137, P_Sk, 139, P_Lul, 143, P_Lo, 144, P_Lul, 148, P_Ll, 150, P_Lul, 170, P_Lu, 175, P_Cn, 176, P_Lu, 181, P_Ll, 182, P_Lul, 184, P_Cn, 247, P_Lo, 248, P_Lm, 250, P_Ll, 251, P_Lo,
- 0, P_Lo, 2, P_Mn, 3, P_Lo, 6, P_Mn, 7, P_Lo, 11, P_Mn, 12, P_Lo, 35, P_Mc, 37, P_Mn, 39, P_Mc, 40, P_So, 44, P_Cn, 48, P_No, 54, P_So, 56, P_Sc, 57, P_So, 58, P_Cn, 64, P_Lo, 116, P_Po, 120, P_Cn, 128, P_Mc, 130, P_Lo, 180, P_Mc, 196, P_Mn, 198, P_Cn, 206, P_Po, 208, P_Nd, 218, P_Cn, 224, P_Mn, 242, P_Lo, 248, P_Po, 251, P_Lo, 252, P_Po, 253, P_Lo, 254, P_Cn,
- 0, P_Nd, 10, P_Lo, 38, P_Mn, 46, P_Po, 48, P_Lo, 71, P_Mn, 82, P_Mc, 84, P_Cn, 95, P_Po, 96, P_Lo, 125, P_Cn, 128, P_Mn, 131, P_Mc, 132, P_Lo, 179, P_Mn, 180, P_Mc, 182, P_Mn, 186, P_Mc, 188, P_Mn, 189, P_Mc, 193, P_Po, 206, P_Cn, 207, P_Lm, 208, P_Nd, 218, P_Cn, 222, P_Po, 224, P_Lo, 229, P_Mn, 230, P_Lm, 231, P_Lo, 240, P_Nd, 250, P_Lo, 255, P_Cn,
- 0, P_Lo, 41, P_Mn, 47, P_Mc, 49, P_Mn, 51, P_Mc, 53, P_Mn, 55, P_Cn, 64, P_Lo, 67, P_Mn, 68, P_Lo, 76, P_Mn, 77, P_Mc, 78, P_Cn, 80, P_Nd, 90, P_Cn, 92, P_Po, 96, P_Lo, 112, P_Lm, 113, P_Lo, 119, P_So, 122, P_Lo, 123, P_Mc, 124, P_Mn, 125, P_Mc, 126, P_Lo, 176, P_Mn, 177, P_Lo, 178, P_Mn, 181, P_Lo, 183, P_Mn, 185, P_Lo, 190, P_Mn, 192, P_Lo, 193, P_Mn, 194, P_Lo, 195, P_Cn, 219, P_Lo, 221, P_Lm, 222, P_Po, 224, P_Lo, 235, P_Mc, 236, P_Mn, 238, P_Mc, 240, P_Po, 242, P_Lo, 243, P_Lm, 245, P_Mc, 246, P_Mn, 247, P_Cn,
- 0, P_Cn, 1, P_Lo, 7, P_Cn, 9, P_Lo, 15, P_Cn, 17, P_Lo, 23, P_Cn, 32, P_Lo, 39, P_Cn, 40, P_Lo, 47, P_Cn, 48, P_Ll, 91, P_Sk, 92, P_Lm, 96, P_Ll, 102, P_Cn, 112, P_Ll, 192, P_Lo, 227, P_Mc, 229, P_Mn, 230, P_Mc, 232, P_Mn, 233, P_Mc, 235, P_Po, 236, P_Mc, 237, P_Mn, 238, P_Cn, 240, P_Nd, 250, P_Cn,
- 0, P_Cn, 163, P_Lo, 164, P_Cn, 176, P_Lo, 199, P_Cn, 203, P_Lo, 252, P_Cn,
- 0, P_Cs, 1, P_Cn,
- 0, P_Cn, 127, P_Cs, 129, P_Cn, 255, P_Cs,
- 0, P_Cn, 255, P_Cs,
- 0, P_Co, 1, P_Cn,
- 0, P_Cn, 255, P_Co,
- 0, P_Lo, 110, P_Cn, 112, P_Lo, 218, P_Cn,
- 0, P_Ll, 7, P_Cn, 19, P_Ll, 24, P_Cn, 29, P_Lo, 30, P_Mn, 31, P_Lo, 41, P_Sm, 42, P_Lo, 55, P_Cn, 56, P_Lo, 61, P_Cn, 62, P_Lo, 63, P_Cn, 64, P_Lo, 66, P_Cn, 67, P_Lo, 69, P_Cn, 70, P_Lo, 178, P_Sk, 194, P_Cn, 211, P_Lo,
- 0, P_Lo, 62, P_Pe, 63, P_Ps, 64, P_Cn, 80, P_Lo, 144, P_Cn, 146, P_Lo, 200, P_Cn, 240, P_Lo, 252, P_Sc, 253, P_So, 254, P_Cn,
- 0, P_Mn, 16, P_Po, 23, P_Ps, 24, P_Pe, 25, P_Po, 26, P_Cn, 32, P_Mn, 48, P_Po, 49, P_Pd, 51, P_Pc, 53, P_Ps, 54, P_Pe, 55, P_Ps, 56, P_Pe, 57, P_Ps, 58, P_Pe, 59, P_Ps, 60, P_Pe, 61, P_Ps, 62, P_Pe, 63, P_Ps, 64, P_Pe, 65, P_Ps, 66, P_Pe, 67, P_Ps, 68, P_Pe, 69, P_Po, 71, P_Ps, 72, P_Pe, 73, P_Po, 77, P_Pc, 80, P_Po, 83, P_Cn, 84, P_Po, 88, P_Pd, 89, P_Ps, 90, P_Pe, 91, P_Ps, 92, P_Pe, 93, P_Ps, 94, P_Pe, 95, P_Po, 98, P_Sm, 99, P_Pd, 100, P_Sm, 103, P_Cn, 104, P_Po, 105, P_Sc, 106, P_Po, 108, P_Cn, 112, P_Lo, 117, P_Cn, 118, P_Lo, 253, P_Cn, 255, P_Cf,
- 0, P_Cn, 1, P_Po, 4, P_Sc, 5, P_Po, 8, P_Ps, 9, P_Pe, 10, P_Po, 11, P_Sm, 12, P_Po, 13, P_Pd, 14, P_Po, 16, P_Nd, 26, P_Po, 28, P_Sm, 31, P_Po, 33, P_Lu, 59, P_Ps, 60, P_Po, 61, P_Pe, 62, P_Sk, 63, P_Pc, 64, P_Sk, 65, P_Ll, 91, P_Ps, 92, P_Sm, 93, P_Pe, 94, P_Sm, 95, P_Ps, 96, P_Pe, 97, P_Po, 98, P_Ps, 99, P_Pe, 100, P_Po, 102, P_Lo, 112, P_Lm, 113, P_Lo, 158, P_Lm, 160, P_Lo, 191, P_Cn, 194, P_Lo, 200, P_Cn, 202, P_Lo, 208, P_Cn, 210, P_Lo, 216, P_Cn, 218, P_Lo, 221, P_Cn, 224, P_Sc, 226, P_Sm, 227, P_Sk, 228, P_So, 229, P_Sc, 231, P_Cn, 232, P_So, 233, P_Sm, 237, P_So, 239, P_Cn, 249, P_Cf, 252, P_So, 254, P_Cn,
- 0, P_Lo, 12, P_Cn, 13, P_Lo, 39, P_Cn, 40, P_Lo, 59, P_Cn, 60, P_Lo, 62, P_Cn, 63, P_Lo, 78, P_Cn, 80, P_Lo, 94, P_Cn, 128, P_Lo, 251, P_Cn,
- 0, P_Po, 3, P_Cn, 7, P_No, 52, P_Cn, 55, P_So, 64, P_Nl, 117, P_No, 121, P_So, 138, P_No, 140, P_So, 143, P_Cn, 144, P_So, 156, P_Cn, 160, P_So, 161, P_Cn, 208, P_So, 253, P_Mn, 254, P_Cn,
- 0, P_Cn, 128, P_Lo, 157, P_Cn, 160, P_Lo, 209, P_Cn, 224, P_Mn, 225, P_No, 252, P_Cn,
- 0, P_Lo, 32, P_No, 36, P_Cn, 48, P_Lo, 65, P_Nl, 66, P_Lo, 74, P_Nl, 75, P_Cn, 80, P_Lo, 118, P_Mn, 123, P_Cn, 128, P_Lo, 158, P_Cn, 159, P_Po, 160, P_Lo, 196, P_Cn, 200, P_Lo, 208, P_Po, 209, P_Nl, 214, P_Cn,
- 0, P_Lu, 40, P_Ll, 80, P_Lo, 158, P_Cn, 160, P_Nd, 170, P_Cn, 176, P_Lu, 212, P_Cn, 216, P_Ll, 252, P_Cn,
- 0, P_Lo, 40, P_Cn, 48, P_Lo, 100, P_Cn, 111, P_Po, 112, P_Cn,
- 0, P_Lo, 55, P_Cn, 64, P_Lo, 86, P_Cn, 96, P_Lo, 104, P_Cn,
- 0, P_Lo, 6, P_Cn, 8, P_Lo, 9, P_Cn, 10, P_Lo, 54, P_Cn, 55, P_Lo, 57, P_Cn, 60, P_Lo, 61, P_Cn, 63, P_Lo, 86, P_Cn, 87, P_Po, 88, P_No, 96, P_Lo, 119, P_So, 121, P_No, 128, P_Lo, 159, P_Cn, 167, P_No, 176, P_Cn, 224, P_Lo, 243, P_Cn, 244, P_Lo, 246, P_Cn, 251, P_No,
- 0, P_Lo, 22, P_No, 28, P_Cn, 31, P_Po, 32, P_Lo, 58, P_Cn, 63, P_Po, 64, P_Cn, 128, P_Lo, 184, P_Cn, 188, P_No, 190, P_Lo, 192, P_No, 208, P_Cn, 210, P_No,
- 0, P_Lo, 1, P_Mn, 4, P_Cn, 5, P_Mn, 7, P_Cn, 12, P_Mn, 16, P_Lo, 20, P_Cn, 21, P_Lo, 24, P_Cn, 25, P_Lo, 52, P_Cn, 56, P_Mn, 59, P_Cn, 63, P_Mn, 64, P_No, 72, P_Cn, 80, P_Po, 89, P_Cn, 96, P_Lo, 125, P_No, 127, P_Po, 128, P_Lo, 157, P_No, 160, P_Cn, 192, P_Lo, 200, P_So, 201, P_Lo, 229, P_Mn, 231, P_Cn, 235, P_No, 240, P_Po, 247, P_Cn,
- 0, P_Lo, 54, P_Cn, 57, P_Po, 64, P_Lo, 86, P_Cn, 88, P_No, 96, P_Lo, 115, P_Cn, 120, P_No, 128, P_Lo, 146, P_Cn, 153, P_Po, 157, P_Cn, 169, P_No, 176, P_Cn,
- 0, P_Lo, 73, P_Cn, 128, P_Lu, 179, P_Cn, 192, P_Ll, 243, P_Cn, 250, P_No,
- 0, P_Cn, 96, P_No, 127, P_Cn,
- 0, P_Mc, 1, P_Mn, 2, P_Mc, 3, P_Lo, 56, P_Mn, 71, P_Po, 78, P_Cn, 82, P_No, 102, P_Nd, 112, P_Cn, 127, P_Mn, 130, P_Mc, 131, P_Lo, 176, P_Mc, 179, P_Mn, 183, P_Mc, 185, P_Mn, 187, P_Po, 189, P_Cf, 190, P_Po, 194, P_Cn, 208, P_Lo, 233, P_Cn, 240, P_Nd, 250, P_Cn,
- 0, P_Mn, 3, P_Lo, 39, P_Mn, 44, P_Mc, 45, P_Mn, 53, P_Cn, 54, P_Nd, 64, P_Po, 68, P_Cn, 80, P_Lo, 115, P_Mn, 116, P_Po, 118, P_Lo, 119, P_Cn, 128, P_Mn, 130, P_Mc, 131, P_Lo, 179, P_Mc, 182, P_Mn, 191, P_Mc, 193, P_Lo, 197, P_Po, 202, P_Mn, 205, P_Po, 206, P_Cn, 208, P_Nd, 218, P_Lo, 219, P_Po, 220, P_Lo, 221, P_Po, 224, P_Cn, 225, P_No, 245, P_Cn,
- 0, P_Lo, 18, P_Cn, 19, P_Lo, 44, P_Mc, 47, P_Mn, 50, P_Mc, 52, P_Mn, 53, P_Mc, 54, P_Mn, 56, P_Po, 62, P_Mn, 63, P_Cn, 128, P_Lo, 135, P_Cn, 136, P_Lo, 137, P_Cn, 138, P_Lo, 142, P_Cn, 143, P_Lo, 158, P_Cn, 159, P_Lo, 169, P_Po, 170, P_Cn, 176, P_Lo, 223, P_Mn, 224, P_Mc, 227, P_Mn, 235, P_Cn, 240, P_Nd, 250, P_Cn,
- 0, P_Mn, 2, P_Mc, 4, P_Cn, 5, P_Lo, 13, P_Cn, 15, P_Lo, 17, P_Cn, 19, P_Lo, 41, P_Cn, 42, P_Lo, 49, P_Cn, 50, P_Lo, 52, P_Cn, 53, P_Lo, 58, P_Cn, 60, P_Mn, 61, P_Lo, 62, P_Mc, 64, P_Mn, 65, P_Mc, 69, P_Cn, 71, P_Mc, 73, P_Cn, 75, P_Mc, 78, P_Cn, 80, P_Lo, 81, P_Cn, 87, P_Mc, 88, P_Cn, 93, P_Lo, 98, P_Mc, 100, P_Cn, 102, P_Mn, 109, P_Cn, 112, P_Mn, 117, P_Cn,
- 0, P_Lo, 53, P_Mc, 56, P_Mn, 64, P_Mc, 66, P_Mn, 69, P_Mc, 70, P_Mn, 71, P_Lo, 75, P_Po, 80, P_Nd, 90, P_Cn, 91, P_Po, 92, P_Cn, 93, P_Po, 94, P_Cn, 128, P_Lo, 176, P_Mc, 179, P_Mn, 185, P_Mc, 186, P_Mn, 187, P_Mc, 191, P_Mn, 193, P_Mc, 194, P_Mn, 196, P_Lo, 198, P_Po, 199, P_Lo, 200, P_Cn, 208, P_Nd, 218, P_Cn,
- 0, P_Cn, 128, P_Lo, 175, P_Mc, 178, P_Mn, 182, P_Cn, 184, P_Mc, 188, P_Mn, 190, P_Mc, 191, P_Mn, 193, P_Po, 216, P_Lo, 220, P_Mn, 222, P_Cn,
- 0, P_Lo, 48, P_Mc, 51, P_Mn, 59, P_Mc, 61, P_Mn, 62, P_Mc, 63, P_Mn, 65, P_Po, 68, P_Lo, 69, P_Cn, 80, P_Nd, 90, P_Cn, 96, P_Po, 109, P_Cn, 128, P_Lo, 171, P_Mn, 172, P_Mc, 173, P_Mn, 174, P_Mc, 176, P_Mn, 182, P_Mc, 183, P_Mn, 184, P_Cn, 192, P_Nd, 202, P_Cn,
- 0, P_Lo, 26, P_Cn, 29, P_Mn, 32, P_Mc, 34, P_Mn, 38, P_Mc, 39, P_Mn, 44, P_Cn, 48, P_Nd, 58, P_No, 60, P_Po, 63, P_So, 64, P_Cn,
- 0, P_Cn, 160, P_Lu, 192, P_Ll, 224, P_Nd, 234, P_No, 243, P_Cn, 255, P_Lo,
- 0, P_Cn, 192, P_Lo, 249, P_Cn,
- 0, P_Lo, 9, P_Cn, 10, P_Lo, 47, P_Mc, 48, P_Mn, 55, P_Cn, 56, P_Mn, 62, P_Mc, 63, P_Mn, 64, P_Lo, 65, P_Po, 70, P_Cn, 80, P_Nd, 90, P_No, 109, P_Cn, 112, P_Po, 114, P_Lo, 144, P_Cn, 146, P_Mn, 168, P_Cn, 169, P_Mc, 170, P_Mn, 177, P_Mc, 178, P_Mn, 180, P_Mc, 181, P_Mn, 183, P_Cn,
- 0, P_Lo, 154, P_Cn,
- 0, P_Nl, 111, P_Cn, 112, P_Po, 117, P_Cn, 128, P_Lo,
- 0, P_Lo, 68, P_Cn,
- 0, P_Lo, 47, P_Cn,
- 0, P_Lo, 71, P_Cn,
- 0, P_Lo, 57, P_Cn, 64, P_Lo, 95, P_Cn, 96, P_Nd, 106, P_Cn, 110, P_Po, 112, P_Cn, 208, P_Lo, 238, P_Cn, 240, P_Mn, 245, P_Po, 246, P_Cn,
- 0, P_Lo, 48, P_Mn, 55, P_Po, 60, P_So, 64, P_Lm, 68, P_Po, 69, P_So, 70, P_Cn, 80, P_Nd, 90, P_Cn, 91, P_No, 98, P_Cn, 99, P_Lo, 120, P_Cn, 125, P_Lo, 144, P_Cn,
- 0, P_Lo, 69, P_Cn, 80, P_Lo, 81, P_Mc, 127, P_Cn, 143, P_Mn, 147, P_Lm, 160, P_Cn, 224, P_Lm, 225, P_Cn,
- 0, P_Cn, 236, P_Lo, 237, P_Cn,
- 0, P_Lo, 243, P_Cn,
- 0, P_Lo, 2, P_Cn,
- 0, P_Lo, 107, P_Cn, 112, P_Lo, 125, P_Cn, 128, P_Lo, 137, P_Cn, 144, P_Lo, 154, P_Cn, 156, P_So, 157, P_Mn, 159, P_Po, 160, P_Cf, 164, P_Cn,
- 0, P_So, 246, P_Cn,
- 0, P_So, 39, P_Cn, 41, P_So, 101, P_Mc, 103, P_Mn, 106, P_So, 109, P_Mc, 115, P_Cf, 123, P_Mn, 131, P_So, 133, P_Mn, 140, P_So, 170, P_Mn, 174, P_So, 233, P_Cn,
- 0, P_So, 66, P_Mn, 69, P_So, 70, P_Cn,
- 0, P_So, 87, P_Cn, 96, P_No, 114, P_Cn,
- 0, P_Lu, 26, P_Ll, 52, P_Lu, 78, P_Ll, 85, P_Cn, 86, P_Ll, 104, P_Lu, 130, P_Ll, 156, P_Lu, 157, P_Cn, 158, P_Lu, 160, P_Cn, 162, P_Lu, 163, P_Cn, 165, P_Lu, 167, P_Cn, 169, P_Lu, 173, P_Cn, 174, P_Lu, 182, P_Ll, 186, P_Cn, 187, P_Ll, 188, P_Cn, 189, P_Ll, 196, P_Cn, 197, P_Ll, 208, P_Lu, 234, P_Ll,
- 0, P_Ll, 4, P_Lu, 6, P_Cn, 7, P_Lu, 11, P_Cn, 13, P_Lu, 21, P_Cn, 22, P_Lu, 29, P_Cn, 30, P_Ll, 56, P_Lu, 58, P_Cn, 59, P_Lu, 63, P_Cn, 64, P_Lu, 69, P_Cn, 70, P_Lu, 71, P_Cn, 74, P_Lu, 81, P_Cn, 82, P_Ll, 108, P_Lu, 134, P_Ll, 160, P_Lu, 186, P_Ll, 212, P_Lu, 238, P_Ll,
- 0, P_Ll, 8, P_Lu, 34, P_Ll, 60, P_Lu, 86, P_Ll, 112, P_Lu, 138, P_Ll, 166, P_Cn, 168, P_Lu, 193, P_Sm, 194, P_Ll, 219, P_Sm, 220, P_Ll, 226, P_Lu, 251, P_Sm, 252, P_Ll,
- 0, P_Ll, 21, P_Sm, 22, P_Ll, 28, P_Lu, 53, P_Sm, 54, P_Ll, 79, P_Sm, 80, P_Ll, 86, P_Lu, 111, P_Sm, 112, P_Ll, 137, P_Sm, 138, P_Ll, 144, P_Lu, 169, P_Sm, 170, P_Ll, 195, P_Sm, 196, P_Ll, 202, P_Lul, 204, P_Cn, 206, P_Nd,
- 0, P_Mn, 55, P_So, 59, P_Mn, 109, P_So, 117, P_Mn, 118, P_So, 132, P_Mn, 133, P_So, 135, P_Po, 140, P_Cn, 155, P_Mn, 160, P_Cn, 161, P_Mn, 176, P_Cn,
- 0, P_Mn, 7, P_Cn, 8, P_Mn, 25, P_Cn, 27, P_Mn, 34, P_Cn, 35, P_Mn, 37, P_Cn, 38, P_Mn, 43, P_Cn,
- 0, P_Lo, 197, P_Cn, 199, P_No, 208, P_Mn, 215, P_Cn,
- 0, P_Lu, 34, P_Ll, 68, P_Mn, 75, P_Cn, 80, P_Nd, 90, P_Cn, 94, P_Po, 96, P_Cn,
- 0, P_Lo, 4, P_Cn, 5, P_Lo, 32, P_Cn, 33, P_Lo, 35, P_Cn, 36, P_Lo, 37, P_Cn, 39, P_Lo, 40, P_Cn, 41, P_Lo, 51, P_Cn, 52, P_Lo, 56, P_Cn, 57, P_Lo, 58, P_Cn, 59, P_Lo, 60, P_Cn, 66, P_Lo, 67, P_Cn, 71, P_Lo, 72, P_Cn, 73, P_Lo, 74, P_Cn, 75, P_Lo, 76, P_Cn, 77, P_Lo, 80, P_Cn, 81, P_Lo, 83, P_Cn, 84, P_Lo, 85, P_Cn, 87, P_Lo, 88, P_Cn, 89, P_Lo, 90, P_Cn, 91, P_Lo, 92, P_Cn, 93, P_Lo, 94, P_Cn, 95, P_Lo, 96, P_Cn, 97, P_Lo, 99, P_Cn, 100, P_Lo, 101, P_Cn, 103, P_Lo, 107, P_Cn, 108, P_Lo, 115, P_Cn, 116, P_Lo, 120, P_Cn, 121, P_Lo, 125, P_Cn, 126, P_Lo, 127, P_Cn, 128, P_Lo, 138, P_Cn, 139, P_Lo, 156, P_Cn, 161, P_Lo, 164, P_Cn, 165, P_Lo, 170, P_Cn, 171, P_Lo, 188, P_Cn, 240, P_Sm, 242, P_Cn,
- 0, P_So, 44, P_Cn, 48, P_So, 148, P_Cn, 160, P_So, 175, P_Cn, 177, P_So, 192, P_Cn, 193, P_So, 208, P_Cn, 209, P_So, 246, P_Cn,
- 0, P_No, 13, P_Cn, 16, P_So, 47, P_Cn, 48, P_So, 108, P_Cn, 112, P_So, 173, P_Cn, 230, P_So,
- 0, P_So, 3, P_Cn, 16, P_So, 60, P_Cn, 64, P_So, 73, P_Cn, 80, P_So, 82, P_Cn,
- 0, P_So, 251, P_Sk,
- 0, P_So, 211, P_Cn, 224, P_So, 237, P_Cn, 240, P_So, 247, P_Cn,
- 0, P_So, 116, P_Cn, 128, P_So, 213, P_Cn,
- 0, P_So, 12, P_Cn, 16, P_So, 72, P_Cn, 80, P_So, 90, P_Cn, 96, P_So, 136, P_Cn, 144, P_So, 174, P_Cn,
- 0, P_Cn, 16, P_So, 31, P_Cn, 32, P_So, 40, P_Cn, 48, P_So, 49, P_Cn, 51, P_So, 63, P_Cn, 64, P_So, 76, P_Cn, 80, P_So, 95, P_Cn, 128, P_So, 146, P_Cn, 192, P_So, 193, P_Cn,
- 0, P_Cn, 214, P_Lo, 215, P_Cn,
- 0, P_Cn, 52, P_Lo, 53, P_Cn, 64, P_Lo, 65, P_Cn,
- 0, P_Cn, 29, P_Lo, 30, P_Cn, 32, P_Lo, 33, P_Cn,
- 0, P_Cn, 161, P_Lo, 162, P_Cn,
- 0, P_Lo, 30, P_Cn,
- 0, P_Cn, 1, P_Cf, 2, P_Cn, 32, P_Cf, 128, P_Cn,
- 0, P_Mn, 240, P_Cn,
- 0, P_Cn, 253, P_Co, 254, P_Cn,
-};
-const unsigned int UnicodeProperty::property_offsets[] = {
- 0x0, 2, 122,
- 0x100, 122, 248,
- 0x200, 248, 294,
- 0x300, 294, 366,
- 0x400, 366, 390,
- 0x500, 390, 450,
- 0x600, 450, 520,
- 0x700, 520, 560,
- 0x800, 560, 606,
- 0x900, 606, 728,
- 0xA00, 728, 878,
- 0xB00, 878, 1040,
- 0xC00, 1040, 1174,
- 0xD00, 1174, 1290,
- 0xE00, 1290, 1398,
- 0xF00, 1398, 1486,
- 0x1000, 1486, 1576,
- 0x1100, 1576, 1578,
- 0x1200, 1578, 1632,
- 0x1300, 1632, 1666,
- 0x1400, 1666, 1670,
- 0x1500, 1576, 1578,
- 0x1600, 1670, 1696,
- 0x1700, 1696, 1770,
- 0x1800, 1770, 1810,
- 0x1900, 1810, 1866,
- 0x1A00, 1866, 1930,
- 0x1B00, 1930, 2012,
- 0x1C00, 2012, 2076,
- 0x1D00, 2076, 2094,
- 0x1E00, 2094, 2100,
- 0x1F00, 2100, 2228,
- 0x2000, 2228, 2342,
- 0x2100, 2342, 2474,
- 0x2200, 2474, 2476,
- 0x2300, 2476, 2512,
- 0x2400, 2512, 2526,
- 0x2500, 2526, 2538,
- 0x2600, 2538, 2544,
- 0x2700, 2544, 2608,
- 0x2800, 2608, 2610,
- 0x2900, 2610, 2674,
- 0x2A00, 2474, 2476,
- 0x2B00, 2674, 2706,
- 0x2C00, 2706, 2760,
- 0x2D00, 2760, 2822,
- 0x2E00, 2822, 2908,
- 0x2F00, 2908, 2916,
- 0x3000, 2916, 3020,
- 0x3100, 3020, 3046,
- 0x3200, 3046, 3072,
- 0x3300, 2608, 2610,
- 0x3400, 3072, 3076,
- 0x3500, 0, 2,
- 0x4D00, 3076, 3084,
- 0x4E00, 3072, 3076,
- 0x4F00, 0, 2,
- 0x9F00, 3084, 3090,
- 0xA000, 3090, 3096,
- 0xA100, 1576, 1578,
- 0xA400, 3096, 3110,
- 0xA500, 1576, 1578,
- 0xA600, 3110, 3156,
- 0xA700, 3156, 3214,
- 0xA800, 3214, 3284,
- 0xA900, 3284, 3350,
- 0xAA00, 3350, 3448,
- 0xAB00, 3448, 3506,
- 0xAC00, 3072, 3076,
- 0xAD00, 0, 2,
- 0xD700, 3506, 3520,
- 0xD800, 3520, 3524,
- 0xD900, 0, 2,
- 0xDB00, 3524, 3532,
- 0xDC00, 3520, 3524,
- 0xDD00, 0, 2,
- 0xDF00, 3532, 3536,
- 0xE000, 3536, 3540,
- 0xE100, 0, 2,
- 0xF800, 3540, 3544,
- 0xF900, 1576, 1578,
- 0xFA00, 3544, 3552,
- 0xFB00, 3552, 3596,
- 0xFC00, 1576, 1578,
- 0xFD00, 3596, 3620,
- 0xFE00, 3620, 3730,
- 0xFF00, 3730, 3850,
- 0x10000, 3850, 3878,
- 0x10100, 3878, 3914,
- 0x10200, 3914, 3930,
- 0x10300, 3930, 3970,
- 0x10400, 3970, 3990,
- 0x10500, 3990, 4002,
- 0x10600, 1576, 1578,
- 0x10700, 4002, 4014,
- 0x10800, 4014, 4066,
- 0x10900, 4066, 4096,
- 0x10A00, 4096, 4162,
- 0x10B00, 4162, 4192,
- 0x10C00, 4192, 4206,
- 0x10D00, 0, 2,
- 0x10E00, 4206, 4212,
- 0x10F00, 0, 2,
- 0x11000, 4212, 4262,
- 0x11100, 4262, 4328,
- 0x11200, 4328, 4388,
- 0x11300, 4388, 4460,
- 0x11400, 4460, 4520,
- 0x11500, 4520, 4546,
- 0x11600, 4546, 4596,
- 0x11700, 4596, 4622,
- 0x11800, 4622, 4636,
- 0x11900, 0, 2,
- 0x11A00, 4636, 4642,
- 0x11B00, 0, 2,
- 0x11C00, 4642, 4696,
- 0x11D00, 0, 2,
- 0x12000, 1576, 1578,
- 0x12300, 4696, 4700,
- 0x12400, 4700, 4710,
- 0x12500, 4710, 4714,
- 0x12600, 0, 2,
- 0x13000, 1576, 1578,
- 0x13400, 4714, 4718,
- 0x13500, 0, 2,
- 0x14400, 1576, 1578,
- 0x14600, 4718, 4722,
- 0x14700, 0, 2,
- 0x16800, 1576, 1578,
- 0x16A00, 4722, 4748,
- 0x16B00, 4748, 4780,
- 0x16C00, 0, 2,
- 0x16F00, 4780, 4800,
- 0x17000, 3072, 3076,
- 0x17100, 0, 2,
- 0x18700, 4800, 4806,
- 0x18800, 1576, 1578,
- 0x18A00, 4806, 4810,
- 0x18B00, 0, 2,
- 0x1B000, 4810, 4814,
- 0x1B100, 0, 2,
- 0x1BC00, 4814, 4840,
- 0x1BD00, 0, 2,
- 0x1D000, 4840, 4844,
- 0x1D100, 4844, 4874,
- 0x1D200, 4874, 4882,
- 0x1D300, 4882, 4890,
- 0x1D400, 4890, 4946,
- 0x1D500, 4946, 5000,
- 0x1D600, 5000, 5032,
- 0x1D700, 5032, 5074,
- 0x1D800, 2608, 2610,
- 0x1DA00, 5074, 5102,
- 0x1DB00, 0, 2,
- 0x1E000, 5102, 5122,
- 0x1E100, 0, 2,
- 0x1E800, 5122, 5132,
- 0x1E900, 5132, 5148,
- 0x1EA00, 0, 2,
- 0x1EE00, 5148, 5284,
- 0x1EF00, 0, 2,
- 0x1F000, 5284, 5308,
- 0x1F100, 5308, 5326,
- 0x1F200, 5326, 5342,
- 0x1F300, 5342, 5346,
- 0x1F400, 2608, 2610,
- 0x1F600, 5346, 5358,
- 0x1F700, 5358, 5366,
- 0x1F800, 5366, 5386,
- 0x1F900, 5386, 5420,
- 0x1FA00, 0, 2,
- 0x20000, 3072, 3076,
- 0x20100, 0, 2,
- 0x2A600, 5420, 5426,
- 0x2A700, 3072, 3076,
- 0x2A800, 0, 2,
- 0x2B700, 5426, 5436,
- 0x2B800, 5436, 5446,
- 0x2B900, 0, 2,
- 0x2CE00, 5446, 5452,
- 0x2CF00, 0, 2,
- 0x2F800, 1576, 1578,
- 0x2FA00, 5452, 5456,
- 0x2FB00, 0, 2,
- 0xE0000, 5456, 5466,
- 0xE0100, 5466, 5470,
- 0xE0200, 0, 2,
- 0xF0000, 3536, 3540,
- 0xF0100, 0, 2,
- 0xFFF00, 5470, 5476,
- 0x100000, 3536, 3540,
- 0x100100, 0, 2,
- 0x10FF00, 5470, 5476,
- 0x110000, 0, 2,
-};
-const int UnicodeProperty::nproperty_offsets = (sizeof(UnicodeProperty::property_offsets) / (3*sizeof(unsigned int)));
-
-inline const unsigned int *
-UnicodeProperty::find_offset(uint32_t u)
-{
- // Up to U+1A00 each page has its own definition.
- if (u < 0x1A00)
- return &property_offsets[3*(u >> 8)];
- // At or after U+1A00, binary search.
- int l = 0x1A, r = nproperty_offsets - 2;
- while (l <= r) {
- int m = (l + r) / 2;
- const unsigned int *ptr = &property_offsets[3*m];
- if (u < ptr[0])
- r = m - 1;
- else if (u >= ptr[3])
- l = m + 1;
- else
- return ptr;
- }
- // If search fails, return last record, which will be all-unassigned.
- return &property_offsets[3*(nproperty_offsets - 1)];
-}
-
-int
-UnicodeProperty::property(uint32_t u)
-{
- const unsigned int *offsets = find_offset(u);
-
- // Now we only care about the last byte.
- u &= 255;
-
- // Binary search within record.
- int l = offsets[1], r = offsets[2] - 4;
- const unsigned char *the_ptr;
- while (l <= r) {
- int m = ((l + r) / 2) & ~1;
- const unsigned char *ptr = &property_pages[m];
- if (u < ptr[0])
- r = m - 2;
- else if (u >= ptr[2])
- l = m + 2;
- else {
- the_ptr = ptr;
- goto found_ptr;
- }
- }
- the_ptr = &property_pages[l];
-
- found_ptr:
- // Found right block.
- if (the_ptr[1] == P_Lul)
- return ((u - the_ptr[0]) % 2 ? P_Ll : P_Lu);
- else
- return the_ptr[1];
-}
-
-static const char property_names[] =
- "Cn\0Co\0Cs\0Cf\0Cc\0\0\0\0\0\0\0\0\0\0"
- "Zs\0Zl\0Zp\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "Mn\0Mc\0Me\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "Lo\0Lu\0Ll\0Lt\0Lm\0\0\0\0\0\0\0\0\0\0"
- "No\0Nd\0Nl\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "Po\0Pc\0Pd\0Ps\0Pe\0Pi\0Pf\0\0\0\0"
- "So\0Sm\0Sc\0Sk";
-
-static const char * const property_long_names[] = {
- "Unassigned", "PrivateUse", "Surrogate", "Format", "Control", 0, 0, 0,
- "SpaceSeparator", "LineSeparator", "ParagraphSeparator", 0, 0, 0, 0, 0,
- "NonspacingMark", "SpacingMark", "EnclosingMark", 0, 0, 0, 0, 0,
- "OtherLetter", "UppercaseLetter", "LowercaseLetter", "TitlecaseLetter", "ModifierLetter", 0, 0, 0,
- "OtherNumber", "DecimalNumber", "LetterNumber", 0, 0, 0, 0, 0,
- "OtherPunctuation", "ConnectorPunctuation", "DashPunctuation", "OpenPunctuation", "ClosePunctuation", "InitialPunctuation", "FinalPunctuation", 0,
- "OtherSymbol", "MathSymbol", "CurrencySymbol", "ModifierSymbol"
-};
-
-static const char * const property_category_long_names[] = {
- "Other", "Separator", "Mark", "Letter", "Number", "Punctuation", "Symbol"
-};
-
-
-const char *
-UnicodeProperty::property_name(int p)
-{
- if (p >= 0 && p <= P_Sk && property_names[p*3])
- return &property_names[p*3];
- else
- return "?";
-}
-
-bool
-UnicodeProperty::parse_property(const String &s, int &prop, int &prop_mask)
-{
- if (s.length() == 0)
- return false;
- else if (s.length() <= 2) {
- for (int i = 0; i <= P_S; i += 010)
- if (property_names[3*i] == s[0]) {
- if (s.length() == 1) {
- prop = i;
- prop_mask = P_TMASK;
- return true;
- }
- for (; property_names[3*i]; i++)
- if (property_names[3*i+1] == s[1]) {
- prop = i;
- prop_mask = 0377;
- return true;
- }
- break;
- }
- return false;
- } else {
- const char * const *dict = property_category_long_names;
- for (int i = 0; i <= P_S; i += 010, dict++)
- if (s == *dict) {
- prop = i;
- prop_mask = P_TMASK;
- return true;
- }
- dict = property_long_names;
- for (int i = 0; i <= P_Sk; i++, dict++)
- if (*dict && s == *dict) {
- prop = i;
- prop_mask = 0377;
- return true;
- }
- return false;
- }
-}
-
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.hh
deleted file mode 100644
index a92a319d659..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/uniprop.hh
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef OTFTOTFM_UNIPROP_HH
-#define OTFTOTFM_UNIPROP_HH
-#include <efont/otf.hh>
-
-class UnicodeProperty { public:
-
- enum {
- P_C = 000, P_Cn = 000, P_Co = 001, P_Cs = 002, P_Cf = 003, P_Cc = 004,
- P_Z = 010, P_Zs = 010, P_Zl = 011, P_Zp = 012,
- P_M = 020, P_Mn = 020, P_Mc = 021, P_Me = 022,
- P_L = 030, P_Lo = 030, P_Lu = 031, P_Ll = 032, P_Lt = 033, P_Lm = 034,
- P_N = 040, P_No = 040, P_Nd = 041, P_Nl = 042,
- P_P = 050, P_Po = 050, P_Pc = 051, P_Pd = 052, P_Ps = 053, P_Pe = 054, P_Pi = 055, P_Pf = 056,
- P_S = 060, P_So = 060, P_Sm = 061, P_Sc = 062, P_Sk = 063,
- P_TMASK = 0370,
- P_MAX = 0377
- };
-
- static int property(uint32_t uni);
- static const char* property_name(int p);
- static bool parse_property(const String&, int& prop, int& prop_mask);
-
- private:
-
- enum { P_Lul = 070 };
- static const unsigned char property_pages[];
- static const unsigned int property_offsets[];
- static const int nproperty_offsets;
-
- static inline const unsigned int* find_offset(uint32_t uni);
-
-};
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
deleted file mode 100644
index 920c5c001d2..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.cc
+++ /dev/null
@@ -1,299 +0,0 @@
-/* util.{cc,hh} -- various bits
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "util.hh"
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <lcdf/vector.hh>
-#include <ctype.h>
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <io.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-String
-read_file(String filename, ErrorHandler *errh, bool warning)
-{
- FILE *f;
- if (!filename || filename == "-") {
- filename = "<stdin>";
- f = stdin;
-#if defined(_MSDOS) || defined(_WIN32)
- // Set the file mode to binary
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else if (!(f = fopen(filename.c_str(), "rb"))) {
- errh->xmessage((warning ? errh->e_warning : errh->e_error) + ErrorHandler::make_landmark_anno(filename), strerror(errno));
- return String();
- }
-
- StringAccum sa;
- int amt;
- do {
- if (char *x = sa.reserve(8192)) {
- amt = fread(x, 1, 8192, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f) || ferror(f))
- errh->xmessage((warning ? errh->e_warning : errh->e_error) + ErrorHandler::make_landmark_anno(filename), strerror(errno));
- if (f != stdin)
- fclose(f);
- return sa.take_string();
-}
-
-String
-printable_filename(const String &s)
-{
- if (!s || s == "-")
- return String::make_stable("<stdin>");
- else
- return s;
-}
-
-String
-pathname_filename(const String &path)
-{
- int slash = path.find_right('/');
- if (slash >= 0 && slash != path.length() - 1)
- return path.substring(slash + 1);
- else
- return path;
-}
-
-static String
-simplify_filename(String x)
-{
- while (x.substring(0, 2) == "./")
- x = x.substring(2);
- int pos;
- while ((pos = x.find_left("/./")) >= 0)
- x = x.substring(0, pos) + x.substring(pos + 2);
- return x;
-}
-
-bool
-same_filename(const String &a, const String &b)
-{
- return simplify_filename(a) == simplify_filename(b);
-}
-
-String
-shell_quote(const String &str)
-{
- if (!str)
- return String::make_stable("\"\"");
-
- const char *begin = str.begin();
- const char *end = str.end();
- StringAccum sa;
-
-#if defined(_MSDOS) || defined(_WIN32)
- sa.append('\"');
-
- for (const char *s = begin; s < end; ++s)
- if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '\\' || *s == ':' || *s == '.')
- /* do nothing */;
- else if (*s == '\"') {
- sa.append(begin, s);
- sa.append("\"\"\"", 3);
- begin = s + 1;
- } else {
- sa.append(begin, s + 1);
- begin = s + 1;
- }
-
- if (sa.length() > 1) {
- sa.append(begin, end);
- sa.append('\"');
- return sa.take_string();
- }
-#else
- for (const char *s = begin; s < end; s++)
- if (isalnum((unsigned char) *s) || *s == '_' || *s == '-' || *s == '+' || *s == '/' || *s == ':' || *s == '.')
- /* do nothing */;
- else {
- sa.append(begin, s);
- sa.append('\\');
- begin = s;
- }
-
- if (sa.length()) {
- sa.append(begin, end);
- return sa.take_string();
- }
-#endif
-
- return str;
-}
-
-int
-mysystem(const char *command, ErrorHandler *errh)
-{
- if (no_create) {
- errh->message("would run %s", command);
- return 0;
- } else {
- if (verbose)
- errh->message("running %s", command);
- return system(command);
- }
-}
-
-FILE*
-mypopen(const char* command, const char* type, ErrorHandler* errh)
-{
- if (no_create) {
- errh->message("would run %s", command);
- return popen("true", type);
- } else {
- if (verbose)
- errh->message("running %s", command);
- return popen(command, type);
- }
-}
-
-#if !HAVE_MKSTEMP
-static const char *
-my_tmpnam()
-{
-# ifndef WIN32
- return tmpnam(0);
-# else
- const char *dir = getenv("TEMP");
- return _tempnam(dir ? dir : ".", "otftmp.");
-# endif
-}
-#endif
-
-int
-temporary_file(String &filename, ErrorHandler *errh)
-{
- if (no_create)
- return 0; // random number suffices
-
-#if HAVE_MKSTEMP
- const char *tmpdir = getenv("TMPDIR");
- if (tmpdir)
- filename = String(tmpdir) + "/otftotfm.XXXXXX";
- else {
-# ifdef P_tmpdir
- filename = P_tmpdir "/otftotfm.XXXXXX";
-# else
- filename = "/tmp/otftotfm.XXXXXX";
-# endif
- }
- int fd = mkstemp(filename.mutable_c_str());
- if (fd < 0)
- errh->error("temporary file %<%s%>: %s", filename.c_str(), strerror(errno));
- return fd;
-#else // !HAVE_MKSTEMP
- for (int tries = 0; tries < 5; tries++) {
- if (!(filename = my_tmpnam()))
- return errh->error("cannot create temporary file");
-# ifdef O_EXCL
- int fd = ::open(filename.c_str(), O_RDWR | O_CREAT | O_EXCL | O_TRUNC, 0600);
-# else
- int fd = ::open(filename.c_str(), O_RDWR | O_CREAT | O_TRUNC, 0600);
-# endif
- if (fd >= 0)
- return fd;
- }
- return errh->error("temporary file %<%s%>: %s", filename.c_str(), strerror(errno));
-#endif
-}
-
-bool
-parse_unicode_number(const char* begin, const char* end, int require_prefix, uint32_t& result)
-{
- bool allow_lower = (require_prefix == 1);
- if (require_prefix < 0)
- /* do not look for prefix */;
- else if (begin + 7 == end && begin[0] == 'u' && begin[1] == 'n' && begin[2] == 'i')
- begin += 3;
- else if (begin + 5 <= end && begin + 7 >= end && begin[0] == 'u')
- begin++;
- else if (begin + 3 <= end && begin + 8 >= end && begin[0] == 'U' && begin[1] == '+')
- begin += 2, allow_lower = true;
- else if (require_prefix > 1)
- /* some prefix was required */
- return false;
-
- uint32_t value;
- for (value = 0; begin < end; begin++)
- if (*begin >= '0' && *begin <= '9')
- value = (value << 4) | (*begin - '0');
- else if (*begin >= 'A' && *begin <= 'F')
- value = (value << 4) | (*begin - 'A' + 10);
- else if (allow_lower && *begin >= 'a' && *begin <= 'f')
- value = (value << 4) | (*begin - 'a' + 10);
- else
- return false;
-
- if (value > 0
- && (value <= 0xD7FF || (value >= 0xE000 && value <= 0x10FFFF))) {
- result = value;
- return true;
- } else
- return false;
-}
-
-#if 0
-String
-shell_command_output(String cmdline, const String &input, ErrorHandler *errh, bool strip_newlines)
-{
- FILE *f = tmpfile();
- if (!f)
- errh->fatal("cannot create temporary file: %s", strerror(errno));
- ignore_result(fwrite(input.data(), 1, input.length(), f));
- fflush(f);
- rewind(f);
-
- String new_cmdline = cmdline + " 0<&" + String(fileno(f));
- FILE *p = popen(new_cmdline.c_str(), "r");
- if (!p)
- errh->fatal("%<%s%>: %s", cmdline.c_str(), strerror(errno));
-
- StringAccum sa;
- int amt;
- do {
- if (char *x = sa.reserve(2048)) {
- amt = fread(x, 1, 2048, p);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0 && sa.length() < 200000);
- if (amt != 0)
- errh->warning("%<%s%> output too long, truncated", cmdline.c_str());
- else if (!feof(p) || ferror(p))
- errh->error("%<%s%>: %s", cmdline.c_str(), strerror(errno));
-
- fclose(f);
- pclose(p);
- while (strip_newlines && sa && (sa.back() == '\n' || sa.back() == '\r'))
- sa.pop_back();
- return sa.take_string();
-}
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
deleted file mode 100644
index 6eb5415fc9a..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/otftotfm/util.hh
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef OTFTOTFM_UTIL_HH
-#define OTFTOTFM_UTIL_HH
-#include <lcdf/string.hh>
-#include <lcdf/globmatch.hh>
-#include <stdio.h>
-class ErrorHandler;
-
-extern bool no_create;
-extern bool verbose;
-extern bool force;
-
-enum { G_ENCODING = 1, G_METRICS = 2, G_VMETRICS = 4, G_TYPE1 = 8,
- G_PSFONTSMAP = 16, G_BINARY = 32, G_ASCII = 64, G_DOTLESSJ = 128,
- G_UPDMAP = 256, G_TRUETYPE = 512, G_TYPE42 = 1024, G_UPDMAP_USER = 2048 };
-
-extern unsigned output_flags;
-
-String read_file(String filename, ErrorHandler *, bool warn = false);
-String printable_filename(const String &);
-String pathname_filename(const String &);
-bool same_filename(const String &a, const String &b);
-String shell_quote(const String &);
-int temporary_file(String &, ErrorHandler *);
-int mysystem(const char *command, ErrorHandler *);
-FILE* mypopen(const char* command, const char* type, ErrorHandler* errh);
-bool parse_unicode_number(const char*, const char*, int require_prefix, uint32_t& result);
-
-#ifdef WIN32
-#define WEXITSTATUS(es) (es)
-#endif
-
-template <typename T>
-void ignore_result(T result) {
- (void) result;
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.am
deleted file mode 100644
index 41360807e13..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = t1dotlessj
-man_MANS = t1dotlessj.1
-
-t1dotlessj_SOURCES = t1dotlessj.cc
-
-t1dotlessj_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = t1dotlessj.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.in
deleted file mode 100644
index e7c9cead16b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/Makefile.in
+++ /dev/null
@@ -1,748 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = t1dotlessj$(EXEEXT)
-subdir = lcdf-typetools-src/t1dotlessj
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_t1dotlessj_OBJECTS = t1dotlessj.$(OBJEXT)
-t1dotlessj_OBJECTS = $(am_t1dotlessj_OBJECTS)
-t1dotlessj_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/t1dotlessj.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(t1dotlessj_SOURCES)
-DIST_SOURCES = $(t1dotlessj_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = t1dotlessj.1
-t1dotlessj_SOURCES = t1dotlessj.cc
-t1dotlessj_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = t1dotlessj.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/t1dotlessj/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/t1dotlessj/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-t1dotlessj$(EXEEXT): $(t1dotlessj_OBJECTS) $(t1dotlessj_DEPENDENCIES) $(EXTRA_t1dotlessj_DEPENDENCIES)
- @rm -f t1dotlessj$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(t1dotlessj_OBJECTS) $(t1dotlessj_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1dotlessj.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/t1dotlessj.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/t1dotlessj.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
deleted file mode 100644
index a839fca3492..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.1
+++ /dev/null
@@ -1,96 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH T1DOTLESSJ 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-t1dotlessj \- create a dotless-j PostScript Type 1 font
-.SH SYNOPSIS
-.B t1dotlessj
-\%[OPTIONS...]
-.I font
-.RI [ outputfile ]
-.SH DESCRIPTION
-.BR T1dotlessj
-creates a PostScript Type\~1 font whose only character is a dotless 'j'
-matching the input font's design. It works simply by removing the dot from
-the input font's 'j'. The output font has three characters: '.notdef',
-\&'space', and 'uni0237', where 'uni0237' is the dotless 'j'. The command
-fails if the input font already has a dotless 'j' character, or if there
-seems to be no dot to remove. T1dotlessj writes the created PFA or PFB font
-to the standard output (but see the
-.B \-\-output
-option); if no input file is supplied, it reads a PFA or PFB font from the
-standard input.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BR \-\-output "=\fIfile\fR, " \-o " \fIfile"
-Send output to
-.I file
-instead of standard output.
-'
-.Sp
-.TP 5
-.BR \-\-pfb ", " \-b
-Output a PFB font. This is the default.
-'
-.Sp
-.TP 5
-.BR \-\-pfa ", " \-a
-Output a PFA font.
-'
-.Sp
-.TP 5
-.BR \-\-name "=\fIname\fR, " \-n " \fIname"
-Set the output font's PostScript name to
-.IR name .
-The default is
-.IR InputFontName "LCDFJ."
-'
-.Sp
-.TP 5
-.BR \-q ", " \-\-quiet
-Do not generate any error messages.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-v ", " \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "RETURN VALUES"
-.B T1dotlessj
-exits with one of the following values:
-.TP 5
-0
-A dotless-j font was successfully generated.
-.TP 5
-1
-The font already contained a dotless-j character.
-.TP 5
-2
-The font's "j" character had no dot to remove.
-.TP 5
-3
-The font had no "j" character.
-.TP 5
->3
-An error occurred.
-'
-.SH "SEE ALSO"
-.LP
-.I "Adobe Type 1 Font Format"
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
deleted file mode 100644
index 9a70c4183a1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1dotlessj/t1dotlessj.cc
+++ /dev/null
@@ -1,425 +0,0 @@
-/* t1dotlessj.cc -- driver for creating dotlessj characters from Type 1 fonts
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1csgen.hh>
-#include <efont/t1bounds.hh>
-#include <efont/t1unparser.hh>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-// also see otftotfm/automatic.cc
-enum { EXIT_NORMAL = 0, EXIT_DOTLESSJ_EXISTS = 1, EXIT_J_NODOT = 2,
- EXIT_NO_J = 3, EXIT_ERROR = 4 };
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define QUIET_OPT 303
-#define PFA_OPT 304
-#define PFB_OPT 305
-#define OUTPUT_OPT 306
-#define NAME_OPT 307
-
-const Clp_Option options[] = {
- { "help", 'h', HELP_OPT, 0, 0 },
- { "name", 'n', NAME_OPT, Clp_ValString, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "pfa", 'a', PFA_OPT, 0, 0 },
- { "pfb", 'b', PFB_OPT, 0, 0 },
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "version", 0, VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTIONS] [FONTFILE [OUTPUTFILE]]", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(EXIT_ERROR);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<T1dotlessj%> reads a PostScript Type 1 font, derives a new PostScript Type 1\n\
-font containing just a dotlessj character (by chopping the dot from the j),\n\
-and writes it to the standard output.\n\
-\n\
-Usage: %s [OPTIONS] [FONTFILE [OUTPUTFILE]]\n\
-\n\
-Options:\n\
- -a, --pfa Output PFA font.\n\
- -b, --pfb Output PFB font. This is the default.\n\
- -o, --output=FILE Write output to FILE instead of standard output.\n\
- -n, --name=NAME Set output font%,s PostScript name.\n\
- -h, --help Print this message and exit.\n\
- -q, --quiet Do not report errors to standard error.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-// Sectioner
-
-class Sectioner : public Type1CharstringGenInterp { public:
-
- Sectioner(int precision);
-
- void act_line(int, const Point &, const Point &);
- void act_curve(int, const Point &, const Point &, const Point &, const Point &);
- void act_closepath(int);
- void act_flex(int, const Point &, const Point &, const Point &, const Point &, const Point &, const Point &, const Point &, double);
-
- void run(const CharstringContext &g);
- void undot(PermString, ErrorHandler *);
- Type1Charstring gen(Type1Font *);
-
- private:
-
- CharstringBounds _boundser;
-
- Vector<String> _sections;
- Vector<int> _bounds;
-
- void append_bounds();
-
-};
-
-Sectioner::Sectioner(int precision)
- : Type1CharstringGenInterp(precision)
-{
- set_direct_hint_replacement(true);
-}
-
-void
-Sectioner::act_line(int cmd, const Point &p0, const Point &p1)
-{
- Type1CharstringGenInterp::act_line(cmd, p0, p1);
- _boundser.act_line(cmd, p0, p1);
-}
-
-void
-Sectioner::act_curve(int cmd, const Point &p0, const Point &p1, const Point &p2, const Point &p3)
-{
- Type1CharstringGenInterp::act_curve(cmd, p0, p1, p2, p3);
- _boundser.act_curve(cmd, p0, p1, p2, p3);
-}
-
-void
-Sectioner::act_flex(int cmd, const Point &p0, const Point &p1, const Point &p2, const Point &p3_4, const Point &p5, const Point &p6, const Point &p7, double flex_depth)
-{
- Type1CharstringGenInterp::act_flex(cmd, p0, p1, p2, p3_4, p5, p6, p7, flex_depth);
- _boundser.act_flex(cmd, p0, p1, p2, p3_4, p5, p6, p7, flex_depth);
-}
-
-void Sectioner::append_bounds() {
- double bb[5];
- _boundser.output(bb, bb[4]);
- _bounds.push_back((int) floor(bb[0]));
- _bounds.push_back((int) floor(bb[1]));
- _bounds.push_back((int) ceil(bb[2]));
- _bounds.push_back((int) ceil(bb[3]));
-}
-
-void
-Sectioner::act_closepath(int cmd)
-{
- Type1CharstringGenInterp::act_closepath(cmd);
- Type1Charstring result;
- Type1CharstringGenInterp::intermediate_output(result);
- _sections.push_back(result.data_string());
- append_bounds();
- _boundser.clear();
-}
-
-void
-Sectioner::run(const CharstringContext &g)
-{
- _boundser.clear();
- Type1Charstring last_section;
- Type1CharstringGenInterp::run(g, last_section);
- _sections.push_back(last_section.data_string());
- append_bounds();
-}
-
-void
-Sectioner::undot(PermString font_name, ErrorHandler *errh)
-{
- //for (String *s = _sections.begin(); s < _sections.end(); s++)
- // fprintf(stderr, "%d %s\n", s - _sections.begin(), CharstringUnparser::unparse(Type1Charstring(*s)).c_str());
-
- if (_sections.size() < 3)
- errh->fatal("<%d>%s: %<j%> is already dotless", -EXIT_J_NODOT, font_name.c_str());
-
- int topmost = -1;
- for (int i = 0; i < _sections.size() - 1; i++)
- if (topmost < 0 || _bounds[i*4 + 1] > _bounds[topmost*4 + 1])
- topmost = i;
-
- // check if any sections are below this
- for (int i = 0; i < _sections.size() - 1; i++)
- if (_bounds[i*4 + 1] < _bounds[topmost*4 + 1])
- goto found_below;
- errh->fatal("<%d>%s: %<j%> is already dotless", -EXIT_J_NODOT, font_name.c_str());
-
- found_below:
- _sections[topmost] = String();
-}
-
-Type1Charstring
-Sectioner::gen(Type1Font *font)
-{
- StringAccum sa;
- for (String *s = _sections.begin(); s < _sections.end(); s++)
- sa << *s;
- Type1Charstring in(sa.take_string()), out;
- Type1CharstringGenInterp gen(precision());
- gen.set_hint_replacement_storage(font);
- gen.run(CharstringContext(program(), &in), out);
- return out;
-}
-
-
-// MAIN
-
-static Type1Font *
-do_file(const char *filename, PsresDatabase *psres, ErrorHandler *errh)
-{
- FILE *f;
- if (!filename || strcmp(filename, "-") == 0) {
- f = stdin;
- filename = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else
- f = fopen(filename, "rb");
-
- if (!f) {
- // check for PostScript name
- Filename fn = psres->filename_value("FontOutline", filename);
- f = fn.open_read();
- }
-
- if (!f)
- errh->fatal("<%d>%s: %s", -EXIT_ERROR, filename, strerror(errno));
-
- Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == EOF)
- errh->fatal("<%d>%s: empty file", -EXIT_ERROR, filename);
- if (c == 128)
- reader = new Type1PFBReader(f);
- else
- reader = new Type1PFAReader(f);
-
- Type1Font *font = new Type1Font(*reader);
- if (!font->ok())
- errh->fatal("<%d>%s: no glyphs in font", -EXIT_ERROR, filename);
-
- delete reader;
- return font;
-}
-
-int
-main(int argc, char *argv[])
-{
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr));
- const char *input_file = 0;
- FILE *outputf = 0;
- const char *private_use_dotlessj = "uniF6BE";
- bool binary = true;
- const char *font_name = 0;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case QUIET_OPT:
- if (clp->negated)
- errh = ErrorHandler::default_handler();
- else
- errh = new SilentErrorHandler;
- break;
-
- case NAME_OPT:
- font_name = clp->vstr;
- break;
-
- case PFA_OPT:
- binary = false;
- break;
-
- case PFB_OPT:
- binary = true;
- break;
-
- case OUTPUT_OPT:
- output_file:
- if (outputf)
- usage_error(errh, "output file specified twice");
- if (strcmp(clp->vstr, "-") == 0)
- outputf = stdout;
- else if (!(outputf = fopen(clp->vstr, "wb")))
- errh->fatal("<%d>%s: %s", -EXIT_ERROR, clp->vstr, strerror(errno));
- break;
-
- case VERSION_OPT:
- printf("t1dotlessj (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 2003-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- if (input_file && outputf)
- usage_error(errh, "too many arguments");
- else if (input_file)
- goto output_file;
- else
- input_file = clp->vstr;
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- Type1Font *font = do_file(input_file, psres, errh);
- if (!input_file || strcmp(input_file, "-") == 0)
- input_file = "<stdin>";
-
- // check for existing dotlessj
- if (font->glyph("dotlessj"))
- errh->fatal("<%d>%s: already has a %<dotlessj%> glyph", -EXIT_DOTLESSJ_EXISTS, font->font_name().c_str());
- else if (font->glyph("uni0237"))
- errh->fatal("<%d>%s: already has a dotlessj glyph at %<uni0237%>", -EXIT_DOTLESSJ_EXISTS, font->font_name().c_str());
- else if (font->glyph("u0237"))
- errh->fatal("<%d>%s: already has a dotlessj glyph at %<u0237%>", -EXIT_DOTLESSJ_EXISTS, font->font_name().c_str());
- else if (private_use_dotlessj && font->glyph(private_use_dotlessj))
- errh->fatal("<%d>%s: already has a dotlessj glyph at %<%s%>", -EXIT_DOTLESSJ_EXISTS, font->font_name().c_str(), private_use_dotlessj);
-
- // check for j
- Type1Charstring *j_cs = font->glyph("j");
- if (!j_cs)
- j_cs = font->glyph("uni006A");
- if (!j_cs)
- j_cs = font->glyph("u006A");
- if (!j_cs)
- errh->fatal("<%d>%s: has no %<j%> glyph to make dotless", -EXIT_NO_J, font->font_name().c_str());
-
- // make new font
- String actual_font_name = (font_name ? String(font_name) : font->font_name() + String("LCDFJ"));
- if (actual_font_name.length() > 29 && !font_name) {
- errh->warning("derived font name %<%s%> longer than 29 characters", actual_font_name.c_str());
- errh->message("(Use the %<--name%> option to supply your own name.)");
- }
-
- Vector<double> xuid_extension;
- xuid_extension.push_back(0x00237237);
- Type1Font *dotless_font = Type1Font::skeleton_make_copy(font, actual_font_name, &xuid_extension);
- dotless_font->skeleton_common_subrs();
-
- // copy space and .notdef
- if (Type1Charstring *notdef = font->glyph(".notdef"))
- dotless_font->add_glyph(Type1Subr::make_glyph(".notdef", *notdef, " |-"));
- if (Type1Charstring *space = font->glyph("space")) {
- dotless_font->add_glyph(Type1Subr::make_glyph("space", *space, " |-"));
- dotless_font->type1_encoding()->put(' ', "space");
- }
-
- // create dotless j
- Sectioner sec(5);
- sec.run(CharstringContext(font, j_cs));
- sec.undot(font->font_name(), errh);
- Type1Subr *dotlessj = Type1Subr::make_glyph("uni0237", sec.gen(dotless_font), " |-");
- dotless_font->add_glyph(dotlessj);
- //fprintf(stderr, "! %s\n", CharstringUnparser::unparse(dotlessj->t1cs()).c_str());
-
- // encode dotless j
- dotless_font->type1_encoding()->clear();
- dotless_font->type1_encoding()->put('j', "uni0237");
-
- // write it to output
- if (!outputf)
- outputf = stdout;
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(outputf), _O_BINARY);
-#endif
- if (binary) {
- Type1PFBWriter w(outputf);
- dotless_font->write(w);
- } else {
- Type1PFAWriter w(outputf);
- dotless_font->write(w);
- }
-
- return (errh->nerrors() == 0 ? EXIT_NORMAL : EXIT_ERROR);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.am
deleted file mode 100644
index c76b5671fe5..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = t1lint
-man_MANS = t1lint.1
-
-t1lint_SOURCES = cscheck.hh cscheck.cc \
- t1lint.cc
-
-t1lint_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = t1lint.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.in
deleted file mode 100644
index 4511598ebfa..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/Makefile.in
+++ /dev/null
@@ -1,771 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = t1lint$(EXEEXT)
-subdir = lcdf-typetools-src/t1lint
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_t1lint_OBJECTS = cscheck.$(OBJEXT) t1lint.$(OBJEXT)
-t1lint_OBJECTS = $(am_t1lint_OBJECTS)
-t1lint_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/cscheck.Po ./$(DEPDIR)/t1lint.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(t1lint_SOURCES)
-DIST_SOURCES = $(t1lint_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = t1lint.1
-t1lint_SOURCES = cscheck.hh cscheck.cc \
- t1lint.cc
-
-t1lint_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = t1lint.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/t1lint/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/t1lint/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-t1lint$(EXEEXT): $(t1lint_OBJECTS) $(t1lint_DEPENDENCIES) $(EXTRA_t1lint_DEPENDENCIES)
- @rm -f t1lint$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(t1lint_OBJECTS) $(t1lint_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cscheck.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1lint.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/cscheck.Po
- -rm -f ./$(DEPDIR)/t1lint.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/cscheck.Po
- -rm -f ./$(DEPDIR)/t1lint.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
deleted file mode 100644
index e6b4eaab848..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.cc
+++ /dev/null
@@ -1,553 +0,0 @@
-/* cscheck.{cc,hh} -- checking Type 1 charstrings for validity
- *
- * Copyright (c) 1999-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "cscheck.hh"
-#include <efont/t1item.hh>
-#include <lcdf/error.hh>
-#include <efont/t1unparser.hh>
-
-using namespace Efont;
-
-#define CHECK_STACK_GE(numargs) do { if (size() < numargs) return error(errUnderflow, cmd); } while (0)
-#define CHECK_STACK_EQ(numargs) do { CHECK_STACK_GE(numargs); if (size() > numargs) _errh->warning("too many arguments to %<%s%> (have %d, expected %d)", Charstring::command_name(cmd).c_str(), size(), numargs); } while (0)
-#define CHECK_STACK_CPEQ(numargs) do { CHECK_STACK_EQ(numargs); if (!_cp_exists) return error(errCurrentPoint, cmd); } while (0)
-
-
-CharstringChecker::CharstringChecker()
- : CharstringInterp(), _errh(0)
-{
- set_careful(true);
-}
-
-CharstringChecker::CharstringChecker(const Vector<double> &weight)
- : CharstringInterp(weight), _errh(0)
-{
- set_careful(true);
-}
-
-
-void
-CharstringChecker::stem(double y, double dy, const char *cmd_name)
-{
- bool is_v = (cmd_name[0] == 'v');
- Vector<double> &hints = (is_v ? _h_vstem : _h_hstem);
- const char *dimen_name = (is_v ? "x" : "y");
- if (dy < 0) {
- y += dy;
- dy = -dy;
- }
- if (dy < 0.5)
- _errh->warning("small delta-%s in %<%s%> (%g)", dimen_name, cmd_name, dy);
- for (int i = 0; i < hints.size(); i += 2)
- if ((hints[i] >= y && hints[i+1] <= y)
- || (hints[i] >= y+dy && hints[i+1] <= y+dy))
- _errh->warning("overlapping %<%s%> hints", cmd_name);
- hints.push_back(y);
- hints.push_back(y+dy);
-}
-
-void
-CharstringChecker::check_stem3(const char *cmd_name)
-{
- bool is_v = (cmd_name[0] == 'v');
- Vector<double> &hints = (is_v ? _h_vstem : _h_hstem);
- Vector<double> &old_hints = (is_v ? _h_vstem3 : _h_hstem3);
- assert(hints.size() == 6);
-
- // sort hints
- int i0, i1, i2;
- if (hints[0] > hints[2])
- i0 = 2, i1 = 0;
- else
- i0 = 0, i1 = 2;
- if (hints[4] < hints[i0])
- i2 = i1, i1 = i0, i0 = 4;
- else if (hints[4] < hints[i1])
- i2 = i1, i1 = 4;
- else
- i2 = 4;
-
- // check constraints. count "almost equal" as equal
- double stemw0 = hints[i0+1] - hints[i0];
- double stemw2 = hints[i2+1] - hints[i2];
- if ((int)(1024*(stemw0 - stemw2) + .5) != 0)
- _errh->error("bad %<%s%>: extreme stem widths unequal (%g, %g)", cmd_name, stemw0, stemw2);
-
- double c0 = (hints[i0] + hints[i0+1])/2;
- double c1 = (hints[i1] + hints[i1+1])/2;
- double c2 = (hints[i2] + hints[i2+1])/2;
- if ((int)(1024*((c1 - c0) - (c2 - c1)) + .5) != 0)
- _errh->error("bad %<%s%>: stem gaps unequal (%g, %g)", cmd_name, c1-c0, c2-c1);
-
- // compare to old hints
- if (old_hints.size()) {
- for (int i = 0; i < old_hints.size(); i++)
- if (hints[i] != old_hints[i]) {
- _errh->warning("%<%s%> conflicts with old %<%s%>", cmd_name, cmd_name);
- break;
- }
- }
- old_hints = hints;
-}
-
-void
-CharstringChecker::moveto(double, double, bool cp_exists)
-{
- _cp_exists = cp_exists;
-}
-
-void
-CharstringChecker::rmoveto(double, double)
-{
- _cp_exists = true;
- _just_flexed = false;
-}
-
-void
-CharstringChecker::rlineto(double, double)
-{
-}
-
-void
-CharstringChecker::rrcurveto(double, double, double, double, double, double)
-{
-}
-
-
-bool
-CharstringChecker::error(int which, int data)
-{
- CharstringInterp::error(which, data);
- _errh->error("%s", error_string().c_str());
- return false;
-}
-
-bool
-CharstringChecker::callothersubr()
-{
- int othersubrnum = (int)top(0);
- int n = (int)top(1);
- int i;
-
- pop(2);
- if (othersubrnum < 0 || size() < n)
- return false;
-
- if (!_started && (othersubrnum < Cs::othcCountercontrolpart
- || othersubrnum > Cs::othcMM6))
- _errh->warning("first command not %<hsbw%> or %<sbw%>");
-
- bool retval = true;
-
- switch (othersubrnum) {
-
- case Cs::othcFlexend:
- if (n != 3) {
- _errh->error("wrong number of arguments to Flex");
- goto unknown;
- }
- if (!_flex) {
- _errh->error("no Flex in progress");
- retval = false;
- } else if (ps_size() != 16) {
- _errh->error("Flex needs 16 arguments, have %d", ps_size());
- retval = false;
- } else {
- ps_clear();
- ps_push(top(0));
- ps_push(top(1));
- _flex = false;
- }
- break;
-
- case Cs::othcFlexbegin:
- if (n != 0) {
- _errh->error("wrong number of arguments to Flex");
- goto unknown;
- }
- ps_clear();
- ps_push(_cp.x);
- ps_push(_cp.y);
- _flex = true;
- _just_flexed = true;
- //_flex_connect = _connect;
- break;
-
- case Cs::othcFlexmiddle:
- if (n != 0) {
- _errh->error("wrong number of arguments to Flex");
- goto unknown;
- }
- if (!_flex)
- retval = error(errFlex, 0);
- else {
- if (_just_flexed)
- _errh->error("Flex control points must be separated by a moveto");
- ps_push(_cp.x);
- ps_push(_cp.y);
- _just_flexed = true;
- }
- break;
-
- case Cs::othcReplacehints:
- if (n != 1) {
- _errh->error("wrong number of arguments to hint replacement");
- goto unknown;
- }
- ps_clear();
- ps_push(top());
- _h_hstem.clear();
- _h_vstem.clear();
- break;
-
- case Cs::othcCountercontrolpart:
- case Cs::othcCountercontrol:
- if (_counter_controlled)
- _errh->error("duplicate counter control instructions");
- else if (_started
- && _last_command != 256 + Cs::othcCountercontrolpart
- && _last_command != Cs::cSbw
- && _last_command != Cs::cHsbw)
- _errh->error("counter control must appear immediately after %<sbw%> or %<hsbw%>");
- if (n < 0 || n > 22)
- _errh->error("too many arguments to counter control, max 22");
- else if (n != size()) {
- _errh->error("too few arguments to counter control, expected %d", size());
- n = size();
- }
- ps_clear();
- _counter_controlled = (othersubrnum == Cs::othcCountercontrol);
- break;
-
- case Cs::othcMM1:
- case Cs::othcMM2:
- case Cs::othcMM3:
- case Cs::othcMM4:
- case Cs::othcMM6:
- retval = mm_command(othersubrnum, n);
- goto skip_pop;
-
- default: // unknown
- unknown:
- _errh->warning("unknown callothersubr %<%d%>", othersubrnum);
- ps_clear();
- for (i = 0; i < n; i++)
- ps_push(top(i));
- break;
-
- }
-
- pop(n);
- if (_last_command == 256 + Cs::othcCountercontrolpart
- && othersubrnum != Cs::othcCountercontrol)
- _errh->error("partial counter control instruction");
- _last_command = 256 + othersubrnum;
- skip_pop:
- return retval;
-}
-
-//#define DEBUG(s) printf s
-#define DEBUG(s)
-
-bool
-CharstringChecker::type1_command(int cmd)
-{
- if (_subrno < 0)
- ++_ncommand;
- if (cmd == Cs::cCallsubr) {
- int old_subrno = _subrno;
- _subrno = (size() > 1 ? (int) top(0) : -300);
- bool result = callsubr_command();
- _subrno = old_subrno;
- return result;
- } else if (cmd == Cs::cCallothersubr) {
- CHECK_STACK_GE(2);
- return callothersubr();
- } else if (cmd == Cs::cReturn) {
- return false;
- } else if (cmd == Cs::cPop || cmd == Cs::cDiv) {
- return arith_command(cmd);
- }
-
- if (cmd != Cs::cHsbw && cmd != Cs::cSbw) {
- if (!_started)
- _errh->warning("first command not %<hsbw%> or %<sbw%>");
- } else {
- if (_started)
- _errh->error("duplicate %<hsbw%> or %<sbw%>");
- }
- _started = true;
-
- switch (cmd) {
-
- case Cs::cHsbw:
- CHECK_STACK_EQ(2);
- moveto(at(0), 0, false);
- clear();
- break;
-
- case Cs::cSbw:
- CHECK_STACK_EQ(4);
- moveto(at(0), at(1), false);
- clear();
- break;
-
- case Cs::cClosepath:
- _cp_exists = false;
- clear();
- break;
-
- case Cs::cHlineto:
- CHECK_STACK_CPEQ(1);
- rlineto(at(0), 0);
- clear();
- break;
-
- case Cs::cHmoveto:
- CHECK_STACK_EQ(1);
- rmoveto(at(0), 0);
- clear();
- break;
-
- case Cs::cHvcurveto:
- CHECK_STACK_CPEQ(4);
- rrcurveto(at(0), 0, at(1), at(2), 0, at(3));
- clear();
- break;
-
- case Cs::cRlineto:
- CHECK_STACK_CPEQ(2);
- rlineto(at(0), at(1));
- clear();
- break;
-
- case Cs::cRmoveto:
- CHECK_STACK_EQ(2);
- rmoveto(at(0), at(1));
- clear();
- break;
-
- case Cs::cRrcurveto:
- CHECK_STACK_CPEQ(6);
- rrcurveto(at(0), at(1), at(2), at(3), at(4), at(5));
- clear();
- break;
-
- case Cs::cVhcurveto:
- CHECK_STACK_CPEQ(4);
- rrcurveto(0, at(0), at(1), at(2), at(3), 0);
- clear();
- break;
-
- case Cs::cVlineto:
- CHECK_STACK_CPEQ(1);
- rlineto(0, at(0));
- clear();
- break;
-
- case Cs::cVmoveto:
- CHECK_STACK_EQ(1);
- rmoveto(0, at(0));
- clear();
- break;
-
- case Cs::cHstem:
- CHECK_STACK_EQ(2);
- if (_hstem3 && !_hstem)
- _errh->error("charstring has both %<hstem%> and %<hstem3%>");
- _hstem = true;
- stem(at(0), at(1), "hstem");
- clear();
- break;
-
- case Cs::cVstem:
- CHECK_STACK_EQ(2);
- if (_vstem3 && !_vstem)
- _errh->error("charstring has both %<vstem%> and %<vstem3%>");
- _vstem = true;
- stem(at(0), at(1), "vstem");
- clear();
- break;
-
- case Cs::cEndchar:
- set_done();
- _last_command = cmd;
- return false;
-
- case Cs::cDotsection:
- break;
-
- case Cs::cVstem3:
- CHECK_STACK_EQ(6);
- if (_vstem && !_vstem3)
- _errh->error("charstring has both %<vstem%> and %<vstem3%>");
- _vstem3 = true;
- _h_vstem.clear();
- stem(at(0), at(1), "vstem3");
- stem(at(2), at(3), "vstem3");
- stem(at(4), at(5), "vstem3");
- check_stem3("vstem3");
- clear();
- break;
-
- case Cs::cHstem3:
- CHECK_STACK_EQ(6);
- if (_hstem && !_hstem3)
- _errh->error("charstring has both %<hstem%> and %<hstem3%>");
- _hstem3 = true;
- _h_hstem.clear();
- stem(at(0), at(1), "hstem3");
- stem(at(2), at(3), "hstem3");
- stem(at(4), at(5), "hstem3");
- check_stem3("hstem3");
- clear();
- break;
-
- case Cs::cSeac: {
- CHECK_STACK_EQ(5);
-#if 0
- double asb = at(0);
- double adx = at(1);
- double ady = at(2);
- int bchar = (int)at(3);
- int achar = (int)at(4);
-
- double ax = adx - asb + _sidebearing.x;
- double ay = ady + _sidebearing.y;
-
- Point real_sidebearing = _sidebearing;
- Point real_char_width = _char_width;
- Point original_origin = _origin;
-
- Type1Encoding *adobe = Type1Encoding::standard_encoding();
- if (!adobe)
- return error(errInternal, cmd);
- Type1Charstring *t1cs = get_glyph((*adobe)[achar]);
- if (!t1cs) ERROR(errGlyph);
- _origin = Point(ax, ay);
- init();
- t1cs->run(*this);
- _origin = original_origin;
- if (error()) return false;
-
- t1cs = get_glyph((*adobe)[bchar]);
- if (!t1cs) ERROR(errGlyph);
- init();
- t1cs->run(*this);
- _sidebearing = real_sidebearing;
- _char_width = real_char_width;
-#endif
- return false;
- }
-
- case Cs::cSetcurrentpoint:
- CHECK_STACK_EQ(2);
- _cp = Point(at(0), at(1));
- _cp_exists = true;
- clear();
- break;
-
- case Cs::cPut:
- case Cs::cGet:
- case Cs::cStore:
- case Cs::cLoad:
- return vector_command(cmd);
-
- default:
- return arith_command(cmd);
-
- }
-
- if (_last_command == 256 + Cs::othcCountercontrolpart)
- _errh->error("partial counter control instruction");
- _last_command = cmd;
- return true;
-}
-
-bool
-CharstringChecker::check(const CharstringContext &g, ErrorHandler *errh)
-{
- CharstringCheckerErrorHandler<CharstringChecker> merrh(errh, this);
- _errh = &merrh;
- int old_errors = errh->nerrors();
-
- _started = false;
- _flex = false;
- _hstem = _hstem3 = _vstem = _vstem3 = false;
- _just_flexed = _counter_controlled = false;
- _last_command = -1;
- _h_hstem.clear();
- _h_vstem.clear();
- _h_hstem3.clear();
- _h_vstem3.clear();
- _ncommand = 0;
- _subrno = -1;
-
- CharstringInterp::interpret(g);
-
- return errh->nerrors() == old_errors;
-}
-
-
-
-CharstringSubrChecker::CharstringSubrChecker()
- : CharstringInterp(), _errh(0)
-{
- set_careful(true);
-}
-
-CharstringSubrChecker::CharstringSubrChecker(const Vector<double> &weight)
- : CharstringInterp(weight), _errh(0)
-{
- set_careful(true);
-}
-
-bool
-CharstringSubrChecker::error(int error, int data)
-{
- CharstringInterp::error(error, data);
- _errh->error("%s", error_string().c_str());
- return false;
-}
-
-bool
-CharstringSubrChecker::type1_command(int cmd)
-{
- switch (cmd) {
- case Cs::cReturn:
- _returned = true;
- return false;
- default:
- clear();
- return true;
- }
-}
-
-bool
-CharstringSubrChecker::check(const CharstringContext &g, ErrorHandler *errh)
-{
- CharstringCheckerErrorHandler<CharstringSubrChecker> merrh(errh, this);
- _errh = &merrh;
- int old_errors = errh->nerrors();
-
- _returned = false;
-
- CharstringInterp::interpret(g);
-
- if (!_returned)
- _errh->error("subroutine does not return");
- return errh->nerrors() == old_errors;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.hh
deleted file mode 100644
index d9de5134109..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/cscheck.hh
+++ /dev/null
@@ -1,136 +0,0 @@
-#ifndef CSCHECK_HH
-#define CSCHECK_HH
-#include <efont/t1interp.hh>
-#include <lcdf/point.hh>
-#include <lcdf/vector.hh>
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <ctype.h>
-
-template <typename T>
-class CharstringCheckerErrorHandler : public ErrorVeneer { public:
-
- CharstringCheckerErrorHandler(ErrorHandler *errh, T *checker)
- : ErrorVeneer(errh), _checker(checker) {
- }
-
- String decorate(const String &str);
-
- private:
-
- T *_checker;
-
-};
-
-class CharstringChecker : public Efont::CharstringInterp { public:
-
- CharstringChecker();
- CharstringChecker(const Vector<double> &weight_vec);
-
- bool error(int, int);
- bool callothersubr();
- bool type1_command(int);
-
- bool check(const Efont::CharstringContext &, ErrorHandler *);
-
- int ncommand() const {
- return _ncommand;
- }
- int subrno() const {
- return _subrno;
- }
-
- private:
-
- ErrorHandler *_errh;
- int _ncommand;
- int _subrno;
-
- Point _cp;
-
- bool _started;
- bool _flex;
- bool _cp_exists;
-
- bool _hstem;
- bool _hstem3;
- bool _vstem;
- bool _vstem3;
-
- bool _just_flexed;
- bool _counter_controlled;
- int _last_command;
-
- Vector<double> _h_hstem;
- Vector<double> _h_vstem;
-
- Vector<double> _h_hstem3;
- Vector<double> _h_vstem3;
-
- void stem(double, double, const char *);
- void check_stem3(const char *);
-
- void moveto(double, double, bool cp_exists = true);
- void rmoveto(double, double);
- void rlineto(double, double);
- void rrcurveto(double, double, double, double, double, double);
-
-};
-
-class CharstringSubrChecker : public Efont::CharstringInterp { public:
-
- CharstringSubrChecker();
- CharstringSubrChecker(const Vector<double> &weight_vec);
-
- bool error(int, int);
- bool type1_command(int);
-
- bool check(const Efont::CharstringContext &, ErrorHandler *);
-
- int ncommand() const {
- return -1;
- }
- int subrno() const {
- return -1;
- }
-
- private:
-
- ErrorHandler *_errh;
-
- bool _returned;
-
-};
-
-
-template <typename T> String
-CharstringCheckerErrorHandler<T>::decorate(const String &str)
-{
- StringAccum sa;
- const char *s = skip_anno(str.begin(), str.end());
- while (s < str.end() && isspace((unsigned char) *s))
- ++s;
- sa.append(str.begin(), s);
- if (_checker->subrno() >= 0)
- sa << "called from ";
- if (_checker->ncommand() >= 0)
- sa << "command " << (_checker->ncommand() - 1) << ':';
- if (sa)
- sa << ' ';
- if (s + 11 < str.end() && memcmp(s, "charstring ", 11) == 0) {
- bool quote_parity = 0;
- const char *last = s + 11;
- for (const char *x = last; x != str.end(); ++x)
- if (*x == '\'') {
- sa.append(last, x);
- sa << format(quote_parity ? "%>" : "%<");
- quote_parity = !quote_parity;
- last = x + 1;
- }
- sa.append(last, str.end());
- } else
- sa.append(s, str.end());
- return ErrorVeneer::decorate(sa.take_string());
-}
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
deleted file mode 100644
index 5ab620b81a3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.1
+++ /dev/null
@@ -1,48 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH T1LINT 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-t1lint \- check a PostScript Type 1 font for correctness
-.SH SYNOPSIS
-.B t1lint
-\%\fIfont\fR [\fIfont\fR...]
-.SH DESCRIPTION
-.BR T1lint
-checks PostScript Type 1 font programs for correctness. Any errors or
-variances from the specification are reported to standard error. If there
-are no errors, the command prints nothing. It exits with status 0 if all
-fonts were OK, and status 1 otherwise. If no input files are supplied,
-t1lint reads a font from the standard input.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BR \-q ", " \-\-quiet
-Do not generate any error messages. The only output will be the exit
-status.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-v ", " \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "SEE ALSO"
-.LP
-.M t1disasm 1
-.LP
-.I "Adobe Type 1 Font Format"
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
deleted file mode 100644
index 1d5c6363f65..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1lint/t1lint.cc
+++ /dev/null
@@ -1,450 +0,0 @@
-/* t1lint.cc -- driver for checking Type 1 fonts for validity
- *
- * Copyright (c) 1999-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1mm.hh>
-#include "cscheck.hh"
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define QUIET_OPT 303
-
-const Clp_Option options[] = {
- { "help", 'h', HELP_OPT, 0, 0 },
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "version", 0, VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... FONT", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<T1lint%> checks a PostScript Type 1 font for correctness. Any errors or\n\
-divergences from the specification are reported to standard error. Nothing is\n\
-printed for correct fonts. The command exits with status 0 if there are no\n\
-errors, and status 1 otherwise.\n\
-\n\
-Usage: %s [OPTION]... FONT [...]\n\
-\n\
-Each FONT is the name of a PFA or PFB font file.\n\
-\n\
-Options:\n\
- -h, --help Print this message and exit.\n\
- -q, --quiet Do not report errors to standard error.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-/*****
- * CHECKS
- **/
-
-static bool
-get_num_array(Type1Font *font, int dictionary, const char *name,
- Vector<double> &v, ErrorHandler *errh, bool mandatory = false)
-{
- if (Type1Definition *d = font->dict(dictionary, name)) {
- if (d->value_numvec(v))
- return true;
- errh->error("%s not an array of numbers", name);
- v.clear();
- } else if (mandatory)
- errh->error("%s not defined", name);
- return false;
-}
-
-static bool
-get_integer(Type1Font *font, int dictionary, const char *name,
- int &v, ErrorHandler *errh, bool mandatory = false)
-{
- Type1Definition *d = font->dict(dictionary, name);
- double scratch;
- if (d && d->value_int(v))
- return true;
- else if (d && d->value_num(scratch)) {
- errh->warning("%s not an integer", name);
- v = (int)scratch;
- return true;
- } else if (d)
- errh->error("%s not a number", name);
- else if (mandatory)
- errh->error("%s not defined", name);
- return false;
-}
-
-// BLUES
-
-static void
-check_blue_array(Vector<double> &blues, const char *name, double BlueScale,
- ErrorHandler *errh)
-{
- if (blues.size() % 2 != 0) {
- errh->error("%s has an odd number of entries", name);
- blues.push_back(blues.back());
- }
-
- for (int i = 0; i < blues.size(); i++)
- if (blues[i] != (double)((int)blues[i])) {
- errh->warning("some %s entries are not integers", name);
- break;
- }
-
- double max_diff = 1 / BlueScale;
- for (int i = 0; i < blues.size(); i += 2) {
- if (blues[i] > blues[i+1])
- errh->error("%s zone %d in the wrong order", name, i/2);
- else if (blues[i+1] - blues[i] >= max_diff)
- errh->error("%s zone %d too large in relation to BlueScale (size %g, max %g [%g])", name, i/2, blues[i+1] - blues[i], max_diff, BlueScale);
- }
-}
-
-static void
-check_blue_overlap(Vector<double> &bl1, const char *name1,
- Vector<double> &bl2, const char *name2, int BlueFuzz,
- ErrorHandler *errh)
-{
- int min_fuzz = 2*BlueFuzz + 1;
- for (int i = 2; i < bl1.size(); i += 2) {
- int thresh = (&bl1 == &bl2 ? i : bl2.size());
- for (int j = 0; j < thresh; j += 2) {
- if ((bl2[j] >= bl1[i] && bl2[j] <= bl1[i+1])
- || (bl2[j+1] >= bl1[i] && bl2[j+1] <= bl1[i+1]))
- errh->error("%s zone %d and %s zone %d overlap",
- name1, i/2, name2, j/2);
- else if ((bl2[j] >= bl1[i+1] && bl2[j] < bl1[i+1]+min_fuzz)
- || (bl2[j+1] <= bl1[i] && bl2[j+1]+min_fuzz > bl1[i]))
- errh->error("%s zone %d and %s zone %d overlap within BlueFuzz",
- name1, i/2, name2, j/2);
- }
- }
-}
-
-static void
-check_blues(Type1Font *font, ErrorHandler *errh)
-{
- Type1Definition *d;
-
- // BlueScale
- double BlueScale;
- bool ok = false;
- if ((d = font->p_dict("BlueScale"))) {
- if (!d->value_num(BlueScale))
- errh->error("BlueScale not a real number");
- else if (BlueScale <= 0)
- errh->error("BlueScale less than or equal to 0");
- else {
- if (BlueScale > 0.5)
- errh->error("suspiciously large BlueScale (%g)", BlueScale);
- ok = true;
- }
- }
- if (!ok) BlueScale = 0.039625;
-
- // BlueShift
- int BlueShift = -1;
- if (get_integer(font, Type1Font::dP, "BlueShift", BlueShift, errh)
- && BlueShift < 0)
- errh->error("BlueShift less than 0");
- if (BlueShift < 0)
- BlueShift = 7;
-
- // BlueFuzz
- int BlueFuzz = -1;
- if (get_integer(font, Type1Font::dP, "BlueFuzz", BlueFuzz, errh)
- && BlueFuzz < 0)
- errh->error("BlueFuzz less than 0");
- if (BlueFuzz < 0)
- BlueFuzz = 1;
- else if (BlueFuzz > 10)
- errh->warning("suspiciously large BlueFuzz (%d)", BlueFuzz);
-
- // BlueValues
- Vector<double> BlueValues, OtherBlues;
- get_num_array(font, Type1Font::dP, "BlueValues", BlueValues, errh, true);
- get_num_array(font, Type1Font::dP, "OtherBlues", OtherBlues, errh);
-
- check_blue_array(BlueValues, "BlueValues", BlueScale, errh);
- if (BlueValues.size() > 14)
- errh->error("too many zones in BlueValues (max 7)");
- check_blue_array(OtherBlues, "OtherBlues", BlueScale, errh);
- if (OtherBlues.size() > 10)
- errh->error("too many zones in OtherBlues (max 5)");
-
- check_blue_overlap(BlueValues, "BlueValues", BlueValues, "BlueValues", BlueFuzz, errh);
- check_blue_overlap(OtherBlues, "OtherBlues", OtherBlues, "OtherBlues", BlueFuzz, errh);
- check_blue_overlap(BlueValues, "BlueValues", OtherBlues, "OtherBlues", BlueFuzz, errh);
-
- // FamilyBlues
- Vector<double> FamilyBlues, FamilyOtherBlues;
- get_num_array(font, Type1Font::dP, "FamilyBlues", FamilyBlues, errh);
- get_num_array(font, Type1Font::dP, "FamilyOtherBlues", FamilyOtherBlues, errh);
-
- check_blue_array(FamilyBlues, "FamilyBlues", BlueScale, errh);
- if (FamilyBlues.size() > 14)
- errh->error("too many zones in FamilyBlues (max 7)");
- check_blue_array(FamilyOtherBlues, "FamilyOtherBlues", BlueScale, errh);
- if (FamilyOtherBlues.size() > 10)
- errh->error("too many zones in FamilyOtherBlues (max 5)");
-
- check_blue_overlap(FamilyBlues, "FamilyBlues", FamilyBlues, "FamilyBlues", BlueFuzz, errh);
- check_blue_overlap(FamilyOtherBlues, "FamilyOtherBlues", FamilyOtherBlues, "FamilyOtherBlues", BlueFuzz, errh);
- check_blue_overlap(FamilyBlues, "FamilyBlues", FamilyOtherBlues, "FamilyOtherBlues", BlueFuzz, errh);
-}
-
-
-// STEMS
-
-void
-check_stem_snap(Vector<double> &stem_snap, double main, bool is_v,
- ErrorHandler *errh)
-{
- const char *name = (is_v ? "V" : "H");
- if (stem_snap.size() > 12)
- errh->error("StemSnap%s has more than 12 entries", name);
- for (int i = 0; i < stem_snap.size() - 1; i++)
- if (stem_snap[i] >= stem_snap[i+1]) {
- errh->error("StemSnap%s is not sorted in increasing order", name);
- break;
- }
- for (int i = 0; i < stem_snap.size(); i++)
- if (stem_snap[i] == main)
- return;
- if (main >= 0)
- errh->warning("Std%sW not in StemSnap%s array", name, name);
-}
-
-void
-check_stems(Type1Font *font, ErrorHandler *errh)
-{
- Vector<double> StdHW, StdVW, StemSnapH, StemSnapV;
- if (get_num_array(font, Type1Font::dP, "StdHW", StdHW, errh)) {
- if (StdHW.size() != 1)
- errh->error("StdHW has %d entries (exactly one required)", StdHW.size());
- if (StdHW.size() > 0 && StdHW[0] <= 0)
- errh->error("StdHW entry less than or equal to 0");
- }
- if (get_num_array(font, Type1Font::dP, "StdVW", StdVW, errh)) {
- if (StdVW.size() != 1)
- errh->error("StdVW has %d entries (exactly one required)", StdVW.size());
- if (StdVW.size() > 0 && StdVW[0] <= 0)
- errh->error("StdVW entry less than or equal to 0");
- }
-
- if (get_num_array(font, Type1Font::dP, "StemSnapH", StemSnapH, errh))
- check_stem_snap(StemSnapH, StdHW.size() ? StdHW[0] : -1000, false, errh);
- if (get_num_array(font, Type1Font::dP, "StemSnapV", StemSnapV, errh))
- check_stem_snap(StemSnapV, StdVW.size() ? StdVW[0] : -1000, true, errh);
-}
-
-
-// MAIN
-
-static void
-do_file(const char *filename, PsresDatabase *psres, ErrorHandler *errh,
- ErrorHandler *err_errh)
-{
- FILE *f;
- if (strcmp(filename, "-") == 0) {
- f = stdin;
- filename = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else
- f = fopen(filename, "rb");
-
- if (!f) {
- // check for PostScript name
- Filename fn = psres->filename_value("FontOutline", filename);
- f = fn.open_read();
- }
-
- if (!f)
- err_errh->fatal("%s: %s", filename, strerror(errno));
-
- Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == EOF)
- err_errh->fatal("%s: empty file", filename);
- if (c == 128)
- reader = new Type1PFBReader(f);
- else
- reader = new Type1PFAReader(f);
-
- Type1Font *font = new Type1Font(*reader);
-
- if (font) {
- LandmarkErrorHandler cerrh(errh, filename);
-
- // check UniqueID values
- int UniqueID = -1, UniqueID2 = -1;
- if (get_integer(font, Type1Font::dF, "UniqueID", UniqueID, errh)
- && (UniqueID < 0 || UniqueID > 0xFFFFFF))
- cerrh.error("UniqueID not in the range 0-16777215");
- if (get_integer(font, Type1Font::dP, "UniqueID", UniqueID2, errh)
- && (UniqueID2 < 0 || UniqueID2 > 0xFFFFFF))
- cerrh.error("Private UniqueID not in the range 0-16777215");
- if (UniqueID >= 0 && UniqueID2 >= 0 && UniqueID != UniqueID2)
- cerrh.error("Private UniqueID does not equal font UniqueID");
-
- // check XUID values
- Vector<double> XUID;
- if (get_num_array(font, Type1Font::dF, "XUID", XUID, errh)) {
- if (XUID.size() == 0)
- cerrh.error("empty XUID");
- for (int i = 0; i < XUID.size(); i++) {
- if (floor(XUID[i]) != XUID[i] || XUID[i] < 0 || XUID[i] > 0xFFFFFF) {
- cerrh.error("element of XUID not an integer in the range 0-16777215");
- break;
- }
- }
- }
-
- check_blues(font, &cerrh);
- check_stems(font, &cerrh);
-
- MultipleMasterSpace *mmspace = font->create_mmspace(&cerrh);
- Vector<double> weight_vector;
- if (mmspace)
- weight_vector = mmspace->default_weight_vector();
- int gc = font->nglyphs();
- CharstringChecker cc(weight_vector);
-
- for (int i = 0; i < gc; i++) {
- ContextErrorHandler derrh
- (&cerrh, "While interpreting %<%s%>:", font->glyph_name(i).c_str());
- cc.check(font->glyph_context(i), &derrh);
- }
-
- int ns = font->nsubrs();
- CharstringSubrChecker csc(weight_vector);
- for (int i = 0; i < ns; ++i)
- if (Type1Charstring *cs = font->subr(i)) {
- ContextErrorHandler derrh(&cerrh, "While interpreting subr %d:", i);
- CharstringContext cctx(font, cs);
- csc.check(cctx, &derrh);
- }
- }
-
- delete font;
- delete reader;
-}
-
-int
-main(int argc, char *argv[])
-{
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *err_errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr));
- ErrorHandler *out_errh = new FileErrorHandler(stdout);
- ErrorHandler *errh = out_errh;
- int nfiles = 0;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case QUIET_OPT:
- if (clp->negated)
- errh = out_errh;
- else
- errh = new SilentErrorHandler;
- break;
-
- case VERSION_OPT:
- printf("t1lint (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 1999-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- do_file(clp->vstr, psres, errh, err_errh);
- nfiles++;
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(err_errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- if (nfiles == 0)
- do_file("-", psres, errh, err_errh);
-
- return (errh->nerrors() == 0 ? 0 : 1);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.am
deleted file mode 100644
index 035c5cb1c9d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = t1rawafm
-man_MANS = t1rawafm.1
-
-t1rawafm_SOURCES = t1rawafm.cc
-
-t1rawafm_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = t1rawafm.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.in
deleted file mode 100644
index 817fcbdf485..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/Makefile.in
+++ /dev/null
@@ -1,748 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = t1rawafm$(EXEEXT)
-subdir = lcdf-typetools-src/t1rawafm
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_t1rawafm_OBJECTS = t1rawafm.$(OBJEXT)
-t1rawafm_OBJECTS = $(am_t1rawafm_OBJECTS)
-t1rawafm_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/t1rawafm.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(t1rawafm_SOURCES)
-DIST_SOURCES = $(t1rawafm_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = t1rawafm.1
-t1rawafm_SOURCES = t1rawafm.cc
-t1rawafm_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = t1rawafm.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/t1rawafm/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/t1rawafm/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-t1rawafm$(EXEEXT): $(t1rawafm_OBJECTS) $(t1rawafm_DEPENDENCIES) $(EXTRA_t1rawafm_DEPENDENCIES)
- @rm -f t1rawafm$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(t1rawafm_OBJECTS) $(t1rawafm_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1rawafm.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/t1rawafm.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/t1rawafm.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
deleted file mode 100644
index 9a367a31a52..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.1
+++ /dev/null
@@ -1,55 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH T1RAWAFM 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-t1rawafm \- produce raw AFM metrics from a PostScript Type 1 font
-.SH SYNOPSIS
-\fBt1rawafm\fR \%[OPTIONS...] [\fIfont\fR [\fIoutputfile\fR]]
-.SH DESCRIPTION
-.BR T1rawafm
-generates an AFM file with the information available in a PostScript
-Type\~1 font. The AFM file will lack kerns, ligature information, and
-composite characters, but is otherwise usable. The AFM file is written to
-the standard output (but see the
-.B \-\-output
-option). If no input font file is supplied,
-.B t1rawafm
-reads a PFA or PFB font from the standard input.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BR \-\-output "=\fIfile\fR, " \-o " \fIfile"
-Send output to
-.I file
-instead of standard output.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "RETURN VALUES"
-.B T1rawafm
-exits with value 0 if an AFM metrics file was successfully generated, and 1
-otherwise.
-'
-.SH "SEE ALSO"
-.LP
-.IR "Adobe Type 1 Font Format" ,
-.IR "Adobe Font Metrics File Format Specification v4.1"
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
deleted file mode 100644
index eaf919d1e28..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1rawafm/t1rawafm.cc
+++ /dev/null
@@ -1,369 +0,0 @@
-/* t1rawafm.cc -- driver for generating a raw AFM file from a font
- *
- * Copyright (c) 2008-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1mm.hh>
-#include <efont/t1interp.hh>
-#include <efont/t1bounds.hh>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <lcdf/globmatch.hh>
-#include <lcdf/transform.hh>
-#include <algorithm>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define OUTPUT_OPT 303
-#define SMOKE_OPT 305
-
-const Clp_Option options[] = {
- { "help", 'h', HELP_OPT, 0, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "version", 0, VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-static PermString::Initializer initializer;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... [FONT [OUTPUT]]", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<T1rawafm%> generates a raw (kernless and ligatureless) AFM file corresponding\n\
-to the specified Type 1 font file and writes it to the standard output.\n\
-\n\
-Usage: %s [OPTION]... [FONT [OUTPUT]]\n\
-\n\
-FONT is the name of a PFA or PFB font file. If omitted, t1rawafm will read a\n\
-font file from the standard input.\n\
-\n\
-Options:\n\
- -o, --output=FILE Write output to FILE instead of standard output.\n\
- -h, --help Print this message and exit.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-// MAIN
-
-static Type1Font *font;
-
-static void
-do_file(const char *filename, PsresDatabase *psres, ErrorHandler *errh)
-{
- FILE *f;
- if (!filename || strcmp(filename, "-") == 0) {
- f = stdin;
- filename = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else
- f = fopen(filename, "rb");
-
- if (!f) {
- // check for PostScript name
- Filename fn = psres->filename_value("FontOutline", filename);
- f = fn.open_read();
- }
-
- if (!f)
- errh->fatal("%s: %s", filename, strerror(errno));
-
- Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == EOF)
- errh->fatal("%s: empty file", filename);
- if (c == 128)
- reader = new Type1PFBReader(f);
- else
- reader = new Type1PFAReader(f);
-
- font = new Type1Font(*reader);
- if (!font->ok())
- errh->fatal("%s: not a Type 1 font", filename);
-
- delete reader;
-}
-
-
-/*****
- * MAIN PROGRAM
- **/
-
-struct fontinfo_t {
- const char *afm_name;
- int dict;
- const char *dict_name;
- bool as_string;
-};
-
-static const fontinfo_t fontinfo_strings[] = {
- { "Version", Type1Font::dFI, "version", true },
- { "Notice", Type1Font::dFI, "Notice", true },
- { "FullName", Type1Font::dFI, "FullName", true },
- { "FamilyName", Type1Font::dFI, "FamilyName", true },
- { "Weight", Type1Font::dFI, "Weight", true },
- { "ItalicAngle", Type1Font::dFI, "ItalicAngle", false },
- { "IsFixedPitch", Type1Font::dFI, "isFixedPitch", false },
- { "UnderlinePosition", Type1Font::dFI, "UnderlinePosition", false },
- { "UnderlineThickness", Type1Font::dFI, "UnderlineThickness", false }
-};
-
-static String
-strip_newlines(const String &str)
-{
- StringAccum sa;
- const char *end = str.end(), *last = str.begin();
- for (const char *s = str.begin(); s != end; ++s)
- if (*s == '\n' || *s == '\r' || *s == '\f' || *s == '\v') {
- sa.append(last, s);
- last = s + 1;
- }
- if (last == str.begin())
- return str;
- else {
- sa.append(last, end);
- return sa.take_string();
- }
-}
-
-static void
-write_char(FILE *outf, int c, PermString n, Type1Charstring *g, const Transform &font_transform, Type1Font *font)
-{
- double bb[4], wx;
- CharstringBounds::bounds(font_transform, CharstringContext(font, g), bb, wx);
- fprintf(outf, "C %d ; WX %d ; N %s ; B %d %d %d %d ;\n",
- c, (int) ceil(wx), n.c_str(),
- (int) floor(bb[0]), (int) floor(bb[1]),
- (int) ceil(bb[2]), (int) ceil(bb[3]));
-}
-
-static void
-write_afm(FILE *outf, Type1Font *font)
-{
- fprintf(outf, "StartFontMetrics 2.0\n\
-Comment Generated by t1rawafm\n");
-
- for (size_t i = 0; i < sizeof(fontinfo_strings) / sizeof(fontinfo_t); ++i)
- if (Type1Definition *t1d = font->dict(fontinfo_strings[i].dict,
- fontinfo_strings[i].dict_name)) {
- if (!fontinfo_strings[i].as_string)
- fprintf(outf, "%s %s\n", fontinfo_strings[i].afm_name, t1d->value().c_str());
- else {
- String s;
- if (t1d->value_string(s))
- fprintf(outf, "%s %s\n", fontinfo_strings[i].afm_name, strip_newlines(s).c_str());
- }
- }
-
- Transform font_transform;
- {
- double font_matrix[6];
- font->font_matrix(font_matrix);
- font_transform = Transform(font_matrix);
- font_transform.scale(1000);
- }
-
- double bb[4], wx;
- if (Type1Charstring *t1cs = font->glyph("H")) {
- CharstringBounds::bounds(font_transform, CharstringContext(font, t1cs), bb, wx);
- if (bb[3])
- fprintf(outf, "CapHeight %d\n", (int) ceil(bb[3]));
- }
- if (Type1Charstring *t1cs = font->glyph("x")) {
- CharstringBounds::bounds(font_transform, CharstringContext(font, t1cs), bb, wx);
- if (bb[3])
- fprintf(outf, "XHeight %d\n", (int) ceil(bb[3]));
- }
- if (Type1Charstring *t1cs = font->glyph("d")) {
- CharstringBounds::bounds(font_transform, CharstringContext(font, t1cs), bb, wx);
- if (bb[3])
- fprintf(outf, "Ascender %d\n", (int) ceil(bb[3]));
- }
- if (Type1Charstring *t1cs = font->glyph("p")) {
- CharstringBounds::bounds(font_transform, CharstringContext(font, t1cs), bb, wx);
- if (bb[1])
- fprintf(outf, "Descender %d\n", (int) floor(bb[1]));
- }
-
- Vector<double> vd;
- if (Type1Definition *t1d = font->p_dict("StdHW"))
- if (t1d->value_numvec(vd) && vd.size() > 0)
- fprintf(outf, "StdHW %d\n", (int) ceil(vd[0]));
- if (Type1Definition *t1d = font->p_dict("StdVW"))
- if (t1d->value_numvec(vd) && vd.size() > 0)
- fprintf(outf, "StdVW %d\n", (int) ceil(vd[0]));
-
- double fontbb[4] = { 1000000, 1000000, -1000000, -1000000 };
- for (int i = 0; i < font->nglyphs(); ++i) {
- CharstringBounds::bounds(font_transform, CharstringContext(font, font->glyph(i)), bb, wx);
- fontbb[0] = std::min(fontbb[0], bb[0]);
- fontbb[1] = std::min(fontbb[1], bb[1]);
- fontbb[2] = std::max(fontbb[2], bb[2]);
- fontbb[3] = std::max(fontbb[3], bb[3]);
- }
- fprintf(outf, "FontBBox %d %d %d %d\n",
- (int) floor(fontbb[0]), (int) floor(fontbb[1]),
- (int) ceil(fontbb[2]), (int) ceil(fontbb[3]));
-
- fprintf(outf, "FontName %s\n", font->font_name().c_str());
-
- int nglyphs = font->nglyphs();
- PermString dot_notdef(".notdef");
- if (font->glyph(dot_notdef))
- --nglyphs;
- fprintf(outf, "Characters %d\n", nglyphs);
-
- fprintf(outf, "StartCharMetrics %d\n", nglyphs);
- HashMap<PermString, int> done_yet(0);
- done_yet.insert(dot_notdef, 1);
- if (Type1Encoding *enc = font->type1_encoding()) {
- for (int i = 0; i < 256; ++i) {
- PermString n = enc->elt(i);
- if (!done_yet[n])
- if (Type1Charstring *g = font->glyph(n)) {
- write_char(outf, i, n, g, font_transform, font);
- done_yet.insert(n, true);
- }
- }
- }
- for (int i = 0; i < font->nglyphs(); ++i) {
- PermString n = font->glyph_name(i);
- if (!done_yet[n])
- write_char(outf, -1, n, font->glyph(i), font_transform, font);
- }
- fprintf(outf, "EndCharMetrics\n");
-
- fprintf(outf, "EndFontMetrics\n");
-}
-
-int
-main(int argc, char *argv[])
-{
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr));
- const char *output_file = 0;
- Vector<String> glyph_patterns;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case OUTPUT_OPT:
- output_file:
- if (output_file)
- errh->fatal("output file already specified");
- output_file = clp->vstr;
- break;
-
- case VERSION_OPT:
- printf("t1rawafm (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 2008-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- if (font)
- goto output_file;
- else
- do_file(clp->vstr, psres, errh);
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- if (!font)
- do_file(0, psres, errh);
-
- FILE *outf;
- if (!output_file || strcmp(output_file, "-") == 0)
- outf = stdout;
- else {
- outf = fopen(output_file, "w");
- if (!outf)
- errh->fatal("%s: %s", output_file, strerror(errno));
- }
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(outf), _O_BINARY);
-#endif
-
- write_afm(outf, font);
-
- exit(0);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.am
deleted file mode 100644
index b022669f5d3..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = t1reencode
-man_MANS = t1reencode.1
-
-t1reencode_SOURCES = t1reencode.cc \
- util.cc util.hh
-
-t1reencode_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = t1reencode.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.in
deleted file mode 100644
index c2c4aa6bb54..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/Makefile.in
+++ /dev/null
@@ -1,771 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = t1reencode$(EXEEXT)
-subdir = lcdf-typetools-src/t1reencode
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_t1reencode_OBJECTS = t1reencode.$(OBJEXT) util.$(OBJEXT)
-t1reencode_OBJECTS = $(am_t1reencode_OBJECTS)
-t1reencode_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/t1reencode.Po ./$(DEPDIR)/util.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(t1reencode_SOURCES)
-DIST_SOURCES = $(t1reencode_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = t1reencode.1
-t1reencode_SOURCES = t1reencode.cc \
- util.cc util.hh
-
-t1reencode_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = t1reencode.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/t1reencode/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/t1reencode/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-t1reencode$(EXEEXT): $(t1reencode_OBJECTS) $(t1reencode_DEPENDENCIES) $(EXTRA_t1reencode_DEPENDENCIES)
- @rm -f t1reencode$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(t1reencode_OBJECTS) $(t1reencode_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1reencode.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/t1reencode.Po
- -rm -f ./$(DEPDIR)/util.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/t1reencode.Po
- -rm -f ./$(DEPDIR)/util.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
deleted file mode 100644
index 8ded8a4e5b7..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.1
+++ /dev/null
@@ -1,205 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH T1REENCODE 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-t1reencode \- re-encode a PostScript Type 1 font
-.SH SYNOPSIS
-.B t1reencode
-\%\-e ENCODING
-\%[OPTIONS...]
-.I font
-.RI [ outputfile ]
-.SH DESCRIPTION
-.BR T1reencode
-changes a PostScript Type\~1 font's embedded encoding. The re-encoded font
-is written to the standard output (but see the
-.B \-\-output
-option). If no input font file is supplied,
-.B t1reencode
-reads a PFA or PFB font from the standard input.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BR \-\-encoding "=\fIfile\fR, " \-e " \fIfile"
-Read the encoding from
-.IR file ,
-which must contain an encoding in
-.M dvips 1
-format. Alternatively,
-.I file
-can be one of the following special names, in which case the corresponding
-standard encoding is used.
-.Sp
-.RS
-.TP 23
-.B Name
-.B Source
-.TP
-StandardEncoding
-Adobe
-.TP
-ISOLatin1Encoding
-Adobe/ISO (synonym: ISO_8859_1_Encoding)
-.TP
-ExpertEncoding
-Adobe
-.TP
-ExpertSubsetEncoding
-Adobe
-.TP
-SymbolEncoding
-Adobe
-.TP
-ISOLatin2Encoding
-ISO (synonym: ISO_8859_2_Encoding)
-.TP
-ISOLatin3Encoding
-ISO (synonym: ISO_8859_3_Encoding)
-.TP
-ISOLatin4Encoding
-ISO (synonym: ISO_8859_4_Encoding)
-.TP
-ISOCyrillicEncoding
-ISO (synonym: ISO_8859_5_Encoding)
-.TP
-ISOGreekEncoding
-ISO (synonym: ISO_8859_7_Encoding)
-.TP
-ISOLatin5Encoding
-ISO (synonym: ISO_8859_9_Encoding)
-.TP
-ISOLatin6Encoding
-ISO (synonym: ISO_8859_10_Encoding)
-.TP
-ISOThaiEncoding
-ISO (synonym: ISO_8859_11_Encoding)
-.TP
-ISOLatin7Encoding
-ISO (synonym: ISO_8859_13_Encoding)
-.TP
-ISOLatin8Encoding
-ISO (synonym: ISO_8859_14_Encoding)
-.TP
-ISOLatin9Encoding
-ISO (synonym: ISO_8859_15_Encoding)
-.TP
-KOI8REncoding
--
-.RE
-'
-.Sp
-.TP 5
-.BR \-\-encoding\-text "=\fItext\fR, " \-E " \fItext"
-Use the encoding in the
-.I text
-argument, which must be formatted as a
-.M dvips 1
-encoding. One of
-.B \-\-encoding
-and
-.B \-\-encoding\-text
-must be supplied.
-'
-.Sp
-.TP 5
-.BR \-\-name "=\fIname\fR, " \-n " \fIname"
-Set the output font's PostScript name to
-.IR name .
-The default is the input font name followed by the encoding's name.
-'
-.Sp
-.TP 5
-.BR \-\-full-name "=\fIname\fR, " \-N " \fIname"
-Set the output font's FullName to
-.IR name .
-The default is the input FullName followed by the encoding's name.
-'
-.Sp
-.TP 5
-.BR \-\-output "=\fIfile\fR, " \-o " \fIfile"
-Send output to
-.I file
-instead of standard output.
-'
-.Sp
-.TP 5
-.BR \-\-pfb ", " \-b
-Output a PFB font. This is the default.
-'
-.Sp
-.TP 5
-.BR \-\-pfa ", " \-a
-Output a PFA font.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "RETURN VALUES"
-.B T1reencode
-exits with value 0 if a re-encoded font was successfully generated, and 1
-otherwise.
-'
-.SH "NOTES"
-.LP
-.B T1reencode
-should be used only in special situations. It's generally much better to
-use PostScript commands to re-encode a font; for instance, executing the
-PostScript commands to generate two differently-encoded versions of a
-single font will take up much less memory than loading two
-.BR t1reencode d
-fonts.
-'
-.SH "EXAMPLES"
-.PP
-This command re-encodes Frutiger Roman in the ISO Latin\~1 encoding. The new
-font will have the PostScript name Frutiger-RomanISOLatin1Encoding.
-.Sp
-.nf
- \fBt1reencode\fR \fB\-e\fR ISOLatin1Encoding FrutiRom.pfb \e
- \fB\-o\fR FrutiRomISOL1.pfb
-.fi
-.Sp
-This series of commands, which use
-.M cfftot1 1
-and
-.M otftotfm 1
-as well as
-.B t1reencode
-itself, generate a version of Warnock Pro Regular with old-style figures in
-the slots for numbers (because of
-.BR otftotfm 's
-.BR \-f onum
-option). The new font will be called WarnockPro-RegularOsF.
-.Sp
-.nf
- \fBotftotfm\fR \fB\-f\fRonum WarnockPro-Regular.otf \e
- \fB\-\-output\-encoding\fR /tmp/osf.enc
- \fBcfftot1\fR WarnockPro-Regular.otf | \fBt1reencode\fR \fB\-e\fR /tmp/osf.enc \e
- \fB\-n\fR WarnockPro-RegularOsF \fB\-N\fR "Warnock Pro Regular OsF" \e
- \fB\-o\fR WarnoProRegOsF.pfb
-.fi
-'
-.SH "SEE ALSO"
-.LP
-.IR "Adobe Type 1 Font Format" ,
-.M dvips 1 ,
-.M cfftot1 1 ,
-.M otftotfm 1
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
deleted file mode 100644
index ff428b5ce5d..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/t1reencode.cc
+++ /dev/null
@@ -1,1109 +0,0 @@
-/* t1reencode.cc -- driver for reencoding Type 1 fonts
- *
- * Copyright (c) 2005-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1rw.hh>
-#include <efont/psres.hh>
-#include <lcdf/error.hh>
-#include <lcdf/clp.h>
-#include <ctype.h>
-#include <errno.h>
-#include "util.hh"
-#include <lcdf/md5.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define OUTPUT_OPT 303
-#define ENCODING_OPT 304
-#define ENCODING_TEXT_OPT 305
-#define PFA_OPT 306
-#define PFB_OPT 307
-#define FONTNAME_OPT 308
-#define FULLNAME_OPT 309
-
-const Clp_Option options[] = {
- { "help", 'h', HELP_OPT, 0, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "pfa", 'a', PFA_OPT, 0, 0 },
- { "pfb", 'b', PFB_OPT, 0, 0 },
- { "name", 'n', FONTNAME_OPT, Clp_ValString, 0 },
- { "fullname", 'N', FULLNAME_OPT, Clp_ValString, 0 },
- { "full-name", 'N', FULLNAME_OPT, Clp_ValString, 0 },
- { "encoding", 'e', ENCODING_OPT, Clp_ValString, 0 },
- { "encoding-text", 'E', ENCODING_TEXT_OPT, Clp_ValString, 0 },
- { "version", 0, VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-static PermString::Initializer initializer;
-static HashMap<PermString, int> glyph_order(-1);
-static String encoding_name;
-
-static const char ISOLatin1Encoding[] = "/ISOLatin1Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright\n\
- /parenleft /parenright /asterisk /plus /comma /minus /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /quoteleft /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /dotlessi /grave /acute /circumflex /tilde /.notdef /breve /dotaccent\n\
- /.notdef /.notdef /ring /.notdef /.notdef /hungarumlaut /ogonek /caron\n\
- /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section\n\
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron\n\
- /degree /plusminus /twosuperior /threesuperior /.notdef /mu /paragraph /periodcentered\n\
- /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown\n\
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla\n\
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis\n\
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /.notdef /Odieresis /multiply\n\
- /Oslash /.notdef /.notdef /.notdef /.notdef /Yacute /Thorn /germandbls\n\
- /agrave /aacute /acircumflex /atilde /.notdef /aring /ae /ccedilla\n\
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis\n\
- /eth /ntilde /.notdef /oacute /ocircumflex /otilde /odieresis /.notdef\n\
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn\n\
-] def\n";
-
-static const char ISOLatin2Encoding[] = "/ISOLatin2Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section\n\
- /dieresis /Scaron /Scedilla /Tcaron /Zacute /uni00AD /Zcaron /Zdotaccent\n\
- /degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron\n\
- /cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent\n\
- /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla\n\
- /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron\n\
- /Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply\n\
- /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /uni0162 /germandbls\n\
- /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla\n\
- /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron\n\
- /dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide\n\
- /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /uni0163 /dotaccent\n\
-] def\n";
-
-static const char ISOLatin3Encoding[] = "/ISOLatin3Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /Hbar /breve /sterling /currency /yen /Hcircumflex /section\n\
- /dieresis /Idotaccent /Scedilla /Gbreve /Jcircumflex /uni00AD /registered /Zdotaccent\n\
- /degree /hbar /twosuperior /threesuperior /acute /mu /hcircumflex /periodcentered\n\
- /cedilla /dotlessi /scedilla /gbreve /jcircumflex /onehalf /threequarters /zdotaccent\n\
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Cdotaccent /Ccircumflex /Ccedilla\n\
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis\n\
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Gdotaccent /Odieresis /multiply\n\
- /Gcircumflex /Ugrave /Uacute /Ucircumflex /Udieresis /Ubreve /Scircumflex /germandbls\n\
- /agrave /aacute /acircumflex /atilde /adieresis /cdotaccent /ccircumflex /ccedilla\n\
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis\n\
- /eth /ntilde /ograve /oacute /ocircumflex /gdotaccent /odieresis /divide\n\
- /gcircumflex /ugrave /uacute /ucircumflex /udieresis /ubreve /scircumflex /dotaccent\n\
-] def\n";
-
-static const char ISOLatin4Encoding[] = "/ISOLatin4Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /Aogonek /kgreenlandic /Rcommaaccent /currency /Itilde /Lcommaaccent /section\n\
- /dieresis /Scaron /Emacron /Gcommaaccent /Tbar /uni00AD /Zcaron /macron\n\
- /degree /aogonek /ogonek /rcommaaccent /acute /itilde /lcommaaccent /caron\n\
- /cedilla /scaron /emacron /gcommaaccent /tbar /Eng /zcaron /eng\n\
- /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek\n\
- /Ccaron /Eacute /Eogonek /Edieresis /Edotaccent /Iacute /Icircumflex /Imacron\n\
- /Dcroat /Ncommaaccent /Omacron /Kcommaaccent /Ocircumflex /Otilde /Odieresis /multiply\n\
- /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Utilde /Umacron /germandbls\n\
- /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek\n\
- /ccaron /eacute /eogonek /edieresis /edotaccent /iacute /icircumflex /imacron\n\
- /dcroat /ncommaaccent /omacron /kcommaaccent /ocircumflex /otilde /odieresis /divide\n\
- /oslash /uogonek /uacute /ucircumflex /udieresis /utilde /umacron /dotaccent\n\
-] def\n";
-
-static const char ISOCyrillicEncoding[] = "/ISOCyrillicEncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /afii10023 /afii10051 /afii10052 /afii10053 /afii10054 /afii10055 /afii10056\n\
- /afii10057 /afii10058 /afii10059 /afii10060 /afii10061 /uni00AD /afii10062 /afii10145\n\
- /afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025\n\
- /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033\n\
- /afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041\n\
- /afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049\n\
- /afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073\n\
- /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081\n\
- /afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089\n\
- /afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097\n\
- /afii61352 /afii10071 /afii10099 /afii10100 /afii10101 /afii10102 /afii10103 /afii10104\n\
- /afii10105 /afii10106 /afii10107 /afii10108 /afii10109 /section /afii10110 /afii10193\n\
-] def\n";
-
-static const char ISOGreekEncoding[] = "/ISOGreekEncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /afii64937 /afii57929 /sterling /currency /yen /brokenbar /section\n\
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /uni00AD /registered /afii00208\n\
- /degree /plusminus /twosuperior /threesuperior /tonos /dieresistonos /Alphatonos /periodcentered\n\
- /Epsilontonos /Etatonos /Iotatonos /guillemotright /Omicrontonos /onehalf /Upsilontonos /Omegatonos\n\
- /iotadieresistonos /Alpha /Beta /Gamma /uni0394 /Epsilon /Zeta /Eta\n\
- /Theta /Iota /Kappa /Lambda /Mu /Nu /Xi /Omicron\n\
- /Pi /Rho /Ograve /Sigma /Tau /Upsilon /Phi /Chi\n\
- /Psi /uni03A9 /Iotadieresis /Upsilondieresis /alphatonos /epsilontonos /etatonos /iotatonos\n\
- /upsilondieresistonos /alpha /beta /gamma /delta /epsilon /zeta /eta\n\
- /theta /iota /kappa /lambda /uni03BC /nu /xi /omicron\n\
- /pi /rho /sigma1 /sigma /tau /upsilon /phi /chi\n\
- /psi /omega /iotadieresis /upsilondieresis /omicrontonos /upsilontonos /omegatonos /ydieresis\n\
-] def\n";
-
-static const char ISOLatin5Encoding[] = "/ISOLatin5Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /exclamdown /cent /sterling /currency /yen /brokenbar /section\n\
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /uni00AD /registered /macron\n\
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered\n\
- /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown\n\
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla\n\
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis\n\
- /Gbreve /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply\n\
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Idotaccent /Scedilla /germandbls\n\
- /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla\n\
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis\n\
- /gbreve /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide\n\
- /oslash /ugrave /uacute /ucircumflex /udieresis /dotlessi /scedilla /ydieresis\n\
-] def\n";
-
-static const char ISOLatin6Encoding[] = "/ISOLatin6Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /Aogonek /Emacron /Gcommaaccent /Imacron /Itilde /Kcommaaccent /section\n\
- /Lcommaaccent /Dcroat /Scaron /Tbar /Zcaron /uni00AD /Umacron /Eng\n\
- /degree /aogonek /emacron /gcommaaccent /imacron /itilde /kcommaaccent /periodcentered\n\
- /lcommaaccent /dcroat /scaron /tbar /zcaron /macron /umacron /eng\n\
- /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek\n\
- /Ccaron /Eacute /Eogonek /Edieresis /Emacron /Iacute /Icircumflex /Idieresis\n\
- /Eth /Ncommaaccent /Omacron /Oacute /Ocircumflex /Otilde /Odieresis /Utilde\n\
- /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls\n\
- /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek\n\
- /ccaron /eacute /eogonek /edieresis /emacron /iacute /icircumflex /idieresis\n\
- /eth /ncommaaccent /omacron /oacute /ocircumflex /otilde /odieresis /utilde\n\
- /oslash /uogonek /uacute /ucircumflex /udieresis /yacute /thorn /kgreenlandic\n\
-] def\n";
-
-static const char ISOThaiEncoding[] = "/ISOThaiEncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /uni0E01 /uni0E02 /uni0E03 /uni0E04 /uni0E05 /uni0E06 /uni0E07\n\
- /uni0E08 /uni0E09 /uni0E0A /uni0E0B /uni0E0C /uni0E0D /uni0E0E /uni0E0F\n\
- /uni0E10 /uni0E11 /uni0E12 /uni0E13 /uni0E14 /uni0E15 /uni0E16 /uni0E17\n\
- /uni0E18 /uni0E19 /uni0E1A /uni0E1B /uni0E1C /uni0E1D /uni0E1E /uni0E1F\n\
- /uni0E20 /uni0E21 /uni0E22 /uni0E23 /uni0E24 /uni0E25 /uni0E26 /uni0E27\n\
- /uni0E28 /uni0E29 /uni0E2A /uni0E2B /uni0E2C /uni0E2D /uni0E2E /uni0E2F\n\
- /uni0E30 /uni0E31 /uni0E32 /uni0E33 /uni0E34 /uni0E35 /uni0E36 /uni0E37\n\
- /uni0E38 /uni0E39 /uni0E3A /.notdef /space /.notdef /.notdef /uni0E3F\n\
- /uni0E40 /uni0E41 /uni0E42 /uni0E43 /uni0E44 /uni0E45 /uni0E46 /uni0E47\n\
- /uni0E48 /uni0E49 /uni0E4A /uni0E4B /uni0E4C /uni0E4D /uni0E4E /uni0E4F\n\
- /uni0E50 /uni0E51 /uni0E52 /uni0E53 /uni0E54 /uni0E55 /uni0E56 /uni0E57\n\
- /uni0E58 /uni0E59 /uni0E5A /.notdef /.notdef /.notdef /.notdef /.notdef\n\
-] def\n";
-
-static const char ISOLatin7Encoding[] = "/ISOLatin7Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /quotedblright /cent /sterling /currency /quotedblbase /brokenbar /section\n\
- /Oslash /copyright /rcommaaccent /guillemotleft /logicalnot /uni00AD /registered /AE\n\
- /degree /plusminus /twosuperior /threesuperior /quotedblleft /mu /paragraph /periodcentered\n\
- /oslash /onesuperior /.notdef /guillemotright /onequarter /onehalf /threequarters /ae\n\
- /Aogonek /Iogonek /Amacron /Cacute /Adieresis /Aring /Eogonek /Emacron\n\
- /Ccaron /Eacute /Zacute /Edotaccent /Gcommaaccent /Kcommaaccent /Imacron /Lcommaaccent\n\
- /Scaron /Nacute /Ncommaaccent /Oacute /Omacron /Otilde /Odieresis /multiply\n\
- /Uogonek /Lslash /Uacute /Ucircumflex /Udieresis /Zdotaccent /Zcaron /germandbls\n\
- /aogonek /Iogonek /amacron /cacute /adieresis /aring /eogonek /emacron\n\
- /ccaron /eacute /zacute /edotaccent /gcommaaccent /kcommaaccent /imacron /lcommaaccent\n\
- /scaron /nacute /ncommaaccent /oacute /omacron /otilde /odieresis /divide\n\
- /uogonek /lslash /uacute /ucircumflex /udieresis /zdotaccent /zcaron /quoteright\n\
-] def\n";
-
-static const char ISOLatin8Encoding[] = "/ISOLatin8Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /uni1E02 /uni1E03 /sterling /Cdotaccent /cdotaccent /uni1E0A /section\n\
- /Wgrave /copyright /Wacute /uni1E0B /Ygrave /uni00AD /registered /Ydieresis\n\
- /uni1E1E /uni1E1F /Gdotaccent /gdotaccent /uni1E40 /uni1E41 /paragraph /uni1E56\n\
- /wgrave /uni1E57 /wacute /uni1E60 /ygrave /Wdieresis /wdieresis /uni1E61\n\
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla\n\
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis\n\
- /Wcircumflex /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /uni1E6A\n\
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Ycircumflex /germandbls\n\
- /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla\n\
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis\n\
- /wcircumflex /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /uni1E6B\n\
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /ycircumflex /ydieresis\n\
-] def\n";
-
-static const char ISOLatin9Encoding[] = "/ISOLatin9Encoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /uni00A0 /exclamdown /cent /sterling /Euro /yen /Scaron /section\n\
- /scaron /copyright /ordfeminine /guillemotleft /logicalnot /uni00AD /registered /macron\n\
- /degree /plusminus /twosuperior /threesuperior /Zcaron /mu /paragraph /periodcentered\n\
- /zcaron /onesuperior /ordmasculine /guillemotright /OE /oe /Ydieresis /questiondown\n\
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla\n\
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis\n\
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply\n\
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls\n\
- /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla\n\
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis\n\
- /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide\n\
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis\n\
-] def\n";
-
-static const char KOI8REncoding[] = "/KOI8REncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle\n\
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /at /A /B /C /D /E /F /G\n\
- /H /I /J /K /L /M /N /O\n\
- /P /Q /R /S /T /U /V /W\n\
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore\n\
- /grave /a /b /c /d /e /f /g\n\
- /h /i /j /k /l /m /n /o\n\
- /p /q /r /s /t /u /v /w\n\
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef\n\
- /SF100000 /SF110000 /SF010000 /SF030000 /SF020000 /SF040000 /SF080000 /SF090000\n\
- /SF060000 /SF070000 /SF050000 /upblock /dnblock /block /lfblock /rtblock\n\
- /ltshade /shade /dkshade /integraltp /filledbox /uni2219 /radical /approxequal\n\
- /lessequal /greaterequal /uni00A0 /integralbt /degree /twosuperior /periodcentered /divide\n\
- /SF430000 /SF240000 /SF510000 /afii10071 /SF520000 /SF390000 /SF220000 /SF210000\n\
- /SF250000 /SF500000 /SF490000 /SF380000 /SF280000 /SF270000 /SF260000 /SF360000\n\
- /SF370000 /SF420000 /SF190000 /afii10023 /SF200000 /SF230000 /SF470000 /SF480000\n\
- /SF410000 /SF450000 /SF460000 /SF400000 /SF540000 /SF530000 /SF440000 /copyright\n\
- /afii10096 /afii10065 /afii10066 /afii10088 /afii10069 /afii10070 /afii10086 /afii10068\n\
- /afii10087 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080\n\
- /afii10081 /afii10097 /afii10082 /afii10083 /afii10084 /afii10085 /afii10072 /afii10067\n\
- /afii10094 /afii10093 /afii10073 /afii10090 /afii10095 /afii10091 /afii10089 /afii10092\n\
- /afii10048 /afii10017 /afii10018 /afii10040 /afii10021 /afii10022 /afii10038 /afii10020\n\
- /afii10039 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032\n\
- /afii10033 /afii10049 /afii10034 /afii10035 /afii10036 /afii10037 /afii10024 /afii10019\n\
- /afii10046 /afii10045 /afii10025 /afii10042 /afii10047 /afii10043 /afii10041 /afii10044\n\
-] def\n";
-
-static const char ExpertEncoding[] = "/ExpertEncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclamsmall /Hungarumlautsmall /.notdef /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall\n\
- /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader /comma /hyphen /period /fraction\n\
- /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle\n\
- /eightoldstyle /nineoldstyle /colon /semicolon /commasuperior /threequartersemdash /periodsuperior /questionsmall\n\
- /.notdef /asuperior /bsuperior /centsuperior /dsuperior /esuperior /.notdef /.notdef\n\
- /.notdef /isuperior /.notdef /.notdef /lsuperior /msuperior /nsuperior /osuperior\n\
- /.notdef /.notdef /rsuperior /ssuperior /tsuperior /.notdef /ff /fi\n\
- /fl /ffi /ffl /parenleftinferior /.notdef /parenrightinferior /Circumflexsmall /hyphensuperior\n\
- /Gravesmall /Asmall /Bsmall /Csmall /Dsmall /Esmall /Fsmall /Gsmall\n\
- /Hsmall /Ismall /Jsmall /Ksmall /Lsmall /Msmall /Nsmall /Osmall\n\
- /Psmall /Qsmall /Rsmall /Ssmall /Tsmall /Usmall /Vsmall /Wsmall\n\
- /Xsmall /Ysmall /Zsmall /colonmonetary /onefitted /rupiah /Tildesmall /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /exclamdownsmall /centoldstyle /Lslashsmall /.notdef /.notdef /Scaronsmall /Zcaronsmall\n\
- /Dieresissmall /Brevesmall /Caronsmall /.notdef /Dotaccentsmall /.notdef /.notdef /Macronsmall\n\
- /.notdef /.notdef /figuredash /hypheninferior /.notdef /.notdef /Ogoneksmall /Ringsmall\n\
- /Cedillasmall /.notdef /.notdef /.notdef /onequarter /onehalf /threequarters /questiondownsmall\n\
- /oneeighth /threeeighths /fiveeighths /seveneighths /onethird /twothirds /.notdef /.notdef\n\
- /zerosuperior /onesuperior /twosuperior /threesuperior /foursuperior /fivesuperior /sixsuperior /sevensuperior\n\
- /eightsuperior /ninesuperior /zeroinferior /oneinferior /twoinferior /threeinferior /fourinferior /fiveinferior\n\
- /sixinferior /seveninferior /eightinferior /nineinferior /centinferior /dollarinferior /periodinferior /commainferior\n\
- /Agravesmall /Aacutesmall /Acircumflexsmall /Atildesmall /Adieresissmall /Aringsmall /AEsmall /Ccedillasmall\n\
- /Egravesmall /Eacutesmall /Ecircumflexsmall /Edieresissmall /Igravesmall /Iacutesmall /Icircumflexsmall /Idieresissmall\n\
- /Ethsmall /Ntildesmall /Ogravesmall /Oacutesmall /Ocircumflexsmall /Otildesmall /Odieresissmall /OEsmall\n\
- /Oslashsmall /Ugravesmall /Uacutesmall /Ucircumflexsmall /Udieresissmall /Yacutesmall /Thornsmall\n\
-] def\n";
-
-static const char ExpertSubsetEncoding[] = "/ExpertSubsetEncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /.notdef /.notdef /.notdef /dollaroldstyle /dollarsuperior /.notdef /.notdef\n\
- /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader /comma /hyphen /period /fraction\n\
- /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle\n\
- /eightoldstyle /nineoldstyle /colon /semicolon /commasuperior /threequartersemdash /periodsuperior /.notdef\n\
- /.notdef /asuperior /bsuperior /centsuperior /dsuperior /esuperior /.notdef /.notdef\n\
- /.notdef /isuperior /.notdef /.notdef /lsuperior /msuperior /nsuperior /osuperior\n\
- /.notdef /.notdef /rsuperior /ssuperior /tsuperior /.notdef /ff /fi\n\
- /fl /ffi /ffl /parenleftinferior /.notdef /parenrightinferior /.notdef /hyphensuperior\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /colonmonetary /onefitted /rupiah /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /centoldstyle /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /figuredash /hypheninferior /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /onequarter /onehalf /threequarters /.notdef\n\
- /oneeighth /threeeighths /fiveeighths /seveneighths /onethird /twothirds /.notdef /.notdef\n\
- /zerosuperior /onesuperior /twosuperior /threesuperior /foursuperior /fivesuperior /sixsuperior /sevensuperior\n\
- /eightsuperior /ninesuperior /zeroinferior /oneinferior /twoinferior /threeinferior /fourinferior /fiveinferior\n\
- /sixinferior /seveninferior /eightinferior /nineinferior /centinferior /dollarinferior /periodinferior /commainferior\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
-] def\n";
-
-static const char SymbolEncoding[] = "/SymbolEncoding [\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /space /exclam /universal /numbersign /existential /percent /ampersand /suchthat\n\
- /parenleft /parenright /asteriskmath /plus /comma /minus /period /slash\n\
- /zero /one /two /three /four /five /six /seven\n\
- /eight /nine /colon /semicolon /less /equal /greater /question\n\
- /congruent /Alpha /Beta /Chi /Delta /Epsilon /Phi /Gamma\n\
- /Eta /Iota /theta1 /Kappa /Lambda /Mu /Nu /Omicron\n\
- /Pi /Theta /Rho /Sigma /Tau /Upsilon /sigma1 /Omega\n\
- /Xi /Psi /Zeta /bracketleft /therefore /bracketright /perpendicular /underscore\n\
- /radicalex /alpha /beta /chi /delta /epsilon /phi /gamma\n\
- /eta /iota /phi1 /kappa /lambda /mu /nu /omicron\n\
- /pi /theta /rho /sigma /tau /upsilon /omega1 /omega\n\
- /xi /psi /zeta /braceleft /bar /braceright /similar /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n\
- /.notdef /Upsilon1 /minute /lessequal /fraction /infinity /florin /club\n\
- /diamond /heart /spade /arrowboth /arrowleft /arrowup /arrowright /arrowdown\n\
- /degree /plusminus /second /greaterequal /multiply /proportional /partialdiff /bullet\n\
- /divide /notequal /equivalence /approxequal /ellipsis /arrowvertex /arrowhorizex /carriagereturn\n\
- /aleph /Ifraktur /Rfraktur /weierstrass /circlemultiply /circleplus /emptyset /intersection\n\
- /union /propersuperset /reflexsuperset /notsubset /propersubset /reflexsubset /element /notelement\n\
- /angle /gradient /registerserif /copyrightserif /trademarkserif /product /radical /dotmath\n\
- /logicalnot /logicaland /logicalor /arrowdblboth /arrowdblleft /arrowdblup /arrowdblright /arrowdbldown\n\
- /lozenge /angleleft /registersans /copyrightsans /trademarksans /summation /parenlefttp /parenleftex\n\
- /parenleftbt /bracketlefttp /bracketleftex /bracketleftbt /bracelefttp /braceleftmid /braceleftbt /braceex\n\
- /.notdef /angleright /integral /integraltp /integralex /integralbt /parenrighttp /parenrightex\n\
- /parenrightbt /bracketrighttp /bracketrightex /bracketrightbt /bracerighttp /bracerightmid /bracerightbt\n\
-] def\n";
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... FONT", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<T1reencode%> changes a Type 1 font%,s embedded encoding and writes the\n\
-reencoded font to the standard output.\n\
-\n\
-Usage: %s [OPTION]... [FONTFILE [OUTPUTFILE]]\n\
-\n\
-Options:\n\
- -e, --encoding=FILE Read the encoding from FILE (in DVIPS format).\n\
- -E, --encoding-text=ENC The ENC argument is the encoding text.\n\
- -n, --name=NAME Set output font%,s PostScript name.\n\
- -N, --full-name=NAME Set output font%,s full name.\n\
- -a, --pfa Output PFA font.\n\
- -b, --pfb Output PFB font. This is the default.\n\
- -o, --output=FILE Write output to FILE instead of standard out.\n\
- -h, --help Print this message and exit.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-// FONT MANIPULATION
-
-static void
-kill_def(Type1Font* font, Type1Definition *t1d, int whichd)
-{
- if (!t1d || font->dict(whichd, t1d->name()) != t1d)
- return;
-
- int icount = font->nitems();
- for (int i = font->first_dict_item(whichd); i < icount; i++)
- if (font->item(i) == t1d) {
- StringAccum sa;
- sa << '%';
- t1d->gen(sa);
- PermString name = t1d->name();
- Type1CopyItem *t1ci = new Type1CopyItem(sa.take_string());
- font->set_item(i, t1ci);
- font->set_dict(whichd, name, 0);
- return;
- }
-
- assert(0);
-}
-
-static void
-adjust_font_definitions(Type1Font* font, Type1Encoding* encoding, String new_name, String new_full_name)
-{
- // prepare an MD5 digest over the encoding
- StringAccum etext;
- for (int i = 0; i < 256; i++)
- etext << encoding->elt(i) << ' ';
- MD5_CONTEXT md5;
- md5_init(&md5);
- md5_update(&md5, (const unsigned char*) etext.data(), etext.length() - 1);
-
- // save UniqueID, then kill its definition
- int uniqueid;
- Type1Definition *t1d = font->dict("UniqueID");
- bool have_uniqueid = (t1d && t1d->value_int(uniqueid));
- kill_def(font, t1d, Type1Font::dFont);
- kill_def(font, font->p_dict("UniqueID"), Type1Font::dPrivate);
-
- // prepare XUID
- t1d = font->dict("XUID");
- Vector<double> xuid;
- if (!t1d || !t1d->value_numvec(xuid)) {
- if (have_uniqueid) {
- t1d = font->ensure(Type1Font::dFont, "XUID");
- xuid.clear();
- xuid.push_back(1);
- xuid.push_back(uniqueid);
- } else if (t1d) {
- kill_def(font, t1d, Type1Font::dFont);
- t1d = 0;
- }
- }
- if (t1d) {
- uint8_t digest[MD5_DIGEST_SIZE + 2]; // leave 2 bytes of space
- md5_final((unsigned char *) digest, &md5);
- digest[MD5_DIGEST_SIZE] = digest[MD5_DIGEST_SIZE + 1] = 0;
-
- // append digest to XUID; each element must be less than 2^24
- for (int i = 0; i < MD5_DIGEST_SIZE; i += 3)
- xuid.push_back((digest[i] << 16) | (digest[i+1] << 8) | digest[i+2]);
- t1d->set_numvec(xuid);
- }
-
- // prepare new font name
- if (!encoding_name) {
- char text_digest[MD5_TEXT_DIGEST_SIZE + 1];
- md5_final_text(text_digest, &md5);
- encoding_name = "AutoEnc_" + String(text_digest);
- }
-
- t1d = font->dict("FontName");
- PermString name;
- if (t1d && t1d->value_name(name)) {
- if (!new_name)
- new_name = name + encoding_name;
- t1d->set_name(new_name.c_str());
- font->uncache_defs(); // remove cached font name
- }
-
- // add a FullName too
- String full_name;
- t1d = font->fi_dict("FullName");
- if (t1d && t1d->value_string(full_name)) {
- if (!new_full_name)
- new_full_name = full_name + "_" + encoding_name + " Enc";
- t1d->set_string(new_full_name.c_str());
- }
-
- // add header comments
- {
- StringAccum sa;
-#if HAVE_CTIME
- time_t cur_time = time(0);
- char *time_str = ctime(&cur_time);
- sa << "%% Created by t1reencode-" VERSION " on " << time_str;
- sa.pop_back();
-#else
- sa << "%% Created by t1reencode-" VERSION ".";
-#endif
-
- font->add_header_comment(sa.take_string().c_str());
- font->add_header_comment("%% T1reencode is free software. See <http://www.lcdf.org/type/>.");
- }
-}
-
-
-// ENCODING READER
-
-static String
-tokenize(const String &s, int &pos_in, int &line)
-{
- const char *data = s.data();
- int len = s.length();
- int pos = pos_in;
- while (1) {
- // skip whitespace
- while (pos < len && isspace((unsigned char) data[pos])) {
- if (data[pos] == '\n')
- line++;
- else if (data[pos] == '\r' && (pos + 1 == len || data[pos+1] != '\n'))
- line++;
- pos++;
- }
-
- if (pos >= len) {
- pos_in = len;
- return String();
- } else if (data[pos] == '%') {
- for (pos++; pos < len && data[pos] != '\n' && data[pos] != '\r'; pos++)
- /* nada */;
- } else if (data[pos] == '[' || data[pos] == ']' || data[pos] == '{' || data[pos] == '}') {
- pos_in = pos + 1;
- return s.substring(pos, 1);
- } else if (data[pos] == '(') {
- int first = pos, nest = 0;
- for (pos++; pos < len && (data[pos] != ')' || nest); pos++)
- switch (data[pos]) {
- case '(': nest++; break;
- case ')': nest--; break;
- case '\\':
- if (pos + 1 < len)
- pos++;
- break;
- case '\n': line++; break;
- case '\r':
- if (pos + 1 == len || data[pos+1] != '\n')
- line++;
- break;
- }
- pos_in = (pos < len ? pos + 1 : len);
- return s.substring(first, pos_in - first);
- } else {
- int first = pos;
- while (pos < len && data[pos] == '/')
- pos++;
- while (pos < len && data[pos] != '/' && !isspace((unsigned char) data[pos]) && data[pos] != '[' && data[pos] != ']' && data[pos] != '%' && data[pos] != '(' && data[pos] != '{' && data[pos] != '}')
- pos++;
- pos_in = pos;
- return s.substring(first, pos - first);
- }
- }
-}
-
-static String
-landmark(const String &filename, int line)
-{
- return filename + String::make_stable(":", 1) + String(line);
-}
-
-Type1Encoding *
-parse_encoding(String s, String filename, ErrorHandler *errh)
-{
- filename = printable_filename(filename);
- int pos = 0, line = 1;
-
- // parse text
- String token = tokenize(s, pos, line);
- if (!token || token[0] != '/') {
- errh->lerror(landmark(filename, line), "parse error, expected name");
- return 0;
- }
- encoding_name = token.substring(1);
-
- if (tokenize(s, pos, line) != "[") {
- errh->lerror(landmark(filename, line), "parse error, expected [");
- return 0;
- }
-
- Type1Encoding *t1e = new Type1Encoding;
- int e = 0;
- while ((token = tokenize(s, pos, line)) && token[0] == '/') {
- if (e > 255) {
- errh->lwarning(landmark(filename, line), "more than 256 characters in encoding");
- break;
- }
- t1e->put(e, token.substring(1));
- e++;
- }
- return t1e;
-}
-
-
-
-// MAIN
-
-/*****
- * MAIN PROGRAM
- **/
-
-static Type1Font *
-do_file(const char *filename, PsresDatabase *psres, ErrorHandler *errh)
-{
- FILE *f;
- if (!filename || strcmp(filename, "-") == 0) {
- f = stdin;
- filename = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else
- f = fopen(filename, "rb");
-
- if (!f) {
- // check for PostScript name
- Filename fn = psres->filename_value("FontOutline", filename);
- f = fn.open_read();
- }
-
- if (!f)
- errh->fatal("%s: %s", filename, strerror(errno));
-
- Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == EOF)
- errh->fatal("%s: empty file", filename);
- if (c == 128)
- reader = new Type1PFBReader(f);
- else
- reader = new Type1PFAReader(f);
-
- Type1Font *font = new Type1Font(*reader);
- if (!font->ok())
- errh->fatal("%s: no glyphs in font", filename);
-
- delete reader;
- return font;
-}
-
-int
-main(int argc, char *argv[])
-{
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr));
- const char *input_file = 0;
- const char *output_file = 0;
- const char *encoding_file = 0;
- const char *encoding_text = 0;
- const char *new_font_name = 0;
- const char *new_full_name = 0;
- bool binary = true;
- Vector<String> glyph_patterns;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case ENCODING_OPT:
- if (encoding_file || encoding_text)
- errh->fatal("encoding already specified");
- encoding_file = clp->vstr;
- break;
-
- case ENCODING_TEXT_OPT:
- if (encoding_file || encoding_text)
- errh->fatal("encoding already specified");
- encoding_text = clp->vstr;
- break;
-
- case FONTNAME_OPT:
- if (new_font_name)
- errh->fatal("font name already specified");
- new_font_name = clp->vstr;
- break;
-
- case FULLNAME_OPT:
- if (new_full_name)
- errh->fatal("full name already specified");
- new_full_name = clp->vstr;
- break;
-
- case OUTPUT_OPT:
- if (output_file)
- errh->fatal("output file already specified");
- output_file = clp->vstr;
- break;
-
- case PFA_OPT:
- binary = false;
- break;
-
- case PFB_OPT:
- binary = true;
- break;
-
- case VERSION_OPT:
- printf("t1reencode (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 1999-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- if (input_file && output_file)
- errh->fatal("too many arguments");
- else if (input_file)
- output_file = clp->vstr;
- else
- input_file = clp->vstr;
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- // read the font
- Type1Font *font = do_file(input_file, psres, errh);
- if (!input_file || strcmp(input_file, "-") == 0)
- input_file = "<stdin>";
-
- // read the encoding
- if (!encoding_file && !encoding_text)
- errh->fatal("missing %<-e ENCODING%> argument");
- Type1Encoding *t1e = 0;
- if (strcmp(encoding_file, "StandardEncoding") == 0) {
- t1e = Type1Encoding::standard_encoding();
- encoding_name = encoding_file;
- } else {
- String text;
- if (strcmp(encoding_file, "ISOLatin1Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_1_Encoding") == 0)
- text = String::make_stable(ISOLatin1Encoding);
- else if (strcmp(encoding_file, "ISOLatin2Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_2_Encoding") == 0)
- text = String::make_stable(ISOLatin2Encoding);
- else if (strcmp(encoding_file, "ISOLatin3Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_3_Encoding") == 0)
- text = String::make_stable(ISOLatin3Encoding);
- else if (strcmp(encoding_file, "ISOLatin4Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_4_Encoding") == 0)
- text = String::make_stable(ISOLatin4Encoding);
- else if (strcmp(encoding_file, "ISOCyrillicEncoding") == 0
- || strcmp(encoding_file, "ISO_8859_5_Encoding") == 0)
- text = String::make_stable(ISOCyrillicEncoding);
- else if (strcmp(encoding_file, "ISOGreekEncoding") == 0
- || strcmp(encoding_file, "ISO_8859_7_Encoding") == 0)
- text = String::make_stable(ISOGreekEncoding);
- else if (strcmp(encoding_file, "ISO_8859_9_Encoding") == 0
- || strcmp(encoding_file, "ISOLatin5Encoding") == 0)
- text = String::make_stable(ISOLatin5Encoding);
- else if (strcmp(encoding_file, "ISOLatin6Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_10_Encoding") == 0)
- text = String::make_stable(ISOLatin6Encoding);
- else if (strcmp(encoding_file, "ISOThaiEncoding") == 0
- || strcmp(encoding_file, "ISO_8859_11_Encoding") == 0)
- text = String::make_stable(ISOThaiEncoding);
- else if (strcmp(encoding_file, "ISOLatin7Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_13_Encoding") == 0)
- text = String::make_stable(ISOLatin7Encoding);
- else if (strcmp(encoding_file, "ISOLatin8Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_14_Encoding") == 0)
- text = String::make_stable(ISOLatin8Encoding);
- else if (strcmp(encoding_file, "ISOLatin9Encoding") == 0
- || strcmp(encoding_file, "ISO_8859_15_Encoding") == 0)
- text = String::make_stable(ISOLatin9Encoding);
- else if (strcmp(encoding_file, "KOI8REncoding") == 0)
- text = String::make_stable(KOI8REncoding);
- else if (strcmp(encoding_file, "ExpertEncoding") == 0)
- text = String::make_stable(ExpertEncoding);
- else if (strcmp(encoding_file, "ExpertSubsetEncoding") == 0)
- text = String::make_stable(ExpertSubsetEncoding);
- else if (strcmp(encoding_file, "SymbolEncoding") == 0)
- text = String::make_stable(SymbolEncoding);
- else if (encoding_text)
- text = String::make_stable(encoding_text), encoding_file = "<argument>";
- else if ((text = read_file(encoding_file, errh)), errh->nerrors() > 0)
- exit(1);
- if (!(t1e = parse_encoding(text, encoding_file, errh)))
- exit(1);
- }
-
- // set the encoding
- font->add_type1_encoding(t1e);
-
- // adjust definitions
- adjust_font_definitions(font, t1e, new_font_name, new_full_name);
-
- // write it to output
- FILE *outf;
- if (!output_file || strcmp(output_file, "-") == 0)
- outf = stdout;
- else {
- outf = fopen(output_file, "w");
- if (!outf)
- errh->fatal("%s: %s", output_file, strerror(errno));
- }
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(outf), _O_BINARY);
-#endif
- if (binary) {
- Type1PFBWriter w(outf);
- font->write(w);
- } else {
- Type1PFAWriter w(outf);
- font->write(w);
- }
-
- return (errh->nerrors() == 0 ? 0 : 1);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
deleted file mode 100644
index 2e3495cf963..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.cc
+++ /dev/null
@@ -1,78 +0,0 @@
-/* util.{cc,hh} -- various bits
- *
- * Copyright (c) 2003-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "util.hh"
-#include <lcdf/error.hh>
-#include <lcdf/straccum.hh>
-#include <lcdf/vector.hh>
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-String
-read_file(String filename, ErrorHandler *errh, bool warning)
-{
- FILE *f;
- if (!filename || filename == "-") {
- filename = "<stdin>";
- f = stdin;
-#if defined(_MSDOS) || defined(_WIN32)
- // Set the file mode to binary
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else if (!(f = fopen(filename.c_str(), "rb"))) {
- errh->xmessage((warning ? errh->e_warning : errh->e_error) + ErrorHandler::make_landmark_anno(filename), strerror(errno));
- return String();
- }
-
- StringAccum sa;
- int amt;
- do {
- if (char *x = sa.reserve(8192)) {
- amt = fread(x, 1, 8192, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f) || ferror(f))
- errh->xmessage((warning ? errh->e_warning : errh->e_error) + ErrorHandler::make_landmark_anno(filename), strerror(errno));
- if (f != stdin)
- fclose(f);
- return sa.take_string();
-}
-
-String
-printable_filename(const String &s)
-{
- if (!s || s == "-")
- return String::make_stable("<stdin>");
- else
- return s;
-}
-
-String
-pathname_filename(const String &path)
-{
- int slash = path.find_right('/');
- if (slash >= 0 && slash != path.length() - 1)
- return path.substring(slash + 1);
- else
- return path;
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.hh b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.hh
deleted file mode 100644
index 34b9c9c5a22..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1reencode/util.hh
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef T1REENCODE_UTIL_HH
-#define T1REENCODE_UTIL_HH
-#include <lcdf/string.hh>
-class ErrorHandler;
-
-String read_file(String filename, ErrorHandler *, bool warn = false);
-String printable_filename(const String &);
-String pathname_filename(const String &);
-
-#endif
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.am
deleted file mode 100644
index 3e530d8f469..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = t1testpage
-man_MANS = t1testpage.1
-
-t1testpage_SOURCES = t1testpage.cc
-
-t1testpage_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = t1testpage.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.in
deleted file mode 100644
index 9241f7b06d6..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/Makefile.in
+++ /dev/null
@@ -1,748 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = t1testpage$(EXEEXT)
-subdir = lcdf-typetools-src/t1testpage
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_t1testpage_OBJECTS = t1testpage.$(OBJEXT)
-t1testpage_OBJECTS = $(am_t1testpage_OBJECTS)
-t1testpage_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/t1testpage.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(t1testpage_SOURCES)
-DIST_SOURCES = $(t1testpage_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = t1testpage.1
-t1testpage_SOURCES = t1testpage.cc
-t1testpage_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = t1testpage.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/t1testpage/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/t1testpage/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-t1testpage$(EXEEXT): $(t1testpage_OBJECTS) $(t1testpage_DEPENDENCIES) $(EXTRA_t1testpage_DEPENDENCIES)
- @rm -f t1testpage$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(t1testpage_OBJECTS) $(t1testpage_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t1testpage.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/t1testpage.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/t1testpage.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
deleted file mode 100644
index d46e48538eb..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.1
+++ /dev/null
@@ -1,66 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH T1TESTPAGE 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-t1testpage \- create a PostScript proof for a Type 1 font
-.SH SYNOPSIS
-.B t1testpage
-\%[\fIfont...\fR]
-.SH DESCRIPTION
-.BR T1testpage
-creates a PostScript proof document for the specified Type 1 font file and
-writes it to the standard output. The proof shows every glyph in the
-font, including its glyph name and encoding. The
-.I font
-argument should be the name of a PFA or PFB font file. If more than one
-.I font
-is given, the output proof contains all the fonts in order. If
-.I font
-is omitted,
-t1testpage will read a font file from the standard input.
-.PP
-T1testpage is preliminary software.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BR \-g " \fIglyphs\fR, " \-\-glyph= \fIglyphs
-Print only glyphs matching
-.IR glyphs .
-The argument is a glyph pattern, using shell-like matching rules; thus,
-.BR "\-g " 'A*'
-will match the glyphs 'A', 'Atilde', and 'Ampersand', among others. You
-can give this option multiple times, or supply multiple space-separated
-patterns in a single option.
-'
-.Sp
-.TP 5
-.BR \-s ", " \-\-smoke
-Print smoke proofs, one glyph per page. This option is preliminary.
-'
-.Sp
-.TP 5
-.BR \-o " \fIfile\fR, " \-\-output= \fIfile
-Write the output proof to
-.I file
-instead of the standard output.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-v ", " \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
deleted file mode 100644
index 7931b45087b..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/t1testpage/t1testpage.cc
+++ /dev/null
@@ -1,748 +0,0 @@
-/* t1testpage.cc -- driver for generating Type 1 fonts' test pages
- *
- * Copyright (c) 1999-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/psres.hh>
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <efont/t1mm.hh>
-#include <efont/t1interp.hh>
-#include <efont/t1bounds.hh>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <lcdf/globmatch.hh>
-#include <lcdf/transform.hh>
-#include <algorithm>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define OUTPUT_OPT 303
-#define GLYPH_OPT 304
-#define SMOKE_OPT 305
-
-const Clp_Option options[] = {
- { "help", 'h', HELP_OPT, 0, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "version", 0, VERSION_OPT, 0, 0 },
- { "glyph", 'g', GLYPH_OPT, Clp_ValString, 0 },
- { "smoke", 's', SMOKE_OPT, 0, Clp_Negate }
-};
-
-
-static const char *program_name;
-static PermString::Initializer initializer;
-static HashMap<PermString, int> glyph_order(-1);
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTION]... FONT", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<T1testpage%> creates a PostScript proof document for the specified Type 1\n\
-font file and writes it to the standard output. The proof shows every\n\
-glyph in the font, including its glyph name and encoding.\n\
-\n\
-Usage: %s [OPTION]... [FONT...]\n\
-\n\
-Each FONT is the name of a PFA or PFB font file. If omitted, t1testpage will\n\
-read a font file from the standard input.\n\
-\n\
-Options:\n\
- -g, --glyph=GLYPH Limit output to one or more GLYPHs.\n\
- -s, --smoke Print smoke proofs, one character per page.\n\
- -o, --output=FILE Write output to FILE instead of standard out.\n\
- -h, --help Print this message and exit.\n\
- --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-// OUTPUTTER
-
-namespace {
-
-class Testpager { public:
- Testpager(FILE *f)
- : _f(f), _pageno(1) {
- }
- virtual ~Testpager() {
- fclose(_f);
- }
- virtual void prolog(const Vector<Type1Font *> &fonts) = 0;
- void newpage() {
- fprintf(_f, "%%%%Page: %d %d\n", _pageno, _pageno);
- ++_pageno;
- }
- virtual void font(Type1Font *font, const Vector<PermString>& glyph_names) = 0;
- virtual void epilog() {
- fprintf(_f, "%%%%EOF\n");
- }
- protected:
- FILE *_f;
- int _pageno;
-};
-
-class GridTestpager : public Testpager { public:
- GridTestpager(FILE *f)
- : Testpager(f) {
- }
- void prolog(const Vector<Type1Font *> &fonts);
- void font(Type1Font *font, const Vector<PermString>& glyph_names);
-};
-
-class SmokeTestpager : public Testpager { public:
- SmokeTestpager(FILE *f)
- : Testpager(f) {
- }
- void prolog(const Vector<Type1Font *> &fonts);
- void font(Type1Font *font, const Vector<PermString>& glyph_names);
-};
-
-}
-
-
-// MAIN
-
-static Type1Font *
-do_file(const char *filename, PsresDatabase *psres, ErrorHandler *errh)
-{
- FILE *f;
- if (!filename || strcmp(filename, "-") == 0) {
- f = stdin;
- filename = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else
- f = fopen(filename, "rb");
-
- if (!f) {
- // check for PostScript name
- Filename fn = psres->filename_value("FontOutline", filename);
- f = fn.open_read();
- }
-
- if (!f)
- errh->fatal("%s: %s", filename, strerror(errno));
-
- Type1Reader *reader;
- int c = getc(f);
- ungetc(c, f);
- if (c == EOF)
- errh->fatal("%s: empty file", filename);
- if (c == 128)
- reader = new Type1PFBReader(f);
- else
- reader = new Type1PFAReader(f);
-
- Type1Font *font = new Type1Font(*reader);
-
- delete reader;
- return font;
-}
-
-void
-GridTestpager::prolog(const Vector<Type1Font *> &fonts)
-{
- fprintf(_f, "%%!PS-Adobe-3.0\n\
-%%%%LanguageLevel: 2\n\
-%%%%DocumentMedia: Plain 612 792 white ( )\n\
-%%%%BeginProlog\n");
- fprintf(_f, "/magicstr 1 string def\n\
-/magicbox { %% row col char name encoding magicbox -\n\
- 5 3 roll 54 mul 36 add exch 54 mul neg 682 add moveto currentpoint\n\
- .8 setgray 54 0 rlineto 0 54 rlineto -54 0 rlineto closepath stroke\n\
- 0 setgray moveto\n\
- gsave /Helvetica 7 selectfont 3 1.5 rmoveto show grestore\n\
- gsave /Helvetica 7 selectfont 3 45.5 rmoveto show grestore\n\
- magicstr 0 3 -1 roll put\n\
- magicstr stringwidth pop 54 sub -2 div 16 rmoveto magicstr show\n\
-} bind def\n");
- Type1PFAWriter w(_f);
- for (Vector<Type1Font *>::const_iterator it = fonts.begin();
- it != fonts.end(); ++it)
- (*it)->write(w);
- fprintf(_f, "%%%%EndProlog\n");
-}
-
-void
-GridTestpager::font(Type1Font* font, const Vector<PermString>& glyph_names)
-{
- HashMap<PermString, int> encodings(-1);
- if (Type1Encoding *encoding = font->type1_encoding())
- for (int i = 255; i >= 0; i--)
- if (encoding->elt(i))
- encodings.insert(encoding->elt(i), i);
-
- int per_row = 10;
- int nrows = 13;
- int per_page = nrows * per_row;
-
- int page = 0, gi = -1;
- for (Vector<PermString>::const_iterator it = glyph_names.begin();
- it != glyph_names.end(); ++it) {
- // allow font that doesn't have all glyphs
- if (!font->glyph(*it))
- continue;
-
- ++gi;
- if (gi % per_page == 0) {
- if (page)
- fprintf(_f, "showpage restore\n");
- ++page;
- newpage();
- fprintf(_f, "save\n");
- // make new font
- fprintf(_f, "/%s findfont dup length dict begin\n\
- { 1 index /FID ne {def} {pop pop} ifelse } forall\n /Encoding [",
- font->font_name().c_str());
- int gx = 0;
- for (Vector<PermString>::const_iterator xit = it;
- xit != glyph_names.end() && gx < per_page; ++xit)
- if (font->glyph(*xit)) {
- ++gx;
- fprintf(_f, " /%s", xit->c_str());
- if (gx % 10 == 9)
- fprintf(_f, "\n");
- }
- fprintf(_f, " ] def\n currentdict end /X exch definefont pop\n\
-/Helvetica-Bold 16 selectfont 36 742 moveto (%s) show\n\
-/X 24 selectfont\n", font->font_name().c_str());
- }
-
- int row = (gi % per_page) / per_row;
- int col = gi % per_row;
-
- fprintf(_f, "%d %d %d (%s)", row, col, gi % per_page, it->c_str());
- if (encodings[*it] >= 0) {
- int e = encodings[*it];
- if (e == '\\')
- fprintf(_f, " ('\\\\\\\\')");
- else if (e == '\'')
- fprintf(_f, " ('\\\\'')");
- else if (e == '(' || e == ')')
- fprintf(_f, " ('\\%c')", e);
- else if (e >= 32 && e < 127)
- fprintf(_f, " ('%c')", e);
- else
- fprintf(_f, " ('\\\\%03o')", e);
- } else
- fprintf(_f, " ()");
- fprintf(_f, " magicbox\n");
- }
-
- if (page)
- fprintf(_f, "showpage restore\n");
-}
-
-
-
-/*****
- * SMOKE PROOFS
- **/
-
-inline StringAccum&
-operator<<(StringAccum& sa, const Point& p)
-{
- return sa << p.x << ' ' << p.y;
-}
-
-class Smoker : public CharstringInterp { public:
-
- Smoker(const Transform&);
-
- void act_line(int, const Point &, const Point &);
- void act_curve(int, const Point &, const Point &, const Point &, const Point &);
- void act_closepath(int);
-
- String char_postscript() { return _char_sa.take_string(); }
- String points_postscript() { return _points_sa.take_string(); }
-
- bool run(const CharstringContext&);
-
- private:
-
- Transform _xform;
- StringAccum _char_sa;
- StringAccum _points_sa;
- Point _char_cp;
-
- inline void maybe_move(const Point&);
-
-};
-
-Smoker::Smoker(const Transform& xform)
- : _xform(xform)
-{
-}
-
-void
-Smoker::maybe_move(const Point& p)
-{
- if (_char_cp.x < -100000 || _char_cp != p) {
- _char_sa << (p * _xform) << " moveto\n";
- _points_sa << (p * _xform) << " pA\n";
- }
-}
-
-void
-Smoker::act_line(int cmd, const Point& p0, const Point& p1)
-{
- Point xp1 = p1 * _xform;
-
- maybe_move(p0);
- _char_sa << xp1 << " lineto\n";
- if (cmd == Charstring::cRlineto
- || cmd == Charstring::cHlineto
- || cmd == Charstring::cVlineto)
- _points_sa << xp1 << " pA\n";
- _char_cp = p1;
-}
-
-void
-Smoker::act_curve(int, const Point &p0, const Point &p1, const Point &p2, const Point &p3)
-{
- Point xp1 = p1 * _xform;
- Point xp2 = p2 * _xform;
- Point xp3 = p3 * _xform;
-
- maybe_move(p0);
- _char_sa << xp1 << ' ' << xp2 << ' ' << xp3 << " curveto\n";
- _points_sa << xp1 << " pC " << xp2 << " pC " << xp3 << " pA\n";
- _char_cp = p3;
-}
-
-void
-Smoker::act_closepath(int)
-{
- _char_sa << "closepath\n";
-}
-
-bool
-Smoker::run(const CharstringContext& g)
-{
- _char_sa.clear();
- _points_sa.clear();
- _char_cp.x = -200000;
- return CharstringInterp::interpret(g);
-}
-
-#define LEFT_BOUND 72.
-#define RIGHT_BOUND (7.5 * 72)
-#define BOTTOM_BOUND 72.
-#define TOP_BOUND (7.5 * 72)
-
-static Transform
-bounds2xform(CharstringBounds& bounds, bool expand = false)
-{
- if (expand) {
- Point vec = bounds.bb_top_right() - bounds.bb_bottom_left();
- bounds.act_line(0, bounds.bb_bottom_left() - 0.1 * vec, bounds.bb_top_right() + 0.1 * vec);
- }
- bounds.act_line(0, Point(0, 0), bounds.width());
- bounds.act_line(0, Point(0, 0), Point(1, 1));
-
- double true_width = std::max(bounds.bb_right(), 0.) - std::min(bounds.bb_left(), 0.);
- double true_height = std::max(bounds.bb_top(), 0.) - std::min(bounds.bb_bottom(), 0.);
- double x_scale = (RIGHT_BOUND - LEFT_BOUND) / true_width;
- double y_scale = (TOP_BOUND - BOTTOM_BOUND) / true_height;
- double scale = std::min(x_scale, y_scale);
- double origin_x = LEFT_BOUND;
- if (bounds.bb_left() < 0)
- origin_x += -bounds.bb_left() * scale;
- double origin_y = BOTTOM_BOUND;
- if (bounds.bb_bottom() < 0)
- origin_y += -bounds.bb_bottom() * scale;
- return Transform(scale, 0, 0, scale, origin_x, origin_y);
-}
-
-static const char* const bounds_glyphs[] = {
- "A", "Eacute", "Ecircumflex", "l", "g", "p", "q", "j", "J", "emdash", 0
-};
-
-void
-SmokeTestpager::prolog(const Vector<Type1Font *> &)
-{
- fprintf(_f, "%%!PS-Adobe-3.0\n%%%%LanguageLevel: 2\n%%%%BeginProlog\n");
- fprintf(_f, "/pA { %% x y pA -\n\
- moveto\n\
- -2 -2 rmoveto 4 0 rlineto 0 4 rlineto -4 0 rlineto closepath\n\
- gsave 1 setgray stroke grestore 0 setgray fill\n\
-} bind def\n\
-/pC { %% x y pC -\n\
- 2 copy moveto 2 0 rmoveto 2 0 360 arc\n\
- gsave 1 setgray stroke grestore 0.1 setgray fill\n\
-} bind def\n\
-");
- fprintf(_f, "%%%%EndProlog\n");
-}
-
-void
-SmokeTestpager::font(Type1Font* font, const Vector<PermString>& glyph_names)
-{
- HashMap<PermString, int> encodings(-1);
- if (Type1Encoding *encoding = font->type1_encoding())
- for (int i = 255; i >= 0; i--)
- encodings.insert(encoding->elt(i), i);
-
- // First, calculate font bounds, and from there, the transform.
- CharstringBounds bounds;
- for (const char* const* bg = bounds_glyphs; *bg; bg++)
- if (CharstringContext cc = font->glyph_context(*bg))
- bounds.char_bounds(cc, false);
- if (bounds.bb_left() == bounds.bb_right())
- for (int gi = 0; gi < glyph_names.size(); gi++)
- bounds.char_bounds(font->glyph_context(glyph_names[gi]), false);
- Transform font_xform = bounds2xform(bounds, true);
-
- for (int gi = 0; gi < glyph_names.size(); gi++) {
- // allow font that doesn't have all glyphs
- if (!font->glyph(glyph_names[gi]))
- continue;
-
- newpage();
- fprintf(_f, "save\n");
-
- CharstringContext cc = font->glyph_context(glyph_names[gi]);
- bounds.clear();
- bounds.char_bounds(cc, false);
-
- Transform xform(font_xform);
- if (bounds.bb_known()) {
- Point lb = bounds.bb_bottom_left() * xform;
- Point rt = bounds.bb_top_right() * xform;
- Point wd = bounds.width() * xform;
- if (lb.x < LEFT_BOUND || lb.y < BOTTOM_BOUND
- || rt.x > RIGHT_BOUND || rt.y > TOP_BOUND
- || wd.x < LEFT_BOUND || wd.x > RIGHT_BOUND
- || wd.y < BOTTOM_BOUND || wd.y > TOP_BOUND)
- xform = bounds2xform(bounds);
- }
-
- Smoker smoker(xform);
- smoker.run(font->glyph_context(glyph_names[gi]));
- fprintf(_f, "%g %g moveto 0 %g rlineto %g %g moveto 0 %g rlineto %g %g moveto %g 0 rlineto 0 setgray stroke\n",
- (Point(0, 0) * xform).x, BOTTOM_BOUND - 36, TOP_BOUND - BOTTOM_BOUND + 72,
- (bounds.width() * xform).x, BOTTOM_BOUND - 36, TOP_BOUND - BOTTOM_BOUND + 72,
- LEFT_BOUND - 36, (Point(0, 0) * xform).y, RIGHT_BOUND - LEFT_BOUND + 72);
-
- fprintf(_f, "%s\n0.5 setgray fill\n\n1 setlinewidth\n%s\nshowpage\nrestore\n", smoker.char_postscript().c_str(), smoker.points_postscript().c_str());
- }
-}
-
-
-/*****
- * MAIN PROGRAM
- **/
-
-int
-click_strcmp(PermString a, PermString b)
-{
- const char *ad = a.c_str(), *ae = a.c_str() + a.length();
- const char *bd = b.c_str(), *be = b.c_str() + b.length();
-
- while (ad < ae && bd < be) {
- if (isdigit((unsigned char) *ad) && isdigit((unsigned char) *bd)) {
- // compare the two numbers, but don't treat them as numbers in
- // case of overflow
- // first, skip initial '0's
- const char *iad = ad, *ibd = bd;
- while (ad < ae && *ad == '0')
- ad++;
- while (bd < be && *bd == '0')
- bd++;
- int longer_zeros = (ad - iad) - (bd - ibd);
- // skip to end of number
- const char *nad = ad, *nbd = bd;
- while (ad < ae && isdigit((unsigned char) *ad))
- ad++;
- while (bd < be && isdigit((unsigned char) *bd))
- bd++;
- // longer number must be larger
- if ((ad - nad) != (bd - nbd))
- return (ad - nad) - (bd - nbd);
- // otherwise, compare numbers with the same length
- for (; nad < ad && nbd < bd; nad++, nbd++)
- if (*nad != *nbd)
- return *nad - *nbd;
- // finally, longer string of initial '0's wins
- if (longer_zeros != 0)
- return longer_zeros;
- } else if (isdigit((unsigned char) *ad))
- return (isalpha((unsigned char) *bd) ? -1 : 1);
- else if (isdigit((unsigned char) *bd))
- return (isalpha((unsigned char) *ad) ? 1 : -1);
- else {
- int d = tolower((unsigned char) *ad) - tolower((unsigned char) *bd);
- if (d != 0)
- return d;
- ad++;
- bd++;
- }
- }
-
- if ((ae - ad) != (be - bd))
- return (ae - ad) - (be - bd);
- else {
- assert(a.length() == b.length());
- return memcmp(a.c_str(), b.c_str(), a.length());
- }
-}
-
-extern "C" {
-static int CDECL
-glyphcompare(const void *lv, const void *rv)
-{
- const PermString* ln = (const PermString*)lv;
- const PermString* rn = (const PermString*)rv;
-
- // try first without the '.'s
- const char* ldot = strchr(ln->c_str(), '.');
- const char* rdot = strchr(rn->c_str(), '.');
- if (ldot == ln->begin())
- ldot = 0;
- if (rdot == rn->begin())
- rdot = 0;
- if (ldot || rdot) {
- PermString l(ln->begin(), ldot ? ldot : ln->end());
- PermString r(rn->begin(), rdot ? rdot : rn->end());
- int diff = glyphcompare(&l, &r);
- if (diff != 0)
- return diff;
- }
-
- int lorder = glyph_order[*ln];
- int rorder = glyph_order[*rn];
- if (lorder >= 0 && rorder >= 0)
- return lorder - rorder;
- else if (lorder >= 0)
- return -1;
- else if (rorder >= 0)
- return 1;
- else
- return click_strcmp(*ln, *rn);
-}
-}
-
-static bool
-glyph_matches(const String& glyph_name, const String* pattern_begin, const String* pattern_end)
-{
- if (pattern_begin >= pattern_end)
- return true;
- for (; pattern_begin < pattern_end; pattern_begin++)
- if (glob_match(glyph_name, *pattern_begin))
- return true;
- return false;
-}
-
-int
-main(int argc, char *argv[])
-{
- PsresDatabase *psres = new PsresDatabase;
- psres->add_psres_path(getenv("PSRESOURCEPATH"), 0, false);
-
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr));
- const char *output_file = 0;
- Vector<String> glyph_patterns;
- bool smoke = false;
- Vector<Type1Font *> fonts;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case GLYPH_OPT: {
- const char* s = clp->vstr, *end = s + strlen(s);
- while (s < end) {
- while (s < end && isspace((unsigned char) *s))
- s++;
- const char* word = s;
- while (s < end && !isspace((unsigned char) *s))
- s++;
- if (word < s)
- glyph_patterns.push_back(String(word, s - word));
- }
- break;
- }
-
- case SMOKE_OPT:
- smoke = !clp->negated;
- break;
-
- case OUTPUT_OPT:
- if (output_file)
- errh->fatal("output file already specified");
- output_file = clp->vstr;
- break;
-
- case VERSION_OPT:
- printf("t1testpage (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 1999-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case Clp_NotOption:
- fonts.push_back(do_file(clp->vstr, psres, errh));
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- if (!fonts.size())
- fonts.push_back(do_file(0, psres, errh));
-
- FILE *outf;
- if (!output_file || strcmp(output_file, "-") == 0)
- outf = stdout;
- else {
- outf = fopen(output_file, "w");
- if (!outf)
- errh->fatal("%s: %s", output_file, strerror(errno));
- }
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(outf), _O_BINARY);
-#endif
-
- //font->undo_synthetic();
-
- // Prepare glyph order table
- int gindex = 0;
- char buf[7] = "Asmall";
- for (int c = 0; c < 26; c++) {
- buf[0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[c];
- glyph_order.insert(PermString(buf[0]), gindex++);
- glyph_order.insert(PermString("abcdefghijklmnopqrstuvwxyz"[c]), gindex++);
- glyph_order.insert(PermString(buf), gindex++);
- }
- glyph_order.insert("parenleft", gindex++);
- glyph_order.insert("period", gindex++);
- glyph_order.insert("comma", gindex++);
- glyph_order.insert("hyphen", gindex++);
- glyph_order.insert("ampersand", gindex++);
- glyph_order.insert("semicolon", gindex++);
- glyph_order.insert("exclamation", gindex++);
- glyph_order.insert("question", gindex++);
- glyph_order.insert("parenright", gindex++);
- glyph_order.insert("zero", gindex++);
- glyph_order.insert("one", gindex++);
- glyph_order.insert("two", gindex++);
- glyph_order.insert("three", gindex++);
- glyph_order.insert("four", gindex++);
- glyph_order.insert("five", gindex++);
- glyph_order.insert("six", gindex++);
- glyph_order.insert("seven", gindex++);
- glyph_order.insert("eight", gindex++);
- glyph_order.insert("nine", gindex++);
- glyph_order.insert("zerooldstyle", gindex++);
- glyph_order.insert("oneoldstyle", gindex++);
- glyph_order.insert("twooldstyle", gindex++);
- glyph_order.insert("threeoldstyle", gindex++);
- glyph_order.insert("fouroldstyle", gindex++);
- glyph_order.insert("fiveoldstyle", gindex++);
- glyph_order.insert("sixoldstyle", gindex++);
- glyph_order.insert("sevenoldstyle", gindex++);
- glyph_order.insert("eightoldstyle", gindex++);
- glyph_order.insert("nineoldstyle", gindex++);
- glyph_order.insert(".notdef", gindex++);
- glyph_order.insert("space", gindex++);
-
- // Get glyph names.
- HashMap<PermString, int> glyph_hash(0);
- for (Vector<Type1Font *>::iterator it = fonts.begin(); it != fonts.end();
- ++it)
- for (int i = 0; i < (*it)->nglyphs(); i++) {
- if (glyph_matches((*it)->glyph_name(i),
- glyph_patterns.begin(), glyph_patterns.end()))
- glyph_hash.insert((*it)->glyph_name(i), 1);
- }
-
- Vector<PermString> glyph_names;
- for (HashMap<PermString, int>::iterator it = glyph_hash.begin();
- it != glyph_hash.end(); ++it)
- glyph_names.push_back(it.key());
- if (glyph_names.size() == 0)
- errh->fatal("no glyphs to print");
- qsort(glyph_names.begin(), glyph_names.size(), sizeof(PermString), glyphcompare);
-
- // outputs
- Testpager *tp;
- if (smoke)
- tp = new SmokeTestpager(outf);
- else
- tp = new GridTestpager(outf);
-
- tp->prolog(fonts);
- for (Vector<Type1Font *>::iterator it = fonts.begin(); it != fonts.end();
- ++it)
- tp->font(*it, glyph_names);
- tp->epilog();
-
- delete tp;
- exit(0);
-}
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist-g2u.txt b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist-g2u.txt
deleted file mode 100644
index 2340809a4de..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist-g2u.txt
+++ /dev/null
@@ -1,1188 +0,0 @@
-# lcdf-typetools texglyphlist-g2u.txt, Version 2.95
-# Contents: Overrides to glyphlist.txt and texglyphlist.txt used to
-# generate glyphtounicode.tex, which maps glyphs to searchable Unicode
-# code points.
-# --
-# -- Map common ligatures to their components.
-# --
-ff;0066 0066
-ffi;0066 0066 0069
-ffl;0066 0066 006C
-fi;0066 0069
-fl;0066 006C
-longst;017F 0074
-st;0073 0074
-# --
-# -- texglyphlist.txt overrides /heart, /diamond, /phi, and /phi1 to their
-# -- more typical meanings in encoding files meant for TeX: /heart and
-# -- /diamond are outline, not solid; /phi is straight; /phi1 is loopy. These
-# -- overrides are not appropriate for glyphtounicode.tex, which can apply to
-# -- any font. Newer fonts apply the AGL glyph shapes to these names. But we
-# -- can provide font-specific overrides for fonts commonly used with TeX.
-# --
-diamond;2666
-heart;2665
-phi;03C6
-phi1;03D5
-tfm:lmmi5/phi;03D5
-tfm:lmmi5/phi1;03C6
-tfm:lmmi6/phi;03D5
-tfm:lmmi6/phi1;03C6
-tfm:lmmi7/phi;03D5
-tfm:lmmi7/phi1;03C6
-tfm:lmmi8/phi;03D5
-tfm:lmmi8/phi1;03C6
-tfm:lmmi9/phi;03D5
-tfm:lmmi9/phi1;03C6
-tfm:lmmi10/phi;03D5
-tfm:lmmi10/phi1;03C6
-tfm:lmmi12/phi;03D5
-tfm:lmmi12/phi1;03C6
-tfm:lmmib5/phi;03D5
-tfm:lmmib5/phi1;03C6
-tfm:lmmib7/phi;03D5
-tfm:lmmib7/phi1;03C6
-tfm:lmmib10/phi;03D5
-tfm:lmmib10/phi1;03C6
-tfm:lmbsy5/diamond;2662
-tfm:lmbsy5/heart;2661
-tfm:lmbsy7/diamond;2662
-tfm:lmbsy7/heart;2661
-tfm:lmbsy10/diamond;2662
-tfm:lmbsy10/heart;2661
-tfm:lmsy5/diamond;2662
-tfm:lmsy5/heart;2661
-tfm:lmsy6/diamond;2662
-tfm:lmsy6/heart;2661
-tfm:lmsy7/diamond;2662
-tfm:lmsy7/heart;2661
-tfm:lmsy8/diamond;2662
-tfm:lmsy8/heart;2661
-tfm:lmsy9/diamond;2662
-tfm:lmsy9/heart;2661
-tfm:lmsy10/diamond;2662
-tfm:lmsy10/heart;2661
-tfm:cmbsy10/diamond;2662
-tfm:cmbsy10/heart;2661
-tfm:cmbsy5/diamond;2662
-tfm:cmbsy5/heart;2661
-tfm:cmbsy6/diamond;2662
-tfm:cmbsy6/heart;2661
-tfm:cmbsy7/diamond;2662
-tfm:cmbsy7/heart;2661
-tfm:cmbsy8/diamond;2662
-tfm:cmbsy8/heart;2661
-tfm:cmbsy9/diamond;2662
-tfm:cmbsy9/heart;2661
-tfm:cmmi10/phi1;03C6
-tfm:cmmi10/phi;03D5
-tfm:cmmi12/phi1;03C6
-tfm:cmmi12/phi;03D5
-tfm:cmmi5/phi1;03C6
-tfm:cmmi5/phi;03D5
-tfm:cmmi6/phi1;03C6
-tfm:cmmi6/phi;03D5
-tfm:cmmi7/phi1;03C6
-tfm:cmmi7/phi;03D5
-tfm:cmmi8/phi1;03C6
-tfm:cmmi8/phi;03D5
-tfm:cmmi9/phi1;03C6
-tfm:cmmi9/phi;03D5
-tfm:cmmib10/phi1;03C6
-tfm:cmmib10/phi;03D5
-tfm:cmmib5/phi1;03C6
-tfm:cmmib5/phi;03D5
-tfm:cmmib6/phi1;03C6
-tfm:cmmib6/phi;03D5
-tfm:cmmib7/phi1;03C6
-tfm:cmmib7/phi;03D5
-tfm:cmmib8/phi1;03C6
-tfm:cmmib8/phi;03D5
-tfm:cmmib9/phi1;03C6
-tfm:cmmib9/phi;03D5
-tfm:cmsy10/diamond;2662
-tfm:cmsy10/heart;2661
-tfm:cmsy10/heart;2661
-tfm:cmsy5/heart;2661
-tfm:cmsy6/diamond;2662
-tfm:cmsy6/heart;2661
-tfm:cmsy7/diamond;2662
-tfm:cmsy7/heart;2661
-tfm:cmsy8/diamond;2662
-tfm:cmsy8/heart;2661
-tfm:cmsy9/diamond;2662
-tfm:cmsy9/heart;2661
-tfm:eurb10/phi1;03C6
-tfm:eurb10/phi;03D5
-tfm:eurb5/phi1;03C6
-tfm:eurb5/phi;03D5
-tfm:eurb6/phi1;03C6
-tfm:eurb6/phi;03D5
-tfm:eurb7/phi1;03C6
-tfm:eurb7/phi;03D5
-tfm:eurb8/phi1;03C6
-tfm:eurb8/phi;03D5
-tfm:eurb9/phi1;03C6
-tfm:eurb9/phi;03D5
-tfm:eurm10/phi1;03C6
-tfm:eurm10/phi;03D5
-tfm:eurm5/phi1;03C6
-tfm:eurm5/phi;03D5
-tfm:eurm6/phi1;03C6
-tfm:eurm6/phi;03D5
-tfm:eurm7/phi1;03C6
-tfm:eurm7/phi;03D5
-tfm:eurm8/phi1;03C6
-tfm:eurm8/phi;03D5
-tfm:eurm9/phi1;03C6
-tfm:eurm9/phi;03D5
-tfm:msam10/diamond;2662
-tfm:msam5/diamond;2662
-tfm:msam6/diamond;2662
-tfm:msam7/diamond;2662
-tfm:msam8/diamond;2662
-tfm:msam9/diamond;2662
-tfm:fplmbi/phi1;03C6
-tfm:fplmbi/phi;03D5
-tfm:fplmri/phi1;03C6
-tfm:fplmri/phi;03D5
-tfm:pxbmia/phi1;03C6
-tfm:pxbmia/phi;03D5
-tfm:pxbsy/diamond;2662
-tfm:pxbsy/heart;2661
-tfm:pxbsya/diamond;2662
-tfm:pxmia/phi1;03C6
-tfm:pxmia/phi;03D5
-tfm:pxsy/diamond;2662
-tfm:pxsy/heart;2661
-tfm:pxsya/diamond;2662
-tfm:rpxbmi/phi1;03C6
-tfm:rpxbmi/phi;03D5
-tfm:rpxmi/phi1;03C6
-tfm:rpxmi/phi;03D5
-tfm:rtxbmi/phi1;03C6
-tfm:rtxbmi/phi;03D5
-tfm:rtxmi/phi1;03C6
-tfm:rtxmi/phi;03D5
-tfm:txbmia/phi1;03C6
-tfm:txbmia/phi;03D5
-tfm:txbsy/diamond;2662
-tfm:txbsy/heart;2661
-tfm:txbsya/diamond;2662
-tfm:txmia/phi1;03C6
-tfm:txmia/phi;03D5
-tfm:txsy/diamond;2662
-tfm:txsy/heart;2661
-tfm:txsya/diamond;2662
-# --
-# -- PDF searching works best if we map small capitals to lower case, not
-# -- private use code points as in glyphlist.txt.
-# --
-AEsmall;00E6
-Aacutesmall;00E1
-Acircumflexsmall;00E2
-Acute;00B4
-Acutesmall;00B4
-Adieresissmall;00E4
-Agravesmall;00E0
-Aringsmall;00E5
-Asmall;0061
-Atildesmall;00E3
-Brevesmall;02D8
-Bsmall;0062
-Caron;02C7
-Caronsmall;02C7
-Ccedillasmall;00E7
-Cedillasmall;00B8
-Circumflexsmall;02C6
-Csmall;0063
-Dieresis;00A8
-DieresisAcute;F6CC
-DieresisGrave;F6CD
-Dieresissmall;00A8
-Dotaccentsmall;02D9
-Dsmall;0064
-Eacutesmall;00E9
-Ecircumflexsmall;00EA
-Edieresissmall;00EB
-Egravesmall;00E8
-Esmall;0065
-Ethsmall;00F0
-Fsmall;0066
-Grave;0060
-Gravesmall;0060
-Gsmall;0067
-Hsmall;0068
-Hungarumlaut;02DD
-Hungarumlautsmall;02DD
-Iacutesmall;00ED
-Icircumflexsmall;00EE
-Idieresissmall;00EF
-Igravesmall;00EC
-Ismall;0069
-Jsmall;006A
-Ksmall;006B
-LL;004C 004C
-Lslashsmall;0142
-Lsmall;006C
-Macron;00AF
-Macronsmall;00AF
-Msmall;006D
-Nsmall;006E
-Ntildesmall;00F1
-OEsmall;0153
-Oacutesmall;00F3
-Ocircumflexsmall;00F4
-Odieresissmall;00F6
-Ogoneksmall;02DB
-Ogravesmall;00F2
-Oslashsmall;00F8
-Osmall;006F
-Otildesmall;00F5
-Psmall;0070
-Qsmall;0071
-Ringsmall;02DA
-Rsmall;0072
-Scaronsmall;0161
-Ssmall;0073
-Thornsmall;00FE
-Tildesmall;02DC
-Tsmall;0074
-Uacutesmall;00FA
-Ucircumflexsmall;00FB
-Udieresissmall;00FC
-Ugravesmall;00F9
-Usmall;0075
-Vsmall;0076
-Wsmall;0077
-Xsmall;0078
-Yacutesmall;00FD
-Ydieresissmall;00FF
-Ysmall;0079
-Zcaronsmall;017E
-Zsmall;007A
-# afii10063;F6C4
-# afii10064;F6C5
-# afii10192;F6C6
-# afii10831;F6C7
-# afii10832;F6C8
-ampersandsmall;0026
-# apple;F8FF
-# arrowhorizex;F8E7
-# arrowvertex;F8E6
-asuperior;0061
-# braceex;F8F4
-# braceleftbt;F8F3
-# braceleftmid;F8F2
-# bracelefttp;F8F1
-# bracerightbt;F8FE
-# bracerightmid;F8FD
-# bracerighttp;F8FC
-# bracketleftbt;F8F0
-# bracketleftex;F8EF
-# bracketlefttp;F8EE
-# bracketrightbt;F8FB
-# bracketrightex;F8FA
-# bracketrighttp;F8F9
-bsuperior;0062
-centinferior;00A2
-centoldstyle;00A2
-centsuperior;00A2
-# commaaccent;F6C3
-commainferior;002C
-commasuperior;002C
-copyrightsans;00A9
-copyrightserif;00A9
-cyrBreve;02D8
-cyrFlex;00A0 0311
-cyrbreve;02D8
-cyrflex;00A0 0311
-dblGrave;00A0 030F
-dblgrave;00A0 030F
-dieresisacute;00A0 0308 0301
-dieresisgrave;00A0 0308 0300
-dollarinferior;0024
-dollaroldstyle;0024
-dollarsuperior;0024
-dotlessj;0237
-dsuperior;0064
-eightoldstyle;0038
-esuperior;0065
-exclamdownsmall;00A1
-exclamsmall;0021
-fiveoldstyle;0035
-fouroldstyle;0034
-hypheninferior;002D
-hyphensuperior;002D
-# integralex;F8F5
-isuperior;0069
-ll;006C 006C
-lsuperior;006C
-# maichattawalowleftthai;F895
-# maichattawalowrightthai;F894
-# maichattawaupperleftthai;F893
-# maieklowleftthai;F88C
-# maieklowrightthai;F88B
-# maiekupperleftthai;F88A
-# maihanakatleftthai;F884
-# maitaikhuleftthai;F889
-# maitholowleftthai;F88F
-# maitholowrightthai;F88E
-# maithoupperleftthai;F88D
-# maitrilowleftthai;F892
-# maitrilowrightthai;F891
-# maitriupperleftthai;F890
-msuperior;006D
-# nikhahitleftthai;F899
-nineoldstyle;0039
-onefitted;0031
-oneoldstyle;0031
-osuperior;006F
-# parenleftbt;F8ED
-# parenleftex;F8EC
-# parenlefttp;F8EB
-# parenrightbt;F8F8
-# parenrightex;F8F7
-# parenrighttp;F8F6
-periodinferior;002E
-periodsuperior;002E
-questiondownsmall;00BF
-questionsmall;003F
-# radicalex;F8E5
-registersans;00AE
-registerserif;00AE
-rsuperior;0072
-rupiah;20A8
-# saraiileftthai;F886
-# saraileftthai;F885
-# saraueeleftthai;F888
-# saraueleftthai;F887
-sevenoldstyle;0037
-sixoldstyle;0036
-ssuperior;0073
-# thanthakhatlowleftthai;F898
-# thanthakhatlowrightthai;F897
-# thanthakhatupperleftthai;F896
-threeoldstyle;0033
-# threequartersemdash;F6DE
-trademarksans;2122
-trademarkserif;2122
-tsuperior;0074
-twooldstyle;0032
-zerooldstyle;0030
-FFsmall;0066 0066
-FFIsmall;0066 0066 0069
-FFLsmall;0066 0066 006C
-FIsmall;0066 0069
-FLsmall;0066 006C
-Germandblssmall;0073 0073
-SSsmall;0073 0073
-# --
-# -- These character names are used in Zapf-Dingbats.
-# -- The encodings differ from Adobe's zdingbat.txt table version 0.2,
-# -- updated 30 March 1999, in that it does not use private use code points.
-# --
-tfm:pzdr/a1;2701
-tfm:pzdr/a2;2702
-tfm:pzdr/a3;2704
-tfm:pzdr/a4;260E
-tfm:pzdr/a5;2706
-tfm:pzdr/a6;271D
-tfm:pzdr/a7;271E
-tfm:pzdr/a8;271F
-tfm:pzdr/a9;2720
-tfm:pzdr/a10;2721
-tfm:pzdr/a11;261B
-tfm:pzdr/a12;261E
-tfm:pzdr/a13;270C
-tfm:pzdr/a14;270D
-tfm:pzdr/a15;270E
-tfm:pzdr/a16;270F
-tfm:pzdr/a17;2711
-tfm:pzdr/a18;2712
-tfm:pzdr/a19;2713
-tfm:pzdr/a20;2714
-tfm:pzdr/a21;2715
-tfm:pzdr/a22;2716
-tfm:pzdr/a23;2717
-tfm:pzdr/a24;2718
-tfm:pzdr/a25;2719
-tfm:pzdr/a26;271A
-tfm:pzdr/a27;271B
-tfm:pzdr/a28;271C
-tfm:pzdr/a29;2722
-tfm:pzdr/a30;2723
-tfm:pzdr/a31;2724
-tfm:pzdr/a32;2725
-tfm:pzdr/a33;2726
-tfm:pzdr/a34;2727
-tfm:pzdr/a35;2605
-tfm:pzdr/a36;2729
-tfm:pzdr/a37;272A
-tfm:pzdr/a38;272B
-tfm:pzdr/a39;272C
-tfm:pzdr/a40;272D
-tfm:pzdr/a41;272E
-tfm:pzdr/a42;272F
-tfm:pzdr/a43;2730
-tfm:pzdr/a44;2731
-tfm:pzdr/a45;2732
-tfm:pzdr/a46;2733
-tfm:pzdr/a47;2734
-tfm:pzdr/a48;2735
-tfm:pzdr/a49;2736
-tfm:pzdr/a50;2737
-tfm:pzdr/a51;2738
-tfm:pzdr/a52;2739
-tfm:pzdr/a53;273A
-tfm:pzdr/a54;273B
-tfm:pzdr/a55;273C
-tfm:pzdr/a56;273D
-tfm:pzdr/a57;273E
-tfm:pzdr/a58;273F
-tfm:pzdr/a59;2740
-tfm:pzdr/a60;2741
-tfm:pzdr/a61;2742
-tfm:pzdr/a62;2743
-tfm:pzdr/a63;2744
-tfm:pzdr/a64;2745
-tfm:pzdr/a65;2746
-tfm:pzdr/a66;2747
-tfm:pzdr/a67;2748
-tfm:pzdr/a68;2749
-tfm:pzdr/a69;274A
-tfm:pzdr/a70;274B
-tfm:pzdr/a71;25CF
-tfm:pzdr/a72;274D
-tfm:pzdr/a73;25A0
-tfm:pzdr/a74;274F
-tfm:pzdr/a75;2751
-tfm:pzdr/a76;25B2
-tfm:pzdr/a77;25BC
-tfm:pzdr/a78;25C6
-tfm:pzdr/a79;2756
-tfm:pzdr/a81;25D7
-tfm:pzdr/a82;2758
-tfm:pzdr/a83;2759
-tfm:pzdr/a84;275A
-tfm:pzdr/a85;276F
-tfm:pzdr/a86;2771
-tfm:pzdr/a87;2772
-tfm:pzdr/a88;2773
-tfm:pzdr/a89;2768
-tfm:pzdr/a90;2769
-tfm:pzdr/a91;276C
-tfm:pzdr/a92;276D
-tfm:pzdr/a93;276A
-tfm:pzdr/a94;276B
-tfm:pzdr/a95;2774
-tfm:pzdr/a96;2775
-tfm:pzdr/a97;275B
-tfm:pzdr/a98;275C
-tfm:pzdr/a99;275D
-tfm:pzdr/a100;275E
-tfm:pzdr/a101;2761
-tfm:pzdr/a102;2762
-tfm:pzdr/a103;2763
-tfm:pzdr/a104;2764
-tfm:pzdr/a105;2710
-tfm:pzdr/a106;2765
-tfm:pzdr/a107;2766
-tfm:pzdr/a108;2767
-tfm:pzdr/a109;2660
-tfm:pzdr/a110;2665
-tfm:pzdr/a111;2666
-tfm:pzdr/a112;2663
-tfm:pzdr/a117;2709
-tfm:pzdr/a118;2708
-tfm:pzdr/a119;2707
-tfm:pzdr/a120;2460
-tfm:pzdr/a121;2461
-tfm:pzdr/a122;2462
-tfm:pzdr/a123;2463
-tfm:pzdr/a124;2464
-tfm:pzdr/a125;2465
-tfm:pzdr/a126;2466
-tfm:pzdr/a127;2467
-tfm:pzdr/a128;2468
-tfm:pzdr/a129;2469
-tfm:pzdr/a130;2776
-tfm:pzdr/a131;2777
-tfm:pzdr/a132;2778
-tfm:pzdr/a133;2779
-tfm:pzdr/a134;277A
-tfm:pzdr/a135;277B
-tfm:pzdr/a136;277C
-tfm:pzdr/a137;277D
-tfm:pzdr/a138;277E
-tfm:pzdr/a139;277F
-tfm:pzdr/a140;2780
-tfm:pzdr/a141;2781
-tfm:pzdr/a142;2782
-tfm:pzdr/a143;2783
-tfm:pzdr/a144;2784
-tfm:pzdr/a145;2785
-tfm:pzdr/a146;2786
-tfm:pzdr/a147;2787
-tfm:pzdr/a148;2788
-tfm:pzdr/a149;2789
-tfm:pzdr/a150;278A
-tfm:pzdr/a151;278B
-tfm:pzdr/a152;278C
-tfm:pzdr/a153;278D
-tfm:pzdr/a154;278E
-tfm:pzdr/a155;278F
-tfm:pzdr/a156;2790
-tfm:pzdr/a157;2791
-tfm:pzdr/a158;2792
-tfm:pzdr/a159;2793
-tfm:pzdr/a160;2794
-tfm:pzdr/a161;2192
-tfm:pzdr/a162;27A3
-tfm:pzdr/a163;2194
-tfm:pzdr/a164;2195
-tfm:pzdr/a165;2799
-tfm:pzdr/a166;279B
-tfm:pzdr/a167;279C
-tfm:pzdr/a168;279D
-tfm:pzdr/a169;279E
-tfm:pzdr/a170;279F
-tfm:pzdr/a171;27A0
-tfm:pzdr/a172;27A1
-tfm:pzdr/a173;27A2
-tfm:pzdr/a174;27A4
-tfm:pzdr/a175;27A5
-tfm:pzdr/a176;27A6
-tfm:pzdr/a177;27A7
-tfm:pzdr/a178;27A8
-tfm:pzdr/a179;27A9
-tfm:pzdr/a180;27AB
-tfm:pzdr/a181;27AD
-tfm:pzdr/a182;27AF
-tfm:pzdr/a183;27B2
-tfm:pzdr/a184;27B3
-tfm:pzdr/a185;27B5
-tfm:pzdr/a186;27B8
-tfm:pzdr/a187;27BA
-tfm:pzdr/a188;27BB
-tfm:pzdr/a189;27BC
-tfm:pzdr/a190;27BD
-tfm:pzdr/a191;27BE
-tfm:pzdr/a192;279A
-tfm:pzdr/a193;27AA
-tfm:pzdr/a194;27B6
-tfm:pzdr/a195;27B9
-tfm:pzdr/a196;2798
-tfm:pzdr/a197;27B4
-tfm:pzdr/a198;27B7
-tfm:pzdr/a199;27AC
-tfm:pzdr/a200;27AE
-tfm:pzdr/a201;27B1
-tfm:pzdr/a202;2703
-tfm:pzdr/a203;2750
-tfm:pzdr/a204;2752
-tfm:pzdr/a205;276E
-tfm:pzdr/a206;2770
-tfm:rpzdr/a1;2701
-tfm:rpzdr/a2;2702
-tfm:rpzdr/a3;2704
-tfm:rpzdr/a4;260E
-tfm:rpzdr/a5;2706
-tfm:rpzdr/a6;271D
-tfm:rpzdr/a7;271E
-tfm:rpzdr/a8;271F
-tfm:rpzdr/a9;2720
-tfm:rpzdr/a10;2721
-tfm:rpzdr/a11;261B
-tfm:rpzdr/a12;261E
-tfm:rpzdr/a13;270C
-tfm:rpzdr/a14;270D
-tfm:rpzdr/a15;270E
-tfm:rpzdr/a16;270F
-tfm:rpzdr/a17;2711
-tfm:rpzdr/a18;2712
-tfm:rpzdr/a19;2713
-tfm:rpzdr/a20;2714
-tfm:rpzdr/a21;2715
-tfm:rpzdr/a22;2716
-tfm:rpzdr/a23;2717
-tfm:rpzdr/a24;2718
-tfm:rpzdr/a25;2719
-tfm:rpzdr/a26;271A
-tfm:rpzdr/a27;271B
-tfm:rpzdr/a28;271C
-tfm:rpzdr/a29;2722
-tfm:rpzdr/a30;2723
-tfm:rpzdr/a31;2724
-tfm:rpzdr/a32;2725
-tfm:rpzdr/a33;2726
-tfm:rpzdr/a34;2727
-tfm:rpzdr/a35;2605
-tfm:rpzdr/a36;2729
-tfm:rpzdr/a37;272A
-tfm:rpzdr/a38;272B
-tfm:rpzdr/a39;272C
-tfm:rpzdr/a40;272D
-tfm:rpzdr/a41;272E
-tfm:rpzdr/a42;272F
-tfm:rpzdr/a43;2730
-tfm:rpzdr/a44;2731
-tfm:rpzdr/a45;2732
-tfm:rpzdr/a46;2733
-tfm:rpzdr/a47;2734
-tfm:rpzdr/a48;2735
-tfm:rpzdr/a49;2736
-tfm:rpzdr/a50;2737
-tfm:rpzdr/a51;2738
-tfm:rpzdr/a52;2739
-tfm:rpzdr/a53;273A
-tfm:rpzdr/a54;273B
-tfm:rpzdr/a55;273C
-tfm:rpzdr/a56;273D
-tfm:rpzdr/a57;273E
-tfm:rpzdr/a58;273F
-tfm:rpzdr/a59;2740
-tfm:rpzdr/a60;2741
-tfm:rpzdr/a61;2742
-tfm:rpzdr/a62;2743
-tfm:rpzdr/a63;2744
-tfm:rpzdr/a64;2745
-tfm:rpzdr/a65;2746
-tfm:rpzdr/a66;2747
-tfm:rpzdr/a67;2748
-tfm:rpzdr/a68;2749
-tfm:rpzdr/a69;274A
-tfm:rpzdr/a70;274B
-tfm:rpzdr/a71;25CF
-tfm:rpzdr/a72;274D
-tfm:rpzdr/a73;25A0
-tfm:rpzdr/a74;274F
-tfm:rpzdr/a75;2751
-tfm:rpzdr/a76;25B2
-tfm:rpzdr/a77;25BC
-tfm:rpzdr/a78;25C6
-tfm:rpzdr/a79;2756
-tfm:rpzdr/a81;25D7
-tfm:rpzdr/a82;2758
-tfm:rpzdr/a83;2759
-tfm:rpzdr/a84;275A
-tfm:rpzdr/a85;276F
-tfm:rpzdr/a86;2771
-tfm:rpzdr/a87;2772
-tfm:rpzdr/a88;2773
-tfm:rpzdr/a89;2768
-tfm:rpzdr/a90;2769
-tfm:rpzdr/a91;276C
-tfm:rpzdr/a92;276D
-tfm:rpzdr/a93;276A
-tfm:rpzdr/a94;276B
-tfm:rpzdr/a95;2774
-tfm:rpzdr/a96;2775
-tfm:rpzdr/a97;275B
-tfm:rpzdr/a98;275C
-tfm:rpzdr/a99;275D
-tfm:rpzdr/a100;275E
-tfm:rpzdr/a101;2761
-tfm:rpzdr/a102;2762
-tfm:rpzdr/a103;2763
-tfm:rpzdr/a104;2764
-tfm:rpzdr/a105;2710
-tfm:rpzdr/a106;2765
-tfm:rpzdr/a107;2766
-tfm:rpzdr/a108;2767
-tfm:rpzdr/a109;2660
-tfm:rpzdr/a110;2665
-tfm:rpzdr/a111;2666
-tfm:rpzdr/a112;2663
-tfm:rpzdr/a117;2709
-tfm:rpzdr/a118;2708
-tfm:rpzdr/a119;2707
-tfm:rpzdr/a120;2460
-tfm:rpzdr/a121;2461
-tfm:rpzdr/a122;2462
-tfm:rpzdr/a123;2463
-tfm:rpzdr/a124;2464
-tfm:rpzdr/a125;2465
-tfm:rpzdr/a126;2466
-tfm:rpzdr/a127;2467
-tfm:rpzdr/a128;2468
-tfm:rpzdr/a129;2469
-tfm:rpzdr/a130;2776
-tfm:rpzdr/a131;2777
-tfm:rpzdr/a132;2778
-tfm:rpzdr/a133;2779
-tfm:rpzdr/a134;277A
-tfm:rpzdr/a135;277B
-tfm:rpzdr/a136;277C
-tfm:rpzdr/a137;277D
-tfm:rpzdr/a138;277E
-tfm:rpzdr/a139;277F
-tfm:rpzdr/a140;2780
-tfm:rpzdr/a141;2781
-tfm:rpzdr/a142;2782
-tfm:rpzdr/a143;2783
-tfm:rpzdr/a144;2784
-tfm:rpzdr/a145;2785
-tfm:rpzdr/a146;2786
-tfm:rpzdr/a147;2787
-tfm:rpzdr/a148;2788
-tfm:rpzdr/a149;2789
-tfm:rpzdr/a150;278A
-tfm:rpzdr/a151;278B
-tfm:rpzdr/a152;278C
-tfm:rpzdr/a153;278D
-tfm:rpzdr/a154;278E
-tfm:rpzdr/a155;278F
-tfm:rpzdr/a156;2790
-tfm:rpzdr/a157;2791
-tfm:rpzdr/a158;2792
-tfm:rpzdr/a159;2793
-tfm:rpzdr/a160;2794
-tfm:rpzdr/a161;2192
-tfm:rpzdr/a162;27A3
-tfm:rpzdr/a163;2194
-tfm:rpzdr/a164;2195
-tfm:rpzdr/a165;2799
-tfm:rpzdr/a166;279B
-tfm:rpzdr/a167;279C
-tfm:rpzdr/a168;279D
-tfm:rpzdr/a169;279E
-tfm:rpzdr/a170;279F
-tfm:rpzdr/a171;27A0
-tfm:rpzdr/a172;27A1
-tfm:rpzdr/a173;27A2
-tfm:rpzdr/a174;27A4
-tfm:rpzdr/a175;27A5
-tfm:rpzdr/a176;27A6
-tfm:rpzdr/a177;27A7
-tfm:rpzdr/a178;27A8
-tfm:rpzdr/a179;27A9
-tfm:rpzdr/a180;27AB
-tfm:rpzdr/a181;27AD
-tfm:rpzdr/a182;27AF
-tfm:rpzdr/a183;27B2
-tfm:rpzdr/a184;27B3
-tfm:rpzdr/a185;27B5
-tfm:rpzdr/a186;27B8
-tfm:rpzdr/a187;27BA
-tfm:rpzdr/a188;27BB
-tfm:rpzdr/a189;27BC
-tfm:rpzdr/a190;27BD
-tfm:rpzdr/a191;27BE
-tfm:rpzdr/a192;279A
-tfm:rpzdr/a193;27AA
-tfm:rpzdr/a194;27B6
-tfm:rpzdr/a195;27B9
-tfm:rpzdr/a196;2798
-tfm:rpzdr/a197;27B4
-tfm:rpzdr/a198;27B7
-tfm:rpzdr/a199;27AC
-tfm:rpzdr/a200;27AE
-tfm:rpzdr/a201;27B1
-tfm:rpzdr/a202;2703
-tfm:rpzdr/a203;2750
-tfm:rpzdr/a204;2752
-tfm:rpzdr/a205;276E
-tfm:rpzdr/a206;2770
-tfm:zd/a1;2701
-tfm:zd/a2;2702
-tfm:zd/a3;2704
-tfm:zd/a4;260E
-tfm:zd/a5;2706
-tfm:zd/a6;271D
-tfm:zd/a7;271E
-tfm:zd/a8;271F
-tfm:zd/a9;2720
-tfm:zd/a10;2721
-tfm:zd/a11;261B
-tfm:zd/a12;261E
-tfm:zd/a13;270C
-tfm:zd/a14;270D
-tfm:zd/a15;270E
-tfm:zd/a16;270F
-tfm:zd/a17;2711
-tfm:zd/a18;2712
-tfm:zd/a19;2713
-tfm:zd/a20;2714
-tfm:zd/a21;2715
-tfm:zd/a22;2716
-tfm:zd/a23;2717
-tfm:zd/a24;2718
-tfm:zd/a25;2719
-tfm:zd/a26;271A
-tfm:zd/a27;271B
-tfm:zd/a28;271C
-tfm:zd/a29;2722
-tfm:zd/a30;2723
-tfm:zd/a31;2724
-tfm:zd/a32;2725
-tfm:zd/a33;2726
-tfm:zd/a34;2727
-tfm:zd/a35;2605
-tfm:zd/a36;2729
-tfm:zd/a37;272A
-tfm:zd/a38;272B
-tfm:zd/a39;272C
-tfm:zd/a40;272D
-tfm:zd/a41;272E
-tfm:zd/a42;272F
-tfm:zd/a43;2730
-tfm:zd/a44;2731
-tfm:zd/a45;2732
-tfm:zd/a46;2733
-tfm:zd/a47;2734
-tfm:zd/a48;2735
-tfm:zd/a49;2736
-tfm:zd/a50;2737
-tfm:zd/a51;2738
-tfm:zd/a52;2739
-tfm:zd/a53;273A
-tfm:zd/a54;273B
-tfm:zd/a55;273C
-tfm:zd/a56;273D
-tfm:zd/a57;273E
-tfm:zd/a58;273F
-tfm:zd/a59;2740
-tfm:zd/a60;2741
-tfm:zd/a61;2742
-tfm:zd/a62;2743
-tfm:zd/a63;2744
-tfm:zd/a64;2745
-tfm:zd/a65;2746
-tfm:zd/a66;2747
-tfm:zd/a67;2748
-tfm:zd/a68;2749
-tfm:zd/a69;274A
-tfm:zd/a70;274B
-tfm:zd/a71;25CF
-tfm:zd/a72;274D
-tfm:zd/a73;25A0
-tfm:zd/a74;274F
-tfm:zd/a75;2751
-tfm:zd/a76;25B2
-tfm:zd/a77;25BC
-tfm:zd/a78;25C6
-tfm:zd/a79;2756
-tfm:zd/a81;25D7
-tfm:zd/a82;2758
-tfm:zd/a83;2759
-tfm:zd/a84;275A
-tfm:zd/a85;276F
-tfm:zd/a86;2771
-tfm:zd/a87;2772
-tfm:zd/a88;2773
-tfm:zd/a89;2768
-tfm:zd/a90;2769
-tfm:zd/a91;276C
-tfm:zd/a92;276D
-tfm:zd/a93;276A
-tfm:zd/a94;276B
-tfm:zd/a95;2774
-tfm:zd/a96;2775
-tfm:zd/a97;275B
-tfm:zd/a98;275C
-tfm:zd/a99;275D
-tfm:zd/a100;275E
-tfm:zd/a101;2761
-tfm:zd/a102;2762
-tfm:zd/a103;2763
-tfm:zd/a104;2764
-tfm:zd/a105;2710
-tfm:zd/a106;2765
-tfm:zd/a107;2766
-tfm:zd/a108;2767
-tfm:zd/a109;2660
-tfm:zd/a110;2665
-tfm:zd/a111;2666
-tfm:zd/a112;2663
-tfm:zd/a117;2709
-tfm:zd/a118;2708
-tfm:zd/a119;2707
-tfm:zd/a120;2460
-tfm:zd/a121;2461
-tfm:zd/a122;2462
-tfm:zd/a123;2463
-tfm:zd/a124;2464
-tfm:zd/a125;2465
-tfm:zd/a126;2466
-tfm:zd/a127;2467
-tfm:zd/a128;2468
-tfm:zd/a129;2469
-tfm:zd/a130;2776
-tfm:zd/a131;2777
-tfm:zd/a132;2778
-tfm:zd/a133;2779
-tfm:zd/a134;277A
-tfm:zd/a135;277B
-tfm:zd/a136;277C
-tfm:zd/a137;277D
-tfm:zd/a138;277E
-tfm:zd/a139;277F
-tfm:zd/a140;2780
-tfm:zd/a141;2781
-tfm:zd/a142;2782
-tfm:zd/a143;2783
-tfm:zd/a144;2784
-tfm:zd/a145;2785
-tfm:zd/a146;2786
-tfm:zd/a147;2787
-tfm:zd/a148;2788
-tfm:zd/a149;2789
-tfm:zd/a150;278A
-tfm:zd/a151;278B
-tfm:zd/a152;278C
-tfm:zd/a153;278D
-tfm:zd/a154;278E
-tfm:zd/a155;278F
-tfm:zd/a156;2790
-tfm:zd/a157;2791
-tfm:zd/a158;2792
-tfm:zd/a159;2793
-tfm:zd/a160;2794
-tfm:zd/a161;2192
-tfm:zd/a162;27A3
-tfm:zd/a163;2194
-tfm:zd/a164;2195
-tfm:zd/a165;2799
-tfm:zd/a166;279B
-tfm:zd/a167;279C
-tfm:zd/a168;279D
-tfm:zd/a169;279E
-tfm:zd/a170;279F
-tfm:zd/a171;27A0
-tfm:zd/a172;27A1
-tfm:zd/a173;27A2
-tfm:zd/a174;27A4
-tfm:zd/a175;27A5
-tfm:zd/a176;27A6
-tfm:zd/a177;27A7
-tfm:zd/a178;27A8
-tfm:zd/a179;27A9
-tfm:zd/a180;27AB
-tfm:zd/a181;27AD
-tfm:zd/a182;27AF
-tfm:zd/a183;27B2
-tfm:zd/a184;27B3
-tfm:zd/a185;27B5
-tfm:zd/a186;27B8
-tfm:zd/a187;27BA
-tfm:zd/a188;27BB
-tfm:zd/a189;27BC
-tfm:zd/a190;27BD
-tfm:zd/a191;27BE
-tfm:zd/a192;279A
-tfm:zd/a193;27AA
-tfm:zd/a194;27B6
-tfm:zd/a195;27B9
-tfm:zd/a196;2798
-tfm:zd/a197;27B4
-tfm:zd/a198;27B7
-tfm:zd/a199;27AC
-tfm:zd/a200;27AE
-tfm:zd/a201;27B1
-tfm:zd/a202;2703
-tfm:zd/a203;2750
-tfm:zd/a204;2752
-tfm:zd/a205;276E
-tfm:zd/a206;2770
-tfm:zpzdr-reversed/a1;2701
-tfm:zpzdr-reversed/a2;2702
-tfm:zpzdr-reversed/a3;2704
-tfm:zpzdr-reversed/a4;260E
-tfm:zpzdr-reversed/a5;2706
-tfm:zpzdr-reversed/a6;271D
-tfm:zpzdr-reversed/a7;271E
-tfm:zpzdr-reversed/a8;271F
-tfm:zpzdr-reversed/a9;2720
-tfm:zpzdr-reversed/a10;2721
-tfm:zpzdr-reversed/a11;261B
-tfm:zpzdr-reversed/a12;261E
-tfm:zpzdr-reversed/a13;270C
-tfm:zpzdr-reversed/a14;270D
-tfm:zpzdr-reversed/a15;270E
-tfm:zpzdr-reversed/a16;270F
-tfm:zpzdr-reversed/a17;2711
-tfm:zpzdr-reversed/a18;2712
-tfm:zpzdr-reversed/a19;2713
-tfm:zpzdr-reversed/a20;2714
-tfm:zpzdr-reversed/a21;2715
-tfm:zpzdr-reversed/a22;2716
-tfm:zpzdr-reversed/a23;2717
-tfm:zpzdr-reversed/a24;2718
-tfm:zpzdr-reversed/a25;2719
-tfm:zpzdr-reversed/a26;271A
-tfm:zpzdr-reversed/a27;271B
-tfm:zpzdr-reversed/a28;271C
-tfm:zpzdr-reversed/a29;2722
-tfm:zpzdr-reversed/a30;2723
-tfm:zpzdr-reversed/a31;2724
-tfm:zpzdr-reversed/a32;2725
-tfm:zpzdr-reversed/a33;2726
-tfm:zpzdr-reversed/a34;2727
-tfm:zpzdr-reversed/a35;2605
-tfm:zpzdr-reversed/a36;2729
-tfm:zpzdr-reversed/a37;272A
-tfm:zpzdr-reversed/a38;272B
-tfm:zpzdr-reversed/a39;272C
-tfm:zpzdr-reversed/a40;272D
-tfm:zpzdr-reversed/a41;272E
-tfm:zpzdr-reversed/a42;272F
-tfm:zpzdr-reversed/a43;2730
-tfm:zpzdr-reversed/a44;2731
-tfm:zpzdr-reversed/a45;2732
-tfm:zpzdr-reversed/a46;2733
-tfm:zpzdr-reversed/a47;2734
-tfm:zpzdr-reversed/a48;2735
-tfm:zpzdr-reversed/a49;2736
-tfm:zpzdr-reversed/a50;2737
-tfm:zpzdr-reversed/a51;2738
-tfm:zpzdr-reversed/a52;2739
-tfm:zpzdr-reversed/a53;273A
-tfm:zpzdr-reversed/a54;273B
-tfm:zpzdr-reversed/a55;273C
-tfm:zpzdr-reversed/a56;273D
-tfm:zpzdr-reversed/a57;273E
-tfm:zpzdr-reversed/a58;273F
-tfm:zpzdr-reversed/a59;2740
-tfm:zpzdr-reversed/a60;2741
-tfm:zpzdr-reversed/a61;2742
-tfm:zpzdr-reversed/a62;2743
-tfm:zpzdr-reversed/a63;2744
-tfm:zpzdr-reversed/a64;2745
-tfm:zpzdr-reversed/a65;2746
-tfm:zpzdr-reversed/a66;2747
-tfm:zpzdr-reversed/a67;2748
-tfm:zpzdr-reversed/a68;2749
-tfm:zpzdr-reversed/a69;274A
-tfm:zpzdr-reversed/a70;274B
-tfm:zpzdr-reversed/a71;25CF
-tfm:zpzdr-reversed/a72;274D
-tfm:zpzdr-reversed/a73;25A0
-tfm:zpzdr-reversed/a74;274F
-tfm:zpzdr-reversed/a75;2751
-tfm:zpzdr-reversed/a76;25B2
-tfm:zpzdr-reversed/a77;25BC
-tfm:zpzdr-reversed/a78;25C6
-tfm:zpzdr-reversed/a79;2756
-tfm:zpzdr-reversed/a81;25D7
-tfm:zpzdr-reversed/a82;2758
-tfm:zpzdr-reversed/a83;2759
-tfm:zpzdr-reversed/a84;275A
-tfm:zpzdr-reversed/a85;276F
-tfm:zpzdr-reversed/a86;2771
-tfm:zpzdr-reversed/a87;2772
-tfm:zpzdr-reversed/a88;2773
-tfm:zpzdr-reversed/a89;2768
-tfm:zpzdr-reversed/a90;2769
-tfm:zpzdr-reversed/a91;276C
-tfm:zpzdr-reversed/a92;276D
-tfm:zpzdr-reversed/a93;276A
-tfm:zpzdr-reversed/a94;276B
-tfm:zpzdr-reversed/a95;2774
-tfm:zpzdr-reversed/a96;2775
-tfm:zpzdr-reversed/a97;275B
-tfm:zpzdr-reversed/a98;275C
-tfm:zpzdr-reversed/a99;275D
-tfm:zpzdr-reversed/a100;275E
-tfm:zpzdr-reversed/a101;2761
-tfm:zpzdr-reversed/a102;2762
-tfm:zpzdr-reversed/a103;2763
-tfm:zpzdr-reversed/a104;2764
-tfm:zpzdr-reversed/a105;2710
-tfm:zpzdr-reversed/a106;2765
-tfm:zpzdr-reversed/a107;2766
-tfm:zpzdr-reversed/a108;2767
-tfm:zpzdr-reversed/a109;2660
-tfm:zpzdr-reversed/a110;2665
-tfm:zpzdr-reversed/a111;2666
-tfm:zpzdr-reversed/a112;2663
-tfm:zpzdr-reversed/a117;2709
-tfm:zpzdr-reversed/a118;2708
-tfm:zpzdr-reversed/a119;2707
-tfm:zpzdr-reversed/a120;2460
-tfm:zpzdr-reversed/a121;2461
-tfm:zpzdr-reversed/a122;2462
-tfm:zpzdr-reversed/a123;2463
-tfm:zpzdr-reversed/a124;2464
-tfm:zpzdr-reversed/a125;2465
-tfm:zpzdr-reversed/a126;2466
-tfm:zpzdr-reversed/a127;2467
-tfm:zpzdr-reversed/a128;2468
-tfm:zpzdr-reversed/a129;2469
-tfm:zpzdr-reversed/a130;2776
-tfm:zpzdr-reversed/a131;2777
-tfm:zpzdr-reversed/a132;2778
-tfm:zpzdr-reversed/a133;2779
-tfm:zpzdr-reversed/a134;277A
-tfm:zpzdr-reversed/a135;277B
-tfm:zpzdr-reversed/a136;277C
-tfm:zpzdr-reversed/a137;277D
-tfm:zpzdr-reversed/a138;277E
-tfm:zpzdr-reversed/a139;277F
-tfm:zpzdr-reversed/a140;2780
-tfm:zpzdr-reversed/a141;2781
-tfm:zpzdr-reversed/a142;2782
-tfm:zpzdr-reversed/a143;2783
-tfm:zpzdr-reversed/a144;2784
-tfm:zpzdr-reversed/a145;2785
-tfm:zpzdr-reversed/a146;2786
-tfm:zpzdr-reversed/a147;2787
-tfm:zpzdr-reversed/a148;2788
-tfm:zpzdr-reversed/a149;2789
-tfm:zpzdr-reversed/a150;278A
-tfm:zpzdr-reversed/a151;278B
-tfm:zpzdr-reversed/a152;278C
-tfm:zpzdr-reversed/a153;278D
-tfm:zpzdr-reversed/a154;278E
-tfm:zpzdr-reversed/a155;278F
-tfm:zpzdr-reversed/a156;2790
-tfm:zpzdr-reversed/a157;2791
-tfm:zpzdr-reversed/a158;2792
-tfm:zpzdr-reversed/a159;2793
-tfm:zpzdr-reversed/a160;2794
-tfm:zpzdr-reversed/a161;2192
-tfm:zpzdr-reversed/a162;27A3
-tfm:zpzdr-reversed/a163;2194
-tfm:zpzdr-reversed/a164;2195
-tfm:zpzdr-reversed/a165;2799
-tfm:zpzdr-reversed/a166;279B
-tfm:zpzdr-reversed/a167;279C
-tfm:zpzdr-reversed/a168;279D
-tfm:zpzdr-reversed/a169;279E
-tfm:zpzdr-reversed/a170;279F
-tfm:zpzdr-reversed/a171;27A0
-tfm:zpzdr-reversed/a172;27A1
-tfm:zpzdr-reversed/a173;27A2
-tfm:zpzdr-reversed/a174;27A4
-tfm:zpzdr-reversed/a175;27A5
-tfm:zpzdr-reversed/a176;27A6
-tfm:zpzdr-reversed/a177;27A7
-tfm:zpzdr-reversed/a178;27A8
-tfm:zpzdr-reversed/a179;27A9
-tfm:zpzdr-reversed/a180;27AB
-tfm:zpzdr-reversed/a181;27AD
-tfm:zpzdr-reversed/a182;27AF
-tfm:zpzdr-reversed/a183;27B2
-tfm:zpzdr-reversed/a184;27B3
-tfm:zpzdr-reversed/a185;27B5
-tfm:zpzdr-reversed/a186;27B8
-tfm:zpzdr-reversed/a187;27BA
-tfm:zpzdr-reversed/a188;27BB
-tfm:zpzdr-reversed/a189;27BC
-tfm:zpzdr-reversed/a190;27BD
-tfm:zpzdr-reversed/a191;27BE
-tfm:zpzdr-reversed/a192;279A
-tfm:zpzdr-reversed/a193;27AA
-tfm:zpzdr-reversed/a194;27B6
-tfm:zpzdr-reversed/a195;27B9
-tfm:zpzdr-reversed/a196;2798
-tfm:zpzdr-reversed/a197;27B4
-tfm:zpzdr-reversed/a198;27B7
-tfm:zpzdr-reversed/a199;27AC
-tfm:zpzdr-reversed/a200;27AE
-tfm:zpzdr-reversed/a201;27B1
-tfm:zpzdr-reversed/a202;2703
-tfm:zpzdr-reversed/a203;2750
-tfm:zpzdr-reversed/a204;2752
-tfm:zpzdr-reversed/a205;276E
-tfm:zpzdr-reversed/a206;2770
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist.txt b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist.txt
deleted file mode 100644
index b9c5fa9af0f..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/texglyphlist.txt
+++ /dev/null
@@ -1,386 +0,0 @@
-# lcdf-typetools texglyphlist.txt, Version 2.95
-# Contents: Extensions to the Adobe Glyph List for TeX fonts and
-# encodings. We also extend the second field so that it can contain
-# multiple Unicode scalar values, separated by commas, analogous to
-# otftotfm's "% UNICODING" comments.
-###############################################################################
-Delta;2206,0394
-Ifractur;2111
-FFsmall;F766 F766,0066 0066
-FFIsmall;F766 F766 F769,0066 0066 0069
-FFLsmall;F766 F766 F76C,0066 0066 006C
-FIsmall;F766 F769,0066 0069
-FLsmall;F766 F76C,0066 006C
-Germandbls;0053 0053
-Germandblssmall;F773 F773,0073 0073
-Ng;014A
-Omega;2126,03A9
-Rfractur;211C
-SS;0053 0053
-SSsmall;F773 F773,0073 0073
-# altselector: invalid Unicode
-altselector;D802
-angbracketleft;27E8,2329
-angbracketright;27E9,232A
-arrowbothv;2195
-arrowdblbothv;21D5
-arrowleftbothalf;21BD
-arrowlefttophalf;21BC
-arrownortheast;2197
-arrownorthwest;2196
-arrowrightbothalf;21C1
-arrowrighttophalf;21C0
-arrowsoutheast;2198
-arrowsouthwest;2199
-# ascendercompwordmark: taller cwm, invalid Unicode
-ascendercompwordmark;D80A
-asteriskcentered;2217
-bardbl;2225
-# capitalcompwordmark: taller cwm, invalid Unicode
-capitalcompwordmark;D809
-ceilingleft;2308
-ceilingright;2309
-circlecopyrt;20DD,25CB
-circledivide;2298
-circledot;2299
-circleminus;2296
-coproduct;2A3F
-ct;0063 0074
-# cwm: Unicode for ZWNJ, used for secondary replacement from EC.enc
-cwm;200C
-dblbracketleft;27E6
-dblbracketright;27E7
-# U+2662 is WHITE DIAMOND SUIT
-# U+25CA is LOZENGE
-# U+2666 is BLACK DIAMOND SUIT
-diamond;2662,25CA,2666
-diamondmath;22C4
-# U+0237 is the proposed allocation for dotless j as of Unicode 4.0
-# U+1D6A5 is the mathematical italic version approved in Unicode 5.0
-dotlessj;0237,F6BE,1D6A5
-emptyset;2205,F638
-# emptyslot: invalid Unicode; the user explicitly wants this slot empty
-emptyslot;D801
-epsilon1;03F5
-epsiloninv;03F6
-equivasymptotic;224D
-flat;266D
-floorleft;230A
-floorright;230B
-follows;227B
-followsequal;2AB0
-followsorcurly;227D
-greatermuch;226B
-heart;2661,2665
-interrobang;203D
-interrobangdown;2E18
-intersectionsq;2293
-latticetop;22A4
-lessmuch;226A
-longdbls;017F 017F
-longsh;017F 0068
-longsi;017F 0069
-longsl;017F 006C
-longst;FB05,017F 0074
-lscript;2113
-natural;266E
-negationslash;0338
-ng;014B
-owner;220B
-pertenthousand;2031
-# TeX encodings such as 'texmital.enc' disagree with Unicode and the Adobe
-# glyph list; in TeX, the "straight" form of phi takes the name "phi",
-# whereas the more-common "loopy" form of phi, \varphi, takes the name "phi1".
-phi;03D5,03C6
-phi1;03C6
-pi1;03D6
-precedesequal;2AAF
-precedesorcurly;227C
-prime;2032,02B9
-rho1;03F1
-# ringfitted: a ring character centered on the x-width of A, invalid Unicode
-ringfitted;D80D
-sharp;266F
-similarequal;2243
-slurabove;2322
-slurbelow;2323
-st;FB06,0073 0074
-star;22C6
-subsetsqequal;2291
-supersetsqequal;2292
-triangle;25B3
-triangleinv;25BD
-triangleleft;25C1
-triangleright;25B7
-turnstileleft;22A2
-turnstileright;22A3
-# twelveudash: 2/3-em dash; invalid Unicode
-twelveudash;D80C
-unionmulti;228E
-unionsq;2294
-vector;20D7
-# visualspace: Unicode for OPEN BOX, used for secondary replacement from EC.enc
-visualspace;2423
-wreathproduct;2240
-# -- Marco Kuhlmann reported annoying glyph neologisms in fontinst encodings
-# Dbar = Dcroat
-Dbar;0110
-# compwordmark = cwm
-compwordmark;200C
-# dbar = dcroat
-dbar;0111
-# rangedash = endash
-rangedash;2013
-# hyphenchar = hyphen
-hyphenchar;002D
-# punctdash = emdash
-punctdash;2014
-# visiblespace = visualspace
-visiblespace;2423
-# --
-# -- These character names are used in the MSAM fonts
-# --
-Yen;00A5
-# the MSAM10 glyph is more closed than U+21BA
-# the MSAM10 glyph's gap is at the top, while U+27F2 is on the left
-anticlockwise;27F2,21BA
-# XXX arrowaxisleft
-# XXX arrowaxisright
-arrowparrleftright;21C6
-arrowparrrightleft;21C4
-arrowtailleft;21A2
-arrowtailright;21A3
-arrowtripleleft;21DA
-arrowtripleright;21DB
-# XXX axisshort
-between;226C
-# U+2713 is a Zapf dingbat
-check;2713
-circleR;00AE
-# the MSAM10 glyph may be smaller than U+24C8
-circleS;24C8
-circleasterisk;229B
-circleequal;229C
-circlering;229A
-# the MSAM10 glyph is more closed than U+21BB
-# the MSAM10 glyph's gap is at the top, while U+27F3 is on the left
-clockwise;27F3,21BB
-complement;2201
-curlyleft;21AB
-curlyright;21AC
-dblarrowdwn;21CA
-dblarrowheadleft;219E
-dblarrowheadright;21A0
-dblarrowup;21C8
-defines;225C
-# U+2666 is BLACK DIAMOND SUIT
-# U+29EB is BLACK LOZENGE
-diamondsolid;2666,29EB
-difference;224F
-dotplus;2214
-downfall;22CE
-equaldotleftright;2252
-equaldotrightleft;2253
-equalorfollows;22DF
-equalorgreater;2A96
-equalorless;2A95
-equalorprecedes;22DE
-equalsdots;2251
-followsorequal;227F
-forces;22A9
-forcesbar;22AA
-fork;22D4
-frown;2322
-geomequivalent;224E
-greaterdbleqlless;2A8C
-greaterdblequal;2267
-greaterlessequal;22DB
-greaterorapproxeql;2A86
-greaterorequalslant;2A7E
-greaterorsimilar;2273
-harpoondownleft;21C3
-harpoondownright;21C2
-# MSAM probably misnamed this glyph; the right pointing harpoon is above
-# U+21CC has the right pointing harpoon above, like MSAM
-harpoonleftright;21CC
-# MSAM probably misnamed this glyph; the left pointing harpoon is above
-# U+21CB has the left pointing harpoon above, like MSAM
-harpoonrightleft;21CB
-harpoonupleft;21BF
-harpoonupright;21BE
-# U+22BA may be larger than MSAM intercal
-intercal;22BA
-intersectiondbl;22D2
-lessdbleqlgreater;2A8B
-lessdblequal;2266
-lessequalgreater;22DA
-lessorapproxeql;2A85
-lessorequalslant;2A7D
-lessorsimilar;2272
-maltesecross;2720
-measuredangle;2221
-multimap;22B8
-multiopenleft;22CB
-multiopenright;22CC
-nand;22BC
-orunderscore;22BB
-# U+2306 PERSPECTIVE is larger than the MSAM glyph
-perpcorrespond;2A5E,2306
-precedesorequal;227E
-primereverse;2035
-revasymptequal;22CD
-revsimilar;223D
-# U+231D TOP RIGHT CORNER is a quine corner,
-# U+2E23 TOP RIGHT HALF BRACKET is a half bracket.
-# MSAM rightanglene matches the shape of U+231C but the spacing of U+2E23.
-# Similar for other rightangle characters.
-rightanglene;231D,2E23
-rightanglenw;231C,2E22
-rightanglese;231F,2E25
-rightanglesw;231E,2E24
-ringinequal;2256
-# U+22A7 MODELS is shorter than U+22A8 TRUE = satisfies.
-# MSAM satisfies is in between.
-satisfies;22A8
-shiftleft;21B0
-shiftright;21B1
-smile;2323
-sphericalangle;2222
-# U+25A1 WHITE SQUARE
-square;25A1
-squaredot;22A1
-squareimage;228F
-squareminus;229F
-squaremultiply;22A0
-squareoriginal;2290
-squareplus;229E
-# XXX U+25AA BLACK SMALL SQUARE doesn't sit on the baseline
-# XXX squaresmallsolid
-squaresolid;25A0
-# U+21AD LEFT RIGHT WAVE ARROW is not actually a squiggle arrow
-squiggleleftright;21AD
-squiggleright;21DD
-subsetdbl;22D0
-subsetdblequal;2AC5
-supersetdbl;22D1
-supersetdblequal;2AC6
-triangledownsld;25BC
-# U+22B4 NORMAL SUBGROUP OF OR EQUAL TO is sharper than MSAM
-triangleleftequal;22B4,25C1 0332
-triangleleftsld;25C0
-# U+22B5 CONTAINS AS NORMAL SUBGROUP OR EQUAL TO is sharper than MSAM
-trianglerightequal;22B5,25B7 0332
-trianglerightsld;25B6
-trianglesolid;25B2
-uniondbl;22D3
-uprise;22CF
-# --
-# -- These character names are used in the MSBM fonts
-# --
-# U+1D7CB MATHEMATICAL BOLD SMALL DIGAMMA is the closest match to MSBM,
-# although MSBM Digamma's spelling indicates that a capital was intended
-# U+03DD GREEK SMALL LETTER DIGAMMA for fallback
-Digamma;1D7CB,03DD
-# U+2132 TURNED CAPITAL F is shown as seriffed, MSBM Finv is sans
-Finv;2132
-# U+2141 TURNED SANS-SERIF CAPITAL G is turned, MSBM Gmir is only reversed
-Gmir;2141
-Omegainv;2127
-approxorequal;224A
-archleftdown;21B6
-archrightdown;21B7
-# XXX barshort
-beth;2136
-daleth;2138
-dividemultiply;22C7
-# U+29F9 BIG REVERSE SOLIDUS seems the right size
-downslope;29F9
-equalorsimilar;2242
-follownotdbleqv;2ABA
-follownotslnteql;2AB6
-followornoteqvlnt;22E9
-greaterdot;22D7
-# MSBM misnamed this glyph; should be greaternotdbleqv
-greaternotdblequal;2A8A
-greaternotequal;2A88
-greaterornotdbleql;2269
-# XXX MSBM greaterornotequal has a vertical negation slash, not U+2269 diagonal
-greaterornotequal;2269
-# XXX greaterornotsimilar
-# XXX hatwide
-# XXX hatwider
-integerdivide;2216
-lessdot;22D6
-# MSBM misnamed this glyph; should be lessnotdbleqv
-lessnotdblequal;2A89
-lessnotequal;2A87
-lessornotdbleql;2268
-# XXX MSBM lessornotequal has a vertical negation slash, not U+2268 diagonal
-lessornotequal;2268
-# XXX lessornotsimilar
-multicloseleft;22C9
-multicloseright;22CA
-notapproxequal;2247
-notarrowboth;21AE
-notarrowleft;219A
-notarrowright;219B
-notbar;2224
-notdblarrowboth;21CE
-notdblarrowleft;21CD
-notdblarrowright;21CF
-notexistential;2204
-notfollows;2281
-# U+22E1 DOES NOT SUCCEED OR EQUAL has a curved equal sign, unlike MSBM
-notfollowsoreql;2AB0 0338,22E1
-notforces;22AE
-notforcesextra;22AF
-# Unicode has no precomposed negation of U+2267 GREATER THAN OVER EQUAL TO
-notgreaterdblequal;2267 0338
-notgreaterequal;2271
-notgreaterorslnteql;2A7E 0338
-notlessdblequal;2266 0338
-notlessequal;2270
-notlessorslnteql;2A7D 0338
-# U+22E0 DOES NOT PRECEDE OR EQUAL has a curved equal sign, unlike MSBM
-notprecedesoreql;2AAF 0338,22E0
-notsatisfies;22AD
-# XXX notshortbar
-# XXX notshortparallel
-notsimilar;2241
-notsubseteql;2288
-notsubsetordbleql;2AC5 0338
-# U+228A SUBSET OF WITH NOT EQUAL TO negation slash only touches bar below;
-# MSBM negation slash touches bar and lower part of subset
-notsubsetoreql;228A
-notsuperseteql;2289
-notsupersetordbleql;2AC6 0338
-# U+228A SUPERSET OF WITH NOT EQUAL TO negation slash only touches bar below;
-# MSBM negation slash touches bar and lower part of superset
-notsupersetoreql;228B
-# U+22EC NOT NORMAL SUBGROUP OF OR EQUAL TO is sharper than MSBM
-nottriangeqlleft;22EC,25C1 0332 0338
-# U+22ED DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL is sharper than MSBM
-nottriangeqlright;22ED,25B7 0332 0338
-# U+22EA NOT NORMAL SUBGROUP OF is sharper than MSBM
-nottriangleleft;22EA,25C1 0338
-# U+22EB DOES NOT CONTAIN AS NORMAL SUBGROUP is sharper than MSBM
-nottriangleright;22EB,25B7 0338
-notturnstile;22AC
-# XXX parallelshort
-planckover2pi;210F
-# U+210F PLANCK CONSTANT OVER TWO PI is shown with diagonal slash, which
-# corresponds to MSBM planckover2pi, but this is a font variant
-planckover2pi1;210F
-precedenotdbleqv;2AB9
-precedenotslnteql;2AB5
-precedeornoteqvlnt;22E8
-subsetnoteql;228A
-subsetornotdbleql;2ACB
-# XXX subsetornoteql
-supersetnoteql;228B
-supersetornotdbleql;2ACC
-# XXX supersetornoteql
-# XXX tildewide
-# XXX tildewider
-# U+29F8 BIG SOLIDUS seems the right size
-upslope;29F8
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.am b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.am
deleted file mode 100644
index d1c220870e9..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-## Process this file with automake to produce Makefile.in
-AUTOMAKE_OPTIONS = foreign
-
-bin_PROGRAMS = ttftotype42
-man_MANS = ttftotype42.1
-
-ttftotype42_SOURCES = ttftotype42.cc
-
-ttftotype42_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-
-EXTRA_DIST = ttftotype42.1
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.in b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.in
deleted file mode 100644
index 572395c0389..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/Makefile.in
+++ /dev/null
@@ -1,748 +0,0 @@
-# Makefile.in generated by automake 1.16.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2020 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-bin_PROGRAMS = ttftotype42$(EXEEXT)
-subdir = lcdf-typetools-src/ttftotype42
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_cxx_template_objs.m4 \
- $(top_srcdir)/../../m4/kpse-common.m4 \
- $(top_srcdir)/../../m4/kpse-cxx-hack.m4 \
- $(top_srcdir)/../../m4/kpse-kpathsea-flags.m4 \
- $(top_srcdir)/../../m4/kpse-warnings.m4 \
- $(top_srcdir)/../../m4/kpse-win32.m4 \
- $(top_srcdir)/../../m4/libtool.m4 \
- $(top_srcdir)/../../m4/ltoptions.m4 \
- $(top_srcdir)/../../m4/ltsugar.m4 \
- $(top_srcdir)/../../m4/ltversion.m4 \
- $(top_srcdir)/../../m4/lt~obsolete.m4 $(top_srcdir)/version.ac \
- $(top_srcdir)/ac/lcdf-typetools.ac $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/autoconf.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_ttftotype42_OBJECTS = ttftotype42.$(OBJEXT)
-ttftotype42_OBJECTS = $(am_ttftotype42_OBJECTS)
-ttftotype42_DEPENDENCIES = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/ttftotype42.Po
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
-am__v_CXX_1 =
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
- $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-am__v_CXXLD_1 =
-SOURCES = $(ttftotype42_SOURCES)
-DIST_SOURCES = $(ttftotype42_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/../../build-aux/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CXXLD = @CXXLD@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KPATHSEA_DEPEND = @KPATHSEA_DEPEND@
-KPATHSEA_INCLUDES = @KPATHSEA_INCLUDES@
-KPATHSEA_LIBS = @KPATHSEA_LIBS@
-LCDF_TYPETOOLS_TREE = @LCDF_TYPETOOLS_TREE@
-LCDF_TYPETOOLS_VERSION = @LCDF_TYPETOOLS_VERSION@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-RANLIB = @RANLIB@
-SED = @SED@
-SELECTED_SUBDIRS = @SELECTED_SUBDIRS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-TEMPLATE_OBJS = @TEMPLATE_OBJS@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-encdir = @encdir@
-exec_prefix = @exec_prefix@
-glyphlistdir = @glyphlistdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-man_MANS = ttftotype42.1
-ttftotype42_SOURCES = ttftotype42.cc
-ttftotype42_LDADD = ../libefont/libefont.a ../liblcdf/liblcdf.a
-AM_CPPFLAGS = -I$(srcdir)/../include
-CLEANFILES = @TEMPLATE_OBJS@
-EXTRA_DIST = ttftotype42.1
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lcdf-typetools-src/ttftotype42/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign lcdf-typetools-src/ttftotype42/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-
-ttftotype42$(EXEEXT): $(ttftotype42_OBJECTS) $(ttftotype42_DEPENDENCIES) $(EXTRA_ttftotype42_DEPENDENCIES)
- @rm -f ttftotype42$(EXEEXT)
- $(AM_V_CXXLD)$(CXXLINK) $(ttftotype42_OBJECTS) $(ttftotype42_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ttftotype42.Po@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
- @$(MKDIR_P) $(@D)
- @echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.cc.o:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-man1: $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(man_MANS)'; \
- test -n "$(man1dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.1[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
-
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) distdir-am
-
-distdir-am: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f ./$(DEPDIR)/ttftotype42.Po
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man1
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f ./$(DEPDIR)/ttftotype42.Po
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS uninstall-man
-
-uninstall-man: uninstall-man1
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-man1 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
- uninstall-binPROGRAMS uninstall-man uninstall-man1
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1 b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
deleted file mode 100644
index a212bd1a79c..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.1
+++ /dev/null
@@ -1,78 +0,0 @@
-.ds V 2.108
-.de M
-.BR "\\$1" "(\\$2)\\$3"
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.TH TTFTOTYPE42 1 "LCDF Typetools" "Version \*V"
-.SH NAME
-ttftotype42 \- create PostScript Type 42 wrapper of TrueType font
-.SH SYNOPSIS
-.B ttftotype42
-\%[\fIinput\fR [\fIoutput\fR]]
-.SH DESCRIPTION
-.BR Ttftotype42
-converts TrueType or TrueType-flavored OpenType font programs into
-PostScript Type 42 format, which is a wrapper for the TrueType outlines.
-This conversion preserves all outlines and hint information from the
-original TrueType font. The Type 42 wrapper uses glyph names identical to
-those expected by
-.M pdflatex 1
-or
-.M otftotfm 1 ,
-so encoding files suitable for TrueType fonts and
-.B pdflatex
-will also work for the Type 42 fonts and
-.M dvips 1 .
-If the file
-.I output
-is not specified output goes to the standard output.
-If the file
-.I input
-is not specified input comes from the standard input.
-'
-.SH OPTIONS
-.PD 0
-.TP 5
-.BI \-o " file\fR, " \-\-output " file"
-Write output font to
-.IR file
-instead of the standard output.
-'
-.Sp
-.TP 5
-.BR \-q ", " \-\-quiet
-Do not generate any error messages.
-'
-.Sp
-.TP 5
-.BR \-h ", " \-\-help
-Print usage information and exit.
-'
-.Sp
-.TP 5
-.BR \-v ", " \-\-version
-Print the version number and some short non-warranty information and exit.
-.PD
-'
-.SH "SEE ALSO"
-.LP
-.M cfftot1 1 ,
-.M otftotfm 1 ,
-.M pdftex 1 ,
-.M dvips 1
-.LP
-Adobe Technical Note #5012,
-.IR "The Type 42 Font Format Specification"
-.LP
-.IR "OpenType Specification" ,
-Version 1.4
-'
-.SH AUTHOR
-Eddie Kohler (ekohler@gmail.com)
-.PP
-The latest version is available from:
-.br
-http://www.lcdf.org/type/
diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc b/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
deleted file mode 100644
index d1e88706cd1..00000000000
--- a/Build/source/texk/lcdf-typetools/lcdf-typetools-src/ttftotype42/ttftotype42.cc
+++ /dev/null
@@ -1,403 +0,0 @@
-/* ttftotype42.cc -- driver for translating TrueType fonts to Type 42 fonts
- *
- * Copyright (c) 2006-2019 Eddie Kohler
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version. This program is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include <efont/t1rw.hh>
-#include <efont/t1font.hh>
-#include <efont/t1item.hh>
-#include <lcdf/clp.h>
-#include <lcdf/error.hh>
-#include <efont/cff.hh>
-#include <efont/otf.hh>
-#include <efont/otfname.hh>
-#include <efont/otfpost.hh>
-#include <efont/otfcmap.hh>
-#include <efont/ttfcs.hh>
-#include <lcdf/md5.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <errno.h>
-#include <math.h>
-#ifdef HAVE_CTIME
-# include <time.h>
-#endif
-#if defined(_MSDOS) || defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-#endif
-
-using namespace Efont;
-
-#define VERSION_OPT 301
-#define HELP_OPT 302
-#define QUIET_OPT 303
-#define OUTPUT_OPT 306
-
-const Clp_Option options[] = {
- { "help", 'h', HELP_OPT, 0, 0 },
- { "output", 'o', OUTPUT_OPT, Clp_ValString, 0 },
- { "quiet", 'q', QUIET_OPT, 0, Clp_Negate },
- { "version", 'v', VERSION_OPT, 0, 0 },
-};
-
-
-static const char *program_name;
-
-
-void
-usage_error(ErrorHandler *errh, const char *error_message, ...)
-{
- va_list val;
- va_start(val, error_message);
- if (!error_message)
- errh->message("Usage: %s [OPTIONS] [FONTFILE [OUTPUTFILE]]", program_name);
- else
- errh->xmessage(ErrorHandler::e_error, error_message, val);
- errh->message("Type %s --help for more information.", program_name);
- exit(1);
-}
-
-void
-usage()
-{
- FileErrorHandler uerrh(stdout);
- uerrh.message("\
-%<Ttftotype42%> translates a TrueType or TrueType-flavored OpenType font into\n\
-PostScript Type 42 format, which is suitable for inclusion in PostScript\n\
-files. The result is usually written to the standard output.\n\
-\n\
-Usage: %s [OPTIONS] [FONTFILE [OUTPUTFILE]]\n\
-\n\
-Options:\n\
- -o, --output=FILE Write output to FILE.\n\
- -q, --quiet Do not generate any error messages.\n\
- -h, --help Print this message and exit.\n\
- -v, --version Print version number and exit.\n\
-\n\
-Report bugs to <ekohler@gmail.com>.\n", program_name);
-}
-
-
-// MAIN
-
-// This is the list of tables Adobe recommends be included from the source TTF,
-// plus the 'cmap' table, which helps to make PDF results searchable.
-static const char * const t42_tables[] = {
- "cmap", "cvt ", "fpgm", "glyf", "head", "hhea", "hmtx",
- "loca", "maxp", "prep", "vhea", "vmtx", 0
-};
-
-struct NameId {
- const char *name;
- int nameid;
-};
-
-static const NameId fontinfo_names[] = {
- { "version", OpenType::Name::N_VERSION },
- { "Notice", OpenType::Name::N_TRADEMARK },
- { "Copyright", OpenType::Name::N_COPYRIGHT },
- { "FullName", OpenType::Name::N_FULLNAME },
- { "FamilyName", OpenType::Name::N_FAMILY },
- { "Weight", OpenType::Name::N_SUBFAMILY },
- { 0, 0 }
-};
-
-static void
-fprint_sfnts(FILE *f, const String &data, bool glyf, const OpenType::Font &font)
-{
- if (glyf && data.length() >= 65535) {
- OpenType::Data head = font.table("head");
- OpenType::Data loca = font.table("loca");
- bool loca_long = (head.length() >= 52 && head.u16(50) != 0);
- int loca_size = (loca_long ? 4 : 2);
- uint32_t first_offset = 0;
- for (int i = 1; i * loca_size < loca.length(); i++) {
- uint32_t next_offset = (loca_long ? loca.u32(4*i) : loca.u16(2*i) * 2);
- if (next_offset - first_offset >= 65535) {
- uint32_t prev_offset = (loca_long ? loca.u32(4*i - 4) : loca.u16(2*i - 2) * 2);
- fprint_sfnts(f, data.substring(first_offset, prev_offset - first_offset), false, font);
- first_offset = prev_offset;
- }
- }
- fprint_sfnts(f, data.substring(first_offset), false, font);
- return;
- } else if (data.length() >= 65535) {
- for (int offset = 0; offset < data.length(); ) {
- int next_offset = offset + 65534;
- if (next_offset > data.length())
- next_offset = data.length();
- fprint_sfnts(f, data.substring(offset, next_offset - offset), false, font);
- offset = next_offset;
- }
- return;
- }
-
- fputc('<', f);
- const uint8_t *s = data.udata();
- for (int i = 0; i < data.length(); i++) {
- if (i && (i % 38) == 0)
- fputc('\n', f);
- fputc("0123456789ABCDEF"[(s[i] >> 4) & 0xF], f);
- fputc("0123456789ABCDEF"[s[i] & 0xF], f);
- }
- if ((data.length() % 38) == 0)
- fputc('\n', f);
- fputs("00>\n", f);
-}
-
-static void
-do_file(const char *infn, const char *outfn, ErrorHandler *errh)
-{
- FILE *f;
- if (!infn || strcmp(infn, "-") == 0) {
- f = stdin;
- infn = "<stdin>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else if (!(f = fopen(infn, "rb")))
- errh->fatal("%s: %s", infn, strerror(errno));
-
- int c = getc(f);
- ungetc(c, f);
-
- if (c == EOF)
- errh->fatal("%s: empty file", infn);
-
- StringAccum sa(150000);
- int amt;
- do {
- if (char *x = sa.reserve(32768)) {
- amt = fread(x, 1, 32768, f);
- sa.adjust_length(amt);
- } else
- amt = 0;
- } while (amt != 0);
- if (!feof(f) || ferror(f))
- errh->error("%s: %s", infn, strerror(errno));
- if (f != stdin)
- fclose(f);
-
- LandmarkErrorHandler cerrh(errh, infn);
- OpenType::Font otf(sa.take_string(), &cerrh);
- if (!otf.ok() || !otf.check_checksums(&cerrh))
- return;
- if (otf.table("CFF"))
- cerrh.fatal("CFF-flavored OpenType font not suitable for Type 42");
-
- OpenType::Name name(otf.table("name"), &cerrh);
- OpenType::Data head_data = otf.table("head");
- if (!otf.table("glyf") || head_data.length() <= 52 || !name.ok())
- cerrh.fatal("font appears to lack required tables");
-
- // create reduced font
- Vector<OpenType::Tag> tags;
- Vector<String> tables;
- for (const char * const *table = t42_tables; *table; table++)
- if (String s = otf.table(*table)) {
- tags.push_back(*table);
- tables.push_back(s);
- }
- OpenType::Font reduced_font = OpenType::Font::make(true, tags, tables);
-
- // output file
- if (!outfn || strcmp(outfn, "-") == 0) {
- f = stdout;
- outfn = "<stdout>";
-#if defined(_MSDOS) || defined(_WIN32)
- _setmode(_fileno(f), _O_BINARY);
-#endif
- } else if (!(f = fopen(outfn, "wb")))
- errh->fatal("%s: %s", outfn, strerror(errno));
-
- // fprintf(f, "%%!\n");
-
- // get glyph names
- TrueTypeBoundsCharstringProgram ttbprog(&otf);
- Vector<PermString> gn;
- ttbprog.glyph_names(gn);
- OpenType::Post post(otf.table("post"));
- OpenType::Cmap cmap(otf.table("cmap"));
- double emunits = head_data.u16(18);
-
- // font opener
- fprintf(f, "%%!PS-TrueTypeFont-65536-%u-1\n", head_data.u32(4));
- if (post.ok())
- fprintf(f, "%%%%VMusage: %u %u\n", post.mem_type42(false), post.mem_type42(true));
- fprintf(f, "11 dict begin\n");
- fprintf(f, "/FontName /%s def\n", name.english_name(OpenType::Name::N_POSTSCRIPT).c_str());
- fprintf(f, "/FontType 42 def\n");
- fprintf(f, "/FontMatrix [1 0 0 1 0 0] def\n");
- fprintf(f, "/FontBBox [%g %g %g %g] readonly def\n",
- /* head_data.s16(36), head_data.s16(38),
- head_data.s16(40), head_data.s16(42)); */
- head_data.s16(36) / emunits, head_data.s16(38) / emunits,
- head_data.s16(40) / emunits, head_data.s16(42) / emunits);
- fprintf(f, "/PaintType 0 def\n");
-
- // XUID (MD5 sum of font data)
- {
- MD5_CONTEXT md5;
- md5_init(&md5);
- md5_update(&md5, (const unsigned char *) reduced_font.data(), reduced_font.length());
- unsigned char result[MD5_DIGEST_SIZE + 3];
- memset(result, 0, sizeof(result));
- md5_final(result, &md5);
- fprintf(f, "/XUID [42");
- for (int i = 0; i < MD5_DIGEST_SIZE; i += 3)
- fprintf(f, " 16#%X", result[i] + result[i+1]*256 + result[i+2]*256*256);
- fprintf(f, "] def\n");
- }
-
- // FontInfo dictionary
- fprintf(f, "/FontInfo 10 dict dup begin\n");
- for (const NameId *n = fontinfo_names; n->name; n++)
- if (String s = name.english_name(n->nameid)) {
- fprintf(f, "/%s (", n->name);
- for (const char *x = s.begin(); x < s.end(); x++)
- if (*x == '(' || *x == '\\' || *x == ')')
- fprintf(f, "\\%c", *x);
- else if (*x == '\n' || (*x >= ' ' && *x <= '~'))
- fputc(*x, f);
- else
- fprintf(f, "\\%03o", (unsigned char) *x);
- fprintf(f, ") readonly def\n");
- }
- if (post.ok()) {
- fprintf(f, "/isFixedPitch %s def\n", (post.is_fixed_pitch() ? "true" : "false"));
- fprintf(f, "/ItalicAngle %g def\n", post.italic_angle());
- fprintf(f, "/UnderlinePosition %g def\n", (post.underline_position() - (post.underline_thickness() / 2)) / emunits);
- fprintf(f, "/UnderlineThickness %g def\n", post.underline_thickness() / emunits);
- }
- fprintf(f, "end readonly def\n");
-
- // encoding
- fprintf(f, "/Encoding 256 array\n0 1 255{1 index exch/.notdef put}for\n");
- for (int i = 0; i < 256; i++)
- if (OpenType::Glyph g = cmap.map_uni(i))
- fprintf(f, "dup %d /%s put\n", i, gn[g].c_str());
- fprintf(f, "readonly def\n");
-
- // print 'sfnts' array
- OpenType::Data sfnts = reduced_font.data_string();
- fprintf(f, "/sfnts[\n");
- fprint_sfnts(f, sfnts.substring(0, OpenType::Font::HEADER_SIZE + OpenType::Font::TABLE_DIR_ENTRY_SIZE * reduced_font.ntables()), false, reduced_font);
- for (int i = 0; i < reduced_font.ntables(); i++) {
- int off = OpenType::Font::HEADER_SIZE + OpenType::Font::TABLE_DIR_ENTRY_SIZE * i;
- uint32_t offset = sfnts.u32(off + 8);
- uint32_t length = (sfnts.u32(off + 12) + 3) & ~3;
- fprint_sfnts(f, sfnts.substring(offset, length), sfnts.u32(off) == 0x676C7966 /*glyf*/, reduced_font);
- }
- fprintf(f, "] def\n");
-
- // print CharStrings data
- fprintf(f, "/CharStrings %d dict dup begin\n", ttbprog.nglyphs());
- for (int i = 0; i < gn.size(); i++)
- fprintf(f, "/%s %d def\n", gn[i].c_str(), i);
- fprintf(f, "end readonly def\n");
-
- // complete font
- fprintf(f, "FontName currentdict end definefont pop\n");
-
- // fprintf(f, "/%s 100 selectfont 30 30 moveto (Hello! 9) show showpage\n", name.english_name(OpenType::Name::N_POSTSCRIPT).c_str());
-
- if (f != stdout)
- fclose(f);
-}
-
-#if 0
-static void check_md5sum() {
- MD5_CONTEXT md5;
- md5_init(&md5);
- md5_update(&md5, (const unsigned char *) "message digest", 14);
- unsigned char result[MD5_DIGEST_SIZE];
- md5_final(result, &md5);
- assert(memcmp(result, "\xF9\x6B\x69\x7D\x7C\xB7\x93\x8D\x52\x5A\x2F\x31\xAA\xF1\x61\xD0", MD5_DIGEST_SIZE) == 0);
-}
-#endif
-
-int
-main(int argc, char *argv[])
-{
- Clp_Parser *clp =
- Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
- program_name = Clp_ProgramName(clp);
-
- ErrorHandler *errh = ErrorHandler::static_initialize(new FileErrorHandler(stderr, String(program_name) + ": "));
- const char *input_file = 0;
- const char *output_file = 0;
-
- while (1) {
- int opt = Clp_Next(clp);
- switch (opt) {
-
- case QUIET_OPT:
- if (clp->negated)
- errh = ErrorHandler::default_handler();
- else
- errh = new SilentErrorHandler;
- break;
-
- case VERSION_OPT:
- printf("ttftotype42 (LCDF typetools) %s\n", VERSION);
- printf("Copyright (C) 2006-2019 Eddie Kohler\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty, not even for merchantability or fitness for a\n\
-particular purpose.\n");
- exit(0);
- break;
-
- case HELP_OPT:
- usage();
- exit(0);
- break;
-
- case OUTPUT_OPT:
- output_file:
- if (output_file)
- usage_error(errh, "output file specified twice");
- output_file = clp->vstr;
- break;
-
- case Clp_NotOption:
- if (input_file && output_file)
- usage_error(errh, "too many arguments");
- else if (input_file)
- goto output_file;
- else
- input_file = clp->vstr;
- break;
-
- case Clp_Done:
- goto done;
-
- case Clp_BadOption:
- usage_error(errh, 0);
- break;
-
- default:
- break;
-
- }
- }
-
- done:
- do_file(input_file, output_file, errh);
-
- return (errh->nerrors() == 0 ? 0 : 1);
-}
diff --git a/Build/source/texk/lcdf-typetools/m4/ac_cxx_template_objs.m4 b/Build/source/texk/lcdf-typetools/m4/ac_cxx_template_objs.m4
deleted file mode 100644
index 823ae58cce6..00000000000
--- a/Build/source/texk/lcdf-typetools/m4/ac_cxx_template_objs.m4
+++ /dev/null
@@ -1,69 +0,0 @@
-dnl Available from the GNU Autoconf Macro Archive at:
-dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_template_objs.html
-dnl
-dnl Adapted for Autoconf 2.63 Peter Breitenlohner <peb@mppmu.mpg.de>
-dnl
-AC_DEFUN([AC_CXX_TEMPLATE_OBJS],
-[AC_CACHE_CHECK(where template objects are stored, ac_cv_cxx_templobjs,
- [ ac_cv_cxx_templobjs='unknown'
- if test "$GXX" = yes; then
- ac_cv_cxx_templobjs='nowhere'
- else
- case $CXX in
- CC|*/CC)
- cat > conftest.cc <<EOF
-template<class T> class A { public : A () {} };
-template<class T> void f (const A<T>&) {}
-main()
-{ A<double> d;
- A<int> i;
- f (d);
- f (i);
- return 0;
-}
-EOF
- if test "$ac_cv_cxx_templobjs" = 'unknown' ; then
- if test -d Templates.DB ; then
- rm -fr Templates.DB
- fi
- if $CXX $CXXFLAGS -ptr. -c conftest.cc 1> /dev/null 2>&1; then
- if test -d Templates.DB ; then
-# this should be Sun CC <= 4.2
- CXXFLAGS="$CXXFLAGS -ptr."
- if test x"$LIBTOOL" = x ; then
- ac_cv_cxx_templobjs='Templates.DB/*.o'
- else
- ac_cv_cxx_templobjs='Templates.DB/*.lo'
- fi
- rm -fr Templates.DB
- fi
- fi
- fi
- if test "$ac_cv_cxx_templobjs" = 'unknown' ; then
- if test -d SunWS_cache ; then
- rm -fr SunWS_cache
- fi
- if $CXX $CXXFLAGS -c conftest.cc 1> /dev/null 2>&1; then
- if test -d SunWS_cache ; then
-# this should be Sun WorkShop C++ compiler 5.x
-# or Sun Forte C++ compiler >= 6.x
- if test x"$LIBTOOL" = x ; then
- ac_cv_cxx_templobjs='SunWS_cache/*/*.o'
- else
- ac_cv_cxx_templobjs='SunWS_cache/*/*.lo'
- fi
- rm -fr SunWS_cache
- fi
- fi
- fi
- rm -f conftest* ;;
- esac
- fi])
-case $ac_cv_cxx_templobjs in
- unknown|nowhere)
- TEMPLATE_OBJS="" ;;
- *)
- TEMPLATE_OBJS="$ac_cv_cxx_templobjs" ;;
-esac
-AC_SUBST(TEMPLATE_OBJS)])
-
diff --git a/Build/source/texk/lcdf-typetools/tests/Ant.enc b/Build/source/texk/lcdf-typetools/tests/Ant.enc
deleted file mode 100644
index 9329e8f4aeb..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/Ant.enc
+++ /dev/null
@@ -1,54 +0,0 @@
-% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-
-%%AutoEnc_enhg3cvpzae3ek6hy2pgtmt5df
-% Command line follows encoding
-/AutoEnc_enhg3cvpzae3ek6hy2pgtmt5df [
-%00
- /.notdef /Euro /.notdef /.notdef /fraction /dotaccent /hungarumlaut /ogonek
- /f_l /.notdef /cwm /f_f /f_i /.notdef /f_f_i /f_f_l
-%10
- /dotlessi /dotlessj.dup /grave /acute /caron /breve /macron /ring
- /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
-%20
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /less /equal /greater /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore
-%60
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
-%70
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /tilde /dieresis
-%80
- /Lslash /quotesingle /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
- /.notdef /perthousand /Scaron /guilsinglleft /.notdef /Zcaron /asciicircum /minus
-%90
- /lslash /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash
- /.notdef /trademark /scaron /guilsinglright /.notdef /zcaron /asciitilde /Ydieresis
-%A0
- /uni00A0 /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /.notdef /copyright /ordfeminine /guillemotleft /logicalnot /uni00AD /registered /.notdef
-%B0
- /degree /plusminus /two.superior /three.superior /.notdef /uni00B5 /paragraph /periodcentered
- /.notdef /one.superior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
-%C0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /.notdef /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-%D0
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /.notdef /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
-%E0
- /agrave /aacute /acircumflex /atilde /adieresis /aring /.notdef /ccedilla
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
-%F0
- /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
- /.notdef /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
-] def
diff --git a/Build/source/texk/lcdf-typetools/tests/Ant.map b/Build/source/texk/lcdf-typetools/tests/Ant.map
deleted file mode 100644
index 8b03202fa71..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/Ant.map
+++ /dev/null
@@ -1 +0,0 @@
-Ant AntPolt-Regular "AutoEnc_enhg3cvpzae3ek6hy2pgtmt5df ReEncodeFont" <[a_enhg3c.enc <AntPolt-Regular.pfb
diff --git a/Build/source/texk/lcdf-typetools/tests/Ant.pfb b/Build/source/texk/lcdf-typetools/tests/Ant.pfb
deleted file mode 100644
index 78517ee2533..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/Ant.pfb
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/Ant.pl b/Build/source/texk/lcdf-typetools/tests/Ant.pl
deleted file mode 100644
index a164a0eb3eb..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/Ant.pl
+++ /dev/null
@@ -1,2014 +0,0 @@
-(FAMILY TeX-AntPolt-Regular)
-(CODINGSCHEME AutoEnc_enhg3cvpzae3ek6hy2pgtmt5df)
-(DESIGNSIZE R 10.0)
-(DESIGNUNITS R 1000.0)
-(COMMENT DESIGNSIZE (1 em) IS IN POINTS)
-(COMMENT OTHER DIMENSIONS ARE MULTIPLES OF DESIGNSIZE/1000)
-(FONTDIMEN
- (SPACE R 270)
- (STRETCH R 135)
- (SHRINK R 90)
- (EXTRASPACE R 45)
- (XHEIGHT R 440)
- (QUAD R 1000)
- )
-(LIGTABLE
- (LABEL D 11) (COMMENT f_f)
- (LIG C l D 15) (COMMENT f_f_l)
- (LIG C i D 14) (COMMENT f_f_i)
- (KRN D 42 R 35) (COMMENT asterisk)
- (KRN D 147 R 26) (COMMENT quotedblleft)
- (KRN D 148 R 26) (COMMENT quotedblright)
- (KRN D 96 R 26) (COMMENT quoteleft)
- (KRN D 39 R 26) (COMMENT quoteright)
- (STOP)
-
- (LABEL D 31) (COMMENT Oslash)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL D 32) (COMMENT space)
- (LIG C l D 144) (COMMENT lslash)
- (LIG C L D 128) (COMMENT Lslash)
- (STOP)
-
- (LABEL D 33) (COMMENT exclam)
- (LIG D 96 D 161) (COMMENT quoteleft) (COMMENT exclamdown)
- (STOP)
-
- (LABEL D 39) (COMMENT quoteright)
- (LIG D 39 D 148) (COMMENT quoteright) (COMMENT quotedblright)
- (KRN C A R -52)
- (KRN D 33 R 91) (COMMENT exclam)
- (KRN D 63 R 91) (COMMENT question)
- (KRN D 196 R -52) (COMMENT Adieresis)
- (KRN D 197 R -52) (COMMENT Aring)
- (STOP)
-
- (LABEL D 45) (COMMENT hyphen)
- (LIG D 45 D 150) (COMMENT hyphen) (COMMENT endash)
- (STOP)
-
- (LABEL D 63) (COMMENT question)
- (LIG D 96 D 191) (COMMENT quoteleft) (COMMENT questiondown)
- (STOP)
-
- (LABEL C A)
- (KRN C a R -35)
- (KRN C b R -35)
- (KRN C C R -35)
- (KRN C c R -35)
- (KRN C d R -35)
- (KRN C e R -35)
- (KRN C G R -35)
- (KRN C J R -43)
- (KRN C O R -35)
- (KRN C o R -35)
- (KRN C Q R -35)
- (KRN C q R -35)
- (KRN D 34 R -113) (COMMENT quotedbl)
- (KRN D 129 R -113) (COMMENT quotesingle)
- (KRN C s R -35)
- (KRN C T R -113)
- (KRN C t R -43)
- (KRN C U R -52)
- (KRN C u R -43)
- (KRN C V R -113)
- (KRN C v R -52)
- (KRN C W R -113)
- (KRN C w R -52)
- (KRN C Y R -113)
- (KRN C y R -26)
- (KRN D 228 R -35) (COMMENT adieresis)
- (KRN D 229 R -35) (COMMENT aring)
- (KRN D 199 R -35) (COMMENT Ccedilla)
- (KRN D 231 R -35) (COMMENT ccedilla)
- (KRN D 235 R -35) (COMMENT edieresis)
- (KRN D 214 R -35) (COMMENT Odieresis)
- (KRN D 246 R -35) (COMMENT odieresis)
- (KRN D 210 R -35) (COMMENT Ograve)
- (KRN D 242 R -35) (COMMENT ograve)
- (KRN D 31 R -35) (COMMENT Oslash)
- (KRN D 28 R -35) (COMMENT oslash)
- (KRN D 147 R -113) (COMMENT quotedblleft)
- (KRN D 148 R -113) (COMMENT quotedblright)
- (KRN D 96 R -113) (COMMENT quoteleft)
- (KRN D 39 R -113) (COMMENT quoteright)
- (KRN D 154 R -35) (COMMENT scaron)
- (KRN D 219 R -52) (COMMENT Ucircumflex)
- (KRN D 251 R -43) (COMMENT ucircumflex)
- (KRN D 220 R -52) (COMMENT Udieresis)
- (KRN D 252 R -43) (COMMENT udieresis)
- (KRN D 159 R -113) (COMMENT Ydieresis)
- (KRN D 255 R -26) (COMMENT ydieresis)
- (STOP)
-
- (LABEL C B)
- (KRN C A R -35)
- (KRN C V R -35)
- (KRN C W R -35)
- (KRN C Y R -35)
- (KRN D 193 R -35) (COMMENT Aacute)
- (KRN D 194 R -35) (COMMENT Acircumflex)
- (KRN D 196 R -35) (COMMENT Adieresis)
- (KRN D 192 R -35) (COMMENT Agrave)
- (KRN D 197 R -35) (COMMENT Aring)
- (KRN D 195 R -35) (COMMENT Atilde)
- (KRN D 159 R -35) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C C)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 193 R -43) (COMMENT Aacute)
- (KRN D 194 R -43) (COMMENT Acircumflex)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 192 R -43) (COMMENT Agrave)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 195 R -43) (COMMENT Atilde)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 211 R 26) (COMMENT Oacute)
- (KRN D 212 R 26) (COMMENT Ocircumflex)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 210 R 26) (COMMENT Ograve)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 213 R 26) (COMMENT Otilde)
- (KRN D 218 R -26) (COMMENT Uacute)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 217 R -26) (COMMENT Ugrave)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C D)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 193 R -43) (COMMENT Aacute)
- (KRN D 194 R -43) (COMMENT Acircumflex)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 192 R -43) (COMMENT Agrave)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 195 R -43) (COMMENT Atilde)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 211 R 26) (COMMENT Oacute)
- (KRN D 212 R 26) (COMMENT Ocircumflex)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 210 R 26) (COMMENT Ograve)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 213 R 26) (COMMENT Otilde)
- (KRN D 218 R -26) (COMMENT Uacute)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 217 R -26) (COMMENT Ugrave)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C F)
- (KRN C A R -69)
- (KRN C a R -35)
- (KRN C c R -35)
- (KRN D 44 R -52) (COMMENT comma)
- (KRN C d R -35)
- (KRN C e R -35)
- (KRN C g R -35)
- (KRN C o R -35)
- (KRN D 46 R -52) (COMMENT period)
- (KRN C q R -35)
- (KRN C s R -35)
- (KRN D 225 R -26) (COMMENT aacute)
- (KRN D 226 R -17) (COMMENT acircumflex)
- (KRN D 196 R -69) (COMMENT Adieresis)
- (KRN D 228 R -17) (COMMENT adieresis)
- (KRN D 29 R -35) (COMMENT AE)
- (KRN D 26 R -35) (COMMENT ae)
- (KRN D 224 R -17) (COMMENT agrave)
- (KRN D 197 R -69) (COMMENT Aring)
- (KRN D 229 R -17) (COMMENT aring)
- (KRN D 227 R -17) (COMMENT atilde)
- (KRN D 231 R -35) (COMMENT ccedilla)
- (KRN D 233 R -26) (COMMENT eacute)
- (KRN D 234 R -17) (COMMENT ecircumflex)
- (KRN D 235 R -17) (COMMENT edieresis)
- (KRN D 232 R -17) (COMMENT egrave)
- (KRN D 243 R -26) (COMMENT oacute)
- (KRN D 244 R -17) (COMMENT ocircumflex)
- (KRN D 246 R -17) (COMMENT odieresis)
- (KRN D 30 R -35) (COMMENT OE)
- (KRN D 27 R -35) (COMMENT oe)
- (KRN D 242 R -17) (COMMENT ograve)
- (KRN D 28 R -35) (COMMENT oslash)
- (KRN D 245 R -17) (COMMENT otilde)
- (KRN D 154 R -17) (COMMENT scaron)
- (STOP)
-
- (LABEL C G)
- (KRN C A R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C Y R -26)
- (KRN D 193 R -26) (COMMENT Aacute)
- (KRN D 194 R -26) (COMMENT Acircumflex)
- (KRN D 196 R -26) (COMMENT Adieresis)
- (KRN D 192 R -26) (COMMENT Agrave)
- (KRN D 197 R -26) (COMMENT Aring)
- (KRN D 195 R -26) (COMMENT Atilde)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C J)
- (KRN C A R -43)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 29 R -43) (COMMENT AE)
- (KRN D 197 R -43) (COMMENT Aring)
- (STOP)
-
- (LABEL C K)
- (KRN C C R -69)
- (KRN C G R -69)
- (KRN C O R -69)
- (KRN C V R -35)
- (KRN C v R -35)
- (KRN C W R -35)
- (KRN C w R -35)
- (KRN C Y R -35)
- (KRN D 199 R -69) (COMMENT Ccedilla)
- (KRN D 214 R -69) (COMMENT Odieresis)
- (KRN D 31 R -69) (COMMENT Oslash)
- (KRN D 221 R -35) (COMMENT Yacute)
- (KRN D 159 R -35) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C L)
- (KRN D 34 R -69) (COMMENT quotedbl)
- (KRN D 129 R -69) (COMMENT quotesingle)
- (KRN C T R -69)
- (KRN C V R -69)
- (KRN C W R -69)
- (KRN C Y R -52)
- (KRN D 147 R -69) (COMMENT quotedblleft)
- (KRN D 148 R -69) (COMMENT quotedblright)
- (KRN D 96 R -69) (COMMENT quoteleft)
- (KRN D 39 R -69) (COMMENT quoteright)
- (KRN D 221 R -52) (COMMENT Yacute)
- (KRN D 159 R -52) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C N)
- (KRN C A R -43)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 193 R -43) (COMMENT Aacute)
- (KRN D 194 R -43) (COMMENT Acircumflex)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 29 R -43) (COMMENT AE)
- (KRN D 192 R -43) (COMMENT Agrave)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 195 R -43) (COMMENT Atilde)
- (STOP)
-
- (LABEL C O)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 193 R -43) (COMMENT Aacute)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 192 R -43) (COMMENT Agrave)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 195 R -43) (COMMENT Atilde)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 211 R 26) (COMMENT Oacute)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 210 R 26) (COMMENT Ograve)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C P)
- (KRN C A R -69)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 193 R -69) (COMMENT Aacute)
- (KRN D 196 R -69) (COMMENT Adieresis)
- (KRN D 197 R -69) (COMMENT Aring)
- (STOP)
-
- (LABEL C Q)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 218 R -26) (COMMENT Uacute)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 217 R -26) (COMMENT Ugrave)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C R)
- (KRN C T R -43)
- (KRN C V R -43)
- (KRN C W R -43)
- (KRN C Y R -43)
- (KRN D 159 R -43) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C S)
- (KRN C A R -35)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN D 46 R -26) (COMMENT period)
- (KRN D 193 R -35) (COMMENT Aacute)
- (KRN D 194 R -35) (COMMENT Acircumflex)
- (KRN D 196 R -35) (COMMENT Adieresis)
- (KRN D 192 R -35) (COMMENT Agrave)
- (KRN D 197 R -35) (COMMENT Aring)
- (KRN D 195 R -35) (COMMENT Atilde)
- (STOP)
-
- (LABEL C T)
- (KRN C A R -69)
- (KRN C a R -35)
- (KRN C c R -35)
- (KRN D 44 R -52) (COMMENT comma)
- (KRN C d R -35)
- (KRN C e R -35)
- (KRN C g R -35)
- (KRN C o R -35)
- (KRN D 46 R -52) (COMMENT period)
- (KRN C q R -35)
- (KRN C s R -35)
- (KRN D 193 R -69) (COMMENT Aacute)
- (KRN D 225 R -26) (COMMENT aacute)
- (KRN D 194 R -69) (COMMENT Acircumflex)
- (KRN D 226 R -17) (COMMENT acircumflex)
- (KRN D 196 R -69) (COMMENT Adieresis)
- (KRN D 228 R -17) (COMMENT adieresis)
- (KRN D 29 R -113) (COMMENT AE)
- (KRN D 26 R -52) (COMMENT ae)
- (KRN D 192 R -69) (COMMENT Agrave)
- (KRN D 224 R -17) (COMMENT agrave)
- (KRN D 197 R -69) (COMMENT Aring)
- (KRN D 229 R -17) (COMMENT aring)
- (KRN D 195 R -69) (COMMENT Atilde)
- (KRN D 227 R -17) (COMMENT atilde)
- (KRN D 231 R -35) (COMMENT ccedilla)
- (KRN D 233 R -26) (COMMENT eacute)
- (KRN D 234 R -17) (COMMENT ecircumflex)
- (KRN D 235 R -17) (COMMENT edieresis)
- (KRN D 232 R -17) (COMMENT egrave)
- (KRN D 243 R -26) (COMMENT oacute)
- (KRN D 244 R -17) (COMMENT ocircumflex)
- (KRN D 246 R -17) (COMMENT odieresis)
- (KRN D 27 R -52) (COMMENT oe)
- (KRN D 242 R -17) (COMMENT ograve)
- (KRN D 28 R -35) (COMMENT oslash)
- (KRN D 245 R -17) (COMMENT otilde)
- (KRN D 154 R -17) (COMMENT scaron)
- (STOP)
-
- (LABEL C U)
- (KRN C A R -43)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 193 R -43) (COMMENT Aacute)
- (KRN D 194 R -43) (COMMENT Acircumflex)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 29 R -43) (COMMENT AE)
- (KRN D 192 R -43) (COMMENT Agrave)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 195 R -43) (COMMENT Atilde)
- (STOP)
-
- (LABEL C V)
- (KRN C A R -113)
- (KRN C a R -52)
- (KRN C c R -52)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN C d R -52)
- (KRN C e R -52)
- (KRN C g R -52)
- (KRN C o R -52)
- (KRN D 46 R -43) (COMMENT period)
- (KRN C q R -52)
- (KRN C s R -52)
- (KRN D 193 R -113) (COMMENT Aacute)
- (KRN D 225 R -39) (COMMENT aacute)
- (KRN D 194 R -113) (COMMENT Acircumflex)
- (KRN D 226 R -26) (COMMENT acircumflex)
- (KRN D 196 R -113) (COMMENT Adieresis)
- (KRN D 228 R -26) (COMMENT adieresis)
- (KRN D 29 R -113) (COMMENT AE)
- (KRN D 26 R -52) (COMMENT ae)
- (KRN D 192 R -113) (COMMENT Agrave)
- (KRN D 224 R -26) (COMMENT agrave)
- (KRN D 197 R -113) (COMMENT Aring)
- (KRN D 229 R -26) (COMMENT aring)
- (KRN D 195 R -113) (COMMENT Atilde)
- (KRN D 227 R -26) (COMMENT atilde)
- (KRN D 231 R -52) (COMMENT ccedilla)
- (KRN D 233 R -39) (COMMENT eacute)
- (KRN D 234 R -26) (COMMENT ecircumflex)
- (KRN D 235 R -26) (COMMENT edieresis)
- (KRN D 232 R -26) (COMMENT egrave)
- (KRN D 243 R -39) (COMMENT oacute)
- (KRN D 244 R -26) (COMMENT ocircumflex)
- (KRN D 246 R -26) (COMMENT odieresis)
- (KRN D 27 R -52) (COMMENT oe)
- (KRN D 242 R -26) (COMMENT ograve)
- (KRN D 28 R -52) (COMMENT oslash)
- (KRN D 245 R -26) (COMMENT otilde)
- (KRN D 154 R -26) (COMMENT scaron)
- (STOP)
-
- (LABEL C W)
- (KRN C A R -113)
- (KRN C a R -52)
- (KRN C c R -52)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN C d R -52)
- (KRN C e R -52)
- (KRN C g R -52)
- (KRN C o R -52)
- (KRN D 46 R -43) (COMMENT period)
- (KRN C q R -52)
- (KRN C s R -52)
- (KRN D 225 R -39) (COMMENT aacute)
- (KRN D 226 R -26) (COMMENT acircumflex)
- (KRN D 196 R -113) (COMMENT Adieresis)
- (KRN D 228 R -26) (COMMENT adieresis)
- (KRN D 29 R -113) (COMMENT AE)
- (KRN D 26 R -52) (COMMENT ae)
- (KRN D 224 R -26) (COMMENT agrave)
- (KRN D 197 R -113) (COMMENT Aring)
- (KRN D 229 R -26) (COMMENT aring)
- (KRN D 227 R -26) (COMMENT atilde)
- (KRN D 231 R -52) (COMMENT ccedilla)
- (KRN D 233 R -39) (COMMENT eacute)
- (KRN D 234 R -26) (COMMENT ecircumflex)
- (KRN D 235 R -26) (COMMENT edieresis)
- (KRN D 232 R -26) (COMMENT egrave)
- (KRN D 243 R -39) (COMMENT oacute)
- (KRN D 244 R -26) (COMMENT ocircumflex)
- (KRN D 246 R -26) (COMMENT odieresis)
- (KRN D 27 R -52) (COMMENT oe)
- (KRN D 242 R -26) (COMMENT ograve)
- (KRN D 28 R -52) (COMMENT oslash)
- (KRN D 245 R -26) (COMMENT otilde)
- (KRN D 154 R -26) (COMMENT scaron)
- (STOP)
-
- (LABEL C X)
- (KRN C C R -69)
- (KRN C G R -69)
- (KRN C O R -69)
- (KRN C V R -35)
- (KRN C v R -35)
- (KRN C W R -35)
- (KRN C w R -35)
- (KRN C Y R -35)
- (KRN D 199 R -69) (COMMENT Ccedilla)
- (KRN D 211 R -69) (COMMENT Oacute)
- (KRN D 212 R -69) (COMMENT Ocircumflex)
- (KRN D 214 R -69) (COMMENT Odieresis)
- (KRN D 210 R -69) (COMMENT Ograve)
- (KRN D 31 R -69) (COMMENT Oslash)
- (KRN D 213 R -69) (COMMENT Otilde)
- (KRN D 159 R -35) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL C Y)
- (KRN C A R -113)
- (KRN C a R -52)
- (KRN C c R -52)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN C d R -52)
- (KRN C e R -52)
- (KRN C g R -52)
- (KRN C o R -52)
- (KRN D 46 R -43) (COMMENT period)
- (KRN C q R -52)
- (KRN C s R -52)
- (KRN D 225 R -39) (COMMENT aacute)
- (KRN D 226 R -26) (COMMENT acircumflex)
- (KRN D 196 R -113) (COMMENT Adieresis)
- (KRN D 228 R -26) (COMMENT adieresis)
- (KRN D 29 R -113) (COMMENT AE)
- (KRN D 26 R -52) (COMMENT ae)
- (KRN D 224 R -26) (COMMENT agrave)
- (KRN D 197 R -113) (COMMENT Aring)
- (KRN D 229 R -26) (COMMENT aring)
- (KRN D 227 R -26) (COMMENT atilde)
- (KRN D 231 R -52) (COMMENT ccedilla)
- (KRN D 233 R -39) (COMMENT eacute)
- (KRN D 234 R -26) (COMMENT ecircumflex)
- (KRN D 235 R -26) (COMMENT edieresis)
- (KRN D 232 R -26) (COMMENT egrave)
- (KRN D 243 R -39) (COMMENT oacute)
- (KRN D 244 R -26) (COMMENT ocircumflex)
- (KRN D 246 R -26) (COMMENT odieresis)
- (KRN D 27 R -52) (COMMENT oe)
- (KRN D 242 R -26) (COMMENT ograve)
- (KRN D 28 R -52) (COMMENT oslash)
- (KRN D 245 R -26) (COMMENT otilde)
- (KRN D 154 R -26) (COMMENT scaron)
- (STOP)
-
- (LABEL D 96) (COMMENT quoteleft)
- (LIG D 96 D 147) (COMMENT quoteleft) (COMMENT quotedblleft)
- (KRN C A R -52)
- (KRN D 196 R -52) (COMMENT Adieresis)
- (KRN D 197 R -52) (COMMENT Aring)
- (STOP)
-
- (LABEL C e)
- (KRN C V R -52)
- (STOP)
-
- (LABEL C f)
- (LIG C f D 11) (COMMENT f_f)
- (LIG C l D 8) (COMMENT f_l)
- (LIG C i D 12) (COMMENT f_i)
- (KRN D 42 R 35) (COMMENT asterisk)
- (KRN D 147 R 26) (COMMENT quotedblleft)
- (KRN D 148 R 26) (COMMENT quotedblright)
- (KRN D 96 R 26) (COMMENT quoteleft)
- (KRN D 39 R 26) (COMMENT quoteright)
- (STOP)
-
- (LABEL C k)
- (KRN C V R -26)
- (KRN C W R -26)
- (STOP)
-
- (LABEL C r)
- (KRN D 44 R -35) (COMMENT comma)
- (KRN D 46 R -35) (COMMENT period)
- (STOP)
-
- (LABEL C v)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (STOP)
-
- (LABEL C w)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (STOP)
-
- (LABEL D 128) (COMMENT Lslash)
- (KRN D 34 R -69) (COMMENT quotedbl)
- (KRN D 129 R -69) (COMMENT quotesingle)
- (KRN C T R -55)
- (KRN C V R -55)
- (KRN C W R -55)
- (KRN C Y R -42)
- (KRN D 147 R -69) (COMMENT quotedblleft)
- (KRN D 148 R -69) (COMMENT quotedblright)
- (KRN D 96 R -69) (COMMENT quoteleft)
- (KRN D 39 R -69) (COMMENT quoteright)
- (KRN D 221 R -42) (COMMENT Yacute)
- (KRN D 159 R -42) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL D 132) (COMMENT quotedblbase)
- (KRN C T R -52)
- (KRN C V R -69)
- (KRN C W R -69)
- (KRN C Y R -52)
- (KRN D 159 R -52) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL D 138) (COMMENT Scaron)
- (KRN C A R -35)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN D 46 R -26) (COMMENT period)
- (KRN D 196 R -35) (COMMENT Adieresis)
- (KRN D 197 R -35) (COMMENT Aring)
- (STOP)
-
- (LABEL D 147) (COMMENT quotedblleft)
- (KRN C A R -69)
- (KRN D 196 R -69) (COMMENT Adieresis)
- (KRN D 197 R -69) (COMMENT Aring)
- (STOP)
-
- (LABEL D 148) (COMMENT quotedblright)
- (KRN C A R -69)
- (KRN D 196 R -69) (COMMENT Adieresis)
- (KRN D 197 R -69) (COMMENT Aring)
- (STOP)
-
- (LABEL D 150) (COMMENT endash)
- (LIG D 45 D 151) (COMMENT hyphen) (COMMENT emdash)
- (STOP)
-
- (LABEL D 159) (COMMENT Ydieresis)
- (KRN C A R -113)
- (KRN C a R -52)
- (KRN C c R -52)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN C d R -52)
- (KRN C e R -52)
- (KRN C g R -52)
- (KRN C o R -52)
- (KRN D 46 R -43) (COMMENT period)
- (KRN C q R -52)
- (KRN C s R -52)
- (KRN D 225 R -39) (COMMENT aacute)
- (KRN D 226 R -26) (COMMENT acircumflex)
- (KRN D 196 R -113) (COMMENT Adieresis)
- (KRN D 228 R -26) (COMMENT adieresis)
- (KRN D 29 R -113) (COMMENT AE)
- (KRN D 26 R -52) (COMMENT ae)
- (KRN D 224 R -26) (COMMENT agrave)
- (KRN D 197 R -113) (COMMENT Aring)
- (KRN D 229 R -26) (COMMENT aring)
- (KRN D 227 R -26) (COMMENT atilde)
- (KRN D 231 R -52) (COMMENT ccedilla)
- (KRN D 233 R -39) (COMMENT eacute)
- (KRN D 234 R -26) (COMMENT ecircumflex)
- (KRN D 235 R -26) (COMMENT edieresis)
- (KRN D 232 R -26) (COMMENT egrave)
- (KRN D 243 R -39) (COMMENT oacute)
- (KRN D 244 R -26) (COMMENT ocircumflex)
- (KRN D 246 R -26) (COMMENT odieresis)
- (KRN D 27 R -52) (COMMENT oe)
- (KRN D 242 R -26) (COMMENT ograve)
- (KRN D 28 R -52) (COMMENT oslash)
- (KRN D 245 R -26) (COMMENT otilde)
- (KRN D 154 R -26) (COMMENT scaron)
- (STOP)
-
- (LABEL D 192) (COMMENT Agrave)
- (KRN C O R -35)
- (KRN C o R -35)
- (KRN C U R -52)
- (KRN C u R -43)
- (KRN C Y R -113)
- (KRN C y R -26)
- (STOP)
-
- (LABEL D 193) (COMMENT Aacute)
- (KRN C C R -35)
- (KRN C c R -35)
- (KRN C O R -35)
- (KRN C o R -35)
- (KRN C T R -113)
- (KRN C t R -43)
- (KRN C U R -52)
- (KRN C u R -43)
- (KRN C Y R -113)
- (KRN C y R -26)
- (STOP)
-
- (LABEL D 194) (COMMENT Acircumflex)
- (KRN C U R -52)
- (KRN C u R -43)
- (KRN C Y R -113)
- (KRN C y R -26)
- (STOP)
-
- (LABEL D 195) (COMMENT Atilde)
- (KRN C O R -35)
- (KRN C o R -35)
- (KRN C Y R -113)
- (KRN C y R -26)
- (STOP)
-
- (LABEL D 196) (COMMENT Adieresis)
- (KRN C a R -35)
- (KRN C b R -35)
- (KRN C C R -35)
- (KRN C c R -35)
- (KRN C d R -35)
- (KRN C e R -35)
- (KRN C G R -35)
- (KRN C J R -43)
- (KRN C O R -35)
- (KRN C o R -35)
- (KRN C Q R -35)
- (KRN C q R -35)
- (KRN D 34 R -113) (COMMENT quotedbl)
- (KRN D 129 R -113) (COMMENT quotesingle)
- (KRN C s R -35)
- (KRN C T R -113)
- (KRN C t R -43)
- (KRN C U R -52)
- (KRN C u R -43)
- (KRN C V R -113)
- (KRN C v R -52)
- (KRN C W R -113)
- (KRN C w R -52)
- (KRN C Y R -113)
- (KRN C y R -26)
- (KRN D 228 R -35) (COMMENT adieresis)
- (KRN D 229 R -35) (COMMENT aring)
- (KRN D 199 R -35) (COMMENT Ccedilla)
- (KRN D 231 R -35) (COMMENT ccedilla)
- (KRN D 235 R -35) (COMMENT edieresis)
- (KRN D 214 R -35) (COMMENT Odieresis)
- (KRN D 246 R -35) (COMMENT odieresis)
- (KRN D 31 R -35) (COMMENT Oslash)
- (KRN D 28 R -35) (COMMENT oslash)
- (KRN D 147 R -113) (COMMENT quotedblleft)
- (KRN D 148 R -113) (COMMENT quotedblright)
- (KRN D 96 R -113) (COMMENT quoteleft)
- (KRN D 39 R -113) (COMMENT quoteright)
- (KRN D 154 R -35) (COMMENT scaron)
- (KRN D 219 R -52) (COMMENT Ucircumflex)
- (KRN D 251 R -43) (COMMENT ucircumflex)
- (KRN D 220 R -52) (COMMENT Udieresis)
- (KRN D 252 R -43) (COMMENT udieresis)
- (KRN D 159 R -113) (COMMENT Ydieresis)
- (KRN D 255 R -26) (COMMENT ydieresis)
- (STOP)
-
- (LABEL D 197) (COMMENT Aring)
- (KRN C a R -35)
- (KRN C b R -35)
- (KRN C C R -35)
- (KRN C c R -35)
- (KRN C d R -35)
- (KRN C e R -35)
- (KRN C G R -35)
- (KRN C J R -43)
- (KRN C O R -35)
- (KRN C o R -35)
- (KRN C Q R -35)
- (KRN C q R -35)
- (KRN D 34 R -113) (COMMENT quotedbl)
- (KRN D 129 R -113) (COMMENT quotesingle)
- (KRN C s R -35)
- (KRN C T R -113)
- (KRN C t R -43)
- (KRN C U R -52)
- (KRN C u R -43)
- (KRN C V R -113)
- (KRN C v R -52)
- (KRN C W R -113)
- (KRN C w R -52)
- (KRN C Y R -113)
- (KRN C y R -26)
- (KRN D 228 R -35) (COMMENT adieresis)
- (KRN D 229 R -35) (COMMENT aring)
- (KRN D 199 R -35) (COMMENT Ccedilla)
- (KRN D 231 R -35) (COMMENT ccedilla)
- (KRN D 235 R -35) (COMMENT edieresis)
- (KRN D 214 R -35) (COMMENT Odieresis)
- (KRN D 246 R -35) (COMMENT odieresis)
- (KRN D 31 R -35) (COMMENT Oslash)
- (KRN D 28 R -35) (COMMENT oslash)
- (KRN D 147 R -113) (COMMENT quotedblleft)
- (KRN D 148 R -113) (COMMENT quotedblright)
- (KRN D 96 R -113) (COMMENT quoteleft)
- (KRN D 39 R -113) (COMMENT quoteright)
- (KRN D 154 R -35) (COMMENT scaron)
- (KRN D 219 R -52) (COMMENT Ucircumflex)
- (KRN D 251 R -43) (COMMENT ucircumflex)
- (KRN D 220 R -52) (COMMENT Udieresis)
- (KRN D 252 R -43) (COMMENT udieresis)
- (KRN D 159 R -113) (COMMENT Ydieresis)
- (KRN D 255 R -26) (COMMENT ydieresis)
- (STOP)
-
- (LABEL D 199) (COMMENT Ccedilla)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL D 209) (COMMENT Ntilde)
- (KRN C A R -43)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 29 R -43) (COMMENT AE)
- (KRN D 197 R -43) (COMMENT Aring)
- (STOP)
-
- (LABEL D 210) (COMMENT Ograve)
- (KRN C A R -43)
- (STOP)
-
- (LABEL D 211) (COMMENT Oacute)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN C O R 26)
- (STOP)
-
- (LABEL D 214) (COMMENT Odieresis)
- (KRN C A R -43)
- (KRN C C R 26)
- (KRN D 44 R -26) (COMMENT comma)
- (KRN C G R 26)
- (KRN C O R 26)
- (KRN D 46 R -26) (COMMENT period)
- (KRN C Q R 26)
- (KRN C U R -26)
- (KRN C V R -26)
- (KRN C W R -26)
- (KRN C X R -26)
- (KRN C Y R -26)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 197 R -43) (COMMENT Aring)
- (KRN D 199 R 26) (COMMENT Ccedilla)
- (KRN D 214 R 26) (COMMENT Odieresis)
- (KRN D 31 R 26) (COMMENT Oslash)
- (KRN D 219 R -26) (COMMENT Ucircumflex)
- (KRN D 220 R -26) (COMMENT Udieresis)
- (KRN D 159 R -26) (COMMENT Ydieresis)
- (STOP)
-
- (LABEL D 217) (COMMENT Ugrave)
- (KRN C A R -43)
- (STOP)
-
- (LABEL D 218) (COMMENT Uacute)
- (KRN C A R -43)
- (STOP)
-
- (LABEL D 219) (COMMENT Ucircumflex)
- (KRN C A R -43)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 29 R -43) (COMMENT AE)
- (KRN D 197 R -43) (COMMENT Aring)
- (STOP)
-
- (LABEL D 220) (COMMENT Udieresis)
- (KRN C A R -43)
- (KRN D 44 R -43) (COMMENT comma)
- (KRN D 46 R -43) (COMMENT period)
- (KRN D 196 R -43) (COMMENT Adieresis)
- (KRN D 29 R -43) (COMMENT AE)
- (KRN D 197 R -43) (COMMENT Aring)
- (STOP)
-
- (LABEL D 221) (COMMENT Yacute)
- (KRN C c R -52)
- (KRN D 225 R -39) (COMMENT aacute)
- (KRN D 226 R -26) (COMMENT acircumflex)
- (KRN D 228 R -26) (COMMENT adieresis)
- (KRN D 29 R -113) (COMMENT AE)
- (KRN D 26 R -52) (COMMENT ae)
- (KRN D 224 R -26) (COMMENT agrave)
- (KRN D 229 R -26) (COMMENT aring)
- (KRN D 227 R -26) (COMMENT atilde)
- (KRN D 233 R -39) (COMMENT eacute)
- (KRN D 234 R -26) (COMMENT ecircumflex)
- (KRN D 235 R -26) (COMMENT edieresis)
- (KRN D 232 R -26) (COMMENT egrave)
- (KRN D 243 R -39) (COMMENT oacute)
- (KRN D 244 R -26) (COMMENT ocircumflex)
- (KRN D 246 R -26) (COMMENT odieresis)
- (KRN D 27 R -52) (COMMENT oe)
- (KRN D 242 R -26) (COMMENT ograve)
- (KRN D 245 R -26) (COMMENT otilde)
- (KRN D 154 R -26) (COMMENT scaron)
- (STOP)
- )
-(CHARACTER D 1 (COMMENT Euro)
- (CHARWD R 552)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER D 4 (COMMENT fraction)
- (CHARWD R 166)
- (CHARHT R 724)
- (CHARDP R 12)
- (CHARIC R 143)
- )
-(CHARACTER D 5 (COMMENT dotaccent)
- (CHARWD R 500)
- (CHARHT R 642)
- )
-(CHARACTER D 6 (COMMENT hungarumlaut)
- (CHARWD R 500)
- (CHARHT R 664)
- )
-(CHARACTER D 7 (COMMENT ogonek)
- (CHARWD R 500)
- (CHARHT R 6)
- (CHARDP R 216)
- )
-(CHARACTER D 8 (COMMENT f_l)
- (CHARWD R 554)
- (CHARHT R 712)
- )
-(CHARACTER D 10 (COMMENT cwm)
- (CHARWD R 0)
- )
-(CHARACTER D 11 (COMMENT f_f)
- (CHARWD R 584)
- (CHARHT R 712)
- (CHARIC R 50)
- )
-(CHARACTER D 12 (COMMENT f_i)
- (CHARWD R 554)
- (CHARHT R 712)
- )
-(CHARACTER D 14 (COMMENT f_f_i)
- (CHARWD R 846)
- (CHARHT R 712)
- )
-(CHARACTER D 15 (COMMENT f_f_l)
- (CHARWD R 846)
- (CHARHT R 712)
- )
-(CHARACTER D 16 (COMMENT dotlessi)
- (CHARWD R 262)
- (CHARHT R 452)
- )
-(CHARACTER D 17 (COMMENT dotlessj.dup)
- (CHARWD R 262)
- (CHARHT R 452)
- (CHARDP R 209)
- )
-(CHARACTER D 18 (COMMENT grave)
- (CHARWD R 500)
- (CHARHT R 664)
- )
-(CHARACTER D 19 (COMMENT acute)
- (CHARWD R 500)
- (CHARHT R 664)
- )
-(CHARACTER D 20 (COMMENT caron)
- (CHARWD R 500)
- (CHARHT R 664)
- )
-(CHARACTER D 21 (COMMENT breve)
- (CHARWD R 500)
- (CHARHT R 656)
- )
-(CHARACTER D 22 (COMMENT macron)
- (CHARWD R 500)
- (CHARHT R 598)
- )
-(CHARACTER D 23 (COMMENT ring)
- (CHARWD R 500)
- (CHARHT R 662)
- )
-(CHARACTER D 24 (COMMENT cedilla)
- (CHARWD R 500)
- (CHARHT R 6)
- (CHARDP R 216)
- )
-(CHARACTER D 25 (COMMENT germandbls)
- (CHARWD R 572)
- (CHARHT R 712)
- (CHARDP R 12)
- )
-(CHARACTER D 26 (COMMENT ae)
- (CHARWD R 702)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER D 27 (COMMENT oe)
- (CHARWD R 799)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER D 28 (COMMENT oslash)
- (CHARWD R 494)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER D 29 (COMMENT AE)
- (CHARWD R 959)
- (CHARHT R 700)
- )
-(CHARACTER D 30 (COMMENT OE)
- (CHARWD R 972)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER D 31 (COMMENT Oslash)
- (CHARWD R 728)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER D 32 (COMMENT space)
- (CHARWD R 270)
- )
-(CHARACTER D 33 (COMMENT exclam)
- (CHARWD R 218)
- (CHARHT R 700)
- (CHARDP R 6)
- )
-(CHARACTER D 34 (COMMENT quotedbl)
- (CHARWD R 278)
- (CHARHT R 700)
- )
-(CHARACTER D 35 (COMMENT numbersign)
- (CHARWD R 580)
- (CHARHT R 637)
- )
-(CHARACTER D 36 (COMMENT dollar)
- (CHARWD R 473)
- (CHARHT R 700)
- (CHARDP R 80)
- )
-(CHARACTER D 37 (COMMENT percent)
- (CHARWD R 722)
- (CHARHT R 712)
- (CHARDP R 12)
- )
-(CHARACTER D 38 (COMMENT ampersand)
- (CHARWD R 728)
- (CHARHT R 712)
- (CHARDP R 12)
- )
-(CHARACTER D 39 (COMMENT quoteright)
- (CHARWD R 204)
- (CHARHT R 706)
- )
-(CHARACTER D 40 (COMMENT parenleft)
- (CHARWD R 268)
- (CHARHT R 750)
- (CHARDP R 250)
- )
-(CHARACTER D 41 (COMMENT parenright)
- (CHARWD R 268)
- (CHARHT R 750)
- (CHARDP R 250)
- )
-(CHARACTER D 42 (COMMENT asterisk)
- (CHARWD R 450)
- (CHARHT R 722)
- )
-(CHARACTER D 43 (COMMENT plus)
- (CHARWD R 575)
- (CHARHT R 486)
- )
-(CHARACTER D 44 (COMMENT comma)
- (CHARWD R 204)
- (CHARHT R 109)
- (CHARDP R 144)
- )
-(CHARACTER D 45 (COMMENT hyphen)
- (CHARWD R 306)
- (CHARHT R 250)
- )
-(CHARACTER D 46 (COMMENT period)
- (CHARWD R 204)
- (CHARHT R 110)
- (CHARDP R 6)
- )
-(CHARACTER D 47 (COMMENT slash)
- (CHARWD R 302)
- (CHARHT R 700)
- (CHARDP R 160)
- )
-(CHARACTER C 0
- (CHARWD R 490)
- (CHARHT R 678)
- (CHARDP R 12)
- )
-(CHARACTER C 1
- (CHARWD R 490)
- (CHARHT R 678)
- )
-(CHARACTER C 2
- (CHARWD R 490)
- (CHARHT R 678)
- )
-(CHARACTER C 3
- (CHARWD R 490)
- (CHARHT R 678)
- (CHARDP R 12)
- )
-(CHARACTER C 4
- (CHARWD R 490)
- (CHARHT R 666)
- )
-(CHARACTER C 5
- (CHARWD R 490)
- (CHARHT R 678)
- (CHARDP R 12)
- )
-(CHARACTER C 6
- (CHARWD R 490)
- (CHARHT R 678)
- (CHARDP R 12)
- )
-(CHARACTER C 7
- (CHARWD R 490)
- (CHARHT R 666)
- (CHARDP R 8)
- )
-(CHARACTER C 8
- (CHARWD R 490)
- (CHARHT R 678)
- (CHARDP R 12)
- )
-(CHARACTER C 9
- (CHARWD R 490)
- (CHARHT R 678)
- (CHARDP R 12)
- )
-(CHARACTER D 58 (COMMENT colon)
- (CHARWD R 204)
- (CHARHT R 446)
- (CHARDP R 6)
- )
-(CHARACTER D 59 (COMMENT semicolon)
- (CHARWD R 204)
- (CHARHT R 446)
- (CHARDP R 144)
- )
-(CHARACTER D 60 (COMMENT less)
- (CHARWD R 562)
- (CHARHT R 585)
- (CHARDP R 85)
- )
-(CHARACTER D 61 (COMMENT equal)
- (CHARWD R 575)
- (CHARHT R 366)
- )
-(CHARACTER D 62 (COMMENT greater)
- (CHARWD R 562)
- (CHARHT R 585)
- (CHARDP R 85)
- )
-(CHARACTER D 63 (COMMENT question)
- (CHARWD R 402)
- (CHARHT R 700)
- (CHARDP R 6)
- )
-(CHARACTER D 64 (COMMENT at)
- (CHARWD R 752)
- (CHARHT R 700)
- )
-(CHARACTER C A
- (CHARWD R 641)
- (CHARHT R 714)
- )
-(CHARACTER C B
- (CHARWD R 578)
- (CHARHT R 700)
- )
-(CHARACTER C C
- (CHARWD R 618)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER C D
- (CHARWD R 738)
- (CHARHT R 700)
- )
-(CHARACTER C E
- (CHARWD R 560)
- (CHARHT R 700)
- )
-(CHARACTER C F
- (CHARWD R 526)
- (CHARHT R 700)
- )
-(CHARACTER C G
- (CHARWD R 715)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER C H
- (CHARWD R 748)
- (CHARHT R 700)
- )
-(CHARACTER C I
- (CHARWD R 318)
- (CHARHT R 700)
- )
-(CHARACTER C J
- (CHARWD R 457)
- (CHARHT R 700)
- (CHARDP R 14)
- )
-(CHARACTER C K
- (CHARWD R 633)
- (CHARHT R 700)
- (CHARDP R 7)
- )
-(CHARACTER C L
- (CHARWD R 560)
- (CHARHT R 700)
- )
-(CHARACTER C M
- (CHARWD R 816)
- (CHARHT R 700)
- )
-(CHARACTER C N
- (CHARWD R 721)
- (CHARHT R 700)
- )
-(CHARACTER C O
- (CHARWD R 728)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER C P
- (CHARWD R 548)
- (CHARHT R 700)
- )
-(CHARACTER C Q
- (CHARWD R 728)
- (CHARHT R 714)
- (CHARDP R 148)
- )
-(CHARACTER C R
- (CHARWD R 591)
- (CHARHT R 700)
- (CHARDP R 7)
- )
-(CHARACTER C S
- (CHARWD R 515)
- (CHARHT R 714)
- (CHARDP R 14)
- )
-(CHARACTER C T
- (CHARWD R 668)
- (CHARHT R 700)
- )
-(CHARACTER C U
- (CHARWD R 660)
- (CHARHT R 700)
- (CHARDP R 12)
- )
-(CHARACTER C V
- (CHARWD R 651)
- (CHARHT R 700)
- (CHARDP R 14)
- )
-(CHARACTER C W
- (CHARWD R 1010)
- (CHARHT R 700)
- (CHARDP R 14)
- )
-(CHARACTER C X
- (CHARWD R 660)
- (CHARHT R 700)
- )
-(CHARACTER C Y
- (CHARWD R 651)
- (CHARHT R 700)
- )
-(CHARACTER C Z
- (CHARWD R 610)
- (CHARHT R 700)
- )
-(CHARACTER D 91 (COMMENT bracketleft)
- (CHARWD R 202)
- (CHARHT R 750)
- (CHARDP R 250)
- )
-(CHARACTER D 92 (COMMENT backslash)
- (CHARWD R 302)
- (CHARHT R 700)
- (CHARDP R 120)
- )
-(CHARACTER D 93 (COMMENT bracketright)
- (CHARWD R 202)
- (CHARHT R 750)
- (CHARDP R 250)
- )
-(CHARACTER D 94 (COMMENT circumflex)
- (CHARWD R 500)
- (CHARHT R 664)
- )
-(CHARACTER D 95 (COMMENT underscore)
- (CHARWD R 510)
- (CHARDP R 120)
- )
-(CHARACTER D 96 (COMMENT quoteleft)
- (CHARWD R 204)
- (CHARHT R 706)
- )
-(CHARACTER C a
- (CHARWD R 465)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C b
- (CHARWD R 543)
- (CHARHT R 712)
- (CHARDP R 12)
- )
-(CHARACTER C c
- (CHARWD R 453)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C d
- (CHARWD R 543)
- (CHARHT R 712)
- (CHARDP R 12)
- )
-(CHARACTER C e
- (CHARWD R 453)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C f
- (CHARWD R 292)
- (CHARHT R 712)
- (CHARIC R 50)
- )
-(CHARACTER C g
- (CHARWD R 487)
- (CHARHT R 452)
- (CHARDP R 228)
- )
-(CHARACTER C h
- (CHARWD R 548)
- (CHARHT R 712)
- )
-(CHARACTER C i
- (CHARWD R 262)
- (CHARHT R 642)
- )
-(CHARACTER C j
- (CHARWD R 262)
- (CHARHT R 642)
- (CHARDP R 209)
- )
-(CHARACTER C k
- (CHARWD R 512)
- (CHARHT R 712)
- )
-(CHARACTER C l
- (CHARWD R 262)
- (CHARHT R 712)
- )
-(CHARACTER C m
- (CHARWD R 832)
- (CHARHT R 452)
- )
-(CHARACTER C n
- (CHARWD R 548)
- (CHARHT R 452)
- )
-(CHARACTER C o
- (CHARWD R 503)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C p
- (CHARWD R 543)
- (CHARHT R 452)
- (CHARDP R 223)
- )
-(CHARACTER C q
- (CHARWD R 543)
- (CHARHT R 452)
- (CHARDP R 223)
- )
-(CHARACTER C r
- (CHARWD R 386)
- (CHARHT R 452)
- )
-(CHARACTER C s
- (CHARWD R 394)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C t
- (CHARWD R 288)
- (CHARHT R 560)
- (CHARDP R 12)
- )
-(CHARACTER C u
- (CHARWD R 531)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C v
- (CHARWD R 475)
- (CHARHT R 440)
- )
-(CHARACTER C w
- (CHARWD R 778)
- (CHARHT R 452)
- (CHARDP R 12)
- )
-(CHARACTER C x
- (CHARWD R 510)
- (CHARHT R 440)
- )
-(CHARACTER C y
- (CHARWD R 497)
- (CHARHT R 452)
- (CHARDP R 240)
- )
-(CHARACTER C z
- (CHARWD R 400)
- (CHARHT R 440)
- )
-(CHARACTER D 123 (COMMENT braceleft)
- (CHARWD R 292)
- (CHARHT R 750)
- (CHARDP R 250)
- )
-(CHARACTER D 124 (COMMENT bar)
- (CHARWD R 490)
- (CHARHT R 721)
- (CHARDP R 221)
- )
-(CHARACTER D 125 (COMMENT braceright)
- (CHARWD R 292)
- (CHARHT R 750)
- (CHARDP R 250)
- )
-(CHARACTER D 126 (COMMENT tilde)
- (CHARWD R 500)
- (CHARHT R 636)
- )
-(CHARACTER D 127 (COMMENT dieresis)
- (CHARWD R 500)
- (CHARHT R 636)
- )
-(CHARACTER D 128 (COMMENT Lslash)
- (CHARWD R 578)
- (CHARHT R 700)
- )
-(CHARACTER D 129 (COMMENT quotesingle)
- (CHARWD R 142)
- (CHARHT R 700)
- )
-(CHARACTER D 130 (COMMENT quotesinglbase)
- (CHARWD R 204)
- (CHARHT R 109)
- (CHARDP R 144)
- )
-(CHARACTER D 131 (COMMENT florin)
- (CHARWD R 292)
- (CHARHT R 712)
- (CHARIC R 50)
- )
-(CHARACTER D 132 (COMMENT quotedblbase)
- (CHARWD R 360)
- (CHARHT R 109)
- (CHARDP R 144)
- )
-(CHARACTER D 133 (COMMENT ellipsis)
- (CHARWD R 592)
- (CHARHT R 109)
- (CHARDP R 6)
- )
-(CHARACTER D 134 (COMMENT dagger)
- (CHARWD R 440)
- (CHARHT R 621)
- (CHARDP R 216)
- )
-(CHARACTER D 135 (COMMENT daggerdbl)
- (CHARWD R 440)
- (CHARHT R 621)
- (CHARDP R 181)
- )
-(CHARACTER D 137 (COMMENT perthousand)
- (CHARWD R 1109)
- (CHARHT R 712)
- (CHARDP R 12)
- )
-(CHARACTER D 138 (COMMENT Scaron)
- (CHARWD R 515)
- (CHARHT R 892)
- (CHARDP R 14)
- )
-(CHARACTER D 139 (COMMENT guilsinglleft)
- (CHARWD R 236)
- (CHARHT R 440)
- )
-(CHARACTER D 141 (COMMENT Zcaron)
- (CHARWD R 610)
- (CHARHT R 892)
- )
-(CHARACTER D 142 (COMMENT asciicircum)
- (CHARWD R 510)
- (CHARHT R 700)
- )
-(CHARACTER D 143 (COMMENT minus)
- (CHARWD R 575)
- (CHARHT R 279)
- )
-(CHARACTER D 144 (COMMENT lslash)
- (CHARWD R 354)
- (CHARHT R 712)
- )
-(CHARACTER D 147 (COMMENT quotedblleft)
- (CHARWD R 360)
- (CHARHT R 706)
- )
-(CHARACTER D 148 (COMMENT quotedblright)
- (CHARWD R 360)
- (CHARHT R 706)
- )
-(CHARACTER D 149 (COMMENT bullet)
- (CHARWD R 500)
- (CHARHT R 438)
- )
-(CHARACTER D 150 (COMMENT endash)
- (CHARWD R 510)
- (CHARHT R 250)
- )
-(CHARACTER D 151 (COMMENT emdash)
- (CHARWD R 764)
- (CHARHT R 250)
- )
-(CHARACTER D 153 (COMMENT trademark)
- (CHARWD R 896)
- (CHARHT R 700)
- )
-(CHARACTER D 154 (COMMENT scaron)
- (CHARWD R 394)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 155 (COMMENT guilsinglright)
- (CHARWD R 236)
- (CHARHT R 440)
- )
-(CHARACTER D 157 (COMMENT zcaron)
- (CHARWD R 400)
- (CHARHT R 664)
- )
-(CHARACTER D 158 (COMMENT asciitilde)
- (CHARWD R 452)
- (CHARHT R 290)
- )
-(CHARACTER D 159 (COMMENT Ydieresis)
- (CHARWD R 651)
- (CHARHT R 876)
- )
-(CHARACTER D 160 (COMMENT uni00A0)
- (CHARWD R 270)
- )
-(CHARACTER D 161 (COMMENT exclamdown)
- (CHARWD R 218)
- (CHARHT R 446)
- (CHARDP R 260)
- )
-(CHARACTER D 162 (COMMENT cent)
- (CHARWD R 453)
- (CHARHT R 520)
- (CHARDP R 80)
- )
-(CHARACTER D 163 (COMMENT sterling)
- (CHARWD R 578)
- (CHARHT R 700)
- (CHARDP R 57)
- )
-(CHARACTER D 164 (COMMENT currency)
- (CHARWD R 604)
- (CHARHT R 437)
- )
-(CHARACTER D 165 (COMMENT yen)
- (CHARWD R 660)
- (CHARHT R 700)
- )
-(CHARACTER D 166 (COMMENT brokenbar)
- (CHARWD R 162)
- (CHARHT R 700)
- )
-(CHARACTER D 167 (COMMENT section)
- (CHARWD R 428)
- (CHARHT R 666)
- (CHARDP R 154)
- )
-(CHARACTER D 169 (COMMENT copyright)
- (CHARWD R 752)
- (CHARHT R 700)
- )
-(CHARACTER D 170 (COMMENT ordfeminine)
- (CHARWD R 308)
- (CHARHT R 711)
- )
-(CHARACTER D 171 (COMMENT guillemotleft)
- (CHARWD R 383)
- (CHARHT R 440)
- )
-(CHARACTER D 172 (COMMENT logicalnot)
- (CHARWD R 650)
- (CHARHT R 404)
- )
-(CHARACTER D 173 (COMMENT uni00AD)
- (CHARWD R 306)
- (CHARHT R 250)
- )
-(CHARACTER D 174 (COMMENT registered)
- (CHARWD R 752)
- (CHARHT R 700)
- )
-(CHARACTER D 176 (COMMENT degree)
- (CHARWD R 338)
- (CHARHT R 672)
- )
-(CHARACTER D 177 (COMMENT plusminus)
- (CHARWD R 575)
- (CHARHT R 486)
- (CHARDP R 58)
- )
-(CHARACTER D 178 (COMMENT two.superior)
- (CHARWD R 324)
- (CHARHT R 791)
- )
-(CHARACTER D 179 (COMMENT three.superior)
- (CHARWD R 324)
- (CHARHT R 791)
- )
-(CHARACTER D 181 (COMMENT uni00B5)
- (CHARWD R 510)
- (CHARHT R 440)
- (CHARDP R 216)
- )
-(CHARACTER D 182 (COMMENT paragraph)
- (CHARWD R 442)
- (CHARHT R 700)
- )
-(CHARACTER D 183 (COMMENT periodcentered)
- (CHARWD R 204)
- (CHARHT R 320)
- )
-(CHARACTER D 185 (COMMENT one.superior)
- (CHARWD R 324)
- (CHARHT R 791)
- )
-(CHARACTER D 186 (COMMENT ordmasculine)
- (CHARWD R 317)
- (CHARHT R 711)
- )
-(CHARACTER D 187 (COMMENT guillemotright)
- (CHARWD R 383)
- (CHARHT R 440)
- )
-(CHARACTER D 188 (COMMENT onequarter)
- (CHARWD R 735)
- (CHARHT R 724)
- (CHARDP R 12)
- )
-(CHARACTER D 189 (COMMENT onehalf)
- (CHARWD R 735)
- (CHARHT R 724)
- (CHARDP R 12)
- )
-(CHARACTER D 190 (COMMENT threequarters)
- (CHARWD R 735)
- (CHARHT R 724)
- (CHARDP R 12)
- )
-(CHARACTER D 191 (COMMENT questiondown)
- (CHARWD R 454)
- (CHARHT R 446)
- (CHARDP R 260)
- )
-(CHARACTER D 192 (COMMENT Agrave)
- (CHARWD R 641)
- (CHARHT R 892)
- )
-(CHARACTER D 193 (COMMENT Aacute)
- (CHARWD R 641)
- (CHARHT R 892)
- )
-(CHARACTER D 194 (COMMENT Acircumflex)
- (CHARWD R 641)
- (CHARHT R 892)
- )
-(CHARACTER D 195 (COMMENT Atilde)
- (CHARWD R 641)
- (CHARHT R 876)
- )
-(CHARACTER D 196 (COMMENT Adieresis)
- (CHARWD R 641)
- (CHARHT R 876)
- )
-(CHARACTER D 197 (COMMENT Aring)
- (CHARWD R 641)
- (CHARHT R 902)
- )
-(CHARACTER D 199 (COMMENT Ccedilla)
- (CHARWD R 618)
- (CHARHT R 714)
- (CHARDP R 216)
- )
-(CHARACTER D 200 (COMMENT Egrave)
- (CHARWD R 560)
- (CHARHT R 892)
- )
-(CHARACTER D 201 (COMMENT Eacute)
- (CHARWD R 560)
- (CHARHT R 892)
- )
-(CHARACTER D 202 (COMMENT Ecircumflex)
- (CHARWD R 560)
- (CHARHT R 892)
- )
-(CHARACTER D 203 (COMMENT Edieresis)
- (CHARWD R 560)
- (CHARHT R 876)
- )
-(CHARACTER D 204 (COMMENT Igrave)
- (CHARWD R 318)
- (CHARHT R 892)
- )
-(CHARACTER D 205 (COMMENT Iacute)
- (CHARWD R 318)
- (CHARHT R 892)
- )
-(CHARACTER D 206 (COMMENT Icircumflex)
- (CHARWD R 318)
- (CHARHT R 892)
- )
-(CHARACTER D 207 (COMMENT Idieresis)
- (CHARWD R 318)
- (CHARHT R 876)
- )
-(CHARACTER D 208 (COMMENT Eth)
- (CHARWD R 738)
- (CHARHT R 700)
- )
-(CHARACTER D 209 (COMMENT Ntilde)
- (CHARWD R 721)
- (CHARHT R 876)
- )
-(CHARACTER D 210 (COMMENT Ograve)
- (CHARWD R 728)
- (CHARHT R 892)
- (CHARDP R 14)
- )
-(CHARACTER D 211 (COMMENT Oacute)
- (CHARWD R 728)
- (CHARHT R 892)
- (CHARDP R 14)
- )
-(CHARACTER D 212 (COMMENT Ocircumflex)
- (CHARWD R 728)
- (CHARHT R 892)
- (CHARDP R 14)
- )
-(CHARACTER D 213 (COMMENT Otilde)
- (CHARWD R 728)
- (CHARHT R 876)
- (CHARDP R 14)
- )
-(CHARACTER D 214 (COMMENT Odieresis)
- (CHARWD R 728)
- (CHARHT R 876)
- (CHARDP R 14)
- )
-(CHARACTER D 215 (COMMENT multiply)
- (CHARWD R 575)
- (CHARHT R 486)
- )
-(CHARACTER D 217 (COMMENT Ugrave)
- (CHARWD R 660)
- (CHARHT R 892)
- (CHARDP R 12)
- )
-(CHARACTER D 218 (COMMENT Uacute)
- (CHARWD R 660)
- (CHARHT R 892)
- (CHARDP R 12)
- )
-(CHARACTER D 219 (COMMENT Ucircumflex)
- (CHARWD R 660)
- (CHARHT R 892)
- (CHARDP R 12)
- )
-(CHARACTER D 220 (COMMENT Udieresis)
- (CHARWD R 660)
- (CHARHT R 876)
- (CHARDP R 12)
- )
-(CHARACTER D 221 (COMMENT Yacute)
- (CHARWD R 651)
- (CHARHT R 892)
- )
-(CHARACTER D 222 (COMMENT Thorn)
- (CHARWD R 548)
- (CHARHT R 700)
- )
-(CHARACTER D 224 (COMMENT agrave)
- (CHARWD R 465)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 225 (COMMENT aacute)
- (CHARWD R 465)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 226 (COMMENT acircumflex)
- (CHARWD R 465)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 227 (COMMENT atilde)
- (CHARWD R 465)
- (CHARHT R 636)
- (CHARDP R 12)
- )
-(CHARACTER D 228 (COMMENT adieresis)
- (CHARWD R 465)
- (CHARHT R 636)
- (CHARDP R 12)
- )
-(CHARACTER D 229 (COMMENT aring)
- (CHARWD R 465)
- (CHARHT R 662)
- (CHARDP R 12)
- )
-(CHARACTER D 231 (COMMENT ccedilla)
- (CHARWD R 446)
- (CHARHT R 452)
- (CHARDP R 216)
- )
-(CHARACTER D 232 (COMMENT egrave)
- (CHARWD R 453)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 233 (COMMENT eacute)
- (CHARWD R 453)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 234 (COMMENT ecircumflex)
- (CHARWD R 453)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 235 (COMMENT edieresis)
- (CHARWD R 453)
- (CHARHT R 636)
- (CHARDP R 12)
- )
-(CHARACTER D 236 (COMMENT igrave)
- (CHARWD R 262)
- (CHARHT R 664)
- )
-(CHARACTER D 237 (COMMENT iacute)
- (CHARWD R 262)
- (CHARHT R 664)
- (CHARIC R 9)
- )
-(CHARACTER D 238 (COMMENT icircumflex)
- (CHARWD R 262)
- (CHARHT R 664)
- (CHARIC R 19)
- )
-(CHARACTER D 239 (COMMENT idieresis)
- (CHARWD R 262)
- (CHARHT R 636)
- )
-(CHARACTER D 240 (COMMENT eth)
- (CHARWD R 494)
- (CHARHT R 700)
- (CHARDP R 12)
- )
-(CHARACTER D 241 (COMMENT ntilde)
- (CHARWD R 548)
- (CHARHT R 636)
- )
-(CHARACTER D 242 (COMMENT ograve)
- (CHARWD R 503)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 243 (COMMENT oacute)
- (CHARWD R 503)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 244 (COMMENT ocircumflex)
- (CHARWD R 503)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 245 (COMMENT otilde)
- (CHARWD R 503)
- (CHARHT R 636)
- (CHARDP R 12)
- )
-(CHARACTER D 246 (COMMENT odieresis)
- (CHARWD R 503)
- (CHARHT R 636)
- (CHARDP R 12)
- )
-(CHARACTER D 247 (COMMENT divide)
- (CHARWD R 575)
- (CHARHT R 525)
- )
-(CHARACTER D 249 (COMMENT ugrave)
- (CHARWD R 531)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 250 (COMMENT uacute)
- (CHARWD R 531)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 251 (COMMENT ucircumflex)
- (CHARWD R 531)
- (CHARHT R 664)
- (CHARDP R 12)
- )
-(CHARACTER D 252 (COMMENT udieresis)
- (CHARWD R 531)
- (CHARHT R 636)
- (CHARDP R 12)
- )
-(CHARACTER D 253 (COMMENT yacute)
- (CHARWD R 497)
- (CHARHT R 664)
- (CHARDP R 240)
- )
-(CHARACTER D 254 (COMMENT thorn)
- (CHARWD R 534)
- (CHARHT R 712)
- (CHARDP R 216)
- )
-(CHARACTER D 255 (COMMENT ydieresis)
- (CHARWD R 497)
- (CHARHT R 636)
- (CHARDP R 240)
- )
diff --git a/Build/source/texk/lcdf-typetools/tests/Fon.post b/Build/source/texk/lcdf-typetools/tests/Fon.post
deleted file mode 100644
index 4a35ff18086..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/Fon.post
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/Fon.t42 b/Build/source/texk/lcdf-typetools/tests/Fon.t42
deleted file mode 100644
index 67f897d09b8..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/Fon.t42
+++ /dev/null
@@ -1,290 +0,0 @@
-%!PS-TrueTypeFont-65536-65536-1
-%%VMusage: 0 0
-11 dict begin
-/FontName /FonetikaDaniaIwonaeBold def
-/FontType 42 def
-/FontMatrix [1 0 0 1 0 0] def
-/FontBBox [-0.055 -0.25 0.736 0.75] readonly def
-/PaintType 0 def
-/XUID [42 16#A2A74B 16#88F845 16#BE52B5 16#487F27 16#DBDB70 16#2] def
-/FontInfo 10 dict dup begin
-/version (Version 001.000 ) readonly def
-/Copyright (Created by Palle J\303\270rgensen, with FontForge 1.0 \(http://fontforge.sf.net\)
-The License is GUST Font Nosource License. ) readonly def
-/FullName (Fonitika Dania Iwonae Bold) readonly def
-/FamilyName (FonetikaDaniaIwonae) readonly def
-/Weight (Bold) readonly def
-/isFixedPitch false def
-/ItalicAngle 0 def
-/UnderlinePosition -0.125 def
-/UnderlineThickness 0.05 def
-end readonly def
-/Encoding 256 array
-0 1 255{1 index exch/.notdef put}for
-dup 44 /comma put
-dup 46 /period put
-dup 48 /zero put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 73 /I put
-dup 78 /N put
-dup 82 /R put
-dup 83 /S put
-dup 91 /bracketleft put
-dup 93 /bracketright put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 106 /j put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 121 /y put
-dup 124 /bar put
-dup 197 /Aring put
-dup 198 /AE put
-dup 216 /Oslash put
-dup 229 /aring put
-dup 230 /ae put
-dup 240 /eth put
-dup 246 /odieresis put
-dup 248 /oslash put
-readonly def
-/sfnts[
-<000100000008008000030000636D6170987C27580000008C000001E263767420002102790000
-027000000004676C7966D5ED745400000274000013B268656164E449F9E70000162800000036
-6868656105F4014F0000166000000024686D74784EA5093100001684000000CA6C6F6361707E
-755300001750000000686D6178700079007B000017B80000002000>
-<00000003000000030000001C00010000000000DC000300010000001C000400C00000002C0020
-0004000C002C002E003000450049004E0053005B005D007000770079007C00C600D800E600F0
-00F600F8014B2019FFFF0000002C002E003000410049004E0052005B005D006100720079007C
-00C500D800E500F000F600F8014B2019FFFFFFD8FFD7FFD6FFC6FFC3FFBFFFBCFFB5FFB4FFB1
-FFB0FFAFFFADFF66FF55FF49FF40FF3BFF3AFEDFDFEA00010000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000010600000100
-3000000000000102000000020000000000000000000000000000000100000000000000000000
-000000000400050006000000000000000000000000000000000708090A0B0000000C00000000
-0D0000000E0F0000000000000010001100000012131415161718191A1B1C1D1E1F2021002223
-242526270028000029000000002B000000000000000000002E00000000000000000000000000
-31000000000000000000000000000000000000002C2D00000000000000000000000000002F32
-0000000000000000000000000000000000000000000300000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000>
-<0021027900>
-<000200210000016E029A00030007002EB101002F3CB2070400ED32B10605DC3CB2030200ED32
-00B103002F3CB2050400ED32B2070601FC3CB2010200ED32331121112521112121014DFED401
-0BFEF5029AFD662102580001006801C7012E02BC00050000010607233637012E1D6D3C3C1C02
-BC886D767F0000010067FF0600AF00640003000017231133AF4848FA015E00010036014000B8
-01C2000F000013140706232227263534373633321716B8240D10281207240D10281207018128
-1207240D10281207240D0002000EFF62011500A20007000F0000250623223736333207362322
-07063332010D227B7B21227C7B7C1821211918212202A0A0A0A07373730000020034FFFE0228
-01EA00290037000025061716173217160F010623262706272627263534373637363332171617
-3637363B0132171607060706073635362726070607141716373601AD1301071E050303010C02
-084912414B5A2915061E603B3D55210302121B02063C06030304421B0F560901485127090136
-382B12E534342E040403053808014D4F01014E2A391E1E89482B4F0507222A05050505693D22
-171730640101B52B215101014F2200030034FFFE02E00299000B003500430000012315233523
-35333533153301061716173217160F0106232627062726272635343736373633321716173637
-363B0132171607060706073635362726070607141716373602E08A208A8A208AFECD1301071E
-050303010C02084912414B5A2915061E603B3D55210302121B02063C06030304421B0F560901
-485127090136382B1201EF8A8A208A8AFED634342E040403053808014D4F01014E2A391E1E89
-482B4F0507222A05050505693D22171730640101B52B215101014F2200030027FFF601E70297
-001F002F003F0000371633323736373627262322070607373637363332171607060706232227
-26270106070623222726373637363332171617060706232227263736373633321716331A5B31
-26130B1A260C134A3009090D2E490A0B68261B131C5F3A4547210804010808250D0D230A0403
-08250D0D230A04B307240E0D240A040308250D0E230904825052283578290E360A0C3C400A02
-543E59844027360C0E02162410061F0C0F2610051F0D0F241006200C0E260F061F0D00020037
-FFF6022D02BC001E002C00000107160702070623222726373633321736270727372623220737
-36333217370326272207060706171633323736022D422520367031406A271C1331B8421B1402
-58206B1329534A0D4A534B2B3C951E3F371D060A1A280D14462E0B0276226299FEFF441E543E
-59EB37672D2D2D3720363C363820FEB5340369172F78290EA42A0002003EFFF601C201CC0016
-001D00003733362726232207373633321716070607062322272637170617163332374AFA1302
-032E48460D454A602218131D5B353E602218137019320506431BEB5A172E253C2B543E598640
-25543E59267D0B0189000002000DFF110125029E000F001F0000170623222726371333030617
-1633323713060706232227263736373633321716B23931370401077671760D0F040614186708
-261010260C05030927100F260C05CB244B1B21022AFDD63A09020E02FC271208210F11281207
-210F0001002BFF5D01CE01CC0023000005060706232227262737161716333237363713362726
-2322070323133307363332171607017F11341B1D372603040A0E1A0403221102024B0A19090B
-252E48705F710F513F39130B091C4D26144806082C3A050135080801612E11063AFEB001C247
-5139232B0001002B0000017801C9000F0000371633323713330323370607062322273D121729
-3742705F711137280B0C0C0C5F0C3F0137FE3E4F460C04070001000CFF10019901CC00330000
-050607062322273716333237343F01062322273716333237363F013627262726373637363332
-1707262322070607061716171607013D17380C0D2E25090D10150E021A1D1E58480D47582818
-0703010B485D1007050F472F344D3C0D3C4D23150602083E66100605696C16052A2C143B0208
-6809243C24220A0A05341E262D1418482A1C243C2423090A2A1B2B35151800010024FF0600CE
-02EE000700001723113315231133CEAAAA6868FA03E83CFC900000010024FF0600CE02EE0007
-00001723353311233533CEAA6868AAFA3C03703C00020039FFF601E801CC000E001B00002123
-370623223736373633321737330726232207060706171633323701897109433A903328761719
-332D03707E1E203A1D070D170B0A2222282B35EBC222071A10400E5E18396D2220280002002B
-FFF601DA02BC000E001B00002506070623222707231333033633320736272623220703163332
-373601CD2B7B1415342A057095703E433A8FAC170B0A22202A3E1D213B1D08E1C91D051F1502
-BCFEDB35EB6D222028FEDD13651800010027FFF6019D01CC001F000037163332373637362726
-23220706073736373633321716070607062322272627331A5B3126130B1A260C134A3009090D
-2E490A0B68261B131C5F3A4547210804825052283578290E360A0C3C400A02543E5984402736
-0C0E00020039FFF6021E02BC000E001B00002123370623223736373633321713330326232207
-060706171633323701897109433A903328761719332D3871B41E203A1D070D170B0A2222282B
-35EBC222071A010AFEC60E5E18396D2220280002003EFFF601C201CC0016001D000025230617
-163332370706232227263736373633321716072736272623220701B6FA1302032E48460D454A
-602218131D5B353E602218137019320506431BD75A172E253C2B543E59864025543E59267D0B
-0189000100330000019802C6001700000126232207060F013307230323132337333736373633
-3217018F1B1E241202011A3A0C3B537053380C381B11341B1E3C31026E163906067D3CFE7A01
-863C7D4D26142C0000020039FF1001E801CC001A00270000050607062322273716333237363F
-0106232237363736333217373307262322070607061716333237017C133F282E4E470A2E3634
-1E080515433A903328761719332D03707E1E203A1D070D170B0A2222283C5D35222A2C144914
-156735EBC222071A10400E5E18396D2220280001002B000001CE02BC00130000212313362726
-2322070323133303363332171607018571450A19090B252E4870957044513F39130B0901452E
-11063AFEB002BCFEBF5139232B000002003BFFF60122029E000F001F00003706232227263713
-330306171633323713060706232227263736373633321716E03931370401074571450D0F0406
-14183608261010260C05030927100F260C051A244B1B210145FEBB3A09020E0217271208210F
-11281207210F0002FFC9FF100127029E000F001F000017060706232227371633323734371333
-370607062322272637363736333217168417380C0D2E25090D10150E0276702B08261010260C
-05030927100F260C05696C16052A2C143B0208022B9B271208210F11281207210F000001002B
-000001F202BC000A00002123270723133303373307019D735B347095705ED44CBDF4F402BCFE
-46C0AB000001003FFFF6013002BC000F000037062322272637133303061716333237E4393137
-0401077B707A0D0F040614181A244B1B21023FFDC13A09020E000001002B0000026B01CC0024
-0000212313362322070607032313362322070607032313330736333217161736373633321716
-07022171450F221F1D02024571450F221720010348705F710F4337320C010128440C0C360905
-08014545291408FEBB014545300304FEAD01C247513B08083D0C024120260001002B000001CE
-01CC001300002123133627262322070323133307363332171607018571450A19090B252E4870
-5F710F513F39130B0901452E11063AFEB001C2475139232B0002003CFFF601C301CC000F0019
-0000250607062322272637363736333217160736232207060706173201B92A8A1A1D8B06020C
-298A1B1D8A06028325413F250101254041E1C32206882B38C322068A2A37AFA50505AB040002
-FFF6FF1A01D601CC000E001B0000250607062322270723133307363332073627262322070316
-3332373601C92B7B1415322D3570907109433A8FAC170B0A22202A3F1E213B1D08E1C91D051A
-F602A82B35EB6D222028FED80E6518000001002B0000017801C9000F00000126232207032313
-330736373633321701661217293742705F711137280B0C0C0C016A0C3FFEC901C24F460C0407
-0001000CFFF6019901CC00250000250607062322273716333237363736272627263736373633
-32170726232207060706171617160170104B323758480D4758281808030C495D1007050F472F
-344D3C0D3C4D23150602093F661006884A2B1D243C24220C0D351D262D1418482A1C243C2423
-090A2B1A2B35150000010044FFF6013602580017000037062322373637132337323736373307
-3307230306173237DE362F3C080105392E0B42270C074420350C36380F161113232D5E141501
-09375E1D20963CFEF74203170001003DFFF601E001C200130000212337062322272637133303
-06171633323713330181710F4F4139130B094571450A19090B24304770475139232B0145FEBB
-2E11063A015000010052000001C401C20006000001032303331B0101C4EB5E29681EAE01C2FE
-3E01C2FEB5014B000001005A0000027601C2000C00000103230B012303331B01331B010276D0
-5C097C5C0F660A8D4A0A8D01C2FE3E010DFEF301C2FECF0131FECF0131000001003DFF1001E0
-01C2001F0000050607062322273716333237363F010623222726371333030617163332371333
-0174153D2328493F0A2630391A0101184C4139130B094571450A19090B252B4B703C64331D2A
-2C14680505734139232B0145FEBB2E11062B015F00010066019000AF02EE0003000013231333
-AE4801480190015E0001002BFF5D01CE01CC0023000005060706232227262737161716333237
-3637133627262322070323133307363332171607017F11341B1D372603040A0E1A0403221102
-024B0A19090B252E48705F710F513F39130B091C4D26144806082C3A050135080801612E1106
-3AFEB001C2475139232B0004002FFFF601CA02B1001C00290039004900002123370623222726
-37363736333217373627262322073736333217160F0137262322070607061716333213060706
-2322272637363736333217160736272623220706070617163332373601896E09443B5A160A09
-1556262C342E030F200F153C420A60544619110D951921202D1E0B050B1F0E12249D0A2D1717
-2E1109050A2E17172E11092E071907091E110502061907091E11052D3746222D6224101B1245
-1F0E222C3846313DBB790F32131535190B022B2F190C2715182F190C2715181D0C031D07081D
-0C031D0700030039FFF601E8028A000F001E002B000001140706232227263534373633321716
-132337062322373637363332173733072623220706070617163332370185240D10281207240D
-10281207047109433A903328761719332D03707E1E203A1D070D170B0A222228024928120724
-0D10281207240DFDA72B35EBC222071A10400E5E18396D2220280004003CFFF601E70297000F
-0019002900390000250607062322272637363736333217160736232207060706173213060706
-2322272637363736333217161706070623222726373637363332171601B92A8A1A1D8B06020C
-298A1B1D8A06028325413F2501012540411408250D0D230A040308250D0D230A04B307240E0D
-240A040308250D0E230904E1C32206882B38C322068A2A37AFA50505AB04022A2410061F0C0F
-2610051F0D0F241006200C0E260F061F0D0000040039FFF601E802B1000E001B002B003B0000
-2123370623223736373633321737330726232207060706171633323713060706232227263736
-3736333217160736272623220706070617163332373601897109433A903328761719332D0370
-7E1E203A1D070D170B0A222228800A2F16172E1108050A2E17172E11082D0717080A1F110402
-061907091E11042B35EBC222071A10400E5E18396D222028020330180C2715182F190C271518
-1C0C041E07071D0C031C080000030031FFF602BE01CC0022002F003600002523061716333237
-0706232227072337062322373637363332173733073633321716072526232207060706171633
-32372536272623220702B2FA1302032E48460D454A291F017109433A903328761719332D0370
-01272860221813FEAD1E203A1D070D170B0A222228012219320506431BD75A172E253C2B1107
-2B35EBC222071A100711543E59A10E5E18396D222028AD7D0B01890000020037FFF6022D02BC
-001E002C00000107160702070623222726373633321736270727372623220737363332173703
-26272207060706171633323736022D422520367031406A271C1331B8421B140258206B132953
-4A0D4A534B2B3C951E3F371D060A1A280D14462E0B0276226299FEFF441E543E59EB37672D2D
-2D3720363C363820FEB5340369172F78290EA42A0004003CFFF601E70297000F001900290039
-0000250607062322272637363736333217160736232207060706173213060706232227263736
-3736333217161706070623222726373637363332171601B92A8A1A1D8B06020C298A1B1D8A06
-028325413F2501012540411408250D0D230A040308250D0D230A04B307240E0D240A04030825
-0D0E230904E1C32206882B38C322068A2A37AFA50505AB04022A2410061F0C0F2610051F0D0F
-241006200C0E260F061F0D000003000BFFC901F401F90015001E002500002506070623222707
-23372637363736333217373307162726232207060706073736370716333201B92A8A1A1D2C20
-2C4B49271A298A1B1D2C1F2C4B49288C09193F25010106038B070191091941E1C322060F3C63
-3C79C322060F3C633D1B1CA505051C15312C05C41C0000000000000000>
-<00010000000100003F7D89BA5F0F3CF5000B03E800000000C1405B8700000000C1405B87FFC9
-FF0602E002EE00010008000200000000000000>
-<0001000002EEFF06005A02C2FFC9FF5402E000010000000000000000000000000000003200>
-<01B0002100000000014D000000EE00680116006700EE00360126000E01EB00340233003401CA
-002701E0003701C6003E0103000D01D6002B013E002B018C000C00F2002400F2002401DE0039
-01DE002B01CA002701DE003901C6003E0103003301DE003901D6002B0100003B00F0FFC901BA
-002B0104003F0272002B01D6002B01CA003C01DAFFF6013E002B018C000C0104004401D6003D
-01820052023B005A01D6003D0116006601D6002B01DE002F01DE003901CA003C01DE003902C2
-003101E0003701CA003C000B000000>
-<0000002B002B002B003C00480064008100D8013E01A001E80219024E028802A502F403050315
-0342037103A403D20403042C046A048E04C304F7050E052C0567058A05B605E5060306400668
-068B069F06BD06F106FE073807A707EB084608A208F6093E099909D700>
-<000100000033004A000400000000000200000001000100000040002E0000000000>
-] def
-/CharStrings 51 dict dup begin
-/.notdef 0 def
-/.null 1 def
-/nonmarkingreturn 2 def
-/quoteright 3 def
-/comma 4 def
-/period 5 def
-/zero 6 def
-/A 7 def
-/B 8 def
-/C 9 def
-/D 10 def
-/E 11 def
-/I 12 def
-/N 13 def
-/R 14 def
-/S 15 def
-/bracketleft 16 def
-/bracketright 17 def
-/a 18 def
-/b 19 def
-/c 20 def
-/d 21 def
-/e 22 def
-/f 23 def
-/g 24 def
-/h 25 def
-/i 26 def
-/j 27 def
-/k 28 def
-/l 29 def
-/m 30 def
-/n 31 def
-/o 32 def
-/p 33 def
-/r 34 def
-/s 35 def
-/t 36 def
-/u 37 def
-/v 38 def
-/w 39 def
-/y 40 def
-/bar 41 def
-/eng 42 def
-/Aring 43 def
-/AE 44 def
-/Oslash 45 def
-/aring 46 def
-/ae 47 def
-/eth 48 def
-/odieresis 49 def
-/oslash 50 def
-end readonly def
-FontName currentdict end definefont pop
diff --git a/Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf b/Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf
deleted file mode 100644
index 5c1f4b6ca3b..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/FonetikaDaniaIwonaeBold.ttf
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/antpolt-regular.otf b/Build/source/texk/lcdf-typetools/tests/antpolt-regular.otf
deleted file mode 100644
index 6ef78a116d0..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/antpolt-regular.otf
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/t1.test b/Build/source/texk/lcdf-typetools/tests/t1.test
deleted file mode 100755
index 1c282ef8ccf..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/t1.test
+++ /dev/null
@@ -1,58 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2017 Karl Berry <tex-live@tug.org>
-# Copyright 2012 Peter Breitenlohner <tex-live@tug.org>
-# You may freely use, modify and/or distribute this file.
-
-failed=
-
-rm -rf uhv*
-
-$LCDF_TYPETOOLS_TREE/t1dotlessj/t1dotlessj -a $srcdir/tests/uhvrrc8a.pfb uhv_dl.pfa \
- && diff uhv_dl.pfa $srcdir/tests/uhv_dl.pfa \
- && echo "t1dotlessj/asc tests OK" \
- || failed="$failed t1dotlessj/asc"
-
-cat $srcdir/tests/uhvrrc8a.pfb | $LCDF_TYPETOOLS_TREE/t1dotlessj/t1dotlessj -b >uhv_dl.pfb \
- && cmp -s uhv_dl.pfb $srcdir/tests/uhv_dl.pfb \
- && echo "t1dotlessj/bin tests OK" \
- || failed="$failed t1dotlessj/bin"
-
-$LCDF_TYPETOOLS_TREE/t1lint/t1lint uhv_dl.pfa \
- && echo "t1lint/asc tests OK" \
- || failed="$failed t1lint/asc"
-
-cat uhv_dl.pfb | $LCDF_TYPETOOLS_TREE/t1lint/t1lint \
- && echo "t1lint/bin tests OK" \
- || failed="$failed t1lint/bin"
-
-$LCDF_TYPETOOLS_TREE/t1testpage/t1testpage -o uhv_dl_a.ps uhv_dl.pfa \
- && diff uhv_dl_a.ps $srcdir/tests/uhv_dl.ps \
- && echo "t1testpage/asc tests OK" \
- || failed="$failed t1testpage/asc"
-
-cat uhv_dl.pfb | $LCDF_TYPETOOLS_TREE/t1testpage/t1testpage >uhv_dl_b.ps \
- && diff uhv_dl_b.ps $srcdir/tests/uhv_dl.ps \
- && echo "t1testpage/bin tests OK" \
- || failed="$failed t1testpage/bin"
-
-$LCDF_TYPETOOLS_TREE/t1reencode/t1reencode -e $srcdir/tests/t2c.enc -a $srcdir/tests/uhvrrc8a.pfb uhv_re.tmp \
- && grep -v 'Created by t1reencode' uhv_re.tmp >uhv_re.pfa \
- && diff uhv_re.pfa $srcdir/tests/uhv_re.pfa \
- && echo "t1reencode/asc tests OK" \
- || failed="$failed t1reencode/asc"
-
-$LCDF_TYPETOOLS_TREE/t1rawafm/t1rawafm -o uhv_re_a.afm uhv_re.pfa \
- && diff uhv_re_a.afm $srcdir/tests/uhv_re.afm \
- && echo "t1rawafm/asc tests OK" \
- || failed="$failed t1rawafm/asc"
-
-cat $srcdir/tests/uhvrrc8a.pfb | $LCDF_TYPETOOLS_TREE/t1reencode/t1reencode -e $srcdir/tests/t2c.enc -b \
- | $LCDF_TYPETOOLS_TREE/t1rawafm/t1rawafm >uhv_re_b.afm \
- && diff uhv_re_b.afm $srcdir/tests/uhv_re.afm \
- && echo "t1reencode+t1rawafm/bin tests OK" \
- || failed="$failed t1reencode+t1rawafm/bin"
-
-test -z "$failed" && exit 0
-echo "failed tests:$failed"
-exit 1
-
diff --git a/Build/source/texk/lcdf-typetools/tests/t2c.enc b/Build/source/texk/lcdf-typetools/tests/t2c.enc
deleted file mode 100644
index e55500e63a4..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/t2c.enc
+++ /dev/null
@@ -1,290 +0,0 @@
-% This file is generated from `T2Cuni.map' and `glyphlist.txt'
-%
-% 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 ;
-%
-/T2CAdobeEncoding [
-% 0x00
-/grave
-/acute
-/circumflex
-/tilde
-/dieresis
-/hungarumlaut
-/ring
-/caron
-/breve
-/macron
-/dotaccent
-/cedilla
-/ogonek
-/.notdef
-/angleleft
-/angleright
-% 0x10
-/quotedblleft
-/quotedblright
-/cyrflex
-/dblgrave
-/cyrbreve
-/endash
-/emdash
-/.notdef
-/.notdef
-/dotlessi
-/.notdef
-/ff
-/fi
-/fl
-/ffi
-/ffl
-% 0x20
-/.notdef
-/exclam
-/quotedbl
-/numbersign
-/dollar
-/percent
-/ampersand
-/quoteright
-/parenleft
-/parenright
-/asterisk
-/plus
-/comma
-/hyphen
-/period
-/slash
-% 0x30
-/zero
-/one
-/two
-/three
-/four
-/five
-/six
-/seven
-/eight
-/nine
-/colon
-/semicolon
-/less
-/equal
-/greater
-/question
-% 0x40
-/at
-/A
-/B
-/C
-/D
-/E
-/F
-/G
-/H
-/I
-/J
-/K
-/L
-/M
-/N
-/O
-% 0x50
-/P
-/Q
-/R
-/S
-/T
-/U
-/V
-/W
-/X
-/Y
-/Z
-/bracketleft
-/backslash
-/bracketright
-/asciicircum
-/underscore
-% 0x60
-/quoteleft
-/a
-/b
-/c
-/d
-/e
-/f
-/g
-/h
-/i
-/j
-/k
-/l
-/m
-/n
-/o
-% 0x70
-/p
-/q
-/r
-/s
-/t
-/u
-/v
-/w
-/x
-/y
-/z
-/braceleft
-/bar
-/braceright
-/asciitilde
-/hyphen
-% 0x80
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-% 0x90
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/afii10145
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/afii10023
-/afii61352
-/currency
-/section
-% 0xA0
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-% 0xB0
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/.notdef
-/afii10193
-/.notdef
-/.notdef
-/.notdef
-/afii10846
-/.notdef
-/afii10071
-/quotedblbase
-/guillemotleft
-/guillemotright
-% 0xC0
-/afii10017
-/afii10018
-/afii10019
-/afii10020
-/afii10021
-/afii10022
-/afii10024
-/afii10025
-/afii10026
-/afii10027
-/afii10028
-/afii10029
-/afii10030
-/afii10031
-/afii10032
-/afii10033
-% 0xD0
-/afii10034
-/afii10035
-/afii10036
-/afii10037
-/afii10038
-/afii10039
-/afii10040
-/afii10041
-/afii10042
-/afii10043
-/afii10044
-/afii10045
-/afii10046
-/afii10047
-/afii10048
-/afii10049
-% 0xE0
-/afii10065
-/afii10066
-/afii10067
-/afii10068
-/afii10069
-/afii10070
-/afii10072
-/afii10073
-/afii10074
-/afii10075
-/afii10076
-/afii10077
-/afii10078
-/afii10079
-/afii10080
-/afii10081
-% 0xF0
-/afii10082
-/afii10083
-/afii10084
-/afii10085
-/afii10086
-/afii10087
-/afii10088
-/afii10089
-/afii10090
-/afii10091
-/afii10092
-/afii10093
-/afii10094
-/afii10095
-/afii10096
-/afii10097
-] def
diff --git a/Build/source/texk/lcdf-typetools/tests/texmfhome.otf b/Build/source/texk/lcdf-typetools/tests/texmfhome.otf
deleted file mode 100644
index d0af1152ff4..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/texmfhome.otf
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/texnansx.enc b/Build/source/texk/lcdf-typetools/tests/texnansx.enc
deleted file mode 100644
index 5eb9183f62d..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/texnansx.enc
+++ /dev/null
@@ -1,279 +0,0 @@
-% @psencodingfile{
-% author = "Y&Y, Inc.",
-% version = "1.3",
-% date = "22apr09",
-% filename = "texnansx.enc",
-% email = "tex-fonts@tug.org",
-% codetable = "ISO/ASCII",
-% docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX."
-% }
-% MODIFIED FOR AFM2TFM to avoid repeated encodings, namely these
-% positions have become .notdef:
-%
-% 137/circumflex 141/OE 146/quoteleft 147/quoteright 153/tilde 157/oe
-% 169/dieresis 176/macron 181/acute 185/cedilla 199/AE 217/Oslash
-% 224/germandbls 231/ae 249/oslash
-%
-% 22apr09 document the precise differences from texnansi.
-% 17aug08 change /Uni20AC (wrong capitalization of /Uni) to /Euro for
-% consistency with other encodings. tex-live mail from Vasile Gaburici,
-% 16 Aug 2008 20:44:08.
-%
-/TeXnANSIEncoding [
-/.notdef % 0
-/Euro % /uni20AC 1
-/.notdef % 2
-/.notdef % 3
-/fraction % 4
-/dotaccent % 5
-/hungarumlaut % 6
-/ogonek % 7
-/fl % 8
-/.notdef % /fraction % 9 not used (see 4), backward compatability only
-/cwm % 10 not used, except boundary char internally maybe
-/ff % 11
-/fi % 12
-/.notdef % /fl % 13 not used (see 8), backward compatability only
-/ffi % 14
-/ffl % 15
-/dotlessi % 16
-/dotlessj % 17
-/grave % 18
-/acute % 19
-/caron % 20
-/breve % 21
-/macron % 22
-/ring % 23
-/cedilla % 24
-/germandbls % 25
-/ae % 26
-/oe % 27
-/oslash % 28
-/AE % 29
-/OE % 30
-/Oslash % 31
-/space % 32 % /suppress in TeX text
-/exclam % 33
-/quotedbl % 34 % /quotedblright in TeX text
-/numbersign % 35
-/dollar % 36
-/percent % 37
-/ampersand % 38
-/quoteright % 39 % /quotesingle in ANSI
-/parenleft % 40
-/parenright % 41
-/asterisk % 42
-/plus % 43
-/comma % 44
-/hyphen % 45
-/period % 46
-/slash % 47
-/zero % 48
-/one % 49
-/two % 50
-/three % 51
-/four % 52
-/five % 53
-/six % 54
-/seven % 55
-/eight % 56
-/nine % 57
-/colon % 58
-/semicolon % 59
-/less % 60 % /exclamdown in Tex text
-/equal % 61
-/greater % 62 % /questiondown in TeX text
-/question % 63
-/at % 64
-/A % 65
-/B % 66
-/C % 67
-/D % 68
-/E % 69
-/F % 70
-/G % 71
-/H % 72
-/I % 73
-/J % 74
-/K % 75
-/L % 76
-/M % 77
-/N % 78
-/O % 79
-/P % 80
-/Q % 81
-/R % 82
-/S % 83
-/T % 84
-/U % 85
-/V % 86
-/W % 87
-/X % 88
-/Y % 89
-/Z % 90
-/bracketleft % 91
-/backslash % 92 % /quotedblleft in TeX text
-/bracketright % 93
-/circumflex % 94 % /asciicircum in ASCII
-/underscore % 95 % /dotaccent in TeX text
-/quoteleft % 96 % /grave accent in ANSI
-/a % 97
-/b % 98
-/c % 99
-/d % 100
-/e % 101
-/f % 102
-/g % 103
-/h % 104
-/i % 105
-/j % 106
-/k % 107
-/l % 108
-/m % 109
-/n % 110
-/o % 111
-/p % 112
-/q % 113
-/r % 114
-/s % 115
-/t % 116
-/u % 117
-/v % 118
-/w % 119
-/x % 120
-/y % 121
-/z % 122
-/braceleft % 123 % /endash in TeX text
-/bar % 124 % /emdash in TeX test
-/braceright % 125 % /hungarumlaut in TeX text
-/tilde % 126 % /asciitilde in ASCII
-/dieresis % 127 not used (see 168), use higher up instead
-/Lslash % 128 this position is unfortunate, but now too late to fix
-/quotesingle % 129
-/quotesinglbase % 130
-/florin % 131
-/quotedblbase % 132
-/ellipsis % 133
-/dagger % 134
-/daggerdbl % 135
-/.notdef % /circumflex % 136
-/perthousand % 137
-/Scaron % 138
-/guilsinglleft % 139
-/.notdef % /OE % 140
-/Zcaron % 141
-/asciicircum % 142
-/minus % 143
-/lslash % 144
-/.notdef % /quoteleft % 145
-/.notdef % /quoteright % 146
-/quotedblleft % 147
-/quotedblright % 148
-/bullet % 149
-/endash % 150
-/emdash % 151
-/.notdef % /tilde % 152
-/trademark % 153
-/scaron % 154
-/guilsinglright % 155
-/.notdef % /oe % 156
-/zcaron % 157
-/asciitilde % 158
-/Ydieresis % 159
-/nbspace % 160 % /space (no break space)
-/exclamdown % 161
-/cent % 162
-/sterling % 163
-/currency % 164
-/yen % 165
-/brokenbar % 166
-/section % 167
-/.notdef % /dieresis % 168
-/copyright % 169
-/ordfeminine % 170
-/guillemotleft % 171
-/logicalnot % 172
-/sfthyphen % 173 % /hyphen (hanging hyphen)
-/registered % 174
-/.notdef % /macron % 175
-/degree % 176
-/plusminus % 177
-/twosuperior % 178
-/threesuperior % 179
-/.notdef % /acute % 180
-/mu % 181
-/paragraph % 182
-/periodcentered % 183
-/.notdef % /cedilla % 184
-/onesuperior % 185
-/ordmasculine % 186
-/guillemotright % 187
-/onequarter % 188
-/onehalf % 189
-/threequarters % 190
-/questiondown % 191
-/Agrave % 192
-/Aacute % 193
-/Acircumflex % 194
-/Atilde % 195
-/Adieresis % 196
-/Aring % 197
-/.notdef % /AE % 198
-/Ccedilla % 199
-/Egrave % 200
-/Eacute % 201
-/Ecircumflex % 202
-/Edieresis % 203
-/Igrave % 204
-/Iacute % 205
-/Icircumflex % 206
-/Idieresis % 207
-/Eth % 208
-/Ntilde % 209
-/Ograve % 210
-/Oacute % 211
-/Ocircumflex % 212
-/Otilde % 213
-/Odieresis % 214
-/multiply % 215 % OE in T1
-/.notdef % /Oslash % 216
-/Ugrave % 217
-/Uacute % 218
-/Ucircumflex % 219
-/Udieresis % 220
-/Yacute % 221
-/Thorn % 222
-/.notdef % /germandbls % 223
-/agrave % 224
-/aacute % 225
-/acircumflex % 226
-/atilde % 227
-/adieresis % 228
-/aring % 229
-/.notdef % /ae % 230
-/ccedilla % 231
-/egrave % 232
-/eacute % 233
-/ecircumflex % 234
-/edieresis % 235
-/igrave % 236
-/iacute % 237
-/icircumflex % 238
-/idieresis % 239
-/eth % 240
-/ntilde % 241
-/ograve % 242
-/oacute % 243
-/ocircumflex % 244
-/otilde % 245
-/odieresis % 246
-/divide % 247 % oe in T1
-/.notdef % /oslash % 248
-/ugrave % 249
-/uacute % 250
-/ucircumflex % 251
-/udieresis % 252
-/yacute % 253
-/thorn % 254
-/ydieresis % 255 % germandbls in T1
-] def
diff --git a/Build/source/texk/lcdf-typetools/tests/tfm.test b/Build/source/texk/lcdf-typetools/tests/tfm.test
deleted file mode 100755
index 5053147f25c..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/tfm.test
+++ /dev/null
@@ -1,26 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2017-2018 Karl Berry <tex-live@tug.org>
-# Copyright 2012 Peter Breitenlohner <tex-live@tug.org>
-# You may freely use, modify and/or distribute this file.
-
-LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
-
-PATH=$LCDF_TYPETOOLS_TREE/cfftot1:$PATH # May need to run cfftot1, ...
-PATH=$LCDF_TYPETOOLS_TREE/t1dotlessj:$PATH # ... t1dotlessj, ...
-PATH=$LCDF_TYPETOOLS_TREE/ttftotype42:$PATH # ... or ttftotype42.
-export PATH
-TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF
-ENCFONTS=.:$srcdir/tests; export ENCFONTS
-
-rm -f Ant* a_enhg3c.enc
-
-$LCDF_TYPETOOLS_TREE/otftotfm/otftotfm -e texnansx --glyphlist=$srcdir/$LCDF_TYPETOOLS_TREE/glyphlist.txt \
- -p -fkern -fliga \
- $srcdir/tests/antpolt-regular.otf Ant >Ant.map \
- && sed -e '1d' Ant.pl >Ant.plx \
- && diff Ant.plx $srcdir/tests/Ant.pl \
- && diff Ant.map $srcdir/tests/Ant.map \
- && sed -e '4d;/line:/,/Ant/d' a_enhg3c.enc >Ant.enc \
- && diff Ant.enc $srcdir/tests/Ant.enc \
- && cmp -s AntPolt-Regular.pfb $srcdir/tests/Ant.pfb || exit 1
-
diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.info b/Build/source/texk/lcdf-typetools/tests/tmf.info
deleted file mode 100644
index db7c3c839d3..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/tmf.info
+++ /dev/null
@@ -1,8 +0,0 @@
-Family: texmfhome
-Subfamily: Medium
-Full name: texmfhome
-PostScript name: texmfhome
-Version: Version 001.000
-Unique ID: PfaEdit : texmfhome : 17-6-2010
-Copyright: Created by taco with FontForge 2.0 (http://fontforge.sf.net)
-Vendor ID: PfEd
diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.pfa b/Build/source/texk/lcdf-typetools/tests/tmf.pfa
deleted file mode 100644
index 418ec7b2d14..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/tmf.pfa
+++ /dev/null
@@ -1,185 +0,0 @@
-%!PS-AdobeFont-1.0: texmfhome 001.000
-9 dict begin
-/FontName /texmfhome def
-/FontInfo 9 dict dup begin
-/version (001.000) readonly def
-/Notice (Created by taco with FontForge 2.0 \(http://fontforge.sf.net\) ) readonly def
-/FullName (texmfhome) readonly def
-/FamilyName (texmfhome) readonly def
-/Weight (Medium) readonly def
-/isFixedPitch true def
-/ItalicAngle 0 def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding StandardEncoding def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/StrokeWidth 0 def
-/FontBBox {17 0 507 611} readonly def
-currentdict end
-currentfile eexec
-8A776DF5437D053715F33367AD5C2F399F490C3C377EA6553EB427BAEE0B924B3EF673E285EC0C
-1078CA61959EC5E35844EC526506107737CF8BD3524F8AE01447B8090C2ABB680C35F02694D64F
-6FF22544B143DCBFFC763A72B7F5A7FE894951127BC7AE53040AC1D7B674A0302BEFDF70DB0319
-09A25FF691116431FDB007803108EAE2623E6E7F050C709A5ED08B482F66EA35D2045D89723406
-201EB465AE6B4E1864EDADC38F3B856CA55D9D49ACCBA4994BA0F8641AAFC5067A22577ACDCA27
-33F31D871C01AB90F1210F85B8158B108FB394C1B91120B926575CA86B910DA8639F189C07913A
-89356275D449956CE2BD1FE3F1C84F2E2CCAD5F1666CB376B897DFB049144434F4AB076F5E4F50
-A3F9BF36CC09B63AF52EC309D069DC90C7D719A2ADB8CC610A7E8397CCC2E7A6B6D3C543A0A344
-78F8343CD3C76B08F89757472AFE860682A8F65BBB0E7C4765F02CF3012B81E600979408843A7A
-E0854A225133A91814B06701F56511B57E0A8AFA1B2798B3C737A21790230DC019E92B14E5FD5D
-C72495C72FF221D9D635C30AE88C314123A21FCDAF0F0B176907F1C15039674CFDDAF16B1D6A74
-B8ABC54092E9211D7E889687061D66B27E3CB7FA9E9261B685B9CF527228D61DD8F4725CC4DC57
-411EB9F6F9E1498FB4C1E400B685C13B66622E5950F476A8922285F9D0CCFD4B483C0E332A260A
-9AD86913E2C2DEFE8CD67CD1423953CA185AD3FA099CC80613300BF3BA6E477363BB91639AB9F0
-694CA2262BA5750846C3A1ED25CDD66C8807285D266DEA1BDDDB8370BDB3B6A4910DB1EC8DC625
-4A97BA8D6BFDCD6E2071C96D6190E8C0DB6188298CEB024B3EBAA9A74D9CE8A8EA92D9DAF4CA90
-B4DDB28C7D1944EEA25ECC87022A5FD729948A03CD2B5A0019BF4402EC79B83E853A0878759061
-63181FBC4BE8B99602E38DBB4E03DFD2F2D770606F3A5B76A7C2763FA9C3FD079780C00837B423
-2C88517094D5AB51848AF3C34EB2F7C19050B31D53F727887B0FE1B832E0FF229E07FCC152E460
-041D64F23423BEC754F1E52A92741B8A5AD31F2B162E3CC9561E255A9F0461D2527DBF4AFD3839
-5223E49CAD02B9245120F07F470F4F5AE51E1591646DE94B2F2A7D280AF0F35CFE7E53D3FF6446
-7647DE7E2F240FABFE3FFB40A32FB3E415E942C3B584F5FB8065CDDDCACE2AAF4B7F51DCEABBDA
-9A5755847C9D5111D9CA2EACD307F8A6110FB11B3F833DBDD4304F5439CA8F27283F5FC496F9EF
-C172F7DCC18B289AEAB1498F11639D4CC2327DDB29546E6C6EFFF0025F9881080019BF440D14F8
-FC2793D53E070C6E39D371EEA5CAF5667BF64E621CBD889B4512EF6F83572113CF4F36C1FD3AE1
-16C51782DA00F2F41A648A292FCE8A2C8ED4B7A425E0C57F51BE6C85AB7F3E304D3556DE0A0233
-C61006B36629547D63AF5562C283A813184AAFA7F2663FD9F42F6610DD65A13179519C514754D1
-AB3173F8B39F363614BC23059A205683157EC5A7A769C453D74144A5B6AB5564F381CC081A6729
-6BE509924B63A68B8F363EB4764F1D59AA052129E689AF3EF7BAFD29B6306F16718BC6616CFCEC
-D3194B2240423D4E633F0307FAA9031F4D08FBAD6F9D146C7784F70F382B7D9941F9FCC41BBD43
-65211B86896276CFC4892C909A976E710B39F97C724731986A22942A31C59E85AAA90C4FE7E100
-A5655B058ADC2393FD9ED4F89E7667A9948BDD8DC757D4FD3B4057A951A992C5EA9C6BE00BFF7F
-959B233997B720D9A948B3FBA57F08BCBBDF7A649080E319A77F230183983BC9C889BB66182216
-9058180CA055A16C673B08005CC07E45E9D72F4D021DE5D04562EA86399A6915182F76C26E17B8
-2D1A6100B76F94216F618D5EC58D87A893684576E17F04F2DA06F41BDBBA4D5F79BDA4364F9F08
-0379CF5C5183F80C26C6FCA3E9814E8C4F559CB8BFE81C0E5F5AE6A051103262FAC49E78C58FDE
-CFBBE0BE6BF429F6657E60BF6FBDFB8D00FDC826F088A15C07023454A96B70462ECCD538F5B437
-CBF49D9F6C59F2EB93397BC6050B8CF0903E039A532139662330A5B56646101AC23A20F3AAFABA
-4A613AD5A12C02A36880A53D2BD3F9FD124161F4B8C9F6E73001C1D7801483056B506DED8D93BD
-D1622A9615BBCD2BA8CD6687B8A3BF6DD7FA99D92FDBB35CBA157247503DB082345863F5E37963
-2885FD78ED8B39106A865738EAB6A67B6EA9D573162DACA78F047BC7438FA9105BA39EAB08B284
-0FCD4EB85F37A7116C5DA1CA2196AAAEAB3ECEDEA68F569C7A625C0772A67E2A89B3743150C098
-8D8FE73CEBFCD7ED36070E82EC526951DB79177EF67A9AEDC097118C92B3F9F0676F77C560B45E
-F3313BA51DBBEDC499EDCCCF0BAA2A526B0FB2AE5E1EC057A30B83601663FC680D33E41C701680
-D57B0B013EC28B6414542CC3AC6E609BEEB349E2F53A53C2573E171F5FFF2E553F2D9268ACAA31
-6B9B65A761A55F0DA083A47DF7C99AE23C4824109918A7A22DB7A79171FBB32984B7DBF1A77807
-A02CABFF32A7EF14C4BE1BCB9FBCCE1F0E68E44ECFC805765DF2580384C3C4CDED04FED9FA1F01
-C462270AF377332A204845432310DC783AA5AC115EC189A164C2B4FDC7D1E487EEA49F86CD5AA4
-C38ECA2602BCD64C338F374131F41409B732DF247A77A9F83FB8446BA1FB5BF4DB5AB557AAB374
-E562E54127B7C5B7929CD04891EBA40FD96D12597683A2D156A96051DE06AA6E79F13BD980DA6D
-39667EE55A2C6C78F6157195ACFE09EDA3D87C312114DF9C70A2B76883D4CB03897961D4C0DF09
-7F04FA8A15418CA2771E1E12472DAEF5EFF7DEFADFA6080456268C09BB0EF5CE80909001986F81
-8A8FA216266064D7BF758767B8139B35A6F00C6A9E2F54C8C391D84FE530CCE208A0049175A541
-5300F896B4E2C77A756D1115F9086AC623820036AACE238F5CBF017CEE907FB046D647F6E50155
-D22769590EF84BF2C1882618D026B68B73A25257EEB3A808BFA24E77D8B4D07208312179394818
-01E1861B93CD09E0784F128E32A00646A47841CC6715C90CB36D047AC69F3B4AE4AE5C26DAC196
-353BF0CB6F6813B033E5C32F195455C973802315D0E46759E07FEFB4FAF32FE1FC0A5D9361C9BE
-0BDCB50B9A8BFD661F0A3E75F9FA21B2322940FA4DDCE6D5920F21D9EAEF63AA47B08A42EF2E4E
-A68843D45228C05ABEA26CFB1AF33080040ABE3B065C01E0C649E4BCEA8AD62A1ADAA034132918
-A061FFF7DE6C752BCAF34E419D77ACAF26BC3F2919DEA27AB020915EB8C46BE1CF7508BC8C1CAE
-1C14C188883E3B67377CAEB8E162449D55A9A379876D772647142D1DEE13E11D7DC045ECC4F168
-A02334C43BB81418A2E17CA497A1C65141D6D521365FB2DCCBE28228F19644EE9F67E9F960A1F9
-AA0EAA062EDE729130FFE7B295FD9F8E6F57F6CF460EF6EECE5327C8189B48093F8967638A0C86
-D30214CBF566F641B655E42D63B9D30A28648DD161F0482025DD2C931653078CD26A12885D996B
-AC2859DCDC2F9CAE177B42E97D13BD892CABCFE8E8D4F6D232153F98620DEAC6D3F7BE4C96F028
-76246D1B3639419B3C54799594E503356091EE21E178E202698D895FFE4BF8287C8CF15657563C
-2C30960CB86F5CB62D5274430B321593BE420810DBE039B3EE21A1EA8A37C1DD1994D495425103
-3FED0BAD746CD0C870453C4192E6FD303D3022F397FD638685A737809ACA52438E903B341AEBFF
-406C77AA6B4FB2F08EBA1BA5A5EA10C6D433159A2EBD6B1AA7BF20A99F8B5E4651FB9F21B0FFCB
-3D0BE87FFF89232583A27E3CC84A3134FA76284B9FE30CEE56EAE924F96B0A7C70B504F587DFB2
-8D6AC9C9F979D0CAF22C5B7B6516CBFFF69AC019C6F0F4BBD51EA30B0D4974ED1482D3EA66D62F
-1076D5F75F7F53F3606B6988757129F6076463B72828188CBABB47154269FA3234D1926EB37733
-59B15D8CF59A1074E5DEB8DFE366EFD47D1AF6916C82772FD76B92900594FDF2B7166F79BB04DE
-05F26C39850D1CBBB3179D0DDB18B37D6B77D23AD6ED16270DBF7228271236A5FCF6CD8A78E52E
-947334C4EDCBB25B62128E715621F2DF61D1ADFC407625D59DCC52620C8EB9D0BFCDB564E82429
-F3CC84C71BC464EE42C1ED01DC59AE38D034DE990727B207F75933EF28DAB01F68A6BD2C25CC7C
-F126E609D1ADB141E6D625D4D628BA8A09ED3573251B95A869376148B68A99031D5DFD4B40807E
-D29AB92C756A20891B716675710D910DF63F19CC3057295F018AC7325D8B91981E647BB8670B91
-C0EEACFD680693C5D8C3E1706263DA4BCD949DFB0A07AADFE51A6B50E0AA502B2751FFA2010002
-8F46ADFD8A6A80C3E5E41A162EA6CDB44223B575FB0D8C9C695907ADFA4816B306C59FC5E16196
-5312E96B6BA5DD892DCEF2EE94A1D390CD7E3861DA2C8CED440EBDEB319B4AB76D0FC0AB90161D
-4B1B1CE43B8BC601D6A68630699841627EC339F63F625863D51D349435E80C0DCCC2E461205071
-431A14DA99A00B8BAEB2CCFC2086DF7F0BDC4651E8560B193DBA1B86AA83FA2D3C2C2D5754D6E4
-3293C5843E4DBDA7884DFA233A13C601B2B64A450AC6E70B4B91166940184D044140BC50CAA8CF
-73969B9C9A6C8FC26DF0811DF73C01CAB53B16EE5BA265F13CB79DEB520830B6AE2CFCC718CE41
-4DC7B5E0DFF71A88BB3CE577D60A36AEE94E721397C6E54BDD9DC038A3EB3B63B71C8767053B99
-C97E4A448187323E051F8E5248489FA24BACE721587B94DFEA86B4B5F65ABF9A4E662F7B03CD3E
-7EF793A2A90AED6580D99609AADE95E55144815B45DD924ED30E7EB53215B932A365FE44FBC618
-5463ED13BA070D158363A98526FAF286C1C9871BFD3D368AEB20AF2864763A694BCC6FB44811B8
-42AC515E59A26542EF3FCFC175B8DF082DC764B6F7D2093E9A93351BFC35E6A9F62292B741E8AE
-DBE80AE98144F431EDC396FF0D2AB8F8CDD7EFBBF18455DF9ADC37D068622304B40C8397DE76D4
-EE6FF8AB2D7743462D195C53910F1C3FC9E836C4C82D98728F1386545F2BD214CAAC32D13D2C9B
-165BD4487FC83F38E75AE8E36EE34090F6492920C576D0FDD09733EAA1913013DBEEDDED60B5A1
-14627FDE3DAECD7A1A34D67DE63DFECF5A035AA70B1FAC886AF8791E98157AE57787803B09519E
-DFCB6E2D708307CE0DDD95A0AC608CE48E02A0ECD0A9C6B9C0775CE1E8F2387C79B6427DB05038
-B16AA88E63757BC5652C7CBBEA222E318FA56675B581E7C11A3F23CDA4F71D4406E6284726E983
-1C6833F3ED481FFDF9D792A2B6FDEC95932EFBECEBA6BDEFFBF865FDF61D974D4986DDBC1022C8
-40FB15F9A95BA9DBAF66687403C833BB631DF3A9E60BC9219406018873A12EFDAD48465D902CD6
-478305D35F7BFE53E66250DC1DEA12A0707A3454ADE1D2643D290F829D8A2B2EFD5A170639C08C
-D8CFF805EFAB7BAF5A0612E562C09C0E1612934E7CE8FB0C4C12384C843C482625CC273433A079
-37F016D0CAE33A36B4A91096DD1F9F042FC47F5454986BD28B7E87C32324CC358B1A24A162D432
-F1537DD8078FB90410D9D1F13F4BE18E3F306F8F1365690F07B2BD93EA6A68BD0D72936F18DE7D
-1BB0ED286CE4D8BC3279ECAB5E3A227BCACAE20413C671D410CE6BA063DC0D6ACE182E7604257D
-C586D685A7A5A46CCAA18CCF57CFC8D7656B0C4BDD143612DFC96BA60A6C431459B3E5EC418E61
-FC20FE469978BBB2D6BB22B845B3F879EA0B2B44262DB0DA0165E5264DC8552C045AF628085485
-C81D38B3378DA16D67F4447E8C4DB7B3EA9C8DA7F5C9CA1F1F08604DEAF6DC45097BFDE482B908
-8C36B41F19D310F8973567E340462A7CEC12BEF849595ECBACFDEAD0161836B13DA00749A39A46
-BFCE6EF77389B2E0CECF09ED97C06AFAD639EFABCDA5595B6023301599D0B7EE08CDD454B0B805
-0516ACD408746ABFD791FD362505FC55C10C7EACA355AFEF41E8D0051454C700EA9191540508E8
-957B493DD03418DB78E423FD4F03C66FA3CBE16EE9084E69AFB32FE7ECBE87CC65AA2E22052BE3
-C658A6AFB06619EF969FD417595F28F3CF9626F7A6A27FDEED7D053281A953ED5BAA79C4B4EFC5
-12695A92F667719FC15439B7838AB89361F29A4BBABEE4DF937DFFA6C052A701542A73F8B68A03
-4D36292790070E3B3EA84C4A089AA5B6B9189B5079EB075D2E3849BB0F2867C7AE0B105AEF7490
-7F4B081EA186901CC4B05C09A4BD122D87DDA8D51DA9F6A6BE27CA2E8088AE1B49BCD1895AE945
-A70612792080DCA5C0C5ADCCF33914BC46A9B3AD888EFF65C5A6D9885BAEC85578A17FE4633FED
-4CC81EECCB2A92B778A376C340E75EC914FCBD449F44B1B796F795AAA22C176847E042A53E0B70
-C5E37C4C2F342B2DA0764842D453FF234294E4C45D57F9A46388514094172FC06D881AD1F8CCFD
-5118B964B46BE783442B7CCB1E808A18F00C7F16F45664CFE02AFEE24B1D142E9F90F40CEB9B4E
-E5CC714B898668913C5E4550B8021222558FEC4C4A9367105A51A1D7658B7DC55F7092A799A3F5
-D5B6CE8A0700C7C7274E3721A230EA3588F9A07060F2E54CBE1B8C631ABBFFA7442C8B3CBD9C0E
-3CDADDECBB0BD8BF0AF53916F43FCE27B082006CA62E7488715E26F785380A0C3D0C3BA2FF01AE
-29E0738963FFA6EBBEA0367788B425D10B030E1E5F39769D3169E347C64B1918F49B9605A8C167
-3AC8854CDA86ABE16671465322DFD521D19EF236CFBD06F5327A86B203CC2D99D15FEED0DAE1A2
-DBE90E7A21555A2B88486E857AF356C8B55ED09932082D2683CC182BCF72898E1870D487943D37
-E3F2FC37B87CD0303156778E5BFDA12DB657D12EF99BAFBC767779D0C30DDB0FA4C0E49AD6B8D1
-6254C0DEA04A909F0AFD7D98D0936CF188577220A543AFB0F87CEE1A4BF0D95A9C74A69AB73F37
-415BDF0B086C7143F55A3530A25090F1CFFC381869D40BBF9D72DCE9F6DE5475C670260A00E049
-6956E73608536E0FAE34B5BF3096B05FE79A749D0010C314202873E706EDBE65827F85FD086074
-E9AA0FBA2D3B389CF69E561A8EA5FAEF9E86EE4A0A05963918FC947F22E2FDEA082B77933A7436
-B3E2665969B98CC9E4E35C1A783E948570CC325B1290DADB9D20DCEC08FB3993F76792791528E2
-B44F8017ACC4CA3A9BEB4A7E923BDBC91E2615EF0DBC8E670FBBA242C0A8D3D07AB79C3DE550B0
-931D392AE295D42F3D7353672C8BD4E7380812CE5CD273851FCE9AB277FFEC0BCD5186ADF73BA7
-7ACCF7113FDBB1CC6181B05CE9C6B61B3B199F7360F21BF89A211B872CB5C3905E1B70FA65DA58
-123B8AE4AF1331C1D74F0D9F3AC5FD02E5C4B15376C1527745F18C358CB3B33C79E443FC45F140
-EAA7B8969976187DF6E2F57435C751A0387A58D24365D36E80B8C14DF0D9B9600F500C50E0D185
-99AF42D72C181BCBE353DBE5D93510800D4C8A2199EC0DAB99D93152F86D17343E1AC3C449D6F2
-C5800FF4AD1F55CFA20F0756E94B53245AA757A209E4B62823877D6AEB29959E694040B00AB128
-9247EC2CFDA6C39E436FF4DB44E2540408A71367C045E1881576C7FDF832E8F8DDDC7295A06026
-042BB4CCC9E51F5780F79933B867A038653630492FA1E1EA67131C8906DDD2287CC70F6FEAE143
-408C83F790FA176B00C518203FC37D2D54977D68F2D94E0BB7BCFFCB37DA6FB0C1A631DF4EC89F
-BA5331463FC00DE6C1BE4E5AD2B2911BC803FA8D2CCD31C461997438FECAA5C200616914BCF166
-9DFFD57FC8883EF7EBC9439D0AD9D2B4EBFC1A9C987D418ACE63BBD3D3BAB4D7558387AB33CC6A
-1687F6DFBF11B969888D791B3FB385B6C34C9E4F304D929D029D81BA770A1D42C9486112FE3D1F
-0A9159FC4C9C3BF9519574C1D4377C4074890F9A1356414F7DB5C2049D86250C94AC353A41351D
-764C670FCE4A9545372F79C542D4FCC1A59785337D47585E38B56F933E1C2F4316DBDB258B3EB8
-0855BDF74CF93D090E66632ED68F031C926757A6BB83C904A2E226E7A8A7C02B2A205430E43343
-ECA5878433066319C17D946F961AF451DFB5E6B87EE4629A38258E68AA0AA2FC1A652FB2FCEE92
-6F7222C6B0FD78D83A3A9714B7EBB60DF406161431D5286ED92E23363EC3C8046513F38ECAF52B
-B3912A6ECFF98593D19DB27CB6BA6834F177183FEE0A647BEE77708467D561603A5D8FB882D974
-ACEE4850B09F3D70DB0E12C681173BAAD74C252FD3FEB16F18A5E65E28DF1A4DF3F7ED97CC9BDF
-96A91BA4C9AF9687ABE9FA92107AADE78E1CEDE3FBE094D8D6E2AF59DDB5272C44329C732A8DA8
-FAB7EC2A9926900B457DE9557E4A3904AB1009984B106C7B9D3940572728A747C110AEFAE2DBEB
-29307A324B12D2E6AC3593F5A0BF8A98AB8495E9B6EE43A0D2425C01FF8D774FC5CFA5AA08BEB6
-79F401F9556643E5FA870EB4487DFC5E72ADD7B316EBCEEAFAE7B47E455AAA901176514463979E
-C25A4F0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.pfb b/Build/source/texk/lcdf-typetools/tests/tmf.pfb
deleted file mode 100644
index 804c5aa483d..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/tmf.pfb
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/tmf.tables b/Build/source/texk/lcdf-typetools/tests/tmf.tables
deleted file mode 100644
index a11a6699435..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/tmf.tables
+++ /dev/null
@@ -1,10 +0,0 @@
- 499 CFF
- 28 FFTM
- 96 OS/2
- 322 cmap
- 54 head
- 36 hhea
- 10 hmtx
- 6 maxp
- 618 name
- 32 post
diff --git a/Build/source/texk/lcdf-typetools/tests/ttf.test b/Build/source/texk/lcdf-typetools/tests/ttf.test
deleted file mode 100755
index a8046474ce3..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/ttf.test
+++ /dev/null
@@ -1,48 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2017 Karl Berry <tex-live@tug.org>
-# Copyright 2012 Peter Breitenlohner <tex-live@tug.org>
-# You may freely use, modify and/or distribute this file.
-
-failed=
-
-rm -rf Fon* tmf.*
-
-$LCDF_TYPETOOLS_TREE/cfftot1/cfftot1 -a $srcdir/tests/texmfhome.otf tmf.pfa \
- && diff tmf.pfa $srcdir/tests/tmf.pfa \
- && echo "cfftot1/asc tests OK" \
- || failed="$failed cfftot1/asc"
-
-cat $srcdir/tests/texmfhome.otf | $LCDF_TYPETOOLS_TREE/cfftot1/cfftot1 -b >tmf.pfb \
- && cmp -s tmf.pfb $srcdir/tests/tmf.pfb \
- && echo "cfftot1/bin tests OK" \
- || failed="$failed cfftot1/bin"
-
-$LCDF_TYPETOOLS_TREE/ttftotype42/ttftotype42 $srcdir/tests/FonetikaDaniaIwonaeBold.ttf Fon_f.t42 \
- && diff Fon_f.t42 $srcdir/tests/Fon.t42 \
- && echo "ttftotype42/file tests OK" \
- || failed="$failed ttftotype42/file"
-
-cat $srcdir/tests/FonetikaDaniaIwonaeBold.ttf | $LCDF_TYPETOOLS_TREE/ttftotype42/ttftotype42 >Fon_t.t42 \
- && diff Fon_t.t42 $srcdir/tests/Fon.t42 \
- && echo "ttftotype42/term tests OK" \
- || failed="$failed ttftotype42/term"
-
-$LCDF_TYPETOOLS_TREE/otfinfo/otfinfo -t $srcdir/tests/texmfhome.otf >tmf.tables \
- && diff tmf.tables $srcdir/tests/tmf.tables \
- && echo "otfinfo/t tests OK" \
- || failed="$failed otfinfo/t"
-
-cat $srcdir/tests/texmfhome.otf | $LCDF_TYPETOOLS_TREE/otfinfo/otfinfo -i >tmf.info \
- && diff tmf.info $srcdir/tests/tmf.info \
- && echo "otfinfo/i tests OK" \
- || failed="$failed otfinfo/i"
-
-cat $srcdir/tests/texmfhome.otf | $LCDF_TYPETOOLS_TREE/otfinfo/otfinfo -T post >Fon.post \
- && cmp -s Fon.post $srcdir/tests/Fon.post \
- && echo "otfinfo/T tests OK" \
- || failed="$failed otfinfo/T"
-
-test -z "$failed" && exit 0
-echo "failed tests:$failed"
-exit 1
-
diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa b/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa
deleted file mode 100644
index e3990827bb8..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfa
+++ /dev/null
@@ -1,180 +0,0 @@
-%!PS-AdobeFont-1.0: NimbusSanL-ReguCondLCDFJ 001.005
-%%CreationDate: Wed Aug 3 1994
-% Copyright URW Software, Copyright 1994 by URW
-% URW Software, Copyright 1994 by URW
-9 dict begin
-/XUID [1 5020913 2322999] def
-/FontName /NimbusSanL-ReguCondLCDFJ def
-/FontInfo 10 dict dup begin
-/version (001.005) readonly def
-/Notice (URW Software, Copyright 1994 by URW) readonly def
-/Copyright (Copyright URW Software, Copyright 1994 by URW) readonly def
-/FullName (Nimbus Sans L Regular Condensed) readonly def
-/FamilyName (Nimbus Sans L) readonly def
-/Weight (Regular) readonly def
-/isFixedPitch false def
-/ItalicAngle 0 def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 106 /uni0237 put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/FontBBox {-136 -225 820 944} readonly def
-currentdict end
-currentfile eexec
-8A776DF5437D053715F33367AD5C2F399F4A3C4AA93FCBA250D54A7FA4D42ED633AA72E9BA3524
-9FEB6AB601831178A0690247FFCED3A15C9247FF52A6532CF582CFEB24204AEC140A2201F906F5
-B5CDF776DF1D8C3C1BB0985C38BBA74E00029BEDDF054A05B3B58985E702D2EB02E7FE3316CAC3
-A26DF2A45F5C8EAC11F6A49E79410F4873FBAB97238F123226CBFF6A289FB9E4691F8ED807C137
-C58417798F0381B07CB95AAF0FBF147DD54522894A29759A34CE5A8EF84645EE900D569DC6F224
-ED221522988299C62B184883B76599E2E9B764A8332728F100FBABFF0130700F37057D0803712C
-68D80564AD85A1FB1627D2D8A57A8C4F4E500671382801CCB781A28D3B7F94977D467410DBD713
-B6CEB0739972ADF0655BC62E41028E8F0F4807E7FC46B04028C7426B73282F6A0F1D927C2B967D
-2D1159E84555D3D137FDC7916C501EFC8CB198BB3CCEC4D6238810E0E2242D7ABD704CBAEA0BC5
-14290EFD29D231F461821D89C2A481CC3629806E3A19D4061AF6CE2EEC98258A60A9A0E55D83E8
-ABCDFE0CE041A71B0CE66B3975994FAE1A105004AA95BFF1BB7796E5F88519BE439D1EE3A759C5
-8A7136073557CDE6E98548A21AC4FF7360798932ED54DACF893D00AA2A790E18898C920BB4347D
-E139E09972849C8C3F017BF9C98BBF39E4B59C3F68F496EDA1F0F4F4C4BDF255A8207A0CF88B28
-CF01D7F1CCE8B965CB7896BE352A6809A82369F7732700A1160271223F8CDFE441AE07EC555718
-A960F70649328BEF898BE66153206638BCEE4FE7F3E07FA3A39CD20E6C28FEAC7D7002DF4CCE62
-9E682691663F384998D607D15F493250E0473D322D5DB97F4D7BF20B3941CED9CCDEE293DDDF6B
-92865767EFBA1966BA16D484A0C119164372DA6F102868513FD9CB11BA6C6BDF9C1E514AD17B46
-74F5AA21114444D7740DBD60547F88D7E8590F5957E07D11496D4C1C96B34E6768D54D7C52C5D4
-D7868B0DBDC986BBD0250154B1EDD08FF230B922FF89BEE8843B0591236605D9AC856C8D6B3915
-2C18C2907FFAB83AED18CCD9FE45A1F71FCA2A1FB7C65976D27632CC9EE6971A65B1B5B7F33916
-F98A12B5B3BDC9B4B5DD39F8050D76FB56AEED9EA14F14297A72727DABC7A5EBE5A083F23F6795
-F6A593A6142AECE3B580C53EC0BF54755F144C2CCD2818588DB4DD5318BA92CC1C4CDD60C63D14
-77399DCB5CDDD5735354EB14CC415E02ACFCF2E902B023E947995537191F9B9D36D74DCFCBE394
-BBDE5E90EFCCCD32BF4C33216538556C023A838E13E33DA6140C3E6156D41F3F81E0B5D78814EE
-30414C97A02FBFCD1C7B60E29A730067FD71CC788504AB430C1E976CC8D527B678F4A38901FB93
-CE8AE7BAD1A2ADDAFB8C44B2CEAF0A85D60027E52518A830C493EFB3D31B6E675D5F9A310FB006
-8BBFB86B283AAEB877676A53A748CB6EA95F154477B181EE4934E46DBDAE1776E3E93C84753C66
-5B174C4EED71F1C4D7AB0F89086A90EEA8B658F142CD65FCDDE60020B2B1921F1C4115D13170E7
-0261C3C595A4DC1FFA8F953AA67C194239DA9E1A08A7B20F40E5B5651979A4BC71B2D01DA5D130
-951850CFB5AD02590C2183C728A7C01D11F44B7304F6BA17EF15352DF2B6A622F7A5868AB94932
-33EDA1F509B6EA74912A657F9BADFE398D4BABE03EEF6DBC58530EDAF61CEE533F144C15081459
-7FF69B3A61CD57D6F436E6B7B6D3E1B9D757F9156B21FB72CCBD6EC69B93EFEE5ED2573F8CBABD
-B61C33B9E48CC22A9CCBFFC74EA59FFA76FD0C296C444787B4277ADD90173ECD8E0C304412B790
-A216CEEC12B6D72B02FAEAB9D3EA57334455B108F59AA61F77C989A136A425DD6CFD4C1D2A6A75
-18095A790AA77151503ECDDEC9BD22F6ED8423715CE286AD6B7ADF4F5037B8A4A7203303AE2789
-818FF106F969D161F33521F0750CAB1D39C0D09FF816A14B8503B229D42C9D7B427CAA11D6FCB6
-33ECC8B6DD6E0F306194EF5F9B2DBF688A2A47737E76DA7D21B6A2D2416A400AF197ED24D87AA9
-1EF18711169500D94B54721B7840CEDBC9A918DBD2D8AEEC78FEB009DAF8DBA3ADE2188428C1DC
-054C9E65D0419E31884502F8EFB612D3DAE48E3421D8983D37B040AF882D4220A8BFA250AC9035
-106DFA465D859296CC6F8DD709B253377F29B39031CC4856C8FD28D4424B3AB21635C075E8203E
-3019A0D67B5BBD2BCD4C360152772B2F51C71B96B019E7590FCDB941E74A22F10892A3CFDE8141
-EB8A1C4CFE96B4C782CB91B8C8739F2980FA06F475C4A3EFCAD68F5AF4DFDC65B35E0632F2F8FF
-A59849878724051CCA93179CE730EC8C2F24E085492A3C813F6EE8586DE2B8832C87509E72AB0F
-1BD5A26EFB38FF8440C375B86056CDB5045808EFF61912EE437D7B5EFA48ADF034F286A05A3570
-BADC541BBF5B88CE1175D7DE7A9DA4E141C3F3BF60A83010C6D4609C702B322675017F29A30665
-9A8FF0208BE4A8B7B96EB80CE5479A42C782B2217D81DA983F9A455A506B58F15AB0D314964D00
-ED0ED538057083AB154B58D58D4EC037D3A39C821201615112CBB34167C3429CA124EC4D6E754B
-B9FB2ECC96D17D09EFFB4D1BF4BB9C62B3D73A68292DDF1465EE9869348318EB5B294715BA329D
-B32095070742DD42E4FB006C7271FEB120921F4614BD066CB330A9FB496B10F251D52BB31EB84E
-3FCC717531F39B018DB5C205A2BC3AFBD1C77EEA9C28067510DFFDF61B649620D936C0FD24F9F8
-C5952527DC3921CCEAD46EA871EED5B0D452911F16C8A3B0D2E62CADF57921FCD447FC386E59C8
-579543793AA37970A8A5B0477B6FAAC04E085541562DF5B0AA097466A57065814F556DA5B783F2
-4033D9B15162A29FC08222FEDD4F9E81057D43D6B90EC469803ED25956FD6DF23F2566B0FBB820
-3FCDA6528043CDA025C30761AA0F441078EE07FA2AE09FE4415AA7AC6AB5E4DCBBFB1B64068480
-8191394F1CCEC0729E601BA79DEDD92945201627222175DABCB7EACED142559A463C24BEAD0A2E
-0BA08300ABE43DE05D23553015AC27CB333DD1C27088433505A239C58EA3C4F3D3B20A948B76A1
-8C5A0AADC426F0E689A055BFA6BE077C01472A5CFF750E0AA05616B86B8FFB9601A8EE8870D289
-735A69C5BFF86F89B346E3C3389B9AED4BAE67A511EA56EE9D0D8D30C7F6FA8BE39B170D8FCD64
-76DFE37E950659853E602931E2E4169939C26EED061FC99EA10CF51996248FFDB6631A72A245EB
-D350EB41409A36AB3B4707763CBE06CA44F3684EBB43D89F3623B01EEC3267D0C00BC4DA5901BA
-EDEAA497ABC1088580DDDA47E0BC086C444EBE2F80193F277F4B8EB6A72304586F11DD4AC824AA
-9C9D1BC2595EB2F0775ADAB8304D00AF32D0DD6CAC0F1357BA2D59B2FCCDB7EAC0933BBB7C35DB
-3F39E1E0871718BC05E0AEE12F5D27F923F9F3117263444F659737A50DF65B1C76ACD082C68026
-536EC258A84ECE54C3E02E1B2E4725926308599899BE3B9B5071D09E114D6033464F8D16665403
-D9577D332C6AC6D02B47EF121ADF2FE19109FB5BFE92CCA44637B8050A1E696487723073DCCD43
-82B1EA1E6653F20909D83A319F17C396EEB1A374207EACF51D2A7676C900EC3DB797E7E0306869
-2BCFF3D86E3D20158C30FAC362635666228128807809DCC84335783259DC7995E28944AB930C14
-7872249B185DC1A43523C01102C7E873251D7098CDED4F3786D26B29DEABF491188FB23BAD917F
-B39224DA0FD10F99A847016BDEDCD50B1D1EDC9B1C0A2C7FC8CC193295397AAD70BD895BB4E94F
-EAA0BF00F3F8526C8449E2F65C2573BB69552AE88F495653F9D5B0EB03EB44AAFC368BAA83FA2D
-3C34F0F46416C4E6BF8867C1BD4411C1C49BECD936B917E59D0BEC9D6AF3C82ABEEE9FA690FDF3
-4E165A7CD9F30A5466B6A28280AD6FD3EF242E690969DC6F729E2E688A0500F0AE4B717EE93613
-3439DCD1D23176C0A6684414B1D0ED176EF1855DD7FE13D1295DDE742C9E5DA54C0B6A52567653
-163F234B72EC546284D833C2DD845FF247DD37D2D3EA3B6B4D795A1DDB091454EE93B247AD9BB4
-03268AECEE9D7E1232EEF1A6F53ABAA723D74CCF52BB4FC6481D3ADC8AE99FB485771280C93ECF
-B50B0CD3A93A79E02E745797271033FAE4B9D373280DB75253BA7D81A41C8CB1586DD9DDD8970F
-5194D38FE7DDA7400EA66A18F6189854A97EC238776AF32D10395F565D4612D1656179DD363ACE
-4A12021905880EEB66CE88692C1D6F3C43A81E50EE681E648A35B71CED97BB06EA7978B8A73650
-B0ED46FE5510890908A13FC498EC43C6D7A947475601185907B4790F7D7E5CC8BC3231F21ABB3A
-D26F8F4AB5542E5554F526427C6AFF9FD082C7A8CD1ABA67527EFDBE6525F367EFBBDC0A5B893F
-F5923B674188E7A72587BBF44CE9662385BC70B1304DB7ACF2E133D9A8698969EA5F39ABA98911
-8807D0A0E18205B6AB095774A95C6A786CB2B2AD69A9404C265AE34F411046D04422607120009C
-8283B9D358275C81F09EDEC6FF8B4A8F371A9623AA6A5DA4E2B50AFB7FFA0D187280FC2C9567EA
-52488544F559917307CEAFFE81BF56EEB9E8CA2BA0E6FFC782DBD0C645610733F6CED2ADE0C095
-3AE1ACF2B1B43BCC3228BB05CE7F5BA7F420C7DBCC2CE36675CDB4FE8046AD36F61215D8A4BF11
-92071A89555F4B3F51DEBF412CA686F912B7A47686B04ED7265AB94847DEAB73D8B8237576965D
-93A96B6523A46EE66B7DCC52F32FBA2AED76808DEE1BA93976743CF489B558010891D4940DE54A
-9E6BCB12E5FF3809BCD4FF21585514619C0FB368905CB137E2429286B5DE589E9F0F189384BF43
-DA7CB6E14CEE64A323174D45A28E39FCF70C47ABD594AF3097EE748B2D3AC22FECFD8F60CF6C1C
-C4200CAE237FDD2F82B5671B448548877F1C2D7CE138F21F530278C1D3A9B9AD5D0B0536B13DBB
-C82AA68D6AE5A8BADA382266EE583CA45B98878F038848FBF34CF8C67C2E8A44FE69A42A8D9CF1
-1A9AF7FC3FE11260E4255F91D23F987B17A310F837CB79E7F6EF1CAAE756C049C1E6171EB1A678
-7EF01DE52B63224DBC34935BF05D0E4B1321676682FD97F444DB3D1ABE3BB759BFA7A604752753
-AAEAFEECD9B58FBCA6CE315993E045B7E98096D9B824986F355043DD9E2D086A7EEAA3045FD9DF
-CC6A63DE1221268CF3CD58EF35CEA99B5E4F10F1F4B33969F2DB7D3C60EAFE86C87597EBA6C493
-8A45FE1342025D604A03BF3E81F477453AAEF2EFE207E8CF4621A97B4076962A0CAFD435819829
-3A5E7FA95F7DEEBF4F0ABE105E04456C1303EA8D1F00DDCEAD57637364A2F6237F6D1FA62F3E05
-87309AF20BB7C3E01E9A4B27231D9C522FCAAFD52195FE2451ED4615C27AA5FD15C7755459FB9C
-92CAF38F21B7B5B65547D8AE91A656A1FD2E9F8BF96A2C73E23E70C51A9C4C89BA0C47406A0587
-FF8D5DC26B996A9BE9887BF54D0F7B78267CA1318685A20BD6BE50CDD8FD0326AC4FE95E4A9A1B
-B58185E2A9C85E13F0FDDA8D02007C7B098A75AF1CD56D8A2A2AD1D11AFC1A04FB62C9CFA6ED98
-5154E166D3C566C44E1C219E0B8742E681E808DA7BAA73A51160AFA75FB4A941A3A6BA423D66C6
-F843C18B95C32CFF294DB40F185D831179D86EFE76D9DE99092DFE369B073C58C40C86C98BBF69
-2C35E1376C4F1CCEF7F49A03948982D90C778778C749EB53C5FD8BF2903B96D38CC3A56FA8B8C3
-F5A8643EA7F4949D34C2FF9F0E7EA52D5C8340BB46B9F2CCB8AE8157937EE54D57D5D9681B5619
-6C501E28BFB9FF2D586B396F390507846348CD00EF5A75A663659CCEEDA54C6FA3E9F7190FFFC8
-DF3BD48AF0525DE3B9B9F1FDCB43380D7DE21D59E7C7FCCA63ACF4156EBE8C55705032FA1AB330
-296025FCEF21DF58BBB358A0151066DD4B58E510587F0CA8FCE35334F7D6C0EE0F5AE8E3CE874C
-C39D0A9AF6DA9D7AFCC654B91F6E18D629BE9B79D15F6F03B0F551B9297587749AE3D09185B67D
-C8424E9B540A8BDCC4753D1F71F312D2510D9269376F253966968900D365A681E028DC918B8E94
-66A23D67D21481FD752755C4061268FBC971514EE2DB07F53051E51E0171414523C367A164C92B
-ACC86AF5CFC1DAA5C2F3C6F0F02F9829EABBDA7B7098A9558473328D0BDCEDE6A2CE04D85AAFC9
-AFB0B925A184EE1B8F856D6F2385BA133C05DCBE7E522A27E53705661326D783620E68B3835E7C
-E28FE239461226651A3CC188D735967E8A7772222D6C244B3AB97392DE039231DB150A449135AC
-C180C4A2FA172315D87EA7AE5292CF14A2F1096F2FED71605A24B016B8513CDFABC3C4E42A94F1
-815E85424AD4BA8BA4FA2811E3088B3BDADAC29C34B1F51AE87074E292F1B3CFB528206FCA4E8B
-EF5E88AF2F6E325F0D75AD1EAE3447E37A17C629CB31B282023B419A27B5A2F46D02AD7FFD605F
-9D2004ADAC9DC062EDDE3C2281D356C7D6F50BD61F0F67C6FB519E78B932AF59DFFEF9F302BFA2
-7BF0E4FCB2472CB6B3C7332C3715AECCF754876D4DAB60798249338D037A20DA707907F3829197
-508E878912186A8325FA0DA25D9036A5C56CED2EC5208C520072679745F5F4E8E7DB5F673927EB
-953D9655C9FEFB235DF33C13E309BED2A61F5C57E28D3B5F2A066F5F15EAFC4B11E0B4F509629E
-D10ED694436DC8F24C8594087B89BAD2E543371EBC6BA9C0603DE058CB4D8630D07A1BC1209124
-1B7DF61806665F6F38A4E1CBF1CC0800C06926DFFC8227C96522E86E109163D6B9F2F61A1A64D5
-FBF74E3961C2605A25F067791E296F9214DDF9858568728F5CFDFC54880B4AB560E63C4040C6CD
-24D11557FC050BA06355E14B1FAA6E0D9A9F7B21774FCFCC230D1397C78C97459A04FFCF993226
-5095102E2E82747D3EACD38E630C57DF7DCC2B0B5E8EE46778FFB84AF81CCAA8DF4EA30A8D44AE
-F86066BA1D57C45F2B6EA6D94CF5EBC1DD4A7EEFED6AD42B09E5673CF6FDF672D24A6C0CA1E35D
-0357F3F17DAC6DDEC1F80F4969A25B7BC37E1A0A149D33F1FB032B8EF02C452ACFD5D0B8CB222E
-FB70599D6C0E64E47DBF7D6C8275C252195FA4C32D2478FB0DDCABCF6E1D2D50B61638B3C7E718
-F72C3D8D938AC3313598040C1448E10221994EBBF33BB3CAC3111F1F2F7BC68DA95F9CDAF1CB1C
-D854C76E0C28F7DB54D86458B7C0F69EB8B058032EBA9D88F0CAEFF306954F331BEF7702427D31
-F33E358717D2786B86842B053A47EA42927411CAC1ED8A110D10BACD5870A102BCBF1321057159
-AAC43FA3AE892E49ED10AEB53F9F530B5E11572C157AFFACA2BF2858A657DEDC674992B2594F29
-66192CED86E3050B92433B355094C7C5D869221A28B3936D3DF0BF7446B1F988F8E839548B5995
-B8C8F860335273A94E49606E088C3C97D0C674179F0C4C62969131FEB764F4C533FE29E2958118
-D2691B2AD7DB3B5F808BA54CA7CC4A17F54D043B5881BEA810EAF19A9689813C7551A672E89F99
-61E1F3C31AAA36BB8AFD8A6B3D77C32528033745A2B2E4CB6A21D6AF798A078D2F82BC3F61039E
-9C56BB76F3E7217F0EB14C5D786698ED5CE606AE908AD6B384F252137FEF44E6F71D411AFD945A
-0A0B16144C0CAB091D537A561E09FE06948A2A0E0AED97514BB6160A8887B859FEA6A166F4917B
-353290856E7F3AF953CEE4E3DBFD59C82A6BFA8059E81EDBF75BF62A051B1CAF23FE353228F308
-2E9761E269FC9492C3B01EC0776CC8F4A67A6AC3FF1A95C64DD855C5FC39B34FEFD29E63599B1D
-4961293AF34D8FAC26E5221C0E12B59A1940F17D458922347D1B43E11198E7525EC1C3A75473AA
-823E306C5C8A718DBF68F58EACBB3A0C1597040000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb b/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb
deleted file mode 100644
index 9ca4d1b59a0..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/uhv_dl.pfb
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_dl.ps b/Build/source/texk/lcdf-typetools/tests/uhv_dl.ps
deleted file mode 100644
index edccda35291..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/uhv_dl.ps
+++ /dev/null
@@ -1,208 +0,0 @@
-%!PS-Adobe-3.0
-%%LanguageLevel: 2
-%%DocumentMedia: Plain 612 792 white ( )
-%%BeginProlog
-/magicstr 1 string def
-/magicbox { % row col char name encoding magicbox -
- 5 3 roll 54 mul 36 add exch 54 mul neg 682 add moveto currentpoint
- .8 setgray 54 0 rlineto 0 54 rlineto -54 0 rlineto closepath stroke
- 0 setgray moveto
- gsave /Helvetica 7 selectfont 3 1.5 rmoveto show grestore
- gsave /Helvetica 7 selectfont 3 45.5 rmoveto show grestore
- magicstr 0 3 -1 roll put
- magicstr stringwidth pop 54 sub -2 div 16 rmoveto magicstr show
-} bind def
-%!PS-AdobeFont-1.0: NimbusSanL-ReguCondLCDFJ 001.005
-%%CreationDate: Wed Aug 3 1994
-% Copyright URW Software, Copyright 1994 by URW
-% URW Software, Copyright 1994 by URW
-9 dict begin
-/XUID [1 5020913 2322999] def
-/FontName /NimbusSanL-ReguCondLCDFJ def
-/FontInfo 10 dict dup begin
-/version (001.005) readonly def
-/Notice (URW Software, Copyright 1994 by URW) readonly def
-/Copyright (Copyright URW Software, Copyright 1994 by URW) readonly def
-/FullName (Nimbus Sans L Regular Condensed) readonly def
-/FamilyName (Nimbus Sans L) readonly def
-/Weight (Regular) readonly def
-/isFixedPitch false def
-/ItalicAngle 0 def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 106 /uni0237 put
-readonly def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/FontBBox {-136 -225 820 944} readonly def
-currentdict end
-currentfile eexec
-8A776DF5437D053715F33367AD5C2F399F4A3C4AA93FCBA250D54A7FA4D42ED633AA72E9BA3524
-9FEB6AB601831178A0690247FFCED3A15C9247FF52A6532CF582CFEB24204AEC140A2201F906F5
-B5CDF776DF1D8C3C1BB0985C38BBA74E00029BEDDF054A05B3B58985E702D2EB02E7FE3316CAC3
-A26DF2A45F5C8EAC11F6A49E79410F4873FBAB97238F123226CBFF6A289FB9E4691F8ED807C137
-C58417798F0381B07CB95AAF0FBF147DD54522894A29759A34CE5A8EF84645EE900D569DC6F224
-ED221522988299C62B184883B76599E2E9B764A8332728F100FBABFF0130700F37057D0803712C
-68D80564AD85A1FB1627D2D8A57A8C4F4E500671382801CCB781A28D3B7F94977D467410DBD713
-B6CEB0739972ADF0655BC62E41028E8F0F4807E7FC46B04028C7426B73282F6A0F1D927C2B967D
-2D1159E84555D3D137FDC7916C501EFC8CB198BB3CCEC4D6238810E0E2242D7ABD704CBAEA0BC5
-14290EFD29D231F461821D89C2A481CC3629806E3A19D4061AF6CE2EEC98258A60A9A0E55D83E8
-ABCDFE0CE041A71B0CE66B3975994FAE1A105004AA95BFF1BB7796E5F88519BE439D1EE3A759C5
-8A7136073557CDE6E98548A21AC4FF7360798932ED54DACF893D00AA2A790E18898C920BB4347D
-E139E09972849C8C3F017BF9C98BBF39E4B59C3F68F496EDA1F0F4F4C4BDF255A8207A0CF88B28
-CF01D7F1CCE8B965CB7896BE352A6809A82369F7732700A1160271223F8CDFE441AE07EC555718
-A960F70649328BEF898BE66153206638BCEE4FE7F3E07FA3A39CD20E6C28FEAC7D7002DF4CCE62
-9E682691663F384998D607D15F493250E0473D322D5DB97F4D7BF20B3941CED9CCDEE293DDDF6B
-92865767EFBA1966BA16D484A0C119164372DA6F102868513FD9CB11BA6C6BDF9C1E514AD17B46
-74F5AA21114444D7740DBD60547F88D7E8590F5957E07D11496D4C1C96B34E6768D54D7C52C5D4
-D7868B0DBDC986BBD0250154B1EDD08FF230B922FF89BEE8843B0591236605D9AC856C8D6B3915
-2C18C2907FFAB83AED18CCD9FE45A1F71FCA2A1FB7C65976D27632CC9EE6971A65B1B5B7F33916
-F98A12B5B3BDC9B4B5DD39F8050D76FB56AEED9EA14F14297A72727DABC7A5EBE5A083F23F6795
-F6A593A6142AECE3B580C53EC0BF54755F144C2CCD2818588DB4DD5318BA92CC1C4CDD60C63D14
-77399DCB5CDDD5735354EB14CC415E02ACFCF2E902B023E947995537191F9B9D36D74DCFCBE394
-BBDE5E90EFCCCD32BF4C33216538556C023A838E13E33DA6140C3E6156D41F3F81E0B5D78814EE
-30414C97A02FBFCD1C7B60E29A730067FD71CC788504AB430C1E976CC8D527B678F4A38901FB93
-CE8AE7BAD1A2ADDAFB8C44B2CEAF0A85D60027E52518A830C493EFB3D31B6E675D5F9A310FB006
-8BBFB86B283AAEB877676A53A748CB6EA95F154477B181EE4934E46DBDAE1776E3E93C84753C66
-5B174C4EED71F1C4D7AB0F89086A90EEA8B658F142CD65FCDDE60020B2B1921F1C4115D13170E7
-0261C3C595A4DC1FFA8F953AA67C194239DA9E1A08A7B20F40E5B5651979A4BC71B2D01DA5D130
-951850CFB5AD02590C2183C728A7C01D11F44B7304F6BA17EF15352DF2B6A622F7A5868AB94932
-33EDA1F509B6EA74912A657F9BADFE398D4BABE03EEF6DBC58530EDAF61CEE533F144C15081459
-7FF69B3A61CD57D6F436E6B7B6D3E1B9D757F9156B21FB72CCBD6EC69B93EFEE5ED2573F8CBABD
-B61C33B9E48CC22A9CCBFFC74EA59FFA76FD0C296C444787B4277ADD90173ECD8E0C304412B790
-A216CEEC12B6D72B02FAEAB9D3EA57334455B108F59AA61F77C989A136A425DD6CFD4C1D2A6A75
-18095A790AA77151503ECDDEC9BD22F6ED8423715CE286AD6B7ADF4F5037B8A4A7203303AE2789
-818FF106F969D161F33521F0750CAB1D39C0D09FF816A14B8503B229D42C9D7B427CAA11D6FCB6
-33ECC8B6DD6E0F306194EF5F9B2DBF688A2A47737E76DA7D21B6A2D2416A400AF197ED24D87AA9
-1EF18711169500D94B54721B7840CEDBC9A918DBD2D8AEEC78FEB009DAF8DBA3ADE2188428C1DC
-054C9E65D0419E31884502F8EFB612D3DAE48E3421D8983D37B040AF882D4220A8BFA250AC9035
-106DFA465D859296CC6F8DD709B253377F29B39031CC4856C8FD28D4424B3AB21635C075E8203E
-3019A0D67B5BBD2BCD4C360152772B2F51C71B96B019E7590FCDB941E74A22F10892A3CFDE8141
-EB8A1C4CFE96B4C782CB91B8C8739F2980FA06F475C4A3EFCAD68F5AF4DFDC65B35E0632F2F8FF
-A59849878724051CCA93179CE730EC8C2F24E085492A3C813F6EE8586DE2B8832C87509E72AB0F
-1BD5A26EFB38FF8440C375B86056CDB5045808EFF61912EE437D7B5EFA48ADF034F286A05A3570
-BADC541BBF5B88CE1175D7DE7A9DA4E141C3F3BF60A83010C6D4609C702B322675017F29A30665
-9A8FF0208BE4A8B7B96EB80CE5479A42C782B2217D81DA983F9A455A506B58F15AB0D314964D00
-ED0ED538057083AB154B58D58D4EC037D3A39C821201615112CBB34167C3429CA124EC4D6E754B
-B9FB2ECC96D17D09EFFB4D1BF4BB9C62B3D73A68292DDF1465EE9869348318EB5B294715BA329D
-B32095070742DD42E4FB006C7271FEB120921F4614BD066CB330A9FB496B10F251D52BB31EB84E
-3FCC717531F39B018DB5C205A2BC3AFBD1C77EEA9C28067510DFFDF61B649620D936C0FD24F9F8
-C5952527DC3921CCEAD46EA871EED5B0D452911F16C8A3B0D2E62CADF57921FCD447FC386E59C8
-579543793AA37970A8A5B0477B6FAAC04E085541562DF5B0AA097466A57065814F556DA5B783F2
-4033D9B15162A29FC08222FEDD4F9E81057D43D6B90EC469803ED25956FD6DF23F2566B0FBB820
-3FCDA6528043CDA025C30761AA0F441078EE07FA2AE09FE4415AA7AC6AB5E4DCBBFB1B64068480
-8191394F1CCEC0729E601BA79DEDD92945201627222175DABCB7EACED142559A463C24BEAD0A2E
-0BA08300ABE43DE05D23553015AC27CB333DD1C27088433505A239C58EA3C4F3D3B20A948B76A1
-8C5A0AADC426F0E689A055BFA6BE077C01472A5CFF750E0AA05616B86B8FFB9601A8EE8870D289
-735A69C5BFF86F89B346E3C3389B9AED4BAE67A511EA56EE9D0D8D30C7F6FA8BE39B170D8FCD64
-76DFE37E950659853E602931E2E4169939C26EED061FC99EA10CF51996248FFDB6631A72A245EB
-D350EB41409A36AB3B4707763CBE06CA44F3684EBB43D89F3623B01EEC3267D0C00BC4DA5901BA
-EDEAA497ABC1088580DDDA47E0BC086C444EBE2F80193F277F4B8EB6A72304586F11DD4AC824AA
-9C9D1BC2595EB2F0775ADAB8304D00AF32D0DD6CAC0F1357BA2D59B2FCCDB7EAC0933BBB7C35DB
-3F39E1E0871718BC05E0AEE12F5D27F923F9F3117263444F659737A50DF65B1C76ACD082C68026
-536EC258A84ECE54C3E02E1B2E4725926308599899BE3B9B5071D09E114D6033464F8D16665403
-D9577D332C6AC6D02B47EF121ADF2FE19109FB5BFE92CCA44637B8050A1E696487723073DCCD43
-82B1EA1E6653F20909D83A319F17C396EEB1A374207EACF51D2A7676C900EC3DB797E7E0306869
-2BCFF3D86E3D20158C30FAC362635666228128807809DCC84335783259DC7995E28944AB930C14
-7872249B185DC1A43523C01102C7E873251D7098CDED4F3786D26B29DEABF491188FB23BAD917F
-B39224DA0FD10F99A847016BDEDCD50B1D1EDC9B1C0A2C7FC8CC193295397AAD70BD895BB4E94F
-EAA0BF00F3F8526C8449E2F65C2573BB69552AE88F495653F9D5B0EB03EB44AAFC368BAA83FA2D
-3C34F0F46416C4E6BF8867C1BD4411C1C49BECD936B917E59D0BEC9D6AF3C82ABEEE9FA690FDF3
-4E165A7CD9F30A5466B6A28280AD6FD3EF242E690969DC6F729E2E688A0500F0AE4B717EE93613
-3439DCD1D23176C0A6684414B1D0ED176EF1855DD7FE13D1295DDE742C9E5DA54C0B6A52567653
-163F234B72EC546284D833C2DD845FF247DD37D2D3EA3B6B4D795A1DDB091454EE93B247AD9BB4
-03268AECEE9D7E1232EEF1A6F53ABAA723D74CCF52BB4FC6481D3ADC8AE99FB485771280C93ECF
-B50B0CD3A93A79E02E745797271033FAE4B9D373280DB75253BA7D81A41C8CB1586DD9DDD8970F
-5194D38FE7DDA7400EA66A18F6189854A97EC238776AF32D10395F565D4612D1656179DD363ACE
-4A12021905880EEB66CE88692C1D6F3C43A81E50EE681E648A35B71CED97BB06EA7978B8A73650
-B0ED46FE5510890908A13FC498EC43C6D7A947475601185907B4790F7D7E5CC8BC3231F21ABB3A
-D26F8F4AB5542E5554F526427C6AFF9FD082C7A8CD1ABA67527EFDBE6525F367EFBBDC0A5B893F
-F5923B674188E7A72587BBF44CE9662385BC70B1304DB7ACF2E133D9A8698969EA5F39ABA98911
-8807D0A0E18205B6AB095774A95C6A786CB2B2AD69A9404C265AE34F411046D04422607120009C
-8283B9D358275C81F09EDEC6FF8B4A8F371A9623AA6A5DA4E2B50AFB7FFA0D187280FC2C9567EA
-52488544F559917307CEAFFE81BF56EEB9E8CA2BA0E6FFC782DBD0C645610733F6CED2ADE0C095
-3AE1ACF2B1B43BCC3228BB05CE7F5BA7F420C7DBCC2CE36675CDB4FE8046AD36F61215D8A4BF11
-92071A89555F4B3F51DEBF412CA686F912B7A47686B04ED7265AB94847DEAB73D8B8237576965D
-93A96B6523A46EE66B7DCC52F32FBA2AED76808DEE1BA93976743CF489B558010891D4940DE54A
-9E6BCB12E5FF3809BCD4FF21585514619C0FB368905CB137E2429286B5DE589E9F0F189384BF43
-DA7CB6E14CEE64A323174D45A28E39FCF70C47ABD594AF3097EE748B2D3AC22FECFD8F60CF6C1C
-C4200CAE237FDD2F82B5671B448548877F1C2D7CE138F21F530278C1D3A9B9AD5D0B0536B13DBB
-C82AA68D6AE5A8BADA382266EE583CA45B98878F038848FBF34CF8C67C2E8A44FE69A42A8D9CF1
-1A9AF7FC3FE11260E4255F91D23F987B17A310F837CB79E7F6EF1CAAE756C049C1E6171EB1A678
-7EF01DE52B63224DBC34935BF05D0E4B1321676682FD97F444DB3D1ABE3BB759BFA7A604752753
-AAEAFEECD9B58FBCA6CE315993E045B7E98096D9B824986F355043DD9E2D086A7EEAA3045FD9DF
-CC6A63DE1221268CF3CD58EF35CEA99B5E4F10F1F4B33969F2DB7D3C60EAFE86C87597EBA6C493
-8A45FE1342025D604A03BF3E81F477453AAEF2EFE207E8CF4621A97B4076962A0CAFD435819829
-3A5E7FA95F7DEEBF4F0ABE105E04456C1303EA8D1F00DDCEAD57637364A2F6237F6D1FA62F3E05
-87309AF20BB7C3E01E9A4B27231D9C522FCAAFD52195FE2451ED4615C27AA5FD15C7755459FB9C
-92CAF38F21B7B5B65547D8AE91A656A1FD2E9F8BF96A2C73E23E70C51A9C4C89BA0C47406A0587
-FF8D5DC26B996A9BE9887BF54D0F7B78267CA1318685A20BD6BE50CDD8FD0326AC4FE95E4A9A1B
-B58185E2A9C85E13F0FDDA8D02007C7B098A75AF1CD56D8A2A2AD1D11AFC1A04FB62C9CFA6ED98
-5154E166D3C566C44E1C219E0B8742E681E808DA7BAA73A51160AFA75FB4A941A3A6BA423D66C6
-F843C18B95C32CFF294DB40F185D831179D86EFE76D9DE99092DFE369B073C58C40C86C98BBF69
-2C35E1376C4F1CCEF7F49A03948982D90C778778C749EB53C5FD8BF2903B96D38CC3A56FA8B8C3
-F5A8643EA7F4949D34C2FF9F0E7EA52D5C8340BB46B9F2CCB8AE8157937EE54D57D5D9681B5619
-6C501E28BFB9FF2D586B396F390507846348CD00EF5A75A663659CCEEDA54C6FA3E9F7190FFFC8
-DF3BD48AF0525DE3B9B9F1FDCB43380D7DE21D59E7C7FCCA63ACF4156EBE8C55705032FA1AB330
-296025FCEF21DF58BBB358A0151066DD4B58E510587F0CA8FCE35334F7D6C0EE0F5AE8E3CE874C
-C39D0A9AF6DA9D7AFCC654B91F6E18D629BE9B79D15F6F03B0F551B9297587749AE3D09185B67D
-C8424E9B540A8BDCC4753D1F71F312D2510D9269376F253966968900D365A681E028DC918B8E94
-66A23D67D21481FD752755C4061268FBC971514EE2DB07F53051E51E0171414523C367A164C92B
-ACC86AF5CFC1DAA5C2F3C6F0F02F9829EABBDA7B7098A9558473328D0BDCEDE6A2CE04D85AAFC9
-AFB0B925A184EE1B8F856D6F2385BA133C05DCBE7E522A27E53705661326D783620E68B3835E7C
-E28FE239461226651A3CC188D735967E8A7772222D6C244B3AB97392DE039231DB150A449135AC
-C180C4A2FA172315D87EA7AE5292CF14A2F1096F2FED71605A24B016B8513CDFABC3C4E42A94F1
-815E85424AD4BA8BA4FA2811E3088B3BDADAC29C34B1F51AE87074E292F1B3CFB528206FCA4E8B
-EF5E88AF2F6E325F0D75AD1EAE3447E37A17C629CB31B282023B419A27B5A2F46D02AD7FFD605F
-9D2004ADAC9DC062EDDE3C2281D356C7D6F50BD61F0F67C6FB519E78B932AF59DFFEF9F302BFA2
-7BF0E4FCB2472CB6B3C7332C3715AECCF754876D4DAB60798249338D037A20DA707907F3829197
-508E878912186A8325FA0DA25D9036A5C56CED2EC5208C520072679745F5F4E8E7DB5F673927EB
-953D9655C9FEFB235DF33C13E309BED2A61F5C57E28D3B5F2A066F5F15EAFC4B11E0B4F509629E
-D10ED694436DC8F24C8594087B89BAD2E543371EBC6BA9C0603DE058CB4D8630D07A1BC1209124
-1B7DF61806665F6F38A4E1CBF1CC0800C06926DFFC8227C96522E86E109163D6B9F2F61A1A64D5
-FBF74E3961C2605A25F067791E296F9214DDF9858568728F5CFDFC54880B4AB560E63C4040C6CD
-24D11557FC050BA06355E14B1FAA6E0D9A9F7B21774FCFCC230D1397C78C97459A04FFCF993226
-5095102E2E82747D3EACD38E630C57DF7DCC2B0B5E8EE46778FFB84AF81CCAA8DF4EA30A8D44AE
-F86066BA1D57C45F2B6EA6D94CF5EBC1DD4A7EEFED6AD42B09E5673CF6FDF672D24A6C0CA1E35D
-0357F3F17DAC6DDEC1F80F4969A25B7BC37E1A0A149D33F1FB032B8EF02C452ACFD5D0B8CB222E
-FB70599D6C0E64E47DBF7D6C8275C252195FA4C32D2478FB0DDCABCF6E1D2D50B61638B3C7E718
-F72C3D8D938AC3313598040C1448E10221994EBBF33BB3CAC3111F1F2F7BC68DA95F9CDAF1CB1C
-D854C76E0C28F7DB54D86458B7C0F69EB8B058032EBA9D88F0CAEFF306954F331BEF7702427D31
-F33E358717D2786B86842B053A47EA42927411CAC1ED8A110D10BACD5870A102BCBF1321057159
-AAC43FA3AE892E49ED10AEB53F9F530B5E11572C157AFFACA2BF2858A657DEDC674992B2594F29
-66192CED86E3050B92433B355094C7C5D869221A28B3936D3DF0BF7446B1F988F8E839548B5995
-B8C8F860335273A94E49606E088C3C97D0C674179F0C4C62969131FEB764F4C533FE29E2958118
-D2691B2AD7DB3B5F808BA54CA7CC4A17F54D043B5881BEA810EAF19A9689813C7551A672E89F99
-61E1F3C31AAA36BB8AFD8A6B3D77C32528033745A2B2E4CB6A21D6AF798A078D2F82BC3F61039E
-9C56BB76F3E7217F0EB14C5D786698ED5CE606AE908AD6B384F252137FEF44E6F71D411AFD945A
-0A0B16144C0CAB091D537A561E09FE06948A2A0E0AED97514BB6160A8887B859FEA6A166F4917B
-353290856E7F3AF953CEE4E3DBFD59C82A6BFA8059E81EDBF75BF62A051B1CAF23FE353228F308
-2E9761E269FC9492C3B01EC0776CC8F4A67A6AC3FF1A95C64DD855C5FC39B34FEFD29E63599B1D
-4961293AF34D8FAC26E5221C0E12B59A1940F17D458922347D1B43E11198E7525EC1C3A75473AA
-823E306C5C8A718DBF68F58EACBB3A0C1597040000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndProlog
-%%Page: 1 1
-save
-/NimbusSanL-ReguCondLCDFJ findfont dup length dict begin
- { 1 index /FID ne {def} {pop pop} ifelse } forall
- /Encoding [ /.notdef /space /uni0237 ] def
- currentdict end /X exch definefont pop
-/Helvetica-Bold 16 selectfont 36 742 moveto (NimbusSanL-ReguCondLCDFJ) show
-/X 24 selectfont
-0 0 0 (.notdef) ('\\000') magicbox
-0 1 1 (space) () magicbox
-0 2 2 (uni0237) ('j') magicbox
-showpage restore
-%%EOF
diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_re.afm b/Build/source/texk/lcdf-typetools/tests/uhv_re.afm
deleted file mode 100644
index 03f3ec00056..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/uhv_re.afm
+++ /dev/null
@@ -1,254 +0,0 @@
-StartFontMetrics 2.0
-Comment Generated by t1rawafm
-Version 001.005
-Notice URW Software, Copyright 1994 by URW
-FullName Nimbus Sans L Regular Condensed_T2CAdobeEncoding Enc
-FamilyName Nimbus Sans L
-Weight Regular
-ItalicAngle 0.0
-IsFixedPitch false
-UnderlinePosition -100
-UnderlineThickness 50
-CapHeight 718
-XHeight 523
-Ascender 718
-Descender -207
-StdHW 78
-StdVW 73
-FontBBox -136 -225 820 944
-FontName NimbusSanL-ReguCondT2CAdobeEncoding
-Characters 231
-StartCharMetrics 231
-C 0 ; WX 273 ; N grave ; B 11 593 173 734 ;
-C 1 ; WX 273 ; N acute ; B 100 593 262 734 ;
-C 2 ; WX 273 ; N circumflex ; B 17 593 256 734 ;
-C 3 ; WX 273 ; N tilde ; B -3 606 276 722 ;
-C 4 ; WX 273 ; N dieresis ; B 33 604 240 706 ;
-C 5 ; WX 273 ; N hungarumlaut ; B 25 593 335 734 ;
-C 6 ; WX 273 ; N ring ; B 61 572 212 756 ;
-C 7 ; WX 273 ; N caron ; B 17 593 256 734 ;
-C 8 ; WX 273 ; N breve ; B 11 595 263 731 ;
-C 9 ; WX 273 ; N macron ; B 8 627 265 684 ;
-C 10 ; WX 273 ; N dotaccent ; B 99 604 174 706 ;
-C 11 ; WX 273 ; N cedilla ; B 37 -225 212 0 ;
-C 12 ; WX 273 ; N ogonek ; B 60 -225 235 0 ;
-C 16 ; WX 273 ; N quotedblleft ; B 31 469 252 725 ;
-C 17 ; WX 273 ; N quotedblright ; B 21 462 242 718 ;
-C 21 ; WX 456 ; N endash ; B 0 240 456 313 ;
-C 22 ; WX 820 ; N emdash ; B 0 240 820 313 ;
-C 25 ; WX 228 ; N dotlessi ; B 78 0 150 523 ;
-C 28 ; WX 410 ; N fi ; B 11 0 356 728 ;
-C 29 ; WX 410 ; N fl ; B 11 0 354 728 ;
-C 33 ; WX 228 ; N exclam ; B 74 0 153 718 ;
-C 34 ; WX 291 ; N quotedbl ; B 57 463 234 718 ;
-C 35 ; WX 456 ; N numbersign ; B 23 0 434 688 ;
-C 36 ; WX 456 ; N dollar ; B 26 -115 426 775 ;
-C 37 ; WX 729 ; N percent ; B 32 -19 697 703 ;
-C 38 ; WX 547 ; N ampersand ; B 36 -15 529 718 ;
-C 39 ; WX 182 ; N quoteright ; B 43 462 129 718 ;
-C 40 ; WX 273 ; N parenleft ; B 56 -207 245 733 ;
-C 41 ; WX 273 ; N parenright ; B 28 -207 217 733 ;
-C 42 ; WX 319 ; N asterisk ; B 32 431 286 718 ;
-C 43 ; WX 479 ; N plus ; B 32 0 447 505 ;
-C 44 ; WX 228 ; N comma ; B 71 -147 157 107 ;
-C 45 ; WX 273 ; N hyphen ; B 36 232 237 322 ;
-C 46 ; WX 228 ; N period ; B 71 0 157 107 ;
-C 47 ; WX 228 ; N slash ; B -14 -19 242 737 ;
-C 48 ; WX 456 ; N zero ; B 30 -19 426 703 ;
-C 49 ; WX 456 ; N one ; B 83 0 294 703 ;
-C 50 ; WX 456 ; N two ; B 21 0 416 703 ;
-C 51 ; WX 456 ; N three ; B 28 -19 428 703 ;
-C 52 ; WX 456 ; N four ; B 20 0 429 703 ;
-C 53 ; WX 456 ; N five ; B 26 -19 421 688 ;
-C 54 ; WX 456 ; N six ; B 31 -19 425 703 ;
-C 55 ; WX 456 ; N seven ; B 30 0 429 688 ;
-C 56 ; WX 456 ; N eight ; B 31 -19 424 703 ;
-C 57 ; WX 456 ; N nine ; B 34 -19 421 703 ;
-C 58 ; WX 228 ; N colon ; B 71 0 157 516 ;
-C 59 ; WX 228 ; N semicolon ; B 71 -147 157 516 ;
-C 60 ; WX 479 ; N less ; B 39 10 440 496 ;
-C 61 ; WX 479 ; N equal ; B 32 115 447 390 ;
-C 62 ; WX 479 ; N greater ; B 39 10 440 496 ;
-C 63 ; WX 456 ; N question ; B 46 0 403 727 ;
-C 64 ; WX 832 ; N at ; B 121 -19 712 737 ;
-C 65 ; WX 547 ; N A ; B 11 0 536 718 ;
-C 66 ; WX 547 ; N B ; B 61 0 514 718 ;
-C 67 ; WX 592 ; N C ; B 36 -19 558 737 ;
-C 68 ; WX 592 ; N D ; B 66 0 553 718 ;
-C 69 ; WX 547 ; N E ; B 71 0 505 718 ;
-C 70 ; WX 501 ; N F ; B 71 0 478 718 ;
-C 71 ; WX 638 ; N G ; B 39 -19 577 737 ;
-C 72 ; WX 592 ; N H ; B 63 0 530 718 ;
-C 73 ; WX 228 ; N I ; B 75 0 154 718 ;
-C 74 ; WX 410 ; N J ; B 14 -19 351 718 ;
-C 75 ; WX 547 ; N K ; B 62 0 544 718 ;
-C 76 ; WX 456 ; N L ; B 62 0 440 718 ;
-C 77 ; WX 683 ; N M ; B 60 0 624 718 ;
-C 78 ; WX 592 ; N N ; B 62 0 530 718 ;
-C 79 ; WX 638 ; N O ; B 32 -19 606 737 ;
-C 80 ; WX 547 ; N P ; B 71 0 510 718 ;
-C 81 ; WX 638 ; N Q ; B 32 -56 606 737 ;
-C 82 ; WX 592 ; N R ; B 72 0 561 718 ;
-C 83 ; WX 547 ; N S ; B 40 -19 508 737 ;
-C 84 ; WX 501 ; N T ; B 11 0 490 718 ;
-C 85 ; WX 592 ; N U ; B 65 -19 528 718 ;
-C 86 ; WX 547 ; N V ; B 16 0 531 718 ;
-C 87 ; WX 774 ; N W ; B 13 0 761 718 ;
-C 88 ; WX 547 ; N X ; B 16 0 531 718 ;
-C 89 ; WX 547 ; N Y ; B 11 0 535 718 ;
-C 90 ; WX 501 ; N Z ; B 19 0 482 718 ;
-C 91 ; WX 228 ; N bracketleft ; B 52 -196 205 722 ;
-C 92 ; WX 228 ; N backslash ; B -14 -19 242 737 ;
-C 93 ; WX 228 ; N bracketright ; B 23 -196 176 722 ;
-C 94 ; WX 385 ; N asciicircum ; B -11 264 396 688 ;
-C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ;
-C 96 ; WX 182 ; N quoteleft ; B 53 469 139 725 ;
-C 97 ; WX 456 ; N a ; B 30 -15 435 538 ;
-C 98 ; WX 456 ; N b ; B 48 -15 424 718 ;
-C 99 ; WX 410 ; N c ; B 25 -15 391 538 ;
-C 100 ; WX 456 ; N d ; B 29 -15 409 718 ;
-C 101 ; WX 456 ; N e ; B 33 -15 423 538 ;
-C 102 ; WX 228 ; N f ; B 11 0 215 728 ;
-C 103 ; WX 456 ; N g ; B 33 -220 409 538 ;
-C 104 ; WX 456 ; N h ; B 53 0 403 718 ;
-C 105 ; WX 182 ; N i ; B 55 0 127 718 ;
-C 106 ; WX 182 ; N j ; B -13 -210 127 718 ;
-C 107 ; WX 410 ; N k ; B 55 0 411 718 ;
-C 108 ; WX 182 ; N l ; B 55 0 127 718 ;
-C 109 ; WX 683 ; N m ; B 53 0 631 538 ;
-C 110 ; WX 456 ; N n ; B 53 0 403 538 ;
-C 111 ; WX 456 ; N o ; B 29 -14 427 538 ;
-C 112 ; WX 456 ; N p ; B 48 -207 424 538 ;
-C 113 ; WX 456 ; N q ; B 29 -207 405 538 ;
-C 114 ; WX 273 ; N r ; B 63 0 272 538 ;
-C 115 ; WX 410 ; N s ; B 26 -15 380 538 ;
-C 116 ; WX 228 ; N t ; B 11 -7 211 669 ;
-C 117 ; WX 456 ; N u ; B 56 -15 401 523 ;
-C 118 ; WX 410 ; N v ; B 7 0 403 523 ;
-C 119 ; WX 592 ; N w ; B 11 0 581 523 ;
-C 120 ; WX 410 ; N x ; B 9 0 402 523 ;
-C 121 ; WX 410 ; N y ; B 9 -214 401 523 ;
-C 122 ; WX 410 ; N z ; B 25 0 385 523 ;
-C 123 ; WX 274 ; N braceleft ; B 34 -196 239 722 ;
-C 124 ; WX 213 ; N bar ; B 77 -19 137 737 ;
-C 125 ; WX 274 ; N braceright ; B 34 -196 239 722 ;
-C 126 ; WX 479 ; N asciitilde ; B 50 181 429 322 ;
-C 158 ; WX 456 ; N currency ; B 23 99 433 603 ;
-C 159 ; WX 456 ; N section ; B 35 -191 420 737 ;
-C 189 ; WX 273 ; N quotedblbase ; B 21 -149 242 107 ;
-C 190 ; WX 456 ; N guillemotleft ; B 80 108 376 446 ;
-C 191 ; WX 456 ; N guillemotright ; B 80 108 376 446 ;
-C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ;
-C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ;
-C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ;
-C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ;
-C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ;
-C -1 ; WX 547 ; N Aring ; B 11 0 536 944 ;
-C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ;
-C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ;
-C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ;
-C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ;
-C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ;
-C -1 ; WX 228 ; N Iacute ; B 75 0 240 903 ;
-C -1 ; WX 228 ; N Igrave ; B -11 0 153 929 ;
-C -1 ; WX 228 ; N Icircumflex ; B -5 0 234 929 ;
-C -1 ; WX 592 ; N Ntilde ; B 62 0 530 917 ;
-C -1 ; WX 638 ; N Odieresis ; B 32 -19 606 901 ;
-C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ;
-C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ;
-C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ;
-C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ;
-C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ;
-C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ;
-C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ;
-C -1 ; WX 592 ; N Ugrave ; B 65 -19 528 929 ;
-C -1 ; WX 592 ; N Ucircumflex ; B 65 -19 528 929 ;
-C -1 ; WX 547 ; N Yacute ; B 11 0 535 929 ;
-C -1 ; WX 501 ; N Zcaron ; B 19 0 482 929 ;
-C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ;
-C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ;
-C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ;
-C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ;
-C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ;
-C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ;
-C -1 ; WX 456 ; N aring ; B 30 -15 435 769 ;
-C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ;
-C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ;
-C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ;
-C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ;
-C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ;
-C -1 ; WX 228 ; N iacute ; B 78 0 240 734 ;
-C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ;
-C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ;
-C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ;
-C -1 ; WX 456 ; N odieresis ; B 29 -14 427 706 ;
-C -1 ; WX 456 ; N oacute ; B 29 -14 427 734 ;
-C -1 ; WX 456 ; N ograve ; B 29 -14 427 734 ;
-C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ;
-C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ;
-C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ;
-C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ;
-C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ;
-C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ;
-C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ;
-C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ;
-C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ;
-C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ;
-C -1 ; WX 820 ; N AE ; B 7 0 780 718 ;
-C -1 ; WX 820 ; N OE ; B 30 -19 791 737 ;
-C -1 ; WX 638 ; N Oslash ; B 32 -19 607 737 ;
-C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ;
-C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ;
-C -1 ; WX 456 ; N Lslash ; B -16 0 440 718 ;
-C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ;
-C -1 ; WX 729 ; N ae ; B 30 -15 695 538 ;
-C -1 ; WX 774 ; N oe ; B 29 -15 740 538 ;
-C -1 ; WX 501 ; N oslash ; B 23 -22 440 545 ;
-C -1 ; WX 501 ; N germandbls ; B 55 -15 468 728 ;
-C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ;
-C -1 ; WX 182 ; N lslash ; B -16 0 198 718 ;
-C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ;
-C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ;
-C -1 ; WX 456 ; N sterling ; B 27 -16 442 718 ;
-C -1 ; WX 456 ; N cent ; B 42 -115 421 623 ;
-C -1 ; WX 456 ; N florin ; B -9 -207 411 737 ;
-C -1 ; WX 456 ; N yen ; B 2 0 453 688 ;
-C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ;
-C -1 ; WX 273 ; N twosuperior ; B 3 280 265 714 ;
-C -1 ; WX 273 ; N threesuperior ; B 4 270 266 714 ;
-C -1 ; WX 228 ; N periodcentered ; B 63 190 166 315 ;
-C -1 ; WX 228 ; N middot ; B 63 190 166 315 ;
-C -1 ; WX 820 ; N ellipsis ; B 94 0 726 107 ;
-C -1 ; WX 273 ; N exclamdown ; B 97 -195 176 523 ;
-C -1 ; WX 501 ; N questiondown ; B 75 -201 432 525 ;
-C -1 ; WX 273 ; N guilsinglright ; B 72 108 201 446 ;
-C -1 ; WX 273 ; N guilsinglleft ; B 72 108 201 446 ;
-C -1 ; WX 273 ; N sfthyphen ; B 36 232 237 322 ;
-C -1 ; WX 456 ; N dagger ; B 35 -159 421 718 ;
-C -1 ; WX 456 ; N daggerdbl ; B 35 -159 421 718 ;
-C -1 ; WX 157 ; N quotesingle ; B 48 463 108 718 ;
-C -1 ; WX 328 ; N degree ; B 44 411 284 703 ;
-C -1 ; WX 479 ; N minus ; B 32 216 447 289 ;
-C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ;
-C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ;
-C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ;
-C -1 ; WX 440 ; N paragraph ; B 15 -173 408 718 ;
-C -1 ; WX 182 ; N quotesinglbase ; B 43 -149 129 107 ;
-C -1 ; WX 303 ; N ordfeminine ; B 20 304 284 737 ;
-C -1 ; WX 299 ; N ordmasculine ; B 20 304 280 737 ;
-C -1 ; WX 479 ; N plusminus ; B 32 0 447 561 ;
-C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ;
-C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ;
-C -1 ; WX 684 ; N threequarters ; B 37 -19 664 714 ;
-C -1 ; WX 137 ; N fraction ; B -136 -19 273 703 ;
-C -1 ; WX 820 ; N perthousand ; B 6 -19 815 703 ;
-C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ;
-C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ;
-C -1 ; WX 228 ; N space ; B 0 0 0 0 ;
-C -1 ; WX 228 ; N nbspace ; B 0 0 0 0 ;
-C -1 ; WX 287 ; N bullet ; B 15 202 273 517 ;
-C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ;
-C -1 ; WX 213 ; N brokenbar ; B 77 -19 137 737 ;
-C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ;
-EndCharMetrics
-EndFontMetrics
diff --git a/Build/source/texk/lcdf-typetools/tests/uhv_re.pfa b/Build/source/texk/lcdf-typetools/tests/uhv_re.pfa
deleted file mode 100644
index c728c2a1c4b..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/uhv_re.pfa
+++ /dev/null
@@ -1,901 +0,0 @@
-%!PS-AdobeFont-1.0: NimbusSanL-ReguCond 001.005
-%%CreationDate: Wed Aug 3 1994
-% Copyright URW Software, Copyright 1994 by URW
-% URW Software, Copyright 1994 by URW
-%% T1reencode is free software. See <http://www.lcdf.org/type/>.
-11 dict begin
-/FontInfo 10 dict dup begin
-/version (001.005) readonly def
-/Notice (URW Software, Copyright 1994 by URW) readonly def
-/Copyright (Copyright URW Software, Copyright 1994 by URW) readonly def
-/FullName (Nimbus Sans L Regular Condensed_T2CAdobeEncoding Enc) readonly def
-/FamilyName (Nimbus Sans L) readonly def
-/Weight (Regular) readonly def
-/ItalicAngle 0.0 def
-/isFixedPitch false def
-/UnderlinePosition -100 def
-/UnderlineThickness 50 def
-end readonly def
-/XUID [1 5020913 2552790 13843793 16426425 3718337 7959197 2293760] def
-/FontName /NimbusSanL-ReguCondT2CAdobeEncoding def
-/PaintType 0 def
-/FontBBox {-136 -225 820 944} readonly def
-/FontType 1 def
-/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 0 /grave put
-dup 1 /acute put
-dup 2 /circumflex put
-dup 3 /tilde put
-dup 4 /dieresis put
-dup 5 /hungarumlaut put
-dup 6 /ring put
-dup 7 /caron put
-dup 8 /breve put
-dup 9 /macron put
-dup 10 /dotaccent put
-dup 11 /cedilla put
-dup 12 /ogonek put
-dup 14 /angleleft put
-dup 15 /angleright put
-dup 16 /quotedblleft put
-dup 17 /quotedblright put
-dup 18 /cyrflex put
-dup 19 /dblgrave put
-dup 20 /cyrbreve put
-dup 21 /endash put
-dup 22 /emdash put
-dup 25 /dotlessi put
-dup 27 /ff put
-dup 28 /fi put
-dup 29 /fl put
-dup 30 /ffi put
-dup 31 /ffl put
-dup 33 /exclam put
-dup 34 /quotedbl put
-dup 35 /numbersign put
-dup 36 /dollar put
-dup 37 /percent put
-dup 38 /ampersand put
-dup 39 /quoteright put
-dup 40 /parenleft put
-dup 41 /parenright put
-dup 42 /asterisk put
-dup 43 /plus put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 47 /slash put
-dup 48 /zero put
-dup 49 /one put
-dup 50 /two put
-dup 51 /three put
-dup 52 /four put
-dup 53 /five put
-dup 54 /six put
-dup 55 /seven put
-dup 56 /eight put
-dup 57 /nine put
-dup 58 /colon put
-dup 59 /semicolon put
-dup 60 /less put
-dup 61 /equal put
-dup 62 /greater put
-dup 63 /question put
-dup 64 /at put
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-dup 69 /E put
-dup 70 /F put
-dup 71 /G put
-dup 72 /H put
-dup 73 /I put
-dup 74 /J put
-dup 75 /K put
-dup 76 /L put
-dup 77 /M put
-dup 78 /N put
-dup 79 /O put
-dup 80 /P put
-dup 81 /Q put
-dup 82 /R put
-dup 83 /S put
-dup 84 /T put
-dup 85 /U put
-dup 86 /V put
-dup 87 /W put
-dup 88 /X put
-dup 89 /Y put
-dup 90 /Z put
-dup 91 /bracketleft put
-dup 92 /backslash put
-dup 93 /bracketright put
-dup 94 /asciicircum put
-dup 95 /underscore put
-dup 96 /quoteleft put
-dup 97 /a put
-dup 98 /b put
-dup 99 /c put
-dup 100 /d put
-dup 101 /e put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 106 /j put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 111 /o put
-dup 112 /p put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 118 /v put
-dup 119 /w put
-dup 120 /x put
-dup 121 /y put
-dup 122 /z put
-dup 123 /braceleft put
-dup 124 /bar put
-dup 125 /braceright put
-dup 126 /asciitilde put
-dup 127 /hyphen put
-dup 150 /afii10145 put
-dup 156 /afii10023 put
-dup 157 /afii61352 put
-dup 158 /currency put
-dup 159 /section put
-dup 182 /afii10193 put
-dup 186 /afii10846 put
-dup 188 /afii10071 put
-dup 189 /quotedblbase put
-dup 190 /guillemotleft put
-dup 191 /guillemotright put
-dup 192 /afii10017 put
-dup 193 /afii10018 put
-dup 194 /afii10019 put
-dup 195 /afii10020 put
-dup 196 /afii10021 put
-dup 197 /afii10022 put
-dup 198 /afii10024 put
-dup 199 /afii10025 put
-dup 200 /afii10026 put
-dup 201 /afii10027 put
-dup 202 /afii10028 put
-dup 203 /afii10029 put
-dup 204 /afii10030 put
-dup 205 /afii10031 put
-dup 206 /afii10032 put
-dup 207 /afii10033 put
-dup 208 /afii10034 put
-dup 209 /afii10035 put
-dup 210 /afii10036 put
-dup 211 /afii10037 put
-dup 212 /afii10038 put
-dup 213 /afii10039 put
-dup 214 /afii10040 put
-dup 215 /afii10041 put
-dup 216 /afii10042 put
-dup 217 /afii10043 put
-dup 218 /afii10044 put
-dup 219 /afii10045 put
-dup 220 /afii10046 put
-dup 221 /afii10047 put
-dup 222 /afii10048 put
-dup 223 /afii10049 put
-dup 224 /afii10065 put
-dup 225 /afii10066 put
-dup 226 /afii10067 put
-dup 227 /afii10068 put
-dup 228 /afii10069 put
-dup 229 /afii10070 put
-dup 230 /afii10072 put
-dup 231 /afii10073 put
-dup 232 /afii10074 put
-dup 233 /afii10075 put
-dup 234 /afii10076 put
-dup 235 /afii10077 put
-dup 236 /afii10078 put
-dup 237 /afii10079 put
-dup 238 /afii10080 put
-dup 239 /afii10081 put
-dup 240 /afii10082 put
-dup 241 /afii10083 put
-dup 242 /afii10084 put
-dup 243 /afii10085 put
-dup 244 /afii10086 put
-dup 245 /afii10087 put
-dup 246 /afii10088 put
-dup 247 /afii10089 put
-dup 248 /afii10090 put
-dup 249 /afii10091 put
-dup 250 /afii10092 put
-dup 251 /afii10093 put
-dup 252 /afii10094 put
-dup 253 /afii10095 put
-dup 254 /afii10096 put
-dup 255 /afii10097 put
-readonly def
-%/UniqueID 5020913 def
-currentdict end
-currentfile eexec
-8A776DF5437D053715F33367AD5C2F399F4A3FF62A0B04E82D8B2B3129A2D94C7258D26C332618
-F779811EFC1D3D3AB02536EE4A92FF127539FF8455AE9134B9E14338C9759A08FE695F2CC43E73
-D6F64F8BFD9DA10ACABA4512E1CFD3807AD18E8BA5ED2C9F5EA8241B128A8EFE0CE041D06EB102
-DC2468B2728E69F2EDF084EA67DB23EEA2237E3437C1A30FD9148411119F00772297ECA2C9242B
-9B16CC8362FFEC5103D95D1CE64EB8A6D26326DCABAD6EB67FF9CFBAC864E8E69920EC1F8A0C80
-F960B1628072A35F541CD03660EA32BC80231A1502D931515940235964389EBF353B55BA8BFDFF
-1DBED1185F46B8D08D8109743F6374137E0ECB096DBBD52F5F76EA14324732041C7EF90686F91C
-0265E252E778873A5C6463C98C8685736A368DEBDED7A53C4F471D55E592DF4944CECD9D58B2AB
-987CFEC520C3DA3688E06626D829D808992C9639864E1C1C1A781B9BC262F0118DD3256846FC67
-FF9B4D61A957F0FA47C3B8C844408C1957FF0EA33CAF062CDC572A1AE06FE6C03BD745B08FCE35
-0E1DEF72B145CF69EA554A7879C7375992DA64C7AA2518D984336FD28238D4D3D18D83551C5EFD
-1354DC5FE1C17800082C38EEDAAB0B182529694C57CC8CDD97B3BFAE6A04037E6C17C63E22625D
-CC1DE0FA4E53ADF8652EB58D08093F7028CE2A5F8A08E743FD342CB8D9AE11D2C73AE9505E3FD3
-6302C2B3B2401009E9A501882B5CD80FD12A508489D9F9EDC38F69726B4E1A223C2A5D283D04C5
-FC885FE55BDCA67790129DFF3DF9348FAC84DEAAD2AF6FDE945FA70275AB10FF33E2E5979052D5
-BB2375B8A895B9A38DC5EE96313063DE00DF60D5353D434F774636A9FFF31264A9F33F451AA260
-D8814D8D0AF9D58C2C05CED6BA29801B04D418CC268A996AE3CD407CF55D95CB86557434082BA3
-4B031A15A3B01E3BBE9196428BBD0C58E6DBF1441D2C0CD755EC8B4E070E305CA8C05898686E59
-2150F3FF10FBFADCBB587FD9DF73E86C0A34C5B87DDE3846BEE1C88E7CB9BF23D0A9900EF022C9
-5BEE407E64C60B1BA96DD7A7FCB3C21A4A3456AD2DA23E3C07C05F5B0B60DD6119D858E8966921
-51624AC4192929EDE4BE53A5A195DC0C6C3BC7A8B6E4E27EC9CE8CCF381A425988CCCB3AE7B47C
-75CE05C293DF0411EE8F0A4E9099C24E6E98BF53E7E3094ED1DC944FBA25BC27B4A9E38FC7EEAE
-0D92B8CDF30CA7A54D37059BD2BB016786BCD3A049201A3900A74C5D5127C02C4D84CA7CDA4998
-FBD636E8E80626EAFDDE9081916416A25685D4C723CB3B985442E287F034805FF4F4D115579DE0
-CC45B3E713DD69949D61F4522E9FB8EDE4CF8B3A8C271BB7DF77721E72541A0BE5DD9D57684284
-ED1924042C7DC87E6B8B65CABB0BE1852F5835DDAD4A444DEA6BAAF360AA60875475F4C5D7FB1C
-539DB35AF55AD17A4AD907DED12510CFC96D718C9E791C36CEE74F5C1302197F9F95D72A65F33B
-AE3889DE2420B3E3A28D735C59BBD20B3596D3C5720B93A3E935AA652C0B70E655FCE2A9A26CB9
-826CF9D4504C5BF429DD5A2EFDC3EA043702CAB57B9DC5BF9831F86E8620A1DBC98AA9EB784534
-D3E9CA3F5AFD8F3024F3D8C69DB194030EDF6D422042E63BE84EAA60FFC2EE9EDEF46B33520D61
-0B432F0107E5999E8DBD1FCB20446987CEA1944FB89C57280D0F05B24866BE32C0B817A866AC9E
-FBF6A6E720A938F5774FFEBCE0A319FB410F1FB095C2F2F772B9BA195B0F5957BD3B18556087D7
-52B3E4605B81B6BE387BAD1B3AEF0CFA7DD1FF26176EFBDC4AEA160F30F006AA61152CE88441C8
-F53D6071CAB17379BD4014EAD85D6E7D1FD1E1AB35834E914915376A127D87C0A5C4790DF18AE8
-DE50106FF1EC54033394AC3B0032D6CF19AD2181D6D5F5CF689544A82D323604BD9F35A475A417
-0B011701815CEE9018765F47F68F126C87B8D5D7C986B6C56E0CDB2DC3F0F6517C9C418DA0915E
-CD245C1F860C6CFDEBC08F620DAB1C824E4A4E81527F6BEB4CCDA9D43835A12F424499373B1524
-4E34F01A8F3E17FA83D956CF068911EFD0CFB29AA376B984192FA321C96B32DF48ED0085B8BF72
-9B4B746748E2949006474B0D562584D0CF3CCF83795AD9FC2853ADB945EE86DE717473AB8FF8D3
-F43372160E71C50DD21993E7B054F31FB6DA5B2FB5917CDE4233587AAAEFB379C7B77014262EC5
-E6192F3C79B2DEAF6AC043B02CA8FEF643E56D5F3FDB37464D62F20B23A5BE7CC7A1CDFAE9467A
-87F64B3248679D577BD8E0D6A709EF1E9E5C5A8CE0E93D45BF7F3448BDFF59C3991CCE32CC8748
-B240428832B7F084787FD6F808766C760085F06217AD8CA80C36E4673267B824B722ECB3C7D589
-B1CA0D09649D1DD383BE2942320C0FEC10032BF30B0E620BAE0FBCAF1A7D47083C93E891FC663F
-9B2361F6EC1BEAFBCFDD6CE0837FEAA3D0AB44A5531C61328C3A456AD61FFB0D81C7B8F67EE6A3
-B2815208711ED945E18B4BBCED695318992A4F794D9232AAA0B75434E59690EC85B6F0E99FA842
-3A31321CB720BB2C5A1C967666B5EA77D05D1547586057151E3D414A2ACBC0849424FB01045EF1
-F9BCE363057D4D92AECAFA6BCB9525C64DC3A052D9AD33F2925757D3FD361873A28E804673BA07
-604609110A3209EF82CCC1C2C782164FBA84819CCDE8CF8FF1E99D5CDCD3DADAA8DCE582630222
-0B18AFE97EE3DA8004C6FCC4C66DC34C99EF928ED2F026D10B213D6C151EE604604BC4A0A97D3B
-7E8CD1CBEDE0CBCF1AC4B24358CFB5FD67019F58E487767E9EB04D61062BA5099C8A058F33D90B
-FFBD2D6CD8DDC5CA410219525E9A18D7EBD7ACD5B620C90EA9AAD1CD73018F1DB8499694F7EDFE
-BBD558DBD65C3291903992D4367BE302F479FDF5509C9DCA17F461FCFD95E0E2A54A2856791B34
-9EC4076E4CF713510205469804E8602231BCE241DA6E4E5BEE16C0E56B2711938D605AAC06AD3D
-EEBC6B4FDF37FC4C6C7EAA4ECA9E96FAB2DDD749480B53B920424EA7F5CD9AC21D2B6007099C99
-02475E6CE9C732262C30BFC67D25A52AB9D3DEEC9129B1D55B0090A639F4D808F5477ECB58CEF4
-049428C0FE7677606954A9AAA9107C634BF2BEB34B051A1079F3FBA009F08605A3523FDA0FAD5B
-D595859E07AF8899B15063066CC08EC9F141E924205F569730EC13B26E6EA154CA8E535AF7DE10
-188BC531A1E670FD2D2605351A9B37B048CC5044D989BCAECB85E82B0A56973E51B882C137C4C5
-347F360780EE965675DB1FEA0085C0A04187F4D555951736F0A19D30B3AFF83C13AF40E46F02F5
-7FBED9B3482548F53AC507D2EB6EBD2BC01221F7E1FDC2437CFCA9F2D5BFD0073C61262008D38C
-9441E636CBC5AC1AA3CA6182DCD980B4C19CD32D765D280086DC2F11DF9F876539D7F0ED8FBDBA
-63C29C3A672873F6CF95F901CD7DA38FAAC43EFCB6CEAC5E7EADF0CD32C3477C6632BEFE3A661E
-E61CA7424D972E95B21C7EE640EBCF67D4A10D8B0F60C9BE082494F73F5C2262E3FCC8D23546C5
-9FB9C93F939FFC5263B6A6025DF1589DA9180169A94CC461D1A7679F4887B52A559569A0122B88
-BEBEB462DFEE4836C38AB10211C00CAB352F8AC1164626E8C0E014323EAF3522B627ACEBE11657
-3F3B0E5BF06D0F86AD72B1620CC16BCBF8E6854D2A1985F09548CC9A7812ED8195495B80BFBDE5
-755BC00415757FC99E100791B6056EA7E06DD28D3D36095DEE6D200535DC536B4EED1C64D62E79
-6AB87D226F5A682139F85FD44F45D747692BFDD1BEAC8BB139E6FCABA356F58CAF474C4E35E3CA
-1FCBEF057DEFE3B80D652F356910A7D912D58FB29732811950130437BAEEB5116CCB19F5CE99E2
-51B04E45CFFB06873B4666C4CD8712E5D5238A30CFCFBBF0C1C465D0522D84A89D6014EE2E9FFB
-5FD3E793AE57AF6C3AED437E6A4480E4C472727523B5B88FE01EDB904CD04BDD20F1AB4E92D57A
-A8AA4D61F19C1C2F3ECF5A1194DFB7C62E858B45A4DACE7DC3CD18379B90E9FD4D59F28CFE907B
-F054277C41C28075A972ED162DC30EDDBB288EA85E15E79DA145A47733F0656773AA2A5F075D57
-D8F96BD2AEFF513FB161FDCEDE6EC6E117CE27CFB25E72365F282422B7C80EBFCD13335BFA551C
-7AA8F633A8E0129935C31A215496F3248D55AD7163D6D9B782384FE4957C7542BC10E7F9CF2FE4
-F5DDF853C0EAE7BD440A759F69D60EF7062A1BFC0DC7B8213D06DF774E0A127D3D849193A6B19E
-DC49A660527E4D887AFA0963BA6AD59D100E37DC48FF2AFF328A8E8E537444EB00F80CF79EEE03
-CF3D9FA9F2D87F0FF3EABCD681246D5BD0A3FAEED6FBEDCC43893291BD0430918A994BBB4A7A28
-53892BE9E1F0182040C3E1AE738EDEF1375818D85E00D626CC47D247CC92FF707C955750A56E24
-7ADBD9A6BD665496C24A4D6C86F05088BD364B6FF4EF3CEAA8FEF4C2CF83F39A20A5C76CA998B1
-F660EE780BFE92FDDFF01DC1A3FE0884B7EB9D5E9139B40C9E3BD4B9EE8AE3784E113CFDF97442
-865E8E126671E1209638FA5A60BC3719653EDC3CAC57B8F1F331FE17B52B8D4A0BA65202BC770F
-D40658178F3A0251C3988123F88C2854066CB05849777FF435A74FE221974698D9573D963E72ED
-9079834A996F5E9012352C93F8DB09970296D14DD447BED6510B225CBC584160893D523EB78739
-2C92F2282FBD398422F52D24E12643CFFAC71DE2160403ECB24BF40712464EEA52BAC4411A2A35
-A4581AB3426B888F777CAEABEAA1DAF42271B2DCA94840CA27299D0378585712E1E8108E295017
-B376071BAD7B187CE519B5402A19464CB4DC953DEFC2222CA45282FC98ADD44640348F2B1E0620
-679FE1E6BA4E70CB6EE944C5EE7644A5B7667130B227430CF55057B05CF0A1849C7B78410581CA
-F9848D14F5C60236E7CD7344DE2F9977B43D1B260B2FDC354A3ADB591EAEBEAE3918638A7A9178
-D12F421F27464F1713E66B8FD1E066FB45F29E0001866B5EDD0305502489B24AE5C7D95BCF7733
-C8EC7213307B78378F6A458F698E20C51E2684199E653648323088F89CA37760EB59D590B5D576
-CDFD6C9B3E98788FF2044EDCDCAEADEDEAE8FD846035CA2CD000E9BE45CBF924941391819066BE
-37FD1DB54D80EE209CC66F76350A951CBE47CC7499A6E2C94BD8F6B16BB95C79E0E29C578948CA
-7987EFD698405574AF2C61E04E8B49FBA3C2072D491D12A43EBA069CFA2C9917F00EF62272B67A
-56AE10A9864C6B0F32865F0E9ED4FC26425B1CCB1FF2FDBD14B53D5408099DD810D93D90DC382B
-271C13BBF9F8D05A5AA406400383B9BAF01315D2F53A866C95D455702CF8467DEDB41EE13C10CE
-461085D9DF5AC20881826A306E1DFDB6C3A0237F672D582FA224EB57F66B55D454480D223AB149
-1C319EC22482817D4677D759AA89358DB022D88D3FB37A6C2E7350ADFB75462745D9E5E3A12E32
-BA31E409C2835B77624B250F783E877E632A639E1FD66B020C5A86277FBA9418D70A47888B75EA
-9FAECA66192930CE11FDF85027FA57C0BDA3244FE4D108DA2252CF5F412674AE2AF2ECD1CF672A
-E03FC22615F73817C4C576C14B5734929785833F1F712FC633016FAB69B243B4A90FF47EF7C6E6
-8E2E18EBBB32137D1B4A8F90B59B2486E3981516AFFBBC84D20CB779951CC9EE1418A0FFBFEB4E
-6E0473CAD3F3FE409EDBAB64F2749FAB513205F0A84149A8F7130B58931FC45BF90D73FAC395CF
-E2EC175A491609EBDD1F7E2A2A45299C1422AE724EFDC9D2726DF2C1E1D2DD3482E65F2CDB8FA5
-3FE1DF2310AABC6D4746E0A7F926FE27DCEAA6812287979059A2FDC8E25B0AA70C75C28A7336FC
-489C50D8D3F9C1EC7CA4249E88B67A19039DF7DB2C4C5B32C7BD683654DD202FAEE17D5F90056A
-E238AE29B23A4A845136EBF0783540DF9FE7C7425C3C9506054A5911CEB8696DC29F72B038A82F
-59FDD0DA6EA4493739DA653E039F1AB18B99AA740300CC2654A3F30B510AE5F39A73ACDC8B4A63
-513400D385CD3BAEB0AA59D7AFAE4A2886F5EE7C5F85FF0F9AF5A1E173349FDB82E523BE6E6ADD
-BC411E6EA111C06D8448EB462D9975951B82A1AAA35F86CD08BDD7C5C6F77AB0433E5A59647092
-77237732DDC1190AF61B7273CBB70860BF304F643C6EB7D17F7F4048EF98505A0A8E3EEE44C3C8
-55C7995CE7D29711B655EFC1D0B3D0257B07C5C3F9C64E940C876EBA5F099A475D569C82D02423
-9D2B81BFCB53D2F703EF1B1D99A92FA4AC33BAB41070423AA2163245564FF76F05A99C92D2DB79
-1ADE0D58B50937201EB350D84B73B8B78639682E6EFFBE4DE6A0B5083ACA0DFFAF62D9DF36FA1C
-2418992B3061D71E2CA9E48DF380D3D8236E616F73B0C524D7C89733D7A97C0FE4D035A50D0FA2
-EAE0C2119F4FEA0439BAB334503F9F4AD872C715EDCB1254473F5FF20087406E3652324E9C37FE
-CC26324BACB8D287AACA6EBEF110CAB8928AD2D3BBF522C7180032EEA74CC0CD3429BCBF631D61
-036AF2A021FCB5252F56989F4B398FD87BC2FED9189B02342164BD0FEAB5B2AC9D388F49EAE956
-F9812F3D1F7BA81BDD91D4B88BC6F4D49FBF9D01B564B5FC6694DEBFDDB9792B207CED6E30AC81
-F9DEDAFDC13B4207219A41D5CC2AC38BAE02E9270DCADEDC84E87DCA66B84699C15D3972B2FB08
-417E3A019F9BF0E9B31093D89813C44CF95888F37293E68108B122674C6AEA3F95D00B096DCF90
-22E2ADE59460C435361B9E624F943CD982B5E5EDF65D845302F716DECFF91CC1B3E1D0C22CAA7B
-C9EF0AA007DD372C8D7BAAEF3885D2B6E447A751622525F754C7CF84E39CE3B141289AAEB178CA
-687A59E229CC89255D8E477E6169355E7DB85DB9DD3217537F7F723DB71C7082654869E37E18B6
-0C5E387D3B9D157C656DA4C017EBF96D173F0004B2BAE0C1F913CAB9E67492C574C35F93269D83
-D318AF65DBD63A8A12476536996D29B4A70557FB77168C28BD3BDCACE2D5D3F4BFB06092AC2C72
-201F9BF2742F7B29D1C7A2217A1444DD567919B88AF2B1CFD04E1F92DCBAD4CD87BBE26175FF75
-E703812D9491A77D5F7D0B60DCE3633FD159C855C4CCC6BE6D54961AC58BE8ABF8F02C2D847365
-CB1C3E339DE7E44B4EEDAB9B29B3BE9EF0D5FF3C37B3E656F9F3D53D87804A0641547F952AE97D
-D78841D54768747E2A5C9D237D526C339E04836A947F007D0139DC8A32BCFEBFDB16D75AFE6992
-14F45E972A0188273D70F7AE355C2A57257329D734601424814F2BCF083E7C52D5C7E5F78A72F3
-4A64763FDFB4A7490917C9199521DA6B008825445FB7AAEE8186BAB66C138BE3BDA2BE402C5FEE
-76AA26666BE886B331512F54A07BE35B8B410143F5DC7A8D6BBBA68E94139A3CB5FA2E584F2106
-6327922289B1839B46719AD15B81CB7ADF3FF9FEA39D7FE050C86E0D8DD38A52F34923E7C6495D
-795519FAE3D9B4141D2534B0E1378923E26F43E730D9D3D0462F063323494329E7F9345B2B0D78
-9408CBED950586CC31F7C8D64951AA5CFA497E5760A5AD17F8BA2B2095B90D45EA2262FF51B57C
-4E9D118444273E23255DEB3D39C8E6D404422EC449E379567069E9C9B7C0656B85559D7D3FB739
-C5FA03B1B61B1ED7148B9DBEAF8DFABDFD8C51941B644D69538C4EEBA4B6DC37ACF9B2CA711565
-A2DC875E0D7375B95EC14F9F1A18B3CE204270CCE76467E3D2673848294887261846808EBF6C2D
-3AAD2F46EAEA4A33B0EECF57F0F10430C50E907C72052513A1C17CD92669B62D191561E5A2E320
-8E0DAB95919FDFCCEF0A928C3ED794D9212D9EA02F6C2264246FC9FA8E7B1F559461AA54B54EC9
-30925D82E944114CE454186605D495AE1344726B311E9FDAD71AC7212D241286BDA1EA6C1C9514
-09B0E69BB7A0E60BE1A90AB9B612496DA5FEC323E08D97F0278C356C482522975BC6A60E77A37D
-5DF1AE6FB84A6DC1B2450D42BD399CA27410F20BD462F7E493F07602CF8AAFA7F60FD2E571B76E
-627AC2A9170334E427E897A23F70AF28F9389D57B4D5F9FD416ADE36EA52D48DB6445A99DE978B
-0D7D8FB7C2E77329D3069BCF1128EFC766B45BE761841AF5E460F93015F8F7D4BCCF3638857C25
-3B32356A178D9EA595E3A663542C2E9343FF9A295E5E09A714F9ADF0BD1D8133976243C9B988E0
-5B8B9AD1176592428A291824982D97D74DCEA11B229BCFE8851AA373EE168285C8D0DE9507E97E
-FDFB7A992C736CC6A369680233B5FEED8CB98B9D8ED744BEE85F2CE3934893BE49182AC7C468AE
-A016332252171B30132CB709E940233CDFEBA68C46B8A633E82EABFF88FCC591F381708E6975ED
-145598D93064D975906ED50D31CA6D27699E31F5115E7854523E2DBE10C9CBEB655A8DC253451E
-A126D18661BEFA2DD3A85105C9AFC36137C2137DE0D7989EDE455E402FD23247F6803C3DC832E3
-55BF20CAF97BC9BC71AD3A4D6862F0EEA282746DCC9F3A33FF6C77CE97F920D8860D1656643F02
-77CF4EDA370F066579161D6EA21F225F83C46669A8D8AB83101E90A5EED0AA43FB629F97C08C59
-E92D1E0B627D220C89DF8C7471DB49604240DC92E2CF8880A9D1B1B7DD42DFB8A8A34D060296E9
-2438D94C9A0DA68BDCAA68B56E57C6BD029C1FD1E51080228E2C3016C92CAD9474769337102E8F
-5FE7FE5D7AD099C3DE3140C46A7199C7510F9BD682B8CE240C8A5848022B136183432D749F1047
-95114861476A8EED63F5281ED9CE9C66B4DA7213D57D8E78EE6ADB8154B42C58F384DC27B11B33
-8A9B8C31887D0A4C231FE009050FBB8D0FC6072DD60E8E4085439BE5FF343B69F77A375A6DC516
-B8924CB71AC037AECD69CDA9BCEA13908EFCD0860DF231DD695C638A7B6712E9276B14C5440F3D
-D5A24DA0CAD3A079C60649618BE2D9C20CC12726E74BFC41F53B01AE338566E89483345B40DF0F
-BA3CE446FC3616B0E630AFDA8B00E1410AA59FCB4DA0746F5CDAFB6F9575E3E50759184F7FD88B
-3162A88C2066E255AF31114B3B3A6D4E542924F4BF5B4F3426491E482EECD99F193A3A64291189
-86781FD9F068B3CD80B50E8015C2B2EC1AF75DA3AC2A2BF8AB40CF9C30FCDDCC723A92C5D8E7B0
-BA6947F50B3A93FF5A9AA5FB8B87BF658EDC786857B9053B03ABBDA91AD361B5F0E0EA0C4DB496
-7A7EC2F082CB4CFAAEB7CAABDE84F4D237CF216C043BA9C0D798DD34FAB24DCA5CB189CE619B87
-78B4E07497DA38E13F2E5B773DC3E558E37CFA0F21C1058E8C66894FC363685E19C472AEF35500
-0CA307E8DA03B2DA7EE772562F0C9B1B0E0CAC4900EEB789AC03CA093B867020A0D25E5E8DEC5A
-A6CE89C42E81D07489D1CA76D765E25D6C79CEC1FBB379D033079367C0699DE5E038AABE015BC3
-0E226B6C27192E1E0B905C962BA2A7823543B30F5E9BB69562E82863F6C00136CBA2A21A343495
-7D494B7FAFF5351C78E086FDE13BE885069B6F405B0524A05FF4A1B9F2B6346FF9DDD523FE710F
-F61D76F34393FB029963BBAB206480AF1F6DA7DC14581EC747E56B775D1B3E7D0C13512B17EBB1
-79163088E6A9D3D9030124AE1F0C03465EC70EB6499EEDCCF98CFCEBCEA3E00072D3FC3B3755CB
-42EE075B94EF9D879BB2E5DFEC6FC9F368FC0042FAA6AB46840BC95DAA39628981D190A07B7A5B
-08F4536ADF922BE760F64560F50B891F3EE6E60D918BA871F38B6DFEAC28757F90EC65401DCDFC
-4BF636ED0C0F6C802EDB640C3C81392CF26F6DF07199C0A6745CCF19920D0587A8CC4B2CA846EF
-DAF3EE5A95D75C9D830842D7D30370C611998ACB0444D2DC05CB749DEC79FBBA92A2796576FE01
-90061CAFBA62D534F42D6A55F8A6FEC575C47CFA7186191EC8ECEB2F8BED68C8FDAF61670E9938
-36E4771AF3DA8C6ABA85783FC7E4A3B1A3A1A2D4E090C44449A797FD5E9BEC84602658E7F92BA0
-11A14094FF9A979F405FAAA05DF40DD01416A06EB673698586538205DDB5A12229A949A1850D67
-7F0DCDA96622FBBB1475EC41C9E6F2D411CEA0AE2AC6EAE817493D08599AFB28638D5724DB7D8B
-2793914B835F9A04FE2B6A1BE2F7ADADF3654EF09ED3CF5A916576E58BC101BB145C5ED7516FE1
-B86D47954316804614DFF2D5D04BBF772750C9F555F693F6B6846823CB6FE8B88B5AB77A2FB55F
-6E4F84509D755A5D767C5ADD2039E4DC748DAF271377FA7A0BE6F978011726EDF163E4197779BF
-277691B39896318A73A09EE8C413E18A2B01929ACC7E1FA027FFC22A5FE30AEE67CFC3C3A922CB
-4BB9C9A4571E2FBB8FF622C8E99AA1B0922CE1B2C0EE14A35A9DCC920A5FC0D620E053A5956C6B
-77CEB4E4700810576035630566715C2A253B6D5DD3E7CA546E98C2C3A80DC5E3CEACD48BCD0A1B
-D1FDA8FBA2B83727EE140A4461F4A629CEDC343350B9BA3E137D44541F9CA66DB956F8E6715CCB
-25ADA57600D753A9E486B916E5FD62863D9D9EF07CCD344BBFEA43F10F04BA1F811CD774AE033F
-A56118C8D43EE34A6DA31C3D30681A1387AD17F5D861CB6DD7B32B1C5C5BC66504CC1614E41B23
-F58C044F2BC4E8EDCCFA95C2ECEA63496BE00FAAA681E2AA07F3B02D43A8BD673B4178D6338DA7
-27B3BEDA3878361AFD55DFDD816A1FFD78BE5780849F13BE58CC190AE43451297C504624AAE17C
-6E0F0B5FFA08D8044C96672F063086F784277D54F0F332F87401373886FF9B5EF7EA2760D75655
-2D3AAFC7D54B06B92072E7167F77A5B9A35386812DD23C42F085787B14F60D064D9CB0089C91D6
-A134F96B2D85D15BA37E0DB0A9DE2DC1FA18598254927E231F8D58935B74A3C071F676163BA9BD
-22299DA9DC600CF94E98C2C366469D72D6D072DE38D9BFBFC094C2ED15998364B3ACBE362644C9
-EA4B9A4830BB6AE0E0D10657D37CB8D47CD3F02581A8F82CAEF30F74D98444B473D2912D41FE75
-A291D20F3E1F16237E99EB1579FE624B1AED5AA20113C24F9B2E31EA836A7E20ABFF81329A79CB
-D704C59C71AAF26E6D76FA4F523036D9224D04D717AE899B9AF5487BB8A4599737576CE9CC7437
-0F490E335BCB7BF0D0DA706A530FC88A87435D769AB84F24F517ED326030FC372DB5C1506AB8C1
-A9954E52154A256327783B61CB438D4B01C9E2357E25C2ADE3E7EA49AABA75AEEE50E99060FD65
-B7C4FFB81A6F4896870490AC2018C8765E0260BD852635C015069E18F0DA611045BD9EBEC8F1EA
-FA9B8AE554CA6C791097D8ECD1DB564D73EFC635858E1E8CDE134870D041615681AD0DE841A325
-B76A5CBFD07AFBC9394BA9319D8847C8AF55B9B542BDB09BC5A6BF0C4208E94C7BFCF201AB5A36
-1D3FB9BC4652517D3373AB3F15F7488C0E67B4D3F1E0DCEC8EFF0CBD5A7C2D8903846A72FDD2E2
-B35615F01D9CCD067F04CA21C640B04A51FC667F7D4674BAF7C1B52A067A88E934AB0AE515A2A0
-CFA144143CA34673483FF5854C71F4FFE138B8FD510E3768147F88E89FE4DC50CE5970E735F0FE
-E5F90D5AA9E8C08822243E60FFB37EF6213D02CBE99C25D02AA7AB55FE4C3FB77DAF9FEA0211DC
-FB47CB4FAE580AF6FE140A6AE50E4864DB001EBDE6E725585D2B21DD3966F2CE596167763D1385
-EB244634E34386435C61E14463042B74C72430C349E0C64CE5CF05346F714F4283C92A31ED854E
-B3493AA0FC8573DBBFADF0E55B584CA8BD74966B52EFC923B7828659DCDD7D5FFECB834D0F1579
-70EB8A74A53744BDE6C1234E00C4A3E0A6B87159888C6918EBB51D8C20377EA97CF5472401174F
-FE76273D0A94C865930801CEB1687954FAC07C715551C207AD6934CB7B78D899B69F576C5302B1
-4F53E3DD250A3B74F2D99B48E8F29169E0E9A0CCFDA3D04BB2CF77CF0FE3595C8AA1BA225F83C5
-C59D67F1EC7718E78EC3C154D8E7E75AA69B5BFF8192A3D4825DC8EA7B32DCEB16A0EF91466498
-DF0767C20AA59E84AB3C6EDA3A7CB67611DB78C9856D188067E36ED4F3FBB4680191BE2E29F1EF
-53509E0DB0167996CC6E6B1C79CF8C24B5A79A2A9019B0F50F683B2FBF406ECE11502306079C56
-EB493F51F447652005984DB264DCEADEC7EC5518A72587195D19E534E029B35C057C4A16BCD860
-63F4997A6CF20AC79B6145C92480F90C5A5DA23FFB51CCB5F3F364BDF01554AF7B66229FD49466
-30ED14770D2B772E1A9EA3D000AA5DC07343C220FB3E57BF52A015DFA5E3B70832DC311CDC73A9
-B8789B0D020ECC73823282130F34C975B1EBD2E982960DE384086E55758874706381E06CABC255
-FEA04884B43DBCA66DC862F7FF5FE9DB12E17F3F30E20C488A75985B62641D36002B9F10B97DD3
-98A7D3A42D0D06F3B2F1E6A5248ACCA1EBBA0099653B6B76A31C0027F970D98F9C82E6DD2B90E2
-201CD306671AE128BB3EA5BFCB9E6C93F62E5E348A9420A0E301F5A1FA1D59C37887A65FD129EB
-F6780EC8C350525A4516F8E7B7797D44610D6472DA9A1E641EAC906A5EF0F91FA155F150C70FAB
-4BEF1C44AAFE9020F11AF0EA1EB17593FCEB19DD7742FD69615075DAE57769042EA9ACE067104A
-948A8AEEEB9BB0D05404F65DCCF7991FE4EFF0125D56310B1DC96FA0AE11052874628AFE2F0F56
-D348B5BD0F1459B3A5CF0746117F7A46FA318FC93A67F897AEF6412E3DD1D77E1082B17752A88C
-7F320A7085378A1C97ECA99ACAD52D972A9543B280E8B7B48ECA10C31A6EAB3908E32F93DE40DB
-EBCFB6D79CF3AACD1496866F36A9976C0A0F10AEDC608CBA7018CCD04C09E6EC50B444E7BE8F20
-291E8B5ECE9F253293022A2B234F9CC18CF70284FFB7B3B41FDB548A76BF3EA06E7825BEDC188A
-C57CC66228D0F9478322215E9F9137344296559BDB85E1E7507533B88E7B1FF389A5B3FEF16FED
-9B530C6643FB5C42E4E77C10D577A07EEF5191B9AC2F2B5D58186E361D5AEC69851B55F03405AD
-C53B413ED1BC18342B605C972A2E32A1E5BA96A160E8071470D637D76C3E3EF65E3F55778D58E2
-B8F5831A6AC1F5591D6155A0C99F15DD1C191E73DEF6394B99EFBC357CB2D2674DDFE552C7F367
-AC1A02C88518AE998F12C22A52F519D53BA8D0DB877800CB0257A8D61122776E6A138C624B3767
-3109543A7277A734114801E7BC5E2DADAB450F6B8CC6A4BA049E543597A99D8DC0817DE9816A41
-6126AD32ED7B1D4E8C9A8F632562FEEF27ED2AE88735DBF65744637EF765FD1332BBEE90833315
-63BF90AD83FD368631B87C317981CE591EA2580529BA1552C4C9CF3BCAF87B1865E2E3FBAD3BBC
-8CD732E7E9DC435D6882AEA8ACE86656AE556C493F84316857E36AF878D1B31138E776A0E6B0BC
-F0115B22E541D7E831E8A75D272F98AAFD6140F028EFA9B74D24AE8F8EB78D4A0438B594DA68AF
-5FE9FCF3AF6C629162F054E9DAC669CBE95409CABEE04AD8219512A093B226C97E14B31227B338
-5DCE17F4851845337BD53C17D4A05917266A3A8A1D7EA0B714324B97CCBDE06E3D947889179ADF
-668E5A818C3E67E197C52CB92E657BED3FAA6DC23497B4537B6B795B734EEC868437B04DA08203
-4C222DE20285979C4568B180153B2F21F098A899469A330E01710B1313AEDB59F4B6CC8D036A49
-7AA3CB58D0CB0F3B84EF96117D1843061EBE271DB80A1971A34DA62A20E889EF0B0D51117733FD
-687B484345DC5B52E13D2482B861C4CE1513740C56EC3267BBDC69585F4505D56D08CFFD886CC4
-076763E36D40F57ED0A59B457092A07CBF1BD05B6887CC61A6E88B4B31A68902DD51621680185A
-906643C4CD5656A08295869AA5387A90B1586F02657B72A8298630263CD1B2910996ACC9D8C6F1
-203440D09337D583DCE4F484154912CEE6243A95E97C252D233534F4ACCF940669EB0459407320
-DE3F6BC3FE3D2EDFA04494EB590AA8FC25CDFE6F73B5A83A0609C7521AEC7F35935736415FDAB5
-5C7765DDE12A4233AE507EF60681644C10B383F9B842DE2913037AD91C43CD75D9A48792974E09
-C2413E9C519BD01A3ED99189553F6F6DADC1DE7873B5B2836F4764656944DB5F4002C3557DA890
-6082CB1B2C5494E4D6C9B4E062754B55C758D3D804BB1A274D6C6B50FFE7048A9429D0C2EB5C17
-A239A66210D663454FEC69D596F8D700E718250A1A1CA74FA445AE729850A86165E65B4B10EFBB
-34C5584518A9AB5938648898082BC2FAEE626E7D6779828C671BED553C6EF5FDF43CE2F63D044E
-8AAEE91E1C8A47AF2E2FB79ADC7AF9A1EDC3B6AE71AF805CA4CE843374C46A26F5E0F91D0B2F1D
-32CF1EB7C95091D79701A817EB251CDB56EA847F8171FFD73783D0C7C6535EB759B17AD84B0C41
-4D41BBBAE343306DFFEC2DEE68234130129D4637AF7B797B53ABA05461DA4024859A10B42CFDAE
-6CAF3550AD84F7D87F82771B88A0D7B231035F21A83F68A48DCFEE0EE53DF4B191E5A30E3E4B39
-BA3D212C29187E3520E50E444D026DBFFCB2C3DF4E23A07F6C0E13450F599AD4848BDCD85BFD0A
-A35947F0DBA5420F9A903F2619280626BBBD715F578AE5A7283D4BCFBB97CA04C48A4AE7C3BC5F
-4F52E8B6DC77408848ADBA787F3F76F6138AC7B430553ED32ACB1B1CC28EC90DB1CC9D7BBA703A
-1E047EB00BD8EBEBF2FEB5B61A6D1A86B4093FFD3C0EE41D46D6C824E9AC1BC95FCFBF725A249B
-C5AA9A5D4B1B8931E7EBD4C4503C97B79E1B7577F6B1328F18DD4A11C8BD927F3E840E0D9D6ADF
-38C30F5423BED048CF3FC205F8AC536494AB03DCDE85D262EEC61685C1CA9913F3BC9B50F5103B
-904958E74CD385527CDABEC674B135424F72E8041B2BD5D9998B094FFAD2FAF64C4605B909021E
-7720C1A97D528C0B1CA7C209EA4F31AB69B2D960FC17734BAEE80F2971A143737D515EC73259E2
-70122C8E624DE037CF538491135084AE16A347EB6CDE0558823854A9BB7FC862CE2995C7619143
-FB05D220027E6ED9237997927209B06B56C3A12DF8754CE26C2073F19307BA64B42E64228D18DB
-72B79483DE686EC877DC28701DA0490A170141ED88BFC09A6D2608A76C07B705C7A344F9121E2A
-A53ECDAF2E96A59504622CA76737327D6051BF979218851BD68AFC734FA47AD4B5B5737DE8B555
-A46DDB495E18397A5999A6BE11B4D3EB832B87B1E2DE71F302FC21FBF0354FFBC4E14001D5C7FB
-829A07DD469573C6C3BA770039FEBCB79FD3C8A3E9AE32A242376536EAC505E1446F5FA06B67A6
-5DE03CFC1C68D8DDCA3FA90B6F298060E5A72510D754E6E8471006EEDC81BB1537F507A8A08AC2
-84ACF48773386A092FCC335E275ABD920A0E46C5BE2ED36B735FB7428BA5E60D7A431860EC33AE
-E2D39EB734BD7F6F58B6A1CD41D9C0CF1F6D13313FE44742EDB101B2FFEB1BC120CF5F4780184C
-6B7EDAD584BC92F1DFD2AC79835B7660970F66F2061390443C6C5E4329D34BD5604C7AC04AB404
-DDE5DD1EE6F0C862742F9A5F88025AA7BE6A1DAB0D7F74FF67FFEF4A7C5DF08C2A9EC21D2AD33C
-ABEBBCE463656A8AB038E967788494B59B22BBE07A8EE5EB5C6F48E911168D9202D721436EA54B
-DA89A2AB4E360EA5A3DDA0180E8333769BF901861D7B74AFEBBE92DB48F5FC2BFDB492E4BD8847
-F3C7E39F86DD91CC4C4F4C07F6C8B9165A1BE24B1735D307562AEDC895B0BA816AC3DE4EB6F0BD
-111D4024AE597FED386EE680768E3EE12711AA1AFD8D75C6A5A6E34EC116229E2E87D10BE4A1B5
-D53A4D2F8DC83D75138A571F618FC44E1B0554DB5BC11EAAD1697FAF5703F015A210D918B6C7AD
-DBD2BEE0FC7009E777BCFEA522D34CD7622A648B5FF910C7D611EF254667AC3201CA13A49270AF
-61E440213E242E5B6ECCEF6780855DFC04B07E62722360586C534E22929D8632C4BD13F15EB73B
-DF11D14EA140613ECC158FA516A75A7AFCDFD5EDCB6C88A4648A8FF47E6D94A4A7426EADEEDA9A
-D5D7C2EA6C6A6B6092068183459B1E9CA7A2BB27359D600A404A92161FEFB087E2DC9D0DE1CE53
-492AFB7B4B06A1A30E922D90AF51299409ABCCF6961416F90375CC3ACA42DC7C041FC54DE8A3BB
-1763740535B375A2434FEF066DAA839E171A83BAB34AC87698183159793E36D51ADCF1C85CF17D
-E282B5B606298468742D19B3F4823042D8455DF37191DDEC7D03D9B4C1440A3F707BCC00A03393
-083FF4CFDEA52DCEFCF40C85EF38BEB3844B319014F63440721CC769ED61FC2BBAF998FF391B7B
-6F562910BBCE6823FDAC5ED961740D317B373FC6B85930AD260D4DA2E221BD185AA4BA2D3BA0D1
-2A2B1B821DEBE8FC78AD9C7279E56471CFEB591D3C4E77E4AC2BDB47FF01CE718CB56F97133D33
-B86022C15275D0C8CCF82BF90DD23A2956BAA6E8CA65B6DDEDB949DD467A53CE440081AC56D530
-81BF87608885D8F393D96C3D2F7D694AD80E5B5C115F971328320AFF62CAB890098349653B6F57
-9A6DDBBF356D9B2C6372B965244BFF90DF16803393B5E062AEA9F239AEB3F9069077FD2F1F8FB9
-D2BC50E79E3E7C52547F6A3CF266C1789B78E38C6CC83090AB1C674CC7F1E6E30679B95E8B1BC7
-79FF76F05799699AC0EB968C072BC66DC78AE50ED3518AF32E5C3204111A041B1B4DDEA3301ADE
-EE21F7E807ECC3562EE580D6997C77C58D5A009A27D7191B779FFB25357D6BD492619051B02589
-538DF1E3980B4376908AFBF7EF2A4FE994DAA9CA64C0783C3B72EB01785EA638BEA84D20C6CC38
-E31E394B73818CF83E02352EB4E1BCECFE49EB23FAF78C1EB855DA02598640477034C5731918E2
-F70C608E6487B3DD51363E08B7B54F9F1F421AF0BCCD87B83EFE8B63CC9BDA85F9776656557EB4
-3BC0DE9F80D0E2C57514B41AAD9E100C22BC5C421CF66EC819179E3591DD4C29841719CF417F12
-DB131173A1F9B9F0FF7AF282BACEB19D20F896508FBCF4AC97BA41656B1F7694EEFA05DE215212
-78C4636381D7604E0AF5E21956571DB30074BFFB42F60A3D98EB3E924C092535C916D0A729B86D
-92AB4645471E3D1EB499347D281BC7279ADC3311762C80A8A652217D7D4EDF6E122547B3B8A766
-0198FD1E6D25C223905B8162D076CD1A3CB00BDD837272905653F6A699EAABBB54F82FCFD0BCFE
-D77D5A514D1B12666FB270FFDC706B2EB21DB35D46E856403AB5E1972BF7F981F4E5DF503E225D
-BD59C01C6F862FBA243FBB7AF76C2367A9F4EA8A63E20E845D4DBE50102F3ECEA72195D2F1BD6D
-8D646A2132D4AC410A4F92947B05E32B2B21523731E69459CD81525F392C477942573A4C293BBE
-150FEB08A81BEB33DB6D779B654150041D9586574AFBCFEC7798950F7D4123D577F49E538EF46D
-3DC8C4527837DB940A9590C88B32FC6A35A1836C3E8B13CA39976907DA7FA829BA79C4AD6B57C7
-0092A268EFE8CB588B4A4486990981035AAE9C4A9DEBB7B3B0C67EEA459841B684EA3A5A3EFDDD
-B2F71E7C398FFD64582861FDF18BDCB42FF64E38E861AFED894C46D53224A239268479552A5D4F
-AD51E0F968495E10F1D5A68C1002E7C6E1BF98AA00092D2C04FCED78A110571EFC5D708DD8D506
-8F7977E3C974D62B6E2E9573138FFE9B66DB3951509B9CC7FA2AE82C09D25E99618FC27579EE7F
-F7BC639858D70511005BD11E55B42B6D4AED6E419FB7983977BF26DDB7D614719D409CD258B2EA
-50E342C18A2BA1B6F637A82DACF858742DAE0080690D4EBFF7FDD4D274DF0C1D4C49B16773DDC6
-79766A1FEB0371774B068837D853F3F4EA4976564D21A46683BF1BFE4E58A831F51F8CE57D3585
-9464649D4D7BE75394DF7A383F3AA2872FD2A2E76C948D4FF999BB480853BAF07E37431EA850A6
-3286BCF58E594B3805DDC82804F6E31EF557FDFA2AEE2013094D5630BA862E3609CD425495FC25
-9328A2445A81F36918F7C9ACED41A1A80B5ECF9E153BAD5FCE52E2016BE1FC932543EF831324A9
-35D5C9CB2921A43979AF1FD7EE064E9FB7A58E5D9252A0A976308D50D5CBBC96D888519793E6F4
-CFA1A7BC155937CA2A96BB4F0E4BAB6AE14C911BC2FB985D031CB2B907986EB6CE3F2E988ECB54
-400B0064D2FA549AD4D2996BC118BE86281FF3655D328670680D32D2C238E9E5F207B58C6B83C1
-FE6768B7A2A4917107F7516F2F61D5F0E5FD8350AB88D8032B2DFED91D04ACDE197A7FDD1D96D7
-F0EC30D5E1110FDC89D197778A7B1E8F291923D5C6A9F3B664F72274C0871A3823EDA8E2FBACB8
-D30E14015002E9B99C80A5E0712D4DCC9B2AA8079105D51AE75992C765F9A8590961909962A95F
-F9169CA0E858676FAAF5EF160682BB4D43B34FE4BA7C53B5A670EE5169534FE4A254550DE257C1
-E5D37D9BD147A2D7C01F0DEEC0A96D655E71214672AB8AE5BB16F8FA6EAD54577C214E30D9D1B8
-A94E7C189A947680748FE661768B20D9C33AD85384E3A8CFF7B0353B625355D84FEBBF3EFD95E8
-4C93C8DA1D3A57FFA9D3496C2C53DF225C0772ADA930D2C0BCA3D1B558411D8DB4F00AD68BC508
-0028D066E730C3DA50C82D391BA228211C06AAD962A8AF12AF1F4BF50F50DA15627D8A64FA8E5A
-4247433ABFA2A9282DA520112CCB46C1A45F9AC3D22567553AF30A282BC96F288EE71C107DD938
-82785B04E8BAD801177B0EFA57E368BDE511692F65A1414321A3E0BF72481CFF1680F0AF2B03C4
-5D2BBE261D700FBEADE5A23C751014185DE96466A678275F5F310D0A316F8FC1FC9D2522C64A41
-4648D64D2F35795530EEE6FF17F1DB11ACF1306DB24E88BA708C5E840543357C7998C611D2675E
-3AE71453F95760F38C40D97EB7B69E7CEF6BB535E548C2178EB9D88CF93478FADD2EA43E9464CC
-7814655375106117193A896D1B3602CF35C8E419430ED2E30B07361E238FC4B5244692539D3075
-CC6BF5482A79BA1E9FC86446EF313AE910CF60A7C2C51AAD53E21FCCE13F2A8F2C80D3C3158521
-43770C33841EA40AB8DECD8628B2A52C30ABA07CF07313B2B7C94DBA4B23E8477664781F772C28
-7851925A1DFE45D6877C22320C3F0094354709E1B1233B4065F3EA39A9F09919D1BF1CD37B688C
-B2FF958198FB207843A19B570EC3ECD75AB01F24E47F0CF0D94D87FB33DB8D57FBE4789AE8699F
-0EE9F27F0FB2D338D1811E3358E32302597BFF0F12D77C6161586D7E0F3A2188F83AFCA129227D
-18D6C4334BD48B52A4664F86703CD5E0693FB6AF02EBDF3F4257E7E6C2D091E019437621B47970
-F72C598B7171260A64B8BC63E99B7F7C0E0383D0E06ACD64557DA74B423C6EC0CD35B115898ACE
-C66FE295037330C40F779CFD3849717041043058C0D4693B9120BCC42030EED9D903BEE7591576
-2106C92542720F5FEC065B43980CB3573B020AADCFFC5DF653C2A77065610EDFDB7EDC3A4C6C35
-79A0FE2F0A962798A10530D515D85F39C733DEAB8DB7C5148808C5C51F34A13BC10976ED77FC22
-3B3E7945CEEEB0F286984F4E7F132CD2352674425959F118C4D8CB9089DE5CC2DDB69793B041DB
-6269BA66D08DCFE402F7CE6F60429232110F36668729822D6CA93817EDEAB4F611CBCE85D8DC02
-6D61C96A70259D738241FDD1CEF267852962275FAB164453AB30FDEAEA9D3096542555A04553B6
-40576E786DAEB066F14DAC4828F193C03409C7DC78E6C9058CA4994F6AD3FD0AF67CF1D798AA12
-B5B71114459D8A1E82F5B266E5FAECC224CF3DFCEF76CCAF24897777AC7EE2CFA0FD3A6C1B550C
-5AAF132A27B8099C8B0E7D1E13A2D8DBCFE093F2E0236E7AFDA104E3F643D808A8985919188C42
-79147C22C26BB9D32B729F05AAB76C4327BB42D868C445399DA321ED9CEA65A2ED652F5FFA5A47
-4ED0AB269E80D45F45CB345548F1853D8D61590337782181173BDD31E9D71D4A58AB4CE4E844F7
-6BCF783B934F4358A7989B0BF7127894B8F155BA31D586FFC4B0714B8887D6ADF80C755BB8F93E
-65F4BCCC7098F425F3DFB9F4859A3A6BC8E571F5F25AAB7D4579108E129E21FA6DF0D3075DF8CB
-DFBA76F4EEFB69EBC64A0E183CC87BA98F5A41859EFE1D206A8F6057931811BED78FE753A7AD9B
-2AFA306311472E778D711D0554AA2022A9F69166582F5B016A2165860A35FE877EE3FD5E528C7A
-023D543F8FEAEAD885CB894554369577BB57755CC627A0C9345E5A69AE5FABD13E221881101450
-E9CAB71F3FCA9DB59A32719B116B3A2BA129C01889943D8E893E49EDE1DC7C5F87B6E2A4F4C041
-06FEF6C860F6A43D83BA0CEAE8B93D1D2D4C7BA09A18255B04350BE3CC7A59C10E53DC260C84B2
-F981E4C44E87A5A8F252036285697ACD7959EB2CFE6CBEA7050B42E4DA801806691E97F3F1BFDD
-2A4B17EAA1C2A4FF4CA0AD5E4F3E5B579CD67229F252733BAB5B2F62F74D1AD05F45B1B41225A8
-1172E9BDA7EEA81A80DE0C48005FE837EE8BE4720077F1A207A3FD1B9398931A072E389AAEA068
-E1A214BAE8EBDB9FA5FF0FF7A96909B68461ED200156E59BE32815A32FE6CF1931CC31019775B3
-5A4F5C6B2121B81137CE14A52C8AC18AB5303754F2565384CA74BBA49A39D273E269BDD2C7164F
-042CF18094225321B6506489D8ABD68955AC32452B2D7976FDA668651CDCB6BDE900BBF3E87AB2
-8DBDE7177EAE3865A9567C19E0CC614CEDC327B746C04254A94494AD78ED6DA26677F8A0E70880
-8750689EED2CEAB8214765CAD629C514173D82B2EB0AA673E250E68EA6D8AD640A25BF742A7456
-BF8EFA2AFE142F22E96C1F904BB7153AB261C6E4FE55574BBFC95A0BFEFE906F52025C06DAB62F
-ABF2C8796B24DCA62728A0FD5982B91ABD80D421527EC232B86B80F9786F16A6FA15EC4E7ACA40
-FE0AD25E10D961F067B41CB3443E0AB5F73DB39CD3186414FC72762ABFC3985948B8BC7711FFA2
-40901B58F4C869320A430E1D68F10B8D2D8FC3C2D5D12529AF7B8D5C3E501427AF5BEFE3E8C02D
-9A5EB4A3960DD0C7BB36A0D7120B62390093E49E707AA7411CA9CABB3B4EB49FA7007ADF22A552
-7201BB8260622FAB015E016223FA59F5B3610EB075236ACB344764E223BFACE353032F45526FF0
-5C051E3AA283D1F1857C3D1A50BCFE49BE1F83C6C91F433059E7D9ECBF5A649CA18F97FBAE3534
-7782629653A668DC86DE2033261E3D701B4D324FC1023A6A3E35DD0DD33938B72D5B75C6309749
-D4468B73405563EAAC98F4BF055A524058940B1D09A1603AA6F40FA5C5D98351F5341C57A14AF8
-EA6EBEB17D34C090BEAD2A4FAEA9039D8DDDFB26676B1FD2E35A02DD1298F7C3661F545CEEB0AB
-CD9D4EB60707F4B7C3161EB13F649FB118AE135988598A509CC4595555BFCD320CA0294186873C
-53272CD5472A6BD4158EA0602BBEE13AD5DABFE374B80749FAD51E962AD4A0A5BC563056B5D055
-C416008CC22C8735BCD8406B1503DA330CBB62DFE9417674EE52320EEEB5D277D7A10C7D0FE624
-5EC17EEA4F47BB5D78BD0A0177D7AC005C1CB45F13CED23AF3BEDE97DA7EFD8F0A504A76DCBC86
-C03F8530ABD68993F4945A7C7006151A9F05A92915EDC7021D9340EC694603B33679F697186AD0
-6E9068EC4518F848653BF3FCA0B4B462DECD3AA8462BE335CA9BC02E99326B4A8E691E8329AF81
-507A0227905AE3F482F8A6BC92E5EFD23C8BD5E54D5BF01F436D7E229E408AF757C02B10483CA9
-2D27541D61D1F975FF37A8362B984F2C47143546E5B3D99956A825F820DFD1913E779B60F6AF63
-CFFEE206A8EE4D6F90A5980D3B394BBD789C42517FEE14C1A0B9B8D883C3540EB9A59FF2D53BE9
-F84249A5450581AFD2AFCA927CE4DAE3EAF1D21B321E5F9D845A8538AC19E73C2D7B998C561ABE
-01BCEAFD166C8E649230B92FF215BC072EC36BC2EDCF59A93C8E20667B4CCCF7858E196B2F1D15
-5CB85EADABA6BB5DAE835D38BE3B2CB362C91BC91C1D418F06C5C83BE1137FB629ED65A5673EF6
-D0D111CD2FBCF60BF0ECC804EB20502085BA99044C4B8C28C797819A69DD4CA5DE1A81F6A00526
-8025D22C28A3E29FC18E871604985BD477DAD38E566CB9528D804516AB308BF06EE3B2472DC013
-D88627029473563CC865D417C00F2F0169C39B4DB3D90C092ED090DAFB8D0582E70F742F608861
-2F139418F8AFBCE3688C83C173E651DC27029DA6C2DD8EE199E7F0BAC48FE66EE0028AC4C4C18F
-5E111678402678707DE91A0CB50F15B77BA1869966AB23C993BAE7243F96127B5285504CA6DC0E
-536DF06A96180B92F0F1BE14BC816617AA7415ECB963C4964C72023D1D35967E0631E2EAF1E4FB
-75BAFAD7F30E5FE1A9A8BFA4F2126929F49F9DF7B42370AE3B7F4102FD48490240333ABC9318EA
-EAD6647AB3987E2595BD0C10F521E535BC254E5379AB49F9FD83DC32556184A4865F514F0A4FDF
-D206894AE3B4D31E16F63B4C14FE8064BE8338D8AE123EF9BC64B0BCED20108AC6D70EE59212D7
-FA5FDE1F97CA4670BD623C92BFA5F03D934D16F642F1417A5CC20ACDF1DB8812F03EE20E2FC563
-8ACEB462FCE79E1157671CD9413E6955B7EF61D8766E2B040829AC4CE58BE5EADF080B11710AC6
-BBFD764C456C0CEF4232A99B0DF0B9A451321F91EC4A4C39BDC4678903DAC833F4E21A9CDE857F
-5B1514DED5D94660D5D5DDBAB6116D53BF50D62DBA84BFC08C58135C7A8B8C8348E3905985E6EB
-492F23A45F6073AFF72F34A3837F075A17D4D3B68F789C5B3C2F07FDEB0F06D2ED7A476597AD1A
-859692B9F1B81E9B5E811EA87D587330F027EAF401964369F07EAA8AB6993527FA92A0D321845E
-D818D12EFEEA61A877CB0FBCCCF41500F9FC68071EAB9324B20CED4C74D557CEFB1DE37F26DED9
-083B036D0B96A0B07142D4283FCF63A392F9AA4624C8E40D0008E6EE523A79CA2266DC5996650A
-E44EE0C843E2E8FB8A9C1AD69B12914F33A1EC9CA631A0C15757D257E17EC7E463A0884C38BC9C
-EF76BC8B3900E438E18AA2A5A50FA89D019CCAB1695EEBD62810D7539DA66FE556747A21872610
-8D17D4B43DDF4F734AE3A3C840B3B6CDA736C080D382256FA54FCEC31A17FCAF7BC12AB051A65E
-A250FBAA8D251409136DAB0AC433D91F570A80C8C58370FBF63BBEAE2BCA72C280F9E9E4494E05
-77F45694BA1E0F7CFB510DE9D6E1E0AE6A900E644CDABF499EFF0EC0F65D3AA4509BFC866C7788
-0C70147753E076B797B31769C65B53D74AFB3D38DA15A10388DD5A848C39184A54697E997F86F0
-BBA545C34D240C747B7FE1B37FD97E92826C116D56F10FB92105E68E4246775341D84CEB6DE34C
-02DA1A20D684590B44103C1A6989323D129D1A51A2EC98621975FEDFD5E190880F5F0F68DC12FE
-1DEB8B8AE8DF2C4807FA5B65ED92296F808D8D9008D9403EAEF135253D56E0CA33CF7974203D0B
-F3A3C7921F47923EFD0D6076BC93C0D2FA5EE9DFFE3B660DA1262CA8C3C98D909718EB2D1A1821
-B0D4647D1F4C188FF79E9E16EE3F8EE8CCA2F9F2A58520E71629E5E027EA837EDAF9DBBFDFA822
-120B13B0A0AAB59CCF125040EE43AC2F29B7D414EE47FB53AC5223A2AA40C8C9EF067F8D40466B
-E9B73968C0DC26FB3BAE743DACE0B8CA7D88108C7A3A5D80162A3A93D06DB24A64C45636F8B299
-AAB5FFB252E8C2C4854845921E0A22EA5786978C8CFDDB4C45594D7BB2D510C56991279473E0C4
-9E5066BDCA09D98CFD2B40A40FD3AAE16886CC0030E1C308CB0B3EEFFFD92BC90A39C3D3427E73
-E2EB5974FFED2079706A40F0BCD6C390FB4FF4B0331E70B770016E6336CAD071C9577C18C3706E
-97C9019BCDCE23B6F295DD09ABABFF5069D64B7FE8380736B9767336F3DDF61B55412219855D57
-658BF0302EF809CF1D3AD68095BC391A1EA365EA28D5D6D61A44B367962E6577E77B6926C417F8
-E8F76EE89F9686C9CEDA3068A417FA8F90C54DBCDBC382A6CFDF923E37986169D078BCB11FFB4C
-CD9E45022A81934C4735AF57277B3478B6C8F676C0824C46849B539C9D3460EF967EC434FC8A35
-B79A94AE68250596F653096F75B308A2FACBBC2157150A7F6A86D52E1D31638C631908693C4D08
-5523A9C685C9C467DCDCA13185F8EB81EF37096DC7ADA8138420CEC0BE60396FE22E584B1197B3
-632C1B01B163FF586D0430D5A0C590CA7BB521FB3B05AC5C3E6D130BF4087E3A7EB76470CC8E24
-D2325D9F9087C04230D464EC742037DE6C54FADA454ABE28B9FAEFCF5BD74B30BDA9C2833BBFBD
-8C6DCDC0479BCEAF8697E8FB14EA81DAB6B87BA3D89BE0DE3B574F8CE23B18E58FFAEA08F08696
-A69C3FC79581F49BA5CA0CC228C3DE74BDEF328C7EE9ABC6688C42B174D8AB7DA088BB99A03341
-A1487CADB86624B48811B20CCD0982DD0B0192E7B40C1F3F3558865C48CA33712457CA452D842F
-5A21FA58FDF4BB9F3032E4B941C664F7A2785D039C1DD9A67337758B75F5ECCDF5AD13AFA671F4
-FCB18C3AA8E3EB3B2154DAD5542641B0652A382120A4B5EC6D73D95219FD0E7E973154DFDDEB72
-D97D43DE5921E62CAFCF12EA9A3A26C5A6A506F054D5030F865E3E1FDE6959E1F17EB5BE3161A5
-0B491E5DE3179C705A452929A608562C2AD3E04208444D69734EB63F86A23FEFFC008826B3F277
-9744A5E220C54663AF8B15B0ACA6B61F7E15B9AD101D6E444F05E20891198C385F1FBEA22A5C87
-B2A7C9F1FB6FEB8C732A21C1FE13884282130125C9A436CB9D86A3A53D6D922E5D54C8528E8AF5
-F836E643782B1360C303F735B2353CD93E0B924C274F7E0AE62511FD1FA67429855F3533A29400
-2AB0B10D45D233D2F4A7CDA1519D7302E4209B3C2AF8761389DDEC69419FE8EF2049DD33D75017
-399FA7BCBFF8DF10A6DE8CDB5F7866FBE9D5059EC0F50DD5048CB049B97CF3ED3BCF4A57D1DE7A
-C87B744F8D823CC2D140216F501BB29EB3FE9CB43E287D09EA8448D964F228BE3A2A5B65FB98B3
-D5490243A5377CC1668D127A59D1C0F04E7F4FC1026FA9A2C02A140E3C2B986558A8153B5AC783
-21FFE3A1F6F087A283D58DCC83DF287376D5F96FDA04CD053C610C0DE90F597032212E98A7E53C
-BE5ABF0ACEBFD2076A5080FF1D5712F2035E22D8575A4178330E93949C611474221CA4D8221886
-4561A6F0555F290C65E72CEABB0E7D680B29DCEAF0D19AF0695D73C2CD9A14C53968F52F571B2E
-AFB715F7F49E62D933794B7DF7986EFBF23FB1FBBB796990F6209991C1711C776BDEA4DA2B3D31
-322519D82B541C856702C2F07370A130536231B7BBBA0E4F8DD050469B687A1A95EFC8A3188E02
-834CC1283C2E08ED3275D0F2D6FF432945A61B10E9F2002B653E9A8D6890F4E2E9F033072EC34F
-0D08DF4EDA8A7E68699F3238FA4ED1C2A79767376011468FF1D3A47631FA650E96F3651D38A6E5
-2DAE01FA1E0163DDE3740886171B92B69E5A46090BA00E130005334351E57CA0BBE8072167D5E8
-07D2814090AB1A7C37958AB5745243B1138DEAD9E8DF94E800AE8DC00810E43066514C07B90380
-860144BEE44F34E8A75A95B523B2D9724F12AD267312DDC113131ED3FA088F7E08D828FF48E50F
-14BC4BE5E203763412A11A8C2D0AE9D1AF457BA4838ED958C2C7E3566CE43659F07942DD79B853
-ACAE63C294AEF5EFA938715C7520A5A1257580837A2189DDA84462027E995BD798C2F359BA84C8
-CF26BC6ED0E501B46B92BFB72A54D13F865318A387415558C959D2E5B6B6358D73201FAF94699D
-EB452BC41F84A14A2B104C6153FD459550E996C16CC8D608C7D31D280B4DBDCAA4F0FCFB640102
-4FA1FAD06F61C5DD9C0DDFF09EAFAA8DBE62B967704FF1884A8D167DFE026BB414ABA771FE49F8
-9EFB220586C4F6D1DC91D2E11AEF151F68A9A1CE45EA9D502CA7C498BD4296D98F12C1D44A4280
-4BA103077AC45D283A88660F5B2855CAA974A16C3A5559CC8E6B210EF5292EEF76A5BB2229C8B0
-D4A9DF09F347E519F45CE1306C40D8F7E1E5C0E4DAA18CAD888D6E8E337270944EFA860DDFCD6E
-4AF1498AD3117FF2E4585CAE02092F99DE77180C34B52D30B0AA4A92D8DFAA72275AA69399B3FF
-DF31199B30CEB932537667676FC402EC37E8179DC7EAC98DC8423EFB3F3ACF30512FDDC8530783
-5466B302C962789C65AF0E278A8535069F09A4FB950E1B5471A07BB9ADDCE479D10DDC15F58B3D
-29F23C60FD1319394B199D2C9919A668D83B462FC0BD10624C44B2BE451B47AF5AE66DF1DEE648
-0F42D642548F25932EB6A47E325EEE333B54D9925ED2ACCF319258BD22684E8E6E5243B7D0FD11
-B81BD02950A78AB7829DFF6CB31FA26E2A4A8382873A83CE556EB4FB97C440D5D49AD9F95C4C10
-F5A6E5326B34761D2299C9617A62CA7D0215D94BE19D1E1C77F1BDD38A1F135F25CF896F18916A
-6CF891C0260BCFC579453C4C26EBDE619BE97B73FB50FBD4C221431A515E3DDA4E3BF80740920F
-A58FC61E503D83C1735E28C8E5B1E29983867F13255F5E82159CEECA9AD1A901D6705C0B2502C3
-7EAB1450203748C7AC54A8778D6D87D4A57531CFD67DD5A41B668CDBB46D1735C882BF1433F938
-E2F2AC9239FB79506A275950FEA6D8B28036A5DD4B772C4D1D00122111D82E34F1E2F4B8E4DC7E
-A8116BFE939FB924F1A064F54747314ACDCFED284030FB2B4B5B80C7AFDCF63F1E02A930484BF4
-45407CD7033114B78F4464E4EACFDB463A328CE81D55AC19C690B4A01C13090BCD9CA9153F5DB1
-C53D23A1F2ED756EE1A9BD064840CA2F1C84AB5DF377373C97F3F16C5FA35F57A2421A4097A360
-CADC760651BB7D68F047EAB47269FAE869229C1090FE48AAE6E06DD96C87B1BAE4A173D5A2AFD0
-FD9CD73385D9CB51BC2036A4F40F1745684C1EBA4CF80B3FFBE773350D5EC759B0A4F1E58853E0
-3DB7FA5A50CCEF0A26AEFDD8B0CD6D0B4463389108E68080B746B1760B3A228489546FEDDCDEBF
-A579F565AA5AF94158B8E0BABC45F84F8A51F0BD8EC1AD329B69A19D737DCF0E9A615A945E6ADB
-0C8D23AF44B4BA1A17109788EB046B3CB1DDDCAE862456B1F9057BC08D286CA604765BAD26D3B4
-ECF7B6596D449E52490C2C2C79F24489715BD865A48988CA249D60FEDDCD86D6A488C3BD63DCE2
-0D5E37E6C29F9CFC7C62489948749CCD84F20F540080315923095E79D4F35A95396D3E6F364F7A
-83A42B00AA8918FFD623802F7BE71D0E4D0DF4EB49F4B7A9BF8ECCCAB90754E4E1FDB4C187F64A
-FA8CCC762E0F699974626FADD85E774D6DFD92CA9890F1D1A9DB6A1BF4647920BCF5BD83B2EB3B
-CB16D69F4CA279570A6CDDB06229004B4A5688C9484D144F327B61270C9F37048BBC1A0EA9C43D
-902A02A71A523CDA7876006090FB32B4FFA2FF741A5A8344CA79E65D242CBD7953ADA946672F13
-8FD6A42A80B2BE25805B07411F34CBD9939723A1FCF9D2BA73E278546301FAF08D6A4E15A0AB21
-650E485316468042550ED97390763B73CEB56C557D2BAA6389BCBA728A2DB8328ECB60B51A16A8
-1A45960C0B396A5A9EC69ADC7A267F2A55E8B05E9742E28B9D33219EF0D7FA2B13981A220E4CD7
-3AEE557631FCAA673E323BE5D63D09F93FB079F364E8DFCD34CBB073198E1370BE398B2783A210
-75A9C512E2E8812C39C5A2F4F6345A28C13E0CAC8DB00214427E0E59945CB648EC7B3CD8BBBEB3
-3024DAB75866FE26CD37A62F07BC8FCE74076177D517E721896AF3248DB633EA0DF7B42BAF9550
-E1FC8EDC7FFB3BDC4EC209094D54BC5ABD832D8A8D6D35123450EC928FE8BB6E62886E826B1E34
-FE1B3FC3A9B4A184CF47CE7B13D36057C42732EA8F1B805C012EC18A542F1855CCDF3DA9CFC7C3
-CE8AD49B830C73647C187BFD9BD9C19E9800F1F063D4113C2718494696035020B53996AFD62DBF
-C90A145098496D688F5A6A7C31E0345EDB25665463439D7D15C52EFA5ADDF66F6E83E81FD841E2
-72EE934C1B0B12E0AD50B433B3A9926B2374F897EAB9DD3AA637C87A1B4699D58D1CDAF109A881
-72395DBCDD1EB3C98F7C7A2567EE373E34ECA7955A3625B775D5DA827A425A272B90F6864B176A
-E297116D134883D8FC8D1D426C6958CED69EF58A217C870B4C9A5FA271AAAF232E4B37D76958B9
-1BA75D70CC557835048778CA3EF3B26255733A3503F60462E60407143B5C837588551F0A9E0D43
-4BC1A75ED36225C6A6023D6E01921ACD3C80D7F0EF2FE12D210EA9CA67F435AF53DA4F89DA3E31
-25E54219C4216C70B2A82D0A2748023DDD83021A4D46CD9E4065233031E33C28AB116236386575
-D402D6EEE0045C4F6736621EB29167B0AF724419B8C988456CCC88E5E0B52221E82C3ABD5EC685
-C665F364F712E914122629FFD39BA7BEAB41427C017BA6BCDBBD61075BD7016C40CFD2027C16F3
-A693228E8AB25D4E354779810B802CE959D76FBAFBDB8DABB97E4D5E27B9001E6ADAAB860EDB9E
-2F57F3D8FD4F20248E3C382F58714C3DD03550E9D96C596AF6840624CA37C0A56D9F96711B6508
-CF0D63B4DEB13F196D4E8355F1B46D68999731A8847C247286DF46C1AAE634BDD77A5D62B914E3
-18A463E20484A3219BE81A6DE5B8E58973D4DB3E6212739A383689D828CB83129E5EBDD19953B2
-5715DD63A14FE70B1B44625E5DB819AA83F6C0A2C37376A5613F490AC382099341DF9A8DA674EA
-6BD3BB2742190D7BCE38B476D4CAA093A069FD24652D0FD705E5319CE02B7795FF9352343A3B58
-4667744685C37F6544958575EAA75C6489DE45B985491328C9364C36269BE548A8C5C139DAEE40
-E607F65672B3FF735CFF990327587C55DD2193895D73BE0728F32D3D4203872470CD3D0F907586
-8D9838FDCF570A288B351C7AE33259808F2484A42365FBA8127A530A5BADC430BB84FD61322F1F
-B69E5CF80CD79693AB6D07BC6F3374CDF907C01D18FF6848A634ED584A66952BE2A0C09E1BD241
-636479CE4665527D51BEF49C1AD23B144D3D3A5018DDB4C237E8C2FDE6B64C866C76C2E06817C3
-0BE29C61C6512E1E59A02DCD607919D6F0B2D672449DEF953CA52825FC21B7F8292FA8433A7F73
-2BC333B635C81BDC2B454EB6A067F946C2209F9081B59AF825B0596D392CFBDC70B46BED6B45B4
-F3CB9551C770417FF4C5916618D17A6E8D362CB0CA0832F5C0FBA202F39972B2DD9EE708DAA646
-2953C4781B9EC8DC3FFAE55FAB9BD2EC94D84F73079A45BF3CB2506CE23CBE4674FAAFCD89BE6C
-65104B2BC60D687071B0608261597F70A0BB35ED937F8DB3BB1A7E0F6D8881F5B5E64729408A97
-08144693E2E68819A5F06002DF183A55FFED1149BEB06FBB7B7413A5DAD9DFF25B84B7FCE54B2E
-C4E0F6D44E63FF51765C8C886F45432112F3937D6C620E5BAE9D1A690959E54BE34D4FC3526099
-D1EFA0A6DB3F1BBEDDDC054FB4B2F11B601CB43E821FCFE6415D21032C1BFA35E5C7AD401AA628
-BD4147D0EB7EC9BD7E8ED1CD3CE085E2DCF35123A7ACDC2F480420B888415DEF745C6CF3C8EF70
-219B1776EA6E1DE091CF9294E325853DDB99F6F2DD3FB451B828A1946A11B4AEC60AA0067D415B
-01AA38E37013632ABC02DD4A7C1F1A6624E67E5E822E48CBC24114FAEDCC9135C58F8FC3FD31F3
-12D6E2E4E3D9D133A03C924085B778520163CC7B619370323A089E62A7DFD661C694993FECCDED
-F261F9F42AE8B81B83ED5627C2766040B15E2A29FBCD57C708AF106FDE487C90E62AEE4892D581
-A8266F4B00F020001C3907D7E2E0C019272C6D34DFBA9CDA49CF2ED412A365B6E86D6344C355A9
-5D8BCD32D54B22AECB5F4AA3386106DFE3E98C597A8D8696052BA719CE8661FA354ECFEE639550
-1D3EF450704C4B6403E37F18912938D8237A72D9F809E07C7AB3534B55E29357B9A2BB4A95870D
-015B2233245F8C7BCA4CE4FB1F112A4CE92564200136550E6A62748419F33CEECAC381CD0EED4C
-DE24ED2E095AACADDF5426EA8F7052693BB233A73E5FD55EBE9C212A1AF24D04752145CA890D89
-4DA8EF13BCEEDDA796179613EC34DF2A5C9EC2E6732364FD2A2F84D0A47E8CA1D615D242631E46
-BBEBB34693F2F5AAB03B9A2C92E748DC9FC9ECF2FDC8456496876FBDC4FD6EFEFC8DB4E96715BD
-1339571198DE48E541AD1F080A993C3C7487B713A8F741319FB25488221D47DB3F06EC72D46682
-F3D45B30BAA90E79B775660C900016168F6FF0EC0E2E1C04728A6F262802FED82ECECEF5B5D363
-B2DACE82537EE3BEA924FF50E7AF46B48ACE21A2D997BC738952FB50C9E8113FC62A47CFD980C8
-E84FC90F2672BBE891FCA392A12F68E50EB4D452ABE4ED8C1918BEEDB380026F89F98A54E37585
-9C4B1DAF86E3EE30F2572D98DCB45124265A1FE3EBD2A31D8FFDA93260384F4A51C61B1F9C526E
-97CC8F013F34BC5647E0C38280C48FCD03CCA57AD0B77C912575F79F94677664F9300F6D9D24FA
-57C0BDA3244FE481F912CE434C67704BEF6862C6D5B9B261A42F28DD8B14BD1B31ACFDB6C10E6D
-16809E5741962D31B65CDEEB93CDF35DB69E9124E163A6FBC3077C2C4460C5E12C84989D53EB4A
-FA7C15332836B837FB479171F67EB0CAE81B5F00046C432B44A6E26D75DA2662DE2534E9E53A1F
-E54984DB13604366883DB192134315D439C87CD202062E9D5015C96DFBA8B575B0F694FDACC331
-B996665AB8D0968EBE59C9C85D4B6452C5CCEAF8CAE3E5702F0AC1EC5C8F086F234A89BA3D8A87
-AD1640D7AED32A610FE0E9E112B8F62325DFB3968FC4FCA25F7C10969113B613EBF9E1BB715B11
-1138836BE5CF911D1572CE6AF8820866148B54E14041BE8BDD70D34858DD7AAF8A60C8535364BF
-60F2ACBD85FAA524EFA76F2DDFC2C0D88439269A8B13AAD60FF2451C5D792CAB89DC298EF429E2
-60EF2B7A7BB873886E9D19D6575886B97EBDCB3ACF92DFE2A759C4982BB896E5D9D42ECE7BBBF0
-C81A633AF86C8AFE612FE33B7623ED35A9488016DC83F66833256DED114D34BFFF5197A3B45842
-7710D75815D71E935A1C04AE3BD5A31E39CA805250CBC211DBE6108974DCD630D9CDA6652083A0
-8849FE43980D8D763B4E47293003BCC8850385CF2E16065299157D7AB8D589F95EB920B49C6938
-C82A7A6F99D80E14D8E02C1DAD0932D3434B5386363063DD5560C5E1887DECA4F5964FCC8B2619
-762C1B0A7686B1C68DDF221E29CBAD600CB69CEB7B2B1A29999F304B1200B4DD9944A7B13E2590
-33404D237575F969A739F71DEBB828671CC95C760140AB5FAB1DF5535A26098B22C86E02A3D36D
-CD1D710562385A85D68003DC714852373A4E39604F29692586C034941159605869100FB8FE2D04
-943120B7B76E26A8A19303A2A720826DB7809F4DAFD350F4ED9D57467FFE5680EA8E81812F3BBF
-A2557B9AF43EC5F030588392775E9FF92745134D10CC82AB5782706A85965EBE00783DF8C4E471
-0C6BB2083BF6D92383D114E95758DBBAB20B332AA0968C050E2FEF569F0772BE69F55E778069CE
-79AB1FE1DC588C61A82251E8BDE904956D566ED49A54337D373B3228A4A9A6BC7585137502330E
-557DCA031CD1EAAFB04D46246C61C6E5280649DC2E14267DCA971F3048D65E8CC7E90A62B6AFBE
-BF7F2767EF7E2EB5AC954D1C88070195DAD24FBBC6BCAA7BE6D6C88D08B1898B6CABC01F5F358F
-2BA39BF4E40603D04AA5CAEC5BA1F6C36A5EC05053C954242F83879F1308B7EC6843EE977E8F4E
-D89D1850CAE9379564AA7B2645AFB18C16C25E43865E17257ACC2A916A7A29F2823B9A1E5F9815
-5B2CD0C303924CC25E324B43B983C66367E42D048E451E05833FCA1835F37FFF39D2B7D68D8C79
-DDA0AB0DD02D5E252775300DDF7F463E009DA930C5B35ABB5B2C0825CD41404046968E5928D631
-26D581E9393BC89F7D2FA289A8CF036AF97BDB026B23FB866D819204590E0859FD05D0560EFEFA
-2B46D445D4D435721CFB9B08B1D743D418EFAA96FC5EB6CA66ECF85E0FB515E35A127ACE03C235
-5D5A12B6CE9392773A3C4A7C725D3DCCCCDA9CEF7C0D43D2E568D7471AD16F9AEA075609087FEC
-CB710052F4C0FC15D90FD4B157451011FBD0E7F5219CA9C586B593ECD8BF1BC5CA6F5B0E8FC7B3
-24E516BE6FF0405F500D45CEFBBB0A72A5CDBEDB7069C3ACF43E577DBBAABF787D427C4753858E
-AF11F2E4CF54A9445F0BD781E2DF0FEBAD210EFA8641E94BB9973DBD3D5FA9E3D14FB55702576D
-30A131D0DC7F5518110EE78E01EC0679439D393D6C96D06DE21A033AA1BB60F1716AFDE3F72B30
-1DB2A6EF5F0978B398CFFB44444B5428518363D8FA536EA55C9BF79D3AF34A209A6482CA6B4B6E
-8D81D36B53778D47C3A8D229821947B6D7C1400C3EE6FC726C2262353B7C1481938EF28DCF5F76
-5D994CBB72EAA65E35476D86667EFF35E2B88D59747C2C330BBC339FE3F03B90DF8E572EC73500
-90D40D76C1DA3D7BF1A37AA73A7B7ADD6D275C9E910115FDAAA1911CB8466DE224E07077D0A022
-3EB7A839BE44FA118217092A3FEE0B9BB623B66124203536CBA47AA3A865E4361BE80A7FA4DBA6
-0912A9F5E603CDD7FC331F59BF27E291EA1C169019FE4CBC219198317DF46B188E906B106C9DDA
-A367C74398D6440EF50F702201C0BD23F6C01BD9B43F0811BFFAC5A3C14544F068343D9BDD39A3
-EF5BF43F0139C1CCED0ABD641B00E382427188BEA59594F1A9C59D1A04EC693E60A9D7654D7FD5
-3A8B65D15103117F33F6F18B409B0DF129BF2DA8592EE386D6BEA725ED9A44065536A9896B42FB
-D527BEE9B16ECD00EA00C5564C57D3FBADB8C221B99A83B3C9525931B40FBA37253B4FAF9BDD46
-65D782CBE74138178DC68A0081AE38FB70DDE1E205429D9E2B419EDD81709D1555FBB215684A51
-BB3DB9F08EDD3146F069085155B5777F23340193745DEF7B3DE2A35680E05F07F832AD9C0A4598
-A55CAFAF0ABD1719C22BA06CDBAB2445442DBB3648F7645076FAF8DF53C9BCFF69C0872E829B50
-F9C953D567120E000F8418EFEF3C199FC7D530B2884B5634F87CDE82E46CA66F5A215F44ECCC44
-85271144AAD85F7D14DF0C14BB472341B814B8DDE80D46151B1AD56C879DCC65A57EA8A15D7703
-6FBC9A67BFA81181CCB02F69147BFD65EB2C53521E40939B68ADE7080B2059E709FBB73ED99C00
-A3F430F1D5E046B19757CD45F59C9D6FF117511129C2EB526FC41299A20B78D9C625E7A61BE199
-48D066D52CCE4A7E04CEE4F8633C48BAB8DDD605A1D472C5DC59233BE942CFF744581E0D96F812
-63DC54ADDE1DC06679FF0D8EF5A8ADC89619EC8FF273F22DCB79673FC1DD0490DEA3D627FDEBEF
-686B242BB7641FBF0A6EEF2158424A4F2CAA2CA842457ED90265DDEA68ACA37DF65309BCE5D47B
-AF4E4796CFBDEFF4DE11ABF268F400DFF85F94C7C4FCA63E3916DFBABEE8ECDAEB1A2CC8765E02
-492B202D921D0828533B4A011BD76FF8489964073B1E153236449C4691556CEA6BFFBD509CF63B
-B9A45C25425B18718F9D19475942183D32360227306BB63DDF2348237FF65BCBA3E5F5D6E63157
-D55C7CE9B6B364045ED751DBAFA6F4CEB81C8B042B271C516ED34EAAD5DE53530E3C84D31C00B6
-9194FE247A1CC2A7400C2A1547E10A818A7D9E642CBA34672B785214D39ACDEF57F65009B3B6B7
-C0CC45DF732874F6D5878EBCDA9527500AA396C3C6BF02B3A6A44BDB99BECFA75E6410E4836F54
-A79CC880B005E243C9536086563CDB7BE27F5EF2C98DA2C8BC073D00617574DB6A55738F4F75CC
-4178B60BD604D90CE5687B5C665F2EC1E4270C96C60D23DF86E34A1024C18ADAFF3446E5DDEDCC
-D3274FC57D2ABB3E77FC89105C7063E9A2B73CCE6CF6A566CDE4CFFE30934DF726DE5C9C71335C
-4458369AFC3A85F8343A4A95D15F9EE79355CBC2960AD990BE454990CD51AD6B9CBC542F60DCC5
-8AACA357744005594AE91D63E8DB5FEC4273FB3295FCA089A57FF5E5B6A386D9110F9A12C55CA1
-8ED38D962B5487EBFABB8B3F84AC82A094675731FAF0CF81FC329A90D74B5443F716241D90AE43
-85877655980782097AA01639D51E1E8D6EBF5DB7FCB6081B9F315F66A0C2BCFF3EA35C450ED911
-E89E021CA023213253E672387C56ACE512DFB7D942BC03F10A028215E3470B4B433388955409D2
-93C5D09CAD44342551BEF6BA3351A5801359C682B8CD5F375C07105669122D86E83BFD5D1E3035
-7F6BF160513871950A265DE83CC1A9E70C60185E2058D32198678229AAB3ED641A48ED761ABD13
-3664B82C86B1D9199913F7A141157AD4888F6FDC030A84398BD3EB1798CB9C98546E9B247E280C
-C4A86B8A52BFC33F113CFEBD114027C294FBB8FA63EC4708372028E07FC8BA2DDBC4B713A39D65
-A0C2C1E00F7E68AE3C0752106BFDE83C51F6EDCF2412B0A938BAABAA3A65848283893756DEAAF9
-E0BE4FB5FE474D994C1A66014DD0FED90BA8001268FD87612549BDEB9C89B952F61112EA8B5F75
-14D810A100825C62AA5706D772C87D4B5263FF9A6E6BBDFF1C06635C34C89D3853567CAE87F784
-72384D9901FCAFDD94F16889344F121AFEB571D9C1BFCC714B98FCFE19BF851B2FFA159A726607
-B5803CB705BCFA9ED3CF2B73CE527683ED7CAF3F1A4F9B31C51FC569080AED7B824E489DCBF24E
-5146AD35C5B3A99045B93103510287175F7CF02052EC73C6BA8A7D0187E2B1CB361E6CBFDDF894
-35ABB3BBEAA60A6A428EE0811BF0406CE1E72F7255998A9BB23D42180423BC9779F641CAF9541F
-1A7B291C1AB2EB138F6C0239010E1AEA43D3EAE6F80AC698D4E7C1A6DE606252A72C233985F6B6
-89A469B0B2D9652586EFCC7E1D008E9DA1034E99D90E0BBD77795D0E7A7A5346C3451417DEB2FD
-C5A5F2B3558975C6C213C9F61C1FD5A30BE894185D37474A2C16187A45FDAFD2CBE4574E54B2FB
-1AECC04783067487DA0CBA39935A150FA333DD4BB0EA7050B57FCA416DD4CA1CB3E5938659CF80
-9A5BFD4A7C2EFD7834A6EF13C7A1D24353FB378A6DDE916F06560F575643FEC5AF8A39E7043317
-C322FF30051BACB8A3B81D1FE45BC8CA76A9C75AF67F8EBE4731E9F92E9EE4F2FC2764F52DC679
-F7E41F2BA1D44042BCCDE3352052A90025BD12F72BB6BD8FA671D4F616D0A12E06D9556B51E846
-14D8068D3313E48F7A5C869E2077A648472C1C83B095601B400274F9FF080B5F50E41A0E3D8A43
-633C31C2924A436FB5095FC38F0365C1C12D5D6C0E2658D01C207838583EC2CD413CC9ACB0A29A
-26A0A145679363CBEC2EDBA55061ADBA688E27C15A5F2E02F2191D70A61186DCEDA9CC9AD49E50
-A5F87B5BF42C160FBA5BEC989CB389ABCC6D3FAF0CDA873C979694A60D92FA061E47DCFC77266A
-D57AD5C13AD7388AB7258EC43ED293D02C857EBD8734E60C09927EFCD0D7645A6DBEFEB4702CED
-FECFB1F6AC60D986AE88BEDE84CB8FB34B844881C3FDF5391A66B171CC486469BBFD11003A5B6D
-3BD979976FC9F28EBB3DDD1FA11FFEE828191E00FC88110DD15CE7856DAF3CAC9C28651042EC1B
-2EFAE309F2F9501FCB173DFAF6B3374B05D410CDCB9B922D547A70B521E4311A5D18B99D5956A8
-3F45B5011CF94DA3D438650D14388206AA25A74FF837FB62A3FDDEF5FE605A633AB31CE549E78A
-88BE7913502E562FB73B0C99B3FB8D6642B99C720C6AE9412B92469D4BC8FF30DFC990EE4565A6
-225F775D986E5934B8EC02D3EFD92B56C3AA4FCEA1A9EF9EA69BEBA985CFEE14856941669DAA45
-612E5849B2126BA4A510139607E092C2CD8E0B19EAB8165BC1104AF67922AD95AA92DE63CBAB3A
-980DB1606EA30F139059B463CCD4AF0A0BB436D0FCA3C73E9099FAA7C646242612E1519C563BB9
-14B7A10A1EFA6FBAB8F2CB45B8EBABC22E6540B76684D7308EA7BBD6FE2564EE9C2AEFCFFE0F75
-25BD8A3506135F5C0865BD1F0952F26C364524C88D6E649177F84FD61110F178D59AA036A64AD3
-CE9C7D83CE66106E32856DD62F7F82DC8D578BF33213F7A70637760AABA819479132F06479AFBB
-1004BA1568E59F915329C7217AC60C101A73F0D12A6AC9E8B36D7E68F1F75E55D28ACD1783C81D
-5A35FE276EBB494F87E51DDFBEAF65EB7B28077AFF83C86038251F6DF9C265D3FF4E61A0C62051
-4CD5008E9BD19C95385EA512C341053AECA3FB273427699086BB41DCE2100E5CB13BE744767564
-611202F27E531C78B0E176ACA47C71AC3FE4AFCB3E4D4E84B2D6A10B4A242D68A424F6E980D51F
-9A9BB8833B0D91A874F95BE8DF4CE9169F8FCB6E0FE14E31F16BBB3D974661C956710D440CCEE8
-BACB2A1CE47B0007171AC6681EDCF7FC3990ED6FBCE65CDE14D54BF4AF85D70032AB6119B01D32
-D90E1407523877FA2D780912DC97A01D56F4C025B7BC2E872157E85A5E58AEDC569F06EDB8F821
-831FA0520CAE97AB99031DCF2A4601DAB17CDF9F5169BD38E92F02D2EB2E2ECE37FE1C58FA3811
-A68346966D59437C10F28C43BE9546E3193F18EE3410BDBA68175A87A894910029A9F6E0723596
-E1AA2457684B853B5A0BBBC063CCA9F425B0DCBC0D86AA21988A0EBD306B7C8A4C7E5DE43A898C
-95D6F5BDD6DD23F81C9268431B4D465932DEF9CF37BCFBC05B07DDA75087377A5132904DC12F2D
-B322E15E3A2A9305E3B4C81A5A523A57F95DBE48FE4DA1BBF630401164F38B8FC237D3BF7B5CE9
-55389B0F7501BDFDE99763EB3965EE6C792130411B7BD7DEA605DE4F376D3F130877D0337CDF0A
-807588683D85B7548606E78C3C1F3EDEBB2C1755DA24C64792E3B82D46A1CDF34FE0E8E3810C8F
-9460570BBCFC4F98D42A0B048C8E0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
diff --git a/Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb b/Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb
deleted file mode 100644
index 09b04db7613..00000000000
--- a/Build/source/texk/lcdf-typetools/tests/uhvrrc8a.pfb
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/lcdf-typetools/version.ac b/Build/source/texk/lcdf-typetools/version.ac
deleted file mode 100644
index bc82b32931e..00000000000
--- a/Build/source/texk/lcdf-typetools/version.ac
+++ /dev/null
@@ -1,11 +0,0 @@
-dnl
-dnl Copyright (C) 2011-2015 Peter Breitenlohner <tex-live@tug.org>
-dnl
-dnl This file is free software; the copyright holder
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl --------------------------------------------------------
-dnl
-dnl m4-include this file to define the current lcdf-typetools version
-m4_define([lcdf_typetools_version], [2.108])