ChangeLog.26 172 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711
  1. 2016-07-12 Werner Lemberg <wl@gnu.org>
  2. * Version 2.6.5 released.
  3. =========================
  4. Tag sources with `VER-2-6-5'.
  5. This commit immediately follows `[mac] Fix ftexport.sym target in
  6. Jamfile.' on a separate branch, which was then merged with master
  7. after the release.
  8. * include/freetype/config/ftoption.h
  9. (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Comment out.
  10. * docs/VERSION.TXT: Add entry for version 2.6.5.
  11. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
  12. builds/windows/vc2005/index.html,
  13. builds/windows/vc2008/freetype.vcproj,
  14. builds/windows/vc2008/index.html,
  15. builds/windows/vc2010/freetype.vcxproj,
  16. builds/windows/vc2010/index.html,
  17. builds/windows/visualc/freetype.dsp,
  18. builds/windows/visualc/freetype.vcproj,
  19. builds/windows/visualc/index.html,
  20. builds/windows/visualce/freetype.dsp,
  21. builds/windows/visualce/freetype.vcproj,
  22. builds/windows/visualce/index.html,
  23. builds/wince/vc2005-ce/freetype.vcproj,
  24. builds/wince/vc2005-ce/index.html,
  25. builds/wince/vc2008-ce/freetype.vcproj,
  26. builds/wince/vc2008-ce/index.html: s/2.6.4/2.6.5/, s/264/265/.
  27. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
  28. * builds/unix/configure.raw (version_info): Set to 18:5:12.
  29. * CMakeLists.txt (VERSION_PATCH): Set to 5.
  30. * docs/CHANGES: Updated.
  31. 2016-07-11 Werner Lemberg <wl@gnu.org>
  32. Conditionally compile environment support.
  33. * include/freetype/internal/ftobjs.h, src/autofit/afmodule.c,
  34. src/base/ftobjs.c, src/cff/cffdrivr.c, src/truetype/ttdriver.c:
  35. Decorate with `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES' where
  36. necessary.
  37. 2016-07-11 Werner Lemberg <wl@gnu.org>
  38. Handle properties in `FREETYPE_PROPERTIES' environment variable.
  39. This commit covers the most important one.
  40. * src/autofit/afmodule.c (af_property_set): Handle `warping',
  41. `darkening-parameters', and `no-stem-darkening'.
  42. * src/cff/cffdrivr.c (cff_property_set): Handle
  43. `darkening-parameters', `hinting-engine', and `no-stem-darkening'.
  44. * src/truetype/ttdriver.c (tt_property_set): Handle
  45. `interpreter-version'.
  46. 2016-07-11 Werner Lemberg <wl@gnu.org>
  47. Replace calls to `atol' with `strtol'.
  48. We later on need strtol's `endptr' feature.
  49. * include/freetype/config/ftstdlib.h (ft_atol): Replace with...
  50. (ft_strtol): ... this.
  51. * src/base/ftdbgmem.c (ft_mem_debug_init): Updated.
  52. * src/cid/cidparse.c (cid_parser_new): Ditto.
  53. * src/type42/t42drivr.c (t42_get_name_index), src/type42/t42objs.c
  54. (T42_GlyphSlot_Load): Ditto.
  55. 2016-07-10 Werner Lemberg <wl@gnu.org>
  56. Implement handling of `FREETYPE_PROPERTIES' environment variable.
  57. Recognizing properties follows in another commit.
  58. * devel/ftoption.h, include/freetype/config/ftoption.h
  59. (FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES): New macro.
  60. * include/freetype/config/ftstdlib.h (ft_getenv): New macro.
  61. * src/base/ftinit.c (ft_set_default_properties): New function to
  62. parse `FREETYPE_PROPERTIES' and calling `ft_property_string_set'.
  63. (FT_Init_FreeType): Updated.
  64. 2016-07-09 Werner Lemberg <wl@gnu.org>
  65. Add function `ft_property_string_set'.
  66. This is a preparation for handling an `FREETYPE_PROPERTIES'
  67. environment variable to control (some) driver properties.
  68. No change in functionality.
  69. * src/base/ftobjs.c (ft_property_do): Add `value_is_string'
  70. parameter.
  71. (ft_property_string_set): New function.
  72. (FT_Property_Set, FT_Property_Get): Updated.
  73. * include/freetype/internal/ftobjs.h: Updated.
  74. * include/freetype/internal/services/svprop.h
  75. (FT_Properties_SetFunc): Add `value_is_string' parameter.
  76. * src/autofit/afmodule.c (af_property_set), src/cff/cffdrivr.c
  77. (cff_property_set), src/truetype/ttdriver.c (tt_property_set):
  78. Updated, emitting an error currently if `value_is_string' is set.
  79. 2016-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
  80. [mac] Fix ftexport.sym target in Jamfile.
  81. * Jamfile: Update the directories of the header files scanned for
  82. ftexport.sym. They were incorrect since the migration of the
  83. header files, on 2015-06-22. Either inexisting include/cache
  84. (removed on 2006-03-20) is not needed to be listed explicitly.
  85. Now ftmac.h is scanned only in the case of Mac OS & Mac OS X.
  86. 2016-07-08 Alexei Podtelezhnikov <apodtele@gmail.com>
  87. [smooth] Sub-banding protocol revision.
  88. Rasterization sub-banding is utilized at large sizes while using a
  89. rather small fixed memory pool. Indeed it is possible to make an
  90. educated guess how much memory is necessary at a given size for a
  91. given glyph. It turns out that, for a large majority of European
  92. glyphs, you should store about 8 times more boundary pixels than
  93. their height. Or, vice versa, if your memory pool can hold 800
  94. pixels the band height should be 100 and you should sub-band
  95. anything larger than that. Should you still run out of memory,
  96. FreeType bisects the band but you have wasted some time. This is
  97. what has been implemented in FreeType since the beginning.
  98. It was overlooked, however, that the top band could grow to twice
  99. the default band size leading to unnecessary memory overflows there.
  100. This commit fixes that. Now the bands are distributed more evenly
  101. and cannot exceed the default size.
  102. Now the magic number 8 is really suitable for rather simple European
  103. scripts. For complex Chinese logograms the magic number should be
  104. 13 but that is subject for another day.
  105. * src/smooth/ftgrays.c (gray_convert_glyph): Revise sub-banding
  106. protocol.
  107. 2016-07-07 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
  108. [mac] Fix Savannah bug #48417.
  109. Mac OS X linker throws errors when `-exported_symbol_list' input
  110. file includes non-existing symbols. Reported by Ryan Schmidt.
  111. * builds/exports.mk: Exclude ftmac.h from the headers for apinames
  112. by default. Include it when ftmac.c would be compiled.
  113. 2016-07-06 Werner Lemberg <wl@gnu.org>
  114. * src/truetype/ttinterp.c (TInstruction_Function): Removed, unused.
  115. 2016-07-05 Werner Lemberg <wl@gnu.org>
  116. * Version 2.6.4 released.
  117. =========================
  118. Tag sources with `VER-2-6-4'.
  119. * docs/VERSION.TXT: Update documentation and bump version number to
  120. 2.6.4.
  121. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
  122. builds/windows/vc2005/index.html,
  123. builds/windows/vc2008/freetype.vcproj,
  124. builds/windows/vc2008/index.html,
  125. builds/windows/vc2010/freetype.vcxproj,
  126. builds/windows/vc2010/index.html,
  127. builds/windows/visualc/freetype.dsp,
  128. builds/windows/visualc/freetype.vcproj,
  129. builds/windows/visualc/index.html,
  130. builds/windows/visualce/freetype.dsp,
  131. builds/windows/visualce/freetype.vcproj,
  132. builds/windows/visualce/index.html,
  133. builds/wince/vc2005-ce/freetype.vcproj,
  134. builds/wince/vc2005-ce/index.html,
  135. builds/wince/vc2008-ce/freetype.vcproj,
  136. builds/wince/vc2008-ce/index.html: s/2.6.3/2.6.4/, s/263/264/.
  137. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
  138. * builds/unix/configure.raw (version_info): Set to 18:4:12.
  139. * CMakeLists.txt (VERSION_PATCH): Set to 4.
  140. * docs/CHANGES: Updated.
  141. 2016-07-05 Werner Lemberg <wl@gnu.org>
  142. * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Fix compiler warning.
  143. 2016-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
  144. [smooth] Variable type revision (part 2).
  145. * src/smooth/ftgrays.c (TArea): Restore original definition as `int'.
  146. (gray_render_line) [FT_LONG64]: Updated.
  147. (gray_convert_glyph): 32-bit band bisection stack should be 32 bands.
  148. (gray_convert_glyph_inner): Trace successes and failures.
  149. 2016-07-04 Werner Lemberg <wl@gnu.org>
  150. [autofit] Handle single-point contours as segments.
  151. Doing so allows us to link them to edges – some fonts like
  152. `NotoSansGurmukhi-Regular' have such isolated points sitting exactly
  153. on other outlines.
  154. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Don't
  155. ignore one-point contours but handle them specially as one-point
  156. segments.
  157. (af_latin_hints_compute_edges): Append one-point segments to edges
  158. if possible.
  159. 2016-07-02 Werner Lemberg <wl@gnu.org>
  160. [autofit] Remove unused structure members.
  161. * src/autofit/afhints.h (AF_SegmentRec, AF_EdgeRec): Remove
  162. `num_linked'.
  163. * src/autofit/afcjk.c (af_cjk_hints_link_segments): Updated.
  164. 2016-07-02 Werner Lemberg <wl@gnu.org>
  165. [autofit] Update to Unicode 9.0.0.
  166. * src/autofit/afranges.c (af_arab_nonbase_uniranges,
  167. af_cyrl_uniranges): Add new data.
  168. 2016-07-01 Alexei Podtelezhnikov <apodtele@gmail.com>
  169. [smooth] Variable type revision (part 1).
  170. This patch restores original `TCoord' definition as `int' so that the
  171. rendering pool is used more efficiently on LP64 platforms (unix).
  172. * src/smooth/ftgrays.c (gray_TWorker, TCell, gray_TBand): Switch some
  173. fields to `TCoord'.
  174. (gray_find_cell, gray_render_scanline, gray_render_line, gray_hline,
  175. gray_sweep, gray_convert_glyph): Updated.
  176. 2016-06-28 Alexei Podtelezhnikov <apodtele@gmail.com>
  177. [smooth] Minor clean-ups.
  178. * src/smooth/ftgrays.c (gray_TWorker): Remove redundant `ycount'.
  179. (gray_sweep, gray_convert_glyph, gray_dump_cells): Updated.
  180. 2016-06-27 Alexei Podtelezhnikov <apodtele@gmail.com>
  181. [smooth] Minor clean-ups.
  182. * src/smooth/ftgrays.c (gray_convert_glyph): Do not use volatile
  183. qualifier.
  184. (gray_raster_render): Move span initializations from here.
  185. (gray_sweep): ... to here and remove unused `target' argument.
  186. 2016-06-26 Alexei Podtelezhnikov <apodtele@gmail.com>
  187. [pcf] Fix handling of very large fonts (#47708).
  188. * src/pcf/pcfread.c (pcf_get_encodings): Make `encodingOffset' an
  189. unsigned short.
  190. Only reject `0xFFFF' as an invalid encoding offset.
  191. 2016-06-25 Werner Lemberg <wl@gnu.org>
  192. [truetype] Really fix deallocation in case of error (#47726).
  193. * src/truetype/ttgload.c (load_truetype_glyph): Thinko; initialize
  194. `outline.points' also.
  195. 2016-06-23 Alexei Podtelezhnikov <apodtele@gmail.com>
  196. [smooth] Consolidate memory management.
  197. * src/smooth/ftgrays.c (gray_init_cells): Remove function.
  198. (gray_TWorker): Remove fields that become local variables.
  199. (gray_raster_render): Move rendering buffer declaration from here.
  200. (gray_convert_glyph): ... to here and update accordingly.
  201. 2016-06-22 Alexei Podtelezhnikov <apodtele@gmail.com>
  202. [smooth] Consolidate boundary checks.
  203. Removing the checks from `gray_hline' shaves 1% off rendering speed.
  204. * src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_MIN' and `FT_MAX'.
  205. (gray_TWorker): No need to store `clip_box'.
  206. (gray_hline): Remove unnecessary boundary checks.
  207. (gray_convert_glyph): Move boundary checks from here.
  208. (gray_raster_render): ... to here and consolidate.
  209. 2016-06-21 Alexei Podtelezhnikov <apodtele@gmail.com>
  210. [smooth] Use `FT_Outline_Get_CBox'.
  211. * src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_Outline_Get_CBox'.
  212. (gray_compute_cbox): Remove this function.
  213. (gray_convert_glyph): Update to use `FT_Outline_Get_CBox'.
  214. 2016-06-20 Werner Lemberg <wl@gnu.org>
  215. [smooth] Remove compiler warnings.
  216. * src/smooth/ftgrays.c (gray_convert_glyph): Fix reports from clang.
  217. 2016-06-20 Alexei Podtelezhnikov <apodtele@gmail.com>
  218. [smooth] Sanitize memory management.
  219. * src/smooth/ftgrays.c (gray_convert_glyph): Cleaned up.
  220. 2016-06-18 Alexei Podtelezhnikov <apodtele@gmail.com>
  221. [smooth] Remove `band_shoot' that never worked.
  222. * src/smooth/ftgrays.c (gray_TWorker): Remove `band_shoot'.
  223. (gray_convert_glyph): Updated.
  224. 2016-06-17 Alexei Podtelezhnikov <apodtele@gmail.com>
  225. [raster, smooth] Handle FT_RENDER_POOL_SIZE better.
  226. * src/raster/ftraster.c (FT_MAX_BLACK_POOL): New macro.
  227. (ft_black_render): Updated.
  228. * src/smooth/ftgrays.c (FT_MAX_GRAY_POOL): New macro.
  229. (gray_raster_render): Updated.
  230. 2016-06-16 Werner Lemberg <wl@gnu.org>
  231. * src/base/md5.c: Updated to recent version.
  232. 2016-06-14 Alexei Podtelezhnikov <apodtele@gmail.com>
  233. * src/smooth/ftgrays.c (gray_hline): Optimize if-condition.
  234. 2016-06-13 Werner Lemberg <wl@gnu.org>
  235. [autofit] Add support for Cherokee script.
  236. * src/autofit/afblue.dat: Add blue zone data for Cherokee.
  237. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  238. * src/autofit/afscript.h: Add Cherokee standard characters.
  239. * src/autofit/afranges.c: Add Cherokee data.
  240. * src/autofit/afstyles.h: Add Cherokee data.
  241. 2016-06-09 David Capello <davidcapello@gmail.com>
  242. [cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files.
  243. * CMakeLists.txt: Each time cmake is run those files are
  244. modified and the whole FreeType library is recompiled. With this
  245. change we change the files only if there are real modifications, so
  246. we can avoid recompilations.
  247. 2016-06-09 Werner Lemberg <wl@gnu.org>
  248. [bdf] Check number of properties (#48166).
  249. * src/bdf/bdflib.c (_bdf_parse_start): Implement.
  250. 2016-06-08 Alexei Podtelezhnikov <apodtele@gmail.com>
  251. [smooth] Re-enable new line renderer on 64-bit archs.
  252. * src/smooth/ftgrays.c (gray_render_line): Conditionally re-enable new
  253. implementation, where it is safe from overflows.
  254. 2016-06-08 Alexei Podtelezhnikov <apodtele@gmail.com>
  255. [smooth] Minor clean-ups.
  256. * src/smooth/ftgrays.c (gray_dump_cells): Move out of the way.
  257. (gray_render_span): Remove spurious casts and streamline.
  258. 2016-06-07 Werner Lemberg <wl@gnu.org>
  259. [autofit] Add support for Ethiopic script.
  260. * src/autofit/afblue.dat: Add blue zone data for Ethiopic.
  261. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  262. * src/autofit/afscript.h: Add Ethiopic standard characters.
  263. * src/autofit/afranges.c: Add Ethiopic data.
  264. * src/autofit/afstyles.h: Add Ethiopic data.
  265. 2016-06-07 Werner Lemberg <wl@gnu.org>
  266. [autofit] Fix compilation with VS2016 (#48126).
  267. This compiler doesn't recognize the end-of-comment sequence `*/' if
  268. it immediately follows non-ASCII characters.
  269. * src/autofit/afscript.h: Ensure whitespace before `*/'.
  270. 2016-06-04 Werner Lemberg <wl@gnu.org>
  271. Fix a test for named instances (#48122).
  272. This was missed while giving negative face indices an extended
  273. meaning.
  274. * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Implement.
  275. 2016-05-31 Nikolaus Waxweiler <madigens@gmail.com>
  276. [truetype] Let SHPIX move points in the twilight zone in v40.
  277. * src/truetype/ttinterp.c (Ins_SHPIX): Allow SHPIX to move points in
  278. the twilight zone. Otherwise, treat SHPIX the same as DELTAP.
  279. Unbreaks various fonts such as older versions of Rokkitt and DTL
  280. Argo T Light that would glitch severely after calling ALIGNRP after a
  281. blocked SHPIX.
  282. 2016-05-30 Werner Lemberg <wl@gnu.org>
  283. [type42] Support `CharStrings' entry format as created by LilyPond.
  284. * src/type42/t42parse.c (t42_parse_charstrings): Handle entries
  285. having the format
  286. (foo) cvn 12345 def
  287. 2016-05-28 Werner Lemberg <wl@gnu.org>
  288. * src/autofit/afranges.c: Remove `UL' postfix from hex numbers.
  289. Suggested by Alexei. `UL' is only needed for 16bit compilers, but
  290. it seems noone is using this anymore (and we no longer test whether
  291. FreeType compiles in such an environment). Otherwise, it is easy to
  292. add the postfix to the `AF_UNICODE_RANGE' macro.
  293. 2016-05-26 Alexei Podtelezhnikov <apodtele@gmail.com>
  294. [smooth] Shrink bisection stack.
  295. The convergence of Bézier flatteners is fast with the deviation
  296. from straight line being asymptotically cut 4-fold on each bisection.
  297. This justifies smaller bisection stack size.
  298. * src/smooth/ftgrays.c (gray_TWorker): Remove common `bez_stack'.
  299. (gray_render_conic): Create and use conic `bez_stack'. Move back the
  300. band analysis from...
  301. (gray_conic_to): ... here.
  302. (gray_render_cubic): Create and use cubic `bez_stack'. Move back the
  303. band analysis from...
  304. (gray_cubic_to): ... here.
  305. (gray_move_to): Updated.
  306. 2016-05-25 Werner Lemberg <wl@gnu.org>
  307. [autofit] Fixes for Armenian and Gujarati ranges.
  308. * src/autofit/afranges.c (af_armn_uniranges): Corrected.
  309. (af_guru_nonbase_uniranges): Make U+0A3E a base character.
  310. 2016-05-24 Werner Lemberg <wl@gnu.org>
  311. [autofit] Add support for Armenian script.
  312. * src/autofit/afblue.dat: Add blue zone data for Armenian.
  313. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  314. * src/autofit/afscript.h: Add Armenian standard characters.
  315. * src/autofit/afranges.c: Add Armenian data.
  316. * src/autofit/afstyles.h: Add Armenian data.
  317. 2016-05-23 Werner Lemberg <wl@gnu.org>
  318. * builds/unix/unix-cc.in (LINK_LIBRARY): Use `-export-symbols'.
  319. This was commented about 10 years ago – I think the reason then to
  320. disable libtool's `-export-symbols' option was to give some badly
  321. programmed applications access to internal FreeType functions.
  322. I believe that we should no longer take care of such programs; the
  323. number of symbols exported should be rather restricted as much as
  324. possible.
  325. 2016-05-22 Werner Lemberg <wl@gnu.org>
  326. [autofit] Add blue-zone support for Gurmukhi script.
  327. This essentially moves the Gurmukhi script from the `Indic' hinter to
  328. the `Latin' hinter.
  329. * src/autofit/afblue.dat: Add blue zone data for Gurmukhi.
  330. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  331. * src/autofit/afscript.h: Add Gurmukhi standard characters and move
  332. data out of AF_CONFIG_OPTION_INDIC block.
  333. * src/autofit/afranges.c: Move Gurmukhi data out of
  334. AF_CONFIG_OPTION_INDIC block.
  335. * src/autofit/afstyles.h: Update Gurmukhi data; in particular, use
  336. AF_WRITING_SYSTEM_LATIN.
  337. 2016-05-21 Werner Lemberg <wl@gnu.org>
  338. Minor clang++ fixes.
  339. * src/base/ftobjs.c (FT_Add_Module), src/psaux/psobjs.c
  340. (ps_parser_load_field), src/type1/t1load.c (parse_subrs): Add
  341. initializer.
  342. * src/cache/ftccache.h (FTC_CACHE_TRYLOOP_END): Avoid implicit
  343. conversion from NULL to boolean.
  344. 2016-05-21 Werner Lemberg <wl@gnu.org>
  345. Work around a bug of the C 8.0.0.1 compiler on AIX 5.3 (#47955).
  346. * include/freetype/internal/ftmemory.h (cplusplus_typeof): Use
  347. braces for `extern "C++"'.
  348. 2016-05-17 Nikolaus Waxweiler <madigens@gmail.com>
  349. [truetype] Make TT_LOADER_SET_PP support subpixel hinting [3/3].
  350. * src/truetype/ttgload.c (TT_LOADER_SET_PP): Replace macro with...
  351. (tt_loader_set_pp): ... this new function.
  352. Update all callers.
  353. 2016-05-17 Nikolaus Waxweiler <madigens@gmail.com>
  354. [truetype] New implementation of v38 bytecode interpreter [2/3].
  355. This patch actually modifies the bytecode interpreter.
  356. See added comments in `ttinterp.h' for more information on this and
  357. the following commit in the series.
  358. * src/truetype/ttinterp.c (SUBPIXEL_HINTING): Replaced by...
  359. (NO_SUBPIXEL_HINTING, SUBPIXEL_HINTING_INFINALITY,
  360. SUBPIXEL_HINTING_MINIMAL): ...new macros.
  361. (Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backward
  362. compatibility.
  363. Updated.
  364. (Ins_RS, Ins_FDEF, Ins_ENDF, Ins_CALL, Ins_LOOPCALL, Ins_MD):
  365. Updated.
  366. (Ins_INSTCTRL): Handle native ClearType mode flag.
  367. Updated.
  368. (Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backward
  369. compatibility.
  370. (Move_Zp2_Point): Ditto.
  371. (Ins_SHP): Updated.
  372. (Ins_SHPIX): Handle backward compatibility.
  373. Updated.
  374. (Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Updated.
  375. (Ins_ALIGNRP): Updated.
  376. (Ins_IUP, Ins_DELTAP): Handle backward compatibility.
  377. Updated.
  378. (Ins_GETINFO): Handle v38 flags.
  379. Updated.
  380. (TT_RunIns): Handle backward compatibility mode.
  381. Updated.
  382. 2016-05-17 Nikolaus Waxweiler <madigens@gmail.com>
  383. [truetype] New implementation of v38 bytecode interpreter [1/3].
  384. This patch prepares data structures and the like.
  385. See added comments in `ttinterp.h' for more information on this and
  386. the following commits in the series.
  387. * devel/ftoption.h, include/freetype/config/ftoption.h
  388. (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Assign values to differentiate
  389. between subpixel versions.
  390. (TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY,
  391. TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL): New macros.
  392. * include/freetype/ftttdrv.h (TT_INTERPRETER_VERSION_40): New macro.
  393. * include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
  394. * src/truetype/ttinterp.h (TT_ExecContextRec): Define new fields
  395. `subpixel_hinting_lean', `vertical_lcd_lean',
  396. `backward_compatibility', `iupx_called', iupy_called', and
  397. `grayscale_cleartype' for new hinting mode.
  398. * src/truetype/ttdriver.c (tt_property_set): Handle v38 and v40
  399. interpreters conditionally.
  400. * src/truetype/ttgload.c (TT_Hint_Glyph): Save phantom points unless
  401. in v38 backward compatibility mode.
  402. Updated.
  403. (compute_glyph_metrics): Add v38 backward compatibility mode
  404. constraint for adjusting advance widths.
  405. Updated.
  406. (tt_loader_init): Handle new flags `subpixel_hinting_lean',
  407. `grayscale_cleartype', and `vertical_lcd_lean'.
  408. Updated.
  409. (tt_get_metrics, TT_Process_Simple_Glyph, TT_LOADER_SET_PP):
  410. Updated.
  411. * src/truetype/ttobjs.c (tt_driver_init): Conditionally set
  412. default interpreter version number.
  413. * src/truetype/ttsubpix.c, src/truetype/ttsubpix.h: Updated.
  414. 2016-05-17 Werner Lemberg <wl@gnu.org>
  415. [cff] Fix matrix scaling (#47848).
  416. * include/freetype/config/ftstdlib.h (FT_LONG_MIN): New macro.
  417. * src/cff/cffparse.c (cff_parse_font_matrix): Use largest scaling
  418. value of all matrix coefficients to scale matrix.
  419. * src/cff/cffobjs.c (cff_face_init): Use `matrix->yx' member for
  420. matrix normalization if `matrix->yy' is zero.
  421. 2016-05-16 Werner Lemberg <wl@gnu.org>
  422. [base] Reject invalid sfnt Mac resource (#47891).
  423. * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Check validity
  424. of `CID ' and `TYPE1' table offset and length.
  425. 2016-05-16 Werner Lemberg <wl@gnu.org>
  426. [cid] Fix scanning for `StartData' and `/sfnts' (#47892).
  427. * src/cid/cidparse.c (STARTDATA, STARTDATA_LEN, SFNTS, SFNTS_LEN):
  428. New macros.
  429. (cid_parser_new): Fix and document algorithm.
  430. 2016-05-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
  431. [truetype] Improve the recursive reference detector.
  432. The previous fix for #46372 misunderstood a composite glyph referring
  433. same component twice as a recursive reference. See the discussion
  434. https://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html
  435. Thanks to Khaled Hosny for finding this issue.
  436. * src/truetype/ttgload.c (ft_list_get_node_at): A function to get
  437. the i-th node from FT_List.
  438. (load_truetype_glyph): In the traversal scan of the reference tree
  439. in the composite glyph, we clear the nodes filled by previous
  440. sibling chain.
  441. 2016-05-07 Werner Lemberg <wl@gnu.org>
  442. [cache] Allow value 0 for face ID.
  443. We never dereference `face_id', and some implementations might use a
  444. running number instead of a pointer. Additionally, disallowing
  445. value zero was undocumented.
  446. * src/cache/ftccmap.c (FTC_CMapCache_Lookup), src/cache/ftcmanag.c
  447. (FTC_Manager_LookupFace, FTC_Manager_RemoveFaceID): Remove test for
  448. `face_id'.
  449. 2016-05-05 Alexei Podtelezhnikov <apodtele@gmail.com>
  450. [smooth] More efficient accounting of conic splits and draws.
  451. A single decrement counter of segments to draw, instead of an array,
  452. contains all the information necessary to decide when to split and
  453. when to draw a conic segment. The number of splits before each draw is
  454. equal to the number of trailing zeros in the counter.
  455. * src/smooth/ftgrays.c (gray_TWorker): Remove `lev_stack'.
  456. (gray_render_conic): Updated to use decrement counter of segments.
  457. 2016-05-05 Werner Lemberg <wl@gnu.org>
  458. [cff, truetype] Fix logic for `FT_Property_Set'.
  459. Otherwise some properties could be set to arbitrary values, which is
  460. harmless, but querying could give wrong positive results.
  461. * src/cff/cffdrivr.c (cff_property_set) [hinting-engine],
  462. * src/truetype/ttdriver.c (tt_property_set) [interpreter-version]:
  463. Only allow defined values.
  464. 2016-04-25 Werner Lemberg <wl@gnu.org>
  465. [autofit] Add blue-zone support for Gujarati script.
  466. This essentially moves the Gujarati script from the `Indic' hinter to
  467. the `Latin' hinter.
  468. * src/autofit/afblue.dat: Add blue zone data for Gujarati.
  469. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  470. * src/autofit/afscript.h: Add Gujarati standard characters and move
  471. data out of AF_CONFIG_OPTION_INDIC block.
  472. * src/autofit/afranges.c: Move Gujarati data out of
  473. AF_CONFIG_OPTION_INDIC block.
  474. * src/autofit/afstyles.h: Update Gujarati data; in particular, use
  475. AF_WRITING_SYSTEM_LATIN.
  476. 2016-04-24 Werner Lemberg <wl@gnu.org>
  477. Minor.
  478. * include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Protect macro
  479. argument with parentheses.
  480. 2016-04-24 Werner Lemberg <wl@gnu.org>
  481. [truetype] Fix deallocation in case of error (#47726).
  482. * src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in
  483. `outline' that are going to be deallocated in case of error.
  484. 2016-04-23 Werner Lemberg <wl@gnu.org>
  485. [autofit] Improve Georgian blue zone characters.
  486. Suggested by Akaki Razmadze <razmadzekoko@gmail.com>.
  487. * src/autofit/afblue.dat (AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM):
  488. Updated.
  489. * src/autofit/afblue.c: Regenerated.
  490. 2016-04-16 David Capello <davidcapello@gmail.com>
  491. [cmake] Honor SKIP_INSTALL_* settings (as used in zlib).
  492. As FreeType depends on zlib, if we don't install zlib (e.g., because
  493. we defined SKIP_INSTALL_ALL), FreeType cannot be installed, too
  494. (cmake triggers an error saying that FreeType cannot be installed
  495. because zlib target isn't in the export set).
  496. * CMakeLists.txt: Honor `SKIP_INSTALL_HEADERS',
  497. `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' settings.
  498. 2016-04-16 Behdad Esfahbod <behdad@behdad.org>
  499. [truetype] Another fix for non-intermediate GX tuples.
  500. * src/truetype/ttgxvar.c (ft_var_apply_tuple): Add some missing
  501. cases.
  502. 2016-04-12 Alexei Podtelezhnikov <apodtele@gmail.com>
  503. Remove forgotten macro.
  504. * include/freetype/internal/internal.h
  505. [FT_INTERNAL_POSTSCRIPT_GLOBALS_H]: Remove.
  506. 2016-04-09 Werner Lemberg <wl@gnu.org>
  507. [autofit] Add support for Georgian scripts.
  508. Georgian is problematic, since `uppercase' forms of Mkhedruli
  509. (called Mtavruli) are not yet defined in Unicode, which means that
  510. proper blue zones can't be defined. However, there is already a
  511. proposal submitted to Unicode; see
  512. https://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf
  513. Additionally, due to historical reasons, Unicode treats Khutsuri as
  514. the same script as Mkhedruli, and so does OpenType. However, since
  515. the two scripts have completely different shapes it can happen that
  516. blue zones differ considerably. The tag `geok' used here (derived
  517. from ISO 15924) to differentiate the two scripts is not an OpenType
  518. tag in use. If we now have a font that contains both glyphs for
  519. Mkhedruli and Khutsuri, and it uses OpenType features for both also,
  520. HarfBuzz unavoidably treats all glyphs as `geor'. As a consequence,
  521. blue zones for `geok' are not used for glyphs involved in the
  522. OpenType features.
  523. An issue not yet resolved is which OpenType feature should be used
  524. to access Mtavruli glyph shapes; right now, FreeType doesn't set up
  525. support for them, but it is easy to add them later on as soon as
  526. more information is available.
  527. * src/autofit/afblue.dat: Add blue zone data for Georgian.
  528. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  529. * src/autofit/afscript.h: Add Georgian standard characters.
  530. * src/autofit/afranges.c: Add Georgian data.
  531. * src/autofit/afstyles.h: Add Georgian data.
  532. 2016-04-05 Werner Lemberg <wl@gnu.org>
  533. [autofit] Provide dummy blue zone for pseudo script `none'.
  534. Even if the dummy hinter is used as the handler for `none' (which
  535. doesn't use blue zones), it is more consistent than the old value
  536. (which was 0), pointing to Arabic...
  537. * src/autofit/afblue.dat: Add `AF_BLUE_STRINGSET_NONE'.
  538. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  539. * src/autofit/afstyles.h (none_dflt): Use AF_BLUE_STRINGSET_NONE.
  540. 2016-03-30 Werner Lemberg <wl@gnu.org>
  541. * src/pfr/pfrload.c (pfr_aux_name_load): Thinko (#47567).
  542. 2016-03-30 Werner Lemberg <wl@gnu.org>
  543. * src/pfr/pfrload.c (pfr_log_font_count): Better font size estimate.
  544. 2016-03-30 Werner Lemberg <wl@gnu.org>
  545. * src/pfr/pfrload.c (pfr_aux_name_load): Fix memory leak (#47567).
  546. 2016-03-29 Werner Lemberg <wl@gnu.org>
  547. * src/base/ftadvanc.c (FT_Get_Advances): Fix invalid left shift.
  548. 2016-03-29 Werner Lemberg <wl@gnu.org>
  549. [pfr] Fix binary search (#47514).
  550. * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border
  551. conditions correctly.
  552. 2016-03-29 Werner Lemberg <wl@gnu.org>
  553. [pfr] Minor.
  554. * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left',
  555. `right', and `middle' with `min', `max', and `mid' as used in other
  556. FreeType binary search code.
  557. (pfr_load_bitmap_metrics): Fix invalid left shift.
  558. 2016-03-29 Werner Lemberg <wl@gnu.org>
  559. * src/pfr/pfrtypes.h: Replace all enums with macros.
  560. We need `~FOO' to unset bits, and only with unsigned values (which
  561. `enum' isn't normally) this works cleanly.
  562. 2016-03-26 Werner Lemberg <wl@gnu.org>
  563. [pfr] Robustify bitmap strike handling (#47514).
  564. We did a binary search for a charcode without ensuring that the
  565. searched data is ordered. Validating the order is now done lazily,
  566. this is, the first access to a bitmap glyph triggers the order check
  567. in the corresponding bitmap strike.
  568. * src/pfr/pfrtypes.h (PFR_BitmapFlags): New values
  569. `PFR_BITMAP_VALID_CHARCODES' and `PFR_BITMAP_CHARCODES_VALIDATED'.
  570. * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Make `flags' argument
  571. a pointer. Handle new PFR_BITMAP_XXX flags.
  572. (pfr_slot_load_bitmap): Updated.
  573. 2016-03-26 Werner Lemberg <wl@gnu.org>
  574. [pfr] Fix handling of compound glyphs.
  575. Extra items are indicated with different bit positions.
  576. * src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
  577. `PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
  578. `PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.
  579. * src/pfr/pfrgload.c (pfr_glyph_load_simple,
  580. pfr_glyph_load_compound): Use them.
  581. 2016-03-25 Werner Lemberg <wl@gnu.org>
  582. [pfr] Minor.
  583. * src/pfr/pfrsbit.c, src/pfr/pfrobjs.c: Use flag names instead of
  584. bare numbers.
  585. 2016-03-25 Werner Lemberg <wl@gnu.org>
  586. [pfr] Various clang sanitizer fixes.
  587. * src/pfr/pfrsbit.c (pfr_load_bitmap_metrics): Correctly handle
  588. signed nibbles.
  589. (pfr_slot_load_bitmap): Correctly exit frame in case of error.
  590. Fix invalid left shifts.
  591. 2016-03-23 Werner Lemberg <wl@gnu.org>
  592. Rename `VERSION.DLL' (#47472).
  593. * docs/VERSION.DLL: Renamed to...
  594. * docs/VERSIONS.TXT: ...this.
  595. 2016-03-23 Werner Lemberg <wl@gnu.org>
  596. [raster, smooth] Directly test outline size (#47500).
  597. This improves stand-alone compilation.
  598. * src/base/ftoutln.c (FT_Outline_Render): Move cbox size test to...
  599. * src/raster/ftraster.c (ft_black_render), src/smooth/ftgrays.c
  600. (gray_raster_render): ...these functions.
  601. 2016-03-23 Werner Lemberg <wl@gnu.org>
  602. [raster, smooth] Fix some clang sanitizer runtime issues.
  603. * src/raster/ftraster.c (ft_black_reset, ft_black_set_mode,
  604. ft_black_render): Harmonize signatures with `ftimage.h'.
  605. * src/smooth/ftgrays.c (gray_raster_render, gray_raster_reset):
  606. Ditto.
  607. 2016-03-22 Werner Lemberg <wl@gnu.org>
  608. * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Minor.
  609. This fixes an AddressSanitizer issue:
  610. ttgload.c:430:7: runtime error: null pointer passed as argument 1,
  611. which is declared to never be null
  612. 2016-03-21 Werner Lemberg <wl@gnu.org>
  613. * src/autofit/afhints.c (af_glyph_hints_reload): Thinko.
  614. This fixes the previous commit to this file.
  615. 2016-03-21 Alexei Podtelezhnikov <apodtele@gmail.com>
  616. [smooth] Partly revert recent changes.
  617. * src/smooth/ftgrays.c (gray_conic_to, gray_cubic_to): Rework
  618. conditions to fix rendering issues.
  619. 2016-03-20 Werner Lemberg <wl@gnu.org>
  620. [autofit] Show `near' points in tracing.
  621. * src/autofit/afhints.h (AF_FLAG_NEAR): New macro.
  622. * src/autofit/afhints.c (af_glyph_hints_dump_points): Implement it.
  623. (af_glyph_hints_reload): Handle AF_FLAG_NEAR.
  624. 2016-03-18 Alexei Podtelezhnikov <apodtele@gmail.com>
  625. [smooth] Minor refactoring and microoptimizations.
  626. * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
  627. band clipping from here.
  628. (gray_conic_to, gray_cubic_to): ... to here.
  629. (gray_render_line, gray_render_scanline): Initialize variables closer
  630. to their use.
  631. 2016-03-17 Alexei Podtelezhnikov <apodtele@gmail.com>
  632. [smooth] Minor refactoring.
  633. * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
  634. upscaling from here.
  635. (gray_conic_to, gray_cubic_to): ... to here.
  636. 2016-03-15 Werner Lemberg <wl@gnu.org>
  637. * src/autofit/aflatin.c (af_latin_compute_stem_width): Optimize.
  638. 2016-03-14 Alexei Podtelezhnikov <apodtele@gmail.com>
  639. [smooth] Temporarily revert 6eb6158dd787 (#47114).
  640. * src/smooth/ftgrays.c (gray_render_line): Old implementation.
  641. 2016-03-12 Werner Lemberg <wl@gnu.org>
  642. [ftfuzzer] Improve coverage of rasterfuzzer.
  643. * src/tools/ftfuzzer/rasterfuzzer.cc (LLVMFuzzerTestOneInput): Use
  644. input data for `tags' array also.
  645. Trim input data to get more positive hits.
  646. 2016-03-11 Pavlo Denysov <paul.kiev+savannah@gmail.com>
  647. Fix CMake issues for iOS (patch #8941).
  648. * CMakeLists.txt (CMAKE_TOOLCHAIN_FILE): Fix directory.
  649. * builds/cmake/iOS.cmake: No longer enforce gcc.
  650. 2016-03-09 Behdad Esfahbod <behdad@behdad.org>
  651. [truetype] Fix handling of non-intermediate GX tuples.
  652. We probably did not notice this as all fonts we tested had only
  653. tuple_coords[i] be +1 or -1 for non-intermediate tuples.
  654. * src/truetype/ttgxvar.c (ft_var_apply_tuple): Implement it.
  655. 2016-03-06 Alexei Podtelezhnikov <apodtele@gmail.com>
  656. [base] Refuse to render enormous outlines (#47114).
  657. The goal is to avoid integer overflows in the rendering algorithms.
  658. The limit is chosen arbitrarily at some 2^18 pixels, which should be
  659. enough for modern devices including printers.
  660. * src/base/ftoutln.c (FT_Outline_Render): Check CBox and reject
  661. enormous outlines.
  662. 2016-03-06 Alexei Podtelezhnikov <apodtele@gmail.com>
  663. [smooth] Replace left shifts with multiplications (#47114).
  664. * src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it.
  665. 2016-03-05 Werner Lemberg <wl@gnu.org>
  666. [autofit] Avoid excessive stem length rounding (#25392).
  667. * src/autofit/aflatin.c (af_latin_compute_stem_width): Add argument
  668. to pass difference between hinted and unhinted position of base
  669. point; use this to adjust the stem width depending on the PPEM so
  670. that it doesn't become too large under certain circumstances.
  671. Update all callers using value 0 for this argument except...
  672. (af_latin_align_linked_edge): Pass position delta of base point to
  673. `af_latin_compute_stem_width'.
  674. 2016-03-05 J Raynor <jxraynor@gmail.com>
  675. Make FreeType compile on AIX out of the box.
  676. * builds/unix/configure.raw (XX_ANSIFLAGS): Don't use `-ansi' on
  677. AIX.
  678. 2016-03-01 Werner Lemberg <wl@gnu.org>
  679. Kostya Serebryany <kcc@google.com>
  680. [ftfuzzer] Add unit for testing smooth and black rasterizers.
  681. * src/tools/ftfuzzer/rasterfuzzer.cc: New file.
  682. 2016-03-01 Werner Lemberg <wl@gnu.org>
  683. [autofit] Fix reallocation error introduced in 2016-02-27 (#47310).
  684. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Reassign
  685. `prev_segment' after reallocation.
  686. 2016-03-01 Werner Lemberg <wl@gnu.org>
  687. Fix clang warnings.
  688. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Use
  689. FT_UShort for `min_flags' and `max_flags'.
  690. Initialize `prev_*' variables.
  691. * src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix
  692. types of local variables.
  693. * src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]:
  694. Update `printf' format string.
  695. * src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast.
  696. (LLVMFuzzerTestOneInput): Fix loop type.
  697. 2016-02-29 Werner Lemberg <wl@gnu.org>
  698. [autofit] Add blue-zone support for Sinhala script.
  699. This essentially moves the Sinhala script from the `Indic' hinter to
  700. the `Latin' hinter.
  701. * src/autofit/afblue.dat: Add blue zone data for Sinhala.
  702. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  703. * src/autofit/afscript.h: Add Sinhala standard character and move data
  704. out of AF_CONFIG_OPTION_INDIC block.
  705. * src/autofit/afranges.c: Move Sinhala data out of
  706. AF_CONFIG_OPTION_INDIC block.
  707. * src/autofit/afstyles.h: Update Sinhala data; in particular, use
  708. AF_WRITING_SYSTEM_LATIN.
  709. 2016-02-27 Werner Lemberg <wl@gnu.org>
  710. [autofit] Properly handle spikes pointing to the x-axis.
  711. An example that gets better rendered is glyph `uusignTaml' (glyph
  712. index 2286) in font `FreeSerif.ttf' (Version 0412.2263) at 22ppem.
  713. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Properly
  714. handle segments where the last point of the first segment is
  715. identical to the first point in the second one. This can happen for
  716. malformed fonts or spikes. We either merge the new segment with the
  717. previous one (both segments point into the same direction), or we
  718. discard the shorter segment if they point into different directions.
  719. 2016-02-27 Werner Lemberg <wl@gnu.org>
  720. [autofit] Minor code clean-up.
  721. * src/autofit/aflatin.c (af_latin_hints_compute_segments): Change
  722. some local variable names to better differentiate between values
  723. along a segment and values orthogonal to it.
  724. 2016-02-26 Werner Lemberg <wl@gnu.org>
  725. [autofit] Improve BOUND action.
  726. In complex glyph shapes, the original logic was too simple to cater
  727. for situations that would actually need something similar to PS Hint
  728. masks. This fix should alleviate the worst cases.
  729. * src/autofit/aflatin.c (af_latin_hint_edges): Don't allow
  730. complete disappearance of stems.
  731. 2016-02-25 Werner Lemberg <wl@gnu.org>
  732. [autofit] Add blue-zone support for Tamil script.
  733. This essentially moves the Tamil script from the `Indic' hinter to
  734. the `Latin' hinter.
  735. * src/autofit/afblue.dat: Add blue zone data for Tamil.
  736. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  737. * src/autofit/afscript.h: Add Tamil standard character and move data
  738. out of AF_CONFIG_OPTION_INDIC block.
  739. * src/autofit/afranges.c: Move Tamil data out of
  740. AF_CONFIG_OPTION_INDIC block.
  741. * src/autofit/afstyles.h: Update Tamil data; in particular, use
  742. AF_WRITING_SYSTEM_LATIN.
  743. 2016-02-18 Werner Lemberg <wl@gnu.org>
  744. [autofit] Add blue-zone support for Malayalam script.
  745. This essentially moves the Malayalam script from the `Indic' hinter
  746. to the `Latin' hinter.
  747. * src/autofit/afblue.dat: Add blue zone data for Malayalam.
  748. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  749. * src/autofit/afscript.h: Add Malayalam standard characters and move
  750. data out of AF_CONFIG_OPTION_INDIC block.
  751. * src/autofit/afranges.c: Move Malayalam data out of
  752. AF_CONFIG_OPTION_INDIC block.
  753. * src/autofit/afstyles.h: Update Malayalam data; in particular, use
  754. AF_WRITING_SYSTEM_LATIN.
  755. 2016-02-16 Alexei Podtelezhnikov <apodtele@gmail.com>
  756. [smooth] Fix integer overflow (#47114).
  757. * src/smooth/ftgrays.c (TArea): Make it unconditionally `long'.
  758. 2016-02-15 Werner Lemberg <wl@gnu.org>
  759. * src/cff/cffparse.c (cff_parse_multiple_master): Improve tracing.
  760. 2016-02-15 Werner Lemberg <wl@gnu.org>
  761. [cff] Handle T2 operator only with old CFF engine (#47157).
  762. * src/cff/cffparse.c (cff_parser_run) <opcode 31>: Enclose with
  763. #ifdef CFF_CONFIG_OPTION_OLD_ENGINE...#endif.
  764. 2016-02-15 Werner Lemberg <wl@gnu.org>
  765. [cff] Partially handle `load' and `store' ops in old CFF engine.
  766. Now all glyphs of MM CFFs like `ITCGaramondMM-It.otf' can be
  767. displayed.
  768. * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_store,
  769. cff_op_load>: Partially implement it.
  770. * src/cff/cffparse.c (cff_parser_init): Add new parameter to pass
  771. the number of Multiple Master axes.
  772. Update all callers.
  773. (cff_parse_multiple_master): Get number of axes.
  774. (cff_parser_run) <opcode 31>: Updated.
  775. * src/cff/cffparse.h: Updated.
  776. (CFF_ParserRec): Add `num_axes' field.
  777. * src/cff/cffload.c: Updated.
  778. * src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_axes' field.
  779. 2016-02-15 Werner Lemberg <wl@gnu.org>
  780. [cff] Correctly trace SIDs that contain NULL bytes.
  781. We need this to properly trace Multiple Master CFFs, which contain
  782. two SIDs that are charstrings.
  783. This commit makes FreeType also show the last SID, omitted
  784. previously due to a bug.
  785. * src/cff/cfftypes.h (CFF_FontRec): Add `string_pool_size' field.
  786. * src/cff/cffload.c (cff_index_get_pointers): Add argument to return
  787. the pool size.
  788. Update all callers.
  789. * src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Directly
  790. access `cff->strings' to display the non-default strings.
  791. 2016-02-14 Werner Lemberg <wl@gnu.org>
  792. * src/base/fthash.c: Include FT_INTERNAL_MEMORY_H.
  793. 2016-02-14 Werner Lemberg <wl@gnu.org>
  794. * src/cff/cffparse.c: Include `cffgload.h'.
  795. Problem reported by Colin Walters <walters@verbum.org>.
  796. 2016-02-14 Werner Lemberg <wl@gnu.org>
  797. [cff] Make old CFF engine show MM CFFs (without variations).
  798. The new code only displays the first master in the font.
  799. * src/cff/cffgload.c (cff_decode_parse_charstrings): Add new
  800. parameter to allow function calls from dictionaries also.
  801. <cff_op_blend>: Partially implement it.
  802. Update all callers.
  803. * src/cff/cffgload.h: Updated.
  804. * src/cff/cffparse.c (cff_parser_init): Add new parameter to pass the
  805. number of Multiple Master designs.
  806. Update all callers.
  807. (cff_parse_multiple_master): New function to rudimentarily parse
  808. operator.
  809. (cff_parser_run): Handle `T2' operator.
  810. * src/cff/cffparse.h: Updated.
  811. (CFF_ParserRec): Add `num_designs' field.
  812. * src/cff/cffload.c: Updated.
  813. * src/cff/cfftoken.h: Handle `MultipleMaster' operator.
  814. * src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_designs' field.
  815. * src/sfnt/sfobjs.c (sfnt_init_face): Don't handle `fvar' table for
  816. MM CFFs.
  817. 2016-02-09 Werner Lemberg <wl@gnu.org>
  818. [docmaker] Don't emit trailing newlines.
  819. * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_code):
  820. Use `rstrip'.
  821. 2016-02-07 Werner Lemberg <wl@gnu.org>
  822. * Version 2.6.3 released.
  823. =========================
  824. Tag sources with `VER-2-6-3'.
  825. * docs/VERSION.DLL: Update documentation and bump version number to
  826. 2.6.3.
  827. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
  828. builds/windows/vc2005/index.html,
  829. builds/windows/vc2008/freetype.vcproj,
  830. builds/windows/vc2008/index.html,
  831. builds/windows/vc2010/freetype.vcxproj,
  832. builds/windows/vc2010/index.html,
  833. builds/windows/visualc/freetype.dsp,
  834. builds/windows/visualc/freetype.vcproj,
  835. builds/windows/visualc/index.html,
  836. builds/windows/visualce/freetype.dsp,
  837. builds/windows/visualce/freetype.vcproj,
  838. builds/windows/visualce/index.html,
  839. builds/wince/vc2005-ce/freetype.vcproj,
  840. builds/wince/vc2005-ce/index.html,
  841. builds/wince/vc2008-ce/freetype.vcproj,
  842. builds/wince/vc2008-ce/index.html: s/2.6.2/2.6.3/, s/262/263/.
  843. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
  844. * builds/unix/configure.raw (version_info): Set to 18:3:12.
  845. * CMakeLists.txt (VERSION_PATCH): Set to 3.
  846. * docs/CHANGES: Updated.
  847. 2016-02-07 Werner Lemberg <wl@gnu.org>
  848. Fix another runtime error found by clang's sanitizer (#47082).
  849. * src/base/ftstroke.c (ft_stroke_border_export): Properly handle
  850. empty input buffer.
  851. 2016-02-07 Werner Lemberg <wl@gnu.org>
  852. Fix runtime errors found by clang's sanitizer (#47082).
  853. * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
  854. (FT_Outline_Copy), src/cache/ftcsbits.c (ftc_sbit_copy_bitmap):
  855. Properly handle empty input buffer.
  856. 2016-02-07 Werner Lemberg <wl@gnu.org>
  857. [cff] Minor.
  858. * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_sqrt>:
  859. Remove dead code.
  860. 2016-02-07 Werner Lemberg <wl@gnu.org>
  861. [cff] Implement missing operators in new engine (except `random').
  862. * src/cff/cf2font.h (CF2_STORAGE_SIZE): New macro.
  863. * src/cff/cf2intrp.c (cf2_interpT2CharString): Implement the
  864. following operators: abs, add, and, div, drop, dup, eq, exch, get,
  865. ifelse, index, mul, neg, not, or, put, roll, sqrt, sub.
  866. * src/cff/cf2stack.h, src/cff/cf2stack.c (cf2_stack_roll): New
  867. auxiliary function for `roll' operator.
  868. 2016-02-06 Werner Lemberg <wl@gnu.org>
  869. [cff] Fix some Type 2 operators in old CFF engine.
  870. * src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq'
  871. operator, add `not' and (unsupported) `blend' operators.
  872. 2016-02-05 Sebastian Rasmussen <sebras@gmail.com>
  873. Make direct call of `make install' work (#47072).
  874. * builds/unix/unix-def.in (freetype-config): Make sure
  875. `freetype-config' is generated for both make targets (`all' and
  876. `install').
  877. 2016-02-05 Werner Lemberg <wl@gnu.org>
  878. [base] Fix advance width loading for MM and GX fonts (#47064).
  879. * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for
  880. MM and GX fonts.
  881. Update callers.
  882. 2016-02-03 Werner Lemberg <wl@gnu.org>
  883. [cff] Fix handling of face_index == -1 for pure CFF.
  884. * src/cff/cffobjs.c (cff_face_init): Return correct number of faces.
  885. 2016-01-30 Werner Lemberg <wl@gnu.org>
  886. [autofit] Minor tracing improvement.
  887. * src/autofit/afhints.c (af_glyph_hints_dump_points): Insert newline
  888. at the start of a new contour.
  889. 2016-01-28 Nikolaus Waxweiler <madigens@gmail.com>
  890. Remove unpatented hinter (3/3).
  891. * include/freetype/config/ftoption.h
  892. (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove.
  893. * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
  894. `ignore_unpatented_hinter' field.
  895. Update users.
  896. (FT_DEBUG_HOOK_UNPATENTED_HINTING): Remove.
  897. Update users.
  898. * include/freetype/internal/tttypes.h (TT_FaceRec): Remove
  899. `unpatented_hinting' field.
  900. Update users.
  901. * src/base/ftpatent.c (_tt_check_patents_in_range,
  902. _tt_check_patents_in_table, _tt_face_check_patents): Remove.
  903. (FT_Face_CheckTrueTypePatents, FT_Face_SetUnpatentedHinting):
  904. Replace code with dummies.
  905. * src/truetype/ttobjs.c (tt_face_init): Remove now defunct code.
  906. * src/truetype/ttobjs.h (TT_GraphicsState): Remove `both_x_axis'
  907. field.
  908. 2016-01-28 Nikolaus Waxweiler <madigens@gmail.com>
  909. Remove unpatented hinter (2/3).
  910. * devel/ftoption.h (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove.
  911. 2016-01-28 Nikolaus Waxweiler <madigens@gmail.com>
  912. Remove unpatented hinter (1/3).
  913. * src/truetype/ttinterp.c [TT_CONFIG_OPTION_UNPATENTED_HINTING]:
  914. Remove all code related to this macro.
  915. 2016-01-28 Werner Lemberg <wl@gnu.org>
  916. [autofit] Add blue-zone support for Kannada script.
  917. This essentially moves the Kannada script from the `Indic' hinter to
  918. the `Latin' hinter.
  919. * src/autofit/afblue.dat: Add blue zone data for Kannada.
  920. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  921. * src/autofit/afscript.h: Add Kannada standard characters and move
  922. data out of AF_CONFIG_OPTION_INDIC block.
  923. * src/autofit/afranges.c: Move Kannada data out of
  924. AF_CONFIG_OPTION_INDIC block.
  925. * src/autofit/afstyles.h: Update Kannada data; in particular, use
  926. AF_WRITING_SYSTEM_LATIN.
  927. 2016-01-22 Alexei Podtelezhnikov <apodtele@gmail.com>
  928. Better access to 64-bit integers for C99 compilers.
  929. * include/freetype/config/ftconfig.h [FT_LONG64]: Use
  930. __STDC_VERSION__ to define 64-bit integers.
  931. * builds/unix/ftconfig.in [FT_LONG64]: Ditto.
  932. * builds/vms/ftconfig.h [FT_LONG64]: Ditto.
  933. 2016-01-21 Werner Lemberg <wl@gnu.org>
  934. [gxvalid] Remove commented out code.
  935. * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Do it.
  936. 2016-01-20 Werner Lemberg <wl@gnu.org>
  937. [autofit] Complete last autofit commit.
  938. Problem reported by Kostya Serebryany <kcc@google.com>.
  939. * src/autofit/afshaper.c (af_shaper_get_coverage)
  940. [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Update signature.
  941. 2016-01-20 Werner Lemberg <wl@gnu.org>
  942. Still handle `__FTERRORS_H__'.
  943. We need this for backward compatibility.
  944. Problem reported by John Emmas <johne53@tiscali.co.uk>.
  945. * include/freetype/fterrors.h: Fix inclusion guard so that
  946. undefining either `FTERRORS_H_' or `__FTERRORS_H__' works as
  947. expected.
  948. 2016-01-19 Werner Lemberg <wl@gnu.org>
  949. [autofit] Fix handling of default script.
  950. Patch taken from ttfautohint, commit
  951. 071ae2c00e0d67f9d19418f4fade1c23d27dc185.
  952. There were two bugs.
  953. - We now use non-standard script tags like `khms' for special
  954. purposes. However, HarfBuzz maps such tags to `DFLT', and
  955. without this commit the associated lookups were incorrectly
  956. assigned to the non-standard tags.
  957. - Let's assume we have a Bengali font, and the font's `DFLT'
  958. script tag handles the necessary lookups for Bengali, too.
  959. Without this commit, the `DFLT' lookups were assigned to
  960. ttfautohint's default script (usually `latn') before the
  961. standard lookups for Bengali were handled.
  962. We now have the following order while searching for covered
  963. glyph indices.
  964. special features of scripts (e.g. `sups' for Cyrillic)
  965. Unicode mappings of scripts
  966. remaining features of scripts (especially important for Indic
  967. scripts)
  968. default features of default script
  969. * src/autofit/afshaper.c, src/autofit/afshaper.h
  970. (af_shaper_get_coverage): Add boolean parameter to indicate default
  971. script.
  972. Update all callers.
  973. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
  974. Fix search order for coverages.
  975. 2016-01-19 Werner Lemberg <wl@gnu.org>
  976. Various minor clang fixes.
  977. * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
  978. src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
  979. `ch'.
  980. * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast.
  981. * src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast.
  982. * src/base/fthash.c (hash_num_lookup): Add cast.
  983. * src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast.
  984. * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out
  985. redundant code.
  986. * src/type1/t1driver.c (t1_get_ps_font_value) <PS_DICT_SUBR>: Add
  987. cast.
  988. * src/type1/t1load.c (parse_subrs): Fix type of `count'.
  989. 2016-01-19 Derek B. Noonburg <derekn@glyphandcog.com>
  990. [truetype] Add another tricky font.
  991. * src/truetype/ttobjs.c (TRICK_SFNT_IDS_NUM_FACES): Increase.
  992. (sfnt_id): Add variant of `DFKaiShu'.
  993. 2016-01-14 Alexei Podtelezhnikov <apodtele@gmail.com>
  994. [base] Empower `FT_Library_SetLcdFilterWeights'.
  995. * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): Enable filter
  996. in addition to setting weights.
  997. (FT_Library_SetLcdFilter): Clean out FT_FORCE_LIGHT_LCD_FILTER and
  998. FT_FORCE_LEGACY_LCD_FILTER.
  999. * include/freetype/ftlcdfil.h: Documentation update.
  1000. 2016-01-12 Werner Lemberg <wl@gnu.org>
  1001. Don't use macro names that start with `_[A-Z]' [3/3].
  1002. Such macro names are reserved for both C and C++.
  1003. * src/cache/ftccache.h: s/_FTC_FACE_ID_HASH/FTC_FACE_ID_HASH/.
  1004. Update all callers.
  1005. (FTC_CACHE_LOOKUP_CMP): Replace `_XXX' with `XXX_'.
  1006. * src/cache/ftcmru.c (FTC_MRULIST_LOOKUP_CMP): Ditto.
  1007. 2016-01-12 Werner Lemberg <wl@gnu.org>
  1008. Don't use macro names that start with `_[A-Z]' [2/3].
  1009. Such macro names are reserved for both C and C++.
  1010. * include/freetype/ftimage.h, src/raster/ftraster.c,
  1011. src/smooth/ftgrays.c, src/smooth/ftgrays.h:
  1012. s/_STANDALONE_/STANDALONE_/.
  1013. 2016-01-12 Werner Lemberg <wl@gnu.org>
  1014. Don't use macro names that start with `_[A-Z]' [1/3].
  1015. Such macro names are reserved for both C and C++.
  1016. * src/bdf/bdflib.c: Replace macros of the form `_BDF_XXX' with
  1017. `BDF_XXX_'.
  1018. 2016-01-12 Werner Lemberg <wl@gnu.org>
  1019. Don't use macro names that contain `__' [2/2].
  1020. Such macro names are reserved for both C and C++.
  1021. * src/cache/*: s/__/_/.
  1022. 2016-01-12 Werner Lemberg <wl@gnu.org>
  1023. Don't use macro names that contain `__' [1/2].
  1024. Such macro names are reserved for both C and C++.
  1025. * */*: Replace macros of the form `__XXX_H__' with `XXX_H_'.
  1026. 2016-01-10 Jered Gray <jegray@google.com>
  1027. [cff] Fix usage of `|' operator.
  1028. * src/cff/cf2intrp.c (cf2_interpT2CharString) [cf2_cmdEXTENDEDNMBR,
  1029. default]: `|' is not guaranteed to be processed from left to right
  1030. by the compiler. However, the code repeatedly calls
  1031. `cf2_buf_readByte' to get the arguments to `|' ... Fix this.
  1032. 2015-12-25 Werner Lemberg <wl@gnu.org>
  1033. [autofit] Make top-to-bottom hinting work in latin auto-hinter.
  1034. This improves rendering of scripts like Bengali or Devanagari.
  1035. * src/autofit/afhints.c (af_axis_hints_new_edge): Add parameter to
  1036. pass top-to-bottom hinting flag. This makes the function sort edges
  1037. in descending vertical position.
  1038. * src/autofit/afhints.c: Updated.
  1039. * src/autofit/aflatin.c (af_latin_hints_compute_edges,
  1040. af_latin_hint_edges): Use `top_to_bottom_hinting' flag.
  1041. * src/autofit/afcjk.c (af_cjk_hints_compute_edges),
  1042. src/autofit/aflatin2.c (af_latin2_hints_compute_edges): Updated.
  1043. 2015-12-24 Werner Lemberg <wl@gnu.org>
  1044. [autofit] Add hinting direction to `AF_ScriptClassRec'.
  1045. Still unused.
  1046. * src/autofit/afglobal.c (SCRIPT): Handle hinting direction.
  1047. * src/autofit/aftypes.h (AF_ScriptClassRec): Add
  1048. `top_to_bottom_hinting' field.
  1049. (AF_HINTING_BOTTOM_TO_TOP, AF_HINTING_TOP_TO_BOTTOM): New macros.
  1050. (AF_DEFINE_SCRIPT_CLASS): Updated.
  1051. 2015-12-23 Werner Lemberg <wl@gnu.org>
  1052. [autofit] Start implementing hinting direction (up/down, down/up).
  1053. Right now, it does nothing.
  1054. * src/autofit/afscript.h: Add another parameter to `SCRIPT',
  1055. specifying hinting direction.
  1056. * src/autofit/afglobal.c, src/autofit/afglobal.h,
  1057. src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c,
  1058. src/autofit/aftypes.h: Extend `SCRIPT' definitions.
  1059. 2015-12-22 Werner Lemberg <wl@gnu.org>
  1060. * src/type1/t1load.c (parse_subrs): Fix memory leak (#46744).
  1061. 2015-12-22 Werner Lemberg <wl@gnu.org>
  1062. [base] Make hash interface symmetric.
  1063. Use `num' and `str' infixes everywhere.
  1064. * src/base/fthash.c (ft_hash_init): Renamed to...
  1065. (hash_init): ... This.
  1066. (ft_hash_str_init, ft_hash_num_init): New functions.
  1067. (ft_hash_free): Renamed to...
  1068. (ft_hash_str_free): ... This.
  1069. * include/freetype/internal/fthash.h: Updated.
  1070. * src/bdf/bdflib.c, src/type1/t1load.c, src/type1/t1objs.c: Updated.
  1071. 2015-12-21 Werner Lemberg <wl@gnu.org>
  1072. [type1] Avoid shift of negative numbers (#46732).
  1073. * src/type1/t1load.c (parse_subrs): Do it.
  1074. 2015-12-20 Werner Lemberg <wl@gnu.org>
  1075. [type1, psaux] Handle large values of num_subrs correctly (#46692).
  1076. We now use a hash to map from subr indices to array elements holding
  1077. the subroutines, if necessary.
  1078. * include/freetype/internal/t1types.h: Include FT_INTERNAL_HASH_H.
  1079. (T1_FontRec): Add `subrs_hash' field.
  1080. * include/freetype/internal/psaux.h: Include FT_INTERNAL_HASH_H.
  1081. (T1_DecoderRec): Add `subrs_hash' field.
  1082. * src/type1/t1load.h (T1_LoaderRec): Add `subrs_hash' field.
  1083. * src/type1/t1driver.c: Include FT_INTERNAL_HASH_H.
  1084. (t1_ps_get_font_value) [PS_DICT_SUBR]: Look up hash if necessary.
  1085. * src/type1/t1load.c: Include FT_INTERNAL_HASH_H.
  1086. (parse_subrs): Use hash for subr indices that exceed the allocated
  1087. number of subr slots.
  1088. (t1_init_loader): Remove unnecessary code.
  1089. (t1_done_loader, T1_Open_Face): Updated.
  1090. * src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances,
  1091. T1_Load_Glyph): Updated.
  1092. * src/type1/t1objs.c (T1_Face_Done): Updated.
  1093. * src/psaux/t1decode.c: Include FT_INTERNAL_HASH_H.
  1094. (t1_decoder_parse_charstrings) [op_callsubr]: Look up hash if
  1095. necessary.
  1096. * src/cid/cidgload.c (cid_load_glyph): Updated.
  1097. 2015-12-20 Werner Lemberg <wl@gnu.org>
  1098. [base] Thinko: Remove free function pointer.
  1099. We don't copy keys or values while hashing.
  1100. * include/freetype/internal/fthash.h (FT_Hash_FreeFunc): Removed.
  1101. (FT_HashRec): Remove `free' field.
  1102. * src/base/fthash.c (hash_str_free): Removed.
  1103. (ft_hash_init, ft_hash_free): Updated.
  1104. 2015-12-20 Werner Lemberg <wl@gnu.org>
  1105. [base, bdf] Don't expose `FT_Hashnode' in hash functions.
  1106. * src/base/fthash.c (hash_lookup, ft_hash_str_lookup,
  1107. ft_hash_num_lookup): Return pointer to `size_t' instead of
  1108. `FT_Hashnode'.
  1109. * include/freetype/internal/fthash.h: Updated.
  1110. * src/bdf/bdflib.c (bdf_get_property, _bdf_add_property,
  1111. bdf_get_font_property): Updated.
  1112. 2015-12-20 Werner Lemberg <wl@gnu.org>
  1113. [base, bdf] Add number hashing.
  1114. * src/base/fthash.c (hash_num_lookup, hash_num_compare): New
  1115. functions.
  1116. (ft_hash_init): Add argument to select between number and string
  1117. hashing.
  1118. (ft_hash_num_insert, ft_hash_num_lookup): New functions.
  1119. * include/freetype/internal/fthash.h: Updated.
  1120. * src/bdf/bdflib.c (_bdf_parse_start): Updated.
  1121. 2015-12-20 Werner Lemberg <wl@gnu.org>
  1122. [base] Introduce hash lookup, compare, and free function pointers.
  1123. * include/freetype/internal/fthash.c (FT_Hash_LookupFunc,
  1124. FT_Hash_CompareFunc, FT_Hash_FreeFunc): New typedefs.
  1125. (FT_HashRec): Add `lookup', `compare', and `free' fields.
  1126. * src/base/fthash.c (hash_str_lookup, hash_str_compare,
  1127. hash_str_free): New functions.
  1128. (ft_hash_init): Set function pointers.
  1129. (hash_bucket, ft_hash_free): Use them.
  1130. 2015-12-20 Werner Lemberg <wl@gnu.org>
  1131. [base, bdf] Use a union as a hash key.
  1132. We want to support both an integer and a string key later on.
  1133. * include/freetype/internal/fthash.h (FT_Hashkey): New union.
  1134. (FT_HashnodeRec): Updated.
  1135. (ft_hash_insert, ft_hash_lookup): Renamed to ...
  1136. (ft_hash_str_insert, ft_hash_str_lookup): ... this.
  1137. * src/base/fthash.c (hash_bucket): Updated.
  1138. (ft_hash_insert, ft_hash_lookup): Renamed to ...
  1139. (hash_insert, hash_lookup): ... this.
  1140. (ft_hash_str_insert, ft_hash_str_lookup): New wrapper functions.
  1141. * src/bdf/bdflib.c: Updated.
  1142. 2015-12-19 Werner Lemberg <wl@gnu.org>
  1143. [bdf] Use new hash functions.
  1144. * src/bdf/bdf.h: Include FT_INTERNAL_HASH_H.
  1145. (hashnode, hashtable): Removed.
  1146. (bdf_font_t): Use `FT_HashRec' type for `proptbl'.
  1147. * src/bdf/bdflib.c: Remove all hash functions.
  1148. Update code for new hash structure and function names.
  1149. 2015-12-19 Werner Lemberg <wl@gnu.org>
  1150. [bdf, base] Lift hash functions from bdf driver to base module.
  1151. * src/base/fthash.c, include/freetype/internal/fthash.h: New files,
  1152. containing (massaged) code from `bdflib.c' and `bdf.h'.
  1153. * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H): New
  1154. macro.
  1155. * src/base/ftbase.c: Include `fthash.c'.
  1156. * src/base/Jamfile (_sources): Add `fthash'.
  1157. * src/base/rules.mk (BASE_SRC): Add `fthash.c'.
  1158. * docs/LICENSE.TXT: Updated.
  1159. 2015-12-15 Werner Lemberg <wl@gnu.org>
  1160. [autofit] Add blue-zone support for Bengali script.
  1161. This essentially moves the Bengali script from the `Indic' hinter to
  1162. the `Latin' hinter.
  1163. * src/autofit/afblue.dat: Add blue zone data for Bengali.
  1164. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  1165. * src/autofit/afscript.h: Add Bengali standard characters and move
  1166. data out of AF_CONFIG_OPTION_INDIC block.
  1167. * src/autofit/afranges.c: Move Bengali data out of
  1168. AF_CONFIG_OPTION_INDIC block.
  1169. * src/autofit/afstyles.h: Update Bengali data; in particular, use
  1170. AF_WRITING_SYSTEM_LATIN.
  1171. 2015-12-14 Ben Wagner <bungeman@gmail.com>
  1172. [bdf] Remove dead code (#46625).
  1173. The BDF specification only allows decimal numbers, no octal or
  1174. hexadecimal decoding is needed.
  1175. * src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous,
  1176. _bdf_atos): Remove unused code and parameters.
  1177. Update all callers.
  1178. (odigits): Remove.
  1179. 2015-12-14 Werner Lemberg <wl@gnu.org>
  1180. [base] Fix calls to `FT_Stream_Seek'.
  1181. * src/base/ftobjs.c (Mac_Read_sfnt_Resource, FT_Open_Face): Set
  1182. `error'.
  1183. 2015-12-14 Ben Wagner <bungeman@gmail.com>
  1184. [base] Check error when seeking to data supplied offset (#46635).
  1185. * src/base/ftobjs.c (open_face_PS_from_sfnt_stream):
  1186. `ft_lookup_PS_in_sfnt_stream' returns offset and length from
  1187. user supplied data. Use of this these values must be checked.
  1188. 2015-12-13 Werner Lemberg <wl@gnu.org>
  1189. [autofit] Add support for Myanmar script.
  1190. * src/autofit/afblue.dat: Add blue zone data for Myanmar.
  1191. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  1192. * src/autofit/afscript.h: Add Myanmar standard characters.
  1193. * src/autofit/afranges.c: Add Myanmar data.
  1194. * src/autofit/afstyles.h: Add Myanmar data.
  1195. 2015-12-12 Werner Lemberg <wl@gnu.org>
  1196. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor.
  1197. 2015-12-12 Werner Lemberg <wl@gnu.org>
  1198. * src/autofit/afscript.h: Avoid potential crash.
  1199. 2015-12-10 Werner Lemberg <wl@gnu.org>
  1200. [autofit] Restore OpenType feature check.
  1201. This was removed while rewriting the HarfBuzz interface.
  1202. * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add `hb_buf' field to
  1203. hold internal HarfBuzz buffer, needed for feature comparison.
  1204. * src/autofit/afglobal.c (af_face_globals_new,
  1205. af_face_globals_free): Initialize and destroy `hb_buf'.
  1206. * src/autofit/afshaper.c (af_shaper_get_cluster): Compare character
  1207. (cluster) with and without applied feature.
  1208. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix tracing
  1209. message.
  1210. 2015-12-10 Werner Lemberg <wl@gnu.org>
  1211. [autofit] Remove redundant code.
  1212. * src/autofit/aflatin.c (af_latin_metrics_init_widths): Do it.
  1213. 2015-12-09 Werner Lemberg <wl@gnu.org>
  1214. [autofit] Thinko.
  1215. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Don't count
  1216. empty blue zones (bug introduced 2015-12-06).
  1217. 2015-12-09 Werner Lemberg <wl@gnu.org>
  1218. [autofit] Introduce subscript top blue zones.
  1219. This feature is mainly for Khmer: The idea is to avoid a clash
  1220. between the top of subscript glyphs and the bottom of normal
  1221. baseline glyphs.
  1222. This only works for character clusters mapped to multiple glyphs.
  1223. * src/autofit/afblue.dat: Add subscript top blue zone for Khmer.
  1224. * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_SUB_TOP): New
  1225. macro.
  1226. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  1227. * src/autofit/aflatin.h (AF_LATIN_IS_SUB_TOP_BLUE,
  1228. AF_LATIN_BLUE_SUB_TOP): New macros.
  1229. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle new
  1230. blue zone property.
  1231. Update tracing messages.
  1232. (af_latin_metrics_scale_dim): Handle new blue zone property.
  1233. (af_latin_hints_compute_blue_edges): Updated.
  1234. 2015-12-09 Werner Lemberg <wl@gnu.org>
  1235. [autofit] Fix tracing message.
  1236. * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Display
  1237. inactive blue zones also.
  1238. 2015-12-06 Werner Lemberg <wl@gnu.org>
  1239. * src/autofit/afblue.dat: Add more Khmer clusters.
  1240. Some fonts have incorrect ligatures; we need more samples to get a
  1241. good mean value.
  1242. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  1243. 2015-12-06 Werner Lemberg <wl@gnu.org>
  1244. [autofit] Typos.
  1245. * src/autofit/afshaper.c (af_shaper_buf_create, af_shaper_get_elem)
  1246. [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Make it compile.
  1247. 2015-12-06 Werner Lemberg <wl@gnu.org>
  1248. [autofit] Add support for Khmer script.
  1249. We split Khmer into two auto-hinter scripts: `Khmer' (`khmr') and
  1250. `Khmer symbols' (`khms', U+19E0-U+19FF).
  1251. * src/autofit/afblue.dat: Add blue zone data for Khmer.
  1252. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  1253. * src/autofit/afscript.h: Add Khmer standard characters.
  1254. * src/autofit/afranges.c: Add Khmer data.
  1255. * src/autofit/afstyles.h: Add Khmer data.
  1256. 2015-12-06 Werner Lemberg <wl@gnu.org>
  1257. [autofit] Rewrite HarfBuzz interface to support character clusters.
  1258. Scripts like Khmer have blue zones that can't be directly
  1259. represented by Unicode characters. Instead, it is necessary to let
  1260. HarfBuzz convert character clusters into proper glyph representation
  1261. forms, then deriving the blue zone information from the resulting
  1262. glyphs.
  1263. * src/autofit/hbshim.c, src/autofit/hbshim.h: Replaced by...
  1264. * src/autofit/afshaper.c, src/autofit/afshaper.h: ... these two new
  1265. files, providing a new API to access HarfBuzz.
  1266. The new API manages a HarfBuzz buffer with `af_shaper_buf_create'
  1267. and `af_shaper_buf_destroy'. The buffer receives a UTF8 encoded
  1268. string with function `af_shaper_get_cluster', and the resulting
  1269. glyph data (indices, advance widths, vertical offsets) can be
  1270. iteratively accessed with function `af_shaper_get_elem'.
  1271. * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
  1272. af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
  1273. * src/autofit/aflatin.c (af_latin_metrics_init_widths,
  1274. af_latin_metrics_init_blues, af_latin_metrics_check_digits):
  1275. Updated.
  1276. * include/freetype/internal/fttrace.h: s/afharfbuzz/afshaper/.
  1277. * src/autofit/afglobal.c: s/hbshim.h/afshaper.h/.
  1278. (af_face_globals_compute_style_coverage): Updated.
  1279. * src/autofit/afglobal.h: s/hbshim.h/afshaper.h/.
  1280. * src/autofit/autofit.c: s/hbshim.c/afshaper.c/.
  1281. * src/autofit/Jamfile, src/autofit/rules.mk (AUTOF_DRV_SRC):
  1282. Updated.
  1283. 2015-12-06 Werner Lemberg <wl@gnu.org>
  1284. [autofit] Prepare forthcoming changes.
  1285. This makes it easier to control the commits.
  1286. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Add dummy
  1287. loop. No functional change.
  1288. 2015-12-06 Werner Lemberg <wl@gnu.org>
  1289. [autofit] Use string of standard characters.
  1290. This is more flexible; additionally, it would allow character
  1291. clusters.
  1292. * src/autofit/aftypes.h (SCRIPT, AF_DEFINE_SCRIPT_CLASS): Updated.
  1293. (AF_ScriptClassRec): Replace `standard_char[123]' with
  1294. `standard_charstring'.
  1295. * src/autofit/afscript.h: Replace last three character arguments
  1296. of the `SCRIPT' calls with a string parameter, holding the standard
  1297. characters (in UTF-8 encoding) separated with spaces.
  1298. * src/autofit/afglobal.c, src/autofit/afglobal.h,
  1299. src/autofit/afpic.c, src/autofit/afranges.c, src/autofit/hbshim.c
  1300. (SCRIPT): Updated.
  1301. * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
  1302. src/autofit/aflatin.c (af_latin_metrics_init_widths): Updated.
  1303. 2015-12-05 Werner Lemberg <wl@gnu.org>
  1304. * src/autofit/afblue.dat: Separate blue zone characters with spaces.
  1305. Another preparation for character cluster support.
  1306. * src/autofit/afblue.c, src/autofit.afblue.h: Regenerated.
  1307. 2015-12-05 Werner Lemberg <wl@gnu.org>
  1308. * src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces.
  1309. Instead, reduce multiple spaces to a single one. We need this later
  1310. for supporting character clusters in `afblue.dat'.
  1311. 2015-12-05 Werner Lemberg <wl@gnu.org>
  1312. * src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'.
  1313. * src/autofit/afblue.h: Regenerated.
  1314. 2015-12-05 Werner Lemberg <wl@gnu.org>
  1315. * src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/.
  1316. 2015-12-03 Werner Lemberg <wl@gnu.org>
  1317. * builds/unix/install.mk (install): Remove stale `ft2build.h'.
  1318. 2015-12-01 Werner Lemberg <wl@gnu.org>
  1319. [type1] Avoid dangling pointer (#46572).
  1320. * src/type1/t1afm.c (T1_Read_Metrics): Properly reset
  1321. `face->afm_data'.
  1322. 2015-11-28 Alexei Podtelezhnikov <apodtele@gmail.com>
  1323. * include/freetype/ftlcdfil.h: Documentation tweak.
  1324. 2015-11-28 Werner Lemberg <wl@gnu.org>
  1325. * Version 2.6.2 released.
  1326. =========================
  1327. Tag sources with `VER-2-6-2'.
  1328. * docs/VERSION.DLL: Update documentation and bump version number to
  1329. 2.6.2.
  1330. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
  1331. builds/windows/vc2005/index.html,
  1332. builds/windows/vc2008/freetype.vcproj,
  1333. builds/windows/vc2008/index.html,
  1334. builds/windows/vc2010/freetype.vcxproj,
  1335. builds/windows/vc2010/index.html,
  1336. builds/windows/visualc/freetype.dsp,
  1337. builds/windows/visualc/freetype.vcproj,
  1338. builds/windows/visualc/index.html,
  1339. builds/windows/visualce/freetype.dsp,
  1340. builds/windows/visualce/freetype.vcproj,
  1341. builds/windows/visualce/index.html,
  1342. builds/wince/vc2005-ce/freetype.vcproj,
  1343. builds/wince/vc2005-ce/index.html,
  1344. builds/wince/vc2008-ce/freetype.vcproj,
  1345. builds/wince/vc2008-ce/index.html: s/2.6.1/2.6.2/, s/261/262/.
  1346. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
  1347. * builds/unix/configure.raw (version_info): Set to 18:2:12.
  1348. * CMakeLists.txt (VERSION_PATCH): Set to 2.
  1349. * docs/CHANGES: Updated.
  1350. 2015-11-28 Werner Lemberg <wl@gnu.org>
  1351. Fix C++ compilation.
  1352. * src/autofit/afloader.c: Include FT_INTERNAL_CALC_H.
  1353. * src/truetype/ttgload.c (load_truetype_glyph): Pacify compiler.
  1354. 2015-11-28 Nikolaus Waxweiler <madigens@gmail.com>
  1355. Change default LCD filter to be normalized and color-balanced.
  1356. * src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Update
  1357. `default_filter'.
  1358. 2015-11-28 Werner Lemberg <wl@gnu.org>
  1359. [docmaker] Allow references to section names.
  1360. In the reference, we show the section's title enclosed in single
  1361. quotes.
  1362. * src/tools/docmaker/formatter.py (Formatter::__init__): Collect
  1363. section names as identifiers.
  1364. * src/tools/docmaker/tohtml.py (section_title_header): Split into...
  1365. (section_title_header1, section_title_header2): ... these two
  1366. strings.
  1367. (HtmlFormatter::make_block_url, make_html_word, html_source_quote):
  1368. Handle sections.
  1369. (HtmlFormatter::section_enter): Updated to add `id' HTML attribute.
  1370. 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
  1371. [cmake] Add script to test the config module.
  1372. * builds/cmake/testbuild.sh: New file.
  1373. 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
  1374. * CMakeLists.txt: Create `freetype-config.cmake' config module.
  1375. 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
  1376. * CMakeLists.txt: Set CMAKE_DEBUG_POSTFIX to `d'.
  1377. 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
  1378. [cmake] Add better control of library dependencies.
  1379. * CMakeLists.txt: Add `WITH_*' variables to force/auto/omit
  1380. ZLIB/BZip2/PNG/HarfBuzz.
  1381. 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
  1382. [cmake] Make `FindHarfBuzz' observe the REQUIRED option.
  1383. * builds/cmake/FindHarfBuzz.cmake: Implement it.
  1384. 2015-11-27 Werner Lemberg <wl@gnu.org>
  1385. [cmake] Collect files specific to cmake in `builds/cmake'.
  1386. * builds/FindHarfBuzz.cmake: Move to ...
  1387. * builds/cmake/FindHarfBuzz.cmake: ... this place.
  1388. * CMakeLists.txt (CMAKE_MODULE_PATH): Updated.
  1389. 2015-11-27 Alexander Bock <alexander.j.bock@nasa.gov>
  1390. CMakeLists.txt: Honour new command line flag `FREETYPE_NO_DIST'.
  1391. 2015-11-26 Werner Lemberg <wl@gnu.org>
  1392. [docmaker] Allow `foo[bar]' as identifier.
  1393. We need this to handle equally named properties in different
  1394. modules.
  1395. * src/tools/docmaker/content.py (re_identifier),
  1396. src/tools/docmaker/sources.py (re_crossref): Allow `foo[bar]'.
  1397. * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word,
  1398. HtmlFormatter::index_exit, HtmlFormatter::section_enter,
  1399. HtmlFormatter::block_enter): Handle `foo[bar]'.
  1400. 2015-11-25 Werner Lemberg <wl@gnu.org>
  1401. * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46480).
  1402. (_bdf_parse_glyphs): Always reset `p->glyph_name' after moving its
  1403. contents.
  1404. 2015-11-21 Werner Lemberg <wl@gnu.org>
  1405. * include/freetype/internal/ftcalc.h: Don't use `register' keyword.
  1406. This fixes compiler warnings.
  1407. Reported by Behdad.
  1408. 2015-11-20 Werner Lemberg <wl@gnu.org>
  1409. Add `FT_LCD_FILTER_LEGACY1' enum value.
  1410. This does the same as `FT_LCD_FILTER_LEGACY'.
  1411. See
  1412. https://bugs.freedesktop.org/show_bug.cgi?id=92981
  1413. for the reasoning.
  1414. * include/freetype/ftlcdfil.h (FT_LcdFilter): New value
  1415. `FT_LCD_FILTER_LEGACY1'.
  1416. * src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Use it.
  1417. 2015-11-15 Werner Lemberg <wl@gnu.org>
  1418. * src/autofit/afhints.c (af_get_segment_index): Fix it.
  1419. The old code was too simple, returning invalid values in most cases
  1420. where a segment crosses the contour start.
  1421. 2015-11-15 Werner Lemberg <wl@gnu.org>
  1422. * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439).
  1423. 2015-11-11 Werner Lemberg <wl@gnu.org>
  1424. [cff, autofit] Switch off stem darkening by default.
  1425. * src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c
  1426. (cff_driver_init): Do it.
  1427. 2015-11-10 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
  1428. Allow native CFF hinter in FT_RENDER_MODE_LIGHT.
  1429. Both the native CFF hinter and the auto-hinter now have a very
  1430. similar rendering style.
  1431. * include/freetype/freetype.h: Mention that FT_LOAD_TARGET_LIGHT no
  1432. longer implies FT_LOAD_FORCE_AUTOHINT.
  1433. * include/freetype/ftmodapi.h (FT_MODULE_DRIVER_HINTS_LIGHTLY): New
  1434. macro.
  1435. * include/freetype/internal/ftobjs.h (FT_DRIVER_HINTS_LIGHTLY): New
  1436. macro.
  1437. * src/cff/cffdrivr.c (cff_driver_class): Use it.
  1438. * src/base/ftobjs.c (FT_Load_Glyph): Update auto-hinter selection
  1439. logic.
  1440. 2015-11-09 Werner Lemberg <wl@gnu.org>
  1441. * src/cid/cidload.c (cid_face_open): Fix GDBytes guard (#46408).
  1442. 2015-11-09 Werner Lemberg <wl@gnu.org>
  1443. [truetype] Remove integer to pointer conversion compiler warning.
  1444. Problem reported by Alexei.
  1445. * src/truetype/ttgload.c (load_truetype_glyph): Use a solution found
  1446. in the glib library to fix the issue.
  1447. 2015-11-08 Behdad Esfahbod <behdad@behdad.org>
  1448. [sfnt] Accept version 3 of `EBLC' and `CBLC' tables also.
  1449. * src/sfnt/ttsbit.c (tt_face_load_sbit): Implement it.
  1450. 2015-11-08 Philipp Knechtges <philipp-dev@knechtges.com>
  1451. [autofit] Don't distort (latin) glyphs too much (#46195).
  1452. * src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and
  1453. `descender' fields.
  1454. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect
  1455. ascender and descender data for blue zones.
  1456. (af_latin_metrics_scale_dim): Reject vertical scaling values that
  1457. change the result by more than two pixels.
  1458. 2015-11-05 Werner Lemberg <wl@gnu.org>
  1459. [sfnt] Ignore embedded bitmaps with zero size (#46379).
  1460. * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Implement
  1461. it.
  1462. 2015-11-04 Werner Lemberg <wl@gnu.org>
  1463. [truetype] Catch infinite recursion in subglyphs (#46372).
  1464. * include/freetype/internal/tttypes.h (TT_LoaderRec): New field
  1465. `composites'.
  1466. * src/truetype/ttgload.c: Include FT_LIST_H.
  1467. (load_truetype_glyph): Add composite subglyph index to a list;
  1468. abort if index is already in list.
  1469. (tt_loader_init): Updated.
  1470. (tt_loader_done): New function.
  1471. (TT_Load_Glyph): Call `tt_loader_done'.
  1472. 2015-11-04 Werner Lemberg <wl@gnu.org>
  1473. [truetype] Better tracing of composite glyphs.
  1474. * src/truetype/ttgload.c (TT_Load_Composite_Glyph,
  1475. load_truetype_glyph): Implement it.
  1476. 2015-11-03 Werner Lemberg <wl@gnu.org>
  1477. [sfnt] Protect against zero-size bitmaps (#46345).
  1478. * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Check
  1479. `glyph_size'.
  1480. 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com>
  1481. * src/autofit/afloader.c (af_loader_load_g): Implement emboldening.
  1482. 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com>
  1483. [autofit] Implement darkening computation function.
  1484. This is a crude adaption of the original `cf2_computeDarkening'
  1485. function.
  1486. * src/autofit/afloader.c (af_intToFixed, af_fixedToInt,
  1487. af_floatToFixed): New macros, taken from `cf2fixed.h'.
  1488. (af_loader_compute_darkening): New function.
  1489. * src/autofit/afloader.h: Updated.
  1490. 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com>
  1491. [autofit] Add functions to get standard widths for writing systems.
  1492. We need the computed standard horizontal and vertical widths for the
  1493. emboldening calculation. This method provides a convenient way to
  1494. extract it from writing-system-specific metrics structures, which
  1495. all script definitions must implement.
  1496. * src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New
  1497. function type.
  1498. (AF_WritingSystemClassRec): New member `style_metrics_getstdw'.
  1499. (AF_DEFINE_WRITING_SYSTEM_CLASS): Updated.
  1500. * src/autofit/afcjk.c (af_cjk_get_standard_width): New function.
  1501. (af_cjk_writing_system_class): Updated.
  1502. * src/autofit/afdummy.c (af_dummy_writing_system_class): Updated.
  1503. * src/autofit/afindic.c (af_cjk_get_standard_width): New function.
  1504. (af_indic_writing_system_class): Updated.
  1505. * src/autofit/aflatin.c (af_latin_get_standard_width): New function.
  1506. (af_indic_writing_system_class): Updated.
  1507. * src/autofit/aflatin.c (af_latin_get_standard_width): New function.
  1508. (af_indic_writing_system_class): Updated.
  1509. 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com>
  1510. [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data.
  1511. * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields.
  1512. * src/autofit/afglobal.c (af_face_globals_new): Initialize new
  1513. fields.
  1514. (af_face_globals_free): Reset new fields.
  1515. 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com>
  1516. [autofit] Add stem-darkening properties.
  1517. Actual code follows in a later commit.
  1518. * include/freetype/ftautoh.h: Document `no-stem-darkening' and
  1519. `darkening-parameters'.
  1520. * src/autofit/afmodule.h: New fields `no_stem_darkening' and
  1521. `darken_params'.
  1522. * src/autofit/afmodule.c (af_property_set, af_property_get):
  1523. Handle them.
  1524. (af_autofitter_init): Initialize them.
  1525. 2015-11-02 Ben Wagner <bungeman@gmail.com>
  1526. [ftfuzzer] Add support for multiple files (patch #8779).
  1527. Currently, libFuzzer only supports mutation of a single file. We
  1528. circumvent this problem by using an uncompressed tar archive as
  1529. multiple-file input for the fuzzer.
  1530. This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing;
  1531. a constructed tarball should contain a font file as the first
  1532. element, and files to be attached as further elements.
  1533. * src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers.
  1534. (archive_read_entry_data, parse_data): New functions.
  1535. (LLVMFuzzerTestOneInput): Updated.
  1536. * src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom
  1537. mutator for libFuzzer that can mutate tarballs in a sensible way.
  1538. 2015-10-31 Werner Lemberg <wl@gnu.org>
  1539. [sfnt] Fix cmap 14 validation (#46346).
  1540. * src/sfnt/ttcmap.c (tt_cmap14_validate): Check limit before
  1541. accessing `numRanges' and `numMappings'.
  1542. Fix size check for non-default UVS table.
  1543. 2015-10-31 Werner Lemberg <wl@gnu.org>
  1544. [sfnt] Handle infinite recursion in bitmap strikes (#46344).
  1545. * src/sfnt/ttsbit.c (TT_SBitDecoder_LoadFunc,
  1546. tt_sbit_decoder_load_bitmap, tt_sbit_decoder_load_byte_aligned,
  1547. tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_png): Add
  1548. argument for recursion depth.
  1549. (tt_sbit_decoder_load_compound): Add argument for recursion depth.
  1550. Increase recursion counter for recursive call.
  1551. (tt_sbit_decoder_load_image): Add argument for recursion depth.
  1552. Check recurse depth.
  1553. (tt_face_load_sbit_image): Updated.
  1554. 2015-10-29 Werner Lemberg <wl@gnu.org>
  1555. * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor.
  1556. 2015-10-29 Werner Lemberg <wl@gnu.org>
  1557. * CMakeLists.txt: Remove code to set MSVC's /FD compiler switch.
  1558. Problem reported by David Capello <davidcapello@gmail.com>; see
  1559. https://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html
  1560. for details.
  1561. 2015-10-27 Werner Lemberg <wl@gnu.org>
  1562. [pfr] Add some safety guards (#46302).
  1563. * src/pfr/pfrload.h (PFR_CHECK): Rename to...
  1564. (PFR_CHECK_SIZE): ... this.
  1565. (PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE.
  1566. * src/pfr/pfrload.c (pfr_log_font_count): Check `count'.
  1567. (pfr_extra_item_load_kerning_pairs): Remove tracing message.
  1568. (pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate.
  1569. Allocate `chars' after doing a size checks.
  1570. * src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid
  1571. bitmap format to...
  1572. (pfr_slot_load_bitmap): ... this function.
  1573. Check bitmap size.
  1574. 2015-10-26 Werner Lemberg <wl@gnu.org>
  1575. [truetype] Fix sanitizing logic for `loca' (#46223).
  1576. * src/truetype/ttpload.c (tt_face_load_loca): A thinko caused an
  1577. incorrect adjustment of the number of glyphs, most often using far
  1578. too large values.
  1579. 2015-10-25 Werner Lemberg <wl@gnu.org>
  1580. [autofit] Improve tracing.
  1581. * src/autofit/afhints.c (af_print_idx, af_get_segment_index,
  1582. af_get_edge_index): New functions.
  1583. (af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'.
  1584. Add segment and edge index for each point.
  1585. Slightly change printing order of some elements.
  1586. Don't print `-1' but `--' for missing elements.
  1587. (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove
  1588. unnecessary `|', `[', and `]'.
  1589. Don't print `-1' but `--' for missing elements.
  1590. 2015-10-24 Werner Lemberg <wl@gnu.org>
  1591. [sfnt] Sanitize bitmap strike glyph height.
  1592. Problem reported by Nikolay Sivov <bunglehead@gmail.com>.
  1593. * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Avoid zero value
  1594. for `metrics->height' by applying some heuristics.
  1595. 2015-10-22 Werner Lemberg <wl@gnu.org>
  1596. [sfnt, type42] Fix clang compiler warnings.
  1597. * src/sfnt/sfobjs.c (sfnt_init_face): Initialize `offset'.
  1598. * src/type42/t42parse.c (t42_parse_sfnts): Use proper cast.
  1599. 2015-10-22 Dave Arnold <darnold@adobe.com>
  1600. Werner Lemberg <wl@gnu.org>
  1601. [cff] Avoid overflow/module arithmetic.
  1602. This modifies the addition of subroutine number to subroutine bias
  1603. from unsigned to signed, but does not change any results.
  1604. * src/cff/cf2ft.c (cf2_initGlobalRegionBuffer,
  1605. cf2_initLocalRegionBuffer): Change variable names from (unsigned)
  1606. `idx' to (signed) `subrNum', since it is not an index until after
  1607. the bias is added.
  1608. * src/cff/cf2ft.h: Updated.
  1609. * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
  1610. Updated similarly.
  1611. 2015-10-22 Werner Lemberg <wl@gnu.org>
  1612. [cid] Better check of `SubrCount' dictionary entry (#46272).
  1613. * src/cid/cidload.c (cid_face_open): Add more sanity tests for
  1614. `fd_bytes', `gd_bytes', `sd_bytes', and `num_subrs'.
  1615. 2015-10-21 Werner Lemberg <wl@gnu.org>
  1616. [base] Pacify compiler (#46266).
  1617. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and
  1618. `anchor'.
  1619. 2015-10-21 Werner Lemberg <wl@gnu.org>
  1620. [type42] Fix heap buffer overflow (#46269).
  1621. * src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in
  1622. bounds checking.
  1623. 2015-10-21 Dave Arnold <darnold@adobe.com>
  1624. [cff] Fix limit in assert for max hints.
  1625. * src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the
  1626. limit (96 bits).
  1627. 2015-10-21 Dave Arnold <darnold@adobe.com>
  1628. [cff] Remove an assert (#46107).
  1629. * src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges
  1630. in wrong order.
  1631. 2015-10-21 Werner Lemberg <wl@gnu.org>
  1632. [sfnt] Avoid unnecessarily large allocation for WOFFs (#46257).
  1633. * src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize'
  1634. only after thorough checks.
  1635. Add tracing messages.
  1636. 2015-10-21 Werner Lemberg <wl@gnu.org>
  1637. [type42] Better check invalid `sfnts' array data (#46255).
  1638. * src/type42/t42parse.c (t42_parse_sfnts): Table lengths must be
  1639. checked individually against available data size.
  1640. 2015-10-20 Werner Lemberg <wl@gnu.org>
  1641. [cid] Add a bunch of safety checks.
  1642. * src/cid/cidload.c (parse_fd_array): Check `num_dicts' against
  1643. stream size.
  1644. (cid_read_subrs): Check largest offset against stream size.
  1645. (cid_parse_dict): Move safety check to ...
  1646. (cid_face_open): ... this function.
  1647. Also test length of binary data and values of `SDBytes',
  1648. `SubrMapOffset', `SubrCount', `CIDMapOffset', and `CIDCount'.
  1649. 2015-10-20 Werner Lemberg <wl@gnu.org>
  1650. [cid] Avoid segfault with malformed input (#46250).
  1651. * src/cid/cidload.c (cid_read_subrs): Return a proper error code for
  1652. unsorted offsets.
  1653. 2015-10-20 StudioEtrange <nomorgan@gmail.com>
  1654. * CMakeLists.txt: Enable shared library builds on MinGW (#46233).
  1655. 2015-10-20 Werner Lemberg <wl@gnu.org>
  1656. * src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).
  1657. 2015-10-19 Ben Wagner <bungeman@gmail.com>
  1658. [cid] Better handle invalid glyph stream offsets (#46221).
  1659. * src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph
  1660. length.
  1661. 2015-10-18 Werner Lemberg <wl@gnu.org>
  1662. [psaux] Fix tracing of negative numbers.
  1663. Due to incorrect casting negative numbers were shown as very large
  1664. (positive) integers on 64bit systems.
  1665. * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_none>:
  1666. Use division instead of shift.
  1667. 2015-10-18 Werner Lemberg <wl@gnu.org>
  1668. [truetype] Improve TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46223).
  1669. * devel/ftoption.h, include/freetype/config/ftoption.h: Surround it
  1670. with #ifndef ... #endif, as suggested in the tracker issue.
  1671. 2015-10-18 Werner Lemberg <wl@gnu.org>
  1672. [truetype] Better protection against malformed `fpgm' (#46223).
  1673. * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't execute a
  1674. malformed `fpgm' table more than once.
  1675. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1676. * src/cid/cidgload.c (cid_load_glyph): Fix memory leak.
  1677. Reported by Kostya Serebryany <kcc@google.com>.
  1678. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1679. [bdf] Prevent memory leak (#46217).
  1680. * src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check
  1681. _BDF_GLYPH_BITS.
  1682. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1683. [bdf] Use stream size to adjust number of glyphs.
  1684. * src/bdf/bdflib.c (ACMSG17): New message macro.
  1685. (_bdf_parse_t): Add member `size'.
  1686. (bdf_load_font): Set `size'.
  1687. (_bdf_parse_glyphs): Adjust `cnt' if necessary.
  1688. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1689. * src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size.
  1690. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1691. * src/cid/cidgload.c (cid_glyph_load): Check file offsets (#46222).
  1692. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1693. [psaux] Fix heap buffer overflow (#46221).
  1694. * src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>:
  1695. Fix limit check.
  1696. 2015-10-17 Werner Lemberg <wl@gnu.org>
  1697. * src/cid/cidload.c (cid_parse_dict): Handle invalid input (#46220).
  1698. 2015-10-15 Kostya Serebryany <kcc@google.com>
  1699. [ftfuzzer] Add README.
  1700. * src/tools/ftfuzzer/README: New file.
  1701. 2015-10-15 Ben Wagner <bungeman@gmail.com>
  1702. [bdf] Fix memory leak (#46213).
  1703. * src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in
  1704. case of error.
  1705. 2015-10-15 Werner Lemberg <wl@gnu.org>
  1706. [truetype] Add TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46208).
  1707. * devel/ftoption.h, include/freetype/config/ftoption.h
  1708. (TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES): New configuration macro.
  1709. * src/truetype/ttinterp.c (MAX_RUNNABLE_OPCODES): Removed.
  1710. (TT_RunIns): Updated.
  1711. 2015-10-15 Werner Lemberg <wl@gnu.org>
  1712. * src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing.
  1713. The used indices were off by 1.
  1714. 2015-10-15 Ben Wagner <bungeman@gmail.com>
  1715. Werner Lemberg <wl@gnu.org>
  1716. * src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211).
  1717. 2015-10-15 Werner Lemberg <wl@gnu.org>
  1718. [base] Compute MD5 checksums only if explicitly requested.
  1719. This improves profiling accuracy.
  1720. * src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it.
  1721. 2015-10-14 Werner Lemberg <wl@gnu.org>
  1722. [base] Use `FT_' namespace for MD5 functions (#42366).
  1723. * src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'.
  1724. Undefine HAVE_OPENSSL.
  1725. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1726. [type1] Correctly handle missing MM axis names (#46202).
  1727. * src/type1/t1load.c (T1_Get_MM_Var): Implement it.
  1728. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1729. [pcf] Quickly exit if font index < 0.
  1730. Similar to other font formats, this commit makes the parser no
  1731. longer check the whole PCF file but only the header and the TOC if
  1732. we just want to get the number of available faces (and a proper
  1733. recognition of the font format).
  1734. * src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
  1735. Exit quickly if face_index < 0.
  1736. * src/pcfread.c (pcf_load_font): Add `face_index' argument.
  1737. Exit quickly if face_index < 0.
  1738. * src/pcf/pcf.h: Updated.
  1739. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1740. [ftfuzzer] Handle TTCs and MM/GX variations.
  1741. This patch also contains various other improvements.
  1742. * src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject
  1743. pre-C++11 compilers.
  1744. (FT_Global): New class. Use it to provide a global constructor and
  1745. destructor for the `FT_Library' object.
  1746. (setIntermediateAxis): New function to select an (arbitrary)
  1747. instance.
  1748. (LLVMFuzzerTestOneInput): Loop over all faces and named instances.
  1749. Also call `FT_Set_Char_Size'.
  1750. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1751. [truetype] Refine some GX sanity tests.
  1752. Use the `gvar' table size instead of the remaining bytes in the
  1753. stream.
  1754. * src/truetype/ttgxvar.h (GX_BlendRec): New field `gvar_size'.
  1755. * src/truetype/ttgxvar.c (ft_var_load_gvar): Set `gvar_size'.
  1756. (ft_var_readpackedpoints, ft_var_readpackeddeltas: New argument
  1757. `size'.
  1758. (tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Updated.
  1759. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1760. [truetype] Another GX sanity test.
  1761. * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Check
  1762. `tupleCount'.
  1763. Add tracing message.
  1764. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1765. [truetype] Fix memory leak for broken GX fonts (#46188).
  1766. * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix scope of
  1767. deallocation.
  1768. 2015-10-13 Werner Lemberg <wl@gnu.org>
  1769. [truetype] Fix commit from 2015-10-10.
  1770. * src/truetype/ttgxvar.c (ft_var_load_gvar): Add missing error
  1771. handling body to condition.
  1772. 2015-10-12 Werner Lemberg <wl@gnu.org>
  1773. [unix] Make MKDIR_P actually work.
  1774. * builds/unix/configure.raw: Fix underquoting of `INSTALL' and
  1775. `MKDIR_P'.
  1776. Problem reported by Dan Liddell <lddll@yahoo.com>.
  1777. 2015-10-11 Werner Lemberg <wl@gnu.org>
  1778. [sfnt] Improve extraction of number of named instances.
  1779. * src/sfnt/sfobjs.c (sfnt_init_face)
  1780. [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check number of instances against
  1781. `fvar' table size.
  1782. 2015-10-10 Alexei Podtelezhnikov <apodtele@gmail.com>
  1783. * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix overflow
  1784. (#46149).
  1785. 2015-10-10 Werner Lemberg <wl@gnu.org>
  1786. [sfnt] Fix infinite loops with broken cmaps (#46167).
  1787. * src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next): Take care
  1788. of border conditions (i.e., if the loops exit naturally).
  1789. 2015-10-10 Werner Lemberg <wl@gnu.org>
  1790. [truetype] More sanity tests for GX handling.
  1791. These tests should mainly help avoid unnecessarily large memory
  1792. allocations in case of malformed fonts.
  1793. * src/truetype/ttgxvar.c (ft_var_readpackedpoints,
  1794. ft_var_readpackeddeltas): Check number of points against stream
  1795. size.
  1796. (ft_var_load_avar): Check `pairCount' against table length.
  1797. (ft_var_load_gvar): Check `globalCoordCount' and `glyphCount'
  1798. against table length.
  1799. (tt_face_vary_cvt): Check `tupleCount' and `offsetToData'.
  1800. Fix trace.
  1801. (TT_Vary_Apply_Glyph_Deltas): Fix trace.
  1802. Free `sharedpoints' to avoid memory leak.
  1803. 2015-10-10 Werner Lemberg <wl@gnu.org>
  1804. [truetype] Better protection against malformed GX data (#46166).
  1805. * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Correctly
  1806. handle empty `localpoints' array.
  1807. 2015-10-10 Werner Lemberg <wl@gnu.org>
  1808. * src/pcf/pcfread.c (pcf_read_TOC): Check stream size (#46162).
  1809. 2015-10-09 Werner Lemberg <wl@gnu.org>
  1810. * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use real stream size.
  1811. 2015-10-08 Werner Lemberg <wl@gnu.org>
  1812. [pcf] Protect against invalid number of TOC entries (#46159).
  1813. * src/pcf/pcfread.c (pcf_read_TOC): Check number of TOC entries
  1814. against size of data stream.
  1815. 2015-10-08 Werner Lemberg <wl@gnu.org>
  1816. [type42] Protect against invalid number of glyphs (#46159).
  1817. * src/type42/t42parse.c (t42_parse_charstrings): Check number of
  1818. `CharStrings' dictionary entries against size of data stream.
  1819. 2015-10-08 Werner Lemberg <wl@gnu.org>
  1820. [sfnt] Fix some signed overflows (#46149).
  1821. * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
  1822. <TT_SBIT_TABLE_TYPE_SBIX>: Use `FT_MulDiv'.
  1823. 2015-10-08 Werner Lemberg <wl@gnu.org>
  1824. [type1] Protect against invalid number of subroutines (#46150).
  1825. * src/type1/t1load.c (parse_subrs): Check number of
  1826. `Subrs' dictionary entries against size of data stream.
  1827. 2015-10-07 Kostya Serebryany <kcc@google.com>
  1828. [ftfuzzer] Add support for LLVM's LibFuzzer.
  1829. * src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files.
  1830. 2015-10-06 Alexei Podtelezhnikov <apodtele@gmail.com>
  1831. [smooth] Faster alternative line renderer.
  1832. This implementation renders the entire line segment at once without
  1833. subdividing it into scanlines. The main speed improvement comes from
  1834. reducing the number of divisions to just two per line segment, which
  1835. is a bare minimum to calculate cell coverage in a smooth rasterizer.
  1836. Notably, the progression from cell to cell does not itself require any
  1837. divisions at all. The speed improvement is more noticeable at larger
  1838. sizes.
  1839. * src/smooth/ftgrays.c (gray_render_line): New implementation.
  1840. 2015-10-06 Werner Lemberg <wl@gnu.org>
  1841. [cff] Return correct PS names from pure CFF (#46130).
  1842. * src/cff/cffdrivr.c (cff_get_ps_name): Use SFNT service only for
  1843. SFNT.
  1844. 2015-10-04 Werner Lemberg <wl@gnu.org>
  1845. [base] Replace left shifts with multiplication (#46118).
  1846. * src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it.
  1847. 2015-10-04 Werner Lemberg <wl@gnu.org>
  1848. * Version 2.6.1 released.
  1849. =========================
  1850. Tag sources with `VER-2-6-1'.
  1851. * docs/VERSION.DLL: Update documentation and bump version number to
  1852. 2.6.1.
  1853. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
  1854. builds/windows/vc2005/index.html,
  1855. builds/windows/vc2008/freetype.vcproj,
  1856. builds/windows/vc2008/index.html,
  1857. builds/windows/vc2010/freetype.vcxproj,
  1858. builds/windows/vc2010/index.html,
  1859. builds/windows/visualc/freetype.dsp,
  1860. builds/windows/visualc/freetype.vcproj,
  1861. builds/windows/visualc/index.html,
  1862. builds/windows/visualce/freetype.dsp,
  1863. builds/windows/visualce/freetype.vcproj,
  1864. builds/windows/visualce/index.html,
  1865. builds/wince/vc2005-ce/freetype.vcproj,
  1866. builds/wince/vc2005-ce/index.html,
  1867. builds/wince/vc2008-ce/freetype.vcproj,
  1868. builds/wince/vc2008-ce/index.html: s/2.6/2.6.1/, s/26/261/.
  1869. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
  1870. * builds/unix/configure.raw (version_info): Set to 18:1:12.
  1871. * CMakeLists.txt (VERSION_PATCH): Set to 1.
  1872. * src/autofit/afmodule.c [AF_DEBUG_AUTOFIT]: Ensure C linking for
  1873. dumping functions.
  1874. 2015-10-04 Werner Lemberg <wl@gnu.org>
  1875. [bzip2, gzip] Avoid access of uninitialized memory (#46109).
  1876. * src/bzip2/ftbzip2.c (ft_bzip2_file_fill_input), src/gzip/ftgzip.c
  1877. (ft_gzip_file_fill_input): In case of an error, adjust the limit to
  1878. avoid copying uninitialized memory.
  1879. 2015-10-03 Werner Lemberg <wl@gnu.org>
  1880. [bzip2, gzip] Avoid access of uninitialized memory (#46109).
  1881. * src/bzip2/ftbzip2.c (ft_bzip2_file_fill_output), src/gzip/ftgzip.c
  1882. (ft_gzip_file_fill_output): In case of an error, adjust the limit to
  1883. avoid copying uninitialized memory.
  1884. 2015-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
  1885. [smooth] Clean up worker.
  1886. * src/smooth/ftgrays.c (gray_TWorker): Remove never used fields.
  1887. 2015-10-01 Werner Lemberg <wl@gnu.org>
  1888. [sfnt] Make `tt_cmap4_char_map_linear' more robust (#46078).
  1889. * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Take care of
  1890. border conditions (i.e., if the loop exits naturally).
  1891. 2015-10-01 Werner Lemberg <wl@gnu.org>
  1892. * src/autofit/afranges.c (af_deva_nonbase_uniranges): Fix ranges.
  1893. They should be a subset of `af_deva_uniranges'.
  1894. 2015-10-01 Werner Lemberg <wl@gnu.org>
  1895. [sfnt] Make `tt_cmap4_char_map_linear' faster (#46078).
  1896. * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Use inner loop to
  1897. reject too large glyph indices.
  1898. 2015-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
  1899. [smooth] Clean up worker.
  1900. * src/smooth/ftgrays.c (gray_TWorker): Remove lightly used `last_ey'.
  1901. (gray_start_cell, gray_render_line): Update.
  1902. 2015-09-30 Werner Lemberg <wl@gnu.org>
  1903. [autofit] Replace `no-base' with `non-base'.
  1904. * src/autofit/*: Do it.
  1905. 2015-09-30 Werner Lemberg <wl@gnu.org>
  1906. [sfnt] Rewrite `tt_cmap4_char_map_linear' (#46078).
  1907. * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Add code to better
  1908. skip invalid segments.
  1909. If searching the next character, provide a more efficient logic to
  1910. speed up the code.
  1911. 2015-09-30 Werner Lemberg <wl@gnu.org>
  1912. [truetype] Adjust number of glyphs for malformed `loca' tables.
  1913. * src/truetype/ttpload.c (tt_face_load_loca): Implement it.
  1914. 2015-09-29 Werner Lemberg <wl@gnu.org>
  1915. [pshinter] Avoid harmless overflow (#45984).
  1916. * src/pshinter/pshglob.c (psh_blues_set_zones): Fix it.
  1917. 2015-09-28 Werner Lemberg <wl@gnu.org>
  1918. [autofit] Add support for Lao script.
  1919. Thanks to Danh Hong <danhhong@gmail.com> for guidance with blue zone
  1920. characters!
  1921. * src/autofit/afblue.dat: Add blue zone data for Lao.
  1922. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  1923. * src/autofit/afscript.h: Add Lao standard characters.
  1924. * src/autofit/afranges.c: Add Lao data.
  1925. * src/autofit/afstyles.h: Add Lao data.
  1926. 2015-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
  1927. [base] Fix a leak by broken sfnt-PS or resource fork (#46028).
  1928. open_face_from_buffer() frees passed buffer if valid font
  1929. is not found. But if copying to the buffer is failed,
  1930. the allocated buffer should be freed within the caller.
  1931. * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Free
  1932. the buffer `sfnt_ps' if an error caused before calling
  1933. open_face_from_buffer().
  1934. (Mac_Read_sfnt_Resource): Free the buffer `sfnt_data' if
  1935. an error caused before calling open_face_from_buffer();
  1936. 2015-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
  1937. [mac] Fix buffer size calculation for LWFN font.
  1938. * src/base/ftmac.c (read_lwfn): Cast post_size to FT_ULong
  1939. to prevent confused copy by too large chunk size.
  1940. 2015-09-26 Alexei Podtelezhnikov <apodtele@gmail.com>
  1941. * src/smooth/ftgrays.c (PIXEL_MASK): Remove unused macro.
  1942. 2015-09-26 Werner Lemberg <wl@gnu.org>
  1943. [autofit] Minor tracing improvement.
  1944. * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Don't emit
  1945. blue zones header line if there are no blue zones.
  1946. 2015-09-26 Werner Lemberg <wl@gnu.org>
  1947. [bzip2, gzip, lzw] Harmonize function signatures with prototype.
  1948. Suggested by Hin-Tak Leung.
  1949. * src/bzip2/ftbzip2.c (ft_bzip2_stream_io), src/gzip/ftgzip.c
  1950. (ft_gzip_stream_io), src/lzw/ftlzw.c (ft_lzw_stream_io): Do it.
  1951. 2015-09-26 Hin-Tak Leung <htl10@users.sourceforge.net>
  1952. Add new FT_LOAD_COMPUTE_METRICS load flag.
  1953. * include/freetype/freetype.h (FT_LOAD_COMPUTE_METRICS): New macro.
  1954. * src/truetype/ttgload.c (compute_glyph_metrics): Usage.
  1955. 2015-09-26 Werner Lemberg <wl@gnu.org>
  1956. * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add cast.
  1957. 2015-09-25 Werner Lemberg <wl@gnu.org>
  1958. [type1] Protect against invalid number of glyphs (#46029).
  1959. * src/type1/t1load.c (parse_charstrings): Check number of
  1960. `CharStrings' dictionary entries against size of data stream.
  1961. 2015-09-23 Werner Lemberg <wl@gnu.org>
  1962. [sfnt] Better checks for invalid cmaps (2/2) (#46019).
  1963. While the current code in `FT_Get_Next_Char' correctly rejects
  1964. out-of-bounds glyph indices, it can be extremely slow for malformed
  1965. cmaps that use 32bit values. This commit tries to improve that.
  1966. * src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next,
  1967. tt_cmap12_char_map_binary, tt_cmap13_next,
  1968. tt_cmap13_char_map_binary): Reject glyph indices larger than or
  1969. equal to the number of glyphs.
  1970. 2015-09-23 Werner Lemberg <wl@gnu.org>
  1971. [base, sfnt] Better checks for invalid cmaps (1/2).
  1972. * src/base/ftobjs.c (FT_Get_Char_Index): Don't return out-of-bounds
  1973. glyph indices.
  1974. (FT_Get_First_Char): Updated.
  1975. * src/sfnt/ttcmap.c (tt_cmap6_char_next): Don't return character
  1976. codes greater than 0xFFFF.
  1977. (tt_cmap8_char_index): Avoid integer overflow in computation of
  1978. glyph index.
  1979. (tt_cmap8_char_next): Avoid integer overflows in computation of
  1980. both next character code and glyph index.
  1981. (tt_cmap10_char_index): Fix unsigned integer logic.
  1982. (tt_cmap10_char_next): Avoid integer overflow in computation of
  1983. next character code.
  1984. (tt_cmap12_next): Avoid integer overflows in computation of both
  1985. next character code and glyph index.
  1986. (tt_cmap12_char_map_binary): Ditto.
  1987. (tt_cmap12_char_next): Simplify.
  1988. (tt_cmap13_char_map_binary): Avoid integer overflow in computation
  1989. of next character code.
  1990. (tt_cmap13_char_next): Simplify.
  1991. 2015-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
  1992. [base] Check too long POST and sfnt resource (#45919).
  1993. * src/base/ftbase.h (FT_MAC_RFORK_MAX_LEN): Maximum length of the
  1994. resource fork for Mac OS. Resource forks larger than 16 MB can be
  1995. written but can't be handled correctly, at least in Carbon routine.
  1996. See https://support.microsoft.com/en-us/kb/130437.
  1997. * src/base/ftobjs.c (Mac_Read_POST_Resource): No need to use `0x'
  1998. prefix for `%p' formatter.
  1999. * src/base/ftbase.c (Mac_Read_POST_Resource): Check the fragment and
  2000. total size of the concatenated POST resource before buffer
  2001. allocation.
  2002. (Mac_Read_sfnt_Resource): Check the declared size of sfnt resource
  2003. before buffer allocation.
  2004. * src/base/ftmac.c (read_lwfn, FT_New_Face_From_SFNT): Check the
  2005. total resource size before buffer allocation.
  2006. 2015-09-19 Werner Lemberg <wl@gnu.org>
  2007. [sfnt] Improve handling of invalid SFNT table entries (#45987).
  2008. This patch fixes weaknesses in function `tt_face_load_font_dir'.
  2009. - It incorrectly assumed that valid tables are always at the
  2010. beginning. As a consequence, some valid tables after invalid
  2011. entries (which are ignored) were never seen.
  2012. - Duplicate table entries (this is, having the same tag) were not
  2013. rejected.
  2014. - The number of valid tables was sometimes too large, leading to
  2015. access of invalid tables.
  2016. * src/sfnt/ttload.c (check_table_dir): Add argument to return number
  2017. of valid tables.
  2018. Add another tracing message.
  2019. (tt_face_load_font_dir): Only allocate table array for valid
  2020. entries as returned by `check_table_dir'.
  2021. Reject duplicate tables and adjust number of valid tables
  2022. accordingly.
  2023. 2015-09-19 Werner Lemberg <wl@gnu.org>
  2024. [pcf] Improve `FT_ABS' fix from 2015-09-17 (#45999).
  2025. * src/pcf/pcfread.c (pcf_load_font): Do first the cast to FT_Short,
  2026. then take the absolute value.
  2027. Also apply FT_ABS to `height'.
  2028. 2015-09-17 Werner Lemberg <wl@gnu.org>
  2029. [type42] Fix memory leak (#45989).
  2030. * src/type42/t42parse.c (t42_parse_charstrings): Allow only a single
  2031. `CharStrings' array.
  2032. 2015-09-17 Werner Lemberg <wl@gnu.org>
  2033. [psaux] Fix memory leak (#45986).
  2034. * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
  2035. Free `temp' in case of error.
  2036. 2015-09-17 Werner Lemberg <wl@gnu.org>
  2037. [psaux] Improve tracing message.
  2038. * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
  2039. Handle plural correctly.
  2040. 2015-09-17 Werner Lemberg <wl@gnu.org>
  2041. [pcf] Fix integer overflows (#45985).
  2042. * src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv.
  2043. 2015-09-17 Werner Lemberg <wl@gnu.org>
  2044. [pcf] Use FT_ABS for some property values (#45893).
  2045. * src/pcf/pcfread.c (pcf_load_font): Take absolute values for
  2046. AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and
  2047. RESOLUTION_Y. In tracing mode, add warnings.
  2048. 2015-09-16 Werner Lemberg <wl@gnu.org>
  2049. Minor fixes for some clang warnings.
  2050. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Cast, possible missing
  2051. initialization.
  2052. * src/truetype/ttgload.c (TT_Process_Composite_Component): Cast.
  2053. 2015-09-15 Werner Lemberg <wl@gnu.org>
  2054. [type1, type42] Fix memory leaks (#45966).
  2055. * src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis
  2056. names.
  2057. (parse_blend_design_map): Allow only a single design map.
  2058. (parse_encoding): Handle multiple encoding vectors.
  2059. * src/type42/t42parse.c (t42_parse_encoding): Handle multiple
  2060. encoding vectors.
  2061. 2015-09-15 Werner Lemberg <wl@gnu.org>
  2062. [truetype] Fix integer type (#45965).
  2063. * src/truetype/ttobjs.c (tt_synth_sfnt_checksum): Implement it.
  2064. 2015-09-15 Werner Lemberg <wl@gnu.org>
  2065. * src/pcf/pcfread.c (pcf_load_font): Fix integer overflow (#45964).
  2066. 2015-09-15 Werner Lemberg <wl@gnu.org>
  2067. [type1, type42] Check encoding array size (#45961).
  2068. * src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
  2069. (t42_parse_encoding): Do it.
  2070. 2015-09-14 Alexei Podtelezhnikov <apodtele@gmail.com>
  2071. * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve.
  2072. 2015-09-14 Werner Lemberg <wl@gnu.org>
  2073. [type1] Fix another potential buffer overflow (#45955).
  2074. * src/type1/t1parse (T1_Get_Private_Dict): Assure that check for
  2075. `eexec' doesn't exceed `limit'.
  2076. 2015-09-13 Werner Lemberg <wl@gnu.org>
  2077. Replace `mkinstalldirs' with AC_PROG_MKDIR_P.
  2078. * builds/unix/mkinstalldirs: Removed, no longer needed.
  2079. * builds/unix/configure.raw: Call `AC_PROG_MKDIR_P'.
  2080. Update pwd call for `$INSTALL'.
  2081. * builds/unix/unix-def.in (MKINSTALLDIRS): Use `@MKDIR_P@'.
  2082. * autogen.sh: Updated.
  2083. 2015-09-13 Werner Lemberg <wl@gnu.org>
  2084. [winfonts] Check alignment shift count for resource data (#45938).
  2085. * src/winfonts/winfnt.c (fnt_face_get_dll_font): Implement it.
  2086. 2015-09-13 Werner Lemberg <wl@gnu.org>
  2087. [type1] Fix potential buffer overflow (#45923).
  2088. * src/type1/t1parse.c (T1_Get_Private_Dict): Assure `cur' doesn't
  2089. point to end of file buffer.
  2090. 2015-09-13 Werner Lemberg <wl@gnu.org>
  2091. [gzip] Fix access of small compressed files (#45937).
  2092. * src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak.
  2093. (ft_gzip_get_uncompressed_file): Correct byte order while reading
  2094. unsigned long value. Without this change, the whole optimization of
  2095. accessing small files in `FT_Stream_OpenGzip' is never executed! As
  2096. a consequence, access to PCF files in general (which are normally
  2097. small files) should be much improved now as originally intended.
  2098. 2015-09-11 Werner Lemberg <wl@gnu.org>
  2099. [psaux] Fix potential buffer overflow (#45922).
  2100. * src/psaux/psobjs.c (ps_parser_skip_PS_token): If a token is
  2101. enclosed in balanced expressions, ensure that the cursor position
  2102. doesn't get larger than the current limit.
  2103. 2015-09-11 Werner Lemberg <wl@gnu.org>
  2104. [base] Avoid crash while tracing `load_mac_face'.
  2105. Reported in Savannah bug #45919.
  2106. * src/base/ftobjs.c (load_mac_face): Honour FT_OPEN_MEMORY while
  2107. tracing.
  2108. 2015-09-11 Werner Lemberg <wl@gnu.org>
  2109. [type42] Fix endless loop (#45920).
  2110. * src/type42/t42parse.c (t42_parse_encoding): Synchronize with
  2111. type1's `parse_encoding'.
  2112. 2015-09-10 Werner Lemberg <wl@gnu.org>
  2113. [docmaker] Allow `-' in bold and italic markup.
  2114. * src/tools/docmaker/sources.py (re_italic, re_bold): Adjust
  2115. accordingly.
  2116. 2015-09-09 Alexei Podtelezhnikov <apodtele@gmail.com>
  2117. * src/base/ftcalc.c (FT_RoundFix): Improve.
  2118. 2015-09-09 Wojciech Mamrak <wmamrak@gmail.com>
  2119. * src/base/ftcalc.c (FT_CeilFix, FT_FloorFix): Normalize.
  2120. This commit makes the functions behave as expected, this is,
  2121. rounding towards plus or minus infinity.
  2122. 2015-09-07 Alexei Podtelezhnikov <apodtele@gmail.com>
  2123. * src/smooth/ftgrays.c (gray_render_line): Simplify clipping.
  2124. 2015-09-04 Alexei Podtelezhnikov <apodtele@gmail.com>
  2125. [raster,smooth] Microoptimizations.
  2126. * src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table,
  2127. Bezier_Up): Use do-while loops.
  2128. * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
  2129. gray_convert_glyph): Ditto.
  2130. 2015-09-04 Werner Lemberg <wl@gnu.org>
  2131. [autofit] Redesign code ranges (2/2).
  2132. This commit adds two fallback scripts (`latb', `latp') and
  2133. implements support for the no-base character ranges introduced in
  2134. the previous commit.
  2135. * src/autofit/aftypes.h (AF_ScriptClassRec): Add
  2136. `script_uni_nobase_ranges' field.
  2137. (AF_DEFINE_SCRIPT_CLASS): Updated.
  2138. * src/autofit/afscript.h, src/autofit/afstyles.h: Add `latb' and
  2139. `latp' fallback scripts.
  2140. * src/autofit/afblue.dat: Add blue zones for Latin subscript and
  2141. superscript fallback scripts.
  2142. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  2143. * src/autofit/afglobal.h (AF_NOBASE): New style flag for no-base
  2144. characters.
  2145. (AF_STYLE_MASK): Updated.
  2146. * src/autofit/afglobal.c (SCRIPT): Updated.
  2147. (af_face_globals_compute_style_coverage): Handle new style flag.
  2148. * src/autofit/aflatin.c (af_latin_hints_apply): Handle new style
  2149. flag.
  2150. * src/autofit/afranges.h (SCRIPT): Use it to export no-base ranges.
  2151. 2015-09-04 Werner Lemberg <wl@gnu.org>
  2152. [autofit] Redesign code ranges (1/2).
  2153. This patch introduces auxiliary code ranges that identify no-base
  2154. characters; they refer to glyphs of a script that should be hinted
  2155. without alignments to blue zones (mostly diacritics).
  2156. It also splits off ranges for fallback scripts that handle subscript
  2157. and superscript characters not covered by OpenType features. For
  2158. example, this greatly helps improve the hinting of various phonetic
  2159. alphabets, which contain a large amount characters that look like
  2160. superscript glyphs.
  2161. Finally, code ranges are updated to Unicode 8.0, and enclosed
  2162. characters are removed in general since they normally look better if
  2163. they stay unhinted.
  2164. * src/autofit/afranges.c (af_latn_uniranges): Updated to Unicode
  2165. 8.0.
  2166. Split off superscript-like and subscript-like glyphs into...
  2167. (af_latb_uniranges, af_latp_uniranges): ... these two new arrays.
  2168. (af_xxxx_nobase_uniranges): New arrays that hold no-base characters
  2169. of the corresponding character ranges.
  2170. 2015-09-03 Werner Lemberg <wl@gnu.org>
  2171. [autofit] Pass glyph index to hinting function.
  2172. No functionality change yet.
  2173. * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Pass
  2174. glyph index.
  2175. * src/autofit/afcjk.c, src/autofit/afcjk.h (af_cjk_hints_apply),
  2176. src/autofit/afdummy.c (af_dummy_hints_apply), src/autofit/afindic.c
  2177. (af_indic_hints_apply), src/autofit/aflatin.c
  2178. (af_latin_hints_apply), src/autofit/aflatin2.c
  2179. (af_latin2_hints_apply), src/autofit/afloader.c (af_loader_load_g):
  2180. Updated.
  2181. 2015-08-30 Werner Lemberg <wl@gnu.org>
  2182. [autofit] Code clean-up.
  2183. * src/autofit/afglobal.h (AF_STYLE_MASK): New macro.
  2184. (AF_STYLE_UNASSIGNED): Use AF_STYLE_MASK for definition.
  2185. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
  2186. Updated.
  2187. 2015-08-30 Werner Lemberg <wl@gnu.org>
  2188. [autofit] Make glyph style array use 16bit values.
  2189. * include/freetype/ftautoh.h (FT_Prop_GlyphToScriptMap): Use
  2190. `FT_UShort' for `map' field.
  2191. * src/autofit/afglobal.c (af_face_globals_compute_style_coverage,
  2192. af_face_globals_new), src/autofit/hbshim.c, src/autofit/hbshim.h
  2193. (af_get_coverage): Use FT_UShort for `glyph_styles' array.
  2194. * src/autofit/afglobal.h (AF_STYLE_UNASSIGNED, AF_DIGIT): Extend to
  2195. 16 bits.
  2196. (AF_FaceGlobalsRec): Use `FT_UShort' for `glyph_styles' field.
  2197. 2015-08-26 Werner Lemberg <wl@gnu.org>
  2198. * builds/unix/configure.raw: Need harfbuzz >= 0.9.21 (#45828).
  2199. 2015-08-25 Werner Lemberg <wl@gnu.org>
  2200. [base] Improve kerning tracing and documentation.
  2201. * src/base/ftobjs.c (FT_Get_Kerning): Emit tracing message if
  2202. scaled-down kerning values differ.
  2203. 2015-08-18 Werner Lemberg <wl@gnu.org>
  2204. [raster] Remove last remnants of `raster5' driver.
  2205. * src/raster/ftrend1.h (ft_raster5_renderer_class): Removed.
  2206. * src/raster/rastpic.c, src/raster/rastpic.h
  2207. (ft_raster5_renderer_class_pic_init,
  2208. ft_raster5_renderer_class_pic_free): Removed.
  2209. 2015-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
  2210. [base] Improve emboldener (#45596).
  2211. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Correct displacement
  2212. of zero-length segments.
  2213. 2015-08-16 Alexei Podtelezhnikov <apodtele@gmail.com>
  2214. [base] Reoptimize arithmetic.
  2215. * src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove
  2216. special cases that slow down the general use.
  2217. 2015-08-15 pazer <ibemad@gmail.com>
  2218. Fix C++ compilation (#45762).
  2219. * src/base/ftstroke.c (ft_outline_glyph_class): Use
  2220. FT_CALLBACK_TABLE.
  2221. 2015-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
  2222. [truetype] Clean up.
  2223. * src/truetype/ttgload.c (TT_Process_Composite_Component): Use
  2224. `FT_Outline_Transform' and `FT_Outline_Translate'.
  2225. (translate_array): Dropped.
  2226. 2015-08-14 Andreas Enge <andreas.enge@inria.fr>
  2227. * builds/unix/detect.mk (CONFIG_SHELL): Don't handle it (#44261).
  2228. 2015-08-13 Werner Lemberg <wl@gnu.org>
  2229. [truetype] Introduce named instance access to GX fonts.
  2230. For functions querying a face, bits 16-30 of the face index can hold
  2231. the named instance index if we have a GX font. The indices start
  2232. with value 1; value 0 indicates font access without GX variation
  2233. data.
  2234. * include/freetype/freetype.h (FT_FaceRec): Update documentation.
  2235. * include/freetype/internal/sfnt.h: Ditto.
  2236. * src/sfnt/sfobjs.c (sfnt_init_face)
  2237. [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Get number of named instances and
  2238. do argument checks.
  2239. (sfnt_load_face): Updated.
  2240. * src/truetype/ttobjs.c (tt_face_init)
  2241. [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Use named instance, overwriting
  2242. the style name.
  2243. * src/base/ftobjs.c (open_face_from_buffer,
  2244. open_face_PS_from_sfnt_stream): Updated.
  2245. * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated.
  2246. * src/cff/cffload.c (cff_font_load): Updated.
  2247. * src/cff/cffobjs.c (cff_face_init): Make function exit early for
  2248. pure CFF fonts if `font_index < 0'.
  2249. Updated.
  2250. * src/cid/cidobjs.c (cid_face_init): Updated.
  2251. * src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
  2252. * src/pfr/pfrobjs.c (pfr_face_init): Updated.
  2253. * src/type1/t1objs.c (T1_Face_Init): Updated.
  2254. * src/type42/t42objs.c (T42_Face_Init): Updated.
  2255. * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
  2256. Updated.
  2257. * docs/CHANGES: Updated.
  2258. 2015-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
  2259. [type1,cff,cid] Streamline font matrix application.
  2260. * src/type1/t1gload.c (T1_Load_Glyph): Directly modify advances only
  2261. if font matrix is not trivial.
  2262. * src/cff/cffgload.c (cff_slot_load): Ditto.
  2263. * src/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the
  2264. entire outline.
  2265. 2015-08-11 Werner Lemberg <wl@gnu.org>
  2266. [builds/unix] Minor.
  2267. * builds/unix/configure.raw:
  2268. s/lib{priv,staticconf}/libs{priv,staticconf}/ for orthogonality with
  2269. similarly named uppercase variables.
  2270. 2015-08-10 Alexei Podtelezhnikov <apodtele@gmail.com>
  2271. [type1,cid,type42] Minor improvements.
  2272. * src/type1/t1load.c (t1_parse_font_matrix): Scale units per EM only
  2273. when necessary. Refresh comments.
  2274. * src/cid/cidload.c (cid_parse_font_matrix): Ditto.
  2275. * src/type42/t42parse.c (t42_parse_font_matrix): Refresh comments.
  2276. 2015-08-08 Werner Lemberg <wl@gnu.org>
  2277. [type42] Fix glyph access.
  2278. This is a severe bug: We've missed one level of indirection, as
  2279. described in the Type 42 specification. As a result, ftview
  2280. sometimes showed incorrect glyphs for given glyph names, and even
  2281. displayed `error 0x0006' (invalid argument!) in case the number of
  2282. glyph indices differed between the Type 42 font and the embedded
  2283. TTF.
  2284. Apparently, noone ever noticed it; this shows how much Type 42 fonts
  2285. are in use...
  2286. * src/type42/t42objs.c (T42_GlyphSlot_Load): Map Type 42 glyph index
  2287. to embedded TTF's glyph index.
  2288. 2015-08-08 Werner Lemberg <wl@gnu.org>
  2289. [type42] Minor clean-up.
  2290. * src/type42/t42parse.c (t42_parse_font_matrix): Remove unused
  2291. variable.
  2292. 2015-08-06 Alexei Podtelezhnikov <apodtele@gmail.com>
  2293. [type42] Parse FontMatrix according to specifications.
  2294. * src/type42/t42parse.c (t42_parse_font_matrix): Type 42 FontMatrix
  2295. does not need scaling by 1000. Units_per_EM are taken from the
  2296. embedded TrueType.
  2297. 2015-08-06 Werner Lemberg <wl@gnu.org>
  2298. [autofit] Improve Arabic hinting.
  2299. Problem reported by Titus Nemeth <tn@tntypography.eu> (by using
  2300. ttfautohint).
  2301. * src/autofit/afblue.dat: Add neutral blue zone for the tatweel
  2302. character.
  2303. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  2304. 2015-08-05 Alexei Podtelezhnikov <apodtele@gmail.com>
  2305. [truetype] Clean up types.
  2306. * src/truetype/ttobjs.c (TT_Size): Move declaration from here.
  2307. * include/freetype/internal/tttypes.h (TT_Size): ... to here.
  2308. (TT_LoaderRec): Switch to appropriate types for `face' and `size'.
  2309. * src/truetype/ttgload.c: Remove corresponding type casts.
  2310. * src/truetype/ttsubpix.c: Ditto.
  2311. 2015-08-05 Werner Lemberg <wl@gnu.org>
  2312. [autofit] Improve recognition of flat vs. rounded segments.
  2313. Lower the flatness threshold from upem/8 to upem/14, making the
  2314. auto-hinter accept shorter elements.
  2315. Synchronize flat/round stem selection algorithm with blue zone code.
  2316. * src/autofit/aflatin.c (FLAT_THRESHOLD): New macro.
  2317. (af_latin_metrics_init_blues): Use it.
  2318. (af_latin_hints_compute_segments): Collect information on maximum
  2319. and minimum coordinates of `on' points; use this to add a constraint
  2320. for the flat/round decision similar to
  2321. `af_latin_metrics_init_blues'.
  2322. 2015-08-04 Werner Lemberg <wl@gnu.org>
  2323. Another left-shift bug (#45681).
  2324. * src/base/ftobjs.c (IsMacBinary): Only accept positive values for
  2325. `dlen'.
  2326. 2015-08-03 Alexei Podtelezhnikov <apodtele@gmail.com>
  2327. [base] Fix `ft_corner_orientation'.
  2328. Remove casting from `FT_Long' to `FT_Int' that might change the sign
  2329. of the return value and make it faster too.
  2330. * src/base/ftcalc.c (ft_corner_orientation): On 32-bit systems, stay
  2331. with 32-bit arithmetic when safe. Use plain math on 64-bit systems.
  2332. * src/pshinter/pshalgo.c: Remove old unused code.
  2333. 2015-08-03 Werner Lemberg <wl@gnu.org>
  2334. * src/truetype/ttgload.c (load_truetype_glyph)
  2335. [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix crash for composite glyphs
  2336. having a depth greater than 1.
  2337. 2015-08-03 Werner Lemberg <wl@gnu.org>
  2338. Fix typo in clang bug from 2015-07-31 (#45678).
  2339. * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Fix inequality.
  2340. 2015-08-02 Werner Lemberg <wl@gnu.org>
  2341. * CMakeLists.txt: Improve shared library support.
  2342. Based on a patch from John Cary <cary@txcorp.com>.
  2343. 2015-08-02 Werner Lemberg <wl@gnu.org>
  2344. * builds/unix/freetype-config.in (enable_shared): Remove. Unused.
  2345. 2015-08-02 Werner Lemberg <wl@gnu.org>
  2346. Fix more invalid left-shifts.
  2347. * src/pfr/pfrgload.c (pfr_glyph_load_compound): Use multiplication,
  2348. not left-shift.
  2349. * src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
  2350. tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Use multiplication,
  2351. not left-shift.
  2352. 2015-07-31 Werner Lemberg <wl@gnu.org>
  2353. Fix some bugs found by clang's `-fsanitize=undefined' (#45661).
  2354. * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Only accept
  2355. positive values from header.
  2356. Check overflow.
  2357. * src/base/ftoutln.c (SCALED): Correctly handle left-shift of
  2358. negative values.
  2359. * src/bdf/bdf.h (_bdf_glyph_modified, _bdf_set_glyph_modified,
  2360. _bdf_clear_glyph_modified): Use unsigned long constant.
  2361. * src/bdf/bdfdrivr.c (BDF_Size_Select, BDF_Glyph_Load): Don't
  2362. left-shift values that can be negative.
  2363. * src/pcf/pcfdrivr.c (PCF_Size_Select, PCF_Glyph_Load): Don't
  2364. left-shift values that can be negative.
  2365. * src/raster/ftraster.c (SCALED): Correctly handle left-shift of
  2366. negative values.
  2367. * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Don't left-shift
  2368. values that can be negative.
  2369. * src/truetype/ttgload.c (TT_Load_Composite_Glyph,
  2370. compute_glyph_metrics, load_sbit_image): Don't left-shift values
  2371. that can be negative.
  2372. 2015-07-31 Werner Lemberg <wl@gnu.org>
  2373. Define FT_LONG_MAX.
  2374. * include/freetype/config/ftstdlib.h (FT_LONG_MAX): New macro.
  2375. * src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use it.
  2376. 2015-07-28 Alexei Podtelezhnikov <apodtele@gmail.com>
  2377. * src/base/ftcalc.c (FT_Vector_NormLen): Clarify.
  2378. 2015-07-27 Alexei Podtelezhnikov <apodtele@gmail.com>
  2379. * src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions.
  2380. 2015-07-26 Matthias Clasen <matthias.clasen@gmail.com>
  2381. [cff] Don't use `hmtx' table for LSB (#45520).
  2382. * src/cff/cffgload.c (cff_slot_load): Use `htmx' table for advance
  2383. width only. Bug introduced 2015-04-10.
  2384. 2015-07-09 Werner Lemberg <wl@gnu.org>
  2385. Better support of user-supplied C++ namespaces.
  2386. See
  2387. https://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html
  2388. for a rationale.
  2389. * src/autofit/afpic.h, src/base/basepic.h, src/cff/cffpic.h,
  2390. src/pshinter/pshpic.h, src/psnames/pspic.h, src/raster/rastpic.h,
  2391. src/sfnt/sfntpic.h, src/smooth/ftspic.h, src/truetype/ttpic.h
  2392. (FT_BEGIN_HEADER, FT_END_HEADER): Move macro calls to not enclose
  2393. header files that contain FT_{BEGIN,END}_HEADER macros by
  2394. themselves.
  2395. * src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include
  2396. FT_CONFIG_STANDARD_LIBRARY_H earlier.
  2397. * src/truetype/ttpic.h: Include FT_INTERNAL_PIC_H.
  2398. 2015-07-07 Werner Lemberg <wl@gnu.org>
  2399. [sfnt] Make `tt_face_get_name' member of the SFNT interface.
  2400. * include/freetype/internal/sfnt.h (TT_Get_Name_Func): New
  2401. prototype.
  2402. (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): New member `get_name'.
  2403. * src/sfnt/sfdriver.c (sfnt_interface): Updated.
  2404. * src/sfnt/sfobjs.c (tt_face_get_name): Tag it with `LOCAL_DEF'.
  2405. * src/sfnt/sfobjs.h: Add prototype for it.
  2406. 2015-06-30 Werner Lemberg <wl@gnu.org>
  2407. Fix some clang compiler warnings.
  2408. * src/base/ftoutln.c (FT_Outline_EmboldenXY), src/cff/cf2intrp.c
  2409. (cf2_interpT2CharString), src/truetype/ttgload.c
  2410. (load_truetype_glyph), src/truetype/ttgxvar.c (tt_handle_deltas),
  2411. src/truetype/ttinterp.c (Ins_INSTCTRL): Fix signedness issues.
  2412. 2015-06-29 Alexei Podtelezhnikov <apodtele@gmail.com>
  2413. [truetype] Speed up bytecode interpreter.
  2414. * src/truetype/ttinterp.c (Normalize): Use `FT_Vector_NormLen'.
  2415. 2015-06-29 Alexei Podtelezhnikov <apodtele@gmail.com>
  2416. [base] Speed up emboldening.
  2417. * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use
  2418. `FT_Vector_NormLen'.
  2419. 2015-06-29 Alexei Podtelezhnikov <apodtele@gmail.com>
  2420. [base] Implement fast vector normalization.
  2421. The function uses Newton's iterations instead of dividing vector
  2422. components by its length, which needs a square root. This is,
  2423. literally, a bit less accurate but a lot faster.
  2424. * src/base/ftcalc.c (FT_Vector_NormLen): New function.
  2425. 2015-06-28 Werner Lemberg <wl@gnu.org>
  2426. * CMakeLists.txt: Always create `ftconfig.h'.
  2427. For non-UNIX builds, the file stays unmodified. However, it's
  2428. better to have the main configuration files at the same place
  2429. regardless of the OS.
  2430. 2015-06-28 Werner Lemberg <wl@gnu.org>
  2431. * CMakeLists.txt: Improve MSVC support (#43737).
  2432. 2015-06-28 Werner Lemberg <wl@gnu.org>
  2433. [cmake] Check for libraries and create `ftoption.h'.
  2434. * builds/FindHarfBuzz.cmake: New file, taken from
  2435. https://trac.webkit.org/browser/trunk/Source/cmake/FindHarfBuzz.cmake
  2436. * CMakeLists.Txt: Add path to local cmake modules.
  2437. Find dependencies for zlib, bzip2, libpng, and harfbuzz.
  2438. Create `ftoption.h' file.
  2439. Set up include and linker stuff for libraries.
  2440. 2015-06-28 Werner Lemberg <wl@gnu.org>
  2441. * CMakeLists.txt: Fix creation of `ftconfig.h'.
  2442. Check for UNIX header files using `check_include_file'.
  2443. Set up correct header include directories.
  2444. 2015-06-28 Werner Lemberg <wl@gnu.org>
  2445. * CMakeLists.txt: Disallow in-source builds.
  2446. 2015-06-27 Werner Lemberg <wl@gnu.org>
  2447. * src/tools/docmaker/utils.py (check_output): Add missing `\n'.
  2448. 2015-06-26 Werner Lemberg <wl@gnu.org>
  2449. * CMakeLists.txt: Select platform-dependent `ftdebug.c'.
  2450. 2015-06-25 Werner Lemberg <wl@gnu.org>
  2451. * CMakeLists.txt: Use cmake functions for generating `ftconfig.h'.
  2452. Additionally, do this for UNIX only.
  2453. 2015-06-25 Werner Lemberg <wl@gnu.org>
  2454. * CMakeLists.txt (BASE_SRCS): Use `ftbase.c' and `psnames.c'.
  2455. 2015-06-25 Werner Lemberg <wl@gnu.org>
  2456. Another adjustment to header locations.
  2457. This change is a result of a discussion thread on freetype-devel
  2458. https://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html
  2459. Re-introduce the `freetype2' subdirectory for all FreeType header
  2460. files after installation, and rename the `freetype2' subdirectory in
  2461. the git repository to `freetype'.
  2462. * include/freetype2: Renamed to...
  2463. * include/freetype: This.
  2464. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
  2465. PRIVATE_HEADERS): Updated.
  2466. Update creation of `ftconfig.h'.
  2467. Install generated `ftconfig.h'.
  2468. * Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.
  2469. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk
  2470. (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
  2471. builds/unix/freetype2.in: Updated.
  2472. * builds/unix/freetype-config.in: Updated.
  2473. * builds/unix/configure.raw: Don't check for `rmdir'.
  2474. * builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable
  2475. according to the autoconf info manual.
  2476. * builds/unix/install.mk (install, uninstall,
  2477. distclean_project_unix): Update and simplify.
  2478. * builds/wince/*, builds/windows/*: Updated.
  2479. * devel/ft2build.h, include/ft2build.h: Updated.
  2480. * include/freetype2/config/ftheader.h,
  2481. include/freetype2/internal/ftserv.h,
  2482. include/freetype2/internal/internal.h: Update all header file
  2483. macros.
  2484. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.
  2485. * docs/*: Updated.
  2486. 2015-06-24 Alexei Podtelezhnikov <apodtele@gmail.com>
  2487. * src/bdf/bdflib.c (_bdf_parse_start): Disallow 0 bpp.
  2488. 2015-06-24 Alexei Podtelezhnikov <apodtele@gmail.com>
  2489. * src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.
  2490. 2015-06-23 Werner Lemberg <wl@gnu.org>
  2491. s/TYPEOF/FT_TYPEOF/ (#45376).
  2492. * builds/unix/ftconfig.in, builds/vms/ftconfig.in,
  2493. include/freetype2/config/ftconfig.h,
  2494. include/freetype2/internal/ftobjs.h, src/autofit/afwarp.h: Do it.
  2495. 2015-06-22 Werner Lemberg <wl@gnu.org>
  2496. Fix Savannah bug #45097.
  2497. We no longer `pollute' the namespace of possible header file names;
  2498. instead we move `ft2build.h' up by one level so that it gets
  2499. installed in the default include directory (e.g.,
  2500. /usr/local/include). After this commit, only `ft2build.h' stays in
  2501. the compiler's include path.
  2502. No visible changes for the user who follows the standard FreeType
  2503. header inclusion rules.
  2504. * include/*: Move to ...
  2505. * include/freetype2/*: This directory, except `ft2build.h'.
  2506. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
  2507. PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.
  2508. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk
  2509. (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
  2510. builds/unix/install.mk (install, uninstall),
  2511. builds/unix/freetype2.in: Updated.
  2512. * builds/unix/freetype-config.in: Updated.
  2513. Emit -I directory only if it is not `/usr/include'.
  2514. * builds/wince/*, builds/windows/*: Updated.
  2515. * devel/ft2build.h, include/ft2build.h: Updated.
  2516. * include/freetype2/config/ftheader.h,
  2517. include/freetype2/internal/ftserv.h,
  2518. include/freetype2/internal/internal.h: Update all header file
  2519. macros.
  2520. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.
  2521. 2015-06-21 Werner Lemberg <wl@gnu.org>
  2522. Make Jam support work again.
  2523. This is just very basic stuff and just a little bit tested on
  2524. GNU/Linux only. I won't delve into this since I'm not a Jam user.
  2525. * Jamfile: Call `HDRMACRO' for `ftserv.h' also.
  2526. (DEFINES): Replace with...
  2527. (CCFLAGS): ... this.
  2528. * src/Jamfile: Don't call `HDRMACRO' for `internal.h'; this is
  2529. already handled in the top-level Jamfile.
  2530. * src/autofit/Jamfile (DEFINES): Replace with...
  2531. (CCFLAGS): ... this.
  2532. (_sources): Add missing files.
  2533. * src/cache/Jamfile: Don't call `HDRMACRO' for `ftcache.h'; it no
  2534. longer contains macro header definitions.
  2535. * src/base/Jamfile, src/cff/Jamfile, src/sfnt/Jamfile,
  2536. src/truetype/Jamfile (_sources): Add missing files.
  2537. 2015-06-16 Werner Lemberg <wl@gnu.org>
  2538. Fix Savannah bug #45326.
  2539. * src/sfnt/sfntpic.h (SFNT_SERVICES_GET): Remove duplicate
  2540. definitions.
  2541. 2015-06-07 Werner Lemberg <wl@gnu.org>
  2542. * Version 2.6 released.
  2543. =======================
  2544. Tag sources with `VER-2-6'.
  2545. * docs/VERSION.DLL: Update documentation and bump version number to
  2546. 2.6.
  2547. * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
  2548. builds/windows/vc2005/index.html,
  2549. builds/windows/vc2008/freetype.vcproj,
  2550. builds/windows/vc2008/index.html,
  2551. builds/windows/vc2010/freetype.vcxproj,
  2552. builds/windows/vc2010/index.html,
  2553. builds/windows/visualc/freetype.dsp,
  2554. builds/windows/visualc/freetype.vcproj,
  2555. builds/windows/visualc/index.html,
  2556. builds/windows/visualce/freetype.dsp,
  2557. builds/windows/visualce/freetype.vcproj,
  2558. builds/windows/visualce/index.html,
  2559. builds/wince/vc2005-ce/freetype.vcproj,
  2560. builds/wince/vc2005-ce/index.html,
  2561. builds/wince/vc2008-ce/freetype.vcproj,
  2562. builds/wince/vc2008-ce/index.html: s/2.5.5/2.6/, s/255/26/.
  2563. * include/freetype/freetype.h (FREETYPE_MINOR): Set to 6.
  2564. (FREETYPE_PATCH): Set to 0.
  2565. * builds/unix/configure.raw (version_info): Set to 18:0:12.
  2566. * CMakeLists.txt (VERSION_MINOR): Set to 6.
  2567. (VERSION_PATCH): Set to 0.
  2568. * src/autofit/afmodule.c [!FT_MAKE_OPTION_SINGLE_OBJECT]: Add
  2569. declarations for dumping functions.
  2570. * src/truetype/ttinterp.c (TT_New_Context): Pacify compiler.
  2571. * builds/toplevel.mk: Use `freetype.mk's code to compute the version
  2572. string.
  2573. Don't include a zero patch level in version string.
  2574. * builds/freetype.mk: Remove code for computing the version string.
  2575. 2015-06-06 Ashish Azad <ashish.azad@samsung.com>
  2576. Fix Savannah bug #45260.
  2577. * src/pfr/pfrdrivr.c (pfr_get_kerning): Fix typo.
  2578. 2015-06-03 Werner Lemberg <wl@gnu.org>
  2579. [truetype] Fix memory leak.
  2580. Problem reported by Grissiom <chaos.proton@gmail.com>; in
  2581. https://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html
  2582. there is an example code to trigger the bug.
  2583. * src/truetype/ttobjs.c (tt_size_init_bytecode): Free old `size'
  2584. data before allocating again. Bug most probably introduced four
  2585. years ago in version 2.4.3.
  2586. 2015-06-02 Werner Lemberg <wl@gnu.org>
  2587. [raster] Add more tracing.
  2588. * src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define.
  2589. (Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span,
  2590. Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls.
  2591. 2015-06-01 Werner Lemberg <wl@gnu.org>
  2592. [truetype] While tracing opcodes, show code position and stack.
  2593. * src/truetype/ttinterp.c: Change all existing TRACE7 calls to
  2594. TRACE6.
  2595. (opcode_name): Add string lengths.
  2596. (TT_RunIns): Implement display of code position and stack.
  2597. 2015-05-31 Werner Lemberg <wl@gnu.org>
  2598. [truetype] In GX, make private point numbers work correctly.
  2599. This is completely missing in Apple's documentation: If a `gvar'
  2600. tuple uses private point numbers (this is, deltas are specified for
  2601. some points only), the uncovered points must be interpolated for
  2602. this tuple similar to the IUP bytecode instruction. Examples that
  2603. need this functionality are glyphs `Oslash' and `Q' in Skia.ttf.
  2604. * src/truetype/ttgxvar.c (tt_delta_shift, tt_delta_interpolate,
  2605. tt_handle_deltas): New functions.
  2606. (TT_Vary_Get_Glyph_Deltas): Renamed to...
  2607. (TT_Vary_Apply_Glyph_Deltas): ... this; it directly processes the
  2608. points and does no longer return an array of deltas.
  2609. Add tracing information.
  2610. Call `tt_handle_deltas' to interpolate missing deltas.
  2611. Also fix a minor memory leak in case of error.
  2612. * src/truetype/ttgxvar.h: Updated.
  2613. * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
  2614. load_truetype_glyph): Updated.
  2615. 2015-05-31 Werner Lemberg <wl@gnu.org>
  2616. [truetype] In GX, make intermediate tuplets work at extrema.
  2617. * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix range condition.
  2618. 2015-05-31 Werner Lemberg <wl@gnu.org>
  2619. [truetype] Add tracing information to GX code.
  2620. * src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
  2621. ft_var_apply_tuple, TT_Get_MM_Var, TT_Set_MM_Blend,
  2622. TT_Set_Var_Design, tt_face_vary_cvt): Do it.
  2623. 2015-05-28 Werner Lemberg <wl@gnu.org>
  2624. * src/tools/apinames.c (names_dump): Fix invalid reference.
  2625. Problem reported by Guzman Mosqueda, Jose R
  2626. <jose.r.guzman.mosqueda@intel.com>.
  2627. 2015-05-24 Werner Lemberg <wl@gnu.org>
  2628. [truetype] Fix commit from 2015-05-22.
  2629. * src/truetype/ttgload.c, src/truetype/ttinterp.c: Guard new code
  2630. with `TT_CONFIG_OPTION_SUBPIXEL_HINTING'.
  2631. Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
  2632. 2015-05-23 Werner Lemberg <wl@gnu.org>
  2633. [truetype] Fix return values of GETINFO bytecode instruction.
  2634. * src/truetype/ttinterp.h (TT_ExecContextRec): New fields
  2635. `vertical_lcd' and `gray_cleartype'.
  2636. * src/truetype/ttgload.c (tt_loader_init): Initialize new fields.
  2637. Change `symmetrical smoothing' to TRUE, since FreeType produces
  2638. exactly this.
  2639. * src/truetype/ttinterp.c (Ins_GETINFO): Fix selector/return bit
  2640. values for symmetrical smoothing, namely 11/18.
  2641. Handle bits for vertical LCD subpixels (8/15) and Gray ClearType
  2642. (12/19).
  2643. 2015-05-23 Werner Lemberg <wl@gnu.org>
  2644. [truetype] Minor.
  2645. * src/truetype/ttinterp.h (TT_ExecContext):
  2646. s/subpixel/subpixel_hinting.
  2647. * src/truetype/ttgload.c, src/truetype/ttgload.h: Updated.
  2648. 2015-05-22 Werner Lemberg <wl@gnu.org>
  2649. [truetype] Support selector index 3 of the INSTCTRL instruction.
  2650. This flag activates `native ClearType hinting', disabling backward
  2651. compatibility mode as described in Greg Hitchcocks whitepaper. In
  2652. other words, it enables unrestricted functionality of all TrueType
  2653. instructions in ClearType.
  2654. * src/truetype/ttgload.c (tt_get_metrics): Call `sph_set_tweaks'
  2655. unconditionally.
  2656. (tt_loader_init): Unset `ignore_x_mode' flag if bit 2 of
  2657. `GS.instruct_control' is active.
  2658. * src/truetype/ttinterp.c (Ins_INSTCTRL): Handle selector index 3.
  2659. (Ins_GETINFO): Updated.
  2660. * docs/CHANGES: Document it.
  2661. 2015-05-20 Werner Lemberg <wl@gnu.org>
  2662. [truetype] Minor.
  2663. * src/truetype/ttinterp.h (SetSuperRound): Fix type of `GridPeriod'
  2664. argument.
  2665. 2015-05-17 Werner Lemberg <wl@gnu.org>
  2666. [truetype] Fix loading of composite glyphs.
  2667. * src/truetype/ttgload.c (TT_Load_Composite_Glyph): If the
  2668. ARGS_ARE_XY_VALUES flag is not set, handle argument values as
  2669. unsigned. I trust `ttx' (which has exactly such code) that it does
  2670. the right thing here...
  2671. The reason that noone has ever noticed this bug is probably the fact
  2672. that point-aligned subglyphs are rare, as are subglyphs with a
  2673. number of points in the range [128;255], which is quite large (or
  2674. even in the range [32768;65535], which is extremely unlikely).
  2675. 2015-05-12 Chris Liddell <chris.liddell@artifex.com>
  2676. [cff] Make the `*curveto' operators more tolerant.
  2677. * src/cff/cf2intrp.c (cf2_interpT2CharString): The opcodes
  2678. `vvcurveto', `hhcurveto', `vhcurveto', and `hvcurveto' all iterate,
  2679. pulling values off the stack until the stack is exhausted.
  2680. Implicitly the stack must be a multiple (or for subtly different
  2681. behaviour) a multiple plus a specific number of extra values deep.
  2682. If that's not the case, enforce it (as the old code did).
  2683. 2015-05-12 Chris Liddell <chris.liddell@artifex.com>
  2684. [cff] fix incremental interface with new cff code.
  2685. * src/cff/cf2ft.c (cf2_getSeacComponent): When using the incremental
  2686. interface to retrieve glyph data for a SEAC, it be left to the
  2687. incremental interface callback to apply the encoding to raw
  2688. character index (as it was in the previous code).
  2689. 2015-04-29 Alexei Podtelezhnikov <apodtele@gmail.com>
  2690. [autofit] Speed up IUP.
  2691. * src/autofit/afhints.c (af_iup_interp): Separate trivial snapping to
  2692. the same position from true interpolation, use `scale' to reduce
  2693. divisions.
  2694. 2015-04-28 Werner Lemberg <wl@gnu.org>
  2695. [cff] Use `name' table for PS name if we have a SFNT-CFF.
  2696. This follows the OpenType 1.7 specification. See
  2697. https://tug.org/pipermail/tex-live/2015-April/036634.html
  2698. for a discussion.
  2699. * src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we
  2700. have an SFNT.
  2701. 2015-04-27 Alexei Podtelezhnikov <apodtele@gmail.com>
  2702. [truetype] Speed up IUP.
  2703. * src/truetype/ttinterp.c (_iup_worker_interpolate): Separate trivial
  2704. snapping to the same position from true interpolation.
  2705. 2015-04-21 Werner Lemberg <wl@gnu.org>
  2706. [autofit] By default, enable warping code but switch off warping.
  2707. Suggested by Behdad.
  2708. * include/config/ftoption.h: Define AF_CONFIG_OPTION_USE_WARPER.
  2709. * src/autofit/afmodule.c (af_autofitter_init): Initialize `warping'
  2710. with `false'.
  2711. 2015-04-21 Werner Lemberg <wl@gnu.org>
  2712. * docs/CHANGES: Updated.
  2713. 2015-04-21 Werner Lemberg <wl@gnu.org>
  2714. [autofit] Introduce `warping' property.
  2715. This code replaces the debugging hook from the previous commit with
  2716. a better, more generic solution.
  2717. * include/ftautoh.h: Document it.
  2718. * src/autofit/afmodule.h (AF_ModuleRec)
  2719. [AF_CONFIG_OPTION_USE_WARPER]: Add `warping' field.
  2720. * src/autofit/afmodule.c (_af_debug_disable_warper): Remove.
  2721. (af_property_set, af_property_get, af_autofitter_init)
  2722. [AF_CONFIG_OPTION_USE_WARPER]: Handle `warping' option.
  2723. * src/autofit/afhints.h (AF_HINTS_DO_WARP): Remove use of the no
  2724. longer existing `_af_debug_disable_warper'.
  2725. * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
  2726. (af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init)
  2727. [AF_CONFIG_OPTION_USE_WARPER]: Add `AF_SCALER_FLAG_NO_WARPER' to the
  2728. scaler flags if warping is off.
  2729. * src/autofit/aftypes.h: Updated.
  2730. 2015-04-16 Werner Lemberg <wl@gnu.org>
  2731. [autofit] Add debugging hook to disable warper.
  2732. * src/autofit/afmodule.c (_af_debug_disable_warper)
  2733. [FT_DEBUG_AUTOFIT]: New global variable.
  2734. * src/autofit/aftypes.h: Updated.
  2735. (AF_SCALER_FLAG_NO_WARPER): New macro (not actively used yet).
  2736. * src/autofit/afhints.h (AF_HINTS_DO_WARP): New macro.
  2737. * src/autofit/aflatin.c (af_latin_hints_apply)
  2738. [AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use
  2739. of warper.
  2740. * src/autofit/afcjk.c (af_cjk_hints_init, af_cjk_hints_apply)
  2741. [AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.
  2742. * src/autofit/aflatin2.c (af_latin2_hints_apply)
  2743. [AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.
  2744. 2015-04-10 Werner Lemberg <wl@gnu.org>
  2745. [cff] Update advance width handling to OpenType 1.7.
  2746. Problem reported by Behdad.
  2747. * src/cff/cffdrivr.c (cff_get_advances): Handle SFNT case
  2748. separately.
  2749. * src/cff/cffgload.c (cff_slot_load): Use advance width and side
  2750. bearing values from `hmtx' table if present.
  2751. 2015-04-03 Alexei Podtelezhnikov <apodtele@gmail.com>
  2752. * src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop.
  2753. 2015-04-02 Alexei Podtelezhnikov <apodtele@gmail.com>
  2754. * src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic.
  2755. 2015-04-01 Alexei Podtelezhnikov <apodtele@gmail.com>
  2756. [autofit] Finish the thought.
  2757. * src/autofit/afhints.c (af_direction_compute): make sure the long arm
  2758. is never negative so that its `FT_ABS' is not necessary.
  2759. 2015-04-01 Werner Lemberg <wl@gnu.org>
  2760. [autofit] Call dumper functions for tracing.
  2761. * src/autofit/afcjk.c (af_cjk_hints_apply): Remove dead code.
  2762. * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor
  2763. improvement.
  2764. * src/autofit/afmodule.c (af_autofitter_load_glyph): Implement it.
  2765. 2015-04-01 Werner Lemberg <wl@gnu.org>
  2766. [autofit] Make debugging stuff work again.
  2767. The interface to ftgrid was broken in the series of commits starting
  2768. with
  2769. [autofit] Allocate AF_Loader on the stack instead of AF_Module.
  2770. from 2015-01-14.
  2771. * src/autofit/afmodule.c (_af_debug_hints_rec) [FT_DEBUG_AUTOFIT]:
  2772. Use a global AF_GlyphHintsRec object for debugging.
  2773. (af_autofitter_done, af_autofitter_load_glyph): Updated.
  2774. * src/autofit/afloader.c (af_loader_init, af_loader_done): Updated.
  2775. 2015-04-01 Werner Lemberg <wl@gnu.org>
  2776. * src/autofit/afhints.c (af_glyph_hints_done): Fix minor thinko.
  2777. 2015-03-29 Werner Lemberg <wl@gnu.org>
  2778. [cff] Fix Savannah bug #44629.
  2779. * src/cff/cf2font.h (CF2_MAX_SUBR), src/cff/cffgload.h
  2780. (CFF_MAX_SUBRS_CALLS): Set to 16.
  2781. 2015-03-29 Werner Lemberg <wl@gnu.org>
  2782. [type1, truetype] Make the MM API more flexible w.r.t. `num_coords'.
  2783. This commit allows `num_coords' to be larger or smaller than the
  2784. number of available axes while selecting a design instance, either
  2785. ignoring excess data or using defaults if data is missing.
  2786. * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
  2787. Implement it.
  2788. * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design,
  2789. T1_Set_Var_Design): Ditto.
  2790. 2015-03-29 Werner Lemberg <wl@gnu.org>
  2791. [type1] Minor.
  2792. * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Use
  2793. FT_THROW.
  2794. (T1_Set_Var_Design): Use T1_MAX_MM_AXIS and FT_THROW.
  2795. 2015-03-27 Werner Lemberg <wl@gnu.org>
  2796. [cff] Trace charstring nesting levels.
  2797. * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR,
  2798. cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it.
  2799. * src/cff/cffgload.c (cff_decoder_parse_charstrings)
  2800. <cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.
  2801. 2015-03-21 Alexei Podtelezhnikov <apodtele@gmail.com>
  2802. [base] Optimize `FT_Angle_Diff'.
  2803. Under normal circumstances we are usually close to the desired range
  2804. of angle values, so that the remainder is not really necessary.
  2805. * src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder.
  2806. * src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.
  2807. 2015-03-21 Werner Lemberg <wl@gnu.org>
  2808. [truetype] Improve `gvar' handling.
  2809. * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Correctly handle
  2810. single-element runs. Cf. glyph `Q' in Skia.ttf with weights larger
  2811. than the default.
  2812. 2015-03-20 Alexei Podtelezhnikov <apodtele@gmail.com>
  2813. * src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring.
  2814. 2015-03-17 Alexei Podtelezhnikov <apodtele@gmail.com>
  2815. Fix Savannah bug #44412 (part 2).
  2816. * src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'.
  2817. 2015-03-11 Werner Lemberg <wl@gnu.org>
  2818. [autofit] Add support for Arabic script.
  2819. Thanks to Titus Nemeth <tn@tntypography.eu> for guidance!
  2820. * src/autofit/afblue.dat: Add blue zone data for Arabic.
  2821. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  2822. * src/autofit/afscript.h: Add Arabic standard characters.
  2823. * src/autofit/afranges.c: Add Arabic data.
  2824. * src/autofit/afstyles.h: Add Arabic data.
  2825. * docs/CHANGES: Document it.
  2826. 2015-03-11 Werner Lemberg <wl@gnu.org>
  2827. Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols.
  2828. * include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed
  2829. to...
  2830. (FT_SERVICE_FONT_FORMAT_H): This.
  2831. * include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed
  2832. to ...
  2833. (FT_FONT_FORMAT_*): This.
  2834. src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
  2835. src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c,
  2836. src/truetype/ttdriver.c, src/type1/t1driver.c,
  2837. src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated.
  2838. 2015-03-11 Werner Lemberg <wl@gnu.org>
  2839. [base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'.
  2840. * include/config/ftheader.h: Implement it.
  2841. * src/base/ftfntfmt.c, docs/CHANGES: Updated.
  2842. 2015-03-11 Werner Lemberg <wl@gnu.org>
  2843. [base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'.
  2844. * include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it.
  2845. * docs/CHANGES: Updated.
  2846. 2015-03-11 Werner Lemberg <wl@gnu.org>
  2847. Fix automatic copyright updating.
  2848. * src/tools/update-copyright: Make scanning of `no-copyright'
  2849. actually work.
  2850. * src/tools/no-copyright: Don't include README in general.
  2851. 2015-03-11 Werner Lemberg <wl@gnu.org>
  2852. Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.
  2853. CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
  2854. builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
  2855. builds/mac/FreeType.m68k_far.make.txt,
  2856. builds/mac/FreeType.ppc_carbon.make.txt,
  2857. builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
  2858. builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
  2859. builds/wince/vc2008-ce/freetype.vcproj,
  2860. builds/windows/vc2005/freetype.vcproj,
  2861. builds/windows/vc2008/freetype.vcproj,
  2862. builds/windows/vc2010/freetype.vcxproj,
  2863. builds/windows/vc2010/freetype.vcxproj.filters,
  2864. builds/windows/visualc/freetype.dsp,
  2865. builds/windows/visualc/freetype.vcproj,
  2866. builds/windows/visualce/freetype.dsp,
  2867. builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
  2868. include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
  2869. src/base/ftfntfmt.c, vms_make.com: Updated.
  2870. 2015-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
  2871. Fix Savannah bug #44412 (part 1).
  2872. * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.
  2873. 2015-03-10 Werner Lemberg <wl@gnu.org>
  2874. [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.
  2875. * include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
  2876. Update all callers.
  2877. * docs/CHANGES: Updated.
  2878. 2015-03-06 Werner Lemberg <wl@gnu.org>
  2879. * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
  2880. Found by Alexei.
  2881. 2015-03-05 Alexei Podtelezhnikov <apodtele@gmail.com>
  2882. * src/base/ftstroke.c: Simplify.
  2883. 2015-03-04 Werner Lemberg <wl@gnu.org>
  2884. [truetype] Some fixes and code refactoring in `ttgxvar.c'.
  2885. * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
  2886. of `point_cnt' if two bytes are read.
  2887. Use a more vertical coding style.
  2888. (ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
  2889. Use a more vertical coding style.
  2890. 2015-03-03 Werner Lemberg <wl@gnu.org>
  2891. [autofit] Fix Savannah bug #44241.
  2892. * src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
  2893. with less than 3 points.
  2894. 2015-03-02 Werner Lemberg <wl@gnu.org>
  2895. Simplify `TYPEOF' macro.
  2896. No need for two arguments.
  2897. * include/config/ftconfig.h, builds/unix/ftconfig.in,
  2898. builds/vms/ftconfig.h (TYPEOF): Updated.
  2899. * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
  2900. src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.
  2901. 2015-03-01 Werner Lemberg <wl@gnu.org>
  2902. Various compiler warning fixes for `make multi'.
  2903. * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
  2904. src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
  2905. af_latin_hint_edges), src/autofit/aflatin2.c
  2906. (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
  2907. as `static'.
  2908. * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
  2909. Removed. Unused.
  2910. * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
  2911. * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused.
  2912. * src/cff/cf2intrp.c: Include `cf2intrp.h'.
  2913. * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused.
  2914. * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused.
  2915. * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.
  2916. * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
  2917. Removed. Unused.
  2918. * src/raster/ftraster.c (Render_Glyph): Declare as `static'.
  2919. * src/sfnt/ttpost.c (load_format_20): Fix signedness warning.
  2920. * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused.
  2921. * src/truetype/ttsubpix.c (is_member_of_family_class,
  2922. is_member_of_style_class): Declare as `static'.
  2923. * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
  2924. as `static'.
  2925. * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
  2926. `static'.
  2927. (T1_FIELD_COUNT): Removed. Unused.
  2928. * src/type1/t1parse.h (T1_Done_Table): Removed. Unused.
  2929. * src/type42/t42parse.c (T1_Done_Table): Removed. Unused.
  2930. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2931. [psaux] Signedness fixes.
  2932. * include/internal/psaux.h, src/psaux/afmparse.c,
  2933. src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
  2934. src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.
  2935. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2936. [otvalid] Signedness fixes.
  2937. * src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
  2938. src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
  2939. Apply.
  2940. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2941. * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.
  2942. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2943. [lzw] Signedness fixes.
  2944. * src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.
  2945. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2946. [gxvalid] Signedness fixes.
  2947. * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
  2948. src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
  2949. src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
  2950. src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
  2951. src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
  2952. src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
  2953. src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
  2954. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2955. [cache] Signedness fixes.
  2956. * src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
  2957. src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.
  2958. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2959. Change dimension fields in `FTC_ImageTypeRec' to unsigned type.
  2960. This doesn't break ABI.
  2961. * include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
  2962. `width' and `height'.
  2963. * docs/CHANGES: Document it.
  2964. 2015-02-25 Werner Lemberg <wl@gnu.org>
  2965. [cache] Don't use `labs'.
  2966. This is the only place in FreeType where this function was used.
  2967. * include/config/ftstdlib.h (ft_labs): Remove.
  2968. * src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
  2969. `FT_ABS'.
  2970. 2015-02-23 Werner Lemberg <wl@gnu.org>
  2971. [cache] Replace `FT_PtrDist' with `FT_Offset'.
  2972. * src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
  2973. is a better choice for `hash' to hold a pointer than `FT_PtrDist'
  2974. (a.k.a. `ptrdiff_t'), especially since the latter is signed,
  2975. causing zillions of signedness warnings. [Note that `hash' was of
  2976. type `FT_UInt32' before the change to `FT_PtrDist'.]
  2977. Update all users.
  2978. * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
  2979. src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.
  2980. 2015-02-23 Werner Lemberg <wl@gnu.org>
  2981. [smooth, raster] Re-enable standalone compilation.
  2982. * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
  2983. [_STANDALONE_]: Define macros.
  2984. * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
  2985. FT_HYPOT) [_STANDALONE_]: Define macros.
  2986. 2015-02-22 Werner Lemberg <wl@gnu.org>
  2987. [smooth] Signedness fixes.
  2988. * src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.
  2989. 2015-02-22 Werner Lemberg <wl@gnu.org>
  2990. * src/raster/ftraster.c: Use the file's typedefs everywhere.
  2991. 2015-02-22 Werner Lemberg <wl@gnu.org>
  2992. * src/sfnt/ttpost.c (load_format_20): Fix error tracing message.
  2993. Bug introduced 6 commits earlier.
  2994. 2015-02-22 Werner Lemberg <wl@gnu.org>
  2995. [pshinter] Fix thinko.
  2996. * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
  2997. check `count'.
  2998. Bug introduced two commits earlier.
  2999. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3000. [raster] Signedness fixes.
  3001. * src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
  3002. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3003. [pshinter] Signedness fixes.
  3004. * src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
  3005. src/pshinter/pshrec.c: Apply.
  3006. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3007. [pshinter] Use macros for (unsigned) flags, not enumerations.
  3008. * src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
  3009. Updated.
  3010. * src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.
  3011. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3012. * src/pshinter/pshrec.c: Simplify.
  3013. (ps_hints_open, ps_hints_stem): Remove switch statement.
  3014. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3015. [sfnt] Signedness fixes.
  3016. * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
  3017. src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
  3018. src/sfnt/ttsbit.c: Apply.
  3019. * src/sfnt/sfdriver.c: Apply.
  3020. (sfnt_get_ps_name): Simplify.
  3021. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3022. [bdf] Signedness fixes.
  3023. * src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
  3024. src/bdf/bdflib.c: Apply.
  3025. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3026. * src/bdf/bdflib.c (_bdf_atous): New function.
  3027. (_bdf_parse_glyphs, _bdf_parse_start): Use it.
  3028. 2015-02-22 Werner Lemberg <wl@gnu.org>
  3029. [pcf] Signedness fixes.
  3030. * src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
  3031. * src/pcf/pcfread.c: Apply.
  3032. (pcf_get_encodings): Ignore invalid negative encoding offsets.
  3033. 2015-02-21 Werner Lemberg <wl@gnu.org>
  3034. * src/winfonts/winfnt.c: Signedness fixes.
  3035. 2015-02-21 Werner Lemberg <wl@gnu.org>
  3036. [type42] Signedness fixes.
  3037. * src/type42/t42parse.c, src/type42/t42parse.h,
  3038. src/type42/t42types.h: Apply.
  3039. 2015-02-21 Werner Lemberg <wl@gnu.org>
  3040. [pfr] Signedness fixes.
  3041. * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
  3042. src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
  3043. src/pfr/pfrtypes.h: Apply.
  3044. 2015-02-21 Werner Lemberg <wl@gnu.org>
  3045. [cff] Minor signedness fixes related to last commit.
  3046. * src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.
  3047. 2015-02-20 Werner Lemberg <wl@gnu.org>
  3048. [cff] Thinkos in bias handling.
  3049. Only the final result is always positive.
  3050. Bug introduced three commits earlier.
  3051. * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
  3052. 2015-02-20 Werner Lemberg <wl@gnu.org>
  3053. [cid] Fix signedness issues and emit some better error codes.
  3054. * src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
  3055. src/cid/cidparse.h: Apply.
  3056. * src/cid/cidload.c: Apply.
  3057. (parse_fd_array): Reject negative values for number of dictionaries.
  3058. * src/cid/cidparse.c: Apply.
  3059. (cid_parser_new): Reject negative values for hex data length.
  3060. 2015-02-20 Werner Lemberg <wl@gnu.org>
  3061. [cff] Signedness fixes for new engine.
  3062. * src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
  3063. src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.
  3064. 2015-02-20 Werner Lemberg <wl@gnu.org>
  3065. [cff] Signedness fixes for basic infrastructure and old engine.
  3066. * include/internal/pshints.h, src/cff/cffdrivr.c,
  3067. src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
  3068. src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.
  3069. 2015-02-19 Werner Lemberg <wl@gnu.org>
  3070. * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.
  3071. This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
  3072. version exists), but some fonts set it incorrectly.
  3073. Problem reported by Adam Twardoch <adam@fontlab.com>.
  3074. 2015-02-19 Werner Lemberg <wl@gnu.org>
  3075. [cff] Emit better error code for invalid private dict size.
  3076. * src/cff/cffparse.c (cff_parse_private_dict): Reject negative
  3077. values for size and offset.
  3078. 2015-02-19 Werner Lemberg <wl@gnu.org>
  3079. [autofit] Fix signedness issues.
  3080. * src/autofit/afangles.c, src/autofit/afcjk.c,
  3081. src/autofit/afglobal.c, src/autofit/afhints.c,
  3082. src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
  3083. src/autofit/hbshim.c: Apply.
  3084. 2015-02-19 Werner Lemberg <wl@gnu.org>
  3085. [autofit] Use macros for (unsigned) flags, not enumerations.
  3086. This harmonizes with other code in FreeType (and reduces the number
  3087. of necessary casts to avoid compiler warnings).
  3088. * src/autofit/afblue.hin: Make flag macros unsigned.
  3089. * src/autofit/afblue.h: Regenerated.
  3090. * src/autofit/afcjk.h: Replace flag enumeration with macros.
  3091. * src/autofit/afcjk.c: Updated.
  3092. * src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
  3093. macros.
  3094. * src/autofit/afhints.c: Updated.
  3095. * src/autofit/aflatin.h: Replace flag enumerations with macros.
  3096. * src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.
  3097. * src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.
  3098. 2015-02-18 Werner Lemberg <wl@gnu.org>
  3099. [type1] Fix signedness issues.
  3100. * include/internal/psaux.h, include/internal/t1types.h,
  3101. src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
  3102. src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.
  3103. 2015-02-18 Werner Lemberg <wl@gnu.org>
  3104. [psaux, type1] Fix minor AFM issues.
  3105. * include/internal/t1types.h (AFM_KernPairRec): Make indices
  3106. unsigned.
  3107. Update users.
  3108. (AFM_FontInfoRec): Make element counters unsigned.
  3109. Update users.
  3110. * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
  3111. int.
  3112. * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
  3113. Reject negative values for number of kerning elements.
  3114. * src/type1/t1afm.c, src/tools/test_afm.c: Updated.
  3115. 2015-02-18 Werner Lemberg <wl@gnu.org>
  3116. Don't use `FT_PtrDist' for lengths.
  3117. Use FT_UInt instead.
  3118. * include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
  3119. T1_DecoderRec): Do it.
  3120. * include/internal/t1types.h (T1_FontRec): Ditto.
  3121. * src/cid/cidload.c (cid_parse_dict): Updated.
  3122. * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
  3123. * src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
  3124. * src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
  3125. parse_charstrings, parse_dict): Ditto.
  3126. * src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
  3127. t42_parse_dict): Ditto.
  3128. 2015-02-18 Werner Lemberg <wl@gnu.org>
  3129. * src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
  3130. This handles negative values better, avoiding many casts.
  3131. 2015-02-17 Werner Lemberg <wl@gnu.org>
  3132. [base] Fix Savannah bug #44284.
  3133. * src/base/ftcalc.c (FT_MulFix): Typos.
  3134. 2015-02-17 Werner Lemberg <wl@gnu.org>
  3135. [truetype] Finish compiler warning fixes for signedness issues.
  3136. * src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
  3137. src/truetype/ttsubpix.h: Apply.
  3138. 2015-02-17 Werner Lemberg <wl@gnu.org>
  3139. * src/truetype/ttsubpix.c: Adding missing `static' keywords.
  3140. 2015-02-17 Werner Lemberg <wl@gnu.org>
  3141. [truetype] More signedness fixes.
  3142. * include/internal/tttypes.h, src/truetype/ttinterp.h,
  3143. src/truetype/ttobjs.h, src/truetype/ttinterp.c,
  3144. src/truetype/ttobjs.c: Apply.
  3145. 2015-02-17 Werner Lemberg <wl@gnu.org>
  3146. [truetype] Various signedness fixes.
  3147. * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
  3148. * src/truetype/ttgload.c: Apply.
  3149. (TT_Get_VMetrics): Protect against invalid ascenders and descenders
  3150. while constructing advance height.
  3151. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3152. [base] Finish compiler warning fixes for signedness issues.
  3153. * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
  3154. Apply.
  3155. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3156. * include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
  3157. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3158. More minor signedness warning fixes.
  3159. * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
  3160. src/base/ftutil.c: Apply.
  3161. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3162. Next round of minor compiler warning fixes.
  3163. * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
  3164. type to `FT_Long'.
  3165. (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
  3166. * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
  3167. * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
  3168. Signedness fixes.
  3169. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3170. Various minor signedness fixes.
  3171. * include/ftadvanc.h, include/internal/ftobjs.h,
  3172. src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
  3173. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3174. New `TYPEOF' macro.
  3175. This helps suppress signedness warnings, avoiding issues with
  3176. implicit conversion changes.
  3177. * include/config/ftconfig.h, builds/unix/ftconfig.in,
  3178. builds/vms/ftconfig.h (TYPEOF): Define.
  3179. * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
  3180. src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
  3181. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3182. * src/base/ftsystem.c: Use casts in standard C function wrappers.
  3183. (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
  3184. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3185. Fix Savannah bug #44261.
  3186. * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
  3187. environment also while calling the configure script.
  3188. 2015-02-16 Werner Lemberg <wl@gnu.org>
  3189. * include/internal/ftmemory.h: Add some `FT_Offset' casts.
  3190. (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
  3191. FT_MEM_MOVE): Do it.
  3192. 2015-02-15 Werner Lemberg <wl@gnu.org>
  3193. [base] Clean up signedness issues in `ftdbgmem.c'.
  3194. Also fix other minor issues.
  3195. * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
  3196. with FT_Long for consistency.
  3197. (ft_mem_primes): Change type to `FT_Int'.
  3198. (ft_mem_closest_prime, ft_mem_table_set): Updated.
  3199. (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
  3200. ft_mem_debug_realloc): Use `static' keyword and fix signedness
  3201. warnings where necessary.
  3202. (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
  3203. ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
  3204. and add or remove casts to avoid signedness warnings.
  3205. 2015-02-15 Werner Lemberg <wl@gnu.org>
  3206. [base] Clean up signedness in arithmetic functions.
  3207. This makes the code more readable and reduces compiler warnings.
  3208. * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
  3209. FT_DivFix): Convert input parameters to unsigned, do the
  3210. computation, then convert the result back to signed.
  3211. (ft_corner_orientation): Fix casts.
  3212. 2015-02-07 Werner Lemberg <wl@gnu.org>
  3213. [sfnt] Fix Savannah bug #44184.
  3214. * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
  3215. longer reject `htmx' and `vmtx' tables with invalid length but
  3216. sanitize them.
  3217. 2015-02-06 Jon Anderson <jon@websupergoo.com>
  3218. [truetype] Fix regression in the incremental glyph loader.
  3219. * src/truetype/ttgload.c (load_truetype_glyph): For incremental
  3220. fonts, the glyph index may be greater than the number of glyphs
  3221. indicated, so guard the check with a preprocessor conditional.
  3222. 2015-02-06 Werner Lemberg <wl@gnu.org>
  3223. [autofit] Fix potential memory leak.
  3224. While this doesn't show up with FreeType, exactly the same code
  3225. leaks with ttfautohint's modified auto-hinter code (which gets used
  3226. in a slightly different way).
  3227. It certainly doesn't harm since it is similar to already existing
  3228. checks in the code for embedded arrays.
  3229. * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
  3230. and `max_points' for all cases.
  3231. 2015-01-31 Werner Lemberg <wl@gnu.org>
  3232. [autofit] Add support for Thai script.
  3233. Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
  3234. zone characters!
  3235. * src/autofit/afblue.dat: Add blue zone data for Thai.
  3236. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
  3237. * src/autofit/afscript.h: Add Thai standard characters.
  3238. * src/autofit/afranges.c: Add Thai data.
  3239. * src/autofit/afstyles.h: Add Thai data.
  3240. 2015-01-23 Behdad Esfahbod <behdad@behdad.org>
  3241. [raster] Handle `FT_RASTER_FLAG_AA' correctly.
  3242. This fixes a breakage caused by the commit `[raster] Remove
  3243. 5-level gray AA mode from monochrome rasterizer.'.
  3244. Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.
  3245. * src/raster/ftraster.c (ft_black_render): Handle
  3246. `FT_RASTER_FLAG_AA'.
  3247. * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
  3248. remnants.
  3249. 2015-01-18 Werner Lemberg <wl@gnu.org>
  3250. * src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
  3251. 2015-01-18 Chris Liddell <chris.liddell@artifex.com>
  3252. [raster] Fix Savannah bug #44022.
  3253. Add fallback for glyphs with degenerate bounding boxes.
  3254. If a glyph has only one very narrow feature, the bbox can end up
  3255. with either the width or height of the bbox being 0, in which case
  3256. no raster memory is allocated and no attempt is made to render the
  3257. glyph. This is less than ideal when the drop-out compensation in
  3258. the rendering code would actually result in the glyph being
  3259. rendered.
  3260. This problem can be observed with the `I' glyph (gid 47) in the
  3261. Autodesk RomanS TrueType font.
  3262. * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
  3263. dimension is zero to explicitly round up/down (instead of simply
  3264. round).
  3265. 2015-01-17 Werner Lemberg <wl@gnu.org>
  3266. Add some tools to handle yearly copyright notice updates.
  3267. We are now following the GNU guidelines: A new release automatically
  3268. means that the copyright year of all affected files gets updated; it
  3269. is no longer used to track years of modification changes.
  3270. * src/tools/update-copyright-year: New Perl script.
  3271. * src/tools/update-copyright: New shell script that calls
  3272. `update-copyright-year' on all files.
  3273. * src/tools/no-copyright: Exceptions that should not be handled by
  3274. `update-copyright'
  3275. 2015-01-14 Werner Lemberg <wl@gnu.org>
  3276. * docs/CHANGES: Updated, using a description from Behdad.
  3277. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3278. * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
  3279. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3280. [autofit] Add embedded array of segments and edges.
  3281. Avoids multiple mallocs per typical glyphs.
  3282. With this and recent changes to avoid mallocs, the thread-safe
  3283. stack-based loader is now as fast as the previous model that had one
  3284. cached singleton.
  3285. * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
  3286. New macros.
  3287. (AF_AxisHintsRec): Add two arrays for segments and edges.
  3288. * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
  3289. data if number of segments exceeds given threshold value.
  3290. (af_axis_hints_new_edge): Only allocate data if number of edges
  3291. exceeds given threshold value.
  3292. (af_glyph_hints_done): Updated.
  3293. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3294. [autofit] Add embedded arrays for points and contours.
  3295. This avoids at least two malloc calls for typical glyphs.
  3296. * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
  3297. New macros.
  3298. (AF_GlyphHintsRec): Add two arrays for contours and points.
  3299. * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
  3300. Updated.
  3301. (af_glyph_hints_reload): Only allocate data if number of contours or
  3302. points exceeds given threshold values.
  3303. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3304. [autofit] Allocate hints object on the stack.
  3305. This avoids one malloc per load.
  3306. * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
  3307. `AF_GlyphHints'.
  3308. Update prototype.
  3309. * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
  3310. parameter instead of `FT_Memory'.
  3311. (af_loader_done): Directly reset `load_hints'.
  3312. (af_loader_load_g): Updated.
  3313. * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
  3314. `hints' object.
  3315. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3316. [autofit] Reuse slot glyph loader.
  3317. No need to create a new glyph loader; we can reuse the one from
  3318. `slot->internal->loader'. It's hard to tell why it was written that
  3319. way originally, but new code looks sound and correct to me, and
  3320. avoids lots of allocations.
  3321. * src/autofit/afloader.c (af_loader_init): Change return type to
  3322. `void'.
  3323. Don't call `FT_GlyphLoader_New'.
  3324. (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
  3325. (af_loader_load_g): Update code to use `internal->loader', which
  3326. doesn't need copying of data.
  3327. * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
  3328. Update prototype.
  3329. * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
  3330. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3331. [autofit] Remove (unused) support for composite glyphs.
  3332. We never have to deal with composite glyphs in the autohinter, as
  3333. those will be loaded into FORMAT_OUTLINE by the recursed
  3334. `FT_Load_Glyph' function.
  3335. In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
  3336. FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
  3337. FT_LOAD_NO_HINTING:
  3338. /* resolve load flags dependencies */
  3339. if ( load_flags & FT_LOAD_NO_RECURSE )
  3340. load_flags |= FT_LOAD_NO_SCALE |
  3341. FT_LOAD_IGNORE_TRANSFORM;
  3342. if ( load_flags & FT_LOAD_NO_SCALE )
  3343. {
  3344. load_flags |= FT_LOAD_NO_HINTING |
  3345. FT_LOAD_NO_BITMAP;
  3346. load_flags &= ~FT_LOAD_RENDER;
  3347. }
  3348. and as such the auto-hinter is never called. Thus, the recursion in
  3349. `af_loader_load_g' never actually happens. So remove the depth
  3350. counter as well.
  3351. * src/autofit/afloader.c (af_loader_load_g): Remove `depth'
  3352. parameter.
  3353. <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
  3354. (af_loader_load_glyph): Updated.
  3355. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3356. [raster] Fix uninitialized memory access.
  3357. Apparently `ras.cProfile' might be uninitialized. This will be the
  3358. case if `ras.top == ras.cProfile->offset', as can be seen in
  3359. `End_Profile'. The overshoot code introduced in a change `Fix B/W
  3360. rasterization of subglyphs with different drop-out modes.' (from
  3361. 2009-06-18) violated this, accessing `ras.cProfile->flags'
  3362. unconditionally just before calling `End_Profile' (which then
  3363. detected that `cProfile' is uninitialized and didn't touch it).
  3364. This was harmless, and was not detected by valgrind before because
  3365. the objects were allocated on the `raster_pool', which was always
  3366. initialized. With recent change to allocate raster buffers on the
  3367. stack, valgrind now reported this invalid access.
  3368. * src/raster/ftraster.c (Convert_Glyph): Don't access an
  3369. uninitialized `cProfile'.
  3370. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3371. [smooth] Fix uninitialized memory access.
  3372. Looks like `ras.span_y' could always be used without initialization.
  3373. This was never detected by valgrind before because the library-wide
  3374. `raster_pool' was used for the worker object and `raster_pool' was
  3375. originally zero'ed. But subsequent reuses of it were using `span_y'
  3376. uninitialized. With the recent change to not use `render_pool' and
  3377. allocate worker and buffer on the stack, valgrind now detects this
  3378. uninitialized access.
  3379. * src/smooth/ftgrays.c (gray_raster_render): Initialize
  3380. `ras.span_y'.
  3381. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3382. [base] Don't initialize unused `driver->glyph_loader'.
  3383. * src/base/ftobjs.c (Destroy_Driver): Don't call
  3384. `FT_GlyphLoader_Done'.
  3385. (FT_Add_Module): Don't call `FT_GlyphLoader_New'.
  3386. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3387. [base] Don't allocate `library->raster_pool' anymore.
  3388. It's unused after the following commits:
  3389. [raster] Allocate render pool for mono rasterizer on the stack.
  3390. [raster] Remove 5-level gray AA mode from monochrome rasterizer.
  3391. The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
  3392. serve, which is, to adjust the pool size. But the pool is now
  3393. allocated on the stack on demand.
  3394. * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
  3395. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3396. [base] Do not reorder library->renderers upon use.
  3397. Instead of keeping `library->renderers' in a MRU order, just leave
  3398. it as-is. The MRU machinery wasn't thread-safe.
  3399. With this patch, rasterizing glyphs from different faces from
  3400. different threads doesn't fail choosing rasterizer
  3401. (FT_Err_Cannot_Render_Glyph).
  3402. Easiest to see that crash was to add a `printf' (or otherwise let
  3403. thread yield in FT_Throw with debugging enabled).
  3404. * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
  3405. (FT_Outline_Render): Don't call `FT_Set_Renderer'.
  3406. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3407. [raster] Allocate render pool for mono rasterizer on the stack.
  3408. Instead of using the `render_pool' member of `FT_Library' that is
  3409. provided down to the rasterizer, completely ignore that and allocate
  3410. needed objects on the stack instead.
  3411. With this patch, rasterizing glyphs from different faces from
  3412. different threads doesn't crash in the monochrome rasterizer.
  3413. * src/raster/ftraster.c (black_TRaster): Remove `buffer',
  3414. `buffer_size', and `worker' members.
  3415. (ft_black_render): Create `buffer' locally.
  3416. (ft_black_reset): Updated.
  3417. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3418. [raster] Remove 5-level gray AA mode from monochrome rasterizer.
  3419. It was off by default and couldn't be turned on at runtime. And the
  3420. smooth rasterizer superseded it over ten years ago. No point in
  3421. keeping. Comments suggested that it was there for compatibility
  3422. with FreeType 1.
  3423. 550 lines down.
  3424. * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
  3425. RASTER_GRAY_LINES): Remove macros and all associated code.
  3426. (black_TWorker): Remove `gray_min_x' and `gray_max_x'.
  3427. (black_TRaster): Remove `grays' and `gray_width'.
  3428. (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
  3429. ft_black_render): Updated.
  3430. * src/raster/ftrend1.c (ft_raster1_render): Simplify code.
  3431. (ft_raster5_renderer_class): Removed.
  3432. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3433. [smooth] Allocate render pool for smooth rasterizer on the stack.
  3434. Instead of using the `render_pool' member of `FT_Library' that is
  3435. provided down to the rasterizer, completely ignore that and allocate
  3436. needed objects on the stack instead.
  3437. With this patch, rasterizing glyphs from different faces from
  3438. different threads doesn't crash in the smooth rasterizer.
  3439. Bugs:
  3440. https://bugzilla.redhat.com/show_bug.cgi?id=678397
  3441. https://bugzilla.redhat.com/show_bug.cgi?id=1004315
  3442. https://bugzilla.redhat.com/show_bug.cgi?id=1165471
  3443. https://bugs.freedesktop.org/show_bug.cgi?id=69034
  3444. * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
  3445. `buffer_size', `band_size', and `worker' members.
  3446. (gray_raster_render): Create `buffer', `buffer_size', and
  3447. `band_size' locally.
  3448. (gray_raster_reset): Updated.
  3449. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3450. [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
  3451. Previously the code had stipulation for using a per-TT_Size exec
  3452. context if `size->debug' was true. But there was no way that
  3453. `size->debug' could *ever* be true. As such, the code was always
  3454. using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
  3455. This was, clearly, not threadsafe.
  3456. With this patch, loading glyphs from different faces from different
  3457. threads doesn't crash in the bytecode loader code.
  3458. * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
  3459. (TT_DriverRec): Remove `context' member.
  3460. * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
  3461. `TT_ExecContext' code related to a global `TT_Driver' object.
  3462. (tt_driver_done): Don't remove `TT_ExecContext' object here but ...
  3463. (tt_size_done_bytecode): ... here.
  3464. (tt_driver_init): Don't create `TT_ExecContext' object here but ...
  3465. (tt_size_init_bytecode): ... here, only on demand.
  3466. * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
  3467. code.
  3468. (TT_New_Context): Remove `TT_ExecContext' code related to a global
  3469. `TT_Driver' object.
  3470. * src/truetype/ttinterp.h: Updated.
  3471. * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
  3472. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3473. [autofit] Allocate AF_Loader on the stack instead of AF_Module.
  3474. Stop sharing a global `AF_Loader'. Allocate one on the stack during
  3475. glyph load.
  3476. Right now this results in about 25% slowdown, to be fixed in a
  3477. following commit.
  3478. With this patch loading glyphs from different faces from different
  3479. threads doesn't immediately crash in the autohinting loader code.
  3480. Bugs:
  3481. https://bugzilla.redhat.com/show_bug.cgi?id=1164941
  3482. * src/autofit/afloader.c (af_loader_init): Pass
  3483. `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
  3484. (af_loader_reset, af_loader_load_glyph): Also pass `loader' as
  3485. argument.
  3486. (af_loader_done): Use `AF_Loader' instead of `AF_Module' as
  3487. argument.
  3488. * src/autofit/afmodule.c (af_autofitter_init): Don't call
  3489. `af_loader_init'.
  3490. (af_autofitter_done): Don't call `af_loader_done'.
  3491. (af_autofitter_load_glyph): Use a local `AF_Loader' object.
  3492. * src/autofit/afloader.h: Include `afmodule.h'.
  3493. Update prototypes.
  3494. Move typedef for `AF_Module' to...
  3495. * src/autofit/afmodule.h: ... this place.
  3496. No longer include `afloader.h'.
  3497. 2015-01-14 Behdad Esfahbod <behdad@behdad.org>
  3498. * src/type42/t42objs.h (T42_DriverRec): Remove unused member.
  3499. 2015-01-12 Werner Lemberg <wl@gnu.org>
  3500. Fix Savannah bug #43976.
  3501. Assure that FreeType's internal include directories are found before
  3502. `CPPFLAGS' (which might be set by the user in the environment), and
  3503. `CPPFLAGS' before `CFLAGS'.
  3504. * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
  3505. (FT_COMPILE): Make this a special variable for compiling only the
  3506. files handled in `freetype.mk'.
  3507. (.c.$O): Removed, unused.
  3508. * src/*/rules.mk (*_COMPILE): Fix order of include directories.
  3509. 2015-01-11 Werner Lemberg <wl@gnu.org>
  3510. [truetype] Prettifying.
  3511. * src/truetype/ttinterp.c (project, dualproj, fast_project,
  3512. fast_dualproj): Rename to...
  3513. (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
  3514. 2015-01-11 Werner Lemberg <wl@gnu.org>
  3515. * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
  3516. Based on a patch from Behdad.
  3517. 2015-01-11 Werner Lemberg <wl@gnu.org>
  3518. * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
  3519. 2015-01-11 Werner Lemberg <wl@gnu.org>
  3520. * src/truetype/ttinterp.c (Normalize): Remove unused argument.
  3521. 2015-01-11 Werner Lemberg <wl@gnu.org>
  3522. [truetype] More macro expansions.
  3523. * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
  3524. expansion.
  3525. 2015-01-11 Werner Lemberg <wl@gnu.org>
  3526. [truetype] More macro expansions.
  3527. * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
  3528. adjusting function calls where necessary.
  3529. (FT_UNUSED_ARG): Removed, no longer needed.
  3530. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3531. [truetype] More macro expansions.
  3532. Based on a patch from Behdad.
  3533. * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
  3534. `Ins_*' functions.
  3535. (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
  3536. (ARRAY_BOUND_ERROR): Remove second definition, which is no longer
  3537. needed.
  3538. (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
  3539. (Ins_SxyTCA): New function.
  3540. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3541. [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
  3542. Behdad suggested this code simplification, and nobody objected...
  3543. * include/config/ftoption.h, devel/ftoption.h
  3544. (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
  3545. * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
  3546. Remove related code.
  3547. (ARRAY_BOUND_ERROR): Use do-while loop.
  3548. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3549. [truetype] More macro expansions.
  3550. * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
  3551. EXEC_ARG): Remove by replacing with expansion.
  3552. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3553. [truetype] More macro expansions.
  3554. Based on a patch from Behdad.
  3555. * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
  3556. SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
  3557. CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
  3558. CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
  3559. CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
  3560. COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
  3561. with expansion.
  3562. (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
  3563. CUR_fast_dualproj): Replace with macros `project', `dualproj',
  3564. `fast_project', `fast_dualproj'.
  3565. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3566. [truetype] More macro expansions.
  3567. * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
  3568. with expansion.
  3569. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3570. [truetype] Remove code for static TrueType interpreter.
  3571. This is a follow-up patch.
  3572. * src/truetype/ttinterp.c, src/truetype/ttinterp.h
  3573. [TT_CONFIG_OPTION_STATIC_INTERPRETER,
  3574. TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
  3575. 2015-01-10 Werner Lemberg <wl@gnu.org>
  3576. * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
  3577. This starts a series of patches that simplifies the code of the
  3578. bytecode interpreter.
  3579. ----------------------------------------------------------------------------
  3580. Copyright (C) 2015-2019 by
  3581. David Turner, Robert Wilhelm, and Werner Lemberg.
  3582. This file is part of the FreeType project, and may only be used, modified,
  3583. and distributed under the terms of the FreeType project license,
  3584. LICENSE.TXT. By continuing to use, modify, or distribute this file you
  3585. indicate that you have read the license and understand and accept it
  3586. fully.
  3587. Local Variables:
  3588. version-control: never
  3589. coding: utf-8
  3590. End: