From b2433cf2faf5c5c3d82d61c7b44928923c5fdcda Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 30 Oct 2021 12:16:59 +0800 Subject: +freetype --- ThirdParty/freetype/CMakeLists.txt | 510 + ThirdParty/freetype/ChangeLog | 4879 ++++++ ThirdParty/freetype/ChangeLog.20 | 2613 +++ ThirdParty/freetype/ChangeLog.21 | 9438 ++++++++++ ThirdParty/freetype/ChangeLog.22 | 2837 +++ ThirdParty/freetype/ChangeLog.23 | 7948 +++++++++ ThirdParty/freetype/ChangeLog.24 | 6360 +++++++ ThirdParty/freetype/ChangeLog.25 | 5161 ++++++ ThirdParty/freetype/ChangeLog.26 | 5711 ++++++ ThirdParty/freetype/ChangeLog.27 | 2106 +++ ThirdParty/freetype/ChangeLog.28 | 3136 ++++ ThirdParty/freetype/Jamfile | 223 + ThirdParty/freetype/Jamrules | 71 + ThirdParty/freetype/Makefile | 34 + ThirdParty/freetype/README | 84 + ThirdParty/freetype/README.git | 50 + ThirdParty/freetype/autogen.sh | 165 + ThirdParty/freetype/builds/amiga/README | 110 + .../builds/amiga/include/config/ftconfig.h | 55 + .../builds/amiga/include/config/ftmodule.h | 160 + ThirdParty/freetype/builds/amiga/makefile | 293 + ThirdParty/freetype/builds/amiga/makefile.os4 | 297 + ThirdParty/freetype/builds/amiga/smakefile | 299 + .../freetype/builds/amiga/src/base/ftdebug.c | 348 + .../freetype/builds/amiga/src/base/ftsystem.c | 530 + ThirdParty/freetype/builds/ansi/ansi-def.mk | 77 + ThirdParty/freetype/builds/ansi/ansi.mk | 21 + ThirdParty/freetype/builds/atari/ATARI.H | 20 + ThirdParty/freetype/builds/atari/FNames.SIC | 37 + ThirdParty/freetype/builds/atari/FREETYPE.PRJ | 32 + ThirdParty/freetype/builds/atari/README.TXT | 51 + ThirdParty/freetype/builds/atari/deflinejoiner.awk | 181 + .../freetype/builds/atari/gen-purec-patch.sh | 40 + ThirdParty/freetype/builds/beos/beos-def.mk | 79 + ThirdParty/freetype/builds/beos/beos.mk | 19 + ThirdParty/freetype/builds/beos/detect.mk | 41 + .../freetype/builds/cmake/FindHarfBuzz.cmake | 81 + ThirdParty/freetype/builds/cmake/iOS.cmake | 270 + ThirdParty/freetype/builds/cmake/testbuild.sh | 157 + ThirdParty/freetype/builds/compiler/ansi-cc.mk | 80 + ThirdParty/freetype/builds/compiler/bcc-dev.mk | 86 + ThirdParty/freetype/builds/compiler/bcc.mk | 86 + ThirdParty/freetype/builds/compiler/emx.mk | 77 + ThirdParty/freetype/builds/compiler/gcc-dev.mk | 95 + ThirdParty/freetype/builds/compiler/gcc.mk | 77 + ThirdParty/freetype/builds/compiler/intelc.mk | 85 + ThirdParty/freetype/builds/compiler/unix-lcc.mk | 83 + ThirdParty/freetype/builds/compiler/visualage.mk | 76 + ThirdParty/freetype/builds/compiler/visualc.mk | 82 + ThirdParty/freetype/builds/compiler/watcom.mk | 81 + ThirdParty/freetype/builds/compiler/win-lcc.mk | 81 + ThirdParty/freetype/builds/detect.mk | 128 + ThirdParty/freetype/builds/dos/detect.mk | 152 + ThirdParty/freetype/builds/dos/dos-def.mk | 48 + ThirdParty/freetype/builds/dos/dos-emx.mk | 21 + ThirdParty/freetype/builds/dos/dos-gcc.mk | 21 + ThirdParty/freetype/builds/dos/dos-wat.mk | 20 + ThirdParty/freetype/builds/exports.mk | 80 + ThirdParty/freetype/builds/freetype.mk | 392 + ThirdParty/freetype/builds/link_dos.mk | 42 + ThirdParty/freetype/builds/link_std.mk | 42 + .../freetype/builds/mac/FreeType.m68k_cfm.make.txt | 209 + .../freetype/builds/mac/FreeType.m68k_far.make.txt | 208 + .../builds/mac/FreeType.ppc_carbon.make.txt | 212 + .../builds/mac/FreeType.ppc_classic.make.txt | 213 + ThirdParty/freetype/builds/mac/README | 401 + ThirdParty/freetype/builds/mac/ascii2mpw.py | 24 + ThirdParty/freetype/builds/mac/freetype-Info.plist | 36 + ThirdParty/freetype/builds/mac/ftlib.prj.xml | 1194 ++ ThirdParty/freetype/builds/mac/ftmac.c | 1543 ++ ThirdParty/freetype/builds/modules.mk | 79 + ThirdParty/freetype/builds/os2/detect.mk | 81 + ThirdParty/freetype/builds/os2/os2-def.mk | 48 + ThirdParty/freetype/builds/os2/os2-dev.mk | 30 + ThirdParty/freetype/builds/os2/os2-gcc.mk | 26 + ThirdParty/freetype/builds/symbian/bld.inf | 72 + ThirdParty/freetype/builds/symbian/freetype.mmp | 146 + ThirdParty/freetype/builds/toplevel.mk | 274 + ThirdParty/freetype/builds/unix/aclocal.m4 | 9159 ++++++++++ ThirdParty/freetype/builds/unix/config.guess | 1493 ++ ThirdParty/freetype/builds/unix/config.sub | 1795 ++ ThirdParty/freetype/builds/unix/configure | 17365 +++++++++++++++++++ ThirdParty/freetype/builds/unix/configure.ac | 1145 ++ ThirdParty/freetype/builds/unix/configure.raw | 1145 ++ ThirdParty/freetype/builds/unix/detect.mk | 99 + ThirdParty/freetype/builds/unix/freetype-config.in | 211 + ThirdParty/freetype/builds/unix/freetype2.in | 14 + ThirdParty/freetype/builds/unix/freetype2.m4 | 194 + ThirdParty/freetype/builds/unix/ft-munmap.m4 | 32 + ThirdParty/freetype/builds/unix/ftconfig.in | 603 + ThirdParty/freetype/builds/unix/ftsystem.c | 420 + ThirdParty/freetype/builds/unix/install-sh | 501 + ThirdParty/freetype/builds/unix/install.mk | 102 + ThirdParty/freetype/builds/unix/ltmain.sh | 11147 ++++++++++++ ThirdParty/freetype/builds/unix/pkg.m4 | 199 + ThirdParty/freetype/builds/unix/unix-cc.in | 121 + ThirdParty/freetype/builds/unix/unix-def.in | 160 + ThirdParty/freetype/builds/unix/unix-dev.mk | 26 + ThirdParty/freetype/builds/unix/unix-lcc.mk | 24 + ThirdParty/freetype/builds/unix/unix.mk | 62 + ThirdParty/freetype/builds/unix/unixddef.mk | 49 + ThirdParty/freetype/builds/vms/ftconfig.h | 557 + ThirdParty/freetype/builds/vms/ftsystem.c | 328 + ThirdParty/freetype/builds/wince/ftdebug.c | 354 + .../freetype/builds/wince/vc2005-ce/freetype.sln | 157 + .../builds/wince/vc2005-ce/freetype.vcproj | 874 + .../freetype/builds/wince/vc2005-ce/index.html | 47 + .../freetype/builds/wince/vc2008-ce/freetype.sln | 157 + .../builds/wince/vc2008-ce/freetype.vcproj | 3508 ++++ .../freetype/builds/wince/vc2008-ce/index.html | 47 + ThirdParty/freetype/builds/windows/detect.mk | 202 + ThirdParty/freetype/builds/windows/ftdebug.c | 331 + .../freetype/builds/windows/vc2010/freetype.sln | 37 + .../builds/windows/vc2010/freetype.user.props | 68 + .../builds/windows/vc2010/freetype.vcxproj | 351 + .../builds/windows/vc2010/freetype.vcxproj.filters | 140 + .../freetype/builds/windows/vc2010/index.html | 40 + .../freetype/builds/windows/visualc/freetype.dsp | 354 + .../freetype/builds/windows/visualc/freetype.dsw | 29 + .../freetype/builds/windows/visualc/freetype.sln | 25 + .../builds/windows/visualc/freetype.vcproj | 546 + .../freetype/builds/windows/visualc/index.html | 38 + .../freetype/builds/windows/visualce/freetype.dsp | 383 + .../freetype/builds/windows/visualce/freetype.dsw | 29 + .../builds/windows/visualce/freetype.vcproj | 3697 ++++ .../freetype/builds/windows/visualce/index.html | 47 + ThirdParty/freetype/builds/windows/w32-bcc.mk | 28 + ThirdParty/freetype/builds/windows/w32-bccd.mk | 26 + ThirdParty/freetype/builds/windows/w32-dev.mk | 32 + ThirdParty/freetype/builds/windows/w32-gcc.mk | 31 + ThirdParty/freetype/builds/windows/w32-icc.mk | 28 + ThirdParty/freetype/builds/windows/w32-intl.mk | 28 + ThirdParty/freetype/builds/windows/w32-lcc.mk | 24 + ThirdParty/freetype/builds/windows/w32-mingw32.mk | 33 + ThirdParty/freetype/builds/windows/w32-vcc.mk | 28 + ThirdParty/freetype/builds/windows/w32-wat.mk | 28 + ThirdParty/freetype/builds/windows/win32-def.mk | 51 + ThirdParty/freetype/configure | 137 + ThirdParty/freetype/devel/ft2build.h | 40 + ThirdParty/freetype/devel/ftoption.h | 982 ++ ThirdParty/freetype/docs/CHANGES | 5162 ++++++ ThirdParty/freetype/docs/CMAKE | 2 + ThirdParty/freetype/docs/CUSTOMIZE | 152 + ThirdParty/freetype/docs/DEBUG | 203 + ThirdParty/freetype/docs/DOCGUIDE | 298 + ThirdParty/freetype/docs/FTL.TXT | 169 + ThirdParty/freetype/docs/GPLv2.TXT | 340 + ThirdParty/freetype/docs/INSTALL | 90 + ThirdParty/freetype/docs/INSTALL.ANY | 154 + ThirdParty/freetype/docs/INSTALL.CROSS | 177 + ThirdParty/freetype/docs/INSTALL.GNU | 161 + ThirdParty/freetype/docs/INSTALL.MAC | 32 + ThirdParty/freetype/docs/INSTALL.UNIX | 118 + ThirdParty/freetype/docs/INSTALL.VMS | 62 + ThirdParty/freetype/docs/LICENSE.TXT | 39 + ThirdParty/freetype/docs/MAKEPP | 5 + ThirdParty/freetype/docs/PROBLEMS | 90 + ThirdParty/freetype/docs/TODO | 40 + ThirdParty/freetype/docs/VERSIONS.TXT | 128 + ThirdParty/freetype/docs/formats.txt | 208 + ThirdParty/freetype/docs/freetype-config.1 | 146 + ThirdParty/freetype/docs/raster.txt | 635 + ThirdParty/freetype/docs/reference/README | 35 + ThirdParty/freetype/docs/reference/site/404.html | 1034 ++ .../reference/site/assets/fonts/font-awesome.css | 4 + .../reference/site/assets/fonts/material-icons.css | 13 + .../site/assets/fonts/specimen/FontAwesome.ttf | Bin 0 -> 165548 bytes .../site/assets/fonts/specimen/FontAwesome.woff | Bin 0 -> 98024 bytes .../site/assets/fonts/specimen/FontAwesome.woff2 | Bin 0 -> 77160 bytes .../fonts/specimen/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../fonts/specimen/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../fonts/specimen/MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes .../docs/reference/site/assets/images/favicon.png | Bin 0 -> 521 bytes .../assets/images/icons/bitbucket.1b09e088.svg | 20 + .../site/assets/images/icons/github.f0b8504a.svg | 18 + .../site/assets/images/icons/gitlab.6dd19c00.svg | 38 + .../assets/javascripts/application.d9aa80ab.js | 6 + .../site/assets/javascripts/lunr/lunr.da.js | 1 + .../site/assets/javascripts/lunr/lunr.de.js | 1 + .../site/assets/javascripts/lunr/lunr.du.js | 1 + .../site/assets/javascripts/lunr/lunr.es.js | 1 + .../site/assets/javascripts/lunr/lunr.fi.js | 1 + .../site/assets/javascripts/lunr/lunr.fr.js | 1 + .../site/assets/javascripts/lunr/lunr.hu.js | 1 + .../site/assets/javascripts/lunr/lunr.it.js | 1 + .../site/assets/javascripts/lunr/lunr.ja.js | 1 + .../site/assets/javascripts/lunr/lunr.jp.js | 1 + .../site/assets/javascripts/lunr/lunr.multi.js | 1 + .../site/assets/javascripts/lunr/lunr.nl.js | 1 + .../site/assets/javascripts/lunr/lunr.no.js | 1 + .../site/assets/javascripts/lunr/lunr.pt.js | 1 + .../site/assets/javascripts/lunr/lunr.ro.js | 1 + .../site/assets/javascripts/lunr/lunr.ru.js | 1 + .../javascripts/lunr/lunr.stemmer.support.js | 1 + .../site/assets/javascripts/lunr/lunr.sv.js | 1 + .../site/assets/javascripts/lunr/lunr.th.js | 1 + .../site/assets/javascripts/lunr/lunr.tr.js | 1 + .../site/assets/javascripts/lunr/tinyseg.js | 1 + .../site/assets/javascripts/lunr/wordcut.js | 1 + .../site/assets/javascripts/modernizr.1f0bcf2b.js | 1 + .../stylesheets/application-palette.224b79ff.css | 1 + .../assets/stylesheets/application.982221ab.css | 1 + .../docs/reference/site/ft2-auto_hinter.html | 1155 ++ .../docs/reference/site/ft2-base_interface.html | 5341 ++++++ .../docs/reference/site/ft2-basic_types.html | 2422 +++ .../docs/reference/site/ft2-bdf_fonts.html | 1387 ++ .../docs/reference/site/ft2-bitmap_handling.html | 1522 ++ .../freetype/docs/reference/site/ft2-bzip2.html | 1200 ++ .../docs/reference/site/ft2-cache_subsystem.html | 2425 +++ .../docs/reference/site/ft2-cff_driver.html | 1163 ++ .../docs/reference/site/ft2-cid_fonts.html | 1320 ++ .../docs/reference/site/ft2-color_management.html | 1471 ++ .../docs/reference/site/ft2-computations.html | 2074 +++ .../docs/reference/site/ft2-error_code_values.html | 1395 ++ .../reference/site/ft2-error_enumerations.html | 1241 ++ .../docs/reference/site/ft2-font_formats.html | 1197 ++ .../docs/reference/site/ft2-gasp_table.html | 1255 ++ .../docs/reference/site/ft2-glyph_management.html | 1860 ++ .../docs/reference/site/ft2-glyph_stroker.html | 2154 +++ .../docs/reference/site/ft2-glyph_variants.html | 1399 ++ .../docs/reference/site/ft2-gx_validation.html | 1482 ++ .../freetype/docs/reference/site/ft2-gzip.html | 1269 ++ .../reference/site/ft2-header_file_macros.html | 2355 +++ .../docs/reference/site/ft2-header_inclusion.html | 1159 ++ .../docs/reference/site/ft2-incremental.html | 1531 ++ .../freetype/docs/reference/site/ft2-index.html | 2141 +++ .../docs/reference/site/ft2-layer_management.html | 1313 ++ .../docs/reference/site/ft2-lcd_rendering.html | 1420 ++ .../docs/reference/site/ft2-list_processing.html | 1660 ++ .../freetype/docs/reference/site/ft2-lzw.html | 1200 ++ .../docs/reference/site/ft2-mac_specific.html | 1501 ++ .../docs/reference/site/ft2-module_management.html | 2225 +++ .../docs/reference/site/ft2-multiple_masters.html | 2126 +++ .../docs/reference/site/ft2-ot_validation.html | 1326 ++ .../reference/site/ft2-outline_processing.html | 2314 +++ .../docs/reference/site/ft2-parameter_tags.html | 1352 ++ .../docs/reference/site/ft2-pcf_driver.html | 1154 ++ .../docs/reference/site/ft2-pfr_fonts.html | 1324 ++ .../docs/reference/site/ft2-properties.html | 1919 ++ .../docs/reference/site/ft2-quick_advance.html | 1303 ++ .../freetype/docs/reference/site/ft2-raster.html | 1742 ++ .../docs/reference/site/ft2-sfnt_names.html | 1417 ++ .../docs/reference/site/ft2-sizes_management.html | 1282 ++ .../docs/reference/site/ft2-system_interface.html | 1576 ++ .../docs/reference/site/ft2-t1_cid_driver.html | 1157 ++ .../docs/reference/site/ft2-truetype_engine.html | 1240 ++ .../docs/reference/site/ft2-truetype_tables.html | 3227 ++++ .../docs/reference/site/ft2-tt_driver.html | 1170 ++ .../docs/reference/site/ft2-type1_tables.html | 2155 +++ .../docs/reference/site/ft2-user_allocation.html | 1153 ++ .../freetype/docs/reference/site/ft2-version.html | 1341 ++ .../docs/reference/site/ft2-winfnt_fonts.html | 1401 ++ .../freetype/docs/reference/site/images/favico.ico | Bin 0 -> 1150 bytes ThirdParty/freetype/docs/reference/site/index.html | 1273 ++ .../docs/reference/site/javascripts/extra.js | 54 + .../docs/reference/site/search/search_index.json | 1 + .../freetype/docs/reference/site/sitemap.xml | 258 + .../freetype/docs/reference/site/sitemap.xml.gz | Bin 0 -> 222 bytes .../docs/reference/site/stylesheets/extra.css | 221 + ThirdParty/freetype/docs/release | 202 + .../freetype/include/freetype/config/ftconfig.h | 575 + .../freetype/include/freetype/config/ftheader.h | 814 + .../freetype/include/freetype/config/ftmodule.h | 32 + .../freetype/include/freetype/config/ftoption.h | 982 ++ .../freetype/include/freetype/config/ftstdlib.h | 175 + ThirdParty/freetype/include/freetype/freetype.h | 4880 ++++++ ThirdParty/freetype/include/freetype/ftadvanc.h | 188 + ThirdParty/freetype/include/freetype/ftbbox.h | 102 + ThirdParty/freetype/include/freetype/ftbdf.h | 213 + ThirdParty/freetype/include/freetype/ftbitmap.h | 330 + ThirdParty/freetype/include/freetype/ftbzip2.h | 102 + ThirdParty/freetype/include/freetype/ftcache.h | 1088 ++ ThirdParty/freetype/include/freetype/ftchapters.h | 145 + ThirdParty/freetype/include/freetype/ftcid.h | 168 + ThirdParty/freetype/include/freetype/ftcolor.h | 311 + ThirdParty/freetype/include/freetype/ftdriver.h | 1232 ++ ThirdParty/freetype/include/freetype/fterrdef.h | 279 + ThirdParty/freetype/include/freetype/fterrors.h | 285 + ThirdParty/freetype/include/freetype/ftfntfmt.h | 94 + ThirdParty/freetype/include/freetype/ftgasp.h | 144 + ThirdParty/freetype/include/freetype/ftglyph.h | 665 + ThirdParty/freetype/include/freetype/ftgxval.h | 355 + ThirdParty/freetype/include/freetype/ftgzip.h | 151 + ThirdParty/freetype/include/freetype/ftimage.h | 1240 ++ ThirdParty/freetype/include/freetype/ftincrem.h | 344 + ThirdParty/freetype/include/freetype/ftlcdfil.h | 328 + ThirdParty/freetype/include/freetype/ftlist.h | 297 + ThirdParty/freetype/include/freetype/ftlzw.h | 100 + ThirdParty/freetype/include/freetype/ftmac.h | 290 + ThirdParty/freetype/include/freetype/ftmm.h | 753 + ThirdParty/freetype/include/freetype/ftmodapi.h | 785 + ThirdParty/freetype/include/freetype/ftmoderr.h | 203 + ThirdParty/freetype/include/freetype/ftotval.h | 207 + ThirdParty/freetype/include/freetype/ftoutln.h | 593 + ThirdParty/freetype/include/freetype/ftparams.h | 204 + ThirdParty/freetype/include/freetype/ftpfr.h | 180 + ThirdParty/freetype/include/freetype/ftrender.h | 245 + ThirdParty/freetype/include/freetype/ftsizes.h | 160 + ThirdParty/freetype/include/freetype/ftsnames.h | 273 + ThirdParty/freetype/include/freetype/ftstroke.h | 772 + ThirdParty/freetype/include/freetype/ftsynth.h | 84 + ThirdParty/freetype/include/freetype/ftsystem.h | 353 + ThirdParty/freetype/include/freetype/fttrigon.h | 350 + ThirdParty/freetype/include/freetype/fttypes.h | 615 + ThirdParty/freetype/include/freetype/ftwinfnt.h | 277 + .../freetype/include/freetype/internal/autohint.h | 232 + .../freetype/include/freetype/internal/cffotypes.h | 108 + .../freetype/include/freetype/internal/cfftypes.h | 417 + .../freetype/include/freetype/internal/ftcalc.h | 510 + .../freetype/include/freetype/internal/ftdebug.h | 283 + .../freetype/include/freetype/internal/ftdrv.h | 288 + .../freetype/include/freetype/internal/ftgloadr.h | 149 + .../freetype/include/freetype/internal/fthash.h | 136 + .../freetype/include/freetype/internal/ftmemory.h | 392 + .../freetype/include/freetype/internal/ftobjs.h | 1236 ++ .../freetype/include/freetype/internal/ftpsprop.h | 48 + .../freetype/include/freetype/internal/ftrfork.h | 246 + .../freetype/include/freetype/internal/ftserv.h | 521 + .../freetype/include/freetype/internal/ftstream.h | 561 + .../freetype/include/freetype/internal/fttrace.h | 156 + .../freetype/include/freetype/internal/ftvalid.h | 159 + .../freetype/include/freetype/internal/internal.h | 66 + .../freetype/include/freetype/internal/psaux.h | 1439 ++ .../freetype/include/freetype/internal/pshints.h | 700 + .../include/freetype/internal/services/svbdf.h | 66 + .../include/freetype/internal/services/svcfftl.h | 90 + .../include/freetype/internal/services/svcid.h | 69 + .../include/freetype/internal/services/svfntfmt.h | 55 + .../include/freetype/internal/services/svgldict.h | 72 + .../include/freetype/internal/services/svgxval.h | 72 + .../include/freetype/internal/services/svkern.h | 51 + .../include/freetype/internal/services/svmetric.h | 125 + .../include/freetype/internal/services/svmm.h | 156 + .../include/freetype/internal/services/svotval.h | 55 + .../include/freetype/internal/services/svpfr.h | 66 + .../include/freetype/internal/services/svpostnm.h | 65 + .../include/freetype/internal/services/svprop.h | 66 + .../include/freetype/internal/services/svpscmap.h | 145 + .../include/freetype/internal/services/svpsinfo.h | 86 + .../include/freetype/internal/services/svsfnt.h | 88 + .../include/freetype/internal/services/svttcmap.h | 90 + .../include/freetype/internal/services/svtteng.h | 53 + .../include/freetype/internal/services/svttglyf.h | 56 + .../include/freetype/internal/services/svwinfnt.h | 50 + .../freetype/include/freetype/internal/sfnt.h | 875 + .../freetype/include/freetype/internal/t1types.h | 260 + .../freetype/include/freetype/internal/tttypes.h | 1854 ++ ThirdParty/freetype/include/freetype/t1tables.h | 774 + ThirdParty/freetype/include/freetype/ttnameid.h | 1236 ++ ThirdParty/freetype/include/freetype/tttables.h | 856 + ThirdParty/freetype/include/freetype/tttags.h | 123 + ThirdParty/freetype/include/ft2build.h | 44 + ThirdParty/freetype/modules.cfg | 247 + ThirdParty/freetype/objs/README | 2 + ThirdParty/freetype/src/Jamfile | 19 + ThirdParty/freetype/src/autofit/Jamfile | 53 + ThirdParty/freetype/src/autofit/afangles.c | 285 + ThirdParty/freetype/src/autofit/afangles.h | 7 + ThirdParty/freetype/src/autofit/afblue.c | 739 + ThirdParty/freetype/src/autofit/afblue.cin | 39 + ThirdParty/freetype/src/autofit/afblue.dat | 1072 ++ ThirdParty/freetype/src/autofit/afblue.h | 414 + ThirdParty/freetype/src/autofit/afblue.hin | 146 + ThirdParty/freetype/src/autofit/afcjk.c | 2405 +++ ThirdParty/freetype/src/autofit/afcjk.h | 141 + ThirdParty/freetype/src/autofit/afcover.h | 105 + ThirdParty/freetype/src/autofit/afdummy.c | 77 + ThirdParty/freetype/src/autofit/afdummy.h | 40 + ThirdParty/freetype/src/autofit/aferrors.h | 42 + ThirdParty/freetype/src/autofit/afglobal.c | 498 + ThirdParty/freetype/src/autofit/afglobal.h | 173 + ThirdParty/freetype/src/autofit/afhints.c | 1720 ++ ThirdParty/freetype/src/autofit/afhints.h | 487 + ThirdParty/freetype/src/autofit/afindic.c | 157 + ThirdParty/freetype/src/autofit/afindic.h | 41 + ThirdParty/freetype/src/autofit/aflatin.c | 3604 ++++ ThirdParty/freetype/src/autofit/aflatin.h | 194 + ThirdParty/freetype/src/autofit/aflatin2.c | 2428 +++ ThirdParty/freetype/src/autofit/aflatin2.h | 46 + ThirdParty/freetype/src/autofit/afloader.c | 720 + ThirdParty/freetype/src/autofit/afloader.h | 91 + ThirdParty/freetype/src/autofit/afmodule.c | 574 + ThirdParty/freetype/src/autofit/afmodule.h | 58 + ThirdParty/freetype/src/autofit/afranges.c | 1033 ++ ThirdParty/freetype/src/autofit/afranges.h | 47 + ThirdParty/freetype/src/autofit/afscript.h | 390 + ThirdParty/freetype/src/autofit/afshaper.c | 676 + ThirdParty/freetype/src/autofit/afshaper.h | 72 + ThirdParty/freetype/src/autofit/afstyles.h | 475 + ThirdParty/freetype/src/autofit/aftypes.h | 573 + ThirdParty/freetype/src/autofit/afwarp.c | 373 + ThirdParty/freetype/src/autofit/afwarp.h | 66 + ThirdParty/freetype/src/autofit/afwrtsys.h | 52 + ThirdParty/freetype/src/autofit/autofit.c | 38 + ThirdParty/freetype/src/autofit/module.mk | 23 + ThirdParty/freetype/src/autofit/rules.mk | 88 + ThirdParty/freetype/src/base/Jamfile | 90 + ThirdParty/freetype/src/base/ftadvanc.c | 175 + ThirdParty/freetype/src/base/ftbase.c | 42 + ThirdParty/freetype/src/base/ftbase.h | 78 + ThirdParty/freetype/src/base/ftbbox.c | 531 + ThirdParty/freetype/src/base/ftbdf.c | 91 + ThirdParty/freetype/src/base/ftbitmap.c | 1170 ++ ThirdParty/freetype/src/base/ftcalc.c | 1089 ++ ThirdParty/freetype/src/base/ftcid.c | 118 + ThirdParty/freetype/src/base/ftcolor.c | 157 + ThirdParty/freetype/src/base/ftdbgmem.c | 999 ++ ThirdParty/freetype/src/base/ftdebug.c | 319 + ThirdParty/freetype/src/base/fterrors.c | 45 + ThirdParty/freetype/src/base/ftfntfmt.c | 55 + ThirdParty/freetype/src/base/ftfstype.c | 62 + ThirdParty/freetype/src/base/ftgasp.c | 61 + ThirdParty/freetype/src/base/ftgloadr.c | 364 + ThirdParty/freetype/src/base/ftglyph.c | 656 + ThirdParty/freetype/src/base/ftgxval.c | 142 + ThirdParty/freetype/src/base/fthash.c | 339 + ThirdParty/freetype/src/base/ftinit.c | 252 + ThirdParty/freetype/src/base/ftlcdfil.c | 438 + ThirdParty/freetype/src/base/ftmac.c | 1090 ++ ThirdParty/freetype/src/base/ftmm.c | 569 + ThirdParty/freetype/src/base/ftobjs.c | 5550 ++++++ ThirdParty/freetype/src/base/ftotval.c | 91 + ThirdParty/freetype/src/base/ftoutln.c | 1097 ++ ThirdParty/freetype/src/base/ftpatent.c | 51 + ThirdParty/freetype/src/base/ftpfr.c | 153 + ThirdParty/freetype/src/base/ftpsprop.c | 285 + ThirdParty/freetype/src/base/ftrfork.c | 943 + ThirdParty/freetype/src/base/ftsnames.c | 186 + ThirdParty/freetype/src/base/ftstream.c | 868 + ThirdParty/freetype/src/base/ftstroke.c | 2455 +++ ThirdParty/freetype/src/base/ftsynth.c | 163 + ThirdParty/freetype/src/base/ftsystem.c | 333 + ThirdParty/freetype/src/base/fttrigon.c | 518 + ThirdParty/freetype/src/base/fttype1.c | 127 + ThirdParty/freetype/src/base/ftutil.c | 443 + ThirdParty/freetype/src/base/ftver.rc | 61 + ThirdParty/freetype/src/base/ftwinfnt.c | 53 + ThirdParty/freetype/src/base/md5.c | 291 + ThirdParty/freetype/src/base/md5.h | 45 + ThirdParty/freetype/src/base/rules.mk | 108 + ThirdParty/freetype/src/bdf/Jamfile | 31 + ThirdParty/freetype/src/bdf/README | 148 + ThirdParty/freetype/src/bdf/bdf.c | 35 + ThirdParty/freetype/src/bdf/bdf.h | 258 + ThirdParty/freetype/src/bdf/bdfdrivr.c | 1017 ++ ThirdParty/freetype/src/bdf/bdfdrivr.h | 73 + ThirdParty/freetype/src/bdf/bdferror.h | 45 + ThirdParty/freetype/src/bdf/bdflib.c | 2416 +++ ThirdParty/freetype/src/bdf/module.mk | 34 + ThirdParty/freetype/src/bdf/rules.mk | 84 + ThirdParty/freetype/src/bzip2/Jamfile | 18 + ThirdParty/freetype/src/bzip2/ftbzip2.c | 521 + ThirdParty/freetype/src/bzip2/rules.mk | 64 + ThirdParty/freetype/src/cache/Jamfile | 37 + ThirdParty/freetype/src/cache/ftcache.c | 32 + ThirdParty/freetype/src/cache/ftcbasic.c | 632 + ThirdParty/freetype/src/cache/ftccache.c | 621 + ThirdParty/freetype/src/cache/ftccache.h | 352 + ThirdParty/freetype/src/cache/ftccback.h | 92 + ThirdParty/freetype/src/cache/ftccmap.c | 327 + ThirdParty/freetype/src/cache/ftcerror.h | 42 + ThirdParty/freetype/src/cache/ftcglyph.c | 219 + ThirdParty/freetype/src/cache/ftcglyph.h | 329 + ThirdParty/freetype/src/cache/ftcimage.c | 164 + ThirdParty/freetype/src/cache/ftcimage.h | 107 + ThirdParty/freetype/src/cache/ftcmanag.c | 700 + ThirdParty/freetype/src/cache/ftcmanag.h | 176 + ThirdParty/freetype/src/cache/ftcmru.c | 357 + ThirdParty/freetype/src/cache/ftcmru.h | 248 + ThirdParty/freetype/src/cache/ftcsbits.c | 423 + ThirdParty/freetype/src/cache/ftcsbits.h | 103 + ThirdParty/freetype/src/cache/rules.mk | 85 + ThirdParty/freetype/src/cff/Jamfile | 36 + ThirdParty/freetype/src/cff/cff.c | 29 + ThirdParty/freetype/src/cff/cffcmap.c | 232 + ThirdParty/freetype/src/cff/cffcmap.h | 67 + ThirdParty/freetype/src/cff/cffdrivr.c | 1165 ++ ThirdParty/freetype/src/cff/cffdrivr.h | 36 + ThirdParty/freetype/src/cff/cfferrs.h | 42 + ThirdParty/freetype/src/cff/cffgload.c | 683 + ThirdParty/freetype/src/cff/cffgload.h | 63 + ThirdParty/freetype/src/cff/cffload.c | 2571 +++ ThirdParty/freetype/src/cff/cffload.h | 125 + ThirdParty/freetype/src/cff/cffobjs.c | 1206 ++ ThirdParty/freetype/src/cff/cffobjs.h | 85 + ThirdParty/freetype/src/cff/cffparse.c | 1559 ++ ThirdParty/freetype/src/cff/cffparse.h | 136 + ThirdParty/freetype/src/cff/cfftoken.h | 150 + ThirdParty/freetype/src/cff/module.mk | 23 + ThirdParty/freetype/src/cff/rules.mk | 75 + ThirdParty/freetype/src/cid/Jamfile | 34 + ThirdParty/freetype/src/cid/ciderrs.h | 41 + ThirdParty/freetype/src/cid/cidgload.c | 530 + ThirdParty/freetype/src/cid/cidgload.h | 51 + ThirdParty/freetype/src/cid/cidload.c | 941 + ThirdParty/freetype/src/cid/cidload.h | 53 + ThirdParty/freetype/src/cid/cidobjs.c | 534 + ThirdParty/freetype/src/cid/cidobjs.h | 154 + ThirdParty/freetype/src/cid/cidparse.c | 277 + ThirdParty/freetype/src/cid/cidparse.h | 131 + ThirdParty/freetype/src/cid/cidriver.c | 256 + ThirdParty/freetype/src/cid/cidriver.h | 37 + ThirdParty/freetype/src/cid/cidtoken.h | 115 + ThirdParty/freetype/src/cid/module.mk | 23 + ThirdParty/freetype/src/cid/rules.mk | 73 + ThirdParty/freetype/src/cid/type1cid.c | 29 + ThirdParty/freetype/src/gxvalid/Jamfile | 52 + ThirdParty/freetype/src/gxvalid/README | 532 + ThirdParty/freetype/src/gxvalid/gxvalid.c | 47 + ThirdParty/freetype/src/gxvalid/gxvalid.h | 108 + ThirdParty/freetype/src/gxvalid/gxvbsln.c | 334 + ThirdParty/freetype/src/gxvalid/gxvcommn.c | 1746 ++ ThirdParty/freetype/src/gxvalid/gxvcommn.h | 582 + ThirdParty/freetype/src/gxvalid/gxverror.h | 51 + ThirdParty/freetype/src/gxvalid/gxvfeat.c | 339 + ThirdParty/freetype/src/gxvalid/gxvfeat.h | 173 + ThirdParty/freetype/src/gxvalid/gxvfgen.c | 483 + ThirdParty/freetype/src/gxvalid/gxvjust.c | 721 + ThirdParty/freetype/src/gxvalid/gxvkern.c | 920 + ThirdParty/freetype/src/gxvalid/gxvlcar.c | 224 + ThirdParty/freetype/src/gxvalid/gxvmod.c | 285 + ThirdParty/freetype/src/gxvalid/gxvmod.h | 47 + ThirdParty/freetype/src/gxvalid/gxvmort.c | 301 + ThirdParty/freetype/src/gxvalid/gxvmort.h | 94 + ThirdParty/freetype/src/gxvalid/gxvmort0.c | 152 + ThirdParty/freetype/src/gxvalid/gxvmort1.c | 260 + ThirdParty/freetype/src/gxvalid/gxvmort2.c | 312 + ThirdParty/freetype/src/gxvalid/gxvmort4.c | 126 + ThirdParty/freetype/src/gxvalid/gxvmort5.c | 234 + ThirdParty/freetype/src/gxvalid/gxvmorx.c | 199 + ThirdParty/freetype/src/gxvalid/gxvmorx.h | 68 + ThirdParty/freetype/src/gxvalid/gxvmorx0.c | 112 + ThirdParty/freetype/src/gxvalid/gxvmorx1.c | 278 + ThirdParty/freetype/src/gxvalid/gxvmorx2.c | 331 + ThirdParty/freetype/src/gxvalid/gxvmorx4.c | 56 + ThirdParty/freetype/src/gxvalid/gxvmorx5.c | 226 + ThirdParty/freetype/src/gxvalid/gxvopbd.c | 218 + ThirdParty/freetype/src/gxvalid/gxvprop.c | 330 + ThirdParty/freetype/src/gxvalid/gxvtrak.c | 288 + ThirdParty/freetype/src/gxvalid/module.mk | 23 + ThirdParty/freetype/src/gxvalid/rules.mk | 98 + ThirdParty/freetype/src/gzip/Jamfile | 16 + ThirdParty/freetype/src/gzip/adler32.c | 48 + ThirdParty/freetype/src/gzip/ftgzip.c | 812 + ThirdParty/freetype/src/gzip/ftzconf.h | 284 + ThirdParty/freetype/src/gzip/infblock.c | 387 + ThirdParty/freetype/src/gzip/infblock.h | 36 + ThirdParty/freetype/src/gzip/infcodes.c | 250 + ThirdParty/freetype/src/gzip/infcodes.h | 31 + ThirdParty/freetype/src/gzip/inffixed.h | 151 + ThirdParty/freetype/src/gzip/inflate.c | 273 + ThirdParty/freetype/src/gzip/inftrees.c | 468 + ThirdParty/freetype/src/gzip/inftrees.h | 63 + ThirdParty/freetype/src/gzip/infutil.c | 86 + ThirdParty/freetype/src/gzip/infutil.h | 98 + ThirdParty/freetype/src/gzip/rules.mk | 83 + ThirdParty/freetype/src/gzip/zlib.h | 830 + ThirdParty/freetype/src/gzip/zutil.c | 181 + ThirdParty/freetype/src/gzip/zutil.h | 215 + ThirdParty/freetype/src/lzw/Jamfile | 16 + ThirdParty/freetype/src/lzw/ftlzw.c | 416 + ThirdParty/freetype/src/lzw/ftzopen.c | 424 + ThirdParty/freetype/src/lzw/ftzopen.h | 172 + ThirdParty/freetype/src/lzw/rules.mk | 72 + ThirdParty/freetype/src/otvalid/Jamfile | 37 + ThirdParty/freetype/src/otvalid/module.mk | 23 + ThirdParty/freetype/src/otvalid/otvalid.c | 32 + ThirdParty/freetype/src/otvalid/otvalid.h | 78 + ThirdParty/freetype/src/otvalid/otvbase.c | 345 + ThirdParty/freetype/src/otvalid/otvcommn.c | 1096 ++ ThirdParty/freetype/src/otvalid/otvcommn.h | 467 + ThirdParty/freetype/src/otvalid/otverror.h | 42 + ThirdParty/freetype/src/otvalid/otvgdef.c | 303 + ThirdParty/freetype/src/otvalid/otvgpos.c | 1051 ++ ThirdParty/freetype/src/otvalid/otvgpos.h | 36 + ThirdParty/freetype/src/otvalid/otvgsub.c | 617 + ThirdParty/freetype/src/otvalid/otvjstf.c | 259 + ThirdParty/freetype/src/otvalid/otvmath.c | 453 + ThirdParty/freetype/src/otvalid/otvmod.c | 282 + ThirdParty/freetype/src/otvalid/otvmod.h | 39 + ThirdParty/freetype/src/otvalid/rules.mk | 81 + ThirdParty/freetype/src/pcf/Jamfile | 32 + ThirdParty/freetype/src/pcf/README | 96 + ThirdParty/freetype/src/pcf/module.mk | 34 + ThirdParty/freetype/src/pcf/pcf.c | 36 + ThirdParty/freetype/src/pcf/pcf.h | 251 + ThirdParty/freetype/src/pcf/pcfdrivr.c | 848 + ThirdParty/freetype/src/pcf/pcfdrivr.h | 45 + ThirdParty/freetype/src/pcf/pcferror.h | 41 + ThirdParty/freetype/src/pcf/pcfread.c | 1732 ++ ThirdParty/freetype/src/pcf/pcfread.h | 45 + ThirdParty/freetype/src/pcf/pcfutil.c | 104 + ThirdParty/freetype/src/pcf/pcfutil.h | 55 + ThirdParty/freetype/src/pcf/rules.mk | 82 + ThirdParty/freetype/src/pfr/Jamfile | 35 + ThirdParty/freetype/src/pfr/module.mk | 23 + ThirdParty/freetype/src/pfr/pfr.c | 30 + ThirdParty/freetype/src/pfr/pfrcmap.c | 177 + ThirdParty/freetype/src/pfr/pfrcmap.h | 46 + ThirdParty/freetype/src/pfr/pfrdrivr.c | 213 + ThirdParty/freetype/src/pfr/pfrdrivr.h | 37 + ThirdParty/freetype/src/pfr/pfrerror.h | 41 + ThirdParty/freetype/src/pfr/pfrgload.c | 851 + ThirdParty/freetype/src/pfr/pfrgload.h | 49 + ThirdParty/freetype/src/pfr/pfrload.c | 1049 ++ ThirdParty/freetype/src/pfr/pfrload.h | 123 + ThirdParty/freetype/src/pfr/pfrobjs.c | 600 + ThirdParty/freetype/src/pfr/pfrobjs.h | 96 + ThirdParty/freetype/src/pfr/pfrsbit.c | 808 + ThirdParty/freetype/src/pfr/pfrsbit.h | 37 + ThirdParty/freetype/src/pfr/pfrtypes.h | 332 + ThirdParty/freetype/src/pfr/rules.mk | 76 + ThirdParty/freetype/src/psaux/Jamfile | 45 + ThirdParty/freetype/src/psaux/afmparse.c | 986 ++ ThirdParty/freetype/src/psaux/afmparse.h | 89 + ThirdParty/freetype/src/psaux/cffdecode.c | 2420 +++ ThirdParty/freetype/src/psaux/cffdecode.h | 64 + ThirdParty/freetype/src/psaux/module.mk | 23 + ThirdParty/freetype/src/psaux/psarrst.c | 241 + ThirdParty/freetype/src/psaux/psarrst.h | 100 + ThirdParty/freetype/src/psaux/psaux.c | 41 + ThirdParty/freetype/src/psaux/psauxerr.h | 42 + ThirdParty/freetype/src/psaux/psauxmod.c | 191 + ThirdParty/freetype/src/psaux/psauxmod.h | 47 + ThirdParty/freetype/src/psaux/psblues.c | 582 + ThirdParty/freetype/src/psaux/psblues.h | 185 + ThirdParty/freetype/src/psaux/psconv.c | 611 + ThirdParty/freetype/src/psaux/psconv.h | 71 + ThirdParty/freetype/src/psaux/pserror.c | 52 + ThirdParty/freetype/src/psaux/pserror.h | 119 + ThirdParty/freetype/src/psaux/psfixed.h | 95 + ThirdParty/freetype/src/psaux/psfont.c | 567 + ThirdParty/freetype/src/psaux/psfont.h | 134 + ThirdParty/freetype/src/psaux/psft.c | 897 + ThirdParty/freetype/src/psaux/psft.h | 167 + ThirdParty/freetype/src/psaux/psglue.h | 144 + ThirdParty/freetype/src/psaux/pshints.c | 1936 +++ ThirdParty/freetype/src/psaux/pshints.h | 288 + ThirdParty/freetype/src/psaux/psintrp.c | 3044 ++++ ThirdParty/freetype/src/psaux/psintrp.h | 83 + ThirdParty/freetype/src/psaux/psobjs.c | 2599 +++ ThirdParty/freetype/src/psaux/psobjs.h | 313 + ThirdParty/freetype/src/psaux/psread.c | 112 + ThirdParty/freetype/src/psaux/psread.h | 68 + ThirdParty/freetype/src/psaux/psstack.c | 331 + ThirdParty/freetype/src/psaux/psstack.h | 121 + ThirdParty/freetype/src/psaux/pstypes.h | 78 + ThirdParty/freetype/src/psaux/rules.mk | 89 + ThirdParty/freetype/src/psaux/t1cmap.c | 374 + ThirdParty/freetype/src/psaux/t1cmap.h | 105 + ThirdParty/freetype/src/psaux/t1decode.c | 2011 +++ ThirdParty/freetype/src/psaux/t1decode.h | 74 + ThirdParty/freetype/src/pshinter/Jamfile | 34 + ThirdParty/freetype/src/pshinter/module.mk | 23 + ThirdParty/freetype/src/pshinter/pshalgo.c | 2195 +++ ThirdParty/freetype/src/pshinter/pshalgo.h | 241 + ThirdParty/freetype/src/pshinter/pshglob.c | 796 + ThirdParty/freetype/src/pshinter/pshglob.h | 196 + ThirdParty/freetype/src/pshinter/pshinter.c | 28 + ThirdParty/freetype/src/pshinter/pshmod.c | 120 + ThirdParty/freetype/src/pshinter/pshmod.h | 39 + ThirdParty/freetype/src/pshinter/pshnterr.h | 41 + ThirdParty/freetype/src/pshinter/pshrec.c | 1220 ++ ThirdParty/freetype/src/pshinter/pshrec.h | 172 + ThirdParty/freetype/src/pshinter/rules.mk | 75 + ThirdParty/freetype/src/psnames/Jamfile | 31 + ThirdParty/freetype/src/psnames/module.mk | 23 + ThirdParty/freetype/src/psnames/psmodule.c | 621 + ThirdParty/freetype/src/psnames/psmodule.h | 38 + ThirdParty/freetype/src/psnames/psnamerr.h | 42 + ThirdParty/freetype/src/psnames/psnames.c | 25 + ThirdParty/freetype/src/psnames/pstables.h | 4238 +++++ ThirdParty/freetype/src/psnames/rules.mk | 73 + ThirdParty/freetype/src/raster/Jamfile | 32 + ThirdParty/freetype/src/raster/ftmisc.h | 142 + ThirdParty/freetype/src/raster/ftraster.c | 3322 ++++ ThirdParty/freetype/src/raster/ftraster.h | 46 + ThirdParty/freetype/src/raster/ftrend1.c | 207 + ThirdParty/freetype/src/raster/ftrend1.h | 38 + ThirdParty/freetype/src/raster/module.mk | 23 + ThirdParty/freetype/src/raster/raster.c | 26 + ThirdParty/freetype/src/raster/rasterrs.h | 42 + ThirdParty/freetype/src/raster/rules.mk | 72 + ThirdParty/freetype/src/sfnt/Jamfile | 42 + ThirdParty/freetype/src/sfnt/module.mk | 23 + ThirdParty/freetype/src/sfnt/pngshim.c | 456 + ThirdParty/freetype/src/sfnt/pngshim.h | 51 + ThirdParty/freetype/src/sfnt/rules.mk | 82 + ThirdParty/freetype/src/sfnt/sfdriver.c | 1305 ++ ThirdParty/freetype/src/sfnt/sfdriver.h | 36 + ThirdParty/freetype/src/sfnt/sferrors.h | 41 + ThirdParty/freetype/src/sfnt/sfnt.c | 37 + ThirdParty/freetype/src/sfnt/sfobjs.c | 1843 ++ ThirdParty/freetype/src/sfnt/sfobjs.h | 59 + ThirdParty/freetype/src/sfnt/ttbdf.c | 257 + ThirdParty/freetype/src/sfnt/ttbdf.h | 50 + ThirdParty/freetype/src/sfnt/ttcmap.c | 3885 +++++ ThirdParty/freetype/src/sfnt/ttcmap.h | 122 + ThirdParty/freetype/src/sfnt/ttcmapc.h | 56 + ThirdParty/freetype/src/sfnt/ttcolr.c | 451 + ThirdParty/freetype/src/sfnt/ttcolr.h | 58 + ThirdParty/freetype/src/sfnt/ttcpal.c | 311 + ThirdParty/freetype/src/sfnt/ttcpal.h | 49 + ThirdParty/freetype/src/sfnt/ttkern.c | 311 + ThirdParty/freetype/src/sfnt/ttkern.h | 52 + ThirdParty/freetype/src/sfnt/ttload.c | 1458 ++ ThirdParty/freetype/src/sfnt/ttload.h | 112 + ThirdParty/freetype/src/sfnt/ttmtx.c | 337 + ThirdParty/freetype/src/sfnt/ttmtx.h | 55 + ThirdParty/freetype/src/sfnt/ttpost.c | 578 + ThirdParty/freetype/src/sfnt/ttpost.h | 46 + ThirdParty/freetype/src/sfnt/ttsbit.c | 1682 ++ ThirdParty/freetype/src/sfnt/ttsbit.h | 63 + ThirdParty/freetype/src/smooth/Jamfile | 32 + ThirdParty/freetype/src/smooth/ftgrays.c | 1951 +++ ThirdParty/freetype/src/smooth/ftgrays.h | 57 + ThirdParty/freetype/src/smooth/ftsmerrs.h | 42 + ThirdParty/freetype/src/smooth/ftsmooth.c | 503 + ThirdParty/freetype/src/smooth/ftsmooth.h | 42 + ThirdParty/freetype/src/smooth/module.mk | 27 + ThirdParty/freetype/src/smooth/rules.mk | 73 + ThirdParty/freetype/src/smooth/smooth.c | 26 + ThirdParty/freetype/src/tools/Jamfile | 5 + ThirdParty/freetype/src/tools/afblue.pl | 551 + ThirdParty/freetype/src/tools/apinames.c | 481 + ThirdParty/freetype/src/tools/chktrcmp.py | 114 + ThirdParty/freetype/src/tools/cordic.py | 33 + ThirdParty/freetype/src/tools/ftrandom/Makefile | 45 + ThirdParty/freetype/src/tools/ftrandom/README | 69 + ThirdParty/freetype/src/tools/ftrandom/ftrandom.c | 720 + ThirdParty/freetype/src/tools/glnames.py | 5540 ++++++ ThirdParty/freetype/src/tools/no-copyright | 65 + ThirdParty/freetype/src/tools/test_afm.c | 157 + ThirdParty/freetype/src/tools/test_bbox.c | 188 + ThirdParty/freetype/src/tools/test_trig.c | 258 + ThirdParty/freetype/src/tools/update-copyright | 14 + .../freetype/src/tools/update-copyright-year | 138 + ThirdParty/freetype/src/truetype/Jamfile | 37 + ThirdParty/freetype/src/truetype/module.mk | 23 + ThirdParty/freetype/src/truetype/rules.mk | 76 + ThirdParty/freetype/src/truetype/truetype.c | 31 + ThirdParty/freetype/src/truetype/ttdriver.c | 664 + ThirdParty/freetype/src/truetype/ttdriver.h | 36 + ThirdParty/freetype/src/truetype/tterrors.h | 42 + ThirdParty/freetype/src/truetype/ttgload.c | 2932 ++++ ThirdParty/freetype/src/truetype/ttgload.h | 62 + ThirdParty/freetype/src/truetype/ttgxvar.c | 4242 +++++ ThirdParty/freetype/src/truetype/ttgxvar.h | 453 + ThirdParty/freetype/src/truetype/ttinterp.c | 8617 +++++++++ ThirdParty/freetype/src/truetype/ttinterp.h | 541 + ThirdParty/freetype/src/truetype/ttobjs.c | 1468 ++ ThirdParty/freetype/src/truetype/ttobjs.h | 425 + ThirdParty/freetype/src/truetype/ttpload.c | 652 + ThirdParty/freetype/src/truetype/ttpload.h | 75 + ThirdParty/freetype/src/truetype/ttsubpix.c | 1014 ++ ThirdParty/freetype/src/truetype/ttsubpix.h | 111 + ThirdParty/freetype/src/type1/Jamfile | 35 + ThirdParty/freetype/src/type1/module.mk | 23 + ThirdParty/freetype/src/type1/rules.mk | 76 + ThirdParty/freetype/src/type1/t1afm.c | 415 + ThirdParty/freetype/src/type1/t1afm.h | 54 + ThirdParty/freetype/src/type1/t1driver.c | 798 + ThirdParty/freetype/src/type1/t1driver.h | 36 + ThirdParty/freetype/src/type1/t1errors.h | 41 + ThirdParty/freetype/src/type1/t1gload.c | 607 + ThirdParty/freetype/src/type1/t1gload.h | 53 + ThirdParty/freetype/src/type1/t1load.c | 2712 +++ ThirdParty/freetype/src/type1/t1load.h | 127 + ThirdParty/freetype/src/type1/t1objs.c | 654 + ThirdParty/freetype/src/type1/t1objs.h | 160 + ThirdParty/freetype/src/type1/t1parse.c | 525 + ThirdParty/freetype/src/type1/t1parse.h | 138 + ThirdParty/freetype/src/type1/t1tokens.h | 143 + ThirdParty/freetype/src/type1/type1.c | 30 + ThirdParty/freetype/src/type42/Jamfile | 32 + ThirdParty/freetype/src/type42/module.mk | 23 + ThirdParty/freetype/src/type42/rules.mk | 73 + ThirdParty/freetype/src/type42/t42drivr.c | 246 + ThirdParty/freetype/src/type42/t42drivr.h | 37 + ThirdParty/freetype/src/type42/t42error.h | 41 + ThirdParty/freetype/src/type42/t42objs.c | 690 + ThirdParty/freetype/src/type42/t42objs.h | 124 + ThirdParty/freetype/src/type42/t42parse.c | 1314 ++ ThirdParty/freetype/src/type42/t42parse.h | 91 + ThirdParty/freetype/src/type42/t42types.h | 57 + ThirdParty/freetype/src/type42/type42.c | 27 + ThirdParty/freetype/src/winfonts/Jamfile | 16 + ThirdParty/freetype/src/winfonts/fnterrs.h | 42 + ThirdParty/freetype/src/winfonts/module.mk | 23 + ThirdParty/freetype/src/winfonts/rules.mk | 68 + ThirdParty/freetype/src/winfonts/winfnt.c | 1200 ++ ThirdParty/freetype/src/winfonts/winfnt.h | 165 + ThirdParty/freetype/version.sed | 5 + ThirdParty/freetype/vms_make.com | 1286 ++ 794 files changed, 439049 insertions(+) create mode 100644 ThirdParty/freetype/CMakeLists.txt create mode 100644 ThirdParty/freetype/ChangeLog create mode 100644 ThirdParty/freetype/ChangeLog.20 create mode 100644 ThirdParty/freetype/ChangeLog.21 create mode 100644 ThirdParty/freetype/ChangeLog.22 create mode 100644 ThirdParty/freetype/ChangeLog.23 create mode 100644 ThirdParty/freetype/ChangeLog.24 create mode 100644 ThirdParty/freetype/ChangeLog.25 create mode 100644 ThirdParty/freetype/ChangeLog.26 create mode 100644 ThirdParty/freetype/ChangeLog.27 create mode 100644 ThirdParty/freetype/ChangeLog.28 create mode 100644 ThirdParty/freetype/Jamfile create mode 100644 ThirdParty/freetype/Jamrules create mode 100644 ThirdParty/freetype/Makefile create mode 100644 ThirdParty/freetype/README create mode 100644 ThirdParty/freetype/README.git create mode 100644 ThirdParty/freetype/autogen.sh create mode 100644 ThirdParty/freetype/builds/amiga/README create mode 100644 ThirdParty/freetype/builds/amiga/include/config/ftconfig.h create mode 100644 ThirdParty/freetype/builds/amiga/include/config/ftmodule.h create mode 100644 ThirdParty/freetype/builds/amiga/makefile create mode 100644 ThirdParty/freetype/builds/amiga/makefile.os4 create mode 100644 ThirdParty/freetype/builds/amiga/smakefile create mode 100644 ThirdParty/freetype/builds/amiga/src/base/ftdebug.c create mode 100644 ThirdParty/freetype/builds/amiga/src/base/ftsystem.c create mode 100644 ThirdParty/freetype/builds/ansi/ansi-def.mk create mode 100644 ThirdParty/freetype/builds/ansi/ansi.mk create mode 100644 ThirdParty/freetype/builds/atari/ATARI.H create mode 100644 ThirdParty/freetype/builds/atari/FNames.SIC create mode 100644 ThirdParty/freetype/builds/atari/FREETYPE.PRJ create mode 100644 ThirdParty/freetype/builds/atari/README.TXT create mode 100644 ThirdParty/freetype/builds/atari/deflinejoiner.awk create mode 100644 ThirdParty/freetype/builds/atari/gen-purec-patch.sh create mode 100644 ThirdParty/freetype/builds/beos/beos-def.mk create mode 100644 ThirdParty/freetype/builds/beos/beos.mk create mode 100644 ThirdParty/freetype/builds/beos/detect.mk create mode 100644 ThirdParty/freetype/builds/cmake/FindHarfBuzz.cmake create mode 100644 ThirdParty/freetype/builds/cmake/iOS.cmake create mode 100644 ThirdParty/freetype/builds/cmake/testbuild.sh create mode 100644 ThirdParty/freetype/builds/compiler/ansi-cc.mk create mode 100644 ThirdParty/freetype/builds/compiler/bcc-dev.mk create mode 100644 ThirdParty/freetype/builds/compiler/bcc.mk create mode 100644 ThirdParty/freetype/builds/compiler/emx.mk create mode 100644 ThirdParty/freetype/builds/compiler/gcc-dev.mk create mode 100644 ThirdParty/freetype/builds/compiler/gcc.mk create mode 100644 ThirdParty/freetype/builds/compiler/intelc.mk create mode 100644 ThirdParty/freetype/builds/compiler/unix-lcc.mk create mode 100644 ThirdParty/freetype/builds/compiler/visualage.mk create mode 100644 ThirdParty/freetype/builds/compiler/visualc.mk create mode 100644 ThirdParty/freetype/builds/compiler/watcom.mk create mode 100644 ThirdParty/freetype/builds/compiler/win-lcc.mk create mode 100644 ThirdParty/freetype/builds/detect.mk create mode 100644 ThirdParty/freetype/builds/dos/detect.mk create mode 100644 ThirdParty/freetype/builds/dos/dos-def.mk create mode 100644 ThirdParty/freetype/builds/dos/dos-emx.mk create mode 100644 ThirdParty/freetype/builds/dos/dos-gcc.mk create mode 100644 ThirdParty/freetype/builds/dos/dos-wat.mk create mode 100644 ThirdParty/freetype/builds/exports.mk create mode 100644 ThirdParty/freetype/builds/freetype.mk create mode 100644 ThirdParty/freetype/builds/link_dos.mk create mode 100644 ThirdParty/freetype/builds/link_std.mk create mode 100644 ThirdParty/freetype/builds/mac/FreeType.m68k_cfm.make.txt create mode 100644 ThirdParty/freetype/builds/mac/FreeType.m68k_far.make.txt create mode 100644 ThirdParty/freetype/builds/mac/FreeType.ppc_carbon.make.txt create mode 100644 ThirdParty/freetype/builds/mac/FreeType.ppc_classic.make.txt create mode 100644 ThirdParty/freetype/builds/mac/README create mode 100644 ThirdParty/freetype/builds/mac/ascii2mpw.py create mode 100644 ThirdParty/freetype/builds/mac/freetype-Info.plist create mode 100644 ThirdParty/freetype/builds/mac/ftlib.prj.xml create mode 100644 ThirdParty/freetype/builds/mac/ftmac.c create mode 100644 ThirdParty/freetype/builds/modules.mk create mode 100644 ThirdParty/freetype/builds/os2/detect.mk create mode 100644 ThirdParty/freetype/builds/os2/os2-def.mk create mode 100644 ThirdParty/freetype/builds/os2/os2-dev.mk create mode 100644 ThirdParty/freetype/builds/os2/os2-gcc.mk create mode 100644 ThirdParty/freetype/builds/symbian/bld.inf create mode 100644 ThirdParty/freetype/builds/symbian/freetype.mmp create mode 100644 ThirdParty/freetype/builds/toplevel.mk create mode 100644 ThirdParty/freetype/builds/unix/aclocal.m4 create mode 100644 ThirdParty/freetype/builds/unix/config.guess create mode 100644 ThirdParty/freetype/builds/unix/config.sub create mode 100644 ThirdParty/freetype/builds/unix/configure create mode 100644 ThirdParty/freetype/builds/unix/configure.ac create mode 100644 ThirdParty/freetype/builds/unix/configure.raw create mode 100644 ThirdParty/freetype/builds/unix/detect.mk create mode 100644 ThirdParty/freetype/builds/unix/freetype-config.in create mode 100644 ThirdParty/freetype/builds/unix/freetype2.in create mode 100644 ThirdParty/freetype/builds/unix/freetype2.m4 create mode 100644 ThirdParty/freetype/builds/unix/ft-munmap.m4 create mode 100644 ThirdParty/freetype/builds/unix/ftconfig.in create mode 100644 ThirdParty/freetype/builds/unix/ftsystem.c create mode 100644 ThirdParty/freetype/builds/unix/install-sh create mode 100644 ThirdParty/freetype/builds/unix/install.mk create mode 100644 ThirdParty/freetype/builds/unix/ltmain.sh create mode 100644 ThirdParty/freetype/builds/unix/pkg.m4 create mode 100644 ThirdParty/freetype/builds/unix/unix-cc.in create mode 100644 ThirdParty/freetype/builds/unix/unix-def.in create mode 100644 ThirdParty/freetype/builds/unix/unix-dev.mk create mode 100644 ThirdParty/freetype/builds/unix/unix-lcc.mk create mode 100644 ThirdParty/freetype/builds/unix/unix.mk create mode 100644 ThirdParty/freetype/builds/unix/unixddef.mk create mode 100644 ThirdParty/freetype/builds/vms/ftconfig.h create mode 100644 ThirdParty/freetype/builds/vms/ftsystem.c create mode 100644 ThirdParty/freetype/builds/wince/ftdebug.c create mode 100644 ThirdParty/freetype/builds/wince/vc2005-ce/freetype.sln create mode 100644 ThirdParty/freetype/builds/wince/vc2005-ce/freetype.vcproj create mode 100644 ThirdParty/freetype/builds/wince/vc2005-ce/index.html create mode 100644 ThirdParty/freetype/builds/wince/vc2008-ce/freetype.sln create mode 100644 ThirdParty/freetype/builds/wince/vc2008-ce/freetype.vcproj create mode 100644 ThirdParty/freetype/builds/wince/vc2008-ce/index.html create mode 100644 ThirdParty/freetype/builds/windows/detect.mk create mode 100644 ThirdParty/freetype/builds/windows/ftdebug.c create mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.sln create mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.user.props create mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.vcxproj create mode 100644 ThirdParty/freetype/builds/windows/vc2010/freetype.vcxproj.filters create mode 100644 ThirdParty/freetype/builds/windows/vc2010/index.html create mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.dsp create mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.dsw create mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.sln create mode 100644 ThirdParty/freetype/builds/windows/visualc/freetype.vcproj create mode 100644 ThirdParty/freetype/builds/windows/visualc/index.html create mode 100644 ThirdParty/freetype/builds/windows/visualce/freetype.dsp create mode 100644 ThirdParty/freetype/builds/windows/visualce/freetype.dsw create mode 100644 ThirdParty/freetype/builds/windows/visualce/freetype.vcproj create mode 100644 ThirdParty/freetype/builds/windows/visualce/index.html create mode 100644 ThirdParty/freetype/builds/windows/w32-bcc.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-bccd.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-dev.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-gcc.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-icc.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-intl.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-lcc.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-mingw32.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-vcc.mk create mode 100644 ThirdParty/freetype/builds/windows/w32-wat.mk create mode 100644 ThirdParty/freetype/builds/windows/win32-def.mk create mode 100644 ThirdParty/freetype/configure create mode 100644 ThirdParty/freetype/devel/ft2build.h create mode 100644 ThirdParty/freetype/devel/ftoption.h create mode 100644 ThirdParty/freetype/docs/CHANGES create mode 100644 ThirdParty/freetype/docs/CMAKE create mode 100644 ThirdParty/freetype/docs/CUSTOMIZE create mode 100644 ThirdParty/freetype/docs/DEBUG create mode 100644 ThirdParty/freetype/docs/DOCGUIDE create mode 100644 ThirdParty/freetype/docs/FTL.TXT create mode 100644 ThirdParty/freetype/docs/GPLv2.TXT create mode 100644 ThirdParty/freetype/docs/INSTALL create mode 100644 ThirdParty/freetype/docs/INSTALL.ANY create mode 100644 ThirdParty/freetype/docs/INSTALL.CROSS create mode 100644 ThirdParty/freetype/docs/INSTALL.GNU create mode 100644 ThirdParty/freetype/docs/INSTALL.MAC create mode 100644 ThirdParty/freetype/docs/INSTALL.UNIX create mode 100644 ThirdParty/freetype/docs/INSTALL.VMS create mode 100644 ThirdParty/freetype/docs/LICENSE.TXT create mode 100644 ThirdParty/freetype/docs/MAKEPP create mode 100644 ThirdParty/freetype/docs/PROBLEMS create mode 100644 ThirdParty/freetype/docs/TODO create mode 100644 ThirdParty/freetype/docs/VERSIONS.TXT create mode 100644 ThirdParty/freetype/docs/formats.txt create mode 100644 ThirdParty/freetype/docs/freetype-config.1 create mode 100644 ThirdParty/freetype/docs/raster.txt create mode 100644 ThirdParty/freetype/docs/reference/README create mode 100644 ThirdParty/freetype/docs/reference/site/404.html create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/font-awesome.css create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/material-icons.css create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.ttf create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.woff create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.woff2 create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.ttf create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.woff create mode 100644 ThirdParty/freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.woff2 create mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/favicon.png create mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/icons/bitbucket.1b09e088.svg create mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/icons/github.f0b8504a.svg create mode 100644 ThirdParty/freetype/docs/reference/site/assets/images/icons/gitlab.6dd19c00.svg create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/application.d9aa80ab.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.da.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.de.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.du.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.es.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.fi.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.fr.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.hu.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.it.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.ja.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.jp.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.multi.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.nl.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.no.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.pt.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.ro.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.ru.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.stemmer.support.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.sv.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.th.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/lunr.tr.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/tinyseg.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/lunr/wordcut.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/javascripts/modernizr.1f0bcf2b.js create mode 100644 ThirdParty/freetype/docs/reference/site/assets/stylesheets/application-palette.224b79ff.css create mode 100644 ThirdParty/freetype/docs/reference/site/assets/stylesheets/application.982221ab.css create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-auto_hinter.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-base_interface.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-basic_types.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-bdf_fonts.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-bitmap_handling.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-bzip2.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-cache_subsystem.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-cff_driver.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-cid_fonts.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-color_management.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-computations.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-error_code_values.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-error_enumerations.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-font_formats.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-gasp_table.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-glyph_management.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-glyph_stroker.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-glyph_variants.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-gx_validation.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-gzip.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-header_file_macros.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-header_inclusion.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-incremental.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-index.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-layer_management.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-lcd_rendering.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-list_processing.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-lzw.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-mac_specific.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-module_management.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-multiple_masters.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-ot_validation.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-outline_processing.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-parameter_tags.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-pcf_driver.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-pfr_fonts.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-properties.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-quick_advance.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-raster.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-sfnt_names.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-sizes_management.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-system_interface.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-t1_cid_driver.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-truetype_engine.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-truetype_tables.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-tt_driver.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-type1_tables.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-user_allocation.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-version.html create mode 100644 ThirdParty/freetype/docs/reference/site/ft2-winfnt_fonts.html create mode 100644 ThirdParty/freetype/docs/reference/site/images/favico.ico create mode 100644 ThirdParty/freetype/docs/reference/site/index.html create mode 100644 ThirdParty/freetype/docs/reference/site/javascripts/extra.js create mode 100644 ThirdParty/freetype/docs/reference/site/search/search_index.json create mode 100644 ThirdParty/freetype/docs/reference/site/sitemap.xml create mode 100644 ThirdParty/freetype/docs/reference/site/sitemap.xml.gz create mode 100644 ThirdParty/freetype/docs/reference/site/stylesheets/extra.css create mode 100644 ThirdParty/freetype/docs/release create mode 100644 ThirdParty/freetype/include/freetype/config/ftconfig.h create mode 100644 ThirdParty/freetype/include/freetype/config/ftheader.h create mode 100644 ThirdParty/freetype/include/freetype/config/ftmodule.h create mode 100644 ThirdParty/freetype/include/freetype/config/ftoption.h create mode 100644 ThirdParty/freetype/include/freetype/config/ftstdlib.h create mode 100644 ThirdParty/freetype/include/freetype/freetype.h create mode 100644 ThirdParty/freetype/include/freetype/ftadvanc.h create mode 100644 ThirdParty/freetype/include/freetype/ftbbox.h create mode 100644 ThirdParty/freetype/include/freetype/ftbdf.h create mode 100644 ThirdParty/freetype/include/freetype/ftbitmap.h create mode 100644 ThirdParty/freetype/include/freetype/ftbzip2.h create mode 100644 ThirdParty/freetype/include/freetype/ftcache.h create mode 100644 ThirdParty/freetype/include/freetype/ftchapters.h create mode 100644 ThirdParty/freetype/include/freetype/ftcid.h create mode 100644 ThirdParty/freetype/include/freetype/ftcolor.h create mode 100644 ThirdParty/freetype/include/freetype/ftdriver.h create mode 100644 ThirdParty/freetype/include/freetype/fterrdef.h create mode 100644 ThirdParty/freetype/include/freetype/fterrors.h create mode 100644 ThirdParty/freetype/include/freetype/ftfntfmt.h create mode 100644 ThirdParty/freetype/include/freetype/ftgasp.h create mode 100644 ThirdParty/freetype/include/freetype/ftglyph.h create mode 100644 ThirdParty/freetype/include/freetype/ftgxval.h create mode 100644 ThirdParty/freetype/include/freetype/ftgzip.h create mode 100644 ThirdParty/freetype/include/freetype/ftimage.h create mode 100644 ThirdParty/freetype/include/freetype/ftincrem.h create mode 100644 ThirdParty/freetype/include/freetype/ftlcdfil.h create mode 100644 ThirdParty/freetype/include/freetype/ftlist.h create mode 100644 ThirdParty/freetype/include/freetype/ftlzw.h create mode 100644 ThirdParty/freetype/include/freetype/ftmac.h create mode 100644 ThirdParty/freetype/include/freetype/ftmm.h create mode 100644 ThirdParty/freetype/include/freetype/ftmodapi.h create mode 100644 ThirdParty/freetype/include/freetype/ftmoderr.h create mode 100644 ThirdParty/freetype/include/freetype/ftotval.h create mode 100644 ThirdParty/freetype/include/freetype/ftoutln.h create mode 100644 ThirdParty/freetype/include/freetype/ftparams.h create mode 100644 ThirdParty/freetype/include/freetype/ftpfr.h create mode 100644 ThirdParty/freetype/include/freetype/ftrender.h create mode 100644 ThirdParty/freetype/include/freetype/ftsizes.h create mode 100644 ThirdParty/freetype/include/freetype/ftsnames.h create mode 100644 ThirdParty/freetype/include/freetype/ftstroke.h create mode 100644 ThirdParty/freetype/include/freetype/ftsynth.h create mode 100644 ThirdParty/freetype/include/freetype/ftsystem.h create mode 100644 ThirdParty/freetype/include/freetype/fttrigon.h create mode 100644 ThirdParty/freetype/include/freetype/fttypes.h create mode 100644 ThirdParty/freetype/include/freetype/ftwinfnt.h create mode 100644 ThirdParty/freetype/include/freetype/internal/autohint.h create mode 100644 ThirdParty/freetype/include/freetype/internal/cffotypes.h create mode 100644 ThirdParty/freetype/include/freetype/internal/cfftypes.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftcalc.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftdebug.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftdrv.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftgloadr.h create mode 100644 ThirdParty/freetype/include/freetype/internal/fthash.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftmemory.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftobjs.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftpsprop.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftrfork.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftserv.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftstream.h create mode 100644 ThirdParty/freetype/include/freetype/internal/fttrace.h create mode 100644 ThirdParty/freetype/include/freetype/internal/ftvalid.h create mode 100644 ThirdParty/freetype/include/freetype/internal/internal.h create mode 100644 ThirdParty/freetype/include/freetype/internal/psaux.h create mode 100644 ThirdParty/freetype/include/freetype/internal/pshints.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svbdf.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svcfftl.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svcid.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svfntfmt.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svgldict.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svgxval.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svkern.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svmetric.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svmm.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svotval.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpfr.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpostnm.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svprop.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpscmap.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svpsinfo.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svsfnt.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svttcmap.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svtteng.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svttglyf.h create mode 100644 ThirdParty/freetype/include/freetype/internal/services/svwinfnt.h create mode 100644 ThirdParty/freetype/include/freetype/internal/sfnt.h create mode 100644 ThirdParty/freetype/include/freetype/internal/t1types.h create mode 100644 ThirdParty/freetype/include/freetype/internal/tttypes.h create mode 100644 ThirdParty/freetype/include/freetype/t1tables.h create mode 100644 ThirdParty/freetype/include/freetype/ttnameid.h create mode 100644 ThirdParty/freetype/include/freetype/tttables.h create mode 100644 ThirdParty/freetype/include/freetype/tttags.h create mode 100644 ThirdParty/freetype/include/ft2build.h create mode 100644 ThirdParty/freetype/modules.cfg create mode 100644 ThirdParty/freetype/objs/README create mode 100644 ThirdParty/freetype/src/Jamfile create mode 100644 ThirdParty/freetype/src/autofit/Jamfile create mode 100644 ThirdParty/freetype/src/autofit/afangles.c create mode 100644 ThirdParty/freetype/src/autofit/afangles.h create mode 100644 ThirdParty/freetype/src/autofit/afblue.c create mode 100644 ThirdParty/freetype/src/autofit/afblue.cin create mode 100644 ThirdParty/freetype/src/autofit/afblue.dat create mode 100644 ThirdParty/freetype/src/autofit/afblue.h create mode 100644 ThirdParty/freetype/src/autofit/afblue.hin create mode 100644 ThirdParty/freetype/src/autofit/afcjk.c create mode 100644 ThirdParty/freetype/src/autofit/afcjk.h create mode 100644 ThirdParty/freetype/src/autofit/afcover.h create mode 100644 ThirdParty/freetype/src/autofit/afdummy.c create mode 100644 ThirdParty/freetype/src/autofit/afdummy.h create mode 100644 ThirdParty/freetype/src/autofit/aferrors.h create mode 100644 ThirdParty/freetype/src/autofit/afglobal.c create mode 100644 ThirdParty/freetype/src/autofit/afglobal.h create mode 100644 ThirdParty/freetype/src/autofit/afhints.c create mode 100644 ThirdParty/freetype/src/autofit/afhints.h create mode 100644 ThirdParty/freetype/src/autofit/afindic.c create mode 100644 ThirdParty/freetype/src/autofit/afindic.h create mode 100644 ThirdParty/freetype/src/autofit/aflatin.c create mode 100644 ThirdParty/freetype/src/autofit/aflatin.h create mode 100644 ThirdParty/freetype/src/autofit/aflatin2.c create mode 100644 ThirdParty/freetype/src/autofit/aflatin2.h create mode 100644 ThirdParty/freetype/src/autofit/afloader.c create mode 100644 ThirdParty/freetype/src/autofit/afloader.h create mode 100644 ThirdParty/freetype/src/autofit/afmodule.c create mode 100644 ThirdParty/freetype/src/autofit/afmodule.h create mode 100644 ThirdParty/freetype/src/autofit/afranges.c create mode 100644 ThirdParty/freetype/src/autofit/afranges.h create mode 100644 ThirdParty/freetype/src/autofit/afscript.h create mode 100644 ThirdParty/freetype/src/autofit/afshaper.c create mode 100644 ThirdParty/freetype/src/autofit/afshaper.h create mode 100644 ThirdParty/freetype/src/autofit/afstyles.h create mode 100644 ThirdParty/freetype/src/autofit/aftypes.h create mode 100644 ThirdParty/freetype/src/autofit/afwarp.c create mode 100644 ThirdParty/freetype/src/autofit/afwarp.h create mode 100644 ThirdParty/freetype/src/autofit/afwrtsys.h create mode 100644 ThirdParty/freetype/src/autofit/autofit.c create mode 100644 ThirdParty/freetype/src/autofit/module.mk create mode 100644 ThirdParty/freetype/src/autofit/rules.mk create mode 100644 ThirdParty/freetype/src/base/Jamfile create mode 100644 ThirdParty/freetype/src/base/ftadvanc.c create mode 100644 ThirdParty/freetype/src/base/ftbase.c create mode 100644 ThirdParty/freetype/src/base/ftbase.h create mode 100644 ThirdParty/freetype/src/base/ftbbox.c create mode 100644 ThirdParty/freetype/src/base/ftbdf.c create mode 100644 ThirdParty/freetype/src/base/ftbitmap.c create mode 100644 ThirdParty/freetype/src/base/ftcalc.c create mode 100644 ThirdParty/freetype/src/base/ftcid.c create mode 100644 ThirdParty/freetype/src/base/ftcolor.c create mode 100644 ThirdParty/freetype/src/base/ftdbgmem.c create mode 100644 ThirdParty/freetype/src/base/ftdebug.c create mode 100644 ThirdParty/freetype/src/base/fterrors.c create mode 100644 ThirdParty/freetype/src/base/ftfntfmt.c create mode 100644 ThirdParty/freetype/src/base/ftfstype.c create mode 100644 ThirdParty/freetype/src/base/ftgasp.c create mode 100644 ThirdParty/freetype/src/base/ftgloadr.c create mode 100644 ThirdParty/freetype/src/base/ftglyph.c create mode 100644 ThirdParty/freetype/src/base/ftgxval.c create mode 100644 ThirdParty/freetype/src/base/fthash.c create mode 100644 ThirdParty/freetype/src/base/ftinit.c create mode 100644 ThirdParty/freetype/src/base/ftlcdfil.c create mode 100644 ThirdParty/freetype/src/base/ftmac.c create mode 100644 ThirdParty/freetype/src/base/ftmm.c create mode 100644 ThirdParty/freetype/src/base/ftobjs.c create mode 100644 ThirdParty/freetype/src/base/ftotval.c create mode 100644 ThirdParty/freetype/src/base/ftoutln.c create mode 100644 ThirdParty/freetype/src/base/ftpatent.c create mode 100644 ThirdParty/freetype/src/base/ftpfr.c create mode 100644 ThirdParty/freetype/src/base/ftpsprop.c create mode 100644 ThirdParty/freetype/src/base/ftrfork.c create mode 100644 ThirdParty/freetype/src/base/ftsnames.c create mode 100644 ThirdParty/freetype/src/base/ftstream.c create mode 100644 ThirdParty/freetype/src/base/ftstroke.c create mode 100644 ThirdParty/freetype/src/base/ftsynth.c create mode 100644 ThirdParty/freetype/src/base/ftsystem.c create mode 100644 ThirdParty/freetype/src/base/fttrigon.c create mode 100644 ThirdParty/freetype/src/base/fttype1.c create mode 100644 ThirdParty/freetype/src/base/ftutil.c create mode 100644 ThirdParty/freetype/src/base/ftver.rc create mode 100644 ThirdParty/freetype/src/base/ftwinfnt.c create mode 100644 ThirdParty/freetype/src/base/md5.c create mode 100644 ThirdParty/freetype/src/base/md5.h create mode 100644 ThirdParty/freetype/src/base/rules.mk create mode 100644 ThirdParty/freetype/src/bdf/Jamfile create mode 100644 ThirdParty/freetype/src/bdf/README create mode 100644 ThirdParty/freetype/src/bdf/bdf.c create mode 100644 ThirdParty/freetype/src/bdf/bdf.h create mode 100644 ThirdParty/freetype/src/bdf/bdfdrivr.c create mode 100644 ThirdParty/freetype/src/bdf/bdfdrivr.h create mode 100644 ThirdParty/freetype/src/bdf/bdferror.h create mode 100644 ThirdParty/freetype/src/bdf/bdflib.c create mode 100644 ThirdParty/freetype/src/bdf/module.mk create mode 100644 ThirdParty/freetype/src/bdf/rules.mk create mode 100644 ThirdParty/freetype/src/bzip2/Jamfile create mode 100644 ThirdParty/freetype/src/bzip2/ftbzip2.c create mode 100644 ThirdParty/freetype/src/bzip2/rules.mk create mode 100644 ThirdParty/freetype/src/cache/Jamfile create mode 100644 ThirdParty/freetype/src/cache/ftcache.c create mode 100644 ThirdParty/freetype/src/cache/ftcbasic.c create mode 100644 ThirdParty/freetype/src/cache/ftccache.c create mode 100644 ThirdParty/freetype/src/cache/ftccache.h create mode 100644 ThirdParty/freetype/src/cache/ftccback.h create mode 100644 ThirdParty/freetype/src/cache/ftccmap.c create mode 100644 ThirdParty/freetype/src/cache/ftcerror.h create mode 100644 ThirdParty/freetype/src/cache/ftcglyph.c create mode 100644 ThirdParty/freetype/src/cache/ftcglyph.h create mode 100644 ThirdParty/freetype/src/cache/ftcimage.c create mode 100644 ThirdParty/freetype/src/cache/ftcimage.h create mode 100644 ThirdParty/freetype/src/cache/ftcmanag.c create mode 100644 ThirdParty/freetype/src/cache/ftcmanag.h create mode 100644 ThirdParty/freetype/src/cache/ftcmru.c create mode 100644 ThirdParty/freetype/src/cache/ftcmru.h create mode 100644 ThirdParty/freetype/src/cache/ftcsbits.c create mode 100644 ThirdParty/freetype/src/cache/ftcsbits.h create mode 100644 ThirdParty/freetype/src/cache/rules.mk create mode 100644 ThirdParty/freetype/src/cff/Jamfile create mode 100644 ThirdParty/freetype/src/cff/cff.c create mode 100644 ThirdParty/freetype/src/cff/cffcmap.c create mode 100644 ThirdParty/freetype/src/cff/cffcmap.h create mode 100644 ThirdParty/freetype/src/cff/cffdrivr.c create mode 100644 ThirdParty/freetype/src/cff/cffdrivr.h create mode 100644 ThirdParty/freetype/src/cff/cfferrs.h create mode 100644 ThirdParty/freetype/src/cff/cffgload.c create mode 100644 ThirdParty/freetype/src/cff/cffgload.h create mode 100644 ThirdParty/freetype/src/cff/cffload.c create mode 100644 ThirdParty/freetype/src/cff/cffload.h create mode 100644 ThirdParty/freetype/src/cff/cffobjs.c create mode 100644 ThirdParty/freetype/src/cff/cffobjs.h create mode 100644 ThirdParty/freetype/src/cff/cffparse.c create mode 100644 ThirdParty/freetype/src/cff/cffparse.h create mode 100644 ThirdParty/freetype/src/cff/cfftoken.h create mode 100644 ThirdParty/freetype/src/cff/module.mk create mode 100644 ThirdParty/freetype/src/cff/rules.mk create mode 100644 ThirdParty/freetype/src/cid/Jamfile create mode 100644 ThirdParty/freetype/src/cid/ciderrs.h create mode 100644 ThirdParty/freetype/src/cid/cidgload.c create mode 100644 ThirdParty/freetype/src/cid/cidgload.h create mode 100644 ThirdParty/freetype/src/cid/cidload.c create mode 100644 ThirdParty/freetype/src/cid/cidload.h create mode 100644 ThirdParty/freetype/src/cid/cidobjs.c create mode 100644 ThirdParty/freetype/src/cid/cidobjs.h create mode 100644 ThirdParty/freetype/src/cid/cidparse.c create mode 100644 ThirdParty/freetype/src/cid/cidparse.h create mode 100644 ThirdParty/freetype/src/cid/cidriver.c create mode 100644 ThirdParty/freetype/src/cid/cidriver.h create mode 100644 ThirdParty/freetype/src/cid/cidtoken.h create mode 100644 ThirdParty/freetype/src/cid/module.mk create mode 100644 ThirdParty/freetype/src/cid/rules.mk create mode 100644 ThirdParty/freetype/src/cid/type1cid.c create mode 100644 ThirdParty/freetype/src/gxvalid/Jamfile create mode 100644 ThirdParty/freetype/src/gxvalid/README create mode 100644 ThirdParty/freetype/src/gxvalid/gxvalid.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvalid.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxvbsln.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvcommn.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvcommn.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxverror.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxvfeat.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvfeat.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxvfgen.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvjust.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvkern.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvlcar.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmod.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmod.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort0.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort1.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort2.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort4.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmort5.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx.h create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx0.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx1.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx2.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx4.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvmorx5.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvopbd.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvprop.c create mode 100644 ThirdParty/freetype/src/gxvalid/gxvtrak.c create mode 100644 ThirdParty/freetype/src/gxvalid/module.mk create mode 100644 ThirdParty/freetype/src/gxvalid/rules.mk create mode 100644 ThirdParty/freetype/src/gzip/Jamfile create mode 100644 ThirdParty/freetype/src/gzip/adler32.c create mode 100644 ThirdParty/freetype/src/gzip/ftgzip.c create mode 100644 ThirdParty/freetype/src/gzip/ftzconf.h create mode 100644 ThirdParty/freetype/src/gzip/infblock.c create mode 100644 ThirdParty/freetype/src/gzip/infblock.h create mode 100644 ThirdParty/freetype/src/gzip/infcodes.c create mode 100644 ThirdParty/freetype/src/gzip/infcodes.h create mode 100644 ThirdParty/freetype/src/gzip/inffixed.h create mode 100644 ThirdParty/freetype/src/gzip/inflate.c create mode 100644 ThirdParty/freetype/src/gzip/inftrees.c create mode 100644 ThirdParty/freetype/src/gzip/inftrees.h create mode 100644 ThirdParty/freetype/src/gzip/infutil.c create mode 100644 ThirdParty/freetype/src/gzip/infutil.h create mode 100644 ThirdParty/freetype/src/gzip/rules.mk create mode 100644 ThirdParty/freetype/src/gzip/zlib.h create mode 100644 ThirdParty/freetype/src/gzip/zutil.c create mode 100644 ThirdParty/freetype/src/gzip/zutil.h create mode 100644 ThirdParty/freetype/src/lzw/Jamfile create mode 100644 ThirdParty/freetype/src/lzw/ftlzw.c create mode 100644 ThirdParty/freetype/src/lzw/ftzopen.c create mode 100644 ThirdParty/freetype/src/lzw/ftzopen.h create mode 100644 ThirdParty/freetype/src/lzw/rules.mk create mode 100644 ThirdParty/freetype/src/otvalid/Jamfile create mode 100644 ThirdParty/freetype/src/otvalid/module.mk create mode 100644 ThirdParty/freetype/src/otvalid/otvalid.c create mode 100644 ThirdParty/freetype/src/otvalid/otvalid.h create mode 100644 ThirdParty/freetype/src/otvalid/otvbase.c create mode 100644 ThirdParty/freetype/src/otvalid/otvcommn.c create mode 100644 ThirdParty/freetype/src/otvalid/otvcommn.h create mode 100644 ThirdParty/freetype/src/otvalid/otverror.h create mode 100644 ThirdParty/freetype/src/otvalid/otvgdef.c create mode 100644 ThirdParty/freetype/src/otvalid/otvgpos.c create mode 100644 ThirdParty/freetype/src/otvalid/otvgpos.h create mode 100644 ThirdParty/freetype/src/otvalid/otvgsub.c create mode 100644 ThirdParty/freetype/src/otvalid/otvjstf.c create mode 100644 ThirdParty/freetype/src/otvalid/otvmath.c create mode 100644 ThirdParty/freetype/src/otvalid/otvmod.c create mode 100644 ThirdParty/freetype/src/otvalid/otvmod.h create mode 100644 ThirdParty/freetype/src/otvalid/rules.mk create mode 100644 ThirdParty/freetype/src/pcf/Jamfile create mode 100644 ThirdParty/freetype/src/pcf/README create mode 100644 ThirdParty/freetype/src/pcf/module.mk create mode 100644 ThirdParty/freetype/src/pcf/pcf.c create mode 100644 ThirdParty/freetype/src/pcf/pcf.h create mode 100644 ThirdParty/freetype/src/pcf/pcfdrivr.c create mode 100644 ThirdParty/freetype/src/pcf/pcfdrivr.h create mode 100644 ThirdParty/freetype/src/pcf/pcferror.h create mode 100644 ThirdParty/freetype/src/pcf/pcfread.c create mode 100644 ThirdParty/freetype/src/pcf/pcfread.h create mode 100644 ThirdParty/freetype/src/pcf/pcfutil.c create mode 100644 ThirdParty/freetype/src/pcf/pcfutil.h create mode 100644 ThirdParty/freetype/src/pcf/rules.mk create mode 100644 ThirdParty/freetype/src/pfr/Jamfile create mode 100644 ThirdParty/freetype/src/pfr/module.mk create mode 100644 ThirdParty/freetype/src/pfr/pfr.c create mode 100644 ThirdParty/freetype/src/pfr/pfrcmap.c create mode 100644 ThirdParty/freetype/src/pfr/pfrcmap.h create mode 100644 ThirdParty/freetype/src/pfr/pfrdrivr.c create mode 100644 ThirdParty/freetype/src/pfr/pfrdrivr.h create mode 100644 ThirdParty/freetype/src/pfr/pfrerror.h create mode 100644 ThirdParty/freetype/src/pfr/pfrgload.c create mode 100644 ThirdParty/freetype/src/pfr/pfrgload.h create mode 100644 ThirdParty/freetype/src/pfr/pfrload.c create mode 100644 ThirdParty/freetype/src/pfr/pfrload.h create mode 100644 ThirdParty/freetype/src/pfr/pfrobjs.c create mode 100644 ThirdParty/freetype/src/pfr/pfrobjs.h create mode 100644 ThirdParty/freetype/src/pfr/pfrsbit.c create mode 100644 ThirdParty/freetype/src/pfr/pfrsbit.h create mode 100644 ThirdParty/freetype/src/pfr/pfrtypes.h create mode 100644 ThirdParty/freetype/src/pfr/rules.mk create mode 100644 ThirdParty/freetype/src/psaux/Jamfile create mode 100644 ThirdParty/freetype/src/psaux/afmparse.c create mode 100644 ThirdParty/freetype/src/psaux/afmparse.h create mode 100644 ThirdParty/freetype/src/psaux/cffdecode.c create mode 100644 ThirdParty/freetype/src/psaux/cffdecode.h create mode 100644 ThirdParty/freetype/src/psaux/module.mk create mode 100644 ThirdParty/freetype/src/psaux/psarrst.c create mode 100644 ThirdParty/freetype/src/psaux/psarrst.h create mode 100644 ThirdParty/freetype/src/psaux/psaux.c create mode 100644 ThirdParty/freetype/src/psaux/psauxerr.h create mode 100644 ThirdParty/freetype/src/psaux/psauxmod.c create mode 100644 ThirdParty/freetype/src/psaux/psauxmod.h create mode 100644 ThirdParty/freetype/src/psaux/psblues.c create mode 100644 ThirdParty/freetype/src/psaux/psblues.h create mode 100644 ThirdParty/freetype/src/psaux/psconv.c create mode 100644 ThirdParty/freetype/src/psaux/psconv.h create mode 100644 ThirdParty/freetype/src/psaux/pserror.c create mode 100644 ThirdParty/freetype/src/psaux/pserror.h create mode 100644 ThirdParty/freetype/src/psaux/psfixed.h create mode 100644 ThirdParty/freetype/src/psaux/psfont.c create mode 100644 ThirdParty/freetype/src/psaux/psfont.h create mode 100644 ThirdParty/freetype/src/psaux/psft.c create mode 100644 ThirdParty/freetype/src/psaux/psft.h create mode 100644 ThirdParty/freetype/src/psaux/psglue.h create mode 100644 ThirdParty/freetype/src/psaux/pshints.c create mode 100644 ThirdParty/freetype/src/psaux/pshints.h create mode 100644 ThirdParty/freetype/src/psaux/psintrp.c create mode 100644 ThirdParty/freetype/src/psaux/psintrp.h create mode 100644 ThirdParty/freetype/src/psaux/psobjs.c create mode 100644 ThirdParty/freetype/src/psaux/psobjs.h create mode 100644 ThirdParty/freetype/src/psaux/psread.c create mode 100644 ThirdParty/freetype/src/psaux/psread.h create mode 100644 ThirdParty/freetype/src/psaux/psstack.c create mode 100644 ThirdParty/freetype/src/psaux/psstack.h create mode 100644 ThirdParty/freetype/src/psaux/pstypes.h create mode 100644 ThirdParty/freetype/src/psaux/rules.mk create mode 100644 ThirdParty/freetype/src/psaux/t1cmap.c create mode 100644 ThirdParty/freetype/src/psaux/t1cmap.h create mode 100644 ThirdParty/freetype/src/psaux/t1decode.c create mode 100644 ThirdParty/freetype/src/psaux/t1decode.h create mode 100644 ThirdParty/freetype/src/pshinter/Jamfile create mode 100644 ThirdParty/freetype/src/pshinter/module.mk create mode 100644 ThirdParty/freetype/src/pshinter/pshalgo.c create mode 100644 ThirdParty/freetype/src/pshinter/pshalgo.h create mode 100644 ThirdParty/freetype/src/pshinter/pshglob.c create mode 100644 ThirdParty/freetype/src/pshinter/pshglob.h create mode 100644 ThirdParty/freetype/src/pshinter/pshinter.c create mode 100644 ThirdParty/freetype/src/pshinter/pshmod.c create mode 100644 ThirdParty/freetype/src/pshinter/pshmod.h create mode 100644 ThirdParty/freetype/src/pshinter/pshnterr.h create mode 100644 ThirdParty/freetype/src/pshinter/pshrec.c create mode 100644 ThirdParty/freetype/src/pshinter/pshrec.h create mode 100644 ThirdParty/freetype/src/pshinter/rules.mk create mode 100644 ThirdParty/freetype/src/psnames/Jamfile create mode 100644 ThirdParty/freetype/src/psnames/module.mk create mode 100644 ThirdParty/freetype/src/psnames/psmodule.c create mode 100644 ThirdParty/freetype/src/psnames/psmodule.h create mode 100644 ThirdParty/freetype/src/psnames/psnamerr.h create mode 100644 ThirdParty/freetype/src/psnames/psnames.c create mode 100644 ThirdParty/freetype/src/psnames/pstables.h create mode 100644 ThirdParty/freetype/src/psnames/rules.mk create mode 100644 ThirdParty/freetype/src/raster/Jamfile create mode 100644 ThirdParty/freetype/src/raster/ftmisc.h create mode 100644 ThirdParty/freetype/src/raster/ftraster.c create mode 100644 ThirdParty/freetype/src/raster/ftraster.h create mode 100644 ThirdParty/freetype/src/raster/ftrend1.c create mode 100644 ThirdParty/freetype/src/raster/ftrend1.h create mode 100644 ThirdParty/freetype/src/raster/module.mk create mode 100644 ThirdParty/freetype/src/raster/raster.c create mode 100644 ThirdParty/freetype/src/raster/rasterrs.h create mode 100644 ThirdParty/freetype/src/raster/rules.mk create mode 100644 ThirdParty/freetype/src/sfnt/Jamfile create mode 100644 ThirdParty/freetype/src/sfnt/module.mk create mode 100644 ThirdParty/freetype/src/sfnt/pngshim.c create mode 100644 ThirdParty/freetype/src/sfnt/pngshim.h create mode 100644 ThirdParty/freetype/src/sfnt/rules.mk create mode 100644 ThirdParty/freetype/src/sfnt/sfdriver.c create mode 100644 ThirdParty/freetype/src/sfnt/sfdriver.h create mode 100644 ThirdParty/freetype/src/sfnt/sferrors.h create mode 100644 ThirdParty/freetype/src/sfnt/sfnt.c create mode 100644 ThirdParty/freetype/src/sfnt/sfobjs.c create mode 100644 ThirdParty/freetype/src/sfnt/sfobjs.h create mode 100644 ThirdParty/freetype/src/sfnt/ttbdf.c create mode 100644 ThirdParty/freetype/src/sfnt/ttbdf.h create mode 100644 ThirdParty/freetype/src/sfnt/ttcmap.c create mode 100644 ThirdParty/freetype/src/sfnt/ttcmap.h create mode 100644 ThirdParty/freetype/src/sfnt/ttcmapc.h create mode 100644 ThirdParty/freetype/src/sfnt/ttcolr.c create mode 100644 ThirdParty/freetype/src/sfnt/ttcolr.h create mode 100644 ThirdParty/freetype/src/sfnt/ttcpal.c create mode 100644 ThirdParty/freetype/src/sfnt/ttcpal.h create mode 100644 ThirdParty/freetype/src/sfnt/ttkern.c create mode 100644 ThirdParty/freetype/src/sfnt/ttkern.h create mode 100644 ThirdParty/freetype/src/sfnt/ttload.c create mode 100644 ThirdParty/freetype/src/sfnt/ttload.h create mode 100644 ThirdParty/freetype/src/sfnt/ttmtx.c create mode 100644 ThirdParty/freetype/src/sfnt/ttmtx.h create mode 100644 ThirdParty/freetype/src/sfnt/ttpost.c create mode 100644 ThirdParty/freetype/src/sfnt/ttpost.h create mode 100644 ThirdParty/freetype/src/sfnt/ttsbit.c create mode 100644 ThirdParty/freetype/src/sfnt/ttsbit.h create mode 100644 ThirdParty/freetype/src/smooth/Jamfile create mode 100644 ThirdParty/freetype/src/smooth/ftgrays.c create mode 100644 ThirdParty/freetype/src/smooth/ftgrays.h create mode 100644 ThirdParty/freetype/src/smooth/ftsmerrs.h create mode 100644 ThirdParty/freetype/src/smooth/ftsmooth.c create mode 100644 ThirdParty/freetype/src/smooth/ftsmooth.h create mode 100644 ThirdParty/freetype/src/smooth/module.mk create mode 100644 ThirdParty/freetype/src/smooth/rules.mk create mode 100644 ThirdParty/freetype/src/smooth/smooth.c create mode 100644 ThirdParty/freetype/src/tools/Jamfile create mode 100644 ThirdParty/freetype/src/tools/afblue.pl create mode 100644 ThirdParty/freetype/src/tools/apinames.c create mode 100644 ThirdParty/freetype/src/tools/chktrcmp.py create mode 100644 ThirdParty/freetype/src/tools/cordic.py create mode 100644 ThirdParty/freetype/src/tools/ftrandom/Makefile create mode 100644 ThirdParty/freetype/src/tools/ftrandom/README create mode 100644 ThirdParty/freetype/src/tools/ftrandom/ftrandom.c create mode 100644 ThirdParty/freetype/src/tools/glnames.py create mode 100644 ThirdParty/freetype/src/tools/no-copyright create mode 100644 ThirdParty/freetype/src/tools/test_afm.c create mode 100644 ThirdParty/freetype/src/tools/test_bbox.c create mode 100644 ThirdParty/freetype/src/tools/test_trig.c create mode 100644 ThirdParty/freetype/src/tools/update-copyright create mode 100644 ThirdParty/freetype/src/tools/update-copyright-year create mode 100644 ThirdParty/freetype/src/truetype/Jamfile create mode 100644 ThirdParty/freetype/src/truetype/module.mk create mode 100644 ThirdParty/freetype/src/truetype/rules.mk create mode 100644 ThirdParty/freetype/src/truetype/truetype.c create mode 100644 ThirdParty/freetype/src/truetype/ttdriver.c create mode 100644 ThirdParty/freetype/src/truetype/ttdriver.h create mode 100644 ThirdParty/freetype/src/truetype/tterrors.h create mode 100644 ThirdParty/freetype/src/truetype/ttgload.c create mode 100644 ThirdParty/freetype/src/truetype/ttgload.h create mode 100644 ThirdParty/freetype/src/truetype/ttgxvar.c create mode 100644 ThirdParty/freetype/src/truetype/ttgxvar.h create mode 100644 ThirdParty/freetype/src/truetype/ttinterp.c create mode 100644 ThirdParty/freetype/src/truetype/ttinterp.h create mode 100644 ThirdParty/freetype/src/truetype/ttobjs.c create mode 100644 ThirdParty/freetype/src/truetype/ttobjs.h create mode 100644 ThirdParty/freetype/src/truetype/ttpload.c create mode 100644 ThirdParty/freetype/src/truetype/ttpload.h create mode 100644 ThirdParty/freetype/src/truetype/ttsubpix.c create mode 100644 ThirdParty/freetype/src/truetype/ttsubpix.h create mode 100644 ThirdParty/freetype/src/type1/Jamfile create mode 100644 ThirdParty/freetype/src/type1/module.mk create mode 100644 ThirdParty/freetype/src/type1/rules.mk create mode 100644 ThirdParty/freetype/src/type1/t1afm.c create mode 100644 ThirdParty/freetype/src/type1/t1afm.h create mode 100644 ThirdParty/freetype/src/type1/t1driver.c create mode 100644 ThirdParty/freetype/src/type1/t1driver.h create mode 100644 ThirdParty/freetype/src/type1/t1errors.h create mode 100644 ThirdParty/freetype/src/type1/t1gload.c create mode 100644 ThirdParty/freetype/src/type1/t1gload.h create mode 100644 ThirdParty/freetype/src/type1/t1load.c create mode 100644 ThirdParty/freetype/src/type1/t1load.h create mode 100644 ThirdParty/freetype/src/type1/t1objs.c create mode 100644 ThirdParty/freetype/src/type1/t1objs.h create mode 100644 ThirdParty/freetype/src/type1/t1parse.c create mode 100644 ThirdParty/freetype/src/type1/t1parse.h create mode 100644 ThirdParty/freetype/src/type1/t1tokens.h create mode 100644 ThirdParty/freetype/src/type1/type1.c create mode 100644 ThirdParty/freetype/src/type42/Jamfile create mode 100644 ThirdParty/freetype/src/type42/module.mk create mode 100644 ThirdParty/freetype/src/type42/rules.mk create mode 100644 ThirdParty/freetype/src/type42/t42drivr.c create mode 100644 ThirdParty/freetype/src/type42/t42drivr.h create mode 100644 ThirdParty/freetype/src/type42/t42error.h create mode 100644 ThirdParty/freetype/src/type42/t42objs.c create mode 100644 ThirdParty/freetype/src/type42/t42objs.h create mode 100644 ThirdParty/freetype/src/type42/t42parse.c create mode 100644 ThirdParty/freetype/src/type42/t42parse.h create mode 100644 ThirdParty/freetype/src/type42/t42types.h create mode 100644 ThirdParty/freetype/src/type42/type42.c create mode 100644 ThirdParty/freetype/src/winfonts/Jamfile create mode 100644 ThirdParty/freetype/src/winfonts/fnterrs.h create mode 100644 ThirdParty/freetype/src/winfonts/module.mk create mode 100644 ThirdParty/freetype/src/winfonts/rules.mk create mode 100644 ThirdParty/freetype/src/winfonts/winfnt.c create mode 100644 ThirdParty/freetype/src/winfonts/winfnt.h create mode 100644 ThirdParty/freetype/version.sed create mode 100644 ThirdParty/freetype/vms_make.com (limited to 'ThirdParty/freetype') diff --git a/ThirdParty/freetype/CMakeLists.txt b/ThirdParty/freetype/CMakeLists.txt new file mode 100644 index 0000000..28dc3b3 --- /dev/null +++ b/ThirdParty/freetype/CMakeLists.txt @@ -0,0 +1,510 @@ +# CMakeLists.txt +# +# Copyright (C) 2013-2019 by +# David Turner, Robert Wilhelm, and Werner Lemberg. +# +# Written originally by John Cary +# +# This file is part of the FreeType project, and may only be used, modified, +# and distributed under the terms of the FreeType project license, +# LICENSE.TXT. By continuing to use, modify, or distribute this file you +# indicate that you have read the license and understand and accept it +# fully. +# +# +# The following will 1. create a build directory and 2. change into it and +# call cmake to configure the build with default parameters as a static +# library. +# +# cmake -E make_directory build +# cmake -E chdir build cmake .. +# +# For a dynamic library, use +# +# cmake -E chdir build cmake -D BUILD_SHARED_LIBS:BOOL=true .. +# +# For a framework on OS X, use +# +# cmake -E chdir build cmake -G Xcode -D BUILD_FRAMEWORK:BOOL=true .. +# +# For an iOS static library, use +# +# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=OS .. +# +# or +# +# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR .. +# +# or +# +# cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 .. +# +# Finally, build the project with: +# +# cmake --build build +# +# Install it with +# +# (sudo) cmake --build build --target install +# +# A binary distribution can be made with +# +# cmake --build build --config Release --target package +# +# Please refer to the cmake manual for further options, in particular, how +# to modify compilation and linking parameters. +# +# Some notes. +# +# . `cmake' creates configuration files in +# +# /include/freetype/config +# +# which should be further modified if necessary. +# +# . You can use `cmake' directly on a freshly cloned FreeType git +# repository. +# +# . `CMakeLists.txt' is provided as-is since it is normally not used by the +# developer team. +# +# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG', and +# `FT_WITH_HARFBUZZ' CMake variables to `ON' to force using a dependency. +# Leave a variable undefined (which is the default) to use the dependency +# only if it is available. Set `CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE' to +# disable a dependency completely (CMake package name, so `BZip2' instead of +# `BZIP2'). Example: +# +# cmake -DFT_WITH_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE [...] +# +# . Installation of FreeType can be controlled with the CMake variables +# `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' +# (this is compatible with the same CMake variables in zlib's CMake +# support). + +# FreeType explicitly marks the API to be exported and relies on the compiler +# to hide all other symbols. CMake supports a C_VISBILITY_PRESET property +# starting with 2.8.12. +cmake_minimum_required(VERSION 2.8.12) + +if (NOT CMAKE_VERSION VERSION_LESS 3.3) + # Allow symbol visibility settings also on static libraries. CMake < 3.3 + # only sets the propery on a shared library build. + cmake_policy(SET CMP0063 NEW) +endif () + +include(CheckIncludeFile) + +# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which +# configures the base build environment and references the toolchain file +if (APPLE) + if (DEFINED IOS_PLATFORM) + if (NOT "${IOS_PLATFORM}" STREQUAL "OS" + AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR" + AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR64") + message(FATAL_ERROR + "IOS_PLATFORM must be set to either OS, SIMULATOR, or SIMULATOR64") + endif () + if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") + message(AUTHOR_WARNING + "You should use Xcode generator with IOS_PLATFORM enabled to get Universal builds.") + endif () + if (BUILD_SHARED_LIBS) + message(FATAL_ERROR + "BUILD_SHARED_LIBS can not be on with IOS_PLATFORM enabled") + endif () + if (BUILD_FRAMEWORK) + message(FATAL_ERROR + "BUILD_FRAMEWORK can not be on with IOS_PLATFORM enabled") + endif () + + # iOS only uses static libraries + set(BUILD_SHARED_LIBS OFF) + + set(CMAKE_TOOLCHAIN_FILE + ${CMAKE_SOURCE_DIR}/builds/cmake/iOS.cmake) + endif () +else () + if (DEFINED IOS_PLATFORM) + message(FATAL_ERROR "IOS_PLATFORM is not supported on this platform") + endif () +endif () + + +project(freetype C) + +set(VERSION_MAJOR "2") +set(VERSION_MINOR "10") +set(VERSION_PATCH "0") + +# SOVERSION scheme: CURRENT.AGE.REVISION +# If there was an incompatible interface change: +# Increment CURRENT. Set AGE and REVISION to 0 +# If there was a compatible interface change: +# Increment AGE. Set REVISION to 0 +# If the source code was changed, but there were no interface changes: +# Increment REVISION. +set(LIBRARY_VERSION "6.16.0") +set(LIBRARY_SOVERSION "6") + +# These options mean "require x and complain if not found". They'll get +# optionally found anyway. Use `-DCMAKE_DISABLE_FIND_PACKAGE_x=TRUE` to disable +# searching for a packge entirely (x is the CMake package name, so "BZip2" +# instead of "BZIP2"). +option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF) +option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF) +option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF) +option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF) + + +# Disallow in-source builds +if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}") + message(FATAL_ERROR + "In-source builds are not permitted! Make a separate folder for" + " building, e.g.,\n" + " cmake -E make_directory build\n" + " cmake -E chdir build cmake ..\n" + "Before that, remove the files created by this failed run with\n" + " cmake -E remove CMakeCache.txt\n" + " cmake -E remove_directory CMakeFiles") +endif () + + +# Add local cmake modules +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/builds/cmake) + + +if (BUILD_FRAMEWORK) + if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode") + message(FATAL_ERROR + "You should use Xcode generator with BUILD_FRAMEWORK enabled") + endif () + set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)") + set(BUILD_SHARED_LIBS ON) +endif () + + +# Find dependencies +if (FT_WITH_HARFBUZZ) + find_package(HarfBuzz 1.3.0 REQUIRED) +else () + find_package(HarfBuzz 1.3.0) +endif () + +if (FT_WITH_PNG) + find_package(PNG REQUIRED) +else () + find_package(PNG) +endif () + +if (FT_WITH_ZLIB) + find_package(ZLIB REQUIRED) +else () + find_package(ZLIB) +endif () + +if (FT_WITH_BZIP2) + find_package(BZip2 REQUIRED) +else () + find_package(BZip2) +endif () + +# Create the configuration file +if (UNIX) + check_include_file("unistd.h" HAVE_UNISTD_H) + check_include_file("fcntl.h" HAVE_FCNTL_H) + check_include_file("stdint.h" HAVE_STDINT_H) + + file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.in" + FTCONFIG_H) + if (HAVE_UNISTD_H) + string(REGEX REPLACE + "#undef +(HAVE_UNISTD_H)" "#define \\1 1" + FTCONFIG_H "${FTCONFIG_H}") + endif () + if (HAVE_FCNTL_H) + string(REGEX REPLACE + "#undef +(HAVE_FCNTL_H)" "#define \\1 1" + FTCONFIG_H "${FTCONFIG_H}") + endif () + if (HAVE_STDINT_H) + string(REGEX REPLACE + "#undef +(HAVE_STDINT_H)" "#define \\1 1" + FTCONFIG_H "${FTCONFIG_H}") + endif () + string(REPLACE "/undef " "#undef " + FTCONFIG_H "${FTCONFIG_H}") +else() + file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h" + FTCONFIG_H) +endif () +file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h" + "${FTCONFIG_H}") + + +# Create the options file +file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftoption.h" + FTOPTION_H) +if (ZLIB_FOUND) + string(REGEX REPLACE + "/\\* +(#define +FT_CONFIG_OPTION_SYSTEM_ZLIB) +\\*/" "\\1" + FTOPTION_H "${FTOPTION_H}") +endif () +if (BZIP2_FOUND) + string(REGEX REPLACE + "/\\* +(#define +FT_CONFIG_OPTION_USE_BZIP2) +\\*/" "\\1" + FTOPTION_H "${FTOPTION_H}") +endif () +if (PNG_FOUND) + string(REGEX REPLACE + "/\\* +(#define +FT_CONFIG_OPTION_USE_PNG) +\\*/" "\\1" + FTOPTION_H "${FTOPTION_H}") +endif () +if (HARFBUZZ_FOUND) + string(REGEX REPLACE + "/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1" + FTOPTION_H "${FTOPTION_H}") +endif () +file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h" + "${FTOPTION_H}") + + +file(GLOB PUBLIC_HEADERS "include/ft2build.h" "include/freetype/*.h") +file(GLOB PUBLIC_CONFIG_HEADERS "include/freetype/config/*.h") +file(GLOB PRIVATE_HEADERS "include/freetype/internal/*.h") + + +set(BASE_SRCS + src/autofit/autofit.c + src/base/ftbase.c + src/base/ftbbox.c + src/base/ftbdf.c + src/base/ftbitmap.c + src/base/ftcid.c + src/base/ftfstype.c + src/base/ftgasp.c + src/base/ftglyph.c + src/base/ftgxval.c + src/base/ftinit.c + src/base/ftmm.c + src/base/ftotval.c + src/base/ftpatent.c + src/base/ftpfr.c + src/base/ftstroke.c + src/base/ftsynth.c + src/base/ftsystem.c + src/base/fttype1.c + src/base/ftwinfnt.c + src/bdf/bdf.c + src/bzip2/ftbzip2.c + src/cache/ftcache.c + src/cff/cff.c + src/cid/type1cid.c + src/gzip/ftgzip.c + src/lzw/ftlzw.c + src/pcf/pcf.c + src/pfr/pfr.c + src/psaux/psaux.c + src/pshinter/pshinter.c + src/psnames/psnames.c + src/raster/raster.c + src/sfnt/sfnt.c + src/smooth/smooth.c + src/truetype/truetype.c + src/type1/type1.c + src/type42/type42.c + src/winfonts/winfnt.c +) + +if (WIN32) + enable_language(RC) + list(APPEND BASE_SRCS builds/windows/ftdebug.c + src/base/ftver.rc) +elseif (WINCE) + list(APPEND BASE_SRCS builds/wince/ftdebug.c) +else () + list(APPEND BASE_SRCS src/base/ftdebug.c) +endif () + +if (BUILD_FRAMEWORK) + list(APPEND BASE_SRCS builds/mac/freetype-Info.plist) +endif () + + +if (NOT DISABLE_FORCE_DEBUG_POSTFIX) + set(CMAKE_DEBUG_POSTFIX d) +endif() + + +add_library(freetype + ${PUBLIC_HEADERS} + ${PUBLIC_CONFIG_HEADERS} + ${PRIVATE_HEADERS} + ${BASE_SRCS} +) + +set_target_properties( + freetype PROPERTIES + C_VISIBILITY_PRESET hidden) + +target_compile_definitions( + freetype PRIVATE FT2_BUILD_LIBRARY) + +if (WIN32) + target_compile_definitions( + freetype PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS) + if (BUILD_SHARED_LIBS) + target_compile_definitions( + freetype PRIVATE DLL_EXPORT) + endif () +endif () + +if (BUILD_SHARED_LIBS) + set_target_properties(freetype PROPERTIES + VERSION ${LIBRARY_VERSION} + SOVERSION ${LIBRARY_SOVERSION}) +endif () + +# Pick up ftconfig.h and ftoption.h generated above, first. +target_include_directories( + freetype + PUBLIC + $ + $ + $ + PRIVATE + ${CMAKE_CURRENT_BINARY_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/include) + + +if (BUILD_FRAMEWORK) + set_property(SOURCE ${PUBLIC_CONFIG_HEADERS} + PROPERTY MACOSX_PACKAGE_LOCATION Headers/config + ) + set_target_properties(freetype PROPERTIES + FRAMEWORK TRUE + MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist + PUBLIC_HEADER "${PUBLIC_HEADERS}" + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + ) +endif () + + +set(PKG_CONFIG_REQUIRED_PRIVATE "") + +if (ZLIB_FOUND) + target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) + target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE zlib) +endif () +if (BZIP2_FOUND) + target_link_libraries(freetype PRIVATE ${BZIP2_LIBRARIES}) + target_include_directories(freetype PRIVATE ${BZIP2_INCLUDE_DIR}) # not BZIP2_INCLUDE_DIRS + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE bzip2) +endif () +if (PNG_FOUND) + target_link_libraries(freetype PRIVATE ${PNG_LIBRARIES}) + target_compile_definitions(freetype PRIVATE ${PNG_DEFINITIONS}) + target_include_directories(freetype PRIVATE ${PNG_INCLUDE_DIRS}) + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE libpng) +endif () +if (HARFBUZZ_FOUND) + target_link_libraries(freetype PRIVATE ${HARFBUZZ_LIBRARIES}) + target_include_directories(freetype PRIVATE ${HARFBUZZ_INCLUDE_DIRS}) + list(APPEND PKG_CONFIG_REQUIRED_PRIVATE harfbuzz) +endif () + + +# Installation +include(GNUInstallDirs) + +if (NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) + install( + # Note the trailing slash in the argument to `DIRECTORY'! + DIRECTORY ${PROJECT_SOURCE_DIR}/include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2 + COMPONENT headers + PATTERN "internal" EXCLUDE + PATTERN "ftconfig.h" EXCLUDE + PATTERN "ftoption.h" EXCLUDE) + install( + FILES ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h + ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/freetype2/freetype/config + COMPONENT headers) +endif () + +if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) + # Generate the pkg-config file + if (UNIX) + file(READ ${PROJECT_SOURCE_DIR}/builds/unix/freetype2.in FREETYPE2_PC_IN) + + string(REPLACE ";" ", " PKG_CONFIG_REQUIRED_PRIVATE "${PKG_CONFIG_REQUIRED_PRIVATE}") + + string(REPLACE "%prefix%" ${CMAKE_INSTALL_PREFIX} + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%exec_prefix%" "\${prefix}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%libdir%" "\${prefix}/${CMAKE_INSTALL_LIBDIR}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%includedir%" "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%ft_version%" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%REQUIRES_PRIVATE%" "${PKG_CONFIG_REQUIRED_PRIVATE}" + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + string(REPLACE "%LIBS_PRIVATE%" "" # All libs support pkg-config + FREETYPE2_PC_IN ${FREETYPE2_PC_IN}) + + file(WRITE ${PROJECT_BINARY_DIR}/freetype2.pc ${FREETYPE2_PC_IN}) + + install( + FILES ${PROJECT_BINARY_DIR}/freetype2.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT pkgconfig) + endif () + + install( + TARGETS freetype + EXPORT freetype-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + FRAMEWORK DESTINATION Library/Frameworks + COMPONENT libraries) + install( + EXPORT freetype-targets + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype + FILE freetype-config.cmake + COMPONENT headers) +endif () + + +# Packaging +set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME}) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The FreeType font rendering library.") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/LICENSE.TXT") + +set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) +set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") + +if (WIN32) + set(CPACK_GENERATOR ZIP) +else() + set(CPACK_GENERATOR TGZ) +endif() + +set(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") +set(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C/C++ Headers") +set(CPACK_COMPONENT_LIBRARIES_DESCRIPTION + "Library used to build programs which use FreeType") +set(CPACK_COMPONENT_HEADERS_DESCRIPTION + "C/C++ header files for use with FreeType") +set(CPACK_COMPONENT_HEADERS_DEPENDS libraries) +set(CPACK_COMPONENT_LIBRARIES_GROUP "Development") +set(CPACK_COMPONENT_HEADERS_GROUP "Development") + +include(CPack) diff --git a/ThirdParty/freetype/ChangeLog b/ThirdParty/freetype/ChangeLog new file mode 100644 index 0000000..670e848 --- /dev/null +++ b/ThirdParty/freetype/ChangeLog @@ -0,0 +1,4879 @@ +2019-03-15 Werner Lemberg + + * Version 2.10.0 released. + ========================== + + + Tag sources with `VER-2-10-0'. + + * docs/VERSION.TXT: Add entry for version 2.10.0. + * docs/CHANGES: Updated. + + * README, Jamfile (RefDoc), src/base/ftver.rc, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.9.1/2.10.0/, s/291/2100/. + + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 10. + (FREETYPE_PATCH): Set to 0. + + * builds/unix/configure.raw (version_info): Set to 23:0:17. + * CMakeLists.txt (VERSION_MINOR): Set to 10. + (VERSION_PATCH): Set to 0. + + * builds/toplevel.mk (version, winversion): Since the minor version + number has two digits now, never omit the patch number. We would + get ambiguous zip file names otherwise. + (dist): Remove remnants of `docmaker' tool. + (do-dist): Remove unused intermediate files. + + * src/cff/cffparse.c (destrict_c2s_item): Guard function with + CFF_CONFIG_OPTION_OLD_ENGINE macro. + +2019-03-07 Andrei Alexeyev <0x416b617269@gmail.com> + Werner Lemberg + + Fix invalid function pointer casts. + + This change should allow Freetype to work on WASM/Emscripten without + needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'. + + * src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature. + + * src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array, + parse_expansion_factor, parse_font_name): Return `void', not + `FT_Error'. + + * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc): + Fix signature. + +2019-03-05 Werner Lemberg + + [base] Handle numeric overflow (#55827). + + * src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'. + +2019-03-05 Sebastian Rasmussen + + [psaux] Fix use of uninitialized memory (#55832). + + * src/psaux/psintrp.c (cf2_interpT2CharString): The call to + `cf2_arrstack_setCount' may fail because the allocator ran out of + memory. When this happens the stack is still written to before the + error condition is checked. This means that FreeType writes outside + of allocated memory. This commit moves the error check prior to the + stack assignment, hence the function now properly returns with an + error condition. + +2019-02-23 Werner Lemberg + + * src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets. + + The function only provided a framework without an actual + implementation, which this commit removes. + +2019-02-23 Werner Lemberg + + * src/tools/update-copyright-year: Insert `(C)'. + +2019-02-21 Armin Hasitzka + + [truetype] Mask numeric overflows. + + * src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP): + Mask numeric overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734 + +2019-02-21 Armin Hasitzka + + [psaux] Mask numeric overflow. + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric + overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041 + +2019-02-16 Wink Saville + + * src/autofit/afwarp.h (af_warper_compute): Fix declaration. + +2019-02-02 Nikolaus Waxweiler + + [truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics. + + Instead of setting typo or win metrics as the new `FT_Face' metrics + indiscriminately, apply only typo deltas to the currently active + `FT_Face' metrics. This prevents line height differences when the + default outlines were used as the regular face and instances for + everything else, for example. + + * src/truetype/ttgxvar.c (tt_apply_mvar): Implement. + +2019-02-02 Nikolaus Waxweiler + + [sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set. + + If the `OS/2' table exists and `fsSelection' bit 7 + (USE_TYPO_METRICS) is set, use the `sTypo*' set of values to compute + the `FT_Face's ascender, descender, and height. Otherwise, fall + back to old behavior. + + * src/sfnt/sfobjs.c (sfnt_load_face): Implement. + +2019-01-18 John Tytgat + + [sfnt] Handle TT fonts having two PostScript font names (#55471). + + * src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any + other language found for PostScript font names. + +2019-01-08 Chris Liddell + + [psaux] Fix closepath (#55414). + + All of the Type 1 path building is done with code common to the + revised CFF engine, with the exception of closepath, which was still + calling ps_builder_close_contour(), thus previously cached segments + were not always written to the path, and glyph corruption, or even + invalid outlines were possible. + + * src/psauc/psinterp.c (cf2_interpT2CharString) : + Switch to calling `cf2_glyphpath_closeOpenPath'. + +2018-12-29 Werner Lemberg + + * src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310). + +2018-12-25 Werner Lemberg + + * src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915 + +2018-12-12 Werner Lemberg + + [gxvalid] Fix compiler warnings. + + * src/gxvalid/gxvjust.c (gxv_just_check_max_gid), + src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'. + +2018-12-11 Werner Lemberg + + * src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test. + + `control_len' only gets its value from `n_ins' (and vice versa), + which is always read as `unsigned short' and thus can't be larger + than 0xFFFF. + +2018-12-04 Werner Lemberg + + [bdf] Ignore data after `ENDFONT'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798 + + * src/bdf/bdflib.c (_bdf_parse_end): New function. + (_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has + been encountered. + +2018-12-02 Alexei Podtelezhnikov + + * builds/windows/visualc/freetype.dsp: Dust off. + +2018-11-27 Alexei Podtelezhnikov + + * builds/windows/vc2010/freetype.vcxproj: Simplify. + +2018-11-27 Chris Liddell + + [type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls. + + For multiple master fonts, common usage (in Postscript) is to modify + the WeightVector of an existing font instance, this addition + supports that use. + + * include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector, + FT_Get_MM_WeightVector): New API functions. + + * include/freetype/internalservices/svmm.h + (FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New + function types. + (MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector' + members. + (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. + + * src/cffcffdrivr.c (cff_set_mm_weightvector, + cff_get_mm_weightvector): New functions. + (cff_service_multi_masters): Register them. + + * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. + This driver doesn't use the new interface. + + * src/type1/t1load.c (T1_Set_MM_WeightVector, + T1_Get_MM_WeightVector): New functions. + * src/type1/t1driver.c (t1_service_multi_masters): Register them. + * src/type1/t1load.h: Updated. + +2018-11-27 Ben Wagner + + [cff] Fix compiler warning (#55105). + + * src/cff/cffparse.c (cff_parser_run): Guard label only used if + CFF_CONFIG_OPTION_OLD_ENGINE is active. + +2018-11-27 Ben Wagner + + [truetype] Fix numeric overflow (#55103). + + * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'. + +2018-11-25 Alexei Podtelezhnikov + + [builds] Belated DLL support with vc2002-vc2008. + + The solution and project files should be automatically upgraded for + the approriate Visual C++ version. + + * builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades. + * builds/windows/visualc/index.html: Document the change. + * builds/windows/vc2005, builds/windows/vc2008: Removed as redundant. + +2018-11-22 Armin Hasitzka + + * src/cff/cffparse.c: Please the compiler. + +2018-11-22 Armin Hasitzka + + [cff] Fix memory overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869 + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869 + + * src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store + evaluated T2 charstrings in separately allocated memory. + +2018-11-18 Alexei Podtelezhnikov + + * builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it. + +2018-11-10 Alexei Podtelezhnikov + + [smooth] Placeholder only for library-enabled LCD filtering. + + * src/smooth/ftsmooth.c (ft_smooth_init): Add disabled + `FT_Library_SetLcdFilter' call. + +2018-11-09 Young Xiao + + [psaux] Add safety guard (#54985). + + * src/psaux/psobjs.c (cff_builder_close_contour): Do it. + +2018-11-08 Alexei Podtelezhnikov + + * builds/unix/configure.raw: Require `windows.h' for windres. + +2018-11-08 Alexei Podtelezhnikov + + [ftstroke] Fix unpredictable failures (#54986). + + * src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check. + +2018-11-08 Alexei Podtelezhnikov + + [ftstroke] Fix unpredictable failures (#54976). + + * src/base/ftstroke.c (ft_sroke_border_close): Set the start tags. + +2018-11-07 Ben Wagner + + [truetype] Fix VF check from 2018-09-12 (#54973). + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct + offsets for estimates. + +2018-11-06 Werner Lemberg + + [pshinter] Fix numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242 + + * src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it. + +2018-11-06 Werner Lemberg + + [psaux] Fix timeout in old CFF engine. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless + loop. + +2018-11-04 Alexei Podtelezhnikov + + * src/truetype/ttgxvar.c: Use enum definitions. + +2018-11-03 Alexei Podtelezhnikov + + * src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition. + +2018-11-03 Alexei Podtelezhnikov + + * src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks. + +2018-11-03 Alexei Podtelezhnikov + + Revert due to specs: [truetype] Speed up variation IUP. + +2018-11-02 Alexei Podtelezhnikov + + * src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic. + + Reported and tested by Behdad. + +2018-11-02 Shailesh Mistry + + [autofit] Prevent SEGV. + + See + + https://bugs.ghostscript.com/show_bug.cgi?id=697545 + + for more details on how the bug was found. + + * src/autofit/afloader.c (af_loader_load_glyph): Propagate error + code. + +2018-10-31 Alexei Podtelezhnikov + + [truetype] Speed up variation IUP. + + * src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial + snapping to the same position from true interpolation. + +2018-10-31 Alexei Podtelezhnikov + + * src/type1/t1load.c (t1_set_mm_blend): Optimized. + +2018-10-31 Alexei Podtelezhnikov + + * src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized. + +2018-10-29 Werner Lemberg + + [base] Fix numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080 + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'. + +2018-10-29 Werner Lemberg + + [cff] Fix numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988 + + * src/cff/cffparse.c (cff_parser_run) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'. + +2018-10-27 Alexei Podtelezhnikov + + [sfnt] Make `head' timestamps unsigned. + + It's been more than 2^31 seconds since 1904. + + * include/freetype/tttables.h (TT_Header): Change field types. + * src/sfnt/ttload.c (tt_face_load_generic_header): Updated. + +2018-10-27 Alexei Podtelezhnikov + + Revert: Align FreeType with standard C memory management. + +2018-10-27 Werner Lemberg + + [psaux] Fix numeric overflow. + + Triggered by + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow. + +2018-10-20 Werner Lemberg + + Avoid endless loop while tracing (#54858). + + * src/type1/t1load.c (parse_buildchar): Guard tracing stuff with + FT_DEBUG_LEVEL_TRACE. + +2018-10-17 David Demelier + + * CMakeLists.txt: Specify `RUNTIME DESTINATION'. + + This is needed for DLL builds. + +2018-10-07 Werner Lemberg + + A missing Unicode cmap is not a fatal error. + + This is a follow-up to the previous commit. + + * src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c + (sfnt_load_face), src/type1/t1objs.c (T1_Face_Init), + src/type42/t42objs.c (T42_Face_Init): Implement it. + +2018-10-07 Werner Lemberg + + Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794). + + * src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c + (t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init): + Check `unicodes_init' field. + +2018-10-03 Werner Lemberg + + [ftgrays] Fix typo in stand-alone mode (#54771). + + * src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ && + FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'. + +2018-10-02 Werner Lemberg + + [psaux] Fix segfault. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Check + argument. + +2018-10-02 Werner Lemberg + + [psaux] Fix numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10740 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT. + +2018-10-02 Werner Lemberg + + [pshinter] Handle numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550 + + * src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric + overflow. + +2018-09-27 Alexei Podtelezhnikov + + Align FreeType with standard C memory management. + + * include/freetype/ftsystem.h: Include FT_TYPES_H. + (*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments. + * src/raster/ftmisc.h: Ditto. + + * builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c, + * builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc): + Use size_t for the size arguments. + + * src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use + FT_Offset, aka size_t, for the size arguments. + +2018-09-25 Werner Lemberg + + Fix handling of `FT_Bool'. + + Before this commit we had code like + + (FT_Bool)( globals->glyph_styles[gindex] & 0x8000) + + Since `FT_Bool' is defined to be an `unsigned char', the code + evaluated to something like + + (unsigned char)( 0x8532 & 0x8000) + + which in turn expanded to + + (unsigned char)( 0x8000) + + and finally yielded 0x00 – i.e., false – not as expected. + + Problem reported and analyzed by Tony Smith . + + * include/freetype/fttypes.h (FT_BOOL): Add a comparison against + zero so that we always have a Boolean expression. + + */*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where + possible. + +2018-09-23 Alexei Podtelezhnikov + + [bdf] Speed up charmap access. + + This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster. + + * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search + with continuous prediction. + +2018-09-22 Alexei Podtelezhnikov + + * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Another tweak. + + This one should be clearer. When the rounded monochrome bbox collapses + we add a pixel that covers most if not all original cbox. + +2018-09-21 Alexei Podtelezhnikov + + * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak. + +2018-09-21 Ben Wagner + + Improve auto-hinter handling of bitmap fonts (#54681). + + For bitmap fonts, `FT_Load_Glyph' should either return an error or + not set the format to `FT_GLYPH_FORMAT_OUTLINE'. However, in this + case `FT_Load_Glyph' calls into the auto-hinter which calls back + into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which + marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path + (even though it doesn't have any path). It appears that the + auto-hinter should not be called when the face doesn't have + outlines. The current test for using the auto-hinter in + `FT_Load_Glyph' checks whether the driver supports scalable + outlines, but not if the face supports scalable outlines. + + * src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have + scalable outlines. + +2018-09-21 Werner Lemberg + + [raster] Fix disappearing vertical lines (#54589). + + * src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case + where both left and right outline exactly pass pixel centers. + +2018-09-20 Alexei Podtelezhnikov + + * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Tiny rounding tweak. + + This adds pixels in case a contour goes through the center + and they need to be turned on in the b/w rasterizer. + +2018-09-20 Alexei Podtelezhnikov + + [pcf] Replace charmap implementation. + + PCF comes with charmap lookup table, aka PCF encodings. Using it + directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times + faster than the original BDF-like binary searches. + + * src/pcf/pcf.h (PCF_EncodingRec): Removed. + (PCF_FaceRec): Remove `nencodings' and `encodings'. + * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced. + * src/pcf/pcfread.c (pcf_get_encodings): Store data differently. + +2018-09-20 Werner Lemberg + + [base] Remove unused function `FT_GlyphLoader_CopyPoints'. + + * include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c + (FT_GlyphLoader_CopyPoints): Do it. + +2018-09-19 Alexei Podtelezhnikov + + [pcf] Prepare to replace charmap implementation. + + * src/pcf/pcf.h (PCF_FaceRec): Updated to include... + (PCF_EncRec): ... this new structure to store charmap geometry. + + * src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry. + +2018-09-18 Alexei Podtelezhnikov + + Remove unused fields. + + * src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'. + * src/bdfdrvr.h (BDF_FaceRec): Ditto. + * src/winfonts/winfnt.h (FNT_FaceRec): Ditto. + +2018-09-17 Werner Lemberg + + [pshinter] Handle numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396 + + * src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H. + (psh_blues_snap_stem): Mask numeric overflow. + +2018-09-13 Werner Lemberg + + [truetype] Some fixes for VF checks. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317 + + * src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory + frame if we have invalid glyph variation data offsets. + (tt_face_vary_cvt): Protect against missing `tuplecoords' array. + Fix typo. + +2018-09-13 Werner Lemberg + + * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit. + +2018-09-13 Werner Lemberg + + * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316 + +2018-09-12 John Tytgat + + [sfnt] Better PS name handling (#54629). + + * src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks. + (get_win_string, get_apple_string): Return NULL when the PostScript + font name characters is not according to specification. + (get_win_string): Make trace output work if the high byte if + non-zero. + (sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred + Win PS name (when there is also an Apple PS name); change this into + a fallback to Apple PS name in case the Win PS name is invalid. + +2018-09-12 Werner Lemberg + + [truetype] Improve VF check. + + Triggered by + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255 + + * src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check + for `tupleCount'. + +2018-09-12 Werner Lemberg + + * src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'. + +2018-09-10 Armin Hasitzka + + * src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215 + +2018-09-09 Ben Wagner + + * builds/freetype.mk (refdoc-venv): Ensure python version (#54631). + +2018-09-07 Werner Lemberg + + [truetype] Fix assertion failure. + + Triggered by + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10212 + + * src/truetype/ttgload.c (load_truetype_glyph): Reintroduce + `opened_frame' (removed in a change from 2018-08-26) to handle + deallocation of the second frame. + +2018-09-05 Werner Lemberg + + Synchronize `ftdebug.c' files. + + * builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c, + builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'. + +2018-09-05 Nikhil Ramakrishnan + + Add documentation guidelines file. + + * docs/DOCGUIDE: New file. + +2018-09-04 Werner Lemberg + + * devel/ftoption.h: Synchronize with master `ftoption.h'. + +2018-09-03 Nikhil Ramakrishnan + + [docwriter] Don't break code snippets accross lines. + + Reported as + + https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00124.html + + * docs/reference/markdown/stylesheets/extra.css (.md-typeset code): + Add rule `white-space'. + +2018-09-03 Werner Lemberg + + */*: s/PSNames/psnames/. + + Only tracing messages are affected. + +2018-09-03 Werner Lemberg + + [sfnt] Fix heap buffer overflow in CPAL handling. + + * src/sfnt/ttcpal.c (tt_face_palette_set): Fix boundary test. + (tt_face_load_cpal): Updated. + +2018-09-01 Werner Lemberg + + Remove `FT_Outline_{New,Done}_Internal'. + + These public API functions(!) were always undocumented and have + escaped all clean-up efforts until now. + + * include/freetype/ftoutln.h (FT_Outline_New_Internal, + FT_Outline_Done_Internal): Removed. + + * src/base/ftoutln.h (FT_Outline_New_Internal, + FT_Outline_Done_Internal): Merge into... + (FT_Outline_New, FT_Outline_Done): ... these functions. + + * docs/README: Updated. + +2018-08-30 Alexei Podtelezhnikov + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format. + +2018-08-31 Armin Hasitzka + + [errors] Refine the macro logic surrounding `FT_Error_String'. + + * include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS, + FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after + checking it and introduce a new macro that takes proper care of + multiple-inclusion protection. + +2018-08-31 Werner Lemberg + + * src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls. + +2018-08-31 Werner Lemberg + + * src/base/ftdebug.c (FT_Throw): Reduce chattiness. + +2018-08-31 Werner Lemberg + + * src/autofit/afhints.c (af_glyph_hints_reload): Add initialization. + +2018-08-30 Alexei Podtelezhnikov + + Consolidate bitmap presetting and size assessment. + + * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): + Change return type. + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap + size assessment. + + * src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the + rendering of enourmous or far-fetched outlines. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + +2018-08-30 Alexei Podtelezhnikov + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono. + +2018-08-30 Armin Hasitzka + + [errors] Introduce a macro to control `FT_Error_String'. + + * devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS), + include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS): + New macro. + +2018-08-30 Armin Hasitzka + + [errors] Introduce `FT_Error_String'. + + * include/freetype/fterrors.h (FT_Error_String), + src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'. + + * src/base/ftbase.c, src/base/Jamfile (_source), + src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic. + + * src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'. + +2018-08-30 Werner Lemberg + + [autofit] Trace `before' and `after' edges of strong points. + + * src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays + `before' and `after'. + + * src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary + function. + (af_glyph_hints_dump_points): Trace `before' and `after' edges. + (af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set + `before' and `after' information. + +2018-08-30 Alexei Podtelezhnikov + + [base] Overflow-resistant bitmap presetting. + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it. + +2018-08-29 Armin Hasitzka + + Fix numeric overflows. + + * src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light, + psh_hint_table_find_strong_points): Fix numeric overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083 + +2018-08-29 Werner Lemberg + + [cff] Fix handling of `roll' op in old engine. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as + documented in the specification. + +2018-08-26 Werner Lemberg + + * src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values. + +2018-08-26 Nikhil Ramakrishnan + + * configure: Copy assets required by docwriter. + + Copy directory `docs/reference/markdown' when FreeType is compiled in a + different directory. + + Fixes `make refdoc' if builddir != srcdir. + + Reported as + + https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html + +2018-08-26 Werner Lemberg + + * src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057 + +2018-08-26 Werner Lemberg + + Minor tracing adjustments. + + * src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame): + Trace. + + * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing. + +2018-08-26 Werner Lemberg + + [truetype] Avoid nested frames. + + Triggered by + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054 + + * src/truetype/ttgload.c (load_truetype_glyph): Don't use variable + `opened_frame' to trace whether a frame must be closed at the end of + function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which + gets called for space glyphs) uses a frame by itself. Instead, + close the frame after loading the header, then use another frame for + the remaining part of the glyph later on. + + Also avoid calling `tt_get_metrics' twice under some circumstances. + +2018-08-26 Werner Lemberg + + Various minor clean-ups. + + * src/base/ftapi.c: Remove. Unused. + * src/base/Jamfile (_sources): Updated. + + * src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant + code. + +2018-08-25 Nikhil Ramakrishnan + + Convert documentation markup to Markdown. + + It is the result of a GSoC 2018 project; this separate ChangeLog + commit covers the last four commits + + ae5d1a4cec37557f31aec270332cfe886a62f9a0 + 53c69ce04faed3dcc68ca0f54cb8d703d8babf69 + 195728d5ba38f34fb2c2c20807c01656f2f59b66 + c962db28ea59225f0105c03d907d4a9b71765687 + + * docs/reference/markdown/images/favico.ico, + docs/reference/markdown/javascripts/extra.js, + docs/reference/markdown/stylesheets/extra.css: New files. + + * docs/reference/.gitignore, docs/reference/README: Updated. + + * src/tools/docmaker/*: Removed. It has been replaced with + `docwriter', a python package available at + + https://pypi.org/project/docwriter/ + + * Jamfile: Updated. + * builds/ansi/ansi-def.mk, builds/beos/beos-def.mk, + builds/dos/dos-def.mk, builds/os2/os2-def.mk (BIN), + builds/unix/unixddef.mk, builds/windows/win32-def.mk: New variable. + + * builds/unix/configure.raw: Check for `python' and `pip'. + If not present, warn that `make refdoc' will fail. + * builds/unix/unix-def.in (PYTHON, PIP, BIN): New variables. + + * builds/freetype.mk (PYTHON, PIP, VENV_NAME, VENV_DIR, ENV_PYTHON, + ENV_PIP): New variables. + (refdoc): Updated. + (refdoc-venv): New target. + (.PHONY): Updated. + +2018-08-23 Werner Lemberg + + Add macros for handling over-/underflowing `FT_Int64' values. + + * include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64, + MUL_INT64, DIV_INT64) [FT_LONG64]: New macros. + + * src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use + `SUB_INT64' and `MUL_INT64'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028 + +2018-08-22 Werner Lemberg + + [truetype] Improve legibility of `glyf' parsing. + + * src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR, + Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y, + OVERLAP_SIMPLE): New macros. + (TT_Load_Simple_Glyph): Use new macros to make code more readable. + Remove useless adjustment of `outline->tags' elements. + +2018-08-21 Werner Lemberg + + * src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981 + +2018-08-18 Werner Lemberg + + [psaux] Avoid slow PS font parsing in case of error. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955 + + * src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even + in case of error to avoid potential re-scanning. + +2018-08-18 Werner Lemberg + + [cff] Fix heap buffer overflow in old engine. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be + non-zero. + +2018-08-16 Young Xiao + + * builds/mac/ftmac.c (parse_fond): Fix buffer overrun. + + Reported as bug #54515, duplicate of #43540. + +2018-08-16 Werner Lemberg + + * builds/*/ftsystem.c (FT_COMPONENT): Updated also. + +2018-08-15 Alexei Podtelezhnikov + + [bdf] Don't track duplicate encodings. + + There is no harm except some umbiguity in broken fonts with duplicate + encodings. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking. + (_bdf_parse_t): Remove large `have' bitfield. + +2018-08-15 Werner Lemberg + + Don't use `trace_' prefix for FT_COMPONENT arguments. + + * include/freetype/internal/ftdebug.h (FT_TRACE_COMP, + FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix. + (FT_TRACE): Use `FT_TRACE_COMP'. + + */* (FT_COMPONENT): Updated. + +2018-08-14 Werner Lemberg + + Use formatting string in FT_TRACEX calls for non-simple arguments. + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + : + Do it. + + * src/psaux/pshints.c (cf2_hintmap_build): Ditto. + + * src/psaux/psintrp.c (cf2_interpT2CharString) : Ditto. + + * src/truetype/ttinterp.c (TT_RunIns): Ditto. + +2018-08-14 Alexei Podtelezhnikov + + [bdf] Remove unused fields. + + * src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified', + which were set but never used. + * src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font): + Updated accordingly. + +2018-08-14 Werner Lemberg + + [cff] Fix another segv in old engine. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in + dictionaries. + +2018-08-14 Werner Lemberg + + [cff] Fix missing error handling. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865 + + * src/psaux/cffparse.c (cff_parser_run) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of + `parse_charstrings_old'. + +2018-08-14 Alexei Podtelezhnikov + + [bdf] Remove unused overflow storage. + + * src/bdf/bdf.h (bdf_glyphlist_t): Remove this type. + (bdf_font_t): Remove `overflow' field. + * src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing. + +2018-08-14 Werner Lemberg + + [cff] Fix segv in old engine. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864 + + * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) + [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's + `random' field directly if parsing dictionaries. + +2018-08-13 Alexei Podtelezhnikov + + [bdf] Use unsigned types. + + * src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'. + (bdf_font_t): Unsign `default_char'. + * src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'. + + * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs, + _bdf_parse_start): Updated accordingly. + * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto. + +2018-08-13 Werner Lemberg + + * src/type42/t42parse.c (t42_parse_sfnts): One more format check. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832 + +2018-08-11 Werner Lemberg + + * src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811 + +2018-08-10 Alexei Podtelezhnikov + + * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs. + +2018-08-10 Ben Wagner + + * src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435). + +2018-08-10 Werner Lemberg + + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing. + +2018-08-10 Werner Lemberg + + Fix clang warnings. + + * src/base/ftdebug.c (ft_trace_level_enabled, + ft_trace_level_disabled): Add `static' keyword. + +2018-08-09 Alexei Podtelezhnikov + + [raster, smooth] Reinstate bitmap size limits. + + This again moves outline and bitmap size checks one level up. + + * src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous + outlines. + * src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps + and, therefore, outlines that require them. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + + * src/raster/ftraster.c (ft_black_render): Remove outline size checks. + * src/smooth/ftgrays.c (gray_raster_render): Ditto. + [STANDALONE]: Remove `FT_Outline_Get_CBox' copy. + +2018-08-08 Alexei Podtelezhnikov + + [pcf] Revert massive unsigning. + +2018-08-08 Werner Lemberg + + [smooth] Improve tracing. + + * src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing + if called the first time. + (gray_convert_glyph): Updated. + +2018-08-08 Werner Lemberg + + Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'. + + It sometimes makes sense to suppress tracing informations, for + example, if it outputs identical messages again and again. + + * include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a + pointer. + (FT_Trace_Disable, FT_Trace_Enable): New declarations. + + * src/base/ftdebug.c (ft_trace_levels): Rename to... + (ft_trace_levels_enabled): ... this. + (ft_trace_levels_disabled): New array. + (ft_trace_levels): New pointer. + (FT_Trace_Disable, FT_Trace_Enable): Implement. + (ft_debug_init): Updated. + +2018-08-08 Werner Lemberg + + Debugging improvements. + + * src/base/ftobjs.c (pixel_modes): Move this array to top level + from ... + (FT_Load_Glyph): ... here. + (FT_Render_Glyph_Internal): Use `width' x `height' in trace message. + Use `pixel_modes'. + +2018-08-08 Alexei Podtelezhnikov + + [pcf] Massive unsigning (part 2). + + Treat all size related properties as unsigned values. + + * src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and + `value'. + * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): Updated + parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, + RESOLUTION_X and RESOLUTION_Y. + +2018-08-08 Alexei Podtelezhnikov + + [pcf] Massive unsigning (part 1). + + Unofficial specifications hesitate to use unsigned 32-bit integers. + Negative values caused a lot of trouble in the past and it is safer + and easier to treat some properties as unsigned. + + * src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent', + `fontDescent', and `maxOverlap'. + * src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated. + * src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select, + PCF_Size_Request): Updated. + +2018-08-07 Alexei Podtelezhnikov + + * src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and + `bitmapSizes'. + +2018-08-06 Werner Lemberg + + * devel/ftoption.h: Synchronize with main `ftoption.h'. + +2018-08-06 Alexei Podtelezhnikov + + [pcf] Use unsigned types. + + * src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'. + * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto. + * src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types. + +2018-08-05 Werner Lemberg + + * src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow. + + Reported as + + https://bugs.chromium.org/p/chromium/issues/detail?id=777151 + +2018-08-04 Werner Lemberg + + * src/truetype/ttinterp.c (opcode_name): Fix typos. + +2018-08-04 Werner Lemberg + + Fix clang warnings. + + * src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of + `orientation'. + + * src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature. + + * src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables. + Add cast. + + * src/type1/t1load.c (parse_weight_vector): Fix cast. + +2018-07-31 Werner Lemberg + + * src/cid/cidtoken.h: Handle `XUID' keyword. + +2018-07-31 Werner Lemberg + + [cid] Trace PostScript dictionaries. + + * src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + (cid_load_keyword, cid_parse_font_matrix, parse_fd_array, + parse_expansion_factor, cid_parse_dict): Add tracing calls. + (parse_font_name): New function to trace `/FontName' keywords in + /FDArray dict. + (cid_field_records): Register `parse_font_name'. + +2018-07-30 Werner Lemberg + + [cff] Fix typo. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409 + + * src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary + check. + +2018-07-29 Werner Lemberg + + * src/pcf/pcfread.c (pcf_get_encodings): Another thinko. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608 + +2018-07-28 Alexei Podtelezhnikov + + [smooth] Fix Harmony memory management. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501 + + * src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer + after each rendering in case of failure. + +2018-07-28 Werner Lemberg + + [type1] Avoid segfaults with `FT_Get_PS_Font_Value'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610 + + * src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL. + +2018-07-27 Werner Lemberg + + [truetype] Make `TT_Set_MM_Blend' idempotent (#54388). + + * src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set + `face->doblend' if the current call to the function yields the same + blend coordinates as the previous call. + +2018-07-27 Werner Lemberg + + [psaux, type1]: More tracing improvements. + + * src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped + outline commands. + + * src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix + missing case. + (t1_decoder_parse_metrics): Make tracing output more compact. + + * src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose. + (T1_Get_Advances): Add tracing. + +2018-07-25 Werner Lemberg + + [psaux, type1] Trace PostScript dictionaries and other things. + + The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary + right now. + + * src/psaux/psobjs.c (ps_parser_load_field, + ps_parser_load_field_table): Add tracing calls. + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing + output more compact. + + * src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add + tracing messages. + + * src/type1/t1load.c (parse_blend_axis_types, + parse_blend_design_positions, parse_blend_design_map, + parse_weight_vector, t1_load_keyword, t1_parse_font_matrix, + parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add + tracing calls. + + * src/type1/t1objs.c (T1_Face_Init): Add tracing call. + + * src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more + verbose. + +2018-07-25 Werner Lemberg + + Fix minor ASAN run-time warnings. + + * src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call + `FT_MEM_ZERO' if we actually have a buffer. + (ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer. + +2018-07-24 Alexei Podtelezhnikov + + [build] Fortify dllexport/dllimport attributes (#53969,#54330). + + We no longer use predefined _DLL, which can be defined for static + builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead, + following libtool convention. + + * CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj: + Define DLL_EXPORT manually. + + * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in, + builds/vms/ftconfig.h, builds/windows/vc2010/index.html, + src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/. + +2018-07-24 Werner Lemberg + + [type1] Check relationship between number of axes and designs. + + For Multiple Masters fonts we don't support intermediate designs; + this implies that + + number_of_designs == 2 ^^ number_of_axes + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557 + + * src/type1/t1load.c (T1_Open_Face): Ensure above constraint. + (T1_Get_MM_Var): Remove now redundant test. + +2018-07-24 Hin-Tak Leung + + [truetype] Match ttdebug's naming of instruction mnemonics. + + * src/truetype/ttinterp.c: The form used in ttdebug, + "MDRP[G,B,W,?]", etc., is slightly more readable than + "MDRP[00,01,02,03]". + +2018-07-24 Werner Lemberg + + * src/pcf/pcfread.c (pcf_get_encodings): Thinko. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561 + +2018-07-22 Werner Lemberg + + * src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527 + +2018-07-22 Werner Lemberg + + * src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs. + + This is an oversight of the module change 2018-07-21. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524 + +2018-07-22 Werner Lemberg + + [cid] Sanitize `BlueShift' and `BlueFuzz'. + + This code is taken from the type1 module. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510 + + * src/cid/cidload.c (parse_fd_array): Set some private dict default + values. + (cid_face_open): Do the sanitizing. + Fix some tracing messages. + +2018-07-21 Werner Lemberg + + [pcf] Fix handling of the undefined glyph. + + This change makes the driver use the `defaultChar' property of PCF + files. + + * src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to + unsigned. + + * src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as + unsigned. + Validate `defaultChar'. + If `defaultChar' doesn't point to glyph index zero, swap glyphs with + index zero and index `defaultChar' and adjust the encodings + accordingly. + + * src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next, + PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced + the first character in the font to be the default character. + +2018-07-20 Armin Hasitzka + + Move the legacy fuzz target to the `freetype-testing' repository. + + It can now be found at + + https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy + + * src/tools/ftfuzzer: Remove this folder and its contents from the + repository. + +2018-07-20 Werner Lemberg + + [cff] Avoid left-shift of negative numbers (#54322). + + * src/cff/cffgload.c (cff_slot_load): Use multiplication. + +2018-07-17 Werner Lemberg + + Allow FT_ENCODING_NONE for `FT_Select_Charmap'. + + This is a valid encoding tag for BDF, PCF, and Windows FNT, and + there is no reason to disallow it for these formats. + + * src/base/ftobjs.c (FT_Select_Charmap): Implement it. + +2018-07-17 Werner Lemberg + + * src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'. + +2018-07-16 Armin Hasitzka + + * include/freetype/internal/ftcalc.h: Add macros for handling + harmless over-/underflowing `FT_Int' values. + + * src/sfnt/sfdriver.c (fixed2float): Fix negation of + `(int)(-2147483648)'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423 + +2018-07-16 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412 + +2018-07-12 Werner Lemberg + + * src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'. + + Taken from patch #9667, written by Steve Langasek + . + + This fixes a build failure (most probably a bug in gcc) on ppc64el + when building with -O3. + +2018-07-05 Werner Lemberg + + Fix typo (#54238). + + * src/base/ftcolor.c (FT_Palette_Set_Foreground_Color) + [!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value. + +2018-07-05 Werner Lemberg + + Adjust table size comparisons (#54242). + + * src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it. + +2018-07-05 Werner Lemberg + + Fix more 32bit issues (#54208). + + * src/cff/cffload.c (cff_blend_build_vector): Convert assertion into + run-time error. + + * src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against + numeric overflow. + +2018-07-04 Werner Lemberg + + Fix 32bit build warnings (#54239). + + * src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed + vs. unsigned comparisons. + + * srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto. + +2018-07-02 Jeff Carey + + * src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging. + +2018-07-02 Werner Lemberg + + s/palette_types/palette_flags/. + + Suggested by Behdad. + +2018-07-02 Werner Lemberg + + Make `FT_Get_Color_Glyph_Layer' return FT_Bool. + + * include/freetype/freetype.h, src/base/ftobjs.c + (FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated. + + * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func), + src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer): + Updated. + +2018-07-01 Werner Lemberg + + * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function. + + Reported by Behdad. + +2018-06-28 Alexei Podtelezhnikov + + * src/base/fttrigon.c (FT_Tan): Improve accuracy. + (FT_Vector_Rotate): Simplify. + +2018-06-28 Alexei Podtelezhnikov + + * src/base/ftobjs.c (FT_Set_Charmap): Robustify. + +2018-06-25 Werner Lemberg + + [truetype] Fix memory leak. + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers. + Fix typo in `goto' destination. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071 + +2018-06-25 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070 + +2018-06-24 Werner Lemberg + + [truetype] Increase precision while applying VF deltas. + + It turned out that we incorrectly round CVT and glyph point deltas + before accumulation, leading to severe positioning errors if there + are many delta values to sum up. + + Problem reported by Akiem Helmling and analyzed + by Behdad. + + * src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in + 16.16 format. + (tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16 + format array, and add the accumulated values to the CVT at the end + of the function. + (TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and + `points_out' in 16.16 format. + Collect deltas in `point_deltas_x' and `point_deltas_y', which are + 16.16 format arrays, and add the accumulated values to the glyph + coordinates at the end of the function. + +2018-06-24 Werner Lemberg + + New base function `FT_Matrix_Check' (#54019). + + * src/base/ftcalc.c (FT_Matrix_Check): New base function to properly + reject degenerate font matrices. + + * include/freetype/internal/ftcalc.h: Updated. + + * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c + (cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix), + src/type42/t42parse.c (t42_parse_font_matrix): Use + `FT_Matrix_Check'. + +2018-06-23 Werner Lemberg + + Fix typo. + + Reported by Behdad. + + * src/base/ftcolor.c (FT_Palette_Data_Get) + [!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/. + +2018-06-21 Werner Lemberg + + s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/. + + * include/freetype/ftcolor.h, include/freetype/internal/sfnt.h, + src/sfnt/ttcolr.c: Do it. + +2018-06-19 Werner Lemberg + + [sfnt] Fix CPAL heap buffer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968 + + * src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1 + offsets. + +2018-06-19 Werner Lemberg + + Doh. Don't use CPAL or COLR data if tables are missing. + + Reported by Alexei. + + * src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if + `colr' is NULL. + + * src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if + `cpal' is NULL. + +2018-06-17 Alexei Podtelezhnikov + + [base] Introduce `FT_New_Glyph'. + + This function facilitates access to full capabilities of FreeType + rendering engine for custom glyphs. This can be quite useful for + consistent rendering of mathematical and chemical formulas, e.g. + + https://bugs.chromium.org/p/chromium/issues/detail?id=757078 + + * include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New + function. + +2018-06-17 Armin Hasitzka + + [bdf] Fix underflow of an unsigned value. + + bdflib.c:1562 could be reached with `font->glyphs_used == 0'. That + caused an underflow of the unsigned value which results in undefined + behaviour. + + * src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before + if the `ENCODING' keyword cannot be found. + +2018-06-17 Werner Lemberg + + [base] Add tracing for `FT_Bitmap_Blend'. + + * include/freetype/internal/fttrace.h (trace_bitmap): New + enumeration. + + * src/base/ftbitmap.c (FT_COMPONENT): Define. + (FT_Bitmap_Blend): Add `FT_TRACE5' calls. + +2018-06-17 Werner Lemberg + + s/trace_bitmap/trace_checksum/. + + * include/freetype/internal/fttrace.h: s/bitmap/checksum/. + + * src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/. + Adjust code. + +2018-06-16 Werner Lemberg + + [sfnt] Fix color glyph layer loading. + + * src/sfnt/ttcolr.c (Colr): Add `table_size' field. + (tt_face_load_colr): Set it. + (tt_face_get_colr_layer): Check pointer limit for layer entries. + +2018-06-16 Werner Lemberg + + [sfnt] Fix color palette loading. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933 + + * src/sfnt/ttcpal.c (Cpal): Add `table_size' field. + (tt_face_load_cpal): Set it. + (tt_face_palette_set): Check pointer limit for color entries. + +2018-06-16 Werner Lemberg + + * src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow. + +2018-06-16 Werner Lemberg + + Add `FT_Bitmap_Blend' API. + + Still missing: Support for negative bitmap pitch and subpixel offset + of source bitmap. + + * include/freetype/ftbitmap.h, src/base/ftbitmap.c + (FT_Bitmap_Blend): New function. + +2018-06-14 Werner Lemberg + + Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'. + + This avoids any additional allocation of COLR related structures in + a glyph slot. + + * include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec, + FT_Get_GlyphLayers): Removed. + + * include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed. + (FT_Slot_InternalRec): Remove `color_layers'. + + * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): + Removed. + (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove + `load_colr_layer'. + + * src/base/ftobjs.c (ft_glyph_slot_done): Updated. + (FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'. + (FT_Get_GlyphLayers): Removed. + + * src/sfnt/sfdriver.c (sfnt_interface): Updated. + + * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed. + * src/sfnt/ttcolr.h: Updated. + + * src/truetype/ttgload.c (TT_Load_Glyph): Updated. + +2018-06-14 Werner Lemberg + + Provide iterative API to access `COLR' data. + + This solution doesn't store any data in an `FT_GlyphSlot' object. + + * include/freetype/freetype.h (FT_LayerIterator): New structure. + (FT_Get_Color_Glyph_Layer): New function. + + * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New + function type. + (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. + + * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it. + + * src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function. + * src/sfnt/ttcolr.h: Updated. + + * src/sfnt/sfdriver.c (sfnt_interface): Updated. + +2018-06-14 Werner Lemberg + + Add glyph index and glyph load flags to glyph slot. + + * include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused + `reserved' field to `glyph_index'. + + * include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add + `load_flags' field. + + * src/base/ftobjs.c (FT_Load_Glyph): Set new fields. + +2018-06-14 Werner Lemberg + + [sfnt] Move `CPAL' stuff into separate files. + + * src/sfnt/sfdriver.c: Include `ttcpal.h'. + * src/sfnt/sfnt.c: Include `ttcpal.c'. + + * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ... + * src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files. + + * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): + Updated. + + * include/freetype/internal/fttrace.h: Add support for `colr' and + `cpal'. + Sort entries. + +2018-06-13 Werner Lemberg + + [sfnt] Separate `CPAL' and `COLR' table handling. + + Later on we want to support the `SVG' table also, which needs `CPAL' + (but not `COLR'). + + * include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal' + and `free_cpal' fields. + (FT_DEFINE_SFNT_INTERFACE): Updated. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Replace + `colr_and_cpal' fields with `cpal' and `colr'. + + * src/sfnt/sfdriver.c (sfnt_interface): Updated. + + * src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated. + + * src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field. + (ColrCpal): Removed. + (tt_face_load_colr): Split off CPAL handling into... + (tt_face_load_cpal): ... this new function. + (tt_face_free_colr): Split off CPAL handling into... + (tt_face_free_cpal): ... this new function. + (tt_face_load_colr_layers, tt_face_palette_set): Updated. + + * src/sfnt/ttcolr.h: Updated. + + * src/truetype/ttgload.c (TT_Load_Glyph): Updated. + +2018-06-12 Werner Lemberg + + [sfnt] Fix `sizeof' thinko. + + * src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't + use `sizeof' for computing array limit. + +2018-06-12 Werner Lemberg + + Finish CPAL/COLR support (4/4). + + * src/sfnt/ttcolr.c (tt_face_find_color): Removed. + (tt_face_colr_blend_layer): Use `face->palette' instead of calling + `tt_face_find_color'. + Use and set text foreground color. + +2018-06-12 Werner Lemberg + + Finish CPAL/COLR support (3/4). + + * src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H. + (FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement + functions. + +2018-06-12 Werner Lemberg + + Finish CPAL/COLR support (2/4). + + * src/sfnt/ttcolr.c (tt_face_palette_set): New function. + (tt_face_load_colr): Allocate `face->palette' and call + `tt_face_palette_set'. + Adjust return error code in case of error. + + * src/sfnt/ttcolr.h: Updated. + + * include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New + function type. + (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it. + + * src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c + (sfnt_done_face): Updated. + +2018-06-12 Werner Lemberg + + Finish CPAL/COLR support (1/4). + + * include/freetype/internal/tttypes.h (TT_FaceRec): New fields + `palette_index', `palette', `have_foreground_color' and + `foreground_color'. + +2018-06-12 Werner Lemberg + + [sfnt] Minor. + + * src/sfnt/ttcolr.c (tt_face_load_colr_layers): + s/palette_index/palette_entry_index/ for consistency. + Adjust return error code in case of error. + +2018-06-11 Alexei Podtelezhnikov + + [raster] Clean up. + + * src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision): + Clean up after 5-level gray removal (8dc8635874). + (Vertical_Sweep_Span): Be brief. + +2018-06-10 Werner Lemberg + + [sfnt] Fix compiler warnings. + + * src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers, + tt_face_colr_blend_layer): Add `NULL' initializers. + +2018-06-10 Werner Lemberg + + s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/. + + * include/freetype/ftcolor.h, include/freetype/internal/tttypes.h, + src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated. + +2018-06-10 Nikolaus Waxweiler + + CMakeLists: also accept IOS_PLATFORM=SIMULATOR64 + + This might be needed to build FreeType for the iOS simulator. See + https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed + by Steve Robinson. + + * CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64 + +2018-06-10 Werner Lemberg + + Implement `FT_Palette_Get'. + + * src/base/ftcolor.c: New file. + + * src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC), + src/base/ftbase.c: Add `ftcolor.c'. + +2018-06-10 Werner Lemberg + + * src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks. + +2018-06-09 Alexei Podtelezhnikov + + [raster] Deal with pitch sign earlier. + + * src/raster/ftraster.c (black_TWorker): Remove unused `traceG', + s/bTarget/bOrigin/. + (Render_Glyph): Set `ras.bOrigin' at the bottom-left corner. + (Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}): + Updated accordingly. + +2018-06-09 Werner Lemberg + + [sfnt] Read `CPAL' version 1 tables. + + * include/freetype/internal.tttypes.h: Include FT_COLOR_H. + (TT_FaceRec): Add `palette' field. + + * src/sfnt/ttcolr.c: Include FT_COLOR_H. + (Cpal): Remove all data covered by the new `palette' field in + `TT_FaceRec'. + (tt_face_load_colr): Updated. + Read `CPAL' version 1 data. + (tt_face_load_colr_layers, tt_face_find_color): Updated. + + * src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data. + +2018-06-07 Alexei Podtelezhnikov + + [base] API for Harmony LCD rendering. + + This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary + LCD subpixel geometry including non-striped patterns. + + * src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function. + * include/freetype/ftlcdfil.h: Document it. + * include/freetype/freetype.h: Minor. + * include/freetype/ftchapters.h: Minor. + +2018-06-06 Werner Lemberg + + ftcolor.h: Redesign API. + + While going to implement it I noticed that I need access to most of + the `CPAL' elements; I thus plan to add a `cpal' field to + `TT_FaceRec', which makes most of the previously suggested API + functions obsolete because the fields will be directly accessible. + +2018-06-06 Parth Wazurkar + + [bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated + FT_FACE_FLAG_FAST_GLYPHS flag. + + * src/pcf/pcfread.c (pcf_load_font): Remove deprecated + FT_FACE_FLAG_FAST_GLYPHS flag. + +2018-06-06 Werner Lemberg + + [smooth, raster] Limit bitmap size (#54019). + + * src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add + function. + [!STANDALONE]: Include FT_OUTLINE_H. + (ft_black_render): Compute CBox and reject glyphs larger than + 0xFFFF x 0xFFFF. + + * src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger + than 0xFFFF x 0xFFFF. + +2018-06-03 Armin Hasitzka + + * src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables. + +2018-06-03 Werner Lemberg + + * src/tools/glnames.py (main): Emit header in `light' comment style. + +2018-06-02 Alexei Podtelezhnikov + + [smooth] Attempt to mitigate bug #54019. + + The robust rendering of estra large glyphs came with unbearable cost. + The old way of bisecting should fail but fail faster. + + * src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting + in y-direction. + +2018-06-02 Werner Lemberg + + * src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706 + +2018-06-02 Werner Lemberg + + * src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033). + +2018-05-31 Werner Lemberg + + * src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field. + + This is no longer used. + +2018-05-31 Werner Lemberg + + [sfnt] Get colors from `CPAL' table in right order (#54015). + + * src/sfnt/ttcolr.c (tt_face_find_color): Fix it. + +2018-05-30 Werner Lemberg + + ftcolor.h: Improve API design, fix typos (#54011, #54014). + + * include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with... + (FT_Palette_Get_Name_IDs): ... this function. + (FT_Palette_Get_Entry_Names): Replace with... + (FT_Palette_Get_Entry_Name_IDs): ... this function + s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/. + +2018-05-30 Armin Hasitzka + + Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b. + + * src/autofit/afloader.c (af_loader_load_glyph): Move the + initialisationand declaration of variables into the if-block. + +2018-05-30 Armin Hasitzka + + Fix pointer underflow. + + The declaration of `edge2' can be reached with `edge1 == NULL' and + `axis->edges == 0' which results in undefined behaviour. + + * src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2' + after checking `axis->num_edges > 1'. `edge1 != NULL' can be assumed. + +2018-05-30 Werner Lemberg + + Various minor color fixes. + + * include/freetype/config/ftheader.h (FT_COLOR_H): New macro. + + * include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change + type of `load_flags' to `FT_Int32'. + + * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change + type of `idx' to `FT_UInt'. + (TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'. + + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of + `load_flags' to `FT_Int32'. + + * src/sfnt/ttcolr.c (find_base_glyph_record, + tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'. + (tt_face_find_color, tt_face_colr_blend_layer): Change type of + `color_index' to `FT_UInt'. + Fix signedness and type issues. + + * src/sfnt/ttcolr.h: Updated. + +2018-05-25 Nikhil Ramakrishnan + + [docmaker] Fix missing `Defined in (...)' under Windows/Cygwin. + + This platform uses backslashes for paths, which docmaker didn't + understand correctly. + + * src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use + `os.path.normpath' to normalize the path for the platform being + used. + +2018-05-24 Alexei Podtelezhnikov + + [smooth] Formalize Harmony LCD rendering. + + This generalizes magic outline shifts that make Harmony LCD + rendering work in terms of precise two-dimensional RGB subpixel + positions. These coordinates are now set in time of the `smooth' + module initialization and later used to shift a glyph outline for + rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same + coordinates. The letter, however, rotates them before using. + The LCD bitmap padding is also calculated using these coordinates. + + * include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field + `lcd_geometry'. + * src/base/ftlcdfil.c (ft_lcd_padding): Reworked. + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly. + + * src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING] + (ft_smooth_init): Initialize `lcd_geometry'. + (ft_smooth_render_generic): Formalize outline shifts. + +2018-05-22 Werner Lemberg + + [truetype] Reject elements of composites with invalid glyph indices. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413 + + * src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it. + +2018-05-22 Werner Lemberg + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points. + +2018-05-20 Werner Lemberg + + * include/freetype/ftcolor.h: New file. + + This is an interface to the `CPAL' OpenType table. No + implementation yet. + +2018-05-18 Alexei Podtelezhnikov + + * include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'. + + Actually `_BitScanReverse' is available since VS2005. + +2018-05-18 Werner Lemberg + + * include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value. + + Older VC versions don't provide `_BitScanReverse'. We test for VC + 2013. + + Reported by John Emmas . + +2018-05-17 Werner Lemberg + + s/inline/__inline/ for MSVC. + + Reported by John Emmas . + + * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it. + +2018-05-16 Werner Lemberg + + Add function `FT_Get_GlyphLayers' to access `COLR' table data. + + * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this + structure to... + * include/freetype/freetype.h (FT_Glyph_LayerRec): ... this + header file. + (FT_Glyph_Layer): New typedef. + Update code to use it where appropriate. + + * src/base/ftobjs.c (FT_Get_GlyphLayers): New function. + +2018-05-15 Alexei Podtelezhnikov + + [base] Fix mono bitmap presetting (#53896). + + It is rather fundamental to set monochrome bitmap based on rounded + CBox because the b/w rasterizer turns on pixels when their centers are + inside the glyph outline. The dropout control is unpredictable and can + distort narrow glyphs if the bitmap is too wide. + + Reported by Chris Liddell. + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries + are too close, adjust them before rounding. + +2018-05-15 Werner Lemberg + + [psaux] Fix compiler warning (#53915). + + * src/psaux/psft.c (cf2_freeT1SeacComponent): Do it. + +2018-05-15 Werner Lemberg + + [sfnt] Fix memory leak in handling `COLR' data. + + * src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array + before reassigning allocated memory. + Only allocate `color_layers' if we don't have one already. + +2018-05-15 Werner Lemberg + + [sfnt] If `COLR' is present, don't assume that all glyphs use it. + + * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if + current glyph is not a `COLR' base glyph. + + * src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate + `color_layers' if there are no color layers. + +2018-05-14 Werner Lemberg + + * src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'. + +2018-05-14 Werner Lemberg + + Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set. + + * src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it. + +2018-05-13 Werner Lemberg + + * src/base/ftobjs.c (FT_Load_Glyph): Improve tracing. + +2018-05-13 Shao Yu Zhang + Werner Lemberg + + [sfnt] Preliminary support of coloured layer outlines (#44689). + + This commit enables OpenType's COLR/CPAL table handling; a typical + application are color emojis that can be scaled to any size. + + If the color palette does not exist or is invalid, the rendering + step rasterizes the outline instead. The current implementation + assumes that the foreground is black. + + Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS. + + There are still some issues with metrics; additionally, an API to + fetch color layers is missing. + + * devel/ftoption.h, include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_COLOR_LAYERS): New macro. + + * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec, + FT_Colr_InternalRec): New structures. + (FT_Slot_InternalRec): Add `color_layers' field. + + * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func, + TT_Blend_Colr_Func): New function types. + (SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer', + and `colr_blend' fields. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add + `colr_and_cpal' field. + + * include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New + macros. + + * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files. + + * src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal): + Handle glyph color layers. + + * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add + `ttcolr.c'. + + * src/sfnt/sfdriver.c: Include `ttcolr.h'. + (PUT_COLOR_LAYERS): New macro. + Update call to `FT_DEFINE_SFNT_INTERFACE'. + + * src/sfnt/sfnt.c: Include `ttcolr.c'. + + * src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables. + (sfnt_done_face): Updated. + + * src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers. + +2018-05-12 Arkady Shapkin + + Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636). + + * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement + it. + +2018-05-10 Alan Coopersmith + + Fix DLL compilation on Solaris. + + AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'. The + Solaris Studio 12.1 through 12.5 compilers see the + `-fvisibility=hidden' flag, but ignore it with a warning of: + + cc: Warning: Option -fvisibility=hidden passed to ld, + if ld is invoked, ignored otherwise + + AC_LINK_IFELSE does the compile and then tries to link the result, + at which point the Solaris linker will issue an error: + + ld: fatal: option '-fvisibility=hidden' is incompatible with + building a dynamic executable + + If we don't use AC_LINK_IFELSE to catch the error, then configure + will fail further tests which attempt to link, such as those testing + dependencies like `libbz2'. + + Also, don't try adding `-fvisibility' if we have already added + `-xldscope', just use one of them, since Sun Studio 12 and earlier + compilers only issue a warning, and don't try passing through to the + linker to generate an error, so AC_LINK_IFELSE doesn't catch them. + + Tested on Solaris 11.4 beta with compiler versions: + + Sun Studio 8 (Sun C 5.5) + Sun Studio 10 (Sun C 5.7) + Sun Studio 11 (Sun C 5.8) + Sun Studio 12 (Sun C 5.9) + Sun Studio 12.1 (Sun C 5.10) + Oracle Solaris Studio 12.2 (Sun C 5.11) + Oracle Solaris Studio 12.3 (Sun C 5.12) + Oracle Solaris Studio 12.4 (Sun C 5.13) + Oracle Developer Studio 12.5 (Sun C 5.14) + Oracle Developer Studio 12.6 (Sun C 5.15) + gcc 5.5.0 + gcc 7.3.0 + + and verified the libfreetype.so.6 generated by each of those + compilers exported the same set of symbols. + + * builds/unix/configure.raw: Implement it. + +2018-05-08 Werner Lemberg + + [autofit] Avoid potential SEGV if running out of memory. + + Problem reported by Shailesh Mistry . + + * src/autofit/afshaper.c (af_shaper_buf_create, + af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't + allocate and free a four-byte buffer. Instead, make those functions + no-ops; the calling functions will provide a pointer to a buffer + instead. + + * src/autofit/afcjk.c (af_cjk_metrics_init_widths, + af_cjk_metrics_init_blues, af_cjk_metrics_check_digits), + src/autofit/aflatin.c (af_latin_metrics_init_widths, + af_latin_metrics_init_blues, af_latin_metrics_check_digits) + [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for + `shaper_buf'. + +2018-05-07 Nikolaus Waxweiler + + [cmake] Allow using project as subfolder in other project. + + * CMakeLists.txt: Test for CMake build directory being different + from source directory. Provide other parts of the build system + access the full include directory. + +2018-05-07 Werner Lemberg + + [build] Suppress configure's `nothing to be done' message. + + This is due to calling the configure script via `make' (within the + top-level `configure' wrapper script). The same can happen for all + other secondary make targets that are used to only modify the + primary one, e.g., `make setup devel'. + + * builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16), + builds/os2/detect (visualage, watcom, borlandc, devel), + builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk + (visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc, + devel-gcc): Use no-op recipe. + +2018-05-04 suzuki toshiya + + Support symbol visibility features of Sun / Oracle C compilers. + + Reported by Kiyoshi Kanazawa: + https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html + Thanks to the suggestions by Alexei and Alan Coopersmith. + + * builds/unix/configure.raw: Check if "-xldscope=hidden" is + accepted, and if so, it is added to CFLAGS. This is the option + making Sun / Oracle C compilers hide the symbols from global + scope. + * include/freetype/config/ftconfig.h: Use "__global" prefix + for FT_EXPORT() macro, if SunPro C is newer than Sun ONE + Studio 8 (2003). + * builds/unix/ftconfig.in: Ditto. + * builds/vms/ftconfig.h: Ditto. + +2018-05-02 Nikolaus Waxweiler + + Unbreak CMake Windows installation + + * CMakeLists.txt: Generate ftconfig.h on non-UNIX. + +2018-05-02 Werner Lemberg + + Remove FT_CONFIG_OPTION_PIC and related code. + + */* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this + preprocessor symbol. + + */*: Replace `XXX_GET' macros (which could be either a function in + PIC mode or an array in non-PIC mode) with `xxx' arrays. + + * include/freetype/internal/ftpic.h, src/autofit/afpic.c, + src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h, + src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h, + src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c, + src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h, + src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c, + src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h: + Removed. + +2018-05-01 Werner Lemberg + + * Version 2.9.1 released. + ========================= + + + Tag sources with `VER-2-9-1'. + + * docs/VERSION.TXT: Add entry for version 2.9.1. + * docs/CHANGES: Updated. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + src/base/ftver.rc, builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. + + * builds/unix/configure.raw (version_info): Set to 22:1:16. + * CMakeLists.txt (VERSION_PATCH): Set to 1. + + * include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER. + +2018-04-26 Werner Lemberg + + Another fix for handling invalid format 2 cmaps. + + Sigh. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003 + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid + an endless loop. + +2018-04-24 Ben Wagner + + [base] Avoid undefined behaviour in lcd filtering code (#53727). + + * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): + Ensure `height > 0'. + +2018-04-22 Werner Lemberg + + * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. + +2018-04-22 Alexei Podtelezhnikov + + [base] Fix bitmap emboldening. + + Bug introduced after release 2.8. + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use + `FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the + bitmap copying code to take care of this fact. + +2018-04-22 Werner Lemberg + + Another fix for handling invalid format 2 cmaps. + + The previous commit was incomplete. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928 + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid + an endless loop. + +2018-04-19 Werner Lemberg + + Fix handling of invalid format 2 cmaps. + + The problem was introduced after the last release. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828 + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop. + +2018-04-17 Werner Lemberg + + [truetype] Integer overflow issues. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739 + + * src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG. + +2018-04-16 Werner Lemberg + + [truetype] Integer overflow issues. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718 + + * src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG. + +2018-04-15 Alexei Podtelezhnikov + + [build] Use `info' function of make 3.81. + + * configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU, + docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements. + + * builds/detect.mk (std_setup): Replace `echo' with `info'. + (dos_setup): Removed. + * builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk, + builds/windows/detect.mk, builds/os2/detect.mk: Updated. + * builds/newline: No longer needed. + +2018-04-15 Werner Lemberg + + [truetype]: Limit `SLOOP' bytecode argument to 16 bits. + + This fixes + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707 + + * src/truetype/ttinterp.c (Ins_SLOOP): Do it. + +2018-04-14 Werner Lemberg + + [truetype] Integer overflow issues. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652 + + * src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG. + +2018-04-14 Werner Lemberg + + [autofit] Update to Unicode 11.0.0. + + But no support new scripts (volunteers welcomed). + + * src/autofit/afranges.c (af_arab_nonbase_uniranges, + af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges, + af_deva_nonbase_uniranges, af_geor_uniranges, + af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges, + af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges, + af_hani_uniranges): Add new data. + +2018-04-10 Nikolaus Waxweiler + + * CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive + modernization measures. + + This brings up the minimum required CMake version to 2.8.12. + + The installation paths follow the GNU defaults now, e.g. installing on a + 64 bit host will place binaries into the lib64/ folder on e.g. Fedora. + + Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC). + + CMake will no longer look for a C++ compiler. + + Library and .so version now match the Autotools build. + + Comments in the build file and informational messages now use platform + agnostic example commands. + + ftoption.h and ftconfig.h are written directly without a redundant `-new' + copy. + + External dependencies are expressed as option()s and will turn up as such + in cmake-gui. + + Internal: Properties such as dependencies and include directories are now + privately set on the freetype library instead of globally. + + The CPack definitions have been cleaned up, the `make dist' has been + removed. Source packages generated with CPack don't contain Autotools + files and aren't used by the maintainers anyway. + + On Windows, src/base/ftver.rc is compiled to decorate the library with + version and copyright information. + + A pkg-config file is now generated and installed. + +2018-04-09 Werner Lemberg + + [truetype] Integer overflow issues. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453 + + * src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use + ADD_LONG and SUB_LONG. + +2018-04-06 Alexei Podtelezhnikov + + [windows, wince] Clean up legacy project files. + + * builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2008-ce/freetype.vcproj, + builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2008/freetype.vcproj, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/freetype.dsp: Remove per-file compile flags. + +2018-04-04 Werner Lemberg + + [cff, type1] Sanitize `BlueFuzz' and `BlueShift'. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371 + + * src/cff/cffload.c (cff_load_private_dict): Sanitize + `priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later + on. + + * src/type1/t1load.c (T1_Open_Face): Ditto. + +2018-04-04 Ben Wagner + + * src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554), + `DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'. + (tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts + in above. + +2018-04-01 Werner Lemberg + + * builds/toplevel.mk (work): Use $(SEP). + + This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this + platform, and this program only understands backslashes in paths. + + Reported by Nikhil Ramakrishnan . + +2018-03-30 Werner Lemberg + + [truetype] Fix memory leak (only if tracing is on). + + * src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix + it. + +2018-03-23 Ben Wagner + + [sfnt] Correctly handle missing bitmaps in sbix format (#53404). + + * src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value. + +2018-03-23 Ben Wagner + + [truetype] Fix advance of empty glyphs in bitmap fonts (#53393). + + * src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics + for empty bitmaps. + +2018-03-22 Werner Lemberg + + Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415). + + builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt, + builds/mac/FreeType.m68k_far.make.txt, + builds/mac/FreeType.ppc_carbon.make.txt, + builds/mac/FreeType.ppc_classic.make.txt, + builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2008-ce/freetype.vcproj, + builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/freetype.vcxproj.filters, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, vms_make.com: Do it. + +2018-03-13 Werner Lemberg + + * src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric + overflow. + +2018-03-13 Werner Lemberg + + Fix cmap format 2 handling (#53320). + + The patch introduced for #52646 was not correct. + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition. + +2018-03-10 Nikolaus Waxweiler + + * CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05. + +2018-03-09 Chun-wei Fan + + * CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287). + + Do not limit DLL builds to MinGW, since we already have + `__declspec(dllexport)' directives in `ftconfig.h'. + Also suppress more warnings for POSIX functions. + +2018-03-08 Hugh McMaster + + Make installation of `freetype-config' optional (#53093). + + * builds/unix/configure.raw: Add option `--enable-freetype-config' + and set `INSTALL_FT2_CONFIG'. + * builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define. + * builds/unix/install.mk (install): Handle it. + +2018-03-05 Werner Lemberg + + Make `ftlcdfil.c' part of the `base' module. + + `ftobjs.c' needs `ft_lcd_padding'. + + Problem reported by duhuanpeng <548708880@qq.com>. + + * modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'. + + * src/base/ftbase.c: Include `ftlcdfil.c'. + * src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'. + * src/base/Jamfile (_sources): Adjusted. + + * docs/INSTALL.ANY: Updated. + +2018-03-05 Werner Lemberg + + Make `ftfntfmt.c' part of the `base' module. + + `ftobjs.c' needs `FT_Get_Font_Format'. + + Problem reported by duhuanpeng <548708880@qq.com>. + + * modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'. + + * src/base/ftbase.c: Include `ftfntfmt.c'. + * src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'. + * src/base/Jamfile (_sources): Adjusted. + + * docs/INSTALL.ANY: Updated. + +2018-03-01 Werner Lemberg + + * src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments. + +2018-02-23 Werner Lemberg + + * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer. + + Problem reported by Alan Coopersmith . + +2018-02-17 Werner Lemberg + + [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). + +2018-02-06 Werner Lemberg + + [truetype] Integer overflow issues. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027 + + * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use + SUB_LONG; avoid FT_ABS. + +2018-02-04 Alexei Podtelezhnikov + + [unix] Use -fvisibility=hidden. + + It is now widely recommended that ELF shared libraries hide symbols + except those with explicit __attribute__((visibility("default"))). + This is supported by all major compilers and should rather be an + option in libtool. + + * builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS. + * builds/unix/ftconfig.in, builds/vms/ftconfig.h, + include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility + attribute. + +2018-01-27 Werner Lemberg + + [truetype] Better protection against invalid VF data. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739 + + Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7. + + * src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize + `normalizedcoords'. + +2018-01-27 Werner Lemberg + + * src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736 + +2018-01-27 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_set_mm_blend): Minor. + +2018-01-27 Werner Lemberg + + [truetype] Better trace VF instances. + + * src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number + of coordinates. + (TT_Get_MM_Var): Trace instance indices names. + (TT_Set_Var_Design): Updated. + +2018-01-27 Werner Lemberg + + [truetype] Beautify tracing of VF axis records. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a + table-like manner. + +2018-01-26 Ben Wagner + + [truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955). + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Set + `face->blend->num_axis' in case we have to initialize the + `face->blend'. + +2018-01-23 Alexei Podtelezhnikov + + [apinames] Anonymous version map for GNU linker. + + * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3. + (OutputFormat): Add `OUTPUT_GNU_VERMAP'. + (names_dump): Handle it. + (usage): Updated. + (main): Handle new command line flag `-wL'. + +2018-01-21 Alexei Podtelezhnikov + + [unix] Call libtool to clean up. + + * builds/unix/install.mk (clean_project_unix, distclean_project_unix): + Use libtool. + * builds/freetype.mk: Minor. + +2018-01-18 Alexei Podtelezhnikov + + * src/base/ftver.rc: Fix mingw-w64 compilation. + +2018-01-18 Alexei Podtelezhnikov + + [build] Enable VERSIONINFO resource for Cygwin/MinGW. + + * builds/unix/configure.raw: Check for resource compiler. + * builds/unix/unix-cc.in: Conditionally set up resource compiler. + * builds/freetype.mk: Add conditional rule for `ftver.rc'. + * src/base/ftver.rc: Copyright notice and year update. + +2018-01-18 Alexei Podtelezhnikov + + [build] Move VERSIONINFO resource. + + * builds/windows/vc2010/freetype.vcxproj: Updated. + * builds/windows/ftver.rc: Move file from here... + * src/base/ftver.rc: ... to here. + +2018-01-12 Alexei Podtelezhnikov + + [build] Expand dllexport/dllimport to Cygwin/MinGW. + + * include/freetype/config/ftconfig.h: Respect DLL_EXPORT, + s/_MSC_VER/_WIN32/. + * builds/unix/ftconfig.in: Replicate here. + * builds/vms/ftconfig.h: Replicate here. + +2018-01-12 Alexei Podtelezhnikov + + [build] Improve and document MSVC build. + + * include/freetype/config/ftconfig.h: Guard dllexport/dllimport + attributes with _DLL and FT2_DLLIMPORT. + * builds/windows/vc2010/index.html: Update documentation. + +2018-01-10 Steve Robinson + + * CMakeLists.txt [win32]: Suppress warnings for POSIX functions. + +2018-01-10 Ewald Hew + + [psaux] Correctly handle Flex features (#52846). + + * src/psaux/psintrp.c (cf2_interpT2CharString) : Do not move if doing Flex. + +2018-01-09 Alexei Podtelezhnikov + + * builds/windows/vc2010/freetype.sln: Synchronize with the project. + +2018-01-08 Werner Lemberg + + * Version 2.9 released. + ======================= + + + Tag sources with `VER-2-9'. + + * docs/VERSION.TXT: Add entry for version 2.9. + + * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, + builds/windows/vc2005/index.html, + builds/windows/vc2008/freetype.vcproj, + builds/windows/vc2008/index.html, + builds/windows/vc2010/freetype.vcxproj, + builds/windows/vc2010/index.html, + builds/windows/visualc/freetype.dsp, + builds/windows/visualc/freetype.vcproj, + builds/windows/visualc/index.html, + builds/windows/visualce/freetype.dsp, + builds/windows/visualce/freetype.vcproj, + builds/windows/visualce/index.html, + builds/windows/ftver.rc, + builds/wince/vc2005-ce/freetype.vcproj, + builds/wince/vc2005-ce/index.html, + builds/wince/vc2008-ce/freetype.vcproj, + builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/. + + * include/freetype/freetype.h (FREETYPE_MINOR): Set to 9. + (FREETYPE_PATCH): Set to 0. + + * builds/unix/configure.raw (version_info): Set to 22:0:16. + * CMakeLists.txt (VERSION_PATCH): Set to 0. + +2018-01-07 Werner Lemberg + + Add check for librt, needed for `ftbench' (#52824). + + * builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will + hold `-lrt' if necessary. + + * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable. + +2018-01-07 Ewald Hew + + [psaux] Fix Type 1 glyphs with too many stem hints. + + According to the CFF specification, charstrings can have up to 96 stem + hints. Due to hint replacement routines in Type 1 charstrings, some + glyphs are rejected by the Adobe engine, which implements the above + limit. This fix turns off hinting for such glyphs. + + * src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling + `cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off + hinting. + +2018-01-06 Werner Lemberg + + Add `FT_Done_MM_Var'. + + This is necessary in case the application's memory routines differ + from FreeType. A typical example is a Python application on Windows + that calls FreeType compiled as a DLL via the `ctypes' interface. + + * include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare + and define. + + * docs/CHANGES: Updated. + +2018-01-03 Werner Lemberg + + [truetype] Round offsets of glyph components only if hinting is on. + + * src/truetype/ttgload.c (TT_Process_Composite_Component): Implement + it. + +2018-01-03 Werner Lemberg + + * src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code. + + This is a better fix than the previous commit, which is now + reverted. + +2018-01-03 Alexei Podtelezhnikov + + Move internal LCD-related declarations. + + * include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir): + Move from here... + * include/freetype/internal/ftobjs.h: ... to here. + +2018-01-03 Alexei Podtelezhnikov + + * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) + [_MSC_VER]: Limit Visual C++ attributes. + +2018-01-03 Werner Lemberg + + [truetype] Make blend/design coordinate round-tripping work. + + Behdad reported that setting blend coordinates, then getting design + coordinates did incorrectly return the default instance's + coordinates. + + * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it. + +2017-12-31 Werner Lemberg + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838 + +2017-12-31 Werner Lemberg + + Synchronize other Windows project files. + + * builds/windows/*: Add missing files. + +2017-12-31 Werner Lemberg + + Update Visual C 2010 project files. + + Problem reported by Hin-Tak. + + * builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and + `ftcid.c'. + Sort entries. + * builds/windows/vc2010/freetype.vcxproj.filter: Ditto. + Fix members of `FT_MODULE' group. + +2017-12-30 Werner Lemberg + + * builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file. + +2017-12-28 Werner Lemberg + + * builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file. + + Reported by Nikolaus. + +2017-12-27 Werner Lemberg + + Fix compiler warnings. + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and + `new_pitch' unsigned. + + * src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H. + +2017-12-27 Werner Lemberg + + Fixes for `make multi'. + + * include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'. + (ps_property_get): Harmonize declaration with corresponding + function typedef. + + * include/freety[e/internal/fttrace.h: Add `trace_psprops'. + + * src/base/ftpsprop.c: Include necessary header files. + (FT_COMPONENT): Define. + (ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'. + (ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'. + Harmonize declaration with corresponding function typedef. + +2017-12-27 Werner Lemberg + + Provide support for intra-module callback functions. + + This is needed especially for `make multi' with C++. + + * include/freetype/config/ftconfig.h (FT_BASE_CALLBACK, + FT_BASE_CALLBACK_DEF): New macros. + +2017-12-25 Ewald Hew + + Move PostScript drivers' property handlers to `base'. + + This reduces the amount of duplicated code across PostScript + drivers. + + * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c + ({cff,cid,t1}_property_{get,set}): Moved to... + * include/freetype/internal/ftpsprop.h: ...this new file. + (ps_property_{get,set}): New functions to replace moved ones. + + * src/base/ftpsprop.c: New file that implements above functions. + + * include/freetype/internal/internal.h + (FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro. + + * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: + Updated. + + * src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c: + Updated. + +2017-12-20 Werner Lemberg + + Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new. + + We exit early if the current design or blend coordinates are + identical to the new ones. + + * src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design): + Implement it, returning internal error code -1 if there will be no + variation change. + + * src/type1/t1load.c (t1_set_mm_blend): Ditto. + + * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, + FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated. + +2017-12-18 Werner Lemberg + + [sfnt] Fix charmap type 2 iterator (#52646). + + The subsetted demo font of the report that exhibits the bug has a + very unusual type 2 cmap for Unicode(!): It contains only two + sub-headers, one for one-byte characters (covering the range 0x20 to + 0xFA), and a second one for higher byte 0x01 (just for character + code U+0131). + + Before this commit, the iterator wasn't able to correctly handle a + sub-header for higher byte 0x01. + + * src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment + for outer loop. + +2017-12-18 Matthias Clasen + + [truetype] Fix clamping, minor tracing code beautification. + + * src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of + design coordinates. + Use clamped value. + +2017-12-18 Werner Lemberg + + * src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff. + +2017-12-18 Werner Lemberg + + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688). + +2017-12-18 Werner Lemberg + + [truetype] Fix previous commit. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle + unhinted phantom points, which must be properly scaled. + +2017-12-18 Werner Lemberg + + [truetype] Don't apply HVAR and VVAR deltas twice (#52683). + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust + `pp1' to `pp4', except if we have an HVAR and/or VVAR table. + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle + alternative code branch identically w.r.t. presence of an HVAR + and/or VVAR table. + +2017-12-17 Jonathan Kew + + [truetype] Correctly handle variation font phantom points (#52683). + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom + point indices. + +2017-12-17 Jonathan Kew + + Fix incorrect advance width scaling (#52683). + + * src/base/ftadvance.c (FT_Get_Advances): Always respect the + FT_LOAD_NO_SCALE flag if present. + +2017-12-16 Alexei Podtelezhnikov + + * builds/windows/vc2010/freetype.vcxproj: AfterBuild copy. + * objs/.gitignore: Ignore almost everything. + +2017-12-11 Werner Lemberg + + Fix compiler warning (#52640). + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused + variable. + +2017-12-08 Azzuro + + * builds/windows/vc2010/freetype.vcxproj: Adjust output directory. + + This allows builds with different configurations in parallel. + +2017-12-08 Werner Lemberg + + Fix `make setup dos', second try (#52622). + + * builds/detect.mk (dos_setup): Don't use literal `>' character at + all. Mixing the different escaping rules from make, dos, and + windows is too fragile. + +2017-12-08 Werner Lemberg + + [docmaker] Fix code section parsing. + + Stuff like + + { + + } + + confused the parser, which incorrectly treated `' as a markup + tag. + + * src/tools/docmaker/content.py (ContentProcessor::process_content): + Apply `re_markup_tags' only outside of code sections. + +2017-12-08 Werner Lemberg + + New `ftdriver.h' file, covering all driver modules. + + This reduces redundancy and increases synergy; it also reduces the + number of header files. + + * include/freetype/config/ftheader.h (FT_DRIVER_H): New macro. + (FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H, + FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to + FT_DRIVER_H. + + * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, + include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h, + include/freetype/ftttdrv.h: Replaced with... + * include/freetype/ftdriver.h: ...this new file. + (FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to... + (FT_HINTING_ADOBE): ... this new macro. + (FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to... + (FT_HINTING_FREETYPE): ... this new macro. + + * src/*/*: Updated accordingly. + +2017-12-08 Werner Lemberg + + Move `ftdriver.h' to `ftdrv.h'. + + * include/freetype/internal/ftdriver.h: Renamed to... + * include/freetype/internal/ftdrv.h: ... this name. + + * include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H): + Updated. + +2017-12-08 Werner Lemberg + + Fix access to uninitalized memory (#52613). + + Also reported as + + https://bugs.chromium.org/p/chromium/issues/detail?id=791317 + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the + bitmap size needs a larger bitmap buffer, assure that the new memory + areas are initialized also. + +2017-12-08 Werner Lemberg + + Fix `make setup dos' (#52622). + + * builds/detect.mk (dos_setup): Properly escape literal `>' + character. + +2017-12-07 Werner Lemberg + + Fix C++ compilation. + + * src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning. + +2017-12-07 Werner Lemberg + + Fix `make multi'. + + * include/freetype/internal/fttrace.h: Remove unused tracing macros. + s/pshalgo2/pshalgo/. + Add `trace_cffdecode'. + * src/pshinter/pshalgo.c (FT_COMPONENT): Updated. + + * src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + * src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and + FT_SERVICE_CFF_TABLE_LOAD_H. + + * src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + + * src/psaux/cffdecode.c: Include FT_FREETYPE_H and + FT_INTERNAL_DEBUG_H. + (FT_COMPONENT): Define. + * src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + * src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. + Declare `cff_builder_funcs' and `ps_builder_funcs'. + * src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'. + * src/psaux/psobjs.c : Include `psauxmod.h'. + +2017-12-07 Werner Lemberg + + * include/freetype/config/ftheader.h: Some clean-up. + + This commit removes documentation of deprecated macros and does some + minor streamlining. + +2017-12-06 Werner Lemberg + + * builds/symbian/bld.inf: Updated. + +2017-12-06 Werner Lemberg + + New header file `ftparams.h' that collects all parameter tags. + + * include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New + macro. + (FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to + `ftparams.h'. + + * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, + include/freetype/ftincrem.h, include/freetype/ftlcdfil.h, + include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include + FT_PARAMETER_TAGS_H. + Move FT_PARAM_TAG_XXX definitions to... + * include/freetype/ftparams.h: ...this new file. + + * include/freetype/ttunpat.h: Remove. No longer needed. + +2017-12-05 Werner Lemberg + + Improve tracing messages by using singular and plural forms. + + * src/*/*.c: Implement it. + +2017-12-04 Werner Lemberg + + [truetype] Allow shared points in `cvar' table (#52532). + + * src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying + and adjusting the corresponding code from + `TT_Vary_Apply_Glyph_Deltas'. + +2017-11-28 Werner Lemberg + + [truetype] Improving tracing of composite glyphs. + + * src/truetype/ttgload.c (TT_Load_Composite_Glyph) + [FT_DEBUG_LEVEL_TRACE]: Show composite glyph information. + +2017-11-27 Werner Lemberg + + [type1] Allow (again) `/Encoding' with >256 elements (#52464). + + In version 2.6.1, this has been disallowed to better reject + malformed fonts; however, this restriction was too strong. This + time, we only take the first 256 elements into account, since + encoding arrays are always accessed with a 8bit integer, according + to the PostScript Language Reference. + + * src/type1/t1load.c (parse_encoding): Implement it. + +2017-11-27 Jan Alexander Steffens (heftig) + + Fix last commit (#52522). + + * builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG' + properly if we have `ftoption.h' in `BUILD_DIR'. + +2017-11-24 Werner Lemberg + + [unix] Install a massaged `ftoption.h' file (#51780). + + * builds/unix/configure.raw (ftoption_set, ftoption_unset): New + auxiliary functions to construct... + (FTOPTION_H_SED): ... this new variable. + Apply it as a sed argument while copying `ftoption.h' to the + `builds/unix' directory (using `AC_CONFIG_FILES'). + Simplify code of test that checks cpp's computation of bit length + (the test previously created an empty `ftoption.h' file and deleted + it immediately afterwards); without this change, it can happen on my + GNU/Linux box that `configure's execution of `config.status' doesn't + create `ftoption.h' (no idea why this happens). + + * builds/unix/install.mk (install): Install + `builds/unix/ftoption.h'. + + * builds/unix/unix-def.in (DISTCLEAN): Updated. + + * builds/unix/.gitignore: Updated. + +2017-11-23 Tor Andersson + + Silence unused function warnings (#52465). + + Some static function declarations cause unused function warnings if + certain config options are turned off via `ftoption.h'. + + * src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h, + src/truetype/ttgxvar.h: Add #ifdef guards around these sections. + +2017-11-22 Ewald Hew + + * src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377 + +2017-11-22 Ewald Hew + + [psaux] Fix CFF advance widths. (#52466) + + Glyph advance widths were being written to the new `PS_Decoder' but not + saved to the underlying format specific decoder. This caused pure CFF + fonts to have bad advance width. + + * include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width' + field to pointer. + Remove unused fields. + * src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy + to reference. + Remove unused. + * src/psaux/psft.c (cf2_setGlyphWidth): Update code. + +2017-11-15 Vlad Tsyrklevich + + * include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type. + +2017-11-14 Nikolaus Waxweiler + + Use Adobe hinting engine for `light' hinting of both CFF and Type 1. + + Since Ewald Hew factored the Adobe hinting engine out of the CFF + driver code, we can now use it on Type 1 (and CID) font formats, as + both have the same hinting philosophy. + + This change activates the Adobe hinter when in LIGHT mode, and + therefore always unless explicitly asking for the auto-hinter. This + makes LIGHT behavior consistent with CFF fonts. As of this commit, + the hinting engine table looks as follows. + + LIGHT NORMAL + ------------------------- + TrueType Auto v40 + CFF Adobe Adobe + Type 1 Adobe Adobe + +2017-11-10 Yuri Levchenko + + * CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option. + +2017-11-06 Alexei Podtelezhnikov + + * src/base/ftobjs.c (FT_Load_Glyph): Relocate condition. + +2017-11-06 Alexei Podtelezhnikov + + * src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables. + +2017-11-03 Ewald Hew + + [psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251) + + The interpreter in Type 1 mode rewinds the charstring after collecting + all hints for building the initial hintmap (commit d52dd7f). However, + some charstrings use `endchar' in a final subroutine call, rewinding to + the start of that subroutine, and only a small section of the actual + glyph is drawn. + + * src/psaux/psintrp.c (cf2_interpT2CharString) : + Ensure we are on the top level charstring before rewinding. + +2017-11-03 suzuki toshiya + + [truetype] Add more tricky fonts. + + See the report by Yang Yinsen. + https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html + + * src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB', + `DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'. + (tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB, + DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7. Also + add checksums for DLCLiShu and DLCHayBold which their family names + were already listed but their checksums were previously unknown. + +2017-11-01 Alexei Podtelezhnikov + + [smooth] Fix complex rendering at high ppem. + + We used to split large glyphs into horizontal bands and continue + bisecting them still horizontally if that was not enough. This is + guaranteed to fail when a single scanline cannot fit into the + rendering memory pool. Now we bisect the bands vertically so that + the smallest unit is a column of the band height, which is guranteed + to fit into memory. + + * src/smooth/ftgrays.c (gray_convert_glyph): Implement it. + +2017-10-20 Alexei Podtelezhnikov + + [smooth] Improve complex rendering at high ppem. + + At large sizes almost but not exactly horizontal segments can quickly + drain the rendering pool. This patch at least avoids filling the pool + with trivial cells. Beyond this, we can only increase the pool size. + + Reported, analyzed, and tested by Colin Fahey. + + * src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells. + +2017-10-20 Alexei Podtelezhnikov + + [base] Improve tracing in FT_Load_Glyph, FT_*_Size. + + * src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with + function name, glyph index, and load flags. + (FT_Select_Metrics, FT_Request_Metrics): Remove all tracing. + (FT_Select_Size, FT_Request_Size): Improve tracing. + +2017-10-18 Alexei Podtelezhnikov + + [base] Improve tracing in FT_Render_Glyph. + + * src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage + calculations and downgrade Netpbm dump to bitmap:7. + +2017-10-15 Ewald Hew + + [cff] Fix segfault on missing `psaux' (#52218) + + * src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr. + + * modules.cfg: Update dependency list. + +2017-10-15 Alexei Podtelezhnikov + + [base, cff] Fix MSVC warnings. + + * src/base/ftobjs.c (FT_New_Library): C4702: unreachable code. + (ft_glyphslot_preset_bitmap): C4244: possible loss of data. + * src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data. + Turn `sum' into unsigned. + +2017-10-14 Alexei Podtelezhnikov + + [base] Netpbm image tracing. + + * src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size. + (FT_Render_Glyph_Internal): Trace bitmap in Netpbm format. + + * src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing. + +2017-10-14 Alexei Podtelezhnikov + + * builds/windows/ftdebug.c (FT_Message): Print to stderr. + * builds/wince/ftdebug.c (FT_Message): Ditto. + +2017-10-14 Behdad Esfahbod + + [afshaper] Delay creating `hb_set' objects until needed. + + In runs on Noto Naskh Arabic, this results in 89 sets created + instead of 340 before. Makes auto-hinter setup with HarfBuzz + enabled 20% to 30% faster. + + * src/autofit/afshaper.c (af_shaper_get_coverage): Implement it. + +2017-10-12 Ewald Hew + + [type1, cid] Add hinting engine switch. + + Implement property service in `type1' and `cid' drivers to allow + switching between FreeType or Adobe hinting engine when both are + available. + + * src/cid/cidriver.c (cid_property_{set,get}, cid_services), + src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add + Properties service. + + * src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c + (T1_Driver_Init): Add default property values. + +2017-10-12 Ewald Hew + + Add T1_CONFIG_OPTION_OLD_ENGINE configuration option. + + This controls whether the old Type 1 engine gets compiled into FreeType. + It is disabled by default. + + * devel/ftoption.h, include/freetype/config/ftoption.h + (T1_CONFIG_OPTION_OLD_ENGINE): New macro. + + * include/freetype/internal/psaux.h (PS_Decoder): Remove unused field. + * include/freetype/internal/psaux.h, src/cid/cidgload.c + (cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c + (ps_builder_add_point), src/psaux/t1decode.c + (t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph, + t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h, + src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround + relevant code with macro. + Minor code changes. + +2017-10-12 Ewald Hew + + Extract width parsing from Type 1 parser. + + Duplicate the fast advance width calculations from the old parser. + This is to facilitate adding options for compiling out the old parser. + + * src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function. + * include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry + `parse_metrics'. + * src/psaux/psauxmod.c: Set the new entry. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String), + src/cid/cidgload.c (cid_load_glyph): Separate + conditional for selecting engine. + +2017-10-09 Werner Lemberg + + * src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow. + + Reported as + + https://bugs.chromium.org/p/chromium/issues/detail?id=772775 + +2017-10-08 Werner Lemberg + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579 + +2017-10-07 Werner Lemberg + + [sfnt] Adjust behaviour of PS font names for variation fonts. + + * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's + PS name only if no variation is applied. + +2017-10-07 Werner Lemberg + + [cff, truetype] Adjust behaviour of named instances. + + This commit completely separates the interaction between named + instances and variation functions. In particular, resetting the + variation returns to the current named instance (if set) and not to + the base font. + + As a side effect, variation functions no longer change the named + instance index. + + * src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance' + function. + Also apply `MVAR' table to named instances. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast. + (tt_set_mm_blend): No longer check whether requested variation + coincides with a named instance. + (TT_Set_Var_Design): Use current named instance for default + coordinates. + * src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'. + +2017-10-07 Werner Lemberg + + Make `FT_Set_Named_Instance' work. + + * src/cff/cffdrivr.c (cff_set_instance): New function. + (cff_service_multi_masters): Register it. + + * src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function. + * src/truetype/ttgxvar.h: Updated. + * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register + it. + + * src/type1/t1load.c (T1_Reset_MM_Blend): New function. + * src/type1/t1load.h: Updated. + * src/type1/t1driver.c (t1_service_multi_masters): Register it. + +2017-10-07 Werner Lemberg + + Make `FT_FACE_FLAG_VARIATION' work. + + * include/freetype/internal/tttypes.h (TT_Face): Remove + `is_default_instance'; this can be replaced with a combination of + `FT_IS_VARIATION' and `FT_IS_INSTANCE'. + + * src/cff/cffdrivr.c (cff_get_advances): Updated. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c + (sfnt_init_face): Updated. + + * src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c + (TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE), + src/truetype/ttgxvar.c (tt_set_mm_blend): Updated. + * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design): + Handle `FT_FACE_FLAG_VARIATION'. + + * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle + `FT_FACE_FLAG_VARIATION'. + +2017-10-07 Werner Lemberg + + New function `FT_Set_Named_Instance'. + + No effect yet. + + * src/base/ftmm.c (FT_Set_Named_Instance): New function. + + * include/freetype/ftmm.h: Updated. + +2017-10-07 Werner Lemberg + + Add macros for checking whether a font variation is active. + + * include/freetype/freetype.h (FT_FACE_FLAG_VARIATION, + FT_IS_VARIATION): New macros. + No effect yet. + +2017-10-07 Werner Lemberg + + Add framework for setting named instance in MM service. + + * include/freetype/internal/services/svmm.h (FT_Set_Instance_Func): + New function typedef. + (MultiMasters): Add `set_instance' member. + (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. + + * src/cff/cffdrivr.c (cff_service_multi_masters), + src/truetype/ttdriver (tt_service_gx_multi_masters), + src/type1/t1driver.c (t1_service_multi_masters): Updated. + +2017-10-07 Werner Lemberg + + [type1] Minor code shuffling. + + * src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of... + (t1_set_mm_blend): ...this new function. + (T1_Set_MM_Design): Use `t1_set_mm_blend'. + +2017-10-05 Werner Lemberg + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer + overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539 + +2017-10-05 Werner Lemberg + + Fix compiler warnings. + + * src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies + on numeric overflow. + Add cast. + + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable + types, add cast. + +2017-10-04 John Tytgat + + [cff] Add support for `FSType'. + + * include/freetype/internal/cfftypes.h (CFF_FontRec): Add + `font_extra' entry. + + * src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to + retrieve FSType info from the embedded PostScript data. + (cff_service_ps_info): Register function. + + * src/cff/cffload.c (cff_font_done): Free `font_extra'. + +2017-09-30 Alexei Podtelezhnikov + + Signedness fixes in bitmap presetting. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514. + + * src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned + subtraction. + +2017-09-29 Alexei Podtelezhnikov + + Bitmap metrics presetting [2/2]. + + * src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when + appropriate but `FT_Render_Glyph' is not called. + * include/freetype/freetype.h (FT_GlyphSlotRec): Document the change. + +2017-09-28 Alexei Podtelezhnikov + + [smooth, raster] Miscellaneous cleanups. + + * src/raster/ftrend1.c (ft_raster1_render): Clean up the exit. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce + translations and clean up the exit. + (ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'. + +2017-09-28 Ben Wagner + + [truetype] Really, really fix #52082. + + * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. + +2017-09-28 Werner Lemberg + + * src/psaux/psintrp.c (cf2_doStems): Fix integer overflow. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510 + +2017-09-28 Ewald Hew + + * src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak. + + Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489 + +2017-09-28 Alexei Podtelezhnikov + + Bitmap metrics presetting [1/2]. + + This mainly just extracts the code for presetting the bitmap metrics + from the monochrome, grayscale, and LCD renderers into a separate + function. + + * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that + calculates prospective bitmap metrics for the given rendering mode. + * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): + Declare it. + + * src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds + padding to CBox taking into account pecularities of LCD rendering. + * include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it. + + * src/raster/ftrend1.c (ft_raster1_render): Reworked to use + `ft_glyphslot_preset_bitmap'. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. + (ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting + is moved to `ft_glyphslot_preset_bitmap'. + +2017-09-28 Ewald Hew + + [psaux] Fix compiler warning. + + * src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing + code. + +2017-09-27 Werner Lemberg + + * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning. + +2017-09-25 Werner Lemberg + + [psaux] Fix compiler warnings. + + * src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant + test. + + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Add casts. + + * src/psaux/psobjs.c (ps_decoder_init): Add cast. + +2017-09-25 Ewald Hew + + [psaux] Minor fixes. + + * include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}: + Rearrange `ps_builder_init' arguments to conventional order. + + * src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and + notice for `SubFont' in Type 1 mode. + +2017-09-25 Ewald Hew + + [psaux] Move `psdecode' into `psobjs'. + + As the former only contains a single procedure, move it into + `psobjs' for simplicity. Also change the parameter order to the + conventional one. + + * src/psaux/psdecode.c (ps_decoder_init): Moved to... + * src/psaux/psobjs.c: ...Here. + * src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto. + + * include/freetype/internal/psaux.h (PSAux_ServiceRec): Update + `ps_decoder_init' function signature. + + * src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c: + Update calls. + + * src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes. + + * src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC): + Update file references. + +2017-09-25 Ewald Hew + + [psaux] Fix Type 1 hinting. + + Type 1 hinting breaks sometimes when mid-charstring hints should + have been in the initial hintmap. This fix adds a preprocessing + pass that reads all hints and builds the correct initial hintmap + first, before proceeding to build the glyph outline. + + * src/psaux/psintrp.c (cf2_interpT2CharString): New + `initial_map_ready' boolean flag. + Ignore outline commands and hint changes on first pass. + : Add section to build hintmap and rewind. + +2017-09-25 Ewald Hew + + [psaux] Add tracing for hints. + + * src/psaux/pshints.c (cf2_hintmap_dump): New function. + (cf2_hintmap_insertHint): Trace incoming and inserted hints. + (cf2_hintmap_build): Dump hintmap before and after hint adjustment. + +2017-09-25 Ewald Hew + + [psaux] Minor fixes. + + * src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop + results. + s/font->decoder/decoder/ where necessary. + : Use + offset parameter in `cf2_doStems' instead of doing correction for + left-sidebearing. + +2017-09-25 Ewald Hew + + [cid] Use the new engine. + + * src/cid/cidgload.c: Update includes. + (cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph + loading code as with `type1' module. + +2017-09-25 Ewald Hew + + [cid] Add Adobe engine configuration. + + This is similar to what was done in the `type1' module. + + * src/cid/cidriver.c (t1cid_driver_class): Update declaration. + * src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H. + (cid_driver_init): Update code. + +2017-09-25 Ewald Hew + + [psaux] Change subfont synthesis for CID fonts. + + Change `t1_make_subfont' to take in the Private dict record as an + argument. This is because Type 1 and CID font records in FreeType + have this in different places. + + * src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to + `FT_Face' so that CID is also accepted. + Take `PS_Private' as an argument and let caller figure out where the + Private dict actually is. + Update references. + + * include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update + declaration. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update + call. + +2017-09-25 Ewald Hew + + [type1] Switch to Adobe engine. + + * src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (seac). + + This concludes the changes needed to add Type 1 support. + + * src/psaux/psintrp.c: Update includes. + (cf2_interpT2CharString) : Implement this similarly to + implied seac for CFF. + + * src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New + function to look up the glyph index. + + * src/psaux/psft.c (cf2_getT1SeacComponent, + cf2_freeT1SeacComponent): New functions to get the charstrings for + seac components. + + * src/psaux/t1decode.h, src/psaux/psft.h: Update declarations. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (flex in callothersubr). + + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Fix Flex feature handling (OtherSubrs 0, 1, + 2). + : Do not actually move the `glyphPath' while doing + flex. This is to avoid closing the current contour. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (callothersubr). + + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Copy code from + `t1_decoder_parse_charstrings' (in `t1decode.c'). + OtherSubr 3 (change hints) should reset the hintmask, so that the + new hints are applied. + Fix function calls and stack access. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (pop). + + * src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled + OtherSubr results are stored. Implement the PostScript stack using + an array. + : Ensure that the stack is not cleared after getting + `OtherSubr' results. + Fix stack access. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (callsubr). + + * src/psaux/psintrp.c (cf2_interpT2CharString) : + Type 1 mode. + + * src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (div, four-byte numbers). + + * src/psaux/psintrp.c (cf2_interpT2CharString) : Add + Type 1 mode. Type 1 requires large integers to be followed by + `div'; cf. `Adobe Type 1 Font Format', section 6.2. + : Push Type 1 four-byte numbers as `Int' always. This is + to ensure `div' and `callsubr' get values they can use. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (hints). + + * src/psaux/psintrp.c (cf2_interpT2CharString) : Add correction for left sidebearing in Type 1 mode. + Allow adding hints mid-charstring. + : Translate into equivalent commands + for three normal stem hints. This requires some recalculation of + stem positions. + Correction for left sidebearing. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (hsbw, sbw). + + * src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the + first operation in a Type 1 charstring. + (cf2_interpT2CharString): Remove unused variables. + : `hsbw' or `sbw' + must be the first operation in a Type 1 charstring. + : Fix data access and add correction for + left sidebearing. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (setcurrentpoint). + + * src/psaux/psintrp.c (cf2_interpT2CharString) + : Fix stack access. + +2017-09-25 Ewald Hew + + [psaux] Extend Adobe interpreter (closepath). + + * src/psaux/psintrp.c (cf2_interpT2CharString) : + Use the right builder function. We can use the `haveWidth' boolean + already present, instead of implementing `parse_state'. + +2017-09-25 Ewald Hew + + [psaux] Add Type 1 operations to Adobe CFF interpreter. + + The following Type 1 specific ops have been added (copied from + `t1decode'): + + closepath + vstem3 + hstem3 + seac + sbw + callothersubr + pop + setcurrentpoint + hsbw + + The following require a Type 1 mode, because of differences in + specification: + + hstem + vstem + vmoveto + callsubr + div + rmoveto + hmoveto + Numbers + + The subsequent commits will implement these changes and adapt + accesses of data and objects to the new interpreter. + + NOTE: Will not compile in the meantime! + + * src/psaux/psintrp.c: Add opcodes to enum. + (cf2_interpT2CharString): Copy relevant code over from + `t1_decoder_parse_charstrings' (in `t1decode.c'). + +2017-09-25 Ewald Hew + + [type1] Fixes for rendering. + + The Type 1 advance width calculation passes null for glyph slot, + etc, which can cause null pointer access in the new interpreter. + Fall back to the old one for now. + + Fix the large glyph retry code and ensure hinting and scaling flags + are set properly. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a + check for metrics_only. + Set the `force_scaling' flag. + (T1_Parse_Glyph): Updated. + (T1_Load_Glyph): Add `hinting' and `scaled' flags. + +2017-09-25 Ewald Hew + + [psaux] Add missing objects (2/2). + + Synthesize a `SubFont' object for Type 1 fonts. This is used in the + interpreter to access Private dict data, which are stored in + different places for Type 1 and CFF. This allows the same data to + be used in either mode. + + * src/psaux/psobjs.c (t1_make_subfont): New procedure to copy + required values to a dummy `CFF_SubFont' object. This is similar to + `cff_make_private_dict'. + * src/psaux/psobjs.h: Add the new declaration. + + * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto. + Add this to the PSAux Service for future use with CID fonts. + + * src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H. + (T1_Parse_Glyph_And_Get_Char_String): Add the call. + +2017-09-25 Ewald Hew + + [psaux] Add missing objects for Type 1 (1/2). + + Move `CF2_Font' instance to `PS_Decoder'. This is the context for + the interpreter and since it is currently stored in `CFF_Font', is + unavailable in Type 1 mode. + + * include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New + `cf2_instance' field. + + * src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to + `PS_Decoder'. + + * src/psaux/t1decode.c (t1_decoder_done): Add finalization code. + + * src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses. + +2017-09-25 Ewald Hew + + Allow `type1' module to use the Adobe engine. + + Add the callback and some conditionals to switch between the two + engines. + + * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change + function declarations. + * src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the + callbacks. + + * src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for + number conversion. + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code + to choose which renderer to use. + + * src/cid/cidgload.c (cid_load_glyph): Update call. + * src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update + includes. + +2017-09-25 Ewald Hew + + [type1] Add Adobe engine configuration. + + Use the previously changed PS_Driver in type1 module to store + hinting engine configuration. + + * include/freetype/ftt1drv.h: New file. + Duplicate and rename config options from CFF. + * include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro. + + * src/type1/t1driver.c (t1_driver_class): Update declaration. + * src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H. + (T1_Driver_Init): Update code. + +2017-09-25 Ewald Hew + + [cff] Move and rename `CFF_Driver'. + + This is so that we can use the same hinting engine parameters for + Type 1. + + * include/freetype/internal/cffotypes.h (CFF_Driver): Rename and + move to... + * include/freetype/internal/psaux.h (PS_Driver): ...here. + + * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c, + src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c, + src/psaux/psobjs.c: Update references. + +2017-09-25 Ewald Hew + + [psaux, type1] Reorganize object fields. + + Make some fields more generic, so that we can access them the same + way regardless of Type 1 or CFF. + + * include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face' + to `FT_Face'. + Remove unused fields. + + * src/psaux/psft.c: Update all accesses of `PS_Builder.face'. + Add some asserts to guard against casting `T1_Face' as `TT_Face'. + + * src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow + `CFF_GlyphSlot', so that we can pretend they are the same in the + interpreter. + + * src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point): + Updated with above changes. + +2017-09-25 Ewald Hew + + [psaux] Prepare for Type 1 mode. + + Add some checks for Type 1 data passing through. + + * src/psaux/psfont.h (CF2_Font): Add `isT1' flag. + * src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend + code which is not applicable for Type 1. + + * src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing + `decoder->cff' in Type 1 mode. + Copy `is_t1' flag to `CF2_Font'. + +2017-09-25 Ewald Hew + + [psaux, cff] Use the new objects. + + * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix + switching between new and old engines. + + * src/cff/cffgload.c, src/cff/cffparse.c: Update calls. + + * src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h, + src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all + to use new objects. + +2017-09-24 Ewald Hew + + [psaux] Objects for new interpreter (part 2). + + Make the new objects copy over values. They are essentially wrapper + types for the different decoders/builders. + + * include/freetype/internal/psaux.h: Update declarations. + (PS_Builder): Add `is_t1' flag. + (PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to... + (CFF_Decoder_{Get,Free}_Glyph_Callback: ... this. + (PS_Decoder): Updated. + Add `t1_parse_callback' member. + (PSAux_ServiceRec): Add `ps_decoder_init' member. + + * src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations. + + * src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two + modes. + + * src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux' + service. + +2017-09-24 Ewald Hew + + [psaux] Add objects for new interpreter. + + Introduce `PS_Decoder' and `PS_Builder' which include all fields + from either Type 1 or CFF decoders/builders. + + * include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New + structs. + + * src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder' + functions. + + * src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold + `PS_Decoder' initialization functions. + + * src/psaux/psaux.c, src/psaux/Jamfile (_sources), + src/psaux/rules.mk (PSAUX_DRV_SRC): Updated. + +2017-09-24 Ewald Hew + + [psaux] Rename files. + + Replace the `cf2' file name prefix with `ps' as the Adobe engine + will be used for both PostScript Types 1 and 2 (CFF) instead of just + CFF. + + s/cf2/ps/ for all following. + + * src/psaux/cf2*: Rename files. + * src/psaux/*: Update includes. + + * src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC, + PSAUX_DRV_H): Update file references. + +2017-09-24 Ewald Hew + + [psaux] Minor fix. + + Use `MultiMasters' service in `psaux' instead of a call to `cff'. + The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined. + + * src/psaux/cf2ft.c: Update includes. + (cf2_getNormalizedVector): Use `mm->get_var_blend' instead of + `cff_get_var_blend'. + +2017-09-24 Ewald Hew + + [psaux, cff] Move `cff_random' into `psaux' service. + + NOTE: Does not compile! + + Minor fix to allow both `cff' and `psaux' to use `cff_random'. + + * src/cff/cffload.c (cff_random): Move to... + * src/psaux/psobjs.c: Here. + * src/cff/cffload.h: Move corresponding declaration to + `src/psaux/psobjs.h'. + + * include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the + function here... + * src/psaux/psauxmod.c: And here. + + * src/cff/cffload.c, src/psaux/cf2intrp.c: Update code. + +2017-09-24 Ewald Hew + + [cff] Move struct declarations to `freetype/internal'. + + NOTE: Does not compile! + + This is so that the CFF functions moved to `psaux' can access the + same structs that they need. + + * src/cff/cfftypes.h: Moved to... + * include/freetype/internal/cfftypes.h: ...Here. + + * src/cff/cffobjs.h: Moved the struct declarations to... + * include/freetype/internal/cffotypes.h: ... this new file. + + * include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H, + FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros. + + * src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c, + src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c, + src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h, + include/freetype/internal/psaux.h, + include/freetype/internal/services/svcfftl.h: Update includes. + + * src/cff/rules.mk (CFF_DRV_H): Updated. + +2017-09-24 Ewald Hew + + [psaux, cff] Add new service for inter-module calls. + + NOTE: Does not compile! + + This is to allow CFF functions moved to `psaux' to call functions + declared in `src/cff/cffload.h'. + + * include/freetype/internal/services/svcfftl.h: New file, setting up + a `CFFLoad' service. + + * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10, + FT_DEFINE_SERVICEDESCREC): New macros. + (FT_SERVICE_CFF_TABLE_LOAD_H): New macro. + + * src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service. + + * src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h + (CF2_FontRec): Add service interface. + + * src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c, + src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service. + +2017-09-24 Ewald Hew + + [psaux, cff] Add callbacks for inter-module calls. + + NOTE: Does not compile! + + * include/freetype/internal/psaux.h: Add function pointer + declarations. + + * src/psaux/cffdecode.c (cff_decoder_init): Update to take in + callbacks. + * src/psaux/cffdecode.h: Ditto. + + * src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load): + Update calls to pass in callbacks. + * src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them. + +2017-09-24 Ewald Hew + + [psaux, cff] Create new `PSAux' service interface entries. + + NOTE: Does not compile! + + * include/freetype/internal/psaux.h: Include + FT_INTERNAL_TRUETYPE_TYPES_H. + (CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables. + (CFF_Builder): Updated. + Fix for forward declaration. + (PSAux_ServiceRec): New field `cff_decoder_funcs'. + + * src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New + function tables. + (PSAux_Interface): Updated. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux' + service interface. + + * src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update + function calls to use psaux service. + +2017-09-24 Ewald Hew + + [psaux, cff] Move CFF builder components into `psaux' module. + + NOTE: Does not compile! + + * src/cff/cffgload.c + (cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour}, + cff_check_points): Move to... + * src/psaux/psobjs.c: Here. + + * src/cff/cffgload.h: Move corresponding declarations to + `src/psaux/psobjs.h'. + + * src/cff/cffgload.h (CFF_Builder): Move struct declaration to... + * include/freetype/internal/psaux.h: Here. + +2017-09-24 Ewald Hew + + [psaux, cff] Move CFF decoder components into `psaux' module. + + NOTE: Does not compile! + + * src/cff/cffgload.c (CFF_Operator, + CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts, + cff_operator_seac, cff_compute_bias, + cff_lookup_glyph_by_stdcharcode, + cff_decoder_{parse_charstrings,init,prepare}): Move to... + * src/psaux/cffdecode.c: This new file. + + * src/cff/cffgload.h: Move corresponding declarations to... + * src/psaux/cffdecode.h: This new file. + + * src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS}, + CFF_Decoder_Zone, CFF_Decoder): Move declarations to... + * include/freetype/internal/psaux.h: Here. + + * src/psaux/cf2ft.h: Update include. + + * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with + the new file. + +2017-09-24 Ewald Hew + + [psaux, cff] Move Adobe's engine components into `psaux' module. + + This is the first patch of a sequence to move the Type 2 charstring + processing capability from the `cff' module to the `psaux' module. + + NOTE: Does not compile! + + * src/cff/cf2*: Move these files to... + * src/psaux/cf2*: Here. + + * src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC, + CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file + references. + + * src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c + (PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references. + +2017-09-24 Alexei Podtelezhnikov + + Tweak per-face LCD filtering controls. + + Thing are simpler with a NULL-function pointer. + + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New + pointer to the filter function. + (FT_LibraryRec): Remove unused `lcd_filter'. + (FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): Move from here... + * include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc, + ft_lcd_filter_fir): ... to here. + + * src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the + per-face filter. + (FT_Face_Properties): Set it. + * src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify. + + * src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter): + Minor. + +2017-09-24 Jonathan Kew + + [sfnt] Fix `premultiply_data' (#52092). + + * src/sfnt/pngshim.c (premultiply_data): Don't use vector extension + if we have less than 16 bytes of data. + +2017-09-24 Werner Lemberg + + [otvalid] Fix handling of ValueRecords. + + For GPOS pair positioning format 1 the description of ValueRecords + in the OpenType specification (1.8.2, from today) is wrong – the + offset has to be taken from the parent structure; in this case the + `PairSet' table. + + * src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'. + (otv_PairPos_validate): Adjust. + +2017-09-23 Werner Lemberg + + [otvalid] Handle `GSUB' and `GPOS' v1.1 tables. + + * src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c + (otv_GPOS_validate): Implement it. + +2017-09-23 Werner Lemberg + + [otvalid] Update common table handling to OpenType 1.8.2. + + * src/otvalid/otvcommn.c (otv_Device_validate): Handle + VariationIndex subtable. + (otv_Lookup_validate): Handle MarkFilteringSet. + +2017-09-23 Alexei Podtelezhnikov + + [build] Windows-style DLL versioning. + + * build/windows/ftver.rc: New VERSIONINFO resource. + * build/windows/vc2010/freetype.vcxproj: Further improvements. + +2017-09-23 Ben Wagner + + [truetype] Really fix #52082. + + * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. + +2017-09-23 Werner Lemberg + + [otvalid] Handle `GDEF' v1.2 and v1.3 tables. + + No validation of variation stuff yet. + + * src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function. + (otv_GDEF_validate): Implement it. + +2017-09-22 Werner Lemberg + + [otvalid] Handle `BASE' v1.1 table. + + No validation of variation stuff yet. + + * src/otvalid/otvbase.c (otv_BASE_validate): Implement it. + +2017-09-22 Werner Lemberg + + [otvalid] Macros for 32bit offset support. + + * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32, + OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros. + +2017-09-21 Alexei Podtelezhnikov + + [build] Simplify Visual C++ 2010 project. + + * build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded + configurations and tweak. + +2017-09-21 Werner Lemberg + + [truetype] Integer overflow (#52082). + + * src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS. + +2017-09-21 Werner Lemberg + + [sfnt] Fix postscript name for default instance of variation fonts. + + Problem reported by Behdad. + + * src/sfnt/sfdriver.c (sfnt_get_ps_name): Test + `is_default_instance'. + +2017-09-21 Werner Lemberg + + [truetype] Fix `mmvar' array pointers, part 2. + + The previous commit was incomplete. + + * src/truetype/ttgxvar.c: Properly initialize sub-array offsets for + `master' also. + +2017-09-21 Werner Lemberg + + [truetype] Fix `mmvar' array pointers. + + Without this change, clang's AddressSanitizer reports many runtime + errors due to misaligned addresses. + + * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer + size for sub-array offsets into `mmvar'. + +2017-09-20 Werner Lemberg + + [truetype] Integer overflows. + + Changes triggered by + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429 + + * src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG. + (Ins_MIAP): Use SUB_LONG. + +2017-09-19 Alexei Podtelezhnikov + + [build] Fix DLL builds in Visual C++ project. + + * build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug + and Release configurations. + * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) + [_DLL]: Use Visual C++ extensions. + +2017-09-19 John Tytgat + + [cff] Fix family name logic of pure CFF fontdata (#52056). + + 1. If `FamilyName' is present in the CFF font, use this for + FT_Face's `family_name'. + 2. Otherwise, use the face name and chop off any subset prefix. + 3. If at this point FT_Face's `family_name' is set, use this + together with the full name to determine the style. + 4. Otherwise, use `CIDFontName' as FT_Face's `family_name'. + 5. If we don't have a valid style, use "Regular". + + Previously, FT_Face's `family_name' entry for pure CFF fontdata + nearly always was the fontname itself, instead of the `FamilyName' + entry in the CFF font (assuming there is one). + + * src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it. + +2017-09-18 Alexei Podtelezhnikov + + [build] Declutter Visual C++ 2010-2017 project. + + * build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02) + optimization for Release configuration throughout the project. + + +---------------------------------------------------------------------------- + +Copyright (C) 2017-2019 by +David Turner, Robert Wilhelm, and Werner Lemberg. + +This file is part of the FreeType project, and may only be used, modified, +and distributed under the terms of the FreeType project license, +LICENSE.TXT. By continuing to use, modify, or distribute this file you +indicate that you have read the license and understand and accept it +fully. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/ThirdParty/freetype/ChangeLog.20 b/ThirdParty/freetype/ChangeLog.20 new file mode 100644 index 0000000..a589e13 --- /dev/null +++ b/ThirdParty/freetype/ChangeLog.20 @@ -0,0 +1,2613 @@ +2002-02-09 Werner Lemberg + + * README: Fix typo. + * docs/CHANGES: Minor fixes. + + + * Version 2.0.8 released. + ========================= + + +2002-02-08 David Turner + + * docs/CHANGES: Updating for 2.0.8. + + * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and + removing `FT_Get_Next_Char' from the API (temporarily). + + * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char; + note that this function might temporarily be removed for the 2.0.8 + release. + +2002-02-07 David Turner + + * src/pcf/pcfread.c (pcf_load_font): Removed immature support of + the AVERAGE_WIDTH property. + +2002-02-06 David Turner + + * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in + PDF documents do not include 'cmap', 'post' and 'name' tables, the + SFNT face loader has been changed to not immediately report an + error if these are not present. + + Note that the specification _requires_ these tables, but Adobe + seems to ignore it completely. + + * src/sfnt/ttcmap.c: Removing compiler warnings. + + * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt. + (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code + is now in ... + (pcf_get_metric): Here. + (pcfSeekToType): Renamed to ... + (pcf_seek_to_table_type): This. + Use FT_Int. + (pcfHasType): Renamed to ... + (pcf_has_table_type): This. + Use FT_Int. + (find_property): Renamed to ... + (pcf_find_property): This. + Use FT_Int. + (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts + better (delaying format checks out of FT_Access_Frame .. + FT_Forget_Frame blocks to avoid leaving the stream in an incorrect + state when encountering an invalid PCF font). + + * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ... + (PCF_Face_Done): This. + (PCF_Init_Face): Renamed to ... + (PCF_Face_Init): This. + (PCF_Get_Char_Index): Renamed to ... + (PCF_Char_Get_Index): This. + (PCF_Get_Next_Char): Renamed to ... + (PCF_Char_Get_Next): This. + (pcf_driver_class): Updated. + + * src/pcf/pcf.h (PCF_Done_Face): Removed. + +2002-02-06 Detlef Würkner + + * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak. + + * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH' + property to return correct character pixel (width/height) pairs for + embedded bitmaps. + +2002-02-04 Keith Packard + + Adding the function `FT_Get_Next_Char', doing the obvious thing + w.r.t. the selected charmap. + + * include/freetype/freetype.h: Add prototype. + * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar' + typedef. + (FT_Driver_Class): Use it. + * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func' + typedef. + (PSNames_Interface): Use it. + * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func' + typedef. + (TT_CMapTable): Use it. + + * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing + high-level API. + * src/cff/cffdrivr.c (cff_get_next_char): New function. + (cff_driver_class): Add it. + * src/cid/cidriver.c (Cid_Get_Next_Char): New function. + (t1cid_driver_class): Add it. + * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function. + (pcf_driver_class): Add it. + * src/psnames/psmodule.c (PS_Next_Unicode): New function. + (psnames_interface): Add it. + * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4, + code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary + functions. + (TT_CharMap_Load): Use them. + * src/truetype/ttdriver.c (Get_Next_Char): New function. + (tt_driver_class): Add it. + * src/type1/t1driver.c (Get_Next_Char): New function. + (t1_driver_class): Add it. + * src/winfonts/winfnt.c (FNT_Get_Next_Char): New function. + (winfnt_driver_class): Add it. + + * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for + Unicode and Latin 1 encodings. + +2002-02-02 Keith Packard + + * builds/unix/freetype-config.in: Add missing `fi'. + + + * Version 2.0.7 released. + ========================= + + +2002-02-01 David Turner + + * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7 + for the new release. + +2002-01-31 David Turner + + * README, README.UNX, docs/CHANGES: Updating documentation for the + 2.0.7 release. + +2002-01-30 David Turner + + * INSTALL: Moved to ... + * docs/INSTALL: Here to avoid conflicts with the `install' script on + Windows, where the filesystem doesn't preserve case. + +2002-01-29 David Turner + + * configure: Fixed the script. It previously didn't accept more + than one argument correctly. For example, when typing: + + ./configure --disable-shared --disable-nls + + the `--disable-nls' was incorrectly sent to the `make' program. + +2002-01-29 Werner Lemberg + + * README.UNX: Fix typo. + * builds/unix/install.mk (uninstall): Fix library name for libtool. + +2002-01-28 Francesco Zappa Nardelli + + * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of + the face object (face->toc.tables, face->root.family_name, + face->root.available_size, face->charset_encoding, + face->charset_registry are now freed). Thanks to Niels Moseley. + +2002-01-28 Roberto Alameda + + * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'. + +2002-01-28 Werner Lemberg + + * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy + of `base' string for decrypting to not modify the original data. + Based on a patch by Jakub Bogusz . + +2002-01-27 Giuliano Pochini + + * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused + bad rendering of thin lines (less than one pixel thick). + +2002-01-25 Werner Lemberg + + * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work + actually. + +2002-01-25 Martin Zinser + + * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix + compilation warnings. + * src/base/descrip.mms (OBJS): Add `ftmm.obj'. + * src/cache/descrip.mms (ftcache.obj): Dependencies added. + +2002-01-25 WANG Yi + + * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug. + +2002-01-21 Antoine Leca + + * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in + the URL for the online resource. + +2002-01-18 Ian Brown + + * builds/win32/ftdebug.c: New file. + * builds/win32/visualc/freetype.dsp: Updated. + +2002-01-18 Detlef Würkner + + * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9. + * builds/amiga/README: Updated. + +2002-01-18 Ian Brown + + * builds/win32/visualc/freetype.dsp: Updated. + +2002-01-13 Werner Lemberg + + * builds/unix/freetype2.a4: The script was still buggy. + * builds/unix/freetype-config.in: Make it really work for any install + prefix. + +2002-01-10 Werner Lemberg + + * builds/unix/freetype2.a4: Fix some serious bugs. + +2002-01-09 David Turner + + * builds/unix/configure.ac: Build top-level Jamfile. + +2002-01-09 Maxim Shemanarev + + * src/smooth/ftgrays.c (gray_render_line): Small optimization to + the smooth anti-aliased renderer that deals with vertical segments. + This results in a 5-7% speedup in rendering speed. + +2002-01-08 David Turner + + Added some wrapper scripts to make the installation more + Unix-friendly. + + * configure, install: New files. + + * INSTALL, README.UNX: Updated installation documentation to use the + new 'configure' and 'install' scripts. + +2002-01-07 David Turner + + + * Version 2.0.6 released. + ========================= + + + * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release. + + * src/tools/docmaker.py: Fixed HTML quoting in sources. + (html_format): Replaced with ... + (html_quote): New function. + (html_quote0): New function. + (DocCode::dump_html): Small improvement. + (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote. + + * include/freetype/config/ftoption.h: Setting default options for + a release build (debugging off, bytecode interpreter off). + + * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c, + src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c, + src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler + warnings (in pedantic compilation modes). + +2002-01-05 David Turner + + * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation + of auto-hinted stem widths; this avoids color fringes in + `ClearType-like' rendering. + + * src/truetype/ttgload.c (TT_Load_Glyph_Header, + TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph): + Modified the TrueType loader to make it more paranoid; this avoids + nasty buffer overflows in the case of invalid glyph data (as + encountered in the output of some buggy font converters). + +2002-01-04 David Turner + + * README.UNX: Added special README file for Unix users. + + * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo. + + * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid + of compiler warnings. + + * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning. + +2002-01-03 Werner Lemberg + + * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler + warning. + +2002-01-03 Keith Packard + + * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that + all FreeType input streams are closed in child processes of a `fork' + on Unix systems. This is important to avoid (potential) access + control issues. + +2002-01-03 David Turner + + * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the + library when dealing with certain weird fonts like `Stalingrad', in + `sadn.pfb' (this font has no full font name entry). + + * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check): + New function to check the consistency of outline data. + + * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to + ensure that loaded glyphs are valid. This allows certain fonts like + `tt1095m_.ttf' to be loaded even though it appears they contain + really funky glyphs. + + There still is a bug there, though. + + * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition. + +2001-12-30 David Turner + + * src/autohint/ahhint.c (ah_hinter_load): Fix advance width + computation of auto-hinted glyphs. This noticeably improves the + spacing of letters in KDE and Gnome. + +2001-12-25 Antoine Leca + + * builds/dos/detect.mk: Correcting the order for Borland compilers: + 16-bit bcc was never selected, always overridden by 32-bit bcc32. + +2001-12-22 Francesco Zappa Nardelli + + * src/pcf/pcfread.c (pcf_load_font): Handle property `POINT_SIZE' + and fix incorrect computation of `available_sizes'. + +2001-12-22 David Turner + + * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an + incorrect glyph advance in the case of mono-width fonts (like + Courier, Andale Mono, and others). + +2001-12-22 Detlef Würkner + + * builds/amiga/*: Adaptations to latest changes. + Support added for MorphOS. + +2001-12-22 Werner Lemberg + + * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'. + (ps_mask_table_merge, ps_hints_open, ps_hints_stem, + ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix + FT_ERROR messages. + * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as + `trace_pshalgo1'. + * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as + `trace_pshalgo2'. + * include/freetype/internal/ftdebug.h (FT_Trace): Updated. + + * docs/modules.txt: New file. + +2001-12-21 David Turner + + * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter): + Ignore invalid `hintmask' and `cntrmask' operators (instead of + returning an error). Glyph 2028 of the CFF font `MSung-Light-Acro' + couldn't be rendered otherwise (it seems its charstring is buggy, + though this requires more analysis). + (FT_COMPONENT): Define. + + * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c + (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a + bug where the X and Y axis where inverted in the postscript hinter. + This caused problem when displaying on non-square surfaces. + + * src/pshinter/pshalgo2.c: s/vertical/dimension/. + + * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating + point constant with a fixed-float equivalent. For some reasons not + all compilers are capable of directly computing a floating pointer + constant casted to FT_Fixed, and will link a math library instead. + +2001-12-20 Werner Lemberg + + * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix + tracing strings. + * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto. + * src/cache/ftcmanag.c (ftc_family_table_alloc, + ftc_family_table_free, FTC_Manager_Check): Ditto. + * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto. + + * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning. + +2001-12-20 David Turner + + Added PostScript hinter support to the CFF and CID drivers. + + * include/freetype/internal/cfftypes.h (CFF_Font): New member + `pshinter'. + * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function. + * src/cff/cffload.h: Updated. + * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ... + (CFF_Builder_Init): This. + Added new argument `hinting'. + (CFF_Done_Builder): Renamed to ... + (CFF_Builder_Done): This. + (CFF_Init_Decoder): Added new argument `hinting'. + (CFF_Parse_CharStrings): Implement vstem support. + (CFF_Load_Glyph): Updated. + Add hinting support. + (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding(). + (cff_argument_counts): Updated. + * src/cff/cffgload.h: Updated. + * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init, + CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GlyphSlot_Init): New + functions. + (CFF_Init_Face): Renamed to ... + (CFF_Face_Init): This. + Add hinter support. + (CFF_Done_Face): Renamed to ... + (CFF_Face_Done): This. + (CFF_Init_Driver): Renamed to ... + (CFF_Driver_Init): This. + (CFF_Done_Driver): Renamed to ... + (CFF_Driver_Done): This. + * src/cff/cffobjs.h: Updated. + * src/cff/cffdrivr.c (cff_driver_class): Updated. + + * include/freetype/internal/t1types.h (CID_FaceRec): New member + `pshinter'. + * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support. + * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs, + CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions. + (CID_Done_Face): Renamed to ... + (CID_Face_Done): This. + (CID_Init_Face): Renamed to ... + (CID_Face_Init): This. + Add hinting support. + (CID_Init_Driver): Renamed to ... + (CID_Driver_Init): This. + (CID_Done_Driver): Renamed to ... + (CID_Driver_Done): This. + * src/cid/cidobjs.h: Updated. + * src/cidriver.c: Updated. + + * src/pshinter/pshrec.c (t2_hint_stems): Fixed. + + * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that + crashed the library on exit. + + * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix + transformation of hinted glyphs. + + * src/cid/cidload.c (cid_read_subrs): Fix error condition. + + * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs + routines were never released when CID faces were destroyed. + + * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated + to move the definition of encoding tables back within `cffload.c' + instead of making them part of a shared header (causing problems in + `multi' builds). This reverts change 2001-08-08. + + * docs/CHANGES: Updated for 2.0.6 release. + * docs/TODO: Added `stem3 and counter hints support' to the TODO + list for the Postscript hinter. + * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug. + +2001-12-19 David Turner + + * include/freetype/cache/ftcache.h: Added comments to indicate that + some of the exported functions should only be used by applications + that need to implement custom cache types. + + * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug + that prevented composites from loading correctly, due to missing + parentheses around macro parameters. + + * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name' + tables optional to load PCL fonts properly. + + * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c + (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY): + `Fixed' the bug that prevented embedded bitmaps to be loaded when + the auto-hinter is used. This actually is a hack but will be enough + until the internal re-design scheduled for FreeType 2.1. + + * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline + shifting bug in the monochrome renderer. + + * README: Updated version numbers to 2.0.6. + +2001-12-17 Werner Lemberg + + * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid + glyph header. + +2001-12-15 Werner Lemberg + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning. + * include/freetype/ftcache.h (FTC_Node_Unref): Removed. It is + already in ftcmanag.h. + * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable + `gfam'. + * src/cache/ftcmanag.c (ftc_family_table_alloc, + * ftc_family_table_free): Use FT_EXPORT_DEF. + * include/freetype/cache/ftcmanag.h: Updated. + * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF. + * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable + `cfam'. + Remove compiler warning. + (FTC_CMapCache_Lookup): Remove compiler warnings. + (ftc_cmap_family_init): Ditto. + (FTC_CMapCache_Lookup): Ditto. + + * builds/unix/configure.ac: Increase `version_info' to 8:0:2. + * builds/unix/configure: Regenerated. + +2001-12-14 Werner Lemberg + + * builds/mac/README: Updated. + +2001-12-14 Scott Long + + * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when + dealing with invalid fonts (i.e. glyph size < 10 bytes). + +2001-12-14 Sam Latinga + + * builds/mac/freetype.make: A new Makefile to build with MPW on + MacOS classic. + +2001-12-14 David Turner + + * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c + (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph), + src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to + all font drivers (the advance width was never hinted when it + should). + + * include/freetype/freetype.h (FREETYPE_PATCH): New macro. + * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't + use `extern' keyword. + +2001-12-12 David Turner + + * src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem + psh_globals_new): Adding correct BlueScale/BlueShift support, plus + family blues processing. + * src/pshinter/pshglob.h (PSH_BluesRec): Updated. + + Started adding support for the Postscript hinter in the CFF module. + + * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. + (CFF_Parse_CharStrings): Implement it. + * src/cff/cffgload.h: Updated. + +2001-12-12 Werner Lemberg + + * builds/unix/freetype2.m4: Some portability fixes. + +2001-12-11 Jouk Jansen + + * src/base/descrip.mms (OBJS): Add ftdebug.obj. + +2001-12-11 Werner Lemberg + + * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos. + +2001-12-11 David Turner + + * builds/unix/freetype-config.in: Modified the script to prevent + passing `-L/usr/lib' to gcc. + + * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT'). + + * builds/unix/freetype2.m4: New file for checking configure paths. + We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I + didn't modify builds/unix/install.mk yet. + + * INSTALL: Updated the instructions to build shared libraries with + Jam. They were simply wrong. + + * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused + slightly improper results for `FT_Cos' and `FT_Sin' (example: + FT_Sin(0) == -1!). + +2001-12-11 Detlef Würkner + + * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE): + Fixed incorrect argument types. + +2001-12-10 Francesco Zappa Nardelli + + * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts + by setting the `face->metrics.max_advance' correctly. + +2001-12-07 David Turner + + * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new + charmap cache. + * src/cache/ftcache.c: Updated. + + * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/. + +2001-12-06 Leonard Rosenthol + + Added support for reading .dfont files on Mac OS X. Also added a + new routine which looks up a given font by name in the Mac OS and + returns the disk file where it resides. + + * src/base/ftmac.c: Include and . + (is_dfont): New auxiliary function. + (FT_New_Face_From_dfont): New function. + (FT_GetFile_From_Mac_Name): New exported function. + (FT_New_Face): Updated. + * include/freetype/ftmac.h: Updated. + +2001-12-06 David Turner + + * src/cache/Jamfile, src/cache/rules.mk: Updated. + +2001-12-06 Werner Lemberg + + * INSTALL: Small update. + +2001-12-05 David Turner + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for + debugging purposes. + Comment out use of `origin'. + + * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug + where outline shifting wasn't correctly undone after bitmap + rasterization. This created problems with certain glyphs (like '"' + of certain fonts) and the cache system. + + * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo. + * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo. + (ps2_hints_apply): Small fix. + +2001-12-05 David Turner + + * src/pshinter/pshalgo2.c (psh2_hint_table_init), + src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler + warnings. + + * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*: + Yet another massive rewrite of the caching sub-system in order to + both increase performance and allow simpler cache sub-classing. As + an example, the code for the image and sbit caches is now much + simpler. + + I still need to update the documentation in + www/freetype2/docs/cache.html to reflect the new design though. + + * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New + macro. + (FT_CACHE_INTERNAL_CACHE_H): Updated. + +2001-12-05 David Krause + + * docs/license.txt: s/X Windows/X Window System/. + +2001-12-04 Werner Lemberg + + * src/raster/ftraster.c: Fix definition condition of MEM_Set(). + * src/smooth/ftgrays.c (M_Y): Change value to 192. + * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter. + Remove unused variable. + * src/cache/ftcimage.c (ftc_image_node_init, + ftc_image_node_compare): Remove unused variables. + * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused + variable. + * src/raster/ftraster.c (MEM_Set): Move definition down to avoid + compiler warning. + * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to + avoid compiler warnings. + * src/pcf/pcfread.c (tableNames): Use `const'. + (pcf_read_TOC): Change counter name to avoid compiler warning. + Use `const'. + * src/pshinter/pshrec.c (ps_hints_close): Remove redundant + declaration. + * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables + to avoid shadowing. + * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto. + * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()' + and `T1_Size_Done()'. + +2001-11-20 Antoine Leca + + * include/freetype/ttnameid.h: Added some new Microsoft language + codes and LCIDs as found in MSDN (Passport SDK). Also added + comments about the meaning of bit 57 of the `OS/2' table + (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is + a character beyond 0xFFFF in this font'. Thanks to Detlef Würkner + for noticing this. + +2001-11-20 David Turner + + * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting + routine that created nasty alignment artefacts. + + * src/pshinter/pshrec.c, tests/gview.c: Debugging updates. + + * src/smooth/ftgrays.c: De-activated experimental gamma support. + Apparently, `optimal' gamma tables depend on the monitor type, + resolution and general karma, so it's better to compute them outside + of the rasterizer itself. + (gray_convert_glyph): Use `volatile' keyword. + +2001-10-29 David Turner + + Adding experimental `gamma' support. This produces smoother glyphs + at small sizes for very little cost. + + * src/smooth/ftgrays.c (grays_init_gamma): New function. + (gray_raster_new): Use it. + + Various fixes to the auto-hinter. They merely improve the output of + sans-serif fonts. Note that there are still problems with serifed + fonts and composites (accented characters). + + * src/autohint/ahglyph.c (ah_outline_load, + ah_outline_link_segments): Implement it. + Fix typos. + (ah_outline_save, ah_outline_compute_segments): Fix typos. + * src/autohint/ahhint.c (ah_align_serif_edge): New argument + `vertical'. Implement improvement. + (ah_hint_edges_3, ah_hinter_hint_edges): Implement it. + Fix typos. + (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix + typos. + (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined. + * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro. + * src/autohint/ahtypes.h: Ditto. + (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges' + (making them global as `ah_debug_disable_horz' and + `ah_debug_disable_vert'). + Fix typos. + + * tests/gview.c: Updated the debugging glyph viewer to show the + hints generated by the `autohint' module. + +2001-10-27 David Turner + + * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that + considerably lowered the performance of the abstract chunk cache. + +2001-10-26 David Turner + + * include/freetype/ftcache.h, include/freetype/cache/*.h, + src/cache/*.c: Major re-design of the cache sub-system to provide + better performance as well as an `Acquire'/`Release' API. Seems to + work well here, but probably needs a bit more testing. + +2001-10-26 Leonard Rosenthol + + * builds/mac/README: Updated to reflect my taking over the project + and that is now being actively maintained. + + * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller + to support loading a face other than the + first from a FOND resource. + (FT_New_Face_From_FOND): Updated. + +2001-10-25 Leonard Rosenthol + + * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac + OS for latest version (7) of CWPro and for recent changes to the FT + source tree. + +2001-10-25 David Turner + + * include/freetype/config/ftoption.h: Updated comments to explain + precisely how to use project-specific macro definitions without + modifying this file manually. + + (FT_CONFIG_FORCE_INT64): Define. + + (FT_DEBUG_MEMORY): New macro. + +2001-10-24 Tom Kacvinsky + + * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'. + +2001-10-23 David Turner + + * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: + Improvements to the memory debugger to report more information in + case of errors. Also, some allocations that occurred through REALLOC + couldn't be previously caught correctly. + + * src/autohint/ahglyph.c (ah_outline_compute_segments, + ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new), + src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced + liberal uses of memset() by the MEM_Set() macro. + +2001-10-23 David Turner + + * src/raster/ftraster.c (Update): Removed to be inlined in ... + (Sort): Updated. + +2001-10-22 David Turner + + * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory), + builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory), + builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory), + src/base/ftdbgmem.c: Updated the memory debugger and + platform-specific implementations of `ftsystem' in order to be able + to debug memory allocations on Unix, VMS and Amiga too! + + * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed + some bogus warnings. + + * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: + Modified the debugging memory manager to report the location (source + file name + line number) where leaked memory blocks are allocated in + the source file. + + * src/base/ftdbgmem.c: New debugging memory manager. You must + define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it. It + will record every memory block allocated and report simple errors + like memory leaks and double deletes. + + * src/base/Jamfile: Include ftdbgmem. + * src/base/rules.mk: Ditto. + * src/base/ftbase.c: Include ftdbgmem.c. + + * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY + macro definition. + + * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the + base component to use the debugging memory manager when the macro + FT_DEBUG_MEMORY is defined. + +2001-10-21 Tom Kacvinsky + + * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if + we are working with a CID keyed CFF font. Otherwise, a variable + that was never allocated memory might freed. This is a correction + to the previous patch for freeing subfonts. + +2001-10-21 Tom Kacvinsky + + * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to + avoid a memory leak. + +2001-10-21 David Turner + + * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c, + src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes + (in multi-object compilation mode, mainly). + +2001-10-20 Tom Kacvinsky + + * src/type1/t1load.c (parse_encoding): Add a test to make sure + that custom encodings (i.e., neither StandardEncoding nor + ExpertEncoding) are not loaded twice when the Type 1 font is + synthetic. + + * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test + for when loading synthetic fonts to make sure that the font name + and subroutines are not loaded twice. This is to remove a memory + leak that occurred because the original memory blocks for these + objects were not deallocated when the objects were parsed the + second time. + +2001-10-19 David Turner + + * src/smooth/ftgrays.c, src/pshinter/pshglob.h, + src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of + compiler warnings. + + * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control + files to build the PostScript hinter with the `old' build system. + +2001-10-19 Jacob Jansen + + * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build + files. + +2001-10-18 David Turner + + * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the + `glnames.py' script used to generate the `pstables.h' header file. + The old one contained a serious bug that made FreeType return + incorrect glyph names for certain glyphs. + + * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of + pixel size from character size to use rounding. This is an + experiment to see whether this gives values similar to Windows for + scaled ascent/descent/etc. + + * src/base/ftcalc.c (FT_Div64by32): Changed the implementation + slightly since the original code was mis-compiled on Mac machines + using the MPW C compiler. + + * src/base/ftobjs.c (FT_Realloc): When a memory block was grown + through FT_Realloc(), the new bytes were not set to 0, which created + some strange bugs in the PostScript hinter. + (destroy_face): Don't deallocate unconditionally. + + * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph): + Adding support to new PostScript hinter. + + * include/freetype/internal/psglobal.h, + include/freetype/internal/pshints.h, + include/freetype/config/ftmodule.h, src/pshinter/Jamfile, + src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h, + src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h, + src/pshinter/pshalgo2.c, src/pshinter/pshglob.h, + src/pshinter/pshglob.c, src/pshinter/pshinter.c, + src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c, + src/pshinter/pshrec.h: Adding new PostScript hinter module. + + * include/freetype/internal/ftobjs.h, + include/freetype/internal/internal.h, + include/freetype/internal/psaux.h, + include/freetype/internal/t1types.h, src/psaux/psobjs.c, + src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c, + src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c, + src/type1/t1objs.h: Updates to use the new PostScript hinter. + + * tests/Jamfile, tests/gview.c: Adding a new glyph hinting + viewer/debugger to the source tree. Note that you will _not_ be + able to compile it since it depends on an unavailable graphics + library named `Nirvana' to render vector images. + +2001-10-17 David Turner + + + * Version 2.0.5 released. + ========================= + + + * include/freetype/freetype.h, include/internal/ftobjs.h, + src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named + 'FT_Get_Postscript_Name' to retrieve the PostScript name of a given + font. Should work with all formats except pure CFF/CEF fonts (this + will be added soon). + + * src/cid/cidriver (cid_get_postscript_name): New function. + (CID_Get_Interface): Handle `postscript_name' interface. + + * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function. + (SFNT_Get_Interface): Handle `postscript_name' interface. + + * src/type1/t1driver.c (t1_get_ps_name): New function. + (Get_Interface): Handle `postscript_name' interface. + + * README, docs/CHANGES: Updated for 2.0.5 release. + +2001-10-08 David Turner + + Fixed a bug in `glnames.py' that prevented it from generating + correct glyph names tables. This resulted in the unavailability of + certain glyphs like `Cacute', `cacute' and `lslash' in Unicode + charmaps, even if these were present in the font (causing problems + for Polish users). + + * src/tools/glnames.py (mac_standard_names): Fixed. + (t1_standard_strings): Some fixes and renamed to ... + (sid_standard_names): This. + (t1_expert_encoding): Fixed. + (the_adobe_glyph_list): Renamed to ... + (adobe_glyph_names): This. + (the_adobe_glyphs): Renamed to ... + (adobe_glyph_values): This. + (dump_mac_indices, dump_glyph_list, dump_unicode_values, main): + Updated. + * src/psnames/pstables.h: Regenerated. + * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset. + Fix return value. + Use `sid_standard_table' and `ps_names_to_unicode' instead of + `t1_standard_glyphs' and `names_to_unicode'. + (PS_Macintosh_Name): Use `ps_glyph_names' instead of + `standard_glyph_names'. + (PS_Standard_Strings): Use `sid_standard_names' instead of + `t1_standard_glyphs'. + + * doc/BUGS, doc/TODO: New documents. + +2001-10-07 Richard Barber + + * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented + correct LRU behaviour. + +2001-10-07 David Turner + + setjmp() and longjmp() are now used for rollback (i.e. when memory + pool overflow occurs). + + Function names are now all uniformly prefixed with `gray_'. + + * src/smooth/ftgrays.c: Include . + (ErrRaster_MemoryOverflow): New macro. + (TArea): New type to store area values in each cell (using `int' was + too small on 16-bit systems). is included to properly + get the needed data type. + (TCell, TRaster): Use it. + (TRaster): New element `jump_buffer'. + (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get + `outline' from it. + (gray_record_cell): Use longjmp(). + (gray_set_cell): Use gray_record_cell() for error handling. + (gray_render_line, gray_render_conic, gray_render_cubic): Simplify. + (gray_convert_glyph_inner): New function, using setjmp(). + (gray_convert_glyph): Use it. + +2001-10-07 David Turner + + Provide a public API to manage multiple size objects for a given + FT_Face in the new header file `ftsizes.h'. + + * include/freetype/ftsizes.h: New header file, + * include/freetype/internal/ftobjs.h: Use it. + Remove declarations of FT_New_Size and FT_Done_Size (moved to + ftsizes.h). + * include/freetype/config/ftheader.h (FT_SIZES_H): New macro. + * src/base/ftobjs.c (FT_Activate_Size): New function. + * src/cache/ftcmanag.c: Include ftsizes.h. + (ftc_manager_init_size, ftc_manager_flush_size): Use + FT_Activate_Size. + +2001-09-20 Detlef Würkner + + * builds/amiga/*: Added port to Amiga with the SAS/C compiler. + +2001-09-15 Detlef Würkner + + * src/type1/t1afm.c (T1_Done_AFM): Free `afm'. + +2001-09-10 Yao Zhang + + * src/sfnt/ttcmap.c (code_to_index2): Handle code values with + hi-byte == 0 correctly. + +2001-09-10 Werner Lemberg + + * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo. + +2001-08-30 Martin Muskens + + * src/type1/t1load.c (parse_font_matrix): A new way to compute the + units per EM with greater accuracy (important for embedded T1 fonts + in PDF documents that were automatically generated from TrueType + ones). + + * src/type1/t1load.c (is_alpha): Now supports `+' in font names; + this is used in embedded fonts. + + * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that + generated a dangling pointer reference. + +2001-08-30 Anthony Feik + + * src/type1/t1afm.c (T1_Read_AFM): Now correctly sets the flag + FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files. + +2001-08-25 Werner Lemberg + + * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of + `cmap_rec_fields'. + + * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]: + Undefine FT_ERR_BASE before defining again. + +2001-08-22 Werner Lemberg + + * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func. + +2001-08-21 Werner Lemberg + + * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'. + +2001-08-21 David Turner + + * include/freetype/config/ftoption.h: Changed the default setting + for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks + source compatibility in a few cases. Updated the comment to explain + that too. + +2001-08-17 Martin Muskens + + * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo. + +2001-08-12 Werner Lemberg + + Updating to OpenType 1.3. + + * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4, + TT_CMap6): Adding field `language'. + (TT_CMapTable): Removing field `language'. + Type of `length' field changed to FT_ULong. + Adding fields for cmaps format 8, 10, and 12. + (TT_CMapGroup): New auxiliary structure. + (TT_CMap8_12, TT_CMap10): New structures. + * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader): + Removed last element of `Reserved' array. + * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4, + TT_NAME_ID_CID_FINDFONT_NAME): New macros. + + * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language' + field to the new structures. + Fixed freeing of arrays in case of unsuccessful loads. + Added support for loading format 8, 10, and 12 cmaps. + (TT_CharMap_Free): Added support for freeing format 8, 10, and 12 + cmaps. + (code_to_index4): Small improvement. + (code_to_index6): Ditto. + (code_to_index8_12, code_to_index10): New functions. + * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new + structure. + (TT_Load_CMap): Ditto. + + * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS + Unicode). + +2001-08-11 Werner Lemberg + + * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning. + +2001-08-09 Tom Kacvinsky + + * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to + cff_get_glyph_name for consistency. + + (cff_get_glyph_index): Minor documentation change. + + * src/type1/t1driver.c (t1_get_name_index): New function used in + Get_Interface as the function returned when the `name_index' + function is requested. + + (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency. + +2001-08-08 Tom Kacvinsky + + * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset, + cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding, + and cff_expert_encoding arrays to cffload.h. + + * src/cff/cffload.h: Added definitions of cff_isoadobe_charset, + cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding, + and cff_expert_encoding arrays. + + * src/cff/cffdrivr.c (cff_get_name_index): New function, returned + when `cff_get_interface' is called with a request for the + `name_index' function. + + (cff_get_interface): Modified so that it returns the function + `cff_get_name_index' when the `name_index' function is requested. + + * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to + return a glyph index for a given glyph name only if the driver + supports glyph names. + + * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester): + New function pointer type definition used in the function + FT_Get_Name_Index. + + * include/freetype/freetype.h (FT_Get_Name_Index): Added + documentation and prototype. + +2001-07-26 Werner Lemberg + + * builds/cygwin/*: Removed. Use the unix stuff instead. + +2001-07-26 Jouk Jansen + + * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated + 2001-06-27. + +2001-07-17 Werner Lemberg + + * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for + `cursor' and `capacity'. + * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for second + parameter. + (PS_Table_Add): Use FT_Offset for `new_size'. + + Add support for version 0.5 maxp tables. + + * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it. + (TT_Load_OS2): Initialize some values. + +2001-07-13 Werner Lemberg + + * src/base/ftsynth.c: Include ftcalc.h unconditionally. + +2001-07-07 David Turner + + * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread: + Removed pedantic compiler warnings when the bytecode interpreter is + compiled in. + +2001-07-03 Werner Lemberg + + * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove + unused variable `edges'. + (ah_hinter_load): Remove unused variables `old_width' and + `new_width'. + * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again). + * src/psaux/psobjs.c (T1_Decrypt): Ditto. + * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto. + +2001-06-28 David Turner + + * include/internal/ftstream.h: Modified the definitions + of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness. + +2001-06-26 Werner Lemberg + + * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset + instead of FT_Int as type for `length' parameter. + * include/freetype/internal/psaux.h (PSAux_Interface): Updated. + +2001-06-27 Wolfgang Domröse + + * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset + instead of FT_Int as type for `length' parameter. + + + * Version 2.0.4 released. + ========================= + + +2001-06-27 David Turner + + * builds/unix/ftconfig.in: Changed the definition of the + FT_CALLBACK_DEF macro. + + * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and + use of the FT_CALLBACK_DEF macro in order to support 16-bit + compilers. + + * builds/unix/ftconfig.in: Changed the definition of the + FT_CALLBACK_DEF macro. + + * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures + that the kerning table is correctly sorted (some problem fonts don't + have a correct kern table). + +2001-06-26 Wolfgang Domröse + + * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo. + +2001-06-24 David Turner + + * src/base/ftcalc.c (ft_div64by32): Fixed the source to work + correctly on 16-bit systems. + +2001-06-23 Anthony Fok + + * debian/*: Added Debian package build directory for 2.0.4. + +2001-06-22 David Turner + + * docs/PATENTS: Added patents disclaimer. This one was missing! + + * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release. + +2001-06-20 Werner Lemberg + + * include/freetype/config/ftconfig.h: Add two more `L's to + constants. + Add missing semicolons. + + * builds/toplevel.mk: Do similar change as for + builds/unix/detect.mk. + + * include/freetype/freetype.h (FT_ENC_TAG): New version to make it + easier to redefine. + * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto. + + * src/pcf/pcfread.c (pcf_get_encodings): Add cast. + +2001-06-19 David Turner + + * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html: + Updated the Visual C++ project (for the 2.0.4 release). + + * builds/unix/detect.mk: Added rule for AIX detection (which uses + /usr/sbin/init instead of /sbin/init). + + * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the + error macros to simplify handling of new error scheme. + +2001-06-19 Werner Lemberg + + * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro. + +2001-06-19 David Turner + + Removing _lots_ of compiler warnings when the most pedantic warning + levels of Visual C++ and Borland C++ are used. Too many files to be + listed here, but FT2 now compiles without warnings with VC++ and the + `/W4' warning level (lint-style). + + * include/freetype/freetype.h (FT_New_Memory_Face): Updated + documentation. + * include/freetype/fttypes.h (FT_BOOL): New macro. + * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++ + to suppress warning. + * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE}, + FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros. + (NEXT_*): Use them. + * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H. + (FT_New_Memory_Face): Add `const' to function declaration. + +2001-06-18 Werner Lemberg + + Minor cleanups to remove compiler warnings. + + * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use + `L' for constant. + * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto. + * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant. + * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable. + * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants. + * src/base/ftobjs.c (FT_Done_Size): Fix return value. + (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove + unused `memory' variable. + * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant. + * src/autohint/ahhint.c (ah_hint_edges_3, + ah_hinter_align_edge_points): Remove unused `before' and `after' + variables. + (ah_hinter_align_weak_points): Remove unused `edge_limit' variable. + (ah_hinter_load): Remove unused `new_advance', `start_contour', + and `metrics' variables. + * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid + compiler warning. + * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset' + variable. + * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused + `outline' variable. + (cff_compute_bias): Use `U' for constant. + * src/cid/cidload.c (cid_decrypt): Ditto. + * src/psaux/psobjs.c (T1_Decrypt): Ditto. + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto. + * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version' + variable. + * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top' + variable. + * src/truetype/ttgload.c (load_truetype_glyph): Remove unused + `num_contours' and `ins_offset' variables. + (compute_glyph_metrics): Remove unused `Top' and `x_scale' + variables. + (TT_Load_Glyph): Remove unused `memory' variable. + * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants. + +2001-06-18 Werner Lemberg + + Make the new error scheme source compatible with older FT versions + by introducing another layer. + + * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New + macros. + (FT_NOERRORDEF): Removed. + * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_. + +2001-06-16 Werner Lemberg + + * include/freetype/freetype.h (FT_ENC_TAG): New macro. + (FT_Encoding_): Use it. + * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it + conditionally. + +2001-06-14 David Turner + + Modified the TrueType interpreter to let it use the new + trigonometric functions provided in `fttrigon.h'. This gets rid of + some old 64-bit computation routines, as well as many warnings when + compiling the library with the `long long' 64-bit integer type. + + * include/freetype/config/ftoption.h: Undefine + FT_CONFIG_OPTION_OLD_CALCS. + * include/freetype/internal/ftcalc.h: Rearrange use of + FT_CONFIG_OPTION_OLD_CALCS. + * src/base/ftcalc.c: Add declaration of FT_Int64 if + FT_CONFIG_OPTION_OLD_CALCS isn't defined. + * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H. + (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't + defined. + (Current_Ratio, Normalize): Simplify code. + +2001-06-11 Mike Owens + + * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove + compiler warnings. + +2001-06-08 Werner Lemberg + + * builds/unix/configure.in: Renamed to ... + * builds/unix/configure.ac: This to make sure that autoconf 2.50 is + needed. + Run `autoupdate' on it. + Increase `version_info' to 7:0:1. + * builds/unix/configure: Regenerated. + +2001-06-08 David Turner + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that + corrupted transformed glyphs that were auto-hinted (the transform + was applied twice). + + Fixed a bug that returned an invalid linear width for composite + TrueType glyphs. + + * include/internal/tttypes.h (TT_Loader_): Two new elements `linear' + and `linear_def'. + * src/truetype/ttgload.c (load_truetype_glyph, + compute_glyph_metrics): Use it. + + * include/fttypes.h (FT_ERROR_BASE): New macro. + * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it + to make source code work with the new error scheme implemented by + Werner. + * src/base/ftoutln.c (FT_Outline_Render): Ditto. + +2001-06-07 Werner Lemberg + + Updating to libtool 1.4.0 and autoconf 2.50. + + * builds/unix/ltconfig: Removed. + * builds/unix/ltmain.sh, builds/unix/configure.in, + builds/unix/aclocal.m4: Updated. + * builds/unix/configure: Regenerated. + +2001-06-06 Werner Lemberg + + Complete redesign of error codes. Please check ftmoderr.h for more + details. + + * include/freetype/internal/cfferrs.h, + include/freetype/internal/tterrors.h, + include/freetype/internal/t1errors.h: Removed. Replaced with files + local to the module. All extra error codes have been moved to + `fterrors.h'. + + * src/sfnt/ttpost.h: Move error codes to `fterrors.h'. + + * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h, + src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h, + src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, + src/smooth/ftsmerrs.h, src/truetype/tterrors.h, + src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the + error names for the module it belongs to. + + * include/freetype/ftmoderr.h: New file, defining the module error + offsets. Its structure is similar to `fterrors.h'. + + * include/freetype/fterrors.h (FT_NOERRORDEF): New macro. + (FT_ERRORDEF): Redefined to use module error offsets. + All internal error codes are now public; unused error codes have + been removed, some are new. + + * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New + macro. + * include/freetype/config/ftoption.h + (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro. + + All other source files have been updated to use the new error codes; + some already existing (internal) error codes local to a module have + been renamed to give them the same name as in the base module. + + All make files have been updated to include the local error files. + +2001-06-06 Werner Lemberg + + * src/cid/cidtokens.h: Replaced with... + * src/cid/cidtoken.h: This file for 8+3 consistency. + + * src/raster/ftraster.c: Use macros for header file names. + + * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_): + Fix length of `Reserved' array. Note that this isn't the real fix + since recent OpenType specs have introduced a `CaretOffset' field + instead of the first reserved byte. + +2001-05-29 Werner Lemberg + + * INSTALL: Minor fixes. + + + * Version 2.0.3 released. + ========================= + + +2001-05-29 David Turner + + * INSTALL, docs/CHANGES: Updated. + +2001-05-25 David Turner + + Moved several documents from the top-level to the `docs' directory. + + * src/base/ftcalc.c (FT_DivFix): Small fix to return value. + +2001-05-16 David Turner + + * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the + composite loader. Spotted by Keith Packard. + * src/base/ftobjs.c (FT_GlyphLoader_Check_Points, + FT_GlyphLoader_Check_Subglyphs): Ditto. + +2001-05-14 David Turner + + Fixed the incorrect blue zone computations, and improved the + composite support. Note that these changes result in improved + rendering, while sometimes introducing their own artefacts. This is + probably the last big change to the autohinter before the + introduction of a complete replacement. + + * src/autohint/ahglobal.c (sort_values): Fix loop. + * src/autohint/ahglyph.c: Removed some obsolete code. + (ah_outline_compute_edges): Modify code to set the ah_edge_round + flag. + (ah_outline_compute_blue_edges): Add code to compute active blue + zones. + * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags + value. + + * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that + created incorrect scale factors! + (FT_RoundFix, FT_CeilFix, FT_FloorFix): Minor improvements. + +2001-05-12 Werner Lemberg + + * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__. + * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ -> + __FTTRIGON_H__. + Include FT_FREETYPE_H. + Beautified; added copyright. + * src/base/fttrigon.c: Beautified; added copyright. + +2001-05-11 David Turner + + * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c + (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed + the incorrect EM size computation. + + * include/freetype/fttrigon.h, src/base/fttrigon.c: New files, + adding trigonometric functions to the core API (using Cordic + algorithms). + * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them. + + * builds/newline: New file. + * builds/top_level.mk, builds/detect.mk: Use it. This fixes + problems with Make on Windows 2000, as well as problems when `make + distclean' is invoked on a non-Unix platform when there is no + `config.mk' in the current directory. + + * builds/freetype.mk: Fixed a problem with object deletions under + Dos/Windows/OS/2 systems. + + Added new directory to hold tools and test programs. + + * docs/docmaker.py, docs/glnames.py: Moved to... + * src/tools/docmaker.py, src/tools/glnames.py: This place. + * src/tools/cordic.py: New file used to compute arctangent table + needed by fttrigon.c. + * src/tools/test_bbox.c, src/tools/test_trig.c: New test files. + + * src/tools/docmaker.py: Improved the script to add the current date + at the footer of each web page (useful to distinguish between + versions). + + * Jamfile: Fixed incorrect HDRMACRO argument. + + * TODO: Removed the cubic arc bbox computation note, since it has been + fixed recently. + * src/base/ftbbox.c (test_cubic_zero): Renamed to... + (test_cubic_extrema): This function. Use `UL' for unsigned long + constants. + + * include/freetype/t1tables.h, include/freetype/config/ftoption.h: + Formatting. + +2001-05-10 David Turner + + * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak + which happened when trying to open 0-size font files! + +2001-05-09 Werner Lemberg + + * include/freetype/internal/ftcalc.h: Move declaration of + FT_SqrtFixed() out of `#ifdef FT_LONG64'. + +2001-05-08 Francesco Zappa Nardelli + + * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width + computation. + +2001-05-08 David Turner + + * docs/docmaker.py: Updated the DocMaker script in order to add + command line options (--output,--prefix,--title), fix the erroneous + line numbers reported during errors and warnings, and other + formatting issues. + + * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny + fixes related to rounding in 64-bits routines and + pseudo-`optimizations'. + +2001-04-27 David Turner + + * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient + normalization algorithm (invalid final bit position, and invalid + shift computation). + +2001-04-26 Werner Lemberg + + * builds/unix/config.guess, builds/unix/config.sub: Updated to + latest versions from gnu.org. + + * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag. + + * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed() + unconditionally. + * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H. + Fix compiler warnings. + * src/base/ftcalc.c: Fix (potential) compiler warnings. + +2001-04-26 David Turner + + * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit + fixed-point square root computation. It is now used even with + 64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-) + + * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line. + +2001-04-25 David Turner + + * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use + direct computations with 16.16 values instead of sub-divisions. It + is now slower, but proves a point :-) + + * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c: + Fixed the Bézier stack depths. + + * src/base/ftcalc.c (FT_MulFix): Minor rounding fix. + + * builds/beos: Added BeOS-specific files to the old build system + (no changes were necessary to support BeOS in the Jamfile though). + +2001-04-20 David Turner + + * ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int + types on platforms where Autoconf is not available). Also removed + FTCALC_USE_LONG_LONG and replaced it with + FT_CONFIG_OPTION_FORCE_INT64. + + * builds/win32/freetype.dsp: Updated the Visual C++ project file. + Doesn't create a DLL yet. + + * cffgload.c: Removed a compilation warning. + +2001-04-10 Tom Kacvinsky + + * t1load.c (parse_charstrings): Changed code for placing .notdef + glyph into slot 0 so that we no longer have a memory access + violation. + + * t1load.h: In structure T1_Loader, added swap_table (of type + PS_Table) to facilitate placing the .notdef glyph into slot 0. + +2001-04-10 Francesco Zappa Nardelli + + * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value. + +2001-04-09 Laurence Withers + + * builds/dos/detect.mk: Add support for bash. + +2001-04-05 Werner Lemberg + + * builds/os2/*.mk: These files have been forgotten to update to + the structure of similar makefiles. + * builds/dos/*.mk: Ditto. + * builds/ansi/*.mk: Ditto. + + * builds/win32/win32-def.mk (BUILD): Fix typo. + + * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT. + This is already used in the link_*.mk files. + +2001-04-03 Werner Lemberg + + * src/*/Jamfile: Slight changes to make files more cryptic. + +2001-04-03 Werner Lemberg + + * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes + to give files identical structure. + +2001-04-02 Werner Lemberg + + * CHANGES: Reformatted, minor fixes. + * TODO: Updated. + * README: Formatting. + * include/freetype/freetype.h: Formatting. + + * Jamfile: Fix typo. + + * src/cff/cffparse.c: Move error code #defines to... + * include/freetype/internal/cfferrs.h: This file. + * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced + `FT_Err_*' with `CFF_Err_*'. + * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'. + * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto. + * src/sfnt/sfobjs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with + `TT_Err_*'. + * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto. + * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c, + src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'. + + * include/freetype/internal/cfferrs.h: Add + `CFF_Err_Unknown_File_Format'. + * include/freetype/internal/t1errors.h: Add + `T1_Err_Unknown_File_Format'. + * include/freetype/internal/tterrors.h: Add + `TT_Err_Unknown_File_Format'. + + * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset' + references. + * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'. + + * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use + FT_LOCAL_DEF. + * src/cid/cidobjs.c (CID_Done_Driver): Ditto. + * src/truetype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size): + Ditto. + * src/type1/t1objs.c (T1_Done_Driver): Ditto. + * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto. + * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'. + +2001-04-02 Tom Kacvinsky + + * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer + dereference. Submitted by Herbert Duerr . + +2001-03-26 Tom Kacvinsky + + * include/freetype/config/ftconfig.h: Changed hexadecimal + constants to use suffix U to avoid problems with HP-UX's c89 + compiler. Submitted by G.W. Lucas . + +2001-03-24 David Turner + + * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to + the source tree. See www.freetype.org/jam/index.html for details. + + + * Version 2.0.2 released. + ========================= + + +2001-03-20 Werner Lemberg + + * builds/win32/detect.mk: Fix .PHONY target for Intel compiler. + +2001-03-20 David Turner + + * include/freetype/config/ftheader.h, include/freetype/ftsnames.h: + Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to + FT_SFNT_NAMES_H. + + * docs/docmaker.py: Added generation of INDEX link in table of + contents. + + * INSTALL, docs/BUILD: Updated documentation to indicate that the + compilation process has changed slightly (no more `src' required in + the include path). + + * builds/*/*-def.mk: Changed the objects directory from `obj' to + `objs'. + + * include/freetype/config/ftheader.h: Removed obsolete macros like + FT_SOURCE_FILE, etc. and added cache-specific macro definitions that + were previously defined in . Added comments to + be included in a new API Reference section. + + * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each + component needs to add its own directory to the include path at + compile time. Modified all `rules.mk' and `descrip.mms' + accordingly. + +2001-03-20 Werner Lemberg + + * builds/unix/configure.in: Add $ft_version. + * builds/unix/freetype-config.in: Use it. + * builds/unix/configure: Updated. + +2001-03-19 Tom Kacvinsky + + * src/type1/t1load.c (parse_font_matrix): Assign the units per em + value an unsigned short value, first by shifting right 16 bits, + then by casting the results to FT_UShort. + + * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em + value an unsigned short value, first by shifting right 16 bits, + then by casting the results to FT_UShort. + +2001-03-17 David Turner + + * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c, + src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove + compiler warnings in pedantic modes. + + * include/config/ft2build.h, include/config/ftheader.h: The file + `ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the + top-level . + + * include/config/ftheader.h: Added new section describing the #include + macros. + +2001-03-17 Tom Kacvinsky + + * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed + values for the bounding box numbers. + + * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font, + set `root->ascender' (`root->descender') to the integer part of + `root->bbox.yMax' (`root->bbox.yMin', respectively). + +2001-03-16 Tom Kacvinsky + + * src/cff/cffdrivr.c (get_cff_glyph_name): New function. Used in + cff_get_interface to facilitate getting a glyph name for glyph index + via FT_Get_Glyph_Name(). + + (cff_get_interface): Added support for getting a glyph name via the + `glyph_name' module interface. Uses the new function + get_cff_glyph_name(). + Submitted by Sander van der Wal . + + * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with + FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is + not defined. This is to add support for getting a glyph name from a + glyph index via FT_Get_Glyph_Name(). + Submitted by Sander van der Wal . + + * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for + deprecated operator `dotsection'. + Submitted by Sander van der Wal . + +2001-03-12 Werner Lemberg + + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error + messages. + + * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer. + +2001-03-12 Tom Kacvinsky + + * include/freetype/internal/psaux.h: Changed the lenIV member of + the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt. + + * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust + for lenIV seed bytes at the start of a decrypted subroutine. + + * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only + if lenIV >= 0. + + * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only + if lenIV >= 0. + +2001-03-11 Werner Lemberg + + * TODO: Updated. + + * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to + avoid compiler warnings. + +2001-03-10 Tom Kacvinsky + + * TODO: New file. + + * include/freetype/freetype.h: Added prototypes and notes for + three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix. + * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added + implementation code. + + * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM, + and if that is not available, default to 1000 units per EM. Changed + assignment code for ascender and descender values. + * src/cid/cidload.c (parse_font_matrix): Added units_per_EM + processing. + (parse_font_bbox): Changed to use FT_Fixed number handling. + + * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code + for ascender, descender, and max_advance_width. + * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed + number handling. + +2001-03-10 Henrik Grubbström + + * src/*/*.c: Added many casts to make code more 64bit-safe. + +2001-03-07 Werner Lemberg + + * INSTALL, docs/BUILD: We need GNU make 3.78 or newer. + +2001-03-07 Tom Kacvinsky + + * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait + until parse_font_bbox is changed before we use logical shift rights + in the assignments of `root->ascender', `root->descender', and + `root->max_advance_width'. + + (T1_Done_Face): Free `char_name' table to avoid a memory leak. + Submitted by Sander van der Wal . + +2001-03-05 Tom Kacvinsky + + * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the + the Type 2 glyph charstring (used by conversion programs). + Submitted by Ha Shao . + +2001-03-04 Antoine Leca + + * include/freetype/ttnameid.h: Correct a stupid typo which prevented + correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice). + +2001-03-04 Werner Lemberg + + * src/autohint/ahtypes.h (AH_Hinter): Add elements + `disable_horz_edges', `disable_vert_edges'. + * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use + them (and remove static variables with the same names). + * src/pcf/pcfutil.c (BitOrderInvert): Add `const'. + * docs/glnames.py: Updated to latest pstables.h changes. + + * builds/unix/detect.mk: Add test for Hurd. + * builds/hurd/detect.mk: Removed. + +2001-03-04 Sander van der Wal + + * src/psnames/pstables.h: Add more `const'. + * src/pcf/pcfutil.c: Ditto. + +2001-03-04 Werner Lemberg + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo + (FT_Glyph_Done -> FT_Done_Glyph). + +2001-03-01 Antoine Leca + + * include/freetype/ttnameid.h: Added some new Microsoft language + codes and LCIDs as found in Office Xp. + +2001-02-28 David Turner + + * builds/hurd/detect.mk: New file. Added support to detect the GNU + Hurd operating system as Unix-like. Fix submitted by Anthony Fok + . + + * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the + the Type 1 glyph charstring (used by conversion programs). + Submitted by Ha Shao . + +2001-02-22 David Turner + + * src/base/ftgrays.c (grays_sweep): The function didn't exit + immediately if `num_cells' was 0 as it should. Thanks to Boris for + finding this out. + + * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when + bitmap rendering fails (thanks to Graham Asher). + +2001-02-13 Werner Lemberg + + * docs/docmaker.py (DocSection::add_element): Use + `self.print_error()'. + + * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org). + +2001-02-13 David Turner + + * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker + script to support chapters and section block ordering. Updated the + public header files accordingly. + + * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format + were not correctly copied. + +2001-02-08 Tom Kacvinsky + + * src/cff/cffparse.c (cff_parse_font_matrix): Removed an + unnecessary fprintf( stderr, ... ). + +2001-02-07 Tom Kacvinsky + + * src/type1/t1objs.c (T1_Init_Face): Added code to get the + units_per_EM from the value assigned in parse_font_matrix, if + available. Default to 1000 if not available. + + * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get + the units_per_EM from the FontMatrix. + + (cff_parse_fixed_thousand): New function. Gets a real number from + the CFF font, but multiplies by 1000 (this is to avoid rounding + errors when placing this real number into a 16.16 fixed number). + + (cff_parse_real): Added code so that the integer part is moved + into the high sixteen bits of the 16.16 fixed number. + + * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units + per EM from the CFF dictionary, if available. + + * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_, + added a units_per_em member to facilitate passing of units_per_em + from function cff_parse_font_matrix. + + * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric + character. This is so that font names with `-' are fully parsed, + etc... + +2001-02-02 Werner Lemberg + + * src/psaux/psobjs.c (shift_elements): Remove if clause (which is + obsolete now). + + (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC() + + MEM_Copy() to avoid a memory bug. + +2001-02-01 David Turner + + * docs/docmaker.py: Improved the index sorting routine to place + capital letters before small ones. Added the `' marker to + section blocks in order to give the order of blocks. + +2001-01-30 Antoine Leca + + * include/freetype/ttnameid.h: Latest updates to Microsoft language + ID codes. + +2001-01-24 Tom Kacvinsky + + * src/cff/t1load.c (parse_font_matrix): Added heuristic to get + units_per_EM from the font matrix. + + (parse_dict): Deleted test to see whether the FontInfo keyword has + been seen. Deletion of this test allows fonts without FontInfo + dictionaries to be parsed by the Type 1 driver. + + (T1_Open_Face): Deleted empty subroutines array test to make sure + fonts with no subroutines still are parsed. + +2001-01-17 Francesco Zappa Nardelli + + * src/pcfread.c (pcf_get_properties, pcf_get_metrics, + pcf_get_bitmaps): Fix compiler errors. + +2001-01-11 David Turner + + * src/pcf/pcfread.c: Removed some compilation warnings related + to comparison of signed vs. unsigned integers. + + * include/freetype/internal/ftdebug.h: Changed the debug trace + constants from trace_t2xxxx to trace_cffxxxx to be able to compile + the CFF driver in debug mode. + +2001-01-11 Matthew Crosby + + * builds/unix/freetype-config.in: Fix problems with separate + --prefix and --exec-prefix. + +2001-01-11 David Turner + + * docs/docmaker.py: Added cross-references generation as well as + more robust handling of pathname wildcard matching. + +2001-01-10 Werner Lemberg + + * docs/docmaker.py: Minor improvements to reduce unwanted spaces + and empty lines in output. + +2001-01-09 David Turner + + * docs/docmaker.py: Improved script to generate table of contents + and index pages. It also supports wildcards on non Unix systems. + + * include/freetype/*.h, include/freetype/cache/*.h: Updated comments + to include section definitions/delimitations for the API Reference + generator. + + * include/freetype/freetype.h: Moved declaration of + `FT_Generic_Finalizer' and the `FT_Generic' structure to... + * include/freetype/fttypes.h: here. + +2001-01-04 Werner Lemberg + + * include/freetype/ttnameid.h: Updated Unicode code range comments. + +2001-01-03 Tom Kacvinsky + + * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}. + + * include/freetype/internal/internal.h: Changed to use cfftypes.h + (cfferrs.h) instead of t2types.h (t2errors.h, respectively). + + * include/freetype/internal/cfftypes.h: Merged in changes from + t2types.h and made this the canonical `types' header for the CFF + driver. + + * include/freetype/internal/t2types.h: This file was merged with + cfftypes.h and is no longer necessary. + + * include/freetype/internal/t2errors.h: Renamed to cfferrs.h. + + * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c, + src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c, + src/cff/cffgload.c, src/cff/cffgload.h: Changed to use + cffgload.{c,h} instead of t2gload.{c,h}. All occurrences of t2_ + (T2_) were replaced with cff_ (CFF_, respectively). + + * src/cff/t2gload.h: Renamed cffgload.h. + + * src/cff/t2gload.c: Renamed cffgload.c + +2000-01-02 Jouk Jansen + + * builds/vms: Support files for VMS architecture added. + * descrip.mms, src/*/descrip.mms: VMS makefiles added. + * README.VMS: New file. + +2000-01-01 Werner Lemberg + + * LICENSE.TXT: Added info about PCF driver license. + +2001-01-01 Francesco Zappa Nardelli + + * src/pcf/*: New driver module for PCF font format (used in + X Window System). + * include/freetype/internal/ftdebug.h (FT_Trace): Added values for + PCF driver. + * include/freetype/internal/pcftypes.h: New file. + * include/freetype/config/ftmodule.h: Added PCF driver module. + +2001-01-01 Werner Lemberg + + * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type. + +2000-12-31 Werner Lemberg + + * builds/modules.mk (clean_module_list): Fixed deletion of module + file in case `make make_module_list' is called before `make setup'. + +2000-12-30 Werner Lemberg + + * src/cff/cffload.c (CFF_Load_Charset): Improved error messages. + (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable + definition. + +2000-12-30 Tom Kacvinsky + + * include/freetype/internal/t2types.h, + include/freetype/internal/cfftypes.h: Changed the structures for + CFF_Charset and CFF_Encoding for the new implementations of the + charset and encoding parsers in the CFF driver. + + * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode, + t2_operator_seac): Added these functions for use in implementing the + seac emulation provided by the Type 2 endchar operator. + (T2_Parse_CharStrings): Added seac emulation for the endchar + operator. + + * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset, + CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the + charset/encoding tables, and free the memory used by them when the + CFF driver is finished with them. Added tables + + cff_isoadobe_charset + cff_expert_charset + cff_expertsubset_charset + cff_standard_encoding + cff_expert_encoding + + so that the encoding/charset parser can handle predefined encodings and + charsets. + +2000-12-24 Tom Kacvinsky + + * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font + transform is applied. + + * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that + the font matrix numbers are scaled by 1/(matrix->yy). Also, the + offset vector now contains integer values instead of 16.16 fixed + numbers. + +2000-12-22 Tom Kacvinsky + + * src/autohint/ahhint.c (ah_hinter_load_glyph): + Removed unnecessary comments and commented-out code. + +2000-12-21 David Turner + + * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files, + we'll work on supporting CID AFM files later I guess :-) + +2000-12-21 Tom Kacvinsky + + * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph): + Changed so that fonts with a non-standard FontMatrix render + correctly. Previously, the first glyph rendered from such a + font did not have the transformation matrix applied. + +2000-12-17 Werner Lemberg + + * *.mk: Added lots of `.PHONY' targets. + +2000-12-17 Karsten Fleischer + + * *.mk: Implemented `platform' target to disable auto-detection. + +2000-12-14 Werner Lemberg + + * docs/design/modules.html: Removed. Covered by design-*.html. + + * INSTALL: Added info about makepp. + +2000-12-14 David Turner + + Added support for clipped direct rendering in the smooth renderer. + This should not break binary compatibility of existing applications. + + * include/freetype/fttypes.h, include/freetype/ftimage.h: Move + definition of the FT_BBox structure from the former to the latter. + * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to + FT_Raster_Flag enumeration. + Add `clip_box' element to FT_Raster_Params structure. + * src/smooth/ftgrays.c (grays_convert_glyph): Implement it. + + * INSTALL: Updated installation instructions on Win32, listing the + new `make setup list' target used to list supported + compilers/targets. + + * src/raster/ftraster.c (ft_black_render): Test for unsupported + direct rendering before testing arguments. + +2000-12-13 David Turner + + * include/freetype/config/ft2build.h, + include/freetype/internal/internal.h: Fixed header inclusion macros + to use direct definitions. This is the only way to do these things + in a portable way :-( The rest of the code should follow shortly + though everything compiles now. + + * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files. + + * builds/win32/detect.mk: Added support for the Intel C/C++ + compiler, as well as _preliminary_ (read: doesn't work!) support for + Watcom. Also added a new setup target. Type `make setup list' for + a list of supported command-line compilers on Win32. + + * src/base/ftdebug.c: Added dummy symbol to avoid empty file if + conditionals are off. + +2000-12-13 Werner Lemberg + + * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong + ftconfig.h file. + +2000-12-12 Werner Lemberg + + * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT): + Removed. ANSI C doesn't (explicitly) allow macro expansion in + arguments using `##'. + (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory + names directly. Make them configurable. Use `##' to strip leading + and trailing spaces from arguments. + + * builds/unix/ft2unix.h: Adapted. + + * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream, + ft_close_stream): Use FT_CALLBACK_DEF. + + * builds/unix/ftsystem.c: Use new header scheme. + (FT_Done_Memory): Use free() from FT_Memory structure. + + * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes. + +2000-12-11 Werner Lemberg + + * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT, + FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE, + FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant. + +2000-12-09 Werner Lemberg + + * builds/unix/detect.mk: Remove unused USE_CFLAGS variable. + +2000-12-08 Werner Lemberg + + * */*.h: Changed body inclusion macro names to start and end with + `__' (those which haven't converted yet). Fixed minor conversion + issues. + + * src/winfonts/winfnt.c: Updated to new header inclusion scheme. + + * src/truetype/ttinterp.c: Remove unused CALC_Length() macro. + +2000-12-07 David Turner + + * */*.[ch]: Changed source files to adhere to the new + header inclusion scheme. Not completely tested but works for now + here. + + * src/cff/t2driver.c: Renamed and updated to... + * src/cff/cffdrivr.c: New file. + * src/cff/t2driver.h: Renamed and updated to... + * src/cff/cffdrivr.h: New file. + * src/cff/t2load.c: Renamed and updated to... + * src/cff/cffload.c: New file. + * src/cff/t2load.h: Renamed and updated to... + * src/cff/cffload.h: New file. + * src/cff/t2objs.c: Renamed and updated to... + * src/cff/cffobjs.c: New file. + * src/cff/t2objs.h: Renamed and updated to... + * src/cff/cffobjs.h: New file. + * src/cff/t2parse.c: Renamed and updated to... + * src/cff/cffparse.c: New file. + * src/cff/t2parse.h: Renamed and updated to... + * src/cff/cffparse.h: New file. + * src/cff/t2tokens.h: Renamed and updated to... + * src/cff/cfftoken.h: New file. + + * src/cff/cff.c, src/cff/rules.mk: Updated. + +2000-12-06 David Turner + + * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak. + +2000-12-06 Werner Lemberg + + * builds/module.mk: Replaced `xxx #' with `xxx$(space). + * builds/os2/detect.mk, builds/win32/detect.mk: Moved comment to + avoid trailing spaces in variable. + * builds/freetype.mk: Use $(D) instead of $D to make statement more + readable. + + * docs/docmaker.py: Formatting. + +2000-12-05 David Turner + + * src/psaux/psauxmod.c: Fixed a broken inclusion of component + header files (an FT_FLAT_COMPILE test was missing). + + * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused + an occasional crash when the function was called (due to a dangling + pointer). + + * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug: + The ANSI `free()' function was called instead of `memory->free()'. + + * docs/docmaker.py: Added section filtering, multi-page generation + (index page generation is still missing though). + +2000-12-04 David Turner + + * builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h' + is now installed as for Unix systems. Note that we + still use the `freetype2/freetype' installation path for now. + + * */*.[ch]: Now using as the default build and setup + configuration file in all public headers. Internal source files + still need some changes though. + + * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new + directory to hold all development options for both the Unix and + Win32 developer builds. + + * builds/win32/detect.mk, builds/win32/w32-bccd.mk, + builds/win32/w32-dev.mk: Changed the developer build targets to + `devel-gcc' and `devel-bcc' in order to be able to develop with the + Borland C++ compiler. + +2000-12-01 David Turner + + + * Version 2.0.1 released. + ========================= + + + * builds/unix/configure.in, builds/unix/configure, + builds/cygwin/configure.in, builds/cygwin/configure: Setting + `version_info' to 6:1:0 for the 2.0.1 release. + + * CHANGES: Added a summary of changes between 2.0.1 and 2.0. + + * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes + to allow compilation under Unix with the Unix-specific config + files. + +2000-12-01 Werner Lemberg + + * INSTALL: Revised. + * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk, + builds/compiler/bcc.mk, builds/win32/w32-bcc.mk, + builds/win32/w32-bccd.mk: Revised. + * include/freetype/config/ftbuild.h, + include/freetype/internal/internal.h: Revised. + * include/freetype/ftimage.h: Updated to new header inclusion scheme. + +2000-11-30 Werner Lemberg + + * builds/toplevel.mk (.PHONY): Adding `distclean'. + * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc', + `setup'. + +2000-11-30 David Turner + + * INSTALL: Slightly updated the quick starter documentation to + include IDE compilation, prevent against BSD Make, and specify `make + setup' instead of a single `make' for build configuration. + + * include/config/ftbuild.h, include/internal/internal.h: Added new + configuration files used to determine the location of all public, + configuration, and internal header files for FreeType 2. Modified + all headers under `include/freetype' to reflect this change. Note + that we still need to change the library source files themselves + though. + + * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk, + builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk, + builds/win32/detect.mk: Added new files to support compilation with + the free Borland C++ command-line compiler. Modified the detection + rules to recognize the new `bcc32' target in `make setup bcc32'. + + * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c, + src/truetype/ttobjs.c, src/truetype/ttgload.c, + src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++ + didn't really like. Basically, this compiler complains when FT_UInt + is compared to FT_UShort (apparently, it promotes `UShort' to `Int' + in these cases). + +2000-11-30 Tom Kacvinsky + + * t2objs.c (T2_Init_Face): Added calculation of `face->height' for + pure CFF fonts. + + * t1objs.c (T1_Init_Face): Fixed computation of `face->height'. + +2000-11-29 David Turner + + * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid + bug in the formula used to compute the conic Bézier extrema + of non-monotonous arcs. + +2000-11-29 Werner Lemberg + + * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c + (FT_Set_Renderer): Use FT_EXPORT_DEF. + * src/cache/ftcimage.c (FTC_Image_Cache_Lookup), + src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset, + FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size, + FTC_Manager_Register_Cache), src/cache/ftcsbits.c + (FTC_SBit_Cache_Lookup): Ditto. + + * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init), + src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT. + +2000-11-29 Werner Lemberg + + * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only + conditionally. + + * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set + `size->strike_index' only conditionally. + + * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only + conditionally. + + * src/winfonts/winfnt.h: Move all type definitions to... + * src/include/freetype/internal/fnttypes.h: New file. + * src/winfonts/winfnt.c: Use it. + +2000-11-29 ??? ??? + + * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT + with a direct solution (which also satisfies picky compilers). + +2000-11-28 YAMANO-UCHI Hidetoshi + + * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with + disabled interpreter also. + + * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect + parentheses. + +2000-11-26 Tom Kacvinsky + + * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph + width setting code to take into account even/odd argument counts + and glyph width operand before endchar/hmoveto/vmoveto. + +2000-11-26 Werner Lemberg + + * builds/ansi/ansi.mk: Fix inclusion order of files. + +2000-11-26 Keith Packard + + * src/type1/t1objs.c (T1_Init_Face): Compute style flags. + +2000-11-26 Werner Lemberg + + * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and + conditional. + +2000-11-23 Werner Lemberg + + * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt + function from PSAux module. + + * src/type1/t1parse.c (T1_Done_Parse): Renamed to... + (T1_Finalize_Parser): New function (to avoid name clash with a + function in the PSAux module). + (T1_Decrypt): Removed since it is duplicated in the PSAux module. + (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt + function from PSAux module. + + * src/type1/t1parse.h: Adapted. + +2000-11-22 Tom Kacvinsky + + * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set + `root->num_faces' to `cff->num_faces' and set `units_per_EM' + to 1000. + + * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing + loop. + + * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a + sid that was off by one. + +2000-11-16 David Turner + + * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control + auto-hinting of synthetic Type 1 fonts. + + * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph): + Added auto-hinting support of synthetic Type 1 fonts. + +2000-11-12 Tom Kacvinsky + + * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change + tracing output. + + * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable + `has-outline' to true only if the font has a `glyf' or `CFF ' table. + +2000-11-11 Werner Lemberg + + * builds/win32/visualc/freetype.dsp: Fix raster1->raster and + type1z->type1. + +2000-11-11 Tom Kacvinsky + + * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in: + Added a --libtool option. When freetype-config --libtool is + invoked, the absolute path to the libtool convenience library + is returned. + +2000-11-11 Werner Lemberg + + * builds/cygwin/cygwin-def.in: Same fix as previous. + +2000-11-10 Tom Kacvinsky + + * builds/unix/unix-def.in: Add + + INSTALL_PROGRAM := @INSTALL_PROGRAM@ + INSTALL_SCRIPT := @INSTALL_SCRIPT@ + + so that installation of freetype-config does not fail. + +2000-11-10 Werner Lemberg + + * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in: + Move test down for empty --exec-prefix. + Fix --version. + + * builds/cygwin/install.mk, builds/unix/install.mk: Use + $(INSTALL_SCRIPT) for installation of freetype-config. + + * builds/cygwin/install.mk: Fix clean target names. + +2000-11-09 David Turner + + + * Version 2.0 released. + ======================= + +---------------------------------------------------------------------------- + +Copyright (C) 2000-2019 by +David Turner, Robert Wilhelm, and Werner Lemberg. + +This file is part of the FreeType project, and may only be used, modified, +and distributed under the terms of the FreeType project license, +LICENSE.TXT. By continuing to use, modify, or distribute this file you +indicate that you have read the license and understand and accept it +fully. + + +Local Variables: +version-control: never +coding: utf-8 +End: diff --git a/ThirdParty/freetype/ChangeLog.21 b/ThirdParty/freetype/ChangeLog.21 new file mode 100644 index 0000000..ea889ee --- /dev/null +++ b/ThirdParty/freetype/ChangeLog.21 @@ -0,0 +1,9438 @@ +2005-06-08 Werner Lemberg + + + * Version 2.1.10 released. + ========================== + + + * src/pcf/readme: Renamed to... + * src/pcf/README: This. + +2005-06-07 Detlef Würkner + + * builds/amiga/*: Added copyright notes, reworked some comments. + +2005-06-05 Werner Lemberg + + * Add copyright notices to all files which don't have one. + + * docs/license.txt: Renamed to... + * docs/LICENSE.TXT: This. + * docs/FTL.txt: Renamed to... + * docs/FTL.TXT: This. + * docs/GPL.txt: Renamed to... + * docs/GPL.TXT: This. + + * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler + . + +2005-06-04 Werner Lemberg + + * include/freetype/ftimage.h (FT_Outline_MoveToFunc, + FT_Outline_LineToFunc, FT_Outline_ConicToFunc, + FT_Outline_CubicToFunc, FT_Raster_RenderFunc), + include/freetype/ftrender.h (FT_Glyph_TransformFunc, + FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use + `const' to stay compatible with FreeType 2.1.9. + +2005-06-01 Adam D. Moss + + * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from + 2004-07-11; this gives much better results under normal + circumstances. + +2005-05-30 Chia I Wu + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor + documentation improvements. + + * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos. + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap + of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4. + If xstr is larger than 8 and bitmap is of pixel_mode + FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error. + +2005-05-29 Chia I Wu + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap + of mode FT_PIXEL_MODE_GRAY. Also add support for mode + FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V. + (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V + should have ppb (pixel per byte) 1. + Zero the padding when there's no need to allocate memory. + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance + too. + More suited emboldening strength. + +2005-05-28 Chia I Wu + + * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch. + Handle FT_PIXEL_MODE_GRAY with num_gray != 256. + Improve speed for FT_PIXEL_MODE_GRAY. + (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and + FT_PIXEL_MODE_LCD_V. + +2005-05-27 Chia I Wu + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'. + + * src/base/ftobjs.c (ft_cmap_done_internal): New function. + (FT_CMap_Done): Remove cmap from cmap list. + (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but + ft_cmap_done_internal. + +2005-05-26 Werner Lemberg + + * docs/GPL.txt: Update postal address of FSF. + +2005-05-26 Chia I Wu + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve + documentation. + + * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed. + (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner. + Always modify the metrics. + +2005-05-24 Werner Lemberg + + * docs/CHANGES: Updated. + +2005-05-24 Chia I Wu + + * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration. + + * include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration. + + * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary + function. + (FT_Bitmap_Embolden): New function. + + * src/base/ftoutln.c (FT_Outline_Embolden): New function. + + * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and + FT_TRIGONOMETRY_H but FT_BITMAP_H. + (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or + FT_Bitmap_Embolden. + +2005-05-24 Werner Lemberg + + * configure: Always remove config.mk, builds/unix/unix-def.mk, and + builds/unix/unix-cc.mk. This fixes repeated calls of the script. + Reported by Nelson Beebe and Behdad Esfahbod. + + * README.CVS: Mention file permissions. + +2005-05-23 Werner Lemberg + + * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk + (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove + -fno-strict-aliasing. + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c -- + it is currently loaded from ttsbit.c. + +2005-05-23 Behdad Esfahbod + + Say you have `(Foo*)x' and want to assign, pass, or return it as + `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler + would warn you that type casting incompatible pointer types breaks + strict-aliasing. The solution is to cast to `(void*)' instead which + is the generic pointer type, so the compiler knows that it should + make no strict-aliasing assumption on `x'. But the problem with + `(void*)x' is that seems like in C++, unlike C, `void*' is not a + generic pointer type and assigning `void*' to `Bar*' without a cast + causes an error. The solution is to cast to `Bar*' too, with + `(Bar*)(void*)x' as the result -- this is what the patch does. + + * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), + include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove + cast on lvalue, use a temporary pointer instead. + Cast temporarily to (void*) to not break strict aliasing. + + * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC, + FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE), + src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*) + to not break strict aliasing. + + * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information. + + * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing. + +2005-05-23 David Turner + + Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system + in low-memory conditions). + + * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP, + FTC_CACHE_TRYLOOP_END): New macros. + + * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c + (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACHE_TRYLOOP_END. + +2005-05-23 Werner Lemberg + + * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but... + (BASE_EXT_SRC): Here. + +2005-05-22 Werner Lemberg + + * src/base/ftrfork.c (raccess_guess_apple_generic): Mark + `version_number' and `entry_length' as unused. + (raccess_guess_linux_double_from_file_name): Remove `memory'. + (raccess_make_file_name): Mark `error' as unused. + + * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'. + + * src/cid/cidobjs.c (cid_face_init): Remove `psnames'. + + * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'. + + * src/truetype/ttgxvar.c (ft_var_readpackedpoints, + ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused. + + * src/base/rules.mk (BASE_SRC): Add ftsynth.c. + +2005-05-21 David Turner + + * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that + produced unpleasant artefacts when trying to embolden very sharp + corners. + +2005-05-20 Werner Lemberg + + * docs/CHANGES: Updated. + +2005-05-20 Chia I Wu + + * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H + but FT_BITMAP_H. + (FT_Bitmap_Copy): New function (from ftglyph.c). + + * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public + definition. + + * src/base/ftglyph.c: Include FT_BITMAP_H. + (ft_bitmap_copy): Move to ftbitmap.c. + (ft_bitmap_glyph_init): Remove `memory' variable. + Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set. + (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy. + (ft_bitmap_glyph_done): Use FT_Bitmap_Done. + (ft_outline_glyph_init): Use FT_Outline_Copy. + + * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target. + (FT_Outline_Done_Internal): Check for valid `memory' pointer. + (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render, + FT_Outline_Transform): Check for valid `outline' pointer. + + * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to + face->glyph, otherwise a new second glyph slot cannot be created. + (FT_Done_GlyphSlot): Fix memory leak. + (FT_Open_Face): Updated -- face->glyph is already managed by + FT_New_GlyphSlot. + + * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated. + +2005-05-20 Kirill Smelkov + + * include/freetype/ftimage.h (FT_Raster_Params), + include/freetype/ftoutln.h (FT_Outline_Translate, + FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate, + FT_Outline_Transform): Decorate parameters with `const' where + appropriate. + Update all callers. + + * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c + (gray_raster_reset): Remove `const' from `pool_base' argument. + +2005-05-18 Kirill Smelkov + + * src/raster/ftmisc.h: New file. Only needed if ftraster.c is + compiled as stand-alone. + + * src/raster/ftraster.c: Add comment how to compile as stand-alone. + s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/. + s/TT_STATIC_RASTER/FT_STATIC_RASTER/. + [_STANDALONE_]: Include ftimage.h and ftmisc.h. + (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define + conditionally. + (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or + Raster_Err_Unsupported). + (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'. + (ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render): + Use `ras', not `raster'. + (ft_black_done): Use FT_UNUSED_RASTER. + (Horizontal_Sweep_Init, Horizontal_Sweep_Step, + Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER. + +2005-05-18 Werner Lemberg + + * docs/announce: Start updating. + + * docs/CHANGES: Updated. + +2005-05-16 Vitaliy Pasternak + + * builds/win32/visualc/freetype.vcproj: Updated. + Exclude debug info for `Release' versions to reduce library size. + +2005-05-16 Werner Lemberg + + * src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this + is, ignore `aface' completely if face_index < 0. Reported by David + Osborn . + +2005-05-16 Kirill Smelkov + + * include/freetype/ftimage.h (FT_Outline_MoveToFunc, + FT_Outline_LineTo_Func, FT_Outline_ConicToFunc, + FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic, + gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to, + gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters + with `const' where appropriate. + +2005-05-11 Kirill Smelkov + + * include/freetype/ftimage.h (FT_Raster_RenderFunc), + include/freetype/ftrender.h (FT_Glyph_TransformFunc, + FT_Renderer_Render_Func, FT_Renderer_TransformFunc), + src/base/ftglyph.c (ft_outline_glyph_transform), + src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render), + src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render), + src/smooth/ftsmooth.c (ft_smooth_transform, + ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd, + ft_smooth_render_lcd_v): Decorate parameters with `const' where + appropriate. + + * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed. Obsolete. + (ft_black_render): Decorate parameters with `const' where + appropriate. + +2005-05-11 Werner Lemberg + + * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT -> + FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez + . + +2005-05-08 Werner Lemberg + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE) + [__cplusplus]: Fix typo. + +2005-05-07 Werner Lemberg + + Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck + Blaskey ). + + * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'. + * src/sfnt/ttcmap.c: Use SFNT_Err_Ok where appropriate. + + (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate, + tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use + `FT_Error' as return type. + (tt_cmap4_validate): Use `FT_Error' as return type. + Return error code for unsorted cmap. + (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted + cmaps. + (tt_face_build_cmaps): Set `unsorted' variable in cmap. + +2005-05-07 Werner Lemberg + + * src/truetype/ttpload.c (tt_face_get_location): Fix typo. + +2005-05-06 Werner Lemberg + + * src/cff/cffobjs.c (cff_face_init): Set ppem value in top + dictionary for SFNT-based CFF. + +2005-05-05 Werner Lemberg + + Handle malformed `loca' table entries. + + * docs/TODO: Add some bugs which should be fixed. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len' + element. + + * src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf' + table. + (tt_face_get_location): Fix computation of `asize' for malformed + `loca' entries. + +2005-05-01 David Turner + + * Jamfile: Remove `otvalid' from the list of compiled modules. + + * include/freetype/internal/ftserv.h: Add compiler pragmas to get + rid of annoying warnings with Visual C++ compiler in maximum warning + mode. + + * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c, + src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c, + src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c, + src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c, + src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings. + +2005-04-28 Werner Lemberg + + * docs/TODO: Updated. + +2005-04-24 Werner Lemberg + + * src/otvalid/otvcommn.c + (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0. + +2005-04-16 Werner Lemberg + + * src/cff/cffobjs.c (cff_face_init): Set default upem value in top + font dict also. + Handle font matrix settings in subfonts. + + * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix + for CID-keyed fonts with subfonts. + + * docs/formats.txt: Updated. + +2005-04-14 Kirill Smelkov + + * include/freetype/freetype.h (FT_Vector_Transform), + include/freetype/ftimage.h (FT_Raster_Params), + include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox, + FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform, + FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render), + src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with + `const' where appropriate. + +2005-04-14 Werner Lemberg + + * src/type1/t1load.c (parse_charstrings): Catch this non-standard + beginning of the /CharStrings dictionary: + + /CharStrings 118 dict def + Private begin + CharStrings begin + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments + to call of tt_sbit_decoder_load_bitmap. + +2005-04-13 Werner Lemberg + + * docs/TODO: Updated. + + * autogen.sh: Use `--force' for all commands. + +2005-04-09 Werner Lemberg + + * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values + only if `fitted' is not zero. + +2005-04-06 Werner Lemberg + + * src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]: + Fix typo which sometimes causes wrong metrics for the last glyph. + +2005-04-04 David Turner + + * devel/ftoption.h, include/freetype/config/ftoption.h + (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10 + release. + (*_CHESTER_*): Removed. No longer used. + + * src/autofit/afhints.c (af_axis_hints_new_segment, + af_axis_hints_new_edge): Small tweak to use less heap memory. + +2005-04-03 Werner Lemberg + + * src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid + first line in the font. + +2005-04-03 Werner Lemberg + + * docs/CHANGES, include/freetype/freetype.h: Improve documentation + of FT_Set_Pixel_Sizes and FT_Set_Char_Size. + +2005-03-26 Detlef Würkner + + * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer + offsets after a large read. + +2005-03-26 Werner Lemberg + + * src/autofit/afglobal.c (af_face_globals_get_metrics): + s/index/gidx/. + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler + warnings. + + * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. + + * src/sfnt/ttsbit0.h: Dummy file for build with `make'. + +2005-03-26 Detlef Würkner + + Update of the Amiga port. + + * builds/amiga/makefile, builds/amiga/makefile.os4, + builds/amiga/smakefile: Included the base extension files + (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c). + +2005-03-25 Detlef Würkner + + Update of the Amiga port. + + * builds/amiga/makefile, builds/amiga/smakefile: Handle new modules. + + * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK. + + * builds/amiga/README: Updated. + + * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for + AmigaOS4. + + * builds/amiga/include/freetype/config/ftmodule.h: Handle new + modules. + + * builds/amiga/src/base/ftdebug.c: Updated to current version of + default ftdebug.c. + Add various include files and macros to have proper support for + both AmigaOS4 and older AmigaOS versions. + Don't declare KVPrintF explicitly. + Replace getenv with GetVar. + Actually enable debugging code. + + * builds/amiga/src/base/ftsystem.c: Major rewrite. + +2005-03-23 Werner Lemberg + + * tests/*: Removed. + +2005-03-23 Werner Lemberg + + * docs/CHANGES, docs/INSTALL.ANY: Updated. + + * include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'. + Add `OTvalid'. + + * src/autofit/aferrors.h: New file. + + * src/autofit/afglobal.c, src/autofit/afhints.c, + src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/. + Include aferrors.h. + + * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h. + + * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/. + +2005-03-22 David Turner + + * src/autohint/*: Removed. + * Jamfile: Updated. + +2005-03-15 David Turner + + * src/bdf/bdflib.c: Remove compiler warnings. + (hash_rehash, hash_init): Don't call FT_MEM_ZERO. + (_bdf_list_t): Add `memory' field. + (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions. + (_bdf_shift, _bdf_join): Rename to... + (_bdf_list_shift, _bdf_list_join): This. + (_bdf_split): Renamed to... + (_bdf_list_split): This. Use new functions. + (bdf_internal_readstream): Removed. + (NO_SKIP): New macro. + (_bdf_readstream): Rewritten. + (bdf_create_property, _bdf_add_comment): Improve allocation. + (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve + allocation. + (_bdf_parse_properties, _bdf_parse_start): Updated. + (bdf_load_font): Updated to use new functions. + + * src/type1/t1parse.c (check_type1_format): New function. + (T1_New_Parser): Use it to check font header before allocating + anything on the heap. + + * src/type42/t42parse.c (t42_parser_init): Modify functions to check + the font header before allocating anything on the heap. + + * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX, + FT_ARRAY_CHECK): New macros. + + * src/base/ftstream.c (FT_Stream_TryRead): New function. + * include/freetype/internal/ftstream.h: Updated. + + * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c + (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and + simplifications. Try to protect the PCF driver from doing stupid + things with broken fonts. + + * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before + doing anything else. This avoids unnecessary heap allocations + (400KByte of heap memory for the LZW decoder). + + * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Ditto for the gzip + decoder, although the code savings are smaller. + + * docs/CHANGES: Updated. + +2005-03-10 David Turner + + * src/tools/glnames.py: Add comment to explain the compression + being used for the Adobe Glyph List. + +2005-03-10 Werner Lemberg + + * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm): + Fix serious typo which prevented correct TT rendering. + + * include/freetype/internal/ftmemory.h: Undo change from 2005-03-03. + To suppress warnings it is sufficient to use `-fno-strict-aliasing'. + +2005-03-10 Werner Lemberg + + * src/tools/glnames.py: Formatted. + Format output to be in sync with other FreeType code. + Import `re' and `os.path'. + (StringTable) <__init__>: Add parameter to initialize master table + name. + (StringTable) : Don't pass master table name. + (StringTable) : Emit explanatory comment. + Simplify and make output more human readable. + (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused. + (main): Use `basename' for file name in header. + + * src/psnames/pstables.h: Regenerated. + +2005-03-09 David Turner + + * src/tools/glnames.py: Rewrite the generator for the `pstables.h' + header file which contains various constant tables related to glyph + names. It now uses a different, more compact storage scheme that + saves about 20KB. This also closes Savannah bug #12262. + + * src/psnames/pstables.h: Regenerated. + + * src/psnames/psmodule.c (ps_unicode_value): Use + `ft_get_adobe_glyph_index', a new function defined in `pstables.h'. + (ps_get_macintosh_name, ps_get_standard_strings): Updated. + + * src/base/ftobjs.c (FT_Set_Char_Size): Handle fractional sizes + more carefully. This fixes Savannah bug #12263. + +2005-03-06 David Turner + + * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables + constant. + + * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug + #12212 (auto-hinter refuses to work if no Unicode charmap in font). + +2005-03-05 Werner Lemberg + + * autogen.sh: New script for bootstrapping. + + * README.CVS: New file which documents bootstrapping. + + * builds/unix/aclocal.m4, builds/unix/config.guess, + builds/unix/config.sub, builds/unix/configure, + builds/unix/ltmain.sh: Removed. + +2005-03-04 Werner Lemberg + + * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H. + +2005-03-03 Werner Lemberg + + Various fixes for C and C++ compiling. + + * src/autofit/*: Add copyright messages. + + * src/autofit/afhints.c (af_glyph_hints_done): Don't use + `AF_Dimension' but `int' for loop counter. + + * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use + `AF_Dimension' but `int' for loop counter. + Use proper enumeration value for `render_mode'. + (af_latin_metrics_scale_dim): Don't shadow variables. + (af_latin_hints_compute_segments): Use proper cast for `major_dir' + and `segment_dir'. + (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to + `af_latin_compute_stem_width'. + (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop + counter. + + * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use + proper cast for memory allocation. + + * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for + initialization of `sfnt'. + + * src/sfnt/sfdriver.c: Include `ttkern.h'. + + * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables. + + * src/truetype/ttgload.c: Include `ttpload.h'. + +2005-03-03 David Turner + + * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC, + FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which + avoid compiler warnings. + (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY, + FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated. + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, + FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]: + Provide macro versions which avoid compiler warnings. + + * src/base/ftutil.c (ft_highpow2): New utility function. + + * include/freetype/internal/ftobjs.h: Updated. + + * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs, + pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set. + (pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY + is set. + (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if + FT_OPTIMIZE_MEMORY is set. + + * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which + doesn't work with broken fonts. + (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement. + + * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types. + (PFR_NEXT_KPAIR): New macro. + (PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is + set. + + * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce + temporary variable to avoid gcc warning. + (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED. + + * src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: + Remove redundant variable. + + * include/freetype/config/ftmodule.h: Moving the order of drivers to + speed up font loading. The PCF and BDF loaders are still slow and + consume far too much memory. + +2005-03-03 Werner Lemberg + + * devel/ftoption.h: Updated to recent changes. + +2005-03-02 Werner Lemberg + + * src/autofit/afdummy.c, src/autofit/afdummy.h + (af_dummy_script_class): Fix type. + + * src/autofit/aflatin.c, src/autofit/aflatin.h + (af_latin_script_class): Fix type. + + * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo. + +2005-03-01 David Turner + + * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning), + src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes, + tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound, + tt_sbit_decoder_load_image), src/sfnt/ttload.c + (tt_face_load_metrics): Remove compiler warnings + -- redundant variables, missing initializations, etc. + + * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY. + + * src/autofit/rules.mk, src/autofit/module.mk, + src/autofit/afangles.h: New files. + + * src/autofit/afhints.c (af_axis_hints_new_segment, + af_axis_hints_new_edge): New functions. + (af_glyph_hints_done): Do proper deallocation. + (af_glyph_hints_reload): Only reallocate points array. This + drastically reduces heap usage. + + * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize + member types and positions. + (AF_AxisHintsRec): Add `max_segments' and `max_edges'. + (af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes. + + * src/autofit/aflatin.c (af_latin_metrics_scale): Don't call + AF_SCALER_EQUAL_SCALES. + (af_latin_hints_compute_segments): Change return type to FT_Error. + Update all callers. + Improve segment allocation. + (af_latin_hints_compute_edges): Change return type to FT_Error. + Update all callers. + Improve edge allocation and link handling. + (af_latin_hints_detect_features): Change return type to FT_Error. + Update all callers. + + * src/autofit/aflatin.h: Updated. + + * src/autofit/afloader.c (af_loader_load_g) + : Assure axis->num_edges > 1. This fixes + a bug with certain fonts. + + * include/freetype/config/ftmodule.h: The auto-fitter is now the + only supported auto-hinting module. + + * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro. + +2005-02-28 Werner Lemberg + + * src/truetype/ttpload.c (tt_face_load_loca): Fix typo. + + * src/sfnt/ttkern.c: Include `ttkern.h'. + (FT_COMPONENT): Updated. + + * include/freetype/internal/fttrace.h: Add entry for `ttkern'. + + * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/. + Decorate constants with `U' and `L' where necessary. + + * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable. + +2005-02-28 David Turner + + * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory + sources according to decreasing maximum cumulative allocations. + (ft_mem_source_compare): New auxiliary function. + + * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized + embedded bitmap loader. + + * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H, + FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H. + Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use + file contents. + (tt_face_load_sbit_strikes): Set up root fields to indicate the + strikes. This fixes Savannah bug #12107. + Use `static' keyword for `sbit_line_metrics_field', + `strike_start_fields', `strike_end_fields'. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Define + `sbit_table', `sbit_table_size', `sbit_num_strikes' if + FT_OPTIMIZE_MEMORY is set. + Don't define `num_sbit_strikes' and `sbit_strikes' if + FT_OPTIMIZE_MEMORY is set. + + * src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY. + + * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented + loading SFNT fonts without a `kern' table. + Properly pass root->face_flags. + Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS. + + * src/sfnt/sfdriver.c (sfnt_interface) + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image' + and `tt_load_sbit_metrics'. + + * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4. + (OPT_CMAP4): New macro. + (TT_CMap4Rec) [OPT_CMAP4]: New structure. + (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset) + [OPT_CMAP4]: New functions. + (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and + `tt_cmap4_reset'. + (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and + `tt_cmap4_init'. + + * src/truetype/ttobjs.c (Reset_SBit_Size): Handle + FT_OPTIMIZE_MEMORY. + + * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec): + Optimize member types. + + * src/autofit/afloader.c (af_loader_done): Call + `af_glyph_hints_done'. + +2005-02-27 David Turner + + * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which + caused invalid (random) return values for the horizontal kerning. + +2005-02-25 David Turner + + Implement several memory optimizations to drastically reduce the + heap usage of FreeType, especially in the case of memory-mapped + files. The idea is to avoid loading and decoding tables in the + heap, and instead access the raw data whenever possible (i.e., when + it doesn't compromise performance). + + This has several benefits: For example, opening vera.ttf now uses + just a small amount of memory (even when the FT_Library footprint is + accounted for), until you start loading glyphs. Even then, you save + at least 20KB compared to the non-optimized case. Performance of + various operations, including open and close, has also been + dramatically improved. + + More optimizations to come, especially for the auto-hinter. + + * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New + function type. + (SFNT_Interface): Add it. + + * include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec, + TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set. + (TT_FaceRec): Define `horz_metrics', `horz_metrics_size', + `vert_metrics', `vert_metrics_size', `hdmx_table', + `hdmx_table_size', `hdmx_record_count', `hdmx_record_size', + `hdmx_record_sizes', `kern_table', `kern_table_size, + `num_kern_tables', `kern_avail_bits', `kern_order_bits' if + FT_OPTIMIZE_MEMORY is set. + Don't define `hdmx', `num_kern_pairs', `kern_table_index', + `kern_pairs' if FT_OPTIMIZE_MEMORY is set. + + * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable. + Fix compiler warning. + + * src/cff/cffdrivr.c (Get_Kerning): Renamed to... + (cff_get_kerning): This. Simplify. + (cff_driver_class): Updated. + + * src/sfnt/Jamfile (_sources): Add `ttkern'. + * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'. + + * src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'. + + * src/sfnt/sfnt.c: Include `ttkern.c'. + + * src/sfnt/sfobjs.c: Include `ttkern.h'. + (sfnt_load_face): Consider the `kern' and `gasp' table as optional. + (sfnt_done_face): Call `tt_face_done_kern'. + Handle horizontal metrics for FT_OPTIMIZE_MEMORY. + + * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has been + taken from `ttload.c' and `ttload.h'. + Provide special versions of `tt_face_load_kern', + `tt_face_get_kerning', and `tt_face_done_kern' for + FT_OPTIMIZE_MEMORY. + + * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx, + tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY. + (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to + `ttkern.c'. + + * src/sfnt/ttload.h: Updated. + + * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword. + + * src/truetype/ttdriver.c (Get_Kerning): Renamed to... + (tt_get_kerning): This. Simplify. + (tt_driver_class): Updated. + + * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to... + (tt_face_get_metrics): This. Provide version for FT_OPTIMIZE_MEMORY. + Update all callers. + (Get_Advance_Widths): Replaced with... + (Get_Advance_WidthPtr): This. Provide version for + FT_OPTIMIZE_MEMORY. + Update all callers. + + * src/truetype/ttgload.h: Updated. + +2005-02-22 David Turner + + * src/base/ftdbgmem.c: Partly rewritten. Added the ability to list + all allocation sites in the memory debugger. Also a new function + FT_DumpMemory() was added. It is only available in builds with + FT_DEBUG_MEMORY defined, and you must declare it in your own code to + use it, i.e., with something like: + + extern void FT_DumpMemory( FT_Memory ); + + ... + + FT_DumpMemory( memory ); + + * include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition -- + again. + (FT_OPTIMIZE_MEMORY): New configuration macro to control various + optimizations for reducing the heap footprint of memory-mapped + TrueType files. + + * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New + convenience macro. + + * include/freetype/internal/tttypes.h (TT_FaceRec) + [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and + `glyph_locations'. + + * src/truetype/ttgload.c (load_truetype_glyph): Call + `tt_face_get_location'. + + * src/truetype/ttobjs.c (tt_face_init) + [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling. + (tt_face_done): Call `tt_face_done_loca'. + + * src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca): + New functions. If FT_OPTIMIZE_MEMORY is set, the locations table is + read directly from memory-mapped streams, instead of being decoded + into the heap. + (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation. + (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the + bytecode interpreter is compiled in. + + * src/truetype/ttpload.h: Updated. + + * src/autohint/ahglyph.c (ah_outline_load): Improve allocation + logic. + +2005-02-20 Werner Lemberg + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.14. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.9.4. + + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at subversions.gnu.org. + +2005-02-14 Werner Lemberg + + * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build + a cmap for a CID-keyed font which doesn't have SIDs. + +2005-02-13 Werner Lemberg + + * src/type1/t1load.c (read_binary_data): Return more meaningful + value. + (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check + parser error value after call to T1_Skip_PS_Token (where necessary). + + * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error + value after call to T1_Skip_PS_Token. + + * src/cid/cidparse.c (cid_parser_new): Check parser error value + after call to cid_parser_skip_PS_token. + + * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts, + t42_parse_charstrings, t42_parse_dict): Check parser error value + after call to T1_Skip_PS_Token (where necessary). + + * src/psaux/psobjs.c (skip_string, ps_parser_skip_PS_token, + ps_tobytes): Add error messages. + +2005-02-12 Werner Lemberg + + * configure: Output more variables to the created Makefile so that + it can be used for ft2demos also (if the FT2DEMOS variable is + defined). + +2005-02-10 David Turner + + * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing + dynamic array when loading a glyph from a PFR font (Savannah bug + #11921). + + * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the + conversion function (mainly stupid optimization). + + * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files. + +2005-02-10 Werner Lemberg + + * builds/unix/freetype-config.in: Add new flag `--ftversion' to + return the FreeType version. Suggested by George Williams + . + + * docs/CHANGES: Updated. + +2005-02-09 Werner Lemberg + + * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case + of error. Reported by YAMANO-UCHI Hidetoshi . + +2005-02-08 Werner Lemberg + + * src/psaux/t1decode.c (t1_decoder_parse_charstrings) + : Accept `T1_Parse_Have_Moveto' state also which can + happen in empty glyphs. Reported by Ian Brown + (Savannah bug #11856). + +2005-02-04 Werner Lemberg + + * src/otlayout/*: Removed. Obsolete. + +2004-12-28 Werner Lemberg + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.10. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.9.4. + * builds/unix/configure: Regenerated with autoconf 2.59b. + + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + + * builds/unix/install-sh: Updated from + `texinfo' CVS module at subversions.gnu.org. + + * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for + ft_alloc. + Fix compiler warning. + +2004-12-27 Dirck Blaskey + + * src/cff/cffobjs.c (cff_face_init): Improve computation of + FT_STYLE_BOLD_FLAG. + +2004-12-27 Werner Lemberg + + * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have + only a single font. This is undocumented but has been verified on + the opentype list. + +2004-12-26 Werner Lemberg + + * Jamfile (FT2_COMPONENTS): Add `otvalid'. + +2004-12-25 Werner Lemberg + + * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning. + +2004-12-15 Werner Lemberg + + * vms_make.com: Add ftbitmap.obj. + +2004-12-14 Werner Lemberg + + * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for + handling various bitmap formats. + + * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro. + + * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c. + + * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp + but return them as-is. + + * docs/CHANGES: Mention new bitmap API. + * include/freetype/ftchapters.h: Updated. + +2004-12-11 Robert Clark + + * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount + dependent on ppem by scaling down for ppem < 25, then do normal + rounding. This gives slightly better results than rounding towards + zero. + +2004-12-09 Werner Lemberg + + * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero + for FT_KERNING_DEFAULT. This greatly enhances the kerning for + small ppem values. + +2004-12-08 Werner Lemberg + + * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and + `rsb_delta'. + +2004-12-05 Werner Lemberg + + * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h. + +2004-12-03 Antoine Leca + + * include/freetype/ttnameid.h: Updated to latest + specifications from Microsoft. + +2004-11-26 Jouk Jansen + + * vms_make.com: Include ftbbox.c. + Fix `ccopt'. + Handle `otvalid' module. + Update `vmslib.dat' default values. + Fixes to `libs.opt'. + +2004-11-23 Anders Kaseorg + + * src/base/ftoutln.c (FT_OrientationExtremumRec, + ft_orientation_extremum_compute): Removed. + (FT_Outline_Get_Orientation): Rewritten, simplified. + + * src/autohint/ahglyph.c: Include FT_OUTLINE_H. + (ah_test_extremum, ah_get_orientation): Removed. + (ah_outline_load): Use FT_Outline_Get_Orientation. + + * src/base/ftsynth.c (ft_test_extrema, ft_get_orientation): Removed. + (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation. + +2004-11-23 Fernando Papa + + * src/truetype/ttinterp.h: Fix typo. + +2004-11-22 Antoine Leca + + * builds/win32/detect.mk: Corrected logic that detects Windows NT to + use the previous change even if win32 is forced. Corrected + detection of win32 on Win9X. + + * builds/dos/detect.mk: Added same correction as for win32 about + COPY on Windows NT. Detection of plain DOS 7.x. + +2004-11-22 Werner Lemberg + + * builds/detect.mk: Undo change from 2004-11-20. + * builds/win32/detect.mk: If the `OS' environment variable contains + `Windows_NT', use `cmd.exe /c copy' for copying files. + +2004-11-20 Werner Lemberg + + * builds/detect.mk (dos_setup): Use `cmd.exe' for copying + $(CONFIG_MK) to force lowercase file name under Windows. + +2004-11-19 Werner Lemberg + + Fix a serious bug in the TT hinter. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift + points vertically before hinting. + + * docs/CHANGES: Updated. + + * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, + FTC_GCache_Lookup): A new try to fix comparison with zero. + +2004-11-16 Werner Lemberg + + * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is + used. + * builds/unix/configure: Regenerated. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + +2004-11-16 Dr. Martin P.J. Zinser + + * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, + FTC_GCache_Lookup): Fix comparison with zero. + + * docs/INSTALL.VMS: Updated. + + * vms_make.com: Updated. All `descrip.mms' files are now created + automatically. + + * src/*/descrip.mms: Removed. + +2004-11-16 Owen Taylor + + * builds/unix/freetype-config.in: Suppress -L$libdir for + /usr/lib64 as well as /usr/lib. (Reported by Dan Winship - + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199) + +2004-11-11 Werner Lemberg + + * src/cff/cffdrivr.c (cff_service_ps_info): Updated. + * src/cid/cidriver.c (cid_service_ps_info): Updated. + * src/type42/t42drivr.c (t42_ps_get_font_private): New function. + (t42_service_ps_info): Updated. + + * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning. + +2004-11-11 David Bevan + + Add new function FT_Get_PS_Font_Private(). + + * include/freetype/internal/services/svpsinfo.h + (PS_GetFontPrivateFunc): New service function. + + * include/freetype/t1tables.h, src/base/fttype1.c + (FT_Get_PS_Font_Private): New function. + + * src/type1/t1driver.c (t1_ps_get_font_private): New function. + (t1_service_ps_info): Updated. + +2004-10-13 Werner Lemberg + + * include/freetype/config/ftstdlib.h: Include `stddef.h'. + (ft_ptrdiff_t): Define. + + * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'. + + * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c + (parse_dict): Fix compiler warning. + +2004-10-11 Joshua Neal + + * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer + overflow. + + * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input. + Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work + in case of failure. + + * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals. + (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after + frame test. + + * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for + `flag'. + +2004-10-09 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-10-09 Boris Letocha + + Fix handling of NPUSHW if skipped in data stream. + + * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW + to -2. + (SkipCode, TT_RunIns): Use opcode_length value for computation of + bytes to be skipped. + +2004-09-10 Jouk Jansen + + * vms_make.com: Updated. + +2004-09-09 Werner Lemberg + + Adding OpenType validation module. The code is based on the + (unfinished) `otlayout' module but has been heavily modified to make + it much more compact. + + * src/otvalid/*: New module. + + * include/freetype/ftotval.h, src/base/ftotval.c, + include/freetype/internal/services/svotval.h: New files. + + * include/freetype/config/ftmodule.h: Add otv_module_class. + * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New + macro. + * include/freetype/internal/ftserv.h + (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro. + * include/freetype/internal/fttrace.h (otvmodule, otvcommon, + otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components. + + * include/freetype/ftchapters.h: Updated. + + * src/base/Jamfile (Library), src/base/descrip.mms (OBJS), + src/base/rules.mk (BASE_EXT_SRC): Updated. + + * docs/CHANGES: Updated. + +2004-09-08 Werner Lemberg + + * src/tools/docmaker/sources.py (re_source_block_format2) : + Use lookahead assertion to not match `*/'. This removes spurious + insertions of `/' in the HTML output. + +2004-09-07 Werner Lemberg + + * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to + FT_NEW_ARRAY. + +2004-09-04 Werner Lemberg + + * include/freetype/internal/ftobjs.h: Don't include + FT_CONFIG_STANDARD_LIBRARY_H. + (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR, + ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID, + FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT, + FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to... + + * include/freetype/internal/ftvalid.h: New file. + Make FT_INVALID return module-specific error codes. + + * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New + macro. + + * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if + FT_KEEP_ERR_PREFIX isn't defined. + + * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H. + + * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but + FT_INTERNAL_VALIDATE_H. + + * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but + FT_INTERNAL_VALIDATE_H. + Include sferrors.h before FT_INTERNAL_VALIDATE_H. + s/FT_Err_Ok/SFNT_Err_Ok/. + + * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX. + + * src/type1/t1afm.c: Include t1errors.h. + +2004-09-03 Werner Lemberg + + * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7, + not 6. + * docs/DEBUG: Updated. + +2004-08-30 Werner Lemberg + + * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS, + TTAG_JSTF): New tags. + + * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs. + (FT_Int): Add `signed'. + +2004-08-29 Werner Lemberg + + * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument + to pass number of lookups. + Update all callers. + Don't call otl_lookup_list_validate but otl_lookup_validate. + (otl_gpos_validate): Call otl_lookup_list_validate instead of + otl_gpos_subtable_validate. + + * src/otlayout/otlgpos.h: Updated. + + * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to + pass number of lookups. + Update all callers. + + + * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid + compiler warning. + + + * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to... + * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This. + * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c, + src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated. + + + * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs' + if compiler is g++ (v3.3.3 emits a warning otherwise). + +2004-08-28 Werner Lemberg + + * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes, + not number of 16bit entities. + (otl_gpos_lookup2_validate): Check class definition tables for + format 2. + Fix loop for format 2. + (otl_liga_mark2_validate): Fix offset for otl_anchor_validate. + +2004-08-27 Werner Lemberg + + * src/base/ftmac.c: Don't include truetype/ttobjs.h. + Don't include type1/t1objs.h. + (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings. + +2004-08-27 Mathieu Malaterre + + * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also. + +2004-08-27 Werner Lemberg + + * src/otlayout/otlayout.h: Add copyright. + (OTL_INVALID_OFFSET): Removed. + + * src/otlayout/otlgdef.h: Include otlayout.h. + Comment out inclusion of otltable.h. + + * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call + to otl_base_array_validate. + (otl_liga_mark2_validate): Fix `for' loop. + + * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id', + not components array. + + * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count): + Comment out. + (otl_lookup_list_get_count, otl_feature_list_get_count): Activate. + (otl_feature_list_validate, otl_gsubgpos_get_lookup_count): + s/otl_lookup_get_count/otl_lookup_list_get_count/. + (otl_script_list_validate): + s/otl_feature_get_count/otl_feature_list_get_count/. + (otl_script_validate): Call otl_lang_validate for default language. + + * src/otlayout/otlcommn.h: Updated. + +2004-08-16 Werner Lemberg + + * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate, + otl_gpos_lookup2_validate, otl_gpos_lookup3_validate, + otl_gpos_lookup4_validate, otl_gpos_lookup5_validate, + otl_gpos_lookup6_validate, otl_gpos_lookup9_validate, + otl_gpos_validate): Update + function arguments. + (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update + function arguments. + Handle NULL offsets correctly. + Check sequence and lookup indices for format 3. + (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument + to pass lookup count. + Check sequence and glyph indices. + (otl_gpos_subtable_validate): Update function arguments. + Update callers. + + * src/otlayout/otlgpos.h: Updated. + + * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate, + otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update + function arguments. + Add glyph index checks. + (otl_sequence_validate, otl_alternate_set_validate, + otl_ligature_validate): Add argument to pass glyph count. + Update callers. + Add glyph index check. + (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update + function arguments. + (otl_ligature_set_validate): Add argument to pass glyph count. + Update caller. + (otl_sub_class_rule_validate, + otl_sub_class_rule_set_validate): Removed. + (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument + to pass lookup count. + Update callers. + Add lookup index check. + (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add + argument to pass lookup count. + Update callers. + (otl_gsub_lookup5_validate): Update function arguments. + Handle NULL offsets correctly. + Don't call otl_sub_class_rule_set_validate but + otl_sub_rule_set_validate. + Check sequence and lookup indices for format 3. + (otl_gsub_lookup6_validate): Update function arguments. + Handle NULL offsets correctly. + Check sequence and lookup indices for format 3. + (otl_gsub_lookup7_validate, otl_gsub_validate): Update function + arguments. + + * src/otlayout/otlgsub.h: Updated. + + * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets + correctly. + + * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix + compiler warning. + (otl_coverage_get_first, otl_coverage_get_last): New functions. + (otl_lookup_validate): Add arguments to pass lookup and glyph + counts. + Update callers. + (otl_lookup_list_validate): Add argument to pass glyph count. + Update callers. + + * src/otlayout/otlcommn.h: Updated. + + * src/otlayout/otljstf.c (otl_jstf_extender_validate, + otl_jstf_max_validate, otl_jstf_script_validate, + otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter + to validate glyph indices. + Update callers. + (otl_jstf_validate): Add parameter which specifies number of glyphs + in font. + + * src/otlayout/otljstf.h: Updated. + +2004-08-15 Werner Lemberg + + * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter + to handle possible NULL values properly. + Update all callers. + +2004-08-15 Werner Lemberg + + * src/otlayout/gpos.c: Rename counting variables to be more + meaningful. + Add copyright. + (otl_liga_attach_validate): Renamed to... + (otl_liga_mark2_validate): This. + Update all callers. + (otl_mark2_array_validate): Removed. + (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not + otl_mark2_array_validate. + (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed. + (otl_gpos_lookup7_validate): Complete code for format 2. + (otl_chain_pos_class_rule_validate, + otl_chain_pos_class_set_validate): Removed. + (otl_gpos_lookup8_validate): Don't call + otl_chain_pos_class_set_validate but + otl_chain_pos_rule_set_validate. + Simplify some code. + + * src/otlayout/otlgpos.h: Add copyright. + +2004-08-14 Werner Lemberg + + * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed. + (otl_jstf_gpos_mods_validate): Renamed to... + (otl_jstf_gsubgpos_mods_validate): This. + Test whether lookup_count is zero. + (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate. + (otl_jstf_validate): Initialize gsub_lookup_count and + gpos_lookup_count if gsub or gpos is zero. + + * src/otlayout/otlgsub.c: Rename counting variables to be more + meaningful. + Add copyright. + (otl_gsub_lookup1_validate): Simplify code. + (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate, + otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused + variables. + (otl_gsub_lookup5_validate): Remove unused variable. + Fix call to otl_sub_rule_set_validate and + otl_sub_class_rule_set_validate. + (otl_chain_sub_class_rule_validate, + otl_chain_sub_class_set_validate): Removed. + (otl_gsub_lookup6_validate): Remove unused variable. + Fix call to otl_chain_sub_rule_set_validate. + (otl_gsub_lookup7_validate): Handle lookup type 8 also. + (otl_gsub_lookup8_validate: New function. + (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, + otl_gsub_lookup3_apply): Commented out. + (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and + otl_gsub_lookup8_validate. + (otl_gsub_validate): Updated. + + * src/otlayout/otlgsub.h: Add copyright. + + * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h + (otl_coverage_get_index): Comment out. + +2004-08-13 Werner Lemberg + + * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New + function. + * src/otlayout/otlcommn.h: Updated. + + * src/otlayout/otlbase.c: Rename counting variables to be more + meaningful. + Add copyright message. + * src/otlayout/otlbase.h: Add copyright message. + + * src/otlayout/otlgdef.c: Rename counting variables to be more + meaningful. + Add copyright message. + Use OTL_CHECK everywhere. + (otl_caret_value_validate): Remove unused variable. + (otl_gdef_validate): All tables are optional. + * src/otlayout/otlgdef.h: Add copyright message. + + * src/otlayout/otljstf.c: Rename counting variables to be more + meaningful. + Add copyright message. + (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add + parameter to pass lookup count. + Update all callers. + Check lookup array. + (otl_jstf_max_validate): + s/otl_gpos_subtable_check/otl_gpos_subtable_validate/. + (otl_jstf_priority_validate, otl_jstf_lang_validate, + otl_jstf_script_validate): Add two parameters to pass lookup counts. + Update all callers. + (otl_jstf_validate): Add two parameters to pass GPOS and GSUB + table offsets; use otl_gsubgpos_get_lookup_count to convert extract + lookup counts. + Fix typo. + * src/otlayout/otljstf.h: Updated. + Add copyright message. + + * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function. + (otl_gpos_validate): Use it. + * src/otlayout/otlgpos.h: Updated. + +2004-08-13 Werner Lemberg + + * src/otlayout/otcommn.c: Use OTL_CHECK everywhere. + (otl_coverage_validate): Initialize `p', + s/count/num_glyphs/. + s/start_cover/start_coverage/. + (otl_coverage_get_index): Return OTL_Long, not OTL_Int. + Remove unused variables. + (otl_class_definition_validate): s/count/num_glyphs/. + Remove unused variables. + (otl_class_definition_get_value, otl_device_table_get_start, + otl_device_table_get_end, otl_device_table_get_delta, + otl_lookup_get_table, otl_lookup_list_get_count, + otl_lookup_list_get_lookup, otl_lookup_list_get_table, + otl_feature_get_lookups, otl_feature_list_get_count, + otl_feature_list_get_feature, otl_lang_get_count, + otl_lang_get_req_feature, otl_lang_get_features): Commented out + temporarily until we really need it. + (otl_lookup_validate): Removed. + (otl_lookup_table_validate): Renamed to ... + (otl_lookup_validate): This. Update callers. + (otl_lookup_list_validate): Remove already commented out definition + and move the other definition up. + (otl_feature_validate): Add parameter to pass number of lookups. + Update callers. + Check lookup indices. + (otl_feature_list_validate): Add parameter to pass lookup table. + Update callers. + (otl_lang_validate): Add parameter to pass number of features. + Update callers. + Handle req_feature and check feature indices. + (otl_script_validate): Add parameter to pass number of features. + Update callers. + (otl_script_list_validate): Add parameter to pass feature table. + Update callers. + + * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/. + Comment out the same functions as in otcommn.c. + (otl_script_list_get_script): Removed. + + * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to + type OTL_Long. + (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to + type OTL_Long. + Fix test. + (otl_gsub_validate): Fix order of validation. + + * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of + validation. + +2004-08-12 Werner Lemberg + + Make otlayout module compile (without actually working). + + * src/otlayout/*: s/OTL_Valid/OTL_Validator/. + s/NULL/0/. + + * src/otlayout/otlayout.h: Fix various typos. + (OTL_Bool): New typedef. + (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword. + (OTL_Err_InvalidArgument): Removed. + (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values. + (OTL_MAKE_TAG): Add missing parenthesis. + (OTL_INVALID_DATA): Use OTL_Err_InvalidData. + (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize. + (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros. + + * src/otlayout/otlgpos.c: s/FT_/OTL_/. + s/OTL_Short/OTL_Int16/. + (otl_gpos_pairset_validate): Add return type. + (otl_base_array_validate): Fix call to otl_anchor_validate. + (otl_liga_array_validate): Fix call to otl_liga_attach_validate. + (otl_gpos_lookup5_validate): Fix typos. + (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate. + (otl_gpos_lookup7_validate): Comment out unfinished code. + Fix typos. + + * src/otlayout/otlgsub.c: Add forward declaration for + otl_gsub_validate_funcs. + (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, + otl_gsub_lookup3_apply): Fix call to otl_parser_check_property. + s/otl_coverage_lookup/otl_coverage_get_index/. + (otl_ligature_validate): Add missing variable declaration. + (otl_sub_rule_validate): Fix typo. + (otl_sub_class_rule_validate): Add missing variable declaration. + Fix typo. + (otl_gsub_lookup5_validate): Fix typo. + (otl_gsub_lookup6_validate): Fix call to + otl_chain_sub_class_set_validate. + (otl_gsub_validate_funcs): Don't use `const'. + + * src/otlayout/otlcommn.c (otl_class_definition_get_value, + otl_device_table_validate, otl_device_table_get_delta, + otl_lookup_validate, otl_script_validate): Add missing + variable declarations. + (otl_lookup_list_validate): Comment out first definition. + (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. + (otl_feature_list_validate): + s/otl_feature_table_validate/otl_feature_validate/. + (otl_script_list_validate): + s/otl_script_table_validate/otl_script_validate/. + + * src/otlayout/otlcommn.h: Comment out first declaration. + (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. + + * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to + otl_device_table_validate. + (otl_base_script_validate): Add missing variable declarations. + (otl_base_script_list_validate): Fix call to + otl_base_script_validate. + (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate + and otl_base_script_list_validate. + (otl_base_validate): Fix calls to otl_axis_table_validate. + + * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to + otl_attach_point_validate. + (otl_caret_value_validate): Add missing variable declaration. + Fix call to otl_device_table_validate. + (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate. + (otl_ligature_caret_list_validate): Fix call to + otl_ligature_glyph_validate. + (otl_gdef_validate): Fix calls to otl_class_definition_validate, + otl_attach_list_validate, otl_ligature_caret_list_validate, and + otl_class_definition_validate. + + * src/otlayout/otltable.h (otl_table_validate, otl_table_init, + otl_table_set_script): Comment out. + + * src/otlayout/otlparse.h (OTL_ParserRec): + s/OTL_Alternate/OTL_GSUB_Alternate/. + (OTL_ParseError): Add OTL_Err_Parser_Memory and + OTL_Err_Parser_Internal. + (otl_parser_error): Fix typo. + (otl_parser_check_property): Remove third argument. + + * src/otlayout/otlparse.c (otl_string_ensure): + s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/. + (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index, + otl_parser_replace_1, otl_parser_replace_n): Fix typos. + (OTL_PARSER_UNCOVERED): Removed. + (otl_parser_check_property): Remove third argument. + + * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing + variable declaration. + + * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo. + +2004-08-11 Danny + + * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close + to NULL. This allows custom close functions to delete the FT_STREAM + object. + +2004-08-11 Werner Lemberg + + Add API to get information about SFNT tables. + + * include/freetype/internal/services/svsfnt.h + (FT_SFNT_Table_Info_Func): New typedef. + (SFNT_Table): Add it. + + * src/base/ftobjs (FT_Sfnt_Table_Info): New function. + + * include/freetype/tttables.h: Updated. + + * src/sfnt/sfdriver.c (sfnt_table_info): New function. + (sfnt_service_sfnt_table): Add it. + + * docs/CHANGES: Updated. + + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. + + * builds/unix/configure.ac (version_info): Set to 9:8:3. + * builds/unix/configure: Updated. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. + + * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): + s/2.1.9/2.1.10/. + + * docs/CHANGES, docs/VERSION.DLL: Updated. + +2004-08-11 Detlef Würkner + + * src/base/ftrfork.c (FT_Raccess_Guess) + [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK]: Remove compiler + warnings. + +2004-08-06 Adam Piotrowski + + * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte + adjustments are unsigned, not signed. + +2004-08-05 David Turner + + `Activate' gray-scale specifying hinting within the TrueType + bytecode interpreter. This is an experimental feature which + should probably be made optional. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Move the code to set the pedantic_hinting flag + to... + (TT_Load_Glyph): Here. + Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'. + + * src/truetype/ttinterp.c (Ins_GETINFO): Return MS rasterizer + version 1.7. + Return rotation and stretching info only if glyph is rotated or + stretched, respectively. + Handle grayscale info. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale' + member. + +2004-08-02 George Williams + + * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'. + +2004-08-01 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-08-01 George Williams + + FreeType now can read kerning values from PFM files. + + * src/type1/t1afm.c (T1_Done_AFM): Renamed to... + (T1_Done_Metrics): This. + Update all callers. + (T1_Read_AFM): Make it static. + Don't enter and leave a frame. + (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros. + (T1_Read_PFM): New function. + (T1_Read_Metrics): New higher-level function to be used instead of + T1_Read_AFM. + Update all callers. + +2004-07-31 Werner Lemberg + + * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c + (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var, + tt_face_vary_cvt): Fix compiler warnings. + +2004-07-26 Søren Sandmann + + * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for + face->style_name. + * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'. + +2004-07-26 Darren J Longhorn + + * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize + five-byte `long' (which is avoided then). + +2004-07-25 Detlef Würkner + + * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not + ppem values. + (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own + code to compare ppem values. + * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not + ppem values. + (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own + code to compare ppem values. + +2004-07-25 Kornfeld Eliyahu Peter + + * src/sfnt/sfobjs.c (sfnt_load_face): Handle + TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY. + +2004-07-24 Derek B. Noonburg + + * src/cff/cffload.c (cff_font_load): Always create inverse mapping. + Even if the charstring count is the same as the CID count, it is + still possible that the font uses a different CID -> GID mapping. + +2004-07-23 Werner Lemberg + + * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag + found in some Arphic fonts made for Chinese version of Windows 3.1. + +2004-07-17 David Turner + + Fixed a dangling pointer bug in the cache code that happened in very + rare cases, i.e., when a new family object was destroyed by an + out-of-memory condition during a glyph node initialization. The + function FTC_Cache_Lookup would flush the cache and restart the + lookup with a bad pointer. + + * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro. + (FTC_GCACHE_LOOKUP_CMP): Use it. + Handle reference count in `num_nodes' correctly. + + * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use + FTC_FAMILY_FREE. + (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly. + + * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing + bug. + + * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused + long and unnecessary delays while normalizing huge vectors. + +2004-07-15 Werner Lemberg + + * docs/CHANGES: Updated. + + * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler + warning. + +2004-07-15 David Turner + + * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points + are not stroked, preventing a bug with pala.ttf and other + fonts. + + * include/freetype/ftstroke.h: Updating documentation comments. + +2004-07-13 Werner Lemberg + + * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused. + +2004-07-12 David Turner + + * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter + to indicate reversion of points. + Update all callers. + (ft_stroke_border_reverse): Fix initialization of `point1' and + `tag1'. + + * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation + for transformed glyphs. + +2004-07-11 David Turner + + Fix bugs that prevented the stroker to correctly generate stroked + paths from closed paths, i.e., nearly all glyphs in vectorial fonts. + + The code is still _very_ buggy though; treat with special care. + + * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro. + (ft_stroke_border_reverse): New function. + (ft_stroker_inside): Remove local variable `sigma'; use different + threshold. + (ft_stroker_add_reverse_left): Switch begin/end tags if necessary. + (FT_Stroker_EndSubPath): Call ft_stroker_inside and + ft_stroke_border_reverse. + +2004-06-26 Peter Kovar + + * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. + +2004-06-25 Werner Lemberg + + * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported + by Dirck Blaskey. + +2004-06-24 David Turner + + + * Version 2.1.9 released. + ========================= + + + * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing + compiler warnings. + +2004-06-23 Werner Lemberg + + * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare + FT_QAlloc_Debug and FT_QRealloc_Debug. + + * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages. + (FT_QRealloc): Call FT_QAlloc if original pointer is NULL. + Fix error message. + +2004-06-23 David Turner + + * include/freetype/internal/ftmemory.h, src/base/ftutil.c + (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug, + FT_QRealloc_Debug): New functions that perform allocation without + zero-ing out the corresponding blocks. + + * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC, + FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY, + FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY, + FT_QRENEW_ARRAY): New macros. + + * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC. + * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY. + * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY. + + * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics, + tt_face_load_gasp): Use FT_QNEW_ARRAY. + (tt_face_load_kern): Use FT_QNEW_ARRAY. + Small optimization in the kerning table verifier; this speeds up + TrueType face opening by about 7%. + (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC. + + * include/freetype/config/ftmodule.h: Changed the order of modules, + putting TrueType and Type 1 first. This dramatically improves the + performance of face open/close operations. For example, putting the + TrueType driver first in the list results in a 5x speedup when + opening `Vera.ttf'. + + The very problem is that both the PCF and BDF drivers do a lot more + than necessary to detect that they cannot handle a font file. + +2004-06-22 Werner Lemberg + + * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, + pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve + debugging messages. + + * src/pcf/pcfdrivr.c (FT_COMPONENT): Move up. + (PCF_Face_Init): Simplify code. + + * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'. + + * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start), + src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs. + Set `default_glyph'. + (BDF_Glyph_Load): Use `default_glyph' for undefined glyph. + + * docs/CHANGES: Updated. + +2004-06-21 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-06-21 David Turner + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph, + load_truetype_glyph): Don't access (unrounded) + `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes + a scaling bug that caused incorrect rendering when the bytecode + interpreter was enabled. + +2004-06-14 Huw D M Davies + + * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem + based on pixel_width and pixel_height. + (FNT_Size_Set_Pixels): Updated. + +2004-06-14 Werner Lemberg + + * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h. + Reported by Hyvärinen Jyrki Juhani. + +2004-06-11 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-06-10 David Turner + + * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c, + src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed. + Obsolete. + + * src/raster/ftraster.c (Alignment, PAlignment): New union to fix + problems with 64bit systems. + (AlignProfileSize): Use it. + +2004-06-08 David Turner + + * include/freetype/freetype.h (FT_Glyph_Metrics): Move `lsb_delta' + and `rsb_delta' elements to... + (FT_GlyphSlotRec): Here to retain binary compatibility with older + FreeType versions. + Update all users. + + * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning. + + * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization + of slot->metrics.width and slot->metrics.height when loading a + Windows FNT glyph. Thanks to Huw Davies. + + * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change + return type to FT_Bool. + + * src/cache/ftcbasic.c (ftc_basic_family_compare): Change return + type to FT_Bool. + + * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make + the former call the latter, not vice versa. + (FTC_Cache_Done, ftc_cache_done): Ditto. + + * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make + the former call the latter, not vice versa. + (FTC_GCache_Init, ftc_gcache_init): Ditto. + (FTC_GCache_Done, ftc_gcache_done): Ditto. + + * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the + former call the latter, not vice versa. + (FTC_INode_Weight, ftc_inode_weight): Ditto. + + * src/cache/ftcmanag.c (ftc_size_node_compare, + ftc_size_node_compare_faceid, ftc_face_node_compare): Change return + type to FT_Bool. + + * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the + former call the latter, not vice versa. + (FTC_SNode_Weight, ftc_snode_weight): Ditto. + (FTC_SNode_Compare, ftc_snode_compare): Ditto. + + * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache + sub-system. + +2004-06-05 Werner Lemberg + + * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and + `rsb_delta' in slot->metrics and tune side bearings slightly. + +2004-06-04 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-06-04 David Chester + + Improve inter-letter spacing for autohinted glyphs. + + * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements + `lsb_delta' and `rsb_delta'. + + * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and + `rsb_delta' in slot->metrics and tune side bearings slightly. + +2004-06-04 David Turner + + * src/autofit/*: Important fixes to the auto-fitter. The output + now seems to be 100% equivalent to the auto-hinter, while being + about 2% faster (which proves that script-specific algorithm + selection isn't a performance problem). + + To test it, change `autohint' to `autofit' in + and recompile. + + A few more testing is needed before making this the official + auto-hinting module. + +2004-06-02 Werner Lemberg + + * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler + warnings. + +2004-06-01 Werner Lemberg + + * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English + name record for the Apple platform is preferred to a non-English + entry for the Microsoft platform. Problem reported by HANDA + Ken'ichi. + +2004-05-19 George Williams + + * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New + auxiliary functions. + (T1_Get_MM_Var): Provide axis tags. + Use mm_axis_unmap and mm_weights_unmap to provide default values + for design and normalized axis coordinates. + + * include/freetype/t1tables.h (PS_DesignMapRec): Change type of + `design_points' to FT_Long. + Update all users. + +2004-05-17 Werner Lemberg + + * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases. + Reported by Mikey Anbary . + +2004-05-15 Werner Lemberg + + * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name. + +2004-05-15 George Williams + + * src/sfnt/ttload.c (tt_face_load_max_profile): Always set + face->root.num_glyphs. + +2004-05-14 Masatake YAMATO + George Williams + + * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly. + +2004-05-14 Werner Lemberg + + * src/cache/ftcbasic.c (ftc_basic_family_compare, + ftc_basic_family_init, ftc_basic_family_get_count, + ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, + ftc_basic_gnode_compare_faceid): Adjust parameters and return types + to prototypes given in header files from include/freetype/cache. + Use casts to proper types locally. + (ftc_basic_image_family_class, ftc_basic_image_cache_class, + ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove + casts. + + * src/cache/ftccback.h: Adjust parameters and return types to + prototypes given in header files from include/freetype/cache. + + * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new, + ftc_inode_weight): Adjust parameters and return types to prototypes + given in header files from include/freetype/cache. Use casts to + proper types locally. + + * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new, + ftc_snode_weight, ftc_snode_compare): Adjust parameters and return + types to prototypes given in header files from + include/freetype/cache. Use casts to proper types locally. + + * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new, + ftc_cmap_node_weight, ftc_cmap_node_compare, + ftc_cmap_node_remove_faceid): Adjust parameters and return types to + prototypes given in header files from include/freetype/cache. Use + casts to proper types locally. + (ftc_cmap_cache_class): Remove casts. + + * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init, + ftc_gcache_done): Adjust parameters and return types to prototypes + given in header files from include/freetype/cache. Use casts to + proper types locally. + + * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare, + ftc_size_node_init, ftc_size_node_reset, + ftc_size_node_compare_faceid, ftc_face_node_init, + ftc_face_node_done, ftc_face_node_compare: Adjust parameters and + return types to prototypes given in header files from + include/freetype/cache. Use casts to proper types locally. + + (ftc_size_list_class, ftc_face_list_class): Remove casts. + +2004-05-13 Werner Lemberg + + * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done): + Use FT_Module as parameter and do a cast to FT_AutoHinter locally. + (autohint_module_class): Remove casts. + + * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy, + ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init, + ft_outline_glyph_done, ft_outline_glyph_copy, + ft_outline_glyph_transform, ft_outline_glyph_bbox, + ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast + to FT_XXXGlyph locally. + Use FT_CALLBACK_DEF throughout. + (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts. + + * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done, + bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter + and do a cast to BDF_CMap locally. + (bdf_cmap_class): Remove casts. + +2004-05-12 Werner Lemberg + + * src/cff/cffgload.h (CFF_Builder): Remove `error'. + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace + `Memory_Error' with `Fail' and update all users. + +2004-05-11 Werner Lemberg + + * include/freetype/internal/psaux.h (T1_ParseState): New + enumeration. + (T1_BuilderRec): Replace `path_begun' with `parse_state'. + Remove `error'. + * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace + `Memory_Error' with `Fail' and update all users. + Don't use `builder->error'. + Replace `path_begun' with `parse_state' and check parsing states. + + * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point): + Replace `path_begun' with `parse_state' and check parsing states. + +2004-05-10 George Williams + + * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case + of error -- `avar' is optional so we can't rely on tt_done_blend + being called automatically. + +2004-05-09 George Williams + + * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix + error handling. + +2004-05-07 Werner Lemberg + + * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init, + pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done, + pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are + typecast to the proper PFR_XXX types within the function. + Update code accordingly. + + * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance, + pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX + arguments which are typecast to the proper PFR_XXX types within the + function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (pfr_metrics_service_rec, pfr_driver_class): Remove casts. + +2004-05-06 Masatake YAMATO + + * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM. + (*): Rename local variable OffsetToData to offsetToData. + +2004-05-06 Werner Lemberg + + * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset, + cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access + root fields directly. + * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly. + + * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current + frame before calling TT_Vary_Get_Glyph_Deltas. + + * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for + consistency. + (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index, + pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which + are typecast to the proper PCF_XXX types within the function. + Update code accordingly. + (pcf_cmap_class): Remove casts. + (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use + PCF_XXX but FT_XXX arguments which are typecast to the proper + PCF_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (PCF_Set_Point_Size): New wrapper function. + (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF. + (pcf_driver_class): Remove casts. + +2004-05-04 Steve Hartwell + + * src/truetype/ttobjs.c (tt_driver_done): Fix typo. + +2004-05-04 Werner Lemberg + + * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init, + BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which + are typecast to the proper BDF_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (BDF_Set_Point_Size): New wrapper function. + (bdf_driver_class): Remove casts. + + * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface): + Don't use CFF_XXX but FT_XXX arguments which are typecast to the + proper CFF_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF throughout. + (cff_driver_class): Remove casts. + + * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done, + cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init, + cff_face_init, cff_face_done, cff_driver_init, cff_driver_done): + Don't use CFF_XXX but FT_XXX arguments which are typecast to the + proper CFF_XXX types within the function. + Update code accordingly. + (cff_point_size_reset): New wrapper function. + + * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done, + cid_slot_init, cid_size_done, cid_size_init, cid_size_reset, + cid_face_done, cid_face_init, cid_driver_init, cid_driver_done): + Don't use CID_XXX but FT_XXX arguments which are typecast to the + proper CID_XXX types within the function. + Update code accordingly. + (cid_point_size_reset): New wrapper function. + + * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph): + Don't use CID_XXX but FT_XXX arguments which are typecast to the + proper CID_XXX types within the function. + Update code accordingly. + + * src/cid/cidriver.c (cid_get_interface): + Don't use CID_XXX but FT_XXX arguments which are typecast to the + proper CID_XXX types within the function. + Update code accordingly. + Use FT_CALLBACK_DEF. + (t1cid_driver_class): Remove casts. + + * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF. + * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local + variables (this is done later). + (ft_var_load_avar): Fix call to FT_FRAME_ENTER. + (TT_Get_MM_Var): Fix size for `fvar_fields'. + (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables + correctly. + + * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if + current size is zero. + +2004-05-03 Steve Hartwell + + * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init, + tt_face_done, tt_size_init, tt_size_done, tt_driver_init, + tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are + typecast to the proper TT_XXX types within the function. + Update code accordingly. + + * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes, + Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but + FT_XXX arguments which are typecast to the proper TT_XXX types + within the function. + Update code accordingly. + (tt_driver_class): Remove casts. + +2004-05-02 Werner Lemberg + + * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names' + is not NULL. Reported by Gordon Childs . + +2004-04-29 Werner Lemberg + + * docs/formats.txt: Add more information on PFR format. + +2004-04-28 Werner Lemberg + + * docs/formats.txt: New file. + * docs/CHANGES: Updated. + +2004-04-28 Masatake YAMATO + + * include/freetype/internal/tttypes.h (GX_BlendRec_) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo. + + * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo. + +2004-04-27 Masatake YAMATO + + * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF + for function declarations. + +2004-04-25 George Williams + + * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo. + +2004-04-25 Werner Lemberg + + * src/truetype/Jamfile, docs/CHANGES: Updated. + +2004-04-24 Werner Lemberg + + * src/pcf/pcfdrivr.c: Revert change from 2004-04-17. + * src/pcf/pcfutil.c: Use FT_LOCAL_DEF. + * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H. + Use FT_BEGIN_HEADER and FT_END_HEADER. + Use FT_LOCAL. + +2004-04-24 George Williams + + Add support for Apple's distortable font technology (in GX fonts). + + * devel/ftoption.h, include/freetype/config/ftoption.h + (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro. + + * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style, + FT_MM_Var): New structures. + (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, + FT_Set_Var_Blend_Coordinates): New function declarations. + + * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func, + FT_Set_Var_Design_Func): New typedefs. + Update MultiMasters service. + + * include/freetype/internal/tttypes.h + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H. + (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef. + (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend' + and `blend'. + + * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New + macros. + + * include/freetype/internal/fttrace.h: Add `ttgxvar'. + + * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, + FT_Set_Var_Blend_Coordinates): New functions. + + * src/sfnt/sfobjs.c (sfnt_load_face) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS + flag for GX var fonts. + + * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files. + + * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.c. + + * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h. + (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: + New service. + (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. + + * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.h. + (TT_Process_Simple_Glyph, load_truetype_glyph) + [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Support GX var fonts. + + * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.h. + (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call + tt_done_blend. + + * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include + ttgxvar.h. + (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call + tt_face_vary_cvt. + + * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c. + + * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var + and T1_Set_Var_Design. + + * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros. + (T1_Get_MM_Var, T1_Set_Var_Design): New functions. + + * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New + function declarations. + +2004-04-23 Werner Lemberg + + * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename + declaration and move to... + * include/freetype/freetype.h (FT_Get_Charmap_Index): Here. + (FREETYPE_PATCH): Set to 9. + + * src/base/ftobjs.c (FT_Get_Charmap_Index): New function. + + * builds/unix/configure.ac (version_info): Set to 9:7:3. + * builds/unix/configure: Updated. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/218/219/. + + * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): + s/2.1.8/2.1.9/. + + * docs/CHANGES, docs/VERSION.DLL: Updated. + +2004-04-21 Werner Lemberg + + * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c + (ps_parser_load_field): Use FT_CHAR_BIT. + +2004-04-21 David Turner + + + * Version 2.1.8 released. + ========================= + + + * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak. + + * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c + (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name): + Remove compiler warnings. + + * src/autofit/aftypes.h: Undefine AF_DEBUG. + + * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf, + pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c + (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict, + t42_service_ps_font_name): Decorate data arrays with `const' to + avoid populating the `.data' segment. + + * src/lzw/Jamfile: New file. + +2004-04-20 Werner Lemberg + + * src/psaux/psobjs.c (T1Radix): Renamed to... + (ps_radix): This. + Update current cursor position. + + * docs/CHANGES: Updated. + +2004-04-18 Werner Lemberg + + * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph), + src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to + FT_UInt. From Lex Warners. + +2004-04-17 Chisato Yamauchi + + * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change + from 2004-03-19. + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'. + + * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with + `static'. + Remove unused function `RepadBitmap'. + * src/pcf/pcfdrivr.c: Don't include pcfutil.h. + +2004-04-16 Werner Lemberg + + * builds/unix/freetype-config.in (usage): Fix and improve usage + information. + +2004-04-15 Werner Lemberg + + * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define + FT_CHAR_BIT. + + * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if + glyph is vertically distorted or mirrored. + + * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly + for embedded bitmaps. + + * docs/CHANGES: Updated. + +2004-04-15 bytesoftware + + * include/freetype/config/ftconfig.h, src/base/ftstream.c + (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT. + +2004-04-14 Werner Lemberg + + * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro. + +2004-04-14 Alex Strelnikov + + * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case + of error. + +2004-04-14 Werner Lemberg + + * src/base/ftmac.c [__GNUC__]: Define OS_INLINE. + * builds/unix/configure.ac: Don't try to remove `-ansi' compilation + switch on the Mac. + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.6. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.8a. + * builds/unix/configure: Regenerated with autoconf 2.59a. + +2004-04-13 Werner Lemberg + + * include/freetype/config/ftconfig.h: Use CHAR_BIT to define + size of FT_SIZEOF_xxx. + +2004-04-12 Chisato Yamauchi + + * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func, + TT_Load_SBit_Metrics_Func): New typedefs. + (SFNT_Interface): Add find_sbit_image and load_sbit_metrics. + + * src/sfnt/sfdriver.c (sfnt_interface): Updated. + * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New + declarations. + * src/sfnt/ttsbit.c (find_sbit_image): Renamed to... + (tt_find_sbit_image): This. + Updated all callers. + (load_sbit_metrics): Renamed to... + (tt_load_sbit_metrics): This. + Updated all callers. + +2004-04-12 Werner Lemberg + + * configure: Accept makepp also. + + * builds/unix/detect.mk: Use proper path to unix-def.mk. + * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove. + * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define. + Use BUILD_DIR. + + * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update + documentation on makepp. + +2004-04-11 Werner Lemberg + + * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h. + +2004-04-10 Werner Lemberg + + * src/lzw/ftlzw.c: Include zopen.h dependent on + FT_CONFIG_OPTION_USE_LZW. + + * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings. + +2004-04-02 Werner Lemberg + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5.2. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.8a. + * builds/unix/configure: Regenerated with autoconf 2.59a. + +2004-04-01 Werner Lemberg + + * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of + AC_COMPILE_IFELSE. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.8a. + * builds/unix/configure: Regenerated with autoconf 2.59a. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org. + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at subversions.gnu.org. + * builds/freetype.mk (refdoc): Updated. + +2004-03-31 Werner Lemberg + + Handle broken FNT files which don't have a trailing NULL byte + in the face name string. + + * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'. + * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name. + (FNT_Face_Init): Append a final zero byte to the font face name. + +2004-03-30 Werner Lemberg + + * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from + 2004-03-19. + +2004-03-27 Werner Lemberg + + * src/base/descrip.mms (OBJS): Add ftbbox.obj. + +2004-03-26 George Williams + + Add vertical phantom points. + + * include/freetype/internal/tttypes.h (TT_LoaderRec): Add + `top_bearing', `vadvance', `pp3', and `pp4'. + + * src/autofit/afloader.c (af_loader_load_g): Handle two more points. + + * src/autohint/ahhint.c (ah_hinter_load): Handle two more points. + * src/truetype/ttgload.c (Get_VMetrics): New function. + (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more + points. + (load_truetype_glyph): Use Get_VMetrics. + Handle two more points. + (compute_glyph_metrics): Thanks to vertical phantom points we now + can always compute `advance_height' and `top_bearing'. + * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom + points. + + + * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of + `news'. + +2004-03-21 Werner Lemberg + + * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing. + +2004-03-20 Steve Hartwell + + * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL + value for `selection' as `select all'. + +2004-03-19 Steve Hartwell + + * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index + values > 0 if loading non-TTC fonts. + + * src/base/ftmac.c (open_face_from_buffer): Set positive face_index + to zero before calling FT_Open_Face. + + * docs/CHANGES: Updated. + +2004-03-04 Werner Lemberg + + * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: + Add LZW module. + + * Jamfile.in: Removed. + + * docs/CHANGES: Updated. + + * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, + s/ABS/FT_ABS/. Updated all callers. + + * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c + (PCF_Face_Init): Use FT_ERROR_BASE. + +2004-03-04 Albert Chin + + Add support for PCF fonts compressed with LZW (extension .pcf.Z, + created with `compress'). + + * include/freetype/config/ftoption.h, devel/ftoption.h + (FT_CONFIG_OPTION_USE_LZW): New macro. + + * include/freetype/ftlzw.h: New file. + * include/freetype/config/ftheader.h (FT_LZW_H): New macro for + ftlzw.h. + + * src/lzw/*: New files. + + * src/pcf/pcfdrivr.c: Include FT_LZW_H. + (PCF_Face_Init): Try LZW also. + + * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. + Beautify. + +2004-03-03 Werner Lemberg + + * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code. + +2004-03-02 Werner Lemberg + + Add embedded bitmap support to CFF driver. + + * src/cff/cffobjs.h (CFF_SizeRec): New structure. + + * src/cff/cffgload.c (cff_builder_init): Updated. + (cff_slot_load): Updated. + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit. + + * src/cff/cffobjs.c (sbit_size_reset) + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function. + (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated. + (cff_size_reset): Updated. + [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset. + + * src/cff/cffdrivr.c (Load_Glyph): Updated. + (cff_driver_class): Use CFF_SizeRec. + + * docs/CHANGES: Updated. + +2004-03-01 Werner Lemberg + + * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use + FT_RoundFix but FT_PIX_ROUND. + (psh_blues_snap_stem): Don't use blue_shift but blue_threshold. + + * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro. + (psh_glyph_find_strong_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. + (psh_glyph_find_blue_points): New function. Needed for fonts like + p052003l.pfb (URW Palladio L Roman) which have flex curves at the + base line within blue zones, but the flex curves aren't covered by + hints. + (ps_hints_apply): Use psh_glyph_find_blue_points. + +2004-02-27 Garrick Meeker + + * builds/unix/configure.ac: Fix compiler flags for + `--with-old-mac-fonts'. + * builds/unix/configure: Regenerated. + + * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/. + (FT_New_Face_From_Resource): New function. + (FT_New_Face): Use FT_New_Face_From_Resource. + (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource. + [__MWERKS__]: Don't include FSp_fopen.h. + +2004-02-26 Werner Lemberg + + * src/pshinter/pshglob.c (psh_globals_new): Fix value of + `dim->stdw.count'. + Don't assign default values to blue scale and blue shift. + +2004-02-25 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-02-25 Garrick Meeker + Steve Hartwell + + Improve MacOS fond support. Provide a new API + `FT_New_Face_From_FSSpec' similar to `FT_New_Face'. + + * src/base/ftmac.c [__MWERKS__]: Include FSp_fopen.h. + STREAM_FILE [__MWERKS__]: New macro. + (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions. + (file_spec_from_path) [__MWERKS__]: Updated #if statement. + (get_file_type, make_lwfn_spec): Use `const' for argument. + (is_dfont) [TARGET_API_MAC_CARBON]: Removed. + (count_face_sfnt, count_faces): New functions. + (parse_fond): Do some range checking. + (read_lwfn): Change type of second argument. + No longer call FSpOpenResFile. + (OpenFileAsResource): New function. + (FT_New_Face_From_LWFN): Use `const' for second argument. + Use OpenFileAsResource. + (FT_New_Face_From_Suitcase): Change type of second argument. + No longer call FSpOpenResFile. + Loop over all resource indices. + (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed. + (FT_GetFile_From_Mac_Name): Use `const' for first argument. + (ResourceForkSize): Removed. + (FT_New_Face): Updated to use new functions. + (FT_New_Face_From_FSSpec): New function. + + * include/freetype/ftmac.h: Updated. + +2004-02-24 Malcolm Taylor + + * src/autohint/ahhint.c (ah_hinter_load) : + Handle case where outline->num_vedges is zero while computing hinted + metrics. + +2004-02-24 Gordon Childs + + * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value + for `count'. + +2004-02-24 Werner Lemberg + + * include/freetype/t1tables.h (PS_PrivateRec): Add + `expansion_factor'. + + * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation + of blues->no_overshoots -- `blues_scale' is stored with a + magnification of 1000, and `scale' returns fractional pixels. + + * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift', + `blue_fuzz', `expansion_factor', and `blue_scale' according to the + Type 1 specification. + + * src/type1/t1tokens.h: Handle `ExpansionFactor'. + + * docs/CHANGES: Updated. + +2004-02-24 Masatake YAMATO + + Provide generic access to MacOS resource forks. + + * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New + files. + + * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H. + (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments + `resource_listoffset' and `resource_data' and adapt code + accordingly. These values are calculated outside of the function + now. + Add new argument `offsets'. + (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and + `FT_Raccess_Get_DataOffsets'. + (load_face_in_embedded_rfork): New function. + (load_mac_face): Use load_face_in_embedded_rfork. + (ft_input_stream_new): Renamed to... + (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers. + (ft_input_stream_free): Renamed to... + (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers. + + * src/base/ftbase.c: Include ftrfork.c. + + * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated. + + * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H): + New macro. + + * include/freetype/internal/fttrace.h: Added `rfork' as a new + trace definition. + + * include/freetype/internal/ftstream.h: Declare FT_Stream_New and + FT_Stream_Free. + + * include/freetype/config/ftoption.h, devel/ftoption.h + (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option. + + * include/freetype/config/ftstdlib.h (ft_strrchr): New macro. + +2004-02-23 Werner Lemberg + + * docs/CHANGES: Updated. + + * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H. + +2004-02-23 Masatake YAMATO + + Provide a simple API to control FreeType's tracing levels. + + * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, + FT_Trace_Get_Name): New declarations. + + * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New + functions. + +2004-02-23 David Turner + + * src/autofit/afhints.c, src/autofit/afhints.h, + src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave + bugs have been fixed. The auto-fitter works, doesn't crash, but + still produces unexpected results... + +2004-02-21 Werner Lemberg + + * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold + the accepted shift for strong points in fractional pixels (which + is a heuristic value). + (psh_glyph_find_strong_points): Compute threshold for + psh_hint_table_find_strong_points. + (psh_hint_table_find_strong_point): Add parameter to pass threshold. + +2004-02-20 Werner Lemberg + + * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call + ps_mask_table_alloc but ps_mask_table_last. + (ps_hints_t2mask): Use correct position and number for vertical + and horizontal hinter mask bits. + + * docs/CHANGES: Updated. + +2004-02-19 Werner Lemberg + + * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling. + * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning. + +2004-02-18 Werner Lemberg + + * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly. + + * src/base/ftglyph.c (ft_bitmap_glyph_class, + ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF. + + * src/smooth/ftsmooth.c (ft_smooth_render): Handle + FT_RENDER_MODE_LIGHT. + +2004-02-17 Werner Lemberg + + Fix callback functions in cache module. + + * src/cache/ftccback.h: New file for callback declarations. + + * src/cache/ftcbasic.c (ftc_basic_family_compare, + ftc_basic_family_init, ftc_basic_family_get_count, + ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, + ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF. + (ftc_basic_image_family_class, ftc_basic_image_cache_class, + ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): + Use FT_CALLBACK_TABLE_DEF and local wrapper functions. + + * src/cache/ftccache.c: Include ftccback.h. + (ftc_cache_init, ftc_cache_done): New wrapper functions which use + FT_LOCAL_DEF. + + * src/cache/ftccmap.c: Include ftccback.h. + (ftc_cmap_cache_class): Use local wrapper functions. + + * src/cache/ftcglyph.c: Include ftccback.h. + (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper + functions which use FT_LOCAL_DEF. + + * src/cache/ftcimage.c: Include ftccback.h. + (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper + functions which use FT_LOCAL_DEF. + + * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class): + Use FT_CALLBACK_TABLE_DEF. + + * src/cache;/ftcsbits.c: Include ftccback.h. + (ftc_snode_free, ftc_snode_new, ftc_snode_weight, + ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF. + + * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h. + +2004-02-17 Masatake YAMATO + + * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo + (FT_EXPORT_DEF -> FT_EXPORT). + + * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto. + +2004-02-15 Werner Lemberg + + * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo. + +2004-02-14 Masatake YAMATO + + * builds/unix/ftsystem.c: Include errno.h. + (ft_close_stream): Renamed to... + (ft_close_stream_by_munmap): This. + (ft_close_stream_by_free): New function. + (FT_Stream_Open): Use fallback method if mmap fails. + Use proper function for closing the stream. + +2004-02-14 Werner Lemberg + + * src/type1/t1load.c (parse_dict): Initialize `start_binary'. + +2004-02-13 Robert Etheridge + + * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c + (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation + of underline_position and underline_thickness. + +2004-02-12 Werner Lemberg + + * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if + ppem values don't change. Suggested by Graham Asher. + +2004-02-11 Werner Lemberg + + * src/cid/cidload.c (cid_face_open): Always allocate + face->cid_stream so that we can deallocate it safely. + +2004-02-10 Werner Lemberg + + Make the PS parser more tolerant w.r.t. non-standard font data. In + general, an error is only reported in case of a syntax error; a + wrong type is now simply ignored (if possible). To be independent + of the order of various MM-specific keywords, the parse_shared_dict + routine has been removed -- the PS parser is now capable to skip + this data. It no longer fails on parsing e.g. + + dup /WeightVector exch def + + Since the token following /WeightVector isn't `[' (starting an + array) it is simply ignored. + + * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a + new internal error value. + + * src/type1/t1load.c (parse_blend_axis_types, + parse_blend_design_positions, parse_blend_design_map): Return + T1_Err_Ignore if no proper array is following the keyword. + (parse_weight_vector): Use T1_ToTokenArray, initializing `blend' + structure, if necessary. + Return T1_Err_Ignore if no proper array is following the keyword. + (parse_shared_dict): Removed. + (parse_encoding): Set parser->root.error to return T1_Err_Ignore + if no result can be obtained. + Check for errors before accessing `elements' array. + (t1_keywords): Remove /shareddict. + (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore. + Set keyword_flag only in case of success. + Check error code if skipping an unrecognized token. + (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend + if blend commands haven't set up a proper MM font. + + * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special + code for synthetic fonts. + Return PSaux_Err_Ignore if no proper value has been found. + +2004-02-09 Werner Lemberg + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + : Preserve glyph width before calling + cff_operator_seac. + +2004-02-09 Martin Muskens + + * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special + first argument for `hintmask' and `cntrmask' operators also. + +2004-02-08 Werner Lemberg + + * builds/unix/configure.in: Call AC_SUBST for `enable_shared', + `hardcode_libdir_flag_spec', and `wl'. + * builds/unix/configure: Regenerated. + + * builds/unix/freetype-config.in: Make --prefix and --exec-prefix + actually work. + Report a proper --rpath (or -R) value for --libs argument if a + shared library has been built. + + * docs/CHANGES: Updated. + +2004-02-07 Keith Packard + + * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix + computation of various vertical and horizontal metric values. + + * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font): + Ditto. + +2004-02-07 Werner Lemberg + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated. + +2004-02-07 Vitaliy Pasternak + + * builds/win32/visualc/freetype.sln, + builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003. + +2004-02-03 Werner Lemberg + + * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): + Initialize `node'. + * src/type1/t1load.c (parse_dict): Initialize `have_integer'. + +2004-02-02 Werner Lemberg + + * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands + outside of /Subrs or /CharStrings. This can happen if there is + additional code manipulating those two arrays so that FreeType + doesn't recognize them properly. + (T1_Open_Face): Improve an error message. + +2004-02-01 Werner Lemberg + + * src/type1/t1load.c (parse_charstrings): Exit immediately if + there are no elements in /CharStrings. This is needed for fonts + like Optima-Oblique which not only define /CharStrings but access it + also. + +2004-02-01 David Turner + + * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources. + + * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) + : Provide macro version which doesn't use inline code. + * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP) + : Ditto. + Use FTC_MRULIST_LOOKUP_CMP. + * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New + macro. + (FTC_MRULIST_LOOKUP): Use it. + + * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated. + * src/cache/ftcbasic.c: Fix compiler warnings. + * src/cache/ftcmanag.c (FTC_Manager_LookupSize, + FTC_Manager_LookupFace) : Use FTC_MRULIST_LOOKUP_CMP. + * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after + heavy testing). + + * Jamfile: Updating `refdoc' target, and adding `autohint' to the + list of modules to build. Both the autohinter and autofitter will + be built by default. But which one will be used is determined by + the content of `ftmodule.h'. + + * src/autofit/*: Many updates, but the code is still buggy... + +2004-01-31 Werner Lemberg + + * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of + accent offset. + Update code similarly to the seac support for Type 1 fonts. + (cff_decoder_parse_charstrings) : Fix magnitude + of accent offset. + Don't hint glyphs twice if seac is emulated. + : Assign correct point tags. + * docs/CHANGES: Updated. + +2004-01-30 Werner Lemberg + + * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not + FT_MEM_COPY, for copying the private dict. + + * src/type1/t1load.c (parse_subrs): Assign number of subrs only + in first run. + (parse_charstrings): Parse /CharStrings in second run without + assigning values. + (parse_dict): Skip all /CharStrings arrays but the first. We need + this for non-standard fonts like `Optima' which have different + outlines depending on the resolution. Note that there is no + guarantee that we get fitting /Subrs and /CharStrings arrays; this + can only be done by a real PS interpreter. + +2004-01-29 Antoine Leca + + * builds/win32/visualc/index.html: New file, giving detailed + explanations about forcing CR+LF line endings for the VC++ project + files. + +2004-01-22 Garrick Meeker + + * src/cff/cffload.c (cff_subfont_load): Initialize `dict'. + +2004-01-22 Werner Lemberg + + Add support for the hexadecimal representation of binary data + started with `StartData' in CID-keyed Type 1 fonts. + + * include/freetype/internal/t1types.h (CID_FaceRec): Add new + members `binary_data' and `cid_stream'. + + * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'. + (cid_hex_to_binary): New auxiliary function. + (cid_face_open): Add new argument `face_index' to return quickly + if less than zero. Updated all callers. + Call `cid_hex_to_binary', then open and assign memory stream to + `face->cid_stream' if `parser->binary_length' is non-zero. + * src/cid/cidload.h: Updated. + + * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and + `cid_stream'. + + * src/cid/cidparse.c (cid_parser_new): Check arguments to + `StartData' and set parser->binary_length accordingly. + * src/cid/cidparse.h (CID_Parser): New member `binary_length'. + + * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'. + + * docs/CHANGES: Updated. + +2004-01-21 Werner Lemberg + + include/freetype/config/ftstdlib.h (ft_atoi): Replaced with... + (ft_atol): This. + * src/base/ftdbgmem.c: s/atol/ft_atol/. + * src/type42/t42drivr.c: s/ft_atoi/ft_atol/. + +2004-01-20 Masatake YAMATO + + * include/freetype/ftcache.h: Delete duplicated definition of + FTC_FaceID. + + * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap + Info service function if the cmap comes from sfnt. Return 0 if the + cmap is synthesized in cff module. + +2004-01-20 David Turner + + * src/cache/ftcmanag.c (ftc_size_node_compare): Call + FT_Activate_Size. + +2004-01-20 Werner Lemberg + + * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one + CR, LF, or CR/LF after `eexec'. + +2004-01-18 David Turner + + * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler + warning. + + * src/tools/docmaker/*: Updating beautifier tool. + +2004-01-15 David Turner + + * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix + infinite loop bug. + + * include/freetype/ftstroke.h: Include FT_GLYPH_H. + (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New + declarations. + + * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H. + (FT_Outline_GetOutsideBorder): Inverse result. + (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New + functions. + (FT_Stroker_EndSubPath): Close path if needed. + (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind. + + * include/freetype/cache/ftcmanag.h (FTC_ScalerRec, + FTC_Manager_LookupSize): Moved to... + * include/freetype/ftcache.h (FTC_ScalerRec, + FTC_Manager_LookupSize): Here. + + * src/tools/docmaker/docbeauty.py: New file to beautify the + documentation comments (e.g., to convert them to single block border + mode). + * src/tools/docmaker/docmaker.py (file_exists, make_file_list): + Moved to... + * src/tools/docmaker/utils.py (file_exists, make_file_list): Here. + +2004-01-14 David Turner + + * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY, + FT_ARRAY_MOVE): New macros to make copying arrays easier. + Updated all relevant code to use them. + +2004-01-14 Werner Lemberg + + * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier. + Use number of charstrings as argument to CFF_Load_FD_Select (as + documented in the CFF specs). + +2004-01-13 Graham Asher + + * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of + `glyph->memory' up to free arrays properly in case of failure. + +2004-01-10 Masatake YAMATO + + Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by + Steve Hartwell . + + * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H. + (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP. + (cff_get_cmap_info): New function. + (cff_service_get_cmap_info) New entry for cff_services. + + * src/sfnt/ttcmap0.c: Exit loop after a format match has been found. + Suggested by Steve Hartwell . + +2004-01-03 Masatake YAMATO + + * src/base/ftobjs.c (destroy_charmaps): New function. + (destroy_face, open_face): Use `destroy_charmaps'. + +2004-01-01 Werner Lemberg + + * docs/CHANGES: Updated. + +2004-01-01 Michael Jansson + + * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of + size->metrics.descender. + +2003-12-31 Wolfgang Domröse + + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4. + : Change type of dx and dy to FT_Pos and remove + cast for accessing arguments. + +2003-12-31 Werner Lemberg + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous + change. It's not necessary. + +2003-12-29 Smith Charles + + * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated + flags set' correctly. + +2003-12-29 Werner Lemberg + + * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating + `full' and `weight' properly. + * src/cff/cffgload.c (cff_decoder_parse_charstrings) + [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for + tracing output. + +2003-12-26 Werner Lemberg + + * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func): + Use FT_UInt for ppem values. + * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for + ppem values. + * src/sfnt/ttsbit.h: Updated. + + * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values + larger than -0FFFF. + +2003-12-25 Werner Lemberg + + * src/base/fttrigon.c, src/base/ftgloadr.c: Include + FT_INTERNAL_OBJECTS_H. + + * src/base/ftstroke.c (FT_Outline_GetInsideBorder, + FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with + C++ compilers. + + * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h: + s/select/selection/ to avoid compiler warning. + * src/cff/cffload.h: s/select/ftselect/ to avoid potential + compiler warning. + +2003-12-24 Werner Lemberg + + * src/cache/ftcsbits.c (FTC_SNode_Weight): + s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/. + +2003-12-24 David Turner + + * Fixed compilation problems in the cache sub-system. + + * Partial updates to src/autofit. + + * Jamfile (FT2_COMPONENTS): Add autofit module. + +2003-12-23 Werner Lemberg + + * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle + CID-keyed fonts. + +2003-12-23 David Turner + + * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND, + FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_PIX_CEIL): New macros. + They are used to avoid compiler warnings with very pedantic compilers. + Note that `(x) & -64' causes a warning if (x) is not signed. Use + `(x) & ~63' instead! + Updated all related code. + + Add support for extraction of `inside' and `outside' borders. + + * src/base/ftstroke.c (FT_StrokerBorder): New enumeration. + (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder, + FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions. + (FT_StrokeBorderRec): New boolean member `valid'. + (ft_stroke_border_get_counts): Updated. + * include/freetype/ftstroke.h: Updated. + +2003-12-22 Werner Lemberg + + * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions + to describe the `charset' field in FT_WinFNT_HeaderRec. + * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to + FT_ENCODING_NONE except for FT_WinFNT_ID_MAC. + + * include/freetype/freetype.h (FT_Encoding): Improve comment, + based on work by Detlef Würkner . + + * docs/CHANGES: Updated. + +2003-12-22 David Turner + + * include/freetype/ftcache.h, + include/freetype/cache/ftcmanag.h, + include/freetype/cache/ftccache.h, + include/freetype/cache/ftcmanag.h, + include/freetype/cache/ftcmru.h (added), + include/freetype/cache/ftlru.h (removed), + include/freetype/cache/ftcsbits.h, + include/freetype/cache/ftcimage.h, + include/freetype/cache/ftcglyph.h, + src/cache/ftcmru.c, + src/cache/ftcmanag.c, + src/cache/ftccache.c, + src/cache/ftcglyph.c, + src/cache/ftcimage.c, + src/cache/ftcsbits.c, + src/cache/ftccmap.c, + src/cache/ftcbasic.c (added), + src/cache/ftlru.c (removed): + + *Complete* rewrite of the cache sub-system to `solve' the + following points: + + - all public APIs have been moved to FT_CACHE_H, everything + under `include/freetype/cache' is only needed by client + applications that want to implement their own caches + + - a new function named FTC_Manager_RemoveFaceID to deal + with the uninstallation of FaceIDs + + - the image and sbit cache are now abstract classes, that + can be extended much more easily by client applications + + - better performance in certain areas. Further optimizations + to come shortly anyway... + + - the FTC_CMapCache_Lookup function has changed its signature, + charmaps can now only be retrieved by index + + - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace + FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in + private header for the moment) + +2003-12-21 Werner Lemberg + + * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword + is encountered. + +2003-12-19 Werner Lemberg + + * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For + example, the Japanese Hiragino font already contains 15 subfonts. + + * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for + CID-keyed fonts. + + * devel/ftoption.h: Define FT_DEBUG_MEMORY. + +2003-12-18 Werner Lemberg + + * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro. + * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values. + +2003-12-18 Werner Lemberg + + * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of + `cid_count' to `FT_ULong'. + + * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids' + array. + + * src/cff/cffload.c (cff_charset_done): Free `cids' array. + (cff_font_load): Create cids array only for CID-keyed fonts which + are subsetted. + + * src/cff/cffobjs.c (cff_face_init): Check the availability of + the PSNames modules for non-pure CFFs also. + Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't + CID-keyed. + + * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h. + +2003-12-17 Werner Lemberg + + * src/sfnt/sfobjs.c (sfnt_init_face): Don't set + FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post' + table. + + * docs/CHANGES: Updated. + +2003-12-17 Masatake YAMATO + + Add new function FT_Get_CMap_Language_ID to extract the language ID + for TrueType/sfnt fonts. + + * include/freetype/internal/services/svttcmap.h: New file. + * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add + svttcmap.h. + + * src/sfnt/sfdriver.c: Include ttcmap0.h. + (tt_service_get_cmap_info): New service. + (sfnt_services): Updated. + + * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions. + (tt_cmap*_class_rec): Add tt_cmap*_get_info members. + (tt_get_cmap_info): New function. + * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H. + (TT_CMap_ClassRec): New field `get_cmap_info'. + (tt_get_cmap_info): New declaration. + + * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H. + (FT_Get_CMap_Language_ID): New function implementation. + * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New + function declaration. + +2003-12-16 Werner Lemberg + + * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete. + + * include/freetype/internal/sfnt.h (SFNT_Interface): Remove + obsolete fields `load_charmap' and `free_charmap'. + (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed. + * src/sfnt/sfnt.c: Don't include ttcmap.c. + * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c. + * src/sfnt/ttload.c: Don't include ttcmap.h. + * src/sfnt/sfdriver.c: Don't include ttcmap.h. + (sfnt_interface): Updated. + + * include/freetype/internal/tttypes.h (TT_TableDirRec, + TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec, + TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6, + TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func, + TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed. + Obsolete. + * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete. + +2003-12-15 Werner Lemberg + + * docs/CHANGES: Updated. + +2003-12-15 Wolfgang Domröse + + * builds/atari/*: New directory for building FreeType 2 on Atari + with the PureC compiler. + +2003-12-12 Wolfgang Domröse + + * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add + cast. + * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return + value is either 0 or 1. + +2003-12-12 Werner Lemberg + + * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message. + (cff_get_name_index): Return if no PSNames service is available. + (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly. + * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for + CID-keyed fonts. This is the inverse mapping of `sids'. + * src/cff/cffload.c (cff_charset_load): New argument `invert'. + Initialize charset->cids if `invert' is set. + (cff_font_load): In call to cff_charset_load, set `invert' to true + for CID-keyed fonts. + * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID + and map it to the real glyph index. + + * docs/CHANGES: Updated. + +2003-12-11 Werner Lemberg + + * src/cff/cffobjs.c (cff_face_init): Don't set + FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts. + Don't construct a cmap for CID-keyed fonts. + +2003-12-10 Werner Lemberg + + Use implementation specific SID value 0xFFFF to indicate that + a dictionary element is missing. + + * src/cff/cffload.c (cff_subfont_load): Initialize all fields + which hold SIDs to 0xFFFF. + (cff_index_get_sid_string): Handle SID value 0xFFFF. + Handle case where `psnames' is zero. + (cff_font_load): Updated. + Don't load encoding for CID-keyed CFFs. + + * src/cff/cffobjs.c (cff_face_init): Updated. + Don't check for PSNames module if font is CID-keyed. + Compute style name properly (using the same algorithm as in the + CID driver). + Fix computation of style flags. + + * src/cff/cfftoken.h: Comment out handling of base_font_name. + Rename `postscript' field to `embedded_postscript' + * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name' + and `postscript'. + +2003-12-10 Detlef Würkner + + * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone + of the similar BDF function). + (pcf_service_bdf): Use it. + +2003-12-09 Werner Lemberg + + * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES + only if a `post' table is present. + +2003-12-09 George Williams + + * src/base/ftobjs.c (load_mac_face): Recent versions of Linux + support Mac's HFS+ file system, thus enable code to read /rsrc on + non-Macintosh platforms also. + +2003-12-08 Werner Lemberg + + * include/freetype/internal/psaux.h (PS_TableRec): Change type + of `lengths' to FT_PtrDist. + (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist. + * include/freetype/internal/t1types.h (T1_FontRec): Change type + of `subrs_len' and `charstrings_len' to FT_PtrDist. + + * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk' + variable with better solution. + (IsMacResource): Remove unused variable `map_len'. + Replace `junk' variable with better solution. + (FT_Open_Face) [!FT_MACINTOSH]: Add conditional + FT_CONFIG_OPTION_MAC_FONTS. + +2003-12-08 Wolfgang Domröse + + * src/autohint/ahhint.c (ah_hinter_hint_edges, + ah_hinter_align_strong_points): Add some casts. + + * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type + of `pos' to FT_Long. + + * src/base/ftobjs.c (Mac_Read_POST_Resource, + Mac_Read_sfnt_Resource): Change type of `len' to FT_Long. + + * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'. + +2003-12-07 Werner Lemberg + + * docs/raster.txt: New file, taken from FreeType 1 and completely + revised. + +2003-12-04 Masatake YAMATO + + * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for + t1_interface. t1_interface is used. + +2003-11-27 David Turner + + * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of + 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are + the scaling values for outline units, not for metric units. + +2003-11-25 Werner Lemberg + + * src/base/ftcalc.c, include/freetype/internal/ftcalc.h + (FT_MulDiv_No_Round): Surround code with `#ifdef + TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'. + +2003-11-23 Werner Lemberg + + * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and + 64 bit version). + * include/freetype/internal/ftcalc.h: Updated. + + * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro. + (TT_INT64): Removed. + (DO_DIV): Use TT_MULDIV_NO_ROUND. + + * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use + metrics->x_scale and metrics->y_scale. + +2003-11-22 Rogier van Dalen + + * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro. + (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New + functions. Similar to Direct_Move, Direct_Move_X, and + Direct_Move_Y but without touching. + (Compute_Funcs): Use new functions. + + (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, + Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, + Round_Super_45): Fix rounding of value zero. + + (DO_DIV): Don't use TT_MULDIV. + + (Ins_SHC): This instruction actually touches the points. + (Ins_MSIRP): Fix undocumented behaviour. + + * src/truetype/ttinterp.h (TT_ExecContextRec): Updated. + +2003-11-22 Werner Lemberg + + * docs/VERSION.DLL, docs/CHANGES: Updated. + + * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and + metrics->y_scale really precise. + + (FT_Load_Glyph): Update computation of linearHoriAdvance and + linearVertAdvance. + + * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC. + +2003-11-22 David Turner + + * src/autofit/*: More updates. + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. + * builds/unix/configure.ac (version_info): Set to 9:6:3. + * README: Updated. + +2003-11-13 John A. Boyd Jr. + + * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c + (pcf_interpret_style): Replace spaces with dashes in properties + SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing. + +2003-11-11 Werner Lemberg + + * docs/CHANGES: Updated. + +2003-11-11 John A. Boyd Jr. + + Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF + fonts. + + * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function. + (BDF_Face_Init): Don't handle style properties but call + bdf_interpret_style. + + * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function. + (pcf_load_font): Don't handle style properties but call + pcf_interpret_style. + +2003-11-07 Werner Lemberg + + + * Version 2.1.7 released. + ========================= + + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. + + * builds/unix/ft2unix.h: Fix comments. + + * builds/unix/ftconfig.in: Synchronized with ANSI version. + Use `#undef' in templates as recommended in the autoconf + documentation. + Since real `#undef' lines don't survive during configuration, use + `/undef' instead; the postprocessing facility of the + AC_CONFIG_HEADERS autoconf macro converts them to `#undef'. + + * builds/unix/install.mk (install): Install Unix version of + `ftconfig.h'. + + * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro + to include the correct `ftconfig.h' file. + + * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed. + (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59. + + * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59. + + * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of + AC_CONFIG_HEADER to create ftconfig.h, and use second argument + to replace `/undef' with `#undef'. + Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap. + Use AS_HELP_STRING in AC_ARG_WITH. + Update syntax to autoconf 2.59. + + * builds/unix/ltmain.sh: Regenerated with `libtoolize --force + --copy' from libtool 1.5. + * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from + automake 1.7.8. + * builds/unix/configure: Regenerated with autoconf 2.59. + * builds/unix/config.guess, builds/unix/config.sub: Updated from + `config' CVS module at subversions.gnu.org + * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from + `texinfo' CVS module at subversions.gnu.org. + + * builds/vms/ftconfig.h: Synchronized with ANSI version. + + * docs/CUSTOMIZE: Fix documentation error. + * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated. + + * builds/freetype.mk (refdoc): Updated --title. + +2003-11-07 David Turner + + + * Version 2.1.6 released. + ========================= + + + * install: Removed. Obsolete. + +2003-11-04 Werner Lemberg + + * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H. + (sfnt_service_sfnt_table): New service. + (sfnt_services): Updated. + + * docs/license.txt: Reworded. + +2003-11-03 Werner Lemberg + + * include/freetype/*: Add a guard to all public header files which + load FT_FREETYPE_H to reject freetype.h from FreeType 1. + +2003-11-02 Patrick Welche + + * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect + first argument of AC_DEFUN with brackets to avoid possible + expansion. + +2003-11-02 Werner Lemberg + + * include/freetype/cache/ftcglyph.h: Don't include stddef.h. + + * include/freetype/freetype.h: Fix check for ft2build.h. + +2003-11-01 Werner Lemberg + + * include/freetype/freetype.h: Check that ft2build.h has been + loaded first. + + * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied + patch. + +2003-10-31 Detlef Würkner + + * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): + Fix parameter order in calls to FT_FACE_FIND_SERVICE. + +2003-10-31 Werner Lemberg + + * include/freetype/internal/ftserv.h + (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused. + + * src/type42/t42drivr.c (t42_services): Updated. + +2003-10-29 David Turner + + * include/freetype/internal/bdftypes.h: Removed. Obsolete. + * src/base/ftbdf.c: Updated. + + * include/freetype/internal/cfftypes.h: Moved to... + * src/cff/cfftypes.h: This place since no other module needs to + know about those types. + + * include/freetype/internal/t42types.h: Moved to... + * src/type42/t42types.h: This place since no other module needs to + know about those types. + + * include/freetype/internal/services/svbdf.h: Include FT_BDF_H. + + * include/freetype/internal/services/svpsname.h: Renamed to... + * include/freetype/internal/services/svpscmap.h: This. + Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and + `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere. + + * include/freetype/internal/services/svpsinfo.h: New file, providing + PostScript info service. + + * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H, + FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and + svpsinfo.h. + * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H, + FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed. + + * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and + FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and + FT_SERVICE_POSTSCRIPT_INFO_H. + (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new + POSTSCRIPT_INFO service. + + * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (cff_ps_has_glyph_names): New function. + (cff_service_ps_info): New service. + (cff_services): Updated. + + * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't + include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly. + + * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (cid_ps_get_font_info): New function. + (cid_service_ps_info): New service. + (cid_services): Updated. + + * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions. + (t1_service_ps_info): New service. + (t1_services): Updated. + + * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. + (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions. + (t42_service_ps_info): New service. + + * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H + but t42types.h directly. + + * src/psnames/psmodule.c (psnames_interface, psnames_services): + Renamed to... + (pscmaps_interface, pscmaps_services): This. + Updated all users. + + + * src/gzip/infblock.c (inflate_blocks): Remove compiler warning. + +2003-10-22 Werner Lemberg + + * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'. + + * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec' + is real. + + * src/type42/t42parse.c (t42_parse_encoding): Improve boundary + checking while parsing. + + * docs/CHANGES: Updated. + +2003-10-21 Josselin Mouette + + * include/freetype/internal/t1types.h (T1_FontRec): `paint_type' + and `stroke_width' aren't pointers. + + * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c + (T1_Face_Done): Don't free `paint_type' and `stroke_width'. + +2003-10-20 Graham Asher + + * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'. + +2003-10-19 Werner Lemberg + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from + 2003-08-18 introduced a severe bug (FT_Render_Glyph was called + twice under some circumstances, causing strange results). This + is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'. + + * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'. + * src/psaux/psobjs.c (ps_tobytes): Initialize `n'. + * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'. + +2003-10-16 Werner Lemberg + + Completely revised Type 42 parser. It now handles both fonts + produced with ttftot42 (tested version 0.3.1) and + TrueTypeToType42.ps (tested version May 2001; it is necessary to + fix the broken header comment to be `%!PS-TrueTypeFont...'). + + * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth + parameter to `FT_UInt'. + * src/type42/t42objs.h: Updated. + + * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory' + to FT_Bool. + (T42_Loader): Change type of `num_chars' and `num_glyphs' to + FT_UInt. + Add `swap_table' element. + * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed, + T1_ToCoordArray, T1_ToTokenArray): Removed. + (T1_ToBytes): New macro. + (t42_is_alpha, t42_hexval): Removed. + (t42_is_space): Handle `\0'. + (t42_parse_encoding): Updated to use new PostScript parser routines + from psaux. + Handle `/Encoding [ ... ]' also. + (T42_Load_Status): New enumeration. + (t42_parse_sfnts): Updated to use new PostScript parser routines + from psaux. + (t42_parse_charstrings): Updated to use new PostScript parser + routines from psaux. + Handle `/CharStrings << ... >>' also. + Don't expect that /.notdef is the first element in dictionary. Copy + code from type1 module to handle this. + (t42_parse_dict): Updated to use new PostScript parser routines + from psaux. + Remove code for synthetic fonts (which can't occur in Type 42 + fonts). + (t42_loader_done): Release `swap_table'. + + * src/psaux/psobjs.c (skip_string): Increase `cur' properly. + + * src/type1/t1load.c (parse_charstrings): Make test for `.notdef' + faster. + +2003-10-15 Graham Asher + + * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c + (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty, + _num_bdf_properties), src/gzip/infutil.c (inflate_mask), + src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td), + src/gzip/inftrees.h (inflate_trees_fixed), src/gzip/inftrees.c + (inflate_trees_fixed): Decorate with more `const' to avoid + writable global variables which are disallowed on ARM. + +2003-10-08 Werner Lemberg + + * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove + code specially for synthetic fonts; this is handled elsewhere. + (parse_encoding): Remove code specially for synthetic fonts; this is + handled elsewhere. + Improve boundary checking while parsing. + (parse_dict): Improve boundary checking while parsing. + Use ft_memcmp to simplify code. + +2003-10-07 Werner Lemberg + + * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic + fonts properly. + (parse_charstrings): Copy correct number of characters into + `name_table'. + +2003-10-06 Werner Lemberg + + Heavy modification of the PS parser to handle comments and strings + correctly. This doesn't slow down the loading of PS fonts + significantly since charstrings aren't affected. + + * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to... + (ft_isxdigit): This. Updated all callers. + (ft_isdigit): New alias to `isdigit'. + + * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed + `skip_alpha' to `skip_PS_token'. + Add parameter to `to_bytes' and change some argument types. + + * src/psaux/psauxmod.c (ps_parser_funcs): Updated. + * src/psaux/psobjs.c (ft_char_table): New array to map character + codes (ASCII and EBCDIC) of digits to numbers. + (OP): New auxiliary macro holding either `>=' or `<' depending on + the character encoding. + (skip_comment): New function. + (skip_spaces): Use it. + (skip_alpha): Removed. + (skip_literal_string, skip_string): New functions. + (ps_parser_skip_PS_token): New function. This is a better + replacement of... + (ps_parser_skip_alpha): Removed. + (ps_parser_to_token, ps_parser_to_token_array): Updated. + (T1Radix): Rewritten, using `ft_char_table'. + (t1_toint): Renamed to... + (ps_toint): This. Update all callers. + Use `ft_char_table'. + (ps_tobytes): Add parameter to handle delimiters and change some + argument types. + Use `ft_char_table'. + (t1_tofixed): Renamed to... + (ps_tofixed): This. Update all callers. + Use `ft_char_table'. + (t1_tocoordarray): Renamed and updated to... + (ps_tocoordarray): This. Update all callers. + (t1_tofixedarray): Renamed and updated to... + (ps_tofixedarray): This. Update all callers. + (t1_tobool): Renamed to... + (ps_tobool): This. Update all callers. + (ps_parser_load_field): Updated. + (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS' + everywhere. + (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array, + ps_parser_to_fixed_array): Skip spaces. Updated. + (ps_parser_to_bytes): Add parameter to handle delimiters and change + some argument types. Updated. + * src/psaux/psobjs.h: Updated. + + * src/cid/cidload.c (cid_parse_dict): Updated. + * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData' + token was really found. + * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed + to... + (cid_parser_skip_PS_token): This. + + * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean + fields. + (T1_Skip_Alpha): Replaced with... + (T1_Skip_PS_Token): This new macro. + * src/type1/t1parse.c (hexa_value): Removed. + (T1_Get_Private_Dict): Use `ft_isxdigit' and + `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal + encoding. + After decrypting, replace the four random bytes at the beginning + with whitespace. + * src/type1/t1load.c (t1_allocate_blend): Use proper error values. + (parser_blend_design_positions, parse_blend_design_map, + parse_weight_vector): Updated. + (is_space): Handle `\f' also. + (is_name_char): Removed. + (read_binary_data): Updated. + (parse_encoding): Use `ft_isdigit'. + Updated. + (parse_subrs): Updated. + (TABLE_EXTEND): New macro. + (parse_charstrings): Updated. + Provide a workaround for buggy fonts which have more entries in the + /CharStrings dictionary then expected; the function now adds some + slots and skips entries which still exceed the new limit. + (parse_dict): Updated. + Terminate on the token `closefile'. + + * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with... + (T1_Skip_PS_Token): This new macro. Updated all callers. + (t42_parse_encoding): Use `ft_isdigit'. + + + * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_Ok if + success. + +2003-10-05 Werner Lemberg + + * include/freetype/ftmodule.h: Renamed to... + * include/freetype/ftmodapi.h: This to avoid duplicate file names. + * include/freetype/config/ftheader.h (FT_MODULE_H): Updated. + +2003-10-04 Werner Lemberg + + * src/base/ftoutln.c (FT_OrientationExtremumRec, + FT_Outline_Get_Orientation): Trivial typo fixes to make it compile. + +2003-10-02 Markus F.X.J. Oberhumer + + * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset' + has four bytes, not two. + Fix all users. + (fnt_font_load, FNT_Load_Glyph): Add more font validity tests. + +2003-10-01 David Turner + + * src/autofit/*: Adding first source files of the new multi-script + `auto-fitter'. + + * include/freetype/ftoutln.h (FT_Orientation): New enumeration. + (FT_Outline_Get_Orientation): New declaration. + + * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure. + (ft_orientation_extremum_compute): New auxiliary function. + (FT_Outline_Get_Orientation): New function to compute the fill + orientation of a given glyph outline. + + * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed + trivial bug which could crash the font engine when a cached service + pointer was retrieved. + +2003-09-30 Werner Lemberg + + * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is + found. + + * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE, + IS_T1_SPACE): Removed. + (PFB_Tag): Removed. + (read_pfb_tag): Don't use PFB_Tag. + + * src/type42/t42parse.c (t42_is_space): Handle `\f' also. + (t42_parse_encoding): Handle synthetic fonts. + +2003-09-29 Werner Lemberg + + * include/freetype/internal/t1types.h: Don't include + FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H. + * src/truetype/ttobjs.c: Don't include + FT_SERVICE_POSTSCRIPT_NAMES_H. + +2003-09-29 David Turner + + Added new service to handle glyph name dictionaries, replacing the + old internal header named `psnames.h' by `services/svpsname.h'. + Note that this is different from `services/svpostnm.h' which only + handles the retrieval of PostScript font names for a given face. + (Should we merge these two services into a single header?) + + * include/freetype/internal/psnames.h: Removed. Most of its + contents is moved to... + * include/freetype/internal/services/svpsname.h: New file. + + * include/freetype/internal/services/svpostnm.h + (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with... + (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro. + (PsName): Service named changed to... + (PsFontName): This. + Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and + `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere. + + * include/freetype/internal/internal.h + (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed. + * include/freetype/internal/psaux.h: Include + FT_SERVICE_POSTSCRIPT_NAMES_H. + (T1_DecoderRec): Updated type of `psnames'. + * include/freetype/internal/t1types.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + Include FT_INTERNAL_OBJECTS_H. + * include/freetype/internal/t42types.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H. + * include/freetype/internal/tttypes.h (TT_FaceRec): Updated. + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed + order of parameters. All callers updated. + (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service + globally, checking all modules. + (FT_ServiceCacheRec): Updated. + (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing + `svpsname.h'. + + * include/freetype/internal/ftobjs.h, src/base/ftobjs.c + (ft_module_get_service): New function. + + * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES + service. + * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated. + * src/cff/cffload.c, src/cff/cffload.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cff_index_get_sid_string): Updated. + * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cff_face_init): Use new POSTSCRIPT_NAMES service. + * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + + * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (cid_face_init): Use new POSTSCRIPT_NAMES service. + * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. + + * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use + new POSTSCRIPT_NAMES service. + * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode, + t1_decode_init): Use new POSTSCRIPT_NAMES service. + * src/psaux/t1cmap.h, src/psaux/t1decode.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H. + + * src/psnames/psmodule.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + (ps_build_unicode_table): Renamed to... + (ps_unicodes_init): This. + (ps_lookup_unicode): Renamed to... + (ps_unicodes_char_index): This. + (ps_next_unicode): Renamed to... + (ps_unicodes_char_next): This. + (psnames_interface): Updated. + (psnames_services): New services list. + (psnames_get_service): New function. + (psnames_module_class): Updated. + + * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (sfnt_init_face): Use new POSTSCRIPT_NAMES service. + * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H + but FT_SERVICE_POSTSCRIPT_NAMES_H. + (tt_face_get_ps_name): Updated. + + * src/truetype/ttobjs.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + + * src/type1/t1driver.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + * src/type1/t1objs.c: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + (T1_Face_Init): Use new POSTSCRIPT_NAMES service. + + * src/type42/t42drivr.c (t42_get_ps_name): Renamed to... + (t42_get_ps_font_name): This. + (t42_service_ps_name): Renamed to... + (t42_service_ps_font_name): This. + (t42_services): Updated. + * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES + service. + * src/type42/t42objs.h: Don't include + FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. + + + * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before + testing its validity. Reported by Henry Maddocks + . + +2003-09-21 Werner Lemberg + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): + Fix compilation warning (s/pptr/Pptr/). + + * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H, + FT_INTERNAL_FNT_TYPES_H): Removed. + +2003-09-21 David Turner + + Migrating the PFR and WINFNT drivers to the new service-based + internal API. + + * include/freetype/internal/fnttypes.h: Removed. Most of its data + are moved to winfnt.h and... + * include/freetype/internal/services/svwinfnt.h: New file. + + * include/freetype/internal/pfr.h: Removed. Most of its data are + moved to... + * include/freetype/internal/services/svpfr.h: New file. + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, + FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing + pointer type argument. + Updated all callers. + Update macro names of services header files. + + * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code. + + * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of + FT_INTERNAL_PFR_H. + (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning, + FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'. + + * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of + FT_INTERNAL_FNT_TYPES_H. + (FT_Get_WinFNT_Header): Use service provided in `WINFNT'. + + * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and + FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H. + (pfr_service_bdf): Updated. + (pfr_services): New services list. + (pfr_get_service): New function. + (pfr_driver_class): Updated. + + * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and + FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H. + (winfnt_get_header, winfnt_get_service): New functions. + (winfnt_service_rec): New structure providing WINFNT services. + (winfnt_services): New services list. + (winfnt_driver_class): Updated. + * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data. + + * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo. + + * src/type1/t1driver.c (t1_service_ps_name): Fix typo. + + * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c, + src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c, + src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler + warnings. + +2003-09-19 David Bevan + + * src/type1/t1parse.c (pfb_tag_fields): Removed. + (read_pfb_tag): Fix code so that it doesn't fail on end-of-file + indicator (0x8003). + * docs/CHANGES: Updated. + +2003-09-16 Werner Lemberg + + * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, + FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type. + Ugly, I know, but this is needed for compilation with C++ -- + maybe someone knows a better solution? + Updated all callers. + + * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove + C++ compiler warnings. + + * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): + Fix order of arguments passed to FT_FACE_FIND_SERVICE. + +2003-09-15 Werner Lemberg + + Avoid header files with identical names. + + * include/freetype/internal/services/bdf.h: Renamed to... + * include/freetype/internal/services/svbdf.h: This. + Add copyright notice. + * include/freetype/internal/services/glyfdict.h: Renamed to... + * include/freetype/internal/services/svgldict.h: This. + Add copyright notice. + * include/freetype/internal/services/multmast.h: Renamed to... + * include/freetype/internal/services/svmm.h: This. + Add copyright notice. + Add FT_BEGIN_HEADER and FT_END_HEADER. + * include/freetype/internal/services/sfnt.h: Renamed to... + * include/freetype/internal/services/svsfnt.h: This. + Add copyright notice. + * include/freetype/internal/services/postname.h: Renamed to... + * include/freetype/internal/services/svpostnm.h: This. + Add copyright notice. + * include/freetype/internal/services/xf86name.h: Renamed to... + * include/freetype/internal/services/svxf86nm.h: This. + Add copyright notice. + + * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and + FT_END_HEADER. + Add copyright notice. + Update macro names of services header files. + + * builds/freetype.mk (SERVICES_DIR): New variable. + (BASE_H): Add services header files. + +2003-09-11 Werner Lemberg + + * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'. + + * src/cff/cffdrivr.c: Don't load headers twice. + + * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro. + * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H. + + * src/cff/cffcmap.c: Include `cfferrs.h'. + * src/pfr/pfrdrivr.c: Include `pfrerror.h'. + * src/sfnt/sfdriver.c: Include `sferrors.h'. + * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'. + +2003-09-11 David Turner + + Introducing the concept of `module services'. This is the first + step towards a massive simplification of the engine's internals, in + order to get rid of various numbers of hacks. + + Note that these changes will break source & binary compatibility for + authors of external font drivers. + + * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT, + FT_DUMMY_STMNT): New macros. + + * include/freetype/internal/ftserv.h: New file, containing the new + structures and macros to provide `services'. + + * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H, + FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H): + Removed, obsolete. + (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'. + + * include/freetype/internal/services/bdf.h, + include/freetype/internal/services/glyfdict.h, + include/freetype/internal/services/postname.h, + include/freetype/internal/services/xf86name.h: New files. + + * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func, + FT_Set_MM_Blend_Func): Function pointers moved (in modified form) + to... + * include/freetype/internal/services/multmast.h: New file. + + * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface' + is now of type `FT_Module_Requester'. + (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers + moved (in modified form) to... + * include/freetype/internal/services/sfnt.h: New file. + + * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function + pointer moved (in modified form) to `services/sfnt.h'. + + * include/freetype/ftmodule.h (FT_Module_Interface): Make it a + a typedef to `FT_Pointer'. + + * include/freetype/internal/tttypes.h (TT_FaceRec): Add + `postscript_name'. + * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove + `postscript_name'. + Add `services' element. + (FT_LibraryRec): Remove `meta_class'. + + * src/base/ftbdf.c: Include FT_SERVICE_BDF_H. + (test_font_type): Removed. + (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services + provided in `FT_SERVICE_ID_BDF'. + + * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. + (ft_face_get_mm_service): New auxiliary function to get services + from `FT_SERVICE_ID_MULTI_MASTERS'. + (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates, + FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'. + + * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and + FT_SERVICE_GLYPH_DICT_H. + (ft_service_list_lookup): New function to get a specific service. + (destroy_face): Updated. + (Mac_Read_POST_Resource): Simplify some code. + (IsMacResource): Fix warnings. + (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in + `FT_SERVICE_ID_GLYPH_DICT'. + (FT_Get_Postscript_Name): Use service provided in + `FT_SERVICE_ID_POSTSCRIPT_NAME'. + (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in + `FT_SERVICE_ID_SFNT_TABLE'. + + * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H. + (FT_Get_X11_Font_Format): Use service provided in + `FT_SERVICE_ID_XF86_NAME'. + + * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and + FT_SERVICE_XFREE86_NAME_H. + (bdf_get_charset_id): New function. + (bdf_service_bdf): New structure providing BDF services. + (bdf_services): New services list. + (bdf_driver_requester): Use `ft_service_list_lookup'. + + * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and + FT_SERVICE_GLYPH_DICT_H. + (cff_service_glyph_dict): New structure providing CFF services. + (cff_services): New services list. + (cff_get_interface): Use `ft_service_list_lookup'. + + * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and + FT_SERVICE_XFREE86_NAME_H. + (cid_service_ps_name): New structure providing CID services. + (cid_services): New services list. + (cid_get_interface): Use `ft_service_list_lookup'. + + * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and + FT_SERVICE_XFREE86_NAME_H. + (pcf_service_bdf): New structure providing PCF services. + (pcf_services): New services list. + (pcf_driver_requester): Use `ft_service_list_lookup'. + + * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and + FT_SERVICE_POSTSCRIPT_NAME_H. + (get_sfnt_glyph_name): Renamed to... + (sfnt_get_glyph_name): This. + (get_sfnt_postscript_name): Renamed to... + (sfnt_get_ps_name): This. + Updated. + (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures + providing services. + (sfnt_services): New services list. + (sfnt_get_interface): Use `ft_service_list_lookup'. + + * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H. + (tt_services): New services list. + (tt_get_interface): Use `ft_service_list_lookup'. + + * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H, + FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and + FT_SERVICE_POSTSCRIPT_NAME_H. + (t1_service_glyph_dict, t1_service_ps_name, + t1_service_multi_masters): New structures providing Type 1 services. + (t1_services): New services list. + (Get_Interface): Use `ft_service_list_lookup'. + + * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H, + FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H. + (t42_service_glyph_dict, t42_service_ps_name): New structures + providing Type 42 services. + (t42_services): New services list. + (T42_Get_Interface): Use `ft_service_list_lookup'. + + + * README, docs/CHANGES: Updating version numbers for 2.1.6, and + removing obsolete warnings in the documentation. + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. + * builds/unix/configure.ac (version_info): Set to 9:5:3. + * builds/unix/configure: Regenerated. + + * include/freetype/internal/ftcore.h, + include/freetype/internal/ftexcept.h, + include/freetype/internal/fthash.h, + include/freetype/internal/ftobject.h: Removed. Obsolete. + +2003-09-09 David Turner + + Fixing PFR kerning support. The tables within the font file contain + (charcode,charcode) kerning pairs, we need to convert them to + (gindex,gindex). + + * src/base/ftpfr.c (ft_pfr_check): Fix serious typo. + * src/pfr/pfrload.c: Remove dead code. + (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs): + New functions. + (pfr_phy_font_done): Free `kern_pairs'. + (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'. + * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction. + * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro. + (PFR_KernPairRec): Make `kerning' an FT_Int. + (PFR_PhyFontRec): New element `kern_pairs'. + (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and + PFR_KERN_2BYTE_ADJ were erroneously reversed. + + * include/freetype/ftoption.h: Commenting out the macro + TT_CONFIG_OPTION_BYTECODE_INTERPRETER. + +2003-09-02 David Turner + + + * Version 2.1.5 released. + ========================= + + +2003-08-31 Manish Singh + + * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but + FT_MEM_MOVE. + +2003-08-30 Werner Lemberg + + * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312, + FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New + enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except + FT_ENCODING_MS_SYMBOL are now deprecated. + Updated all users. + * docs/CHANGES: Document it. + +2003-08-27 Werner Lemberg + + * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters + for spacing. + +2003-08-27 Mike FABIAN + + * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c + (BDF_Face_Init): Accept lowercase characters for slant and weight. + +2003-08-18 David Turner + + * include/freetype/config/ftoption.h: Disabling TrueType bytecode + interpreter until the UNPATENTED_HINTING works as advertised. + + * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for + setting `load_flags'. + + * Jamfile: Adding the `refdoc' target to the Jamfile in order to + build the API Reference in `docs/reference' automatically. + + * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h, + src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of + `italic_angle', `underline_position', and `underline_thickness' to + their previous values (i.e., long, short, and ushort) in order to + avoid breaking binary compatibility. + + * include/freetype/ttunpat.h: Fixing documentation comment. + + * include/freetype/config/ftoption.h, devel/ftoption.h + (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING): Replaced with... + (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users. + (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed. + + * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed. + (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with + `FT_Set_Debug_Hook' to get the same effect as the removed + TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. + + * src/truetype/ttobjs.c (tt_face_init): Use + `FT_DEBUG_HOOK_UNPATENTED_HINTING'. + +2003-08-06 Werner Lemberg + + * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c + (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix + previous change. + +2003-08-05 Werner Lemberg + + * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c + (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply + font matrix to advance width also. + * docs/CHANGES: Updated. + +2003-07-26 Werner Lemberg + + * builds/unix/configure.ac (version_info): Set to 9:4:3. + * builds/unix/configure: Updated. + * docs/CHANGES, docs/VERSION.DLL: Updated. + + * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16 + also breaks binary compatibility. Reintroduce an unsigned integer + at the old position of `flags' called `reserved'. + +2003-07-25 Werner Lemberg + + Make API reference valid HTML 4.01 transitional. + + * src/tools/docmaker/tohtml.py (html_header_1): Add doctype + and charset. + (html_header_2): Fix style elements and add some more. + Fix syntax. + (block_header, block_footer, description_header, description_footer, + marker_header, marker_footer, source_header, source_footer, + chapter_header): Don't use
...
but `align=center' + table attribute. + (chapter_inter, chapter_footer): Add
  • and use special