12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149 |
- 2019-07-04 Werner Lemberg <wl@gnu.org>
- [psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).
- The same as previous commit but for the old engine.
- * src/psaux/t1decode.c (t1operator_seac): Implement it.
- 2019-07-04 Chris Liddell <chris.liddell@artifex.com>
- [psaux] (1/2) Handle fonts that use SEAC for ligatures (#56580).
- As originally intended, a Type 1 SEAC charstring would be used for
- an accented glyph (like `acaron' or `uumlaut'), where the advance
- width of the SEAC glyph is the same as that of the `base' glyph
- (like `a' or `u'). In this case it is not uncommon for the SEAC
- glyph to not use an (H)SBW opcode of its own but to rely on the
- value from the base glyph.
- However, out-of-spec fonts also use SEAC glyphs for ligatures (like
- `oe' or `fi'), and in those cases the overall advance width is
- greater than that of the `base' glyph. For this reason we have to
- allow that the SEAC glyph can have an (H)SBW value of its own, and
- if it has, retain this value, rather than the one from the base
- glyph.
- * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escSEAC>:
- Implement it.
- 2019-07-01 Werner Lemberg <wl@gnu.org>
- * Version 2.10.1 released.
- ==========================
- Tag sources with `VER-2-10-1'.
- * docs/VERSION.TXT: Add entry for version 2.10.1.
- * 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.10.0/2.10.1/, s/2100/2101/.
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
- * builds/unix/configure.raw (version_info): Set to 23:1:17.
- * CMakeLists.txt (VERSION_PATCH): Set to 1.
- * include/freetype/fterrors.h (FT_Error_String): Fix C++ compilation.
- 2019-06-26 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Fix inequality.
- Reported by Armin Hasitzka.
- 2019-06-16 Werner Lemberg <wl@gnu.org>
- * src/tools/apinames.c: Formatting, minor edits.
- 2019-06-16 Werner Lemberg <wl@gnu.org>
- [autofit] Disable hinting if no blue zones are available (#56450).
- * src/autofit/afglobal.c (af_face_global_get_metrics): Start again
- (with dummy hinter module) if no blue zones are present.
- * src/autofit/aflatin.c (af_latin_metrics_init_blues): Change
- signature to return error code.
- If no blue zones are found, update `glyph_styles' array to hold
- AF_STYLE_NONE_DFLT instead of the current style.
- (af_latin_metrics_init): Return internal error code if no blue zones
- are found.
- 2019-06-16 Werner Lemberg <wl@gnu.org>
- Towards better VMS support.
- More to come.
- * builds/vms/LIBS.OPT_IA64, builds/vms/_LINK.OPT_IA64,
- builds/vms/vmslib.dat: New files provided by Jouk Jansen
- <joukj@hrem.nano.tudelft.nl>.
- * builds/vms/ftconfig.h: Update, also from Jouk.
- 2019-06-13 Werner Lemberg <wl@gnu.org>
- * src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor.
- 2019-06-13 Alexei Podtelezhnikov <apodtele@gmail.com>
- [smooth] Restore the span buffering for direct mode only.
- The buffer size FT_MAX_GRAY_SPANS is set to 10 spans, which should be
- enough to cover the entire scanline for simple glyphs in most cases:
- each slightly slanted edge needs up to two spans, plus a filling span
- in-between. This is not new, we used to do it before cb4388783cecc.
- * src/smooth/ftgrays.c (gray_TWorker): Add `spans' and `num_spans'.
- (gray_hline, gray_sweep): Implement the span buffering.
- (gray_raster_render): Use negative `num_spans' to avoid the direct
- mode.
- 2019-06-12 Alexei Podtelezhnikov <apodtele@gmail.com>
- * include/freetype/ftmodapi.h (FT_DebugHook_Func): Return error.
- Fix a warning by adding a return value as in `TT_RunIns',
- which should not be a compatibility issue.
- 2019-06-11 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/truetype/ttobjs.c (tt_check_trickyness_family): Add `const'.
- 2019-06-11 Moazin Khatti <moazinkhatri@gmail.com>
- [gzip] Add support for `gzip' encoded header.
- * src/gzip/ftgzip.c (FT_Gzip_Uncompress): Modify the the call to
- `inflateInit2' to enable support for `gzip' encoded headers.
- 2019-06-10 Alexei Podtelezhnikov <apodtele@gmail.com>
- [type1,type42] Use `const' for string literals.
- * include/freetype/internal/psaux.h (PS_Table_FuncsRec): Updated.
- * include/freetype/internal/t1types.h (T1_EncodingRec): Updated.
- * src/psaux/psobjs.[ch] (ps_table_add): Updated.
- * src/type1/t1load.c (T1_Open_Face, parse_encoding): Updated.
- * src/type42/t42objs.c (T42_Open_Face): Updated.
- * src/type42/t42parse.c (t42_parse_encoding): Updated.
- * src/cff/cffobjs.c (cff_face_init): Minor.
- 2019-06-10 Alexei Podtelezhnikov <apodtele@gmail.com>
- [bdf,pcf] Use `const' for string literals.
- * src/bdf/bdf.h (bdf_property_t): Updated `name'.
- * src/bdf/bdflib.c (_bdf_list_split,bdf_create_property,
- _bdf_add_property,_bdf_ato*): Updated.
- * src/bdf/bdfdrivr.c (bdf_interpret_style): Updated.
- * src/pcf/pcfread.c (pcf_intrpret_style): Ditto.
- 2019-06-07 Philip Race <philip.race@oracle.com>
- * src/base/ftinit.c (FT_Set_Default_Properties): Fix crash.
- Terminate loop at end of environment.
- 2019-05-31 Alexei Podtelezhnikov <apodtele@gmail.com>
- Solidify VC2005 builds.
- * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Explicitly
- declare `_BitScanReverse' intrinsic.
- * builds/windows/visualc/freetype.vcproj [Debug]: Disable intrinsics.
- 2019-05-30 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
- [sfnt] Separate WOFF sources and headers.
- Move WOFF sources and headers to separate files.
- * include/freetype/internal/wofftypes.h, src/sfnt/sfwoff.c,
- src/sfnt/sfwoff.h: New files.
- * include/freetype/internal/fttrace.h: Register `sfwoff.c'.
- * include/freetype/internal/internal.h: Define
- FT_INTERNAL_WOFF_TYPES_H.
- * include/freetype/internal/sfnt.h: Include FT_INTERNAL_WOFF_TYPES_H.
- * include/freetype/internal/tttypes.h: Move out WOFF structures.
- * src/sfnt/rules.mk: Add `sfwoff.c'.
- * src/sfnt/sfnt.c: Include `sfwoff.c'.
- * src/sfnt/sfobjs.c: Include `sfwoff.h', move out WOFF sources.
- 2019-05-30 Werner Lemberg <wl@gnu.org>
- [base] Fix `make multi'.
- Reported by Nikhil.
- * src/base/fterrors.c: Include FT_INTERNAL_DEBUG_H.
- 2019-05-29 Ben Wagner <bungeman@google.com>
- [truetype] Fix copy-and-paste error (#56409).
- * src/truetype/ttgload.c (load_truetype_glyph): Use correct indices
- into `unrounded' array for phantom points.
- 2019-05-29 Werner Lemberg <wl@gnu.org>
- [truetype] Fix 32bit builds (#56404).
- Patch suggested by Ben Wagner <bungeman@google.com>.
- * src/truetype/ttgxvar.c (FT_fixedToInt, FT_fixedToFdot6): Remove
- harmful cast to unsigned type.
- 2019-05-26 Ben Wagner <bungeman@google.com>
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Improve accuracy.
- 2019-05-23 Werner Lemberg <wl@gnu.org>
- [truetype] Draw glyphs without deltas in variation font (#56374).
- * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Always fill
- `unrounded' array.
- 2019-05-21 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttinterp.c (opcode_name): Improve mnemonics.
- 2019-05-16 Werner Lemberg <wl@gnu.org>
- [truetype] Actually scale varied CVT values.
- Up to now, only the unscaled CVT values were varied; in other words,
- the `CVAR' data was never used for bytecode hinting.
- * src/truetype/ttgxvar.c (tt_cvt_ready_iterator): New auxiliary
- function.
- (tt_face_vary_cvt): Use it to trigger rescaling of CVT values.
- 2019-05-16 Werner Lemberg <wl@gnu.org>
- [truetype] Use 26.6 format for storing unscaled CVT values.
- If `CVAR' data is applied to variation fonts, fractional values are
- possible.
- * include/freetype/internal/tttypes.h (TT_FaceRec): Change type of
- `cvt' from `FT_Short' to `FT_Int32'.
- * src/truetype/ttgxvar.c (FT_fdot6ToFixed): New macro.
- (tt_face_vary_cvt): Use it to update code to 26.6 format.
- * src/truetype/ttobjs.c (tt_size_run_prep): Update code to 26.6
- format.
- * src/truetype/ttpload.c (tt_face_load_cvt): Stora data in 26.6
- format.
- 2019-05-16 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttgload.c (load_truetype_glyph): Init `unrounded'.
- This fixes linear advance width values for spacing glyphs. Bug
- introduced 2019-05-09.
- 2019-05-16 Werner Lemberg <wl@gnu.org>
- [truetype] Avoid code duplication.
- * src/truetype/ttobjs.c (tt_size_run_prep): Scale CVT values in this
- function.
- (tt_size_ready_bytecode): Updated.
- * src/truetype/ttgload.c (tt_loader_init): Updated.
- 2019-05-13 Jouk Jansen <joukj@hrem.nano.tudelft.nl>
- * vms_make.com: Updated. Handle `bzip2' directory, too.
- 2019-05-13 Werner Lemberg <wl@gnu.org>
- * src/psaux/psfont.c (cf2_font_setup): Fix compiler warning.
- 2019-05-12 Werner Lemberg <wl@gnu.org>
- [truetype] Doh. Fix last commit to make it work.
- Very embarassing :-)
- Reported as
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14701
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14705
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14710
- * src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): Move up and add
- argument; update all callers.
- (TT_Process_Simple_Glyph): Use it. The `unrounded' array is active
- for variation fonts only, thus also enclose related code with
- `#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT ... #endif' where
- necessary.
- Revert commit a113e5d from 2019-05-09, and don't use `extra_points2'
- but allocate a temporary array.
- Speed up the scaling of the `unrounded' array.
- * src/truetype/ttgxvar.c (FT_fixedToInt, FT_FixedToFdot6): Fix type
- conversions and rounding. The unsigned type must have more or equal
- bits to the signed type.
- 2019-05-09 Werner Lemberg <wl@gnu.org>
- [truetype] Increase precision of font variation (#54371).
- This patch makes FreeType use font units in 26.6 format internally
- instead of integers.
- * src/truetype/ttgxvar.c (FT_fixedToFdot6): New macro.
- (TT_Vary_Apply_Glyph_Deltas): Add argument to output unrounded font
- coordinates.
- * src/truetype/ttgxvar.h: Updated.
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Use
- `extra_points2' array to temporarily hold unrounded point
- coordinates; use them to compute scaled coordinates and linear
- advance width and height.
- (load_truetype_code): Adjust similarly.
- 2019-05-09 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Minor.
- 2019-05-08 Alexei Podtelezhnikov <apodtele@gmail.com>
- [smooth] Faster fractions.
- * src/smooth/ftgrays.c (SUBPIXELS): Replace with...
- (FRACT): A fractional coordinate macro to use in...
- (gray_render_line, gray_render_scanline): ... here.
- 2019-05-07 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/raster/ftraster.c (Draw_Sweep): Unbreak.
- 2019-05-05 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/raster/ftraster.c: Clean-ups.
- 2019-05-05 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttgxvar.c: More use of `FT_fdot14ToFixed'.
- 2019-05-04 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/smooth/ftgrays.c (gray_render_line): Small shortcut.
- 2019-05-04 Werner Lemberg <wl@gnu.org>
- Various clang 8.0 static analyzer fixes.
- Reported by Sender Ghost <lightside@gmx.com>.
- * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Catch a corner
- case where `edge->first' could be NULL.
- * src/pfr/pfrobjs.c (pfr_slot_load): Remove unnecessary test of
- `size'.
- * src/raster/ftraster.c (Draw_Sweep): Catch a corner case where
- `draw_right' might be NULL.
- * src/sfnt/ttmtx.c (tt_face_get_metrics): Fix limit test for
- `aadvance'.
- Ensure `abearing' always hold a meaningful result.
- * src/truetype/ttgload.c (load_truetype_glyph): Ensure `subglyph' is
- not NULL before accessing it.
- * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Remove unnecessary
- test of `namedstyle'.
- * src/type42/t42parse.c (t42_parser_done): Ensure
- `parser->root.funcs.done' is not NULL before accessing it.
- 2019-05-03 Alexei Podtelezhnikov <apodtele@gmail.com>
- Miscellaneous macro updates.
- * src/base/ftoutln.c (SCALED): Updated.
- * src/smooth/ftgrays.c (SCALED): Ditto.
- (FLOOR, ROUND, CEILING): Removed.
- * src/psaux/psfixed.h (cf2_fracToFixed): Updated.
- 2019-05-02 Alexei Podtelezhnikov <apodtele@gmail.com>
- Tweak LCD filtering.
- * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
- Choose direction from bitmap's pixel_mode.
- * include/freetype/internal/ftobjs.c (FT_Bitmap_LcdFilterFunc):
- Updated.
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated.
- 2019-05-02 Werner Lemberg <wl@gnu.org>
- * vms_make.com: Updated (#56253).
- Remove no longer existing directories (`autohint', `otlayout').
- Update used base extensions.
- Activate `autofit' module.
- Add `gxvalid' module.
- Update copyright notices.
- 2019-04-29 Alexei Podtelezhnikov <apodtele@gmail.com>
- [smooth] Simplify cubic Bézier flattening.
- The previous implementation is correct but it is too complex.
- The revised algorithm is based on the fact that each split moves
- the control points closer to the trisection points on the chord.
- The corresponding distances are good surrogates for the curve
- deviation from the straight line.
- This cubic flattening algorithm is somewhat similar to the conic
- algorithm based the distance from the control point to the middle of
- the chord. The cubic distances, however, decrease less predictably
- but are easy enough to calculate on each step.
- The new algorithm produces slightly larger number of splits, which is
- compensated by its simplicity. The overall rendering performance is
- improved by 1-2%. The larger number of splits does not necessarily
- result in higher quality, which stays comparable.
- * src/smooth/ftgrays.c (gray_render_cubic): Replace the split
- condition.
- 2019-04-26 Alexei Podtelezhnikov <apodtele@gmail.com>
- [smooth] Bithacks and cosmetics.
- * src/smooth/ftgrays.c (gray_record_cell, gray_set_cell, gray_hline,
- gray_render_conic, gray_convert_glyph_inner): Updated.
- 2019-04-25 Alexei Podtelezhnikov <apodtele@gmail.com>
- Optimize Bézier bisections.
- This change makes bisections faster by 20-30%. When inlined into
- `gray_render_cubic', this makes the function faster by 10% and is
- noticeable in the overall rendering performance.
- * src/raster/ftraster.c (Split_Conic, Split_Cubic): Use shifts and
- refactor.
- * src/smooth/ftgrays.c (gray_split_conic, gray_split_cubic): Ditto.
- * src/base/ftstroke.c (ft_conic_split, ft_cubic_split): Ditto.
- * src/base/ftbbox.c (cubic_peak): Use shifts.
- 2019-04-23 Werner Lemberg <wl@gnu.org>
- * src/sfnt/ttcmap.c (tt_cmap12_next): Remove dead code.
- Found by clang 8.0's static analyzer and reported by Sender Ghost
- <lightside@gmx.com>.
- 2019-04-23 Werner Lemberg <wl@gnu.org>
- [base] Fix thinko in previous commit.
- * src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not
- target pitch.
- Problem reported by Sender Ghost <lightside@gmx.com>.
- 2019-04-22 Werner Lemberg <wl@gnu.org>
- * src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch.
- Problem reported by Sender Ghost <lightside@gmx.com>.
- 2019-04-22 Werner Lemberg <wl@gnu.org>
- Fix return value of `FT_Set_Named_Instance' (#56186).
- * src/truetype/ttgxvar.c (TT_Set_Named_Instance): Correctly handle
- internal return value -1 of `TT_Set_Var_Design'.
- 2019-04-18 Werner Lemberg <wl@gnu.org>
- [pcf] Fix handling of undefined glyph (#56067).
- This commit fixes the changes from 2018-07-21, which broke charmap
- iteration. We now add the default character as a new glyph with
- index 0, thus increasing the number of glyphs by one (as before).
- * src/pcf/pcfread.c (pcf_get_metrics): Adjust to new artificial
- glyph with index 0.
- Limit number of elements to 65534.
- (pcf_get_bitmaps): Ditto.
- Unify two loops into one; this avoids allocation of an intermediate
- array.
- (pcf_get_encodings): Don't flip indices but copy glyph metrics of
- default character to index 0.
- Also handle invalid default character.
- * docs/CHANGES: Updated.
- 2019-04-15 Minmin Gong <gongminmin@msn.com>
- * CMakeLists.txt: Avoid rewriting of unchanged configuration files.
- Reported as
- https://savannah.nongnu.org/patch/index.php?9755
- 2019-04-15 JDG <JonathanG@iQmetrix.com>
- * src/tools/apinames.c (main): Fix error message.
- Reported as
- https://savannah.nongnu.org/patch/?9796
- 2019-04-11 Alexei Podtelezhnikov <apodtele@gmail.com>
- [smooth] Fix segfault in direct mode (#56092).
- * src/base/ftoutln.c (FT_Outline_Render): Set missing clip_box for
- direct mode.
- * src/smooth/ftgrays.c (gray_raster_render): Use it.
- 2019-04-06 Werner Lemberg <wl@gnu.org>
- * src/sfnt/ttcmap.c (tt_get_glyph_name): Pacify compiler (#56061).
- This is for Visual Studio 2019 on ARM.
- 2019-04-06 Werner Lemberg <wl@gnu.org>
- For distribution, replace `.tar.bz2' with `.tar.xz' bundles.
- * builds/toplevel.mk (build): Do it.
- * README, docs/CHANGES, docs/release: Updated.
- 2019-04-06 Antony Lee <anntzer.lee@gmail.com>
- Make `glyph_name' parameter to `FT_Get_Name_Index' a `const'.
- * include/freetype/freetype.h (FT_Get_Name_Index),
- include/freetype/internal/ftobjs.h (FT_Face_GetGlyphNameIndexFunc),
- include/freetype/internal/services/svgldict.h
- (FT_GlyphDict_NameIndexFunc), src/base/ftobjs.c (FT_Get_Name_Index),
- src/cff/cffdrivr.c (cff_get_name_index), src/sfnt/sfdriver.c
- (sfnt_get_name_index), src/type1/t1driver.c (t1_get_name_index),
- src/type42/t42drivr.c (t42_get_name_index): Add `const' to second
- argument.
- 2019-03-31 Armin Hasitzka <prince.cherusker@gmail.com>
- [cff] Fix boundary checks.
- 642bc7590c701c8cd35a9f60fa899cfa518b17ff introduced dynamically
- allocated memory when parsing CFF files with the "old" engine. Bounds
- checks have never been updated, however, leading to pointless
- comparisons of pointers in some cases. This commit presents a
- solution for bounds checks in the CFF module with an extended logic
- for the "old" engine while staying as concise as possible for the
- "new" one.
- * src/cff/cffparse.h: Introduce the struct `CFF_T2_StringRec' and
- the additional field `t2_strings' within `CFF_ParserRec'.
- * src/cff/cffparse.c (cff_parser_within_limits): Move all boundary
- checks into this new function and update the rest of `cffparse.c' to
- use it.
- Reported as
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12137
- 2019-03-20 Werner Lemberg <wl@gnu.org>
- [autofit] Fix Mongolian blue zone characters.
- * src/autofit/afblue.dat: Use U+200D (ZERO-WIDTH JOINER) characters
- to get medial forms for some Mongolian characters.
- * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
- 2019-03-19 Werner Lemberg <wl@gnu.org>
- [autofit] Add support for Mongolian script.
- As a de-facto standard, layouts using this script are constructed
- horizontally line by line, then the lines are rotated clockwise for
- vertical display.
- * src/autofit/afblue.dat: Add blue zone data for Mongolian.
- * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
- * src/autofit/afscript.h: Add Mongolian standard characters.
- * src/autofit/afranges.c, src/autofit/afstyles.h: Add Mongolian
- data.
- 2019-03-15 Werner Lemberg <wl@gnu.org>
- * 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [base] Handle numeric overflow (#55827).
- * src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
- 2019-03-05 Sebastian Rasmussen <sebras@gmail.com>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * src/tools/update-copyright-year: Insert `(C)'.
- 2019-02-21 Armin Hasitzka <prince.cherusker@gmail.com>
- [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 <prince.cherusker@gmail.com>
- [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 <wink@saville.com>
- * src/autofit/afwarp.h (af_warper_compute): Fix declaration.
- 2019-02-02 Nikolaus Waxweiler <madigens@gmail.com>
- [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 <madigens@gmail.com>
- [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 <John.Tytgat@esko.com>
- [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 <chris.liddell@artifex.com>
- [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) <cf2_cmdCLOSEPATH>:
- Switch to calling `cf2_glyphpath_closeOpenPath'.
- 2018-12-29 Werner Lemberg <wl@gnu.org>
- * src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
- 2018-12-25 Werner Lemberg <wl@gnu.org>
- * 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- * builds/windows/visualc/freetype.dsp: Dust off.
- 2018-11-27 Alexei Podtelezhnikov <apodtele@gmail.com>
- * builds/windows/vc2010/freetype.vcxproj: Simplify.
- 2018-11-27 Chris Liddell <chris.liddell@artifex.com>
- [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 <bungeman@google.com>
- [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 <bungeman@google.com>
- [truetype] Fix numeric overflow (#55103).
- * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
- 2018-11-25 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <prince.cherusker@gmail.com>
- * src/cff/cffparse.c: Please the compiler.
- 2018-11-22 Armin Hasitzka <prince.cherusker@gmail.com>
- [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 <apodtele@gmail.com>
- * builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
- 2018-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <yangx92@hotmail.com>
- [psaux] Add safety guard (#54985).
- * src/psaux/psobjs.c (cff_builder_close_contour): Do it.
- 2018-11-08 Alexei Podtelezhnikov <apodtele@gmail.com>
- * builds/unix/configure.raw: Require `windows.h' for windres.
- 2018-11-08 Alexei Podtelezhnikov <apodtele@gmail.com>
- [ftstroke] Fix unpredictable failures (#54986).
- * src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
- 2018-11-08 Alexei Podtelezhnikov <apodtele@gmail.com>
- [ftstroke] Fix unpredictable failures (#54976).
- * src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
- 2018-11-07 Ben Wagner <bungeman@google.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
- loop.
- 2018-11-04 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/truetype/ttgxvar.c: Use enum definitions.
- 2018-11-03 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
- 2018-11-03 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
- 2018-11-03 Alexei Podtelezhnikov <apodtele@gmail.com>
- Revert due to specs: [truetype] Speed up variation IUP.
- 2018-11-02 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
- Reported and tested by Behdad.
- 2018-11-02 Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- * src/type1/t1load.c (t1_set_mm_blend): Optimized.
- 2018-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
- 2018-10-29 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- Revert: Align FreeType with standard C memory management.
- 2018-10-27 Werner Lemberg <wl@gnu.org>
- [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_op_blend>
- [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
- 2018-10-20 Werner Lemberg <wl@gnu.org>
- 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 <markand@malikania.fr>
- * CMakeLists.txt: Specify `RUNTIME DESTINATION'.
- This is needed for DLL builds.
- 2018-10-07 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check
- argument.
- 2018-10-02 Werner Lemberg <wl@gnu.org>
- [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_op_roll>
- [CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
- 2018-10-02 Werner Lemberg <wl@gnu.org>
- [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 <apodtele@gmail.com>
- 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 <wl@gnu.org>
- 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 <tony.smith@macro4.com>.
- * 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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- * 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 <apodtele@gmail.com>
- * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
- 2018-09-21 Ben Wagner <bungeman@google.com>
- 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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- * 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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
- 2018-09-13 Werner Lemberg <wl@gnu.org>
- * 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 <John.Tytgat@esko.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
- 2018-09-10 Armin Hasitzka <prince.cherusker@gmail.com>
- * 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 <bungeman@google.com>
- * builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
- 2018-09-07 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <ramakrishnan.nikhil@gmail.com>
- Add documentation guidelines file.
- * docs/DOCGUIDE: New file.
- 2018-09-04 Werner Lemberg <wl@gnu.org>
- * devel/ftoption.h: Synchronize with master `ftoption.h'.
- 2018-09-03 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
- [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 <wl@gnu.org>
- */*: s/PSNames/psnames/.
- Only tracing messages are affected.
- 2018-09-03 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <apodtele@gmail.com>
- * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
- 2018-08-31 Armin Hasitzka <prince.cherusker@gmail.com>
- [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 <wl@gnu.org>
- * src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
- 2018-08-31 Werner Lemberg <wl@gnu.org>
- * src/base/ftdebug.c (FT_Throw): Reduce chattiness.
- 2018-08-31 Werner Lemberg <wl@gnu.org>
- * src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
- 2018-08-30 Alexei Podtelezhnikov <apodtele@gmail.com>
- 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 <apodtele@gmail.com>
- * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
- 2018-08-30 Armin Hasitzka <prince.cherusker@gmail.com>
- [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 <prince.cherusker@gmail.com>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [base] Overflow-resistant bitmap presetting.
- * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
- 2018-08-29 Armin Hasitzka <prince.cherusker@gmail.com>
- 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 <wl@gnu.org>
- [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_op_roll>
- [CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as
- documented in the specification.
- 2018-08-26 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
- 2018-08-26 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
- * 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <ramakrishnan.nikhil@gmail.com>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be
- non-zero.
- 2018-08-16 Young Xiao <yangx92@hotmail.com>
- * builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
- Reported as bug #54515, duplicate of #43540.
- 2018-08-16 Werner Lemberg <wl@gnu.org>
- * builds/*/ftsystem.c (FT_COMPONENT): Updated also.
- 2018-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- Use formatting string in FT_TRACEX calls for non-simple arguments.
- * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
- <cff_op_hstem, cff_op_hintmask, cff_op_hlineto, cff_op_vhcurveto>:
- Do it.
- * src/psaux/pshints.c (cf2_hintmap_build): Ditto.
- * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
- cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
- cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
- * src/truetype/ttinterp.c (TT_RunIns): Ditto.
- 2018-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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_op_random> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's
- `random' field directly if parsing dictionaries.
- 2018-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * 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 <apodtele@gmail.com>
- * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
- 2018-08-10 Ben Wagner <bungeman@google.com>
- * src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
- 2018-08-10 Werner Lemberg <wl@gnu.org>
- * src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
- 2018-08-10 Werner Lemberg <wl@gnu.org>
- Fix clang warnings.
- * src/base/ftdebug.c (ft_trace_level_enabled,
- ft_trace_level_disabled): Add `static' keyword.
- 2018-08-09 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [pcf] Revert massive unsigning.
- 2018-08-08 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <apodtele@gmail.com>
- * src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
- `bitmapSizes'.
- 2018-08-06 Werner Lemberg <wl@gnu.org>
- * devel/ftoption.h: Synchronize with main `ftoption.h'.
- 2018-08-06 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * src/truetype/ttinterp.c (opcode_name): Fix typos.
- 2018-08-04 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/cid/cidtoken.h: Handle `XUID' keyword.
- 2018-07-31 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <htl10@users.sourceforge.net>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <prince.cherusker@gmail.com>
- 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 <wl@gnu.org>
- [cff] Avoid left-shift of negative numbers (#54322).
- * src/cff/cffgload.c (cff_slot_load): Use multiplication.
- 2018-07-17 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
- 2018-07-16 Armin Hasitzka <prince.cherusker@gmail.com>
- * 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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
- Taken from patch #9667, written by Steve Langasek
- <vorlon@debian.org>.
- This fixes a build failure (most probably a bug in gcc) on ppc64el
- when building with -O3.
- 2018-07-05 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- Adjust table size comparisons (#54242).
- * src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
- 2018-07-05 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <Jeff.Carey@monotype.com>
- * src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
- 2018-07-02 Werner Lemberg <wl@gnu.org>
- s/palette_types/palette_flags/.
- Suggested by Behdad.
- 2018-07-02 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
- Reported by Behdad.
- 2018-06-28 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/base/fttrigon.c (FT_Tan): Improve accuracy.
- (FT_Vector_Rotate): Simplify.
- 2018-06-28 Alexei Podtelezhnikov <apodtele@gmail.com>
- * src/base/ftobjs.c (FT_Set_Charmap): Robustify.
- 2018-06-25 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- [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 <akiem@underware.nl> 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <apodtele@gmail.com>
- [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 <prince.cherusker@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
- 2018-06-16 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <madigens@gmail.com>
- 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 <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
- 2018-06-09 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- 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 <parthwazurkar@gmail.com>
- [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 <wl@gnu.org>
- [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 <prince.cherusker@gmail.com>
- * src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
- 2018-06-03 Werner Lemberg <wl@gnu.org>
- * src/tools/glnames.py (main): Emit header in `light' comment style.
- 2018-06-02 Alexei Podtelezhnikov <apodtele@gmail.com>
- [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 <wl@gnu.org>
- * 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 <wl@gnu.org>
- * src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
- 2018-05-31 Werner Lemberg <wl@gnu.org>
- * src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
- This is no longer used.
- 2018-05-31 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- 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 <prince.cherusker@gmail.com>
- 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 <prince.cherusker@gmail.com>
- 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 <wl@gnu.org>
- 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 <ramakrishnan.nikhil@gmail.com>
- [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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
- 2018-05-20 Werner Lemberg <wl@gnu.org>
- * include/freetype/ftcolor.h: New file.
- This is an interface to the `CPAL' OpenType table. No
- implementation yet.
- 2018-05-18 Alexei Podtelezhnikov <apodtele@gmail.com>
- * include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
- Actually `_BitScanReverse' is available since VS2005.
- 2018-05-18 Werner Lemberg <wl@gnu.org>
- * 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 <john@creativepost.co.uk>.
- 2018-05-17 Werner Lemberg <wl@gnu.org>
- s/inline/__inline/ for MSVC.
- Reported by John Emmas <john@creativepost.co.uk>.
- * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
- 2018-05-16 Werner Lemberg <wl@gnu.org>
- 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 <apodtele@gmail.com>
- [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 <wl@gnu.org>
- [psaux] Fix compiler warning (#53915).
- * src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
- 2018-05-15 Werner Lemberg <wl@gnu.org>
- [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 <wl@gnu.org>
- [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 <wl@gnu.org>
- * src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
- 2018-05-14 Werner Lemberg <wl@gnu.org>
- 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 <wl@gnu.org>
- * src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
- 2018-05-13 Shao Yu Zhang <shaozhang@fb.com>
- Werner Lemberg <wl@gnu.org>
- [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 <arkady.shapkin@gmail.com>
- 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 <alan.coopersmith@oracle.com>
- 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 <wl@gnu.org>
- [autofit] Avoid potential SEGV if running out of memory.
- Problem reported by Shailesh Mistry <shailesh.mistry@hotmail.co.uk>.
- * 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 <madigens@gmail.com>
- [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 <wl@gnu.org>
- [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 <mpsuzuki@hiroshima-u.ac.jp>
- 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 <madigens@gmail.com>
- Unbreak CMake Windows installation
- * CMakeLists.txt: Generate ftconfig.h on non-UNIX.
- 2018-05-02 Werner Lemberg <wl@gnu.org>
- 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.
- ----------------------------------------------------------------------------
- Copyright (C) 2018-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:
|