123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352 |
- 2018-05-01 Werner Lemberg <wl@gnu.org>
- * 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 <wl@gnu.org>
- 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 <bungeman@google.com>
- [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 <wl@gnu.org>
- * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
- 2018-04-22 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org
- [autofit] Add support for Georgian Mtavruli characters.
- This will be part of the forthcoming Unicode 11.0.
- * src/autofit/afblue.dat: Add blue zone data for Mtavruli.
- * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
- * src/autofit/afscript.h: Add Mtavruli standard character.
- 2018-04-18 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <madigens@gmail.com>
- * 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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <bungeman@google.com>
- * 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 <wl@gnu.org>
- * 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 <ramakrishnan.nikhil@gmail.com>.
- 2018-03-30 Werner Lemberg <wl@gnu.org>
- [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 <bungeman@google.com>
- [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 <bungeman@google.com>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
- overflow.
- 2018-03-13 Werner Lemberg <wl@gnu.org>
- 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 <madigens@gmail.com>
- * CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
- 2018-03-09 Chun-wei Fan <fanc999@yahoo.com.tw>
- * 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 <hugh.mcmaster@outlook.com>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
- 2018-02-23 Werner Lemberg <wl@gnu.org>
- * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer.
- Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>.
- 2018-02-17 Werner Lemberg <wl@gnu.org>
- [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154).
- 2018-02-06 Werner Lemberg <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
- 2018-01-27 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <bungeman@google.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- * src/base/ftver.rc: Fix mingw-w64 compilation.
- 2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <ssrobins@gmail.com>
- * CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
- 2018-01-10 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Correctly handle Flex features (#52846).
- * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
- cf2_cmdHMOVETO>: Do not move if doing Flex.
- 2018-01-09 Alexei Podtelezhnikov <apodtele@gmail.com>
- * builds/windows/vc2010/freetype.sln: Synchronize with the project.
- 2018-01-08 Werner Lemberg <wl@gnu.org>
- * 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 <wl@gnu.org>
- 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 <ewaldhew@gmail.com>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <apodtele@gmail.com>
- 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 <apodtele@gmail.com>
- * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
- [_MSC_VER]: Limit Visual C++ attributes.
- 2018-01-03 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- Synchronize other Windows project files.
- * builds/windows/*: Add missing files.
- 2017-12-31 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- * builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file.
- 2017-12-28 Werner Lemberg <wl@gnu.org>
- * builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file.
- Reported by Nikolaus.
- 2017-12-27 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <ewaldhew@gmail.com>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <matthias.clasen@gmail.com>
- [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 <wl@gnu.org>
- * src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff.
- 2017-12-18 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688).
- 2017-12-18 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <jfkthame@gmail.com>
- [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 <jfkthame@gmail.com>
- 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 <apodtele@gmail.com>
- * builds/windows/vc2010/freetype.vcxproj: AfterBuild copy.
- * objs/.gitignore: Ignore almost everything.
- 2017-12-11 Werner Lemberg <wl@gnu.org>
- Fix compiler warning (#52640).
- * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused
- variable.
- 2017-12-08 Azzuro <azzuro@team-mediaportal.com>
- * builds/windows/vc2010/freetype.vcxproj: Adjust output directory.
- This allows builds with different configurations in parallel.
- 2017-12-08 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- [docmaker] Fix code section parsing.
- Stuff like
- {
- <bla>
- }
- confused the parser, which incorrectly treated `<bla>' 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- Fix `make setup dos' (#52622).
- * builds/detect.mk (dos_setup): Properly escape literal `>'
- character.
- 2017-12-07 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * builds/symbian/bld.inf: Updated.
- 2017-12-06 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- Improve tracing messages by using singular and plural forms.
- * src/*/*.c: Implement it.
- 2017-12-04 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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) <jan.steffens@gmail.com>
- 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 <wl@gnu.org>
- [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 <tor.andersson@artifex.com>
- 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 <ewaldhew@gmail.com>
- * 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 <ewaldhew@gmail.com>
- [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 <vtsyrklevich@google.com>
- * include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type.
- 2017-11-14 Nikolaus Waxweiler <madigens@gmail.com>
- 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 <yuri_levchenko@boolat.com>
- * CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option.
- 2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/base/ftobjs.c (FT_Load_Glyph): Relocate condition.
- 2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables.
- 2017-11-03 Ewald Hew <ewaldhew@gmail.com>
- [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) <cf2_cmdENDCHAR>:
- Ensure we are on the top level charstring before rewinding.
- 2017-11-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- * builds/windows/ftdebug.c (FT_Message): Print to stderr.
- * builds/wince/ftdebug.c (FT_Message): Ditto.
- 2017-10-14 Behdad Esfahbod <behdad@behdad.org>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- 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 <ewaldhew@gmail.com>
- 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- 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 <John.Tytgat@esko.com>
- [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 <apodtele@gmail.com>
- 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 <apodtele@gmail.com>
- 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 <apodtele@gmail.com>
- [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 <bungeman@google.com>
- [truetype] Really, really fix #52082.
- * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
- 2017-09-28 Werner Lemberg <wl@gnu.org>
- * 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 <ewaldhew@gmail.com>
- * 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 <apodtele@gmail.com>
- 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 <ewaldhew@gmail.com>
- [psaux] Fix compiler warning.
- * src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing
- code.
- 2017-09-27 Werner Lemberg <wl@gnu.org>
- * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
- 2017-09-25 Werner Lemberg <wl@gnu.org>
- [psaux] Fix compiler warnings.
- * src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant
- test.
- * src/psaux/psintrp.c (cf2_interpT2CharString)
- <cf2_escCALLOTHERSUBR>: Add casts.
- * src/psaux/psobjs.c (ps_decoder_init): Add cast.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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.
- <cf2_cmdENDCHAR>: Add section to build hintmap and rewind.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [psaux] Minor fixes.
- * src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop
- results.
- s/font->decoder/decoder/ where necessary.
- <cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use
- offset parameter in `cf2_doStems' instead of doing correction for
- left-sidebearing.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [type1] Switch to Adobe engine.
- * src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (seac).
- This concludes the changes needed to add Type 1 support.
- * src/psaux/psintrp.c: Update includes.
- (cf2_interpT2CharString) <cf2_escSEAC>: 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 <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (flex in callothersubr).
- * src/psaux/psintrp.c (cf2_interpT2CharString)
- <cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1,
- 2).
- <cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing
- flex. This is to avoid closing the current contour.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (callothersubr).
- * src/psaux/psintrp.c (cf2_interpT2CharString)
- <cf2_escCALLOTHERSUBR>: 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 <ewaldhew@gmail.com>
- [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.
- <cf2_escPOP>: Ensure that the stack is not cleared after getting
- `OtherSubr' results.
- Fix stack access.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (callsubr).
- * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
- Type 1 mode.
- * src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (div, four-byte numbers).
- * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add
- Type 1 mode. Type 1 requires large integers to be followed by
- `div'; cf. `Adobe Type 1 Font Format', section 6.2.
- <op == 255>: 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 <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (hints).
- * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
- cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode.
- Allow adding hints mid-charstring.
- <cf2_escVSTEM3, cf2_escHSTEM3>: 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 <ewaldhew@gmail.com>
- [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.
- <cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw'
- must be the first operation in a Type 1 charstring.
- <cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for
- left sidebearing.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (setcurrentpoint).
- * src/psaux/psintrp.c (cf2_interpT2CharString)
- <cf2_escSETCURRENTPT>: Fix stack access.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [psaux] Extend Adobe interpreter (closepath).
- * src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>:
- Use the right builder function. We can use the `haveWidth' boolean
- already present, instead of implementing `parse_state'.
- 2017-09-25 Ewald Hew <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- 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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <ewaldhew@gmail.com>
- [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 <apodtele@gmail.com>
- 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 <jfkthame@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [build] Windows-style DLL versioning.
- * build/windows/ftver.rc: New VERSIONINFO resource.
- * build/windows/vc2010/freetype.vcxproj: Further improvements.
- 2017-09-23 Ben Wagner <bungeman@google.com>
- [truetype] Really fix #52082.
- * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
- 2017-09-23 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [build] Simplify Visual C++ 2010 project.
- * build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded
- configurations and tweak.
- 2017-09-21 Werner Lemberg <wl@gnu.org>
- [truetype] Integer overflow (#52082).
- * src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS.
- 2017-09-21 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <John.Tytgat@esko.com>
- [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 <apodtele@gmail.com>
- [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:
|