libmng_chunk_prc.c 121 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452
  1. /* ************************************************************************** */
  2. /* * For conditions of distribution and use, * */
  3. /* * see copyright notice in libmng.h * */
  4. /* ************************************************************************** */
  5. /* * * */
  6. /* * project : libmng * */
  7. /* * file : libmng_chunk_prc.c copyright (c) 2000-2005 G.Juyn * */
  8. /* * version : 1.0.10 * */
  9. /* * * */
  10. /* * purpose : Chunk initialization & cleanup (implementation) * */
  11. /* * * */
  12. /* * author : G.Juyn * */
  13. /* * * */
  14. /* * comment : implementation of the chunk initialization & cleanup * */
  15. /* * routines * */
  16. /* * * */
  17. /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */
  18. /* * - changed strict-ANSI stuff * */
  19. /* * 0.5.1 - 05/12/2000 - G.Juyn * */
  20. /* * - changed trace to macro for callback error-reporting * */
  21. /* * * */
  22. /* * 0.9.1 - 07/19/2000 - G.Juyn * */
  23. /* * - fixed creation-code * */
  24. /* * * */
  25. /* * 0.9.2 - 07/31/2000 - G.Juyn * */
  26. /* * - put add_chunk() inside MNG_INCLUDE_WRITE_PROCS wrapper * */
  27. /* * 0.9.2 - 08/01/2000 - G.Juyn * */
  28. /* * - wrapper for add_chunk() changed * */
  29. /* * 0.9.2 - 08/05/2000 - G.Juyn * */
  30. /* * - changed file-prefixes * */
  31. /* * * */
  32. /* * 0.9.3 - 08/26/2000 - G.Juyn * */
  33. /* * - added MAGN chunk * */
  34. /* * 0.9.3 - 10/16/2000 - G.Juyn * */
  35. /* * - added support for JDAA * */
  36. /* * * */
  37. /* * 1.0.5 - 08/19/2002 - G.Juyn * */
  38. /* * - B597134 - libmng pollutes the linker namespace * */
  39. /* * - added HLAPI function to copy chunks * */
  40. /* * 1.0.5 - 09/14/2002 - G.Juyn * */
  41. /* * - added event handling for dynamic MNG * */
  42. /* * 1.0.5 - 10/04/2002 - G.Juyn * */
  43. /* * - fixed chunk-storage for evNT chunk * */
  44. /* * 1.0.5 - 10/17/2002 - G.Juyn * */
  45. /* * - fixed issue in freeing evNT chunk * */
  46. /* * * */
  47. /* * 1.0.6 - 07/07/2003 - G.R-P * */
  48. /* * - added MNG_SKIPCHUNK_cHNK footprint optimizations * */
  49. /* * - added MNG_NO_DELTA_PNG reduction feature * */
  50. /* * 1.0.6 - 07/14/2003 - G.R-P * */
  51. /* * - added MNG_NO_LOOP_SIGNALS_SUPPORTED conditional * */
  52. /* * 1.0.6 - 07/29/2003 - G.R-P * */
  53. /* * - added conditionals around PAST chunk support * */
  54. /* * 1.0.6 - 08/17/2003 - G.R-P * */
  55. /* * - added conditionals around non-VLC chunk support * */
  56. /* * * */
  57. /* * 1.0.7 - 03/24/2004 - G.R-P * */
  58. /* * - fixed SKIPCHUNK_eXPI -> fPRI typo * */
  59. /* * * */
  60. /* * 1.0.9 - 09/25/2004 - G.Juyn * */
  61. /* * - replaced MNG_TWEAK_LARGE_FILES with permanent solution * */
  62. /* * 1.0.9 - 12/05/2004 - G.Juyn * */
  63. /* * - added conditional MNG_OPTIMIZE_CHUNKINITFREE * */
  64. /* * 1.0.9 - 12/06/2004 - G.Juyn * */
  65. /* * - added conditional MNG_OPTIMIZE_CHUNKASSIGN * */
  66. /* * 1.0.9 - 12/20/2004 - G.Juyn * */
  67. /* * - cleaned up macro-invocations (thanks to D. Airlie) * */
  68. /* * * */
  69. /* * 1.0.10 - 07/30/2005 - G.Juyn * */
  70. /* * - fixed problem with CLON object during readdisplay() * */
  71. /* * 1.0.10 - 04/08/2007 - G.Juyn * */
  72. /* * - added support for mPNG proposal * */
  73. /* * 1.0.10 - 04/12/2007 - G.Juyn * */
  74. /* * - added support for ANG proposal * */
  75. /* * * */
  76. /* ************************************************************************** */
  77. #include "libmng.h"
  78. #include "libmng_data.h"
  79. #include "libmng_error.h"
  80. #include "libmng_trace.h"
  81. #ifdef __BORLANDC__
  82. #pragma hdrstop
  83. #endif
  84. #include "libmng_memory.h"
  85. #include "libmng_chunks.h"
  86. #include "libmng_chunk_prc.h"
  87. #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  88. #pragma option -A /* force ANSI-C */
  89. #endif
  90. /* ************************************************************************** */
  91. /* * * */
  92. /* * General chunk routines * */
  93. /* * * */
  94. /* ************************************************************************** */
  95. void mng_add_chunk (mng_datap pData,
  96. mng_chunkp pChunk)
  97. {
  98. if (!pData->pFirstchunk) /* list is still empty ? */
  99. {
  100. pData->pFirstchunk = pChunk; /* then this becomes the first */
  101. #ifdef MNG_SUPPORT_WRITE
  102. if (!pData->iFirstchunkadded)
  103. {
  104. pData->iFirstchunkadded = ((mng_chunk_headerp)pChunk)->iChunkname;
  105. #endif
  106. if (((mng_chunk_headerp)pChunk)->iChunkname == MNG_UINT_IHDR)
  107. pData->eImagetype = mng_it_png;
  108. else
  109. #ifdef MNG_INCLUDE_JNG
  110. if (((mng_chunk_headerp)pChunk)->iChunkname == MNG_UINT_JHDR)
  111. pData->eImagetype = mng_it_jng;
  112. else
  113. #endif
  114. pData->eImagetype = mng_it_mng;
  115. pData->eSigtype = pData->eImagetype;
  116. #ifdef MNG_SUPPORT_WRITE
  117. }
  118. #endif
  119. }
  120. else
  121. { /* else we make appropriate links */
  122. ((mng_chunk_headerp)pChunk)->pPrev = pData->pLastchunk;
  123. ((mng_chunk_headerp)pData->pLastchunk)->pNext = pChunk;
  124. }
  125. pData->pLastchunk = pChunk; /* and it's always the last */
  126. return;
  127. }
  128. /* ************************************************************************** */
  129. /* * * */
  130. /* * Chunk specific initialization routines * */
  131. /* * * */
  132. /* ************************************************************************** */
  133. #ifdef MNG_OPTIMIZE_CHUNKINITFREE
  134. INIT_CHUNK_HDR (mng_init_general)
  135. {
  136. MNG_ALLOC (pData, *ppChunk, ((mng_chunk_headerp)pHeader)->iChunksize);
  137. MNG_COPY (*ppChunk, pHeader, sizeof (mng_chunk_header));
  138. return MNG_NOERROR;
  139. }
  140. #else /* MNG_OPTIMIZE_CHUNKINITFREE */
  141. /* ************************************************************************** */
  142. INIT_CHUNK_HDR (mng_init_ihdr)
  143. {
  144. #ifdef MNG_SUPPORT_TRACE
  145. MNG_TRACE (pData, MNG_FN_INIT_IHDR, MNG_LC_START);
  146. #endif
  147. MNG_ALLOC (pData, *ppChunk, sizeof (mng_ihdr));
  148. ((mng_ihdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  149. #ifdef MNG_SUPPORT_TRACE
  150. MNG_TRACE (pData, MNG_FN_INIT_IHDR, MNG_LC_END);
  151. #endif
  152. return MNG_NOERROR;
  153. }
  154. /* ************************************************************************** */
  155. INIT_CHUNK_HDR (mng_init_plte)
  156. {
  157. #ifdef MNG_SUPPORT_TRACE
  158. MNG_TRACE (pData, MNG_FN_INIT_PLTE, MNG_LC_START);
  159. #endif
  160. MNG_ALLOC (pData, *ppChunk, sizeof (mng_plte));
  161. ((mng_pltep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  162. #ifdef MNG_SUPPORT_TRACE
  163. MNG_TRACE (pData, MNG_FN_INIT_PLTE, MNG_LC_END);
  164. #endif
  165. return MNG_NOERROR;
  166. }
  167. /* ************************************************************************** */
  168. INIT_CHUNK_HDR (mng_init_idat)
  169. {
  170. #ifdef MNG_SUPPORT_TRACE
  171. MNG_TRACE (pData, MNG_FN_INIT_IDAT, MNG_LC_START);
  172. #endif
  173. MNG_ALLOC (pData, *ppChunk, sizeof (mng_idat));
  174. ((mng_idatp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  175. #ifdef MNG_SUPPORT_TRACE
  176. MNG_TRACE (pData, MNG_FN_INIT_IDAT, MNG_LC_END);
  177. #endif
  178. return MNG_NOERROR;
  179. }
  180. /* ************************************************************************** */
  181. INIT_CHUNK_HDR (mng_init_iend)
  182. {
  183. #ifdef MNG_SUPPORT_TRACE
  184. MNG_TRACE (pData, MNG_FN_INIT_IEND, MNG_LC_START);
  185. #endif
  186. MNG_ALLOC (pData, *ppChunk, sizeof (mng_iend));
  187. ((mng_iendp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  188. #ifdef MNG_SUPPORT_TRACE
  189. MNG_TRACE (pData, MNG_FN_INIT_IEND, MNG_LC_END);
  190. #endif
  191. return MNG_NOERROR;
  192. }
  193. /* ************************************************************************** */
  194. INIT_CHUNK_HDR (mng_init_trns)
  195. {
  196. #ifdef MNG_SUPPORT_TRACE
  197. MNG_TRACE (pData, MNG_FN_INIT_TRNS, MNG_LC_START);
  198. #endif
  199. MNG_ALLOC (pData, *ppChunk, sizeof (mng_trns));
  200. ((mng_trnsp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  201. #ifdef MNG_SUPPORT_TRACE
  202. MNG_TRACE (pData, MNG_FN_INIT_TRNS, MNG_LC_END);
  203. #endif
  204. return MNG_NOERROR;
  205. }
  206. /* ************************************************************************** */
  207. #ifndef MNG_SKIPCHUNK_gAMA
  208. INIT_CHUNK_HDR (mng_init_gama)
  209. {
  210. #ifdef MNG_SUPPORT_TRACE
  211. MNG_TRACE (pData, MNG_FN_INIT_GAMA, MNG_LC_START);
  212. #endif
  213. MNG_ALLOC (pData, *ppChunk, sizeof (mng_gama));
  214. ((mng_gamap)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  215. #ifdef MNG_SUPPORT_TRACE
  216. MNG_TRACE (pData, MNG_FN_INIT_GAMA, MNG_LC_END);
  217. #endif
  218. return MNG_NOERROR;
  219. }
  220. #endif
  221. /* ************************************************************************** */
  222. #ifndef MNG_SKIPCHUNK_cHRM
  223. INIT_CHUNK_HDR (mng_init_chrm)
  224. {
  225. #ifdef MNG_SUPPORT_TRACE
  226. MNG_TRACE (pData, MNG_FN_INIT_CHRM, MNG_LC_START);
  227. #endif
  228. MNG_ALLOC (pData, *ppChunk, sizeof (mng_chrm));
  229. ((mng_chrmp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  230. #ifdef MNG_SUPPORT_TRACE
  231. MNG_TRACE (pData, MNG_FN_INIT_CHRM, MNG_LC_END);
  232. #endif
  233. return MNG_NOERROR;
  234. }
  235. #endif
  236. /* ************************************************************************** */
  237. #ifndef MNG_SKIPCHUNK_sRGB
  238. INIT_CHUNK_HDR (mng_init_srgb)
  239. {
  240. #ifdef MNG_SUPPORT_TRACE
  241. MNG_TRACE (pData, MNG_FN_INIT_SRGB, MNG_LC_START);
  242. #endif
  243. MNG_ALLOC (pData, *ppChunk, sizeof (mng_srgb));
  244. ((mng_srgbp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  245. #ifdef MNG_SUPPORT_TRACE
  246. MNG_TRACE (pData, MNG_FN_INIT_SRGB, MNG_LC_END);
  247. #endif
  248. return MNG_NOERROR;
  249. }
  250. #endif
  251. /* ************************************************************************** */
  252. #ifndef MNG_SKIPCHUNK_iCCP
  253. INIT_CHUNK_HDR (mng_init_iccp)
  254. {
  255. #ifdef MNG_SUPPORT_TRACE
  256. MNG_TRACE (pData, MNG_FN_INIT_ICCP, MNG_LC_START);
  257. #endif
  258. MNG_ALLOC (pData, *ppChunk, sizeof (mng_iccp));
  259. ((mng_iccpp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  260. #ifdef MNG_SUPPORT_TRACE
  261. MNG_TRACE (pData, MNG_FN_INIT_ICCP, MNG_LC_END);
  262. #endif
  263. return MNG_NOERROR;
  264. }
  265. #endif
  266. /* ************************************************************************** */
  267. #ifndef MNG_SKIPCHUNK_tEXt
  268. INIT_CHUNK_HDR (mng_init_text)
  269. {
  270. #ifdef MNG_SUPPORT_TRACE
  271. MNG_TRACE (pData, MNG_FN_INIT_TEXT, MNG_LC_START);
  272. #endif
  273. MNG_ALLOC (pData, *ppChunk, sizeof (mng_text));
  274. ((mng_textp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  275. #ifdef MNG_SUPPORT_TRACE
  276. MNG_TRACE (pData, MNG_FN_INIT_TEXT, MNG_LC_END);
  277. #endif
  278. return MNG_NOERROR;
  279. }
  280. #endif
  281. /* ************************************************************************** */
  282. #ifndef MNG_SKIPCHUNK_zTXt
  283. INIT_CHUNK_HDR (mng_init_ztxt)
  284. {
  285. #ifdef MNG_SUPPORT_TRACE
  286. MNG_TRACE (pData, MNG_FN_INIT_ZTXT, MNG_LC_START);
  287. #endif
  288. MNG_ALLOC (pData, *ppChunk, sizeof (mng_ztxt));
  289. ((mng_ztxtp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  290. #ifdef MNG_SUPPORT_TRACE
  291. MNG_TRACE (pData, MNG_FN_INIT_ZTXT, MNG_LC_END);
  292. #endif
  293. return MNG_NOERROR;
  294. }
  295. #endif
  296. /* ************************************************************************** */
  297. #ifndef MNG_SKIPCHUNK_iTXt
  298. INIT_CHUNK_HDR (mng_init_itxt)
  299. {
  300. #ifdef MNG_SUPPORT_TRACE
  301. MNG_TRACE (pData, MNG_FN_INIT_ITXT, MNG_LC_START);
  302. #endif
  303. MNG_ALLOC (pData, *ppChunk, sizeof (mng_itxt));
  304. ((mng_itxtp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  305. #ifdef MNG_SUPPORT_TRACE
  306. MNG_TRACE (pData, MNG_FN_INIT_ITXT, MNG_LC_END);
  307. #endif
  308. return MNG_NOERROR;
  309. }
  310. #endif
  311. /* ************************************************************************** */
  312. #ifndef MNG_SKIPCHUNK_bKGD
  313. INIT_CHUNK_HDR (mng_init_bkgd)
  314. {
  315. #ifdef MNG_SUPPORT_TRACE
  316. MNG_TRACE (pData, MNG_FN_INIT_BKGD, MNG_LC_START);
  317. #endif
  318. MNG_ALLOC (pData, *ppChunk, sizeof (mng_bkgd));
  319. ((mng_bkgdp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  320. #ifdef MNG_SUPPORT_TRACE
  321. MNG_TRACE (pData, MNG_FN_INIT_BKGD, MNG_LC_END);
  322. #endif
  323. return MNG_NOERROR;
  324. }
  325. #endif
  326. /* ************************************************************************** */
  327. #ifndef MNG_SKIPCHUNK_pHYs
  328. INIT_CHUNK_HDR (mng_init_phys)
  329. {
  330. #ifdef MNG_SUPPORT_TRACE
  331. MNG_TRACE (pData, MNG_FN_INIT_PHYS, MNG_LC_START);
  332. #endif
  333. MNG_ALLOC (pData, *ppChunk, sizeof (mng_phys));
  334. ((mng_physp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  335. #ifdef MNG_SUPPORT_TRACE
  336. MNG_TRACE (pData, MNG_FN_INIT_PHYS, MNG_LC_END);
  337. #endif
  338. return MNG_NOERROR;
  339. }
  340. #endif
  341. /* ************************************************************************** */
  342. #ifndef MNG_SKIPCHUNK_sBIT
  343. INIT_CHUNK_HDR (mng_init_sbit)
  344. {
  345. #ifdef MNG_SUPPORT_TRACE
  346. MNG_TRACE (pData, MNG_FN_INIT_SBIT, MNG_LC_START);
  347. #endif
  348. MNG_ALLOC (pData, *ppChunk, sizeof (mng_sbit));
  349. ((mng_sbitp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  350. #ifdef MNG_SUPPORT_TRACE
  351. MNG_TRACE (pData, MNG_FN_INIT_SBIT, MNG_LC_END);
  352. #endif
  353. return MNG_NOERROR;
  354. }
  355. #endif
  356. /* ************************************************************************** */
  357. #ifndef MNG_SKIPCHUNK_sPLT
  358. INIT_CHUNK_HDR (mng_init_splt)
  359. {
  360. #ifdef MNG_SUPPORT_TRACE
  361. MNG_TRACE (pData, MNG_FN_INIT_SPLT, MNG_LC_START);
  362. #endif
  363. MNG_ALLOC (pData, *ppChunk, sizeof (mng_splt));
  364. ((mng_spltp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  365. #ifdef MNG_SUPPORT_TRACE
  366. MNG_TRACE (pData, MNG_FN_INIT_SPLT, MNG_LC_END);
  367. #endif
  368. return MNG_NOERROR;
  369. }
  370. #endif
  371. /* ************************************************************************** */
  372. #ifndef MNG_SKIPCHUNK_hIST
  373. INIT_CHUNK_HDR (mng_init_hist)
  374. {
  375. #ifdef MNG_SUPPORT_TRACE
  376. MNG_TRACE (pData, MNG_FN_INIT_HIST, MNG_LC_START);
  377. #endif
  378. MNG_ALLOC (pData, *ppChunk, sizeof (mng_hist));
  379. ((mng_histp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  380. #ifdef MNG_SUPPORT_TRACE
  381. MNG_TRACE (pData, MNG_FN_INIT_HIST, MNG_LC_END);
  382. #endif
  383. return MNG_NOERROR;
  384. }
  385. #endif
  386. /* ************************************************************************** */
  387. #ifndef MNG_SKIPCHUNK_tIME
  388. INIT_CHUNK_HDR (mng_init_time)
  389. {
  390. #ifdef MNG_SUPPORT_TRACE
  391. MNG_TRACE (pData, MNG_FN_INIT_TIME, MNG_LC_START);
  392. #endif
  393. MNG_ALLOC (pData, *ppChunk, sizeof (mng_time));
  394. ((mng_timep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  395. #ifdef MNG_SUPPORT_TRACE
  396. MNG_TRACE (pData, MNG_FN_INIT_TIME, MNG_LC_END);
  397. #endif
  398. return MNG_NOERROR;
  399. }
  400. #endif
  401. /* ************************************************************************** */
  402. INIT_CHUNK_HDR (mng_init_mhdr)
  403. {
  404. #ifdef MNG_SUPPORT_TRACE
  405. MNG_TRACE (pData, MNG_FN_INIT_MHDR, MNG_LC_START);
  406. #endif
  407. MNG_ALLOC (pData, *ppChunk, sizeof (mng_mhdr));
  408. ((mng_mhdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  409. #ifdef MNG_SUPPORT_TRACE
  410. MNG_TRACE (pData, MNG_FN_INIT_MHDR, MNG_LC_END);
  411. #endif
  412. return MNG_NOERROR;
  413. }
  414. /* ************************************************************************** */
  415. INIT_CHUNK_HDR (mng_init_mend)
  416. {
  417. #ifdef MNG_SUPPORT_TRACE
  418. MNG_TRACE (pData, MNG_FN_INIT_MEND, MNG_LC_START);
  419. #endif
  420. MNG_ALLOC (pData, *ppChunk, sizeof (mng_mend));
  421. ((mng_mendp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  422. #ifdef MNG_SUPPORT_TRACE
  423. MNG_TRACE (pData, MNG_FN_INIT_MEND, MNG_LC_END);
  424. #endif
  425. return MNG_NOERROR;
  426. }
  427. /* ************************************************************************** */
  428. #ifndef MNG_SKIPCHUNK_LOOP
  429. INIT_CHUNK_HDR (mng_init_loop)
  430. {
  431. #ifdef MNG_SUPPORT_TRACE
  432. MNG_TRACE (pData, MNG_FN_INIT_LOOP, MNG_LC_START);
  433. #endif
  434. MNG_ALLOC (pData, *ppChunk, sizeof (mng_loop));
  435. ((mng_loopp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  436. #ifdef MNG_SUPPORT_TRACE
  437. MNG_TRACE (pData, MNG_FN_INIT_LOOP, MNG_LC_END);
  438. #endif
  439. return MNG_NOERROR;
  440. }
  441. /* ************************************************************************** */
  442. INIT_CHUNK_HDR (mng_init_endl)
  443. {
  444. #ifdef MNG_SUPPORT_TRACE
  445. MNG_TRACE (pData, MNG_FN_INIT_ENDL, MNG_LC_START);
  446. #endif
  447. MNG_ALLOC (pData, *ppChunk, sizeof (mng_endl));
  448. ((mng_endlp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  449. #ifdef MNG_SUPPORT_TRACE
  450. MNG_TRACE (pData, MNG_FN_INIT_ENDL, MNG_LC_END);
  451. #endif
  452. return MNG_NOERROR;
  453. }
  454. #endif
  455. /* ************************************************************************** */
  456. #ifndef MNG_SKIPCHUNK_DEFI
  457. INIT_CHUNK_HDR (mng_init_defi)
  458. {
  459. #ifdef MNG_SUPPORT_TRACE
  460. MNG_TRACE (pData, MNG_FN_INIT_DEFI, MNG_LC_START);
  461. #endif
  462. MNG_ALLOC (pData, *ppChunk, sizeof (mng_defi));
  463. ((mng_defip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  464. #ifdef MNG_SUPPORT_TRACE
  465. MNG_TRACE (pData, MNG_FN_INIT_DEFI, MNG_LC_END);
  466. #endif
  467. return MNG_NOERROR;
  468. }
  469. #endif
  470. /* ************************************************************************** */
  471. #ifndef MNG_SKIPCHUNK_BASI
  472. INIT_CHUNK_HDR (mng_init_basi)
  473. {
  474. #ifdef MNG_SUPPORT_TRACE
  475. MNG_TRACE (pData, MNG_FN_INIT_BASI, MNG_LC_START);
  476. #endif
  477. MNG_ALLOC (pData, *ppChunk, sizeof (mng_basi));
  478. ((mng_basip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  479. #ifdef MNG_SUPPORT_TRACE
  480. MNG_TRACE (pData, MNG_FN_INIT_BASI, MNG_LC_END);
  481. #endif
  482. return MNG_NOERROR;
  483. }
  484. #endif
  485. /* ************************************************************************** */
  486. #ifndef MNG_SKIPCHUNK_CLON
  487. INIT_CHUNK_HDR (mng_init_clon)
  488. {
  489. #ifdef MNG_SUPPORT_TRACE
  490. MNG_TRACE (pData, MNG_FN_INIT_CLON, MNG_LC_START);
  491. #endif
  492. MNG_ALLOC (pData, *ppChunk, sizeof (mng_clon));
  493. ((mng_clonp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  494. #ifdef MNG_SUPPORT_TRACE
  495. MNG_TRACE (pData, MNG_FN_INIT_CLON, MNG_LC_END);
  496. #endif
  497. return MNG_NOERROR;
  498. }
  499. #endif
  500. /* ************************************************************************** */
  501. #ifndef MNG_SKIPCHUNK_PAST
  502. INIT_CHUNK_HDR (mng_init_past)
  503. {
  504. #ifdef MNG_SUPPORT_TRACE
  505. MNG_TRACE (pData, MNG_FN_INIT_PAST, MNG_LC_START);
  506. #endif
  507. MNG_ALLOC (pData, *ppChunk, sizeof (mng_past));
  508. ((mng_pastp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  509. #ifdef MNG_SUPPORT_TRACE
  510. MNG_TRACE (pData, MNG_FN_INIT_PAST, MNG_LC_END);
  511. #endif
  512. return MNG_NOERROR;
  513. }
  514. #endif
  515. /* ************************************************************************** */
  516. #ifndef MNG_SKIPCHUNK_DISC
  517. INIT_CHUNK_HDR (mng_init_disc)
  518. {
  519. #ifdef MNG_SUPPORT_TRACE
  520. MNG_TRACE (pData, MNG_FN_INIT_DISC, MNG_LC_START);
  521. #endif
  522. MNG_ALLOC (pData, *ppChunk, sizeof (mng_disc));
  523. ((mng_discp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  524. #ifdef MNG_SUPPORT_TRACE
  525. MNG_TRACE (pData, MNG_FN_INIT_DISC, MNG_LC_END);
  526. #endif
  527. return MNG_NOERROR;
  528. }
  529. #endif
  530. /* ************************************************************************** */
  531. #ifndef MNG_SKIPCHUNK_BACK
  532. INIT_CHUNK_HDR (mng_init_back)
  533. {
  534. #ifdef MNG_SUPPORT_TRACE
  535. MNG_TRACE (pData, MNG_FN_INIT_BACK, MNG_LC_START);
  536. #endif
  537. MNG_ALLOC (pData, *ppChunk, sizeof (mng_back));
  538. ((mng_backp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  539. #ifdef MNG_SUPPORT_TRACE
  540. MNG_TRACE (pData, MNG_FN_INIT_BACK, MNG_LC_END);
  541. #endif
  542. return MNG_NOERROR;
  543. }
  544. #endif
  545. /* ************************************************************************** */
  546. #ifndef MNG_SKIPCHUNK_FRAM
  547. INIT_CHUNK_HDR (mng_init_fram)
  548. {
  549. #ifdef MNG_SUPPORT_TRACE
  550. MNG_TRACE (pData, MNG_FN_INIT_FRAM, MNG_LC_START);
  551. #endif
  552. MNG_ALLOC (pData, *ppChunk, sizeof (mng_fram));
  553. ((mng_framp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  554. #ifdef MNG_SUPPORT_TRACE
  555. MNG_TRACE (pData, MNG_FN_INIT_FRAM, MNG_LC_END);
  556. #endif
  557. return MNG_NOERROR;
  558. }
  559. #endif
  560. /* ************************************************************************** */
  561. #ifndef MNG_SKIPCHUNK_MOVE
  562. INIT_CHUNK_HDR (mng_init_move)
  563. {
  564. #ifdef MNG_SUPPORT_TRACE
  565. MNG_TRACE (pData, MNG_FN_INIT_MOVE, MNG_LC_START);
  566. #endif
  567. MNG_ALLOC (pData, *ppChunk, sizeof (mng_move));
  568. ((mng_movep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  569. #ifdef MNG_SUPPORT_TRACE
  570. MNG_TRACE (pData, MNG_FN_INIT_MOVE, MNG_LC_END);
  571. #endif
  572. return MNG_NOERROR;
  573. }
  574. #endif
  575. /* ************************************************************************** */
  576. #ifndef MNG_SKIPCHUNK_CLIP
  577. INIT_CHUNK_HDR (mng_init_clip)
  578. {
  579. #ifdef MNG_SUPPORT_TRACE
  580. MNG_TRACE (pData, MNG_FN_INIT_CLIP, MNG_LC_START);
  581. #endif
  582. MNG_ALLOC (pData, *ppChunk, sizeof (mng_clip));
  583. ((mng_clipp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  584. #ifdef MNG_SUPPORT_TRACE
  585. MNG_TRACE (pData, MNG_FN_INIT_CLIP, MNG_LC_END);
  586. #endif
  587. return MNG_NOERROR;
  588. }
  589. #endif
  590. /* ************************************************************************** */
  591. #ifndef MNG_SKIPCHUNK_SHOW
  592. INIT_CHUNK_HDR (mng_init_show)
  593. {
  594. #ifdef MNG_SUPPORT_TRACE
  595. MNG_TRACE (pData, MNG_FN_INIT_SHOW, MNG_LC_START);
  596. #endif
  597. MNG_ALLOC (pData, *ppChunk, sizeof (mng_show));
  598. ((mng_showp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  599. #ifdef MNG_SUPPORT_TRACE
  600. MNG_TRACE (pData, MNG_FN_INIT_SHOW, MNG_LC_END);
  601. #endif
  602. return MNG_NOERROR;
  603. }
  604. #endif
  605. /* ************************************************************************** */
  606. #ifndef MNG_SKIPCHUNK_TERM
  607. INIT_CHUNK_HDR (mng_init_term)
  608. {
  609. #ifdef MNG_SUPPORT_TRACE
  610. MNG_TRACE (pData, MNG_FN_INIT_TERM, MNG_LC_START);
  611. #endif
  612. MNG_ALLOC (pData, *ppChunk, sizeof (mng_term));
  613. ((mng_termp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  614. #ifdef MNG_SUPPORT_TRACE
  615. MNG_TRACE (pData, MNG_FN_INIT_TERM, MNG_LC_END);
  616. #endif
  617. return MNG_NOERROR;
  618. }
  619. #endif
  620. /* ************************************************************************** */
  621. #ifndef MNG_SKIPCHUNK_SAVE
  622. INIT_CHUNK_HDR (mng_init_save)
  623. {
  624. #ifdef MNG_SUPPORT_TRACE
  625. MNG_TRACE (pData, MNG_FN_INIT_SAVE, MNG_LC_START);
  626. #endif
  627. MNG_ALLOC (pData, *ppChunk, sizeof (mng_save));
  628. ((mng_savep)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  629. #ifdef MNG_SUPPORT_TRACE
  630. MNG_TRACE (pData, MNG_FN_INIT_SAVE, MNG_LC_END);
  631. #endif
  632. return MNG_NOERROR;
  633. }
  634. #endif
  635. /* ************************************************************************** */
  636. #ifndef MNG_SKIPCHUNK_SEEK
  637. INIT_CHUNK_HDR (mng_init_seek)
  638. {
  639. #ifdef MNG_SUPPORT_TRACE
  640. MNG_TRACE (pData, MNG_FN_INIT_SEEK, MNG_LC_START);
  641. #endif
  642. MNG_ALLOC (pData, *ppChunk, sizeof (mng_seek));
  643. ((mng_seekp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  644. #ifdef MNG_SUPPORT_TRACE
  645. MNG_TRACE (pData, MNG_FN_INIT_SEEK, MNG_LC_END);
  646. #endif
  647. return MNG_NOERROR;
  648. }
  649. #endif
  650. /* ************************************************************************** */
  651. #ifndef MNG_SKIPCHUNK_eXPI
  652. INIT_CHUNK_HDR (mng_init_expi)
  653. {
  654. #ifdef MNG_SUPPORT_TRACE
  655. MNG_TRACE (pData, MNG_FN_INIT_EXPI, MNG_LC_START);
  656. #endif
  657. MNG_ALLOC (pData, *ppChunk, sizeof (mng_expi));
  658. ((mng_expip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  659. #ifdef MNG_SUPPORT_TRACE
  660. MNG_TRACE (pData, MNG_FN_INIT_EXPI, MNG_LC_END);
  661. #endif
  662. return MNG_NOERROR;
  663. }
  664. #endif
  665. /* ************************************************************************** */
  666. #ifndef MNG_SKIPCHUNK_fPRI
  667. INIT_CHUNK_HDR (mng_init_fpri)
  668. {
  669. #ifdef MNG_SUPPORT_TRACE
  670. MNG_TRACE (pData, MNG_FN_INIT_FPRI, MNG_LC_START);
  671. #endif
  672. MNG_ALLOC (pData, *ppChunk, sizeof (mng_fpri));
  673. ((mng_fprip)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  674. #ifdef MNG_SUPPORT_TRACE
  675. MNG_TRACE (pData, MNG_FN_INIT_FPRI, MNG_LC_END);
  676. #endif
  677. return MNG_NOERROR;
  678. }
  679. #endif
  680. /* ************************************************************************** */
  681. #ifndef MNG_SKIPCHUNK_nEED
  682. INIT_CHUNK_HDR (mng_init_need)
  683. {
  684. #ifdef MNG_SUPPORT_TRACE
  685. MNG_TRACE (pData, MNG_FN_INIT_NEED, MNG_LC_START);
  686. #endif
  687. MNG_ALLOC (pData, *ppChunk, sizeof (mng_need));
  688. ((mng_needp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  689. #ifdef MNG_SUPPORT_TRACE
  690. MNG_TRACE (pData, MNG_FN_INIT_NEED, MNG_LC_END);
  691. #endif
  692. return MNG_NOERROR;
  693. }
  694. #endif
  695. /* ************************************************************************** */
  696. #ifndef MNG_SKIPCHUNK_pHYg
  697. INIT_CHUNK_HDR (mng_init_phyg)
  698. {
  699. #ifdef MNG_SUPPORT_TRACE
  700. MNG_TRACE (pData, MNG_FN_INIT_PHYG, MNG_LC_START);
  701. #endif
  702. MNG_ALLOC (pData, *ppChunk, sizeof (mng_phyg));
  703. ((mng_phygp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  704. #ifdef MNG_SUPPORT_TRACE
  705. MNG_TRACE (pData, MNG_FN_INIT_PHYG, MNG_LC_END);
  706. #endif
  707. return MNG_NOERROR;
  708. }
  709. #endif
  710. /* ************************************************************************** */
  711. #ifdef MNG_INCLUDE_JNG
  712. INIT_CHUNK_HDR (mng_init_jhdr)
  713. {
  714. #ifdef MNG_SUPPORT_TRACE
  715. MNG_TRACE (pData, MNG_FN_INIT_JHDR, MNG_LC_START);
  716. #endif
  717. MNG_ALLOC (pData, *ppChunk, sizeof (mng_jhdr));
  718. ((mng_jhdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  719. #ifdef MNG_SUPPORT_TRACE
  720. MNG_TRACE (pData, MNG_FN_INIT_JHDR, MNG_LC_END);
  721. #endif
  722. return MNG_NOERROR;
  723. }
  724. #endif /* MNG_INCLUDE_JNG */
  725. /* ************************************************************************** */
  726. #ifdef MNG_INCLUDE_JNG
  727. INIT_CHUNK_HDR (mng_init_jdaa)
  728. {
  729. #ifdef MNG_SUPPORT_TRACE
  730. MNG_TRACE (pData, MNG_FN_INIT_JDAA, MNG_LC_START);
  731. #endif
  732. MNG_ALLOC (pData, *ppChunk, sizeof (mng_jdaa));
  733. ((mng_jdaap)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  734. #ifdef MNG_SUPPORT_TRACE
  735. MNG_TRACE (pData, MNG_FN_INIT_JDAA, MNG_LC_END);
  736. #endif
  737. return MNG_NOERROR;
  738. }
  739. #endif /* MNG_INCLUDE_JNG */
  740. /* ************************************************************************** */
  741. #ifdef MNG_INCLUDE_JNG
  742. INIT_CHUNK_HDR (mng_init_jdat)
  743. {
  744. #ifdef MNG_SUPPORT_TRACE
  745. MNG_TRACE (pData, MNG_FN_INIT_JDAT, MNG_LC_START);
  746. #endif
  747. MNG_ALLOC (pData, *ppChunk, sizeof (mng_jdat));
  748. ((mng_jdatp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  749. #ifdef MNG_SUPPORT_TRACE
  750. MNG_TRACE (pData, MNG_FN_INIT_JDAT, MNG_LC_END);
  751. #endif
  752. return MNG_NOERROR;
  753. }
  754. #endif /* MNG_INCLUDE_JNG */
  755. /* ************************************************************************** */
  756. #ifdef MNG_INCLUDE_JNG
  757. INIT_CHUNK_HDR (mng_init_jsep)
  758. {
  759. #ifdef MNG_SUPPORT_TRACE
  760. MNG_TRACE (pData, MNG_FN_INIT_JSEP, MNG_LC_START);
  761. #endif
  762. MNG_ALLOC (pData, *ppChunk, sizeof (mng_jsep));
  763. ((mng_jsepp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  764. #ifdef MNG_SUPPORT_TRACE
  765. MNG_TRACE (pData, MNG_FN_INIT_JSEP, MNG_LC_END);
  766. #endif
  767. return MNG_NOERROR;
  768. }
  769. #endif /* MNG_INCLUDE_JNG */
  770. /* ************************************************************************** */
  771. #ifndef MNG_NO_DELTA_PNG
  772. INIT_CHUNK_HDR (mng_init_dhdr)
  773. {
  774. #ifdef MNG_SUPPORT_TRACE
  775. MNG_TRACE (pData, MNG_FN_INIT_DHDR, MNG_LC_START);
  776. #endif
  777. MNG_ALLOC (pData, *ppChunk, sizeof (mng_dhdr));
  778. ((mng_dhdrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  779. #ifdef MNG_SUPPORT_TRACE
  780. MNG_TRACE (pData, MNG_FN_INIT_DHDR, MNG_LC_END);
  781. #endif
  782. return MNG_NOERROR;
  783. }
  784. #endif
  785. /* ************************************************************************** */
  786. #ifndef MNG_NO_DELTA_PNG
  787. INIT_CHUNK_HDR (mng_init_prom)
  788. {
  789. #ifdef MNG_SUPPORT_TRACE
  790. MNG_TRACE (pData, MNG_FN_INIT_PROM, MNG_LC_START);
  791. #endif
  792. MNG_ALLOC (pData, *ppChunk, sizeof (mng_prom));
  793. ((mng_promp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  794. #ifdef MNG_SUPPORT_TRACE
  795. MNG_TRACE (pData, MNG_FN_INIT_PROM, MNG_LC_END);
  796. #endif
  797. return MNG_NOERROR;
  798. }
  799. #endif
  800. /* ************************************************************************** */
  801. #ifndef MNG_NO_DELTA_PNG
  802. INIT_CHUNK_HDR (mng_init_ipng)
  803. {
  804. #ifdef MNG_SUPPORT_TRACE
  805. MNG_TRACE (pData, MNG_FN_INIT_IPNG, MNG_LC_START);
  806. #endif
  807. MNG_ALLOC (pData, *ppChunk, sizeof (mng_ipng));
  808. ((mng_ipngp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  809. #ifdef MNG_SUPPORT_TRACE
  810. MNG_TRACE (pData, MNG_FN_INIT_IPNG, MNG_LC_END);
  811. #endif
  812. return MNG_NOERROR;
  813. }
  814. #endif
  815. /* ************************************************************************** */
  816. #ifndef MNG_NO_DELTA_PNG
  817. INIT_CHUNK_HDR (mng_init_pplt)
  818. {
  819. #ifdef MNG_SUPPORT_TRACE
  820. MNG_TRACE (pData, MNG_FN_INIT_PPLT, MNG_LC_START);
  821. #endif
  822. MNG_ALLOC (pData, *ppChunk, sizeof (mng_pplt));
  823. ((mng_ppltp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  824. #ifdef MNG_SUPPORT_TRACE
  825. MNG_TRACE (pData, MNG_FN_INIT_PPLT, MNG_LC_END);
  826. #endif
  827. return MNG_NOERROR;
  828. }
  829. #endif
  830. /* ************************************************************************** */
  831. #ifndef MNG_NO_DELTA_PNG
  832. #ifdef MNG_INCLUDE_JNG
  833. INIT_CHUNK_HDR (mng_init_ijng)
  834. {
  835. #ifdef MNG_SUPPORT_TRACE
  836. MNG_TRACE (pData, MNG_FN_INIT_IJNG, MNG_LC_START);
  837. #endif
  838. MNG_ALLOC (pData, *ppChunk, sizeof (mng_ijng));
  839. ((mng_ijngp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  840. #ifdef MNG_SUPPORT_TRACE
  841. MNG_TRACE (pData, MNG_FN_INIT_IJNG, MNG_LC_END);
  842. #endif
  843. return MNG_NOERROR;
  844. }
  845. #endif
  846. #endif
  847. /* ************************************************************************** */
  848. #ifndef MNG_NO_DELTA_PNG
  849. INIT_CHUNK_HDR (mng_init_drop)
  850. {
  851. #ifdef MNG_SUPPORT_TRACE
  852. MNG_TRACE (pData, MNG_FN_INIT_DROP, MNG_LC_START);
  853. #endif
  854. MNG_ALLOC (pData, *ppChunk, sizeof (mng_drop));
  855. ((mng_dropp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  856. #ifdef MNG_SUPPORT_TRACE
  857. MNG_TRACE (pData, MNG_FN_INIT_DROP, MNG_LC_END);
  858. #endif
  859. return MNG_NOERROR;
  860. }
  861. #endif
  862. /* ************************************************************************** */
  863. #ifndef MNG_NO_DELTA_PNG
  864. #ifndef MNG_SKIPCHUNK_DBYK
  865. INIT_CHUNK_HDR (mng_init_dbyk)
  866. {
  867. #ifdef MNG_SUPPORT_TRACE
  868. MNG_TRACE (pData, MNG_FN_INIT_DBYK, MNG_LC_START);
  869. #endif
  870. MNG_ALLOC (pData, *ppChunk, sizeof (mng_dbyk));
  871. ((mng_dbykp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  872. #ifdef MNG_SUPPORT_TRACE
  873. MNG_TRACE (pData, MNG_FN_INIT_DBYK, MNG_LC_END);
  874. #endif
  875. return MNG_NOERROR;
  876. }
  877. #endif
  878. #endif
  879. /* ************************************************************************** */
  880. #ifndef MNG_NO_DELTA_PNG
  881. #ifndef MNG_SKIPCHUNK_ORDR
  882. INIT_CHUNK_HDR (mng_init_ordr)
  883. {
  884. #ifdef MNG_SUPPORT_TRACE
  885. MNG_TRACE (pData, MNG_FN_INIT_ORDR, MNG_LC_START);
  886. #endif
  887. MNG_ALLOC (pData, *ppChunk, sizeof (mng_ordr));
  888. ((mng_ordrp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  889. #ifdef MNG_SUPPORT_TRACE
  890. MNG_TRACE (pData, MNG_FN_INIT_ORDR, MNG_LC_END);
  891. #endif
  892. return MNG_NOERROR;
  893. }
  894. #endif
  895. #endif
  896. /* ************************************************************************** */
  897. #ifndef MNG_SKIPCHUNK_MAGN
  898. INIT_CHUNK_HDR (mng_init_magn)
  899. {
  900. #ifdef MNG_SUPPORT_TRACE
  901. MNG_TRACE (pData, MNG_FN_INIT_MAGN, MNG_LC_START);
  902. #endif
  903. MNG_ALLOC (pData, *ppChunk, sizeof (mng_magn));
  904. ((mng_magnp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  905. #ifdef MNG_SUPPORT_TRACE
  906. MNG_TRACE (pData, MNG_FN_INIT_MAGN, MNG_LC_END);
  907. #endif
  908. return MNG_NOERROR;
  909. }
  910. #endif
  911. /* ************************************************************************** */
  912. #ifndef MNG_SKIPCHUNK_evNT
  913. INIT_CHUNK_HDR (mng_init_evnt)
  914. {
  915. #ifdef MNG_SUPPORT_TRACE
  916. MNG_TRACE (pData, MNG_FN_INIT_EVNT, MNG_LC_START);
  917. #endif
  918. MNG_ALLOC (pData, *ppChunk, sizeof (mng_evnt));
  919. ((mng_evntp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  920. #ifdef MNG_SUPPORT_TRACE
  921. MNG_TRACE (pData, MNG_FN_INIT_EVNT, MNG_LC_END);
  922. #endif
  923. return MNG_NOERROR;
  924. }
  925. #endif
  926. /* ************************************************************************** */
  927. INIT_CHUNK_HDR (mng_init_unknown)
  928. {
  929. #ifdef MNG_SUPPORT_TRACE
  930. MNG_TRACE (pData, MNG_FN_INIT_UNKNOWN, MNG_LC_START);
  931. #endif
  932. MNG_ALLOC (pData, *ppChunk, sizeof (mng_unknown_chunk));
  933. ((mng_unknown_chunkp)*ppChunk)->sHeader = *((mng_chunk_headerp)pHeader);
  934. #ifdef MNG_SUPPORT_TRACE
  935. MNG_TRACE (pData, MNG_FN_INIT_UNKNOWN, MNG_LC_END);
  936. #endif
  937. return MNG_NOERROR;
  938. }
  939. /* ************************************************************************** */
  940. #endif /* MNG_OPTIMIZE_CHUNKINITFREE */
  941. /* ************************************************************************** */
  942. /* * * */
  943. /* * Chunk specific cleanup routines * */
  944. /* * * */
  945. /* ************************************************************************** */
  946. #ifdef MNG_OPTIMIZE_CHUNKINITFREE
  947. FREE_CHUNK_HDR (mng_free_general)
  948. {
  949. MNG_FREEX (pData, pHeader, ((mng_chunk_headerp)pHeader)->iChunksize);
  950. return MNG_NOERROR;
  951. }
  952. #endif
  953. /* ************************************************************************** */
  954. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  955. FREE_CHUNK_HDR (mng_free_ihdr)
  956. {
  957. #ifdef MNG_SUPPORT_TRACE
  958. MNG_TRACE (pData, MNG_FN_FREE_IHDR, MNG_LC_START);
  959. #endif
  960. MNG_FREEX (pData, pHeader, sizeof (mng_ihdr));
  961. #ifdef MNG_SUPPORT_TRACE
  962. MNG_TRACE (pData, MNG_FN_FREE_IHDR, MNG_LC_END);
  963. #endif
  964. return MNG_NOERROR;
  965. }
  966. #endif
  967. /* ************************************************************************** */
  968. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  969. FREE_CHUNK_HDR (mng_free_plte)
  970. {
  971. #ifdef MNG_SUPPORT_TRACE
  972. MNG_TRACE (pData, MNG_FN_FREE_PLTE, MNG_LC_START);
  973. #endif
  974. MNG_FREEX (pData, pHeader, sizeof (mng_plte));
  975. #ifdef MNG_SUPPORT_TRACE
  976. MNG_TRACE (pData, MNG_FN_FREE_PLTE, MNG_LC_END);
  977. #endif
  978. return MNG_NOERROR;
  979. }
  980. #endif
  981. /* ************************************************************************** */
  982. FREE_CHUNK_HDR (mng_free_idat)
  983. {
  984. #ifdef MNG_SUPPORT_TRACE
  985. MNG_TRACE (pData, MNG_FN_FREE_IDAT, MNG_LC_START);
  986. #endif
  987. if (((mng_idatp)pHeader)->iDatasize)
  988. MNG_FREEX (pData, ((mng_idatp)pHeader)->pData,
  989. ((mng_idatp)pHeader)->iDatasize);
  990. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  991. MNG_FREEX (pData, pHeader, sizeof (mng_idat));
  992. #endif
  993. #ifdef MNG_SUPPORT_TRACE
  994. MNG_TRACE (pData, MNG_FN_FREE_IDAT, MNG_LC_END);
  995. #endif
  996. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  997. return MNG_NOERROR;
  998. #else
  999. return mng_free_general(pData, pHeader);
  1000. #endif
  1001. }
  1002. /* ************************************************************************** */
  1003. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1004. FREE_CHUNK_HDR (mng_free_iend)
  1005. {
  1006. #ifdef MNG_SUPPORT_TRACE
  1007. MNG_TRACE (pData, MNG_FN_FREE_IEND, MNG_LC_START);
  1008. #endif
  1009. MNG_FREEX (pData, pHeader, sizeof (mng_iend));
  1010. #ifdef MNG_SUPPORT_TRACE
  1011. MNG_TRACE (pData, MNG_FN_FREE_IEND, MNG_LC_END);
  1012. #endif
  1013. return MNG_NOERROR;
  1014. }
  1015. #endif
  1016. /* ************************************************************************** */
  1017. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1018. FREE_CHUNK_HDR (mng_free_trns)
  1019. {
  1020. #ifdef MNG_SUPPORT_TRACE
  1021. MNG_TRACE (pData, MNG_FN_FREE_TRNS, MNG_LC_START);
  1022. #endif
  1023. MNG_FREEX (pData, pHeader, sizeof (mng_trns));
  1024. #ifdef MNG_SUPPORT_TRACE
  1025. MNG_TRACE (pData, MNG_FN_FREE_TRNS, MNG_LC_END);
  1026. #endif
  1027. return MNG_NOERROR;
  1028. }
  1029. #endif
  1030. /* ************************************************************************** */
  1031. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1032. #ifndef MNG_SKIPCHUNK_gAMA
  1033. FREE_CHUNK_HDR (mng_free_gama)
  1034. {
  1035. #ifdef MNG_SUPPORT_TRACE
  1036. MNG_TRACE (pData, MNG_FN_FREE_GAMA, MNG_LC_START);
  1037. #endif
  1038. MNG_FREEX (pData, pHeader, sizeof (mng_gama));
  1039. #ifdef MNG_SUPPORT_TRACE
  1040. MNG_TRACE (pData, MNG_FN_FREE_GAMA, MNG_LC_END);
  1041. #endif
  1042. return MNG_NOERROR;
  1043. }
  1044. #endif
  1045. #endif
  1046. /* ************************************************************************** */
  1047. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1048. #ifndef MNG_SKIPCHUNK_cHRM
  1049. FREE_CHUNK_HDR (mng_free_chrm)
  1050. {
  1051. #ifdef MNG_SUPPORT_TRACE
  1052. MNG_TRACE (pData, MNG_FN_FREE_CHRM, MNG_LC_START);
  1053. #endif
  1054. MNG_FREEX (pData, pHeader, sizeof (mng_chrm));
  1055. #ifdef MNG_SUPPORT_TRACE
  1056. MNG_TRACE (pData, MNG_FN_FREE_CHRM, MNG_LC_END);
  1057. #endif
  1058. return MNG_NOERROR;
  1059. }
  1060. #endif
  1061. #endif
  1062. /* ************************************************************************** */
  1063. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1064. #ifndef MNG_SKIPCHUNK_sRGB
  1065. FREE_CHUNK_HDR (mng_free_srgb)
  1066. {
  1067. #ifdef MNG_SUPPORT_TRACE
  1068. MNG_TRACE (pData, MNG_FN_FREE_SRGB, MNG_LC_START);
  1069. #endif
  1070. MNG_FREEX (pData, pHeader, sizeof (mng_srgb));
  1071. #ifdef MNG_SUPPORT_TRACE
  1072. MNG_TRACE (pData, MNG_FN_FREE_SRGB, MNG_LC_END);
  1073. #endif
  1074. return MNG_NOERROR;
  1075. }
  1076. #endif
  1077. #endif
  1078. /* ************************************************************************** */
  1079. #ifndef MNG_SKIPCHUNK_iCCP
  1080. FREE_CHUNK_HDR (mng_free_iccp)
  1081. {
  1082. #ifdef MNG_SUPPORT_TRACE
  1083. MNG_TRACE (pData, MNG_FN_FREE_ICCP, MNG_LC_START);
  1084. #endif
  1085. if (((mng_iccpp)pHeader)->iNamesize)
  1086. MNG_FREEX (pData, ((mng_iccpp)pHeader)->zName,
  1087. ((mng_iccpp)pHeader)->iNamesize + 1);
  1088. if (((mng_iccpp)pHeader)->iProfilesize)
  1089. MNG_FREEX (pData, ((mng_iccpp)pHeader)->pProfile,
  1090. ((mng_iccpp)pHeader)->iProfilesize);
  1091. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1092. MNG_FREEX (pData, pHeader, sizeof (mng_iccp));
  1093. #endif
  1094. #ifdef MNG_SUPPORT_TRACE
  1095. MNG_TRACE (pData, MNG_FN_FREE_ICCP, MNG_LC_END);
  1096. #endif
  1097. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1098. return MNG_NOERROR;
  1099. #else
  1100. return mng_free_general(pData, pHeader);
  1101. #endif
  1102. }
  1103. #endif
  1104. /* ************************************************************************** */
  1105. #ifndef MNG_SKIPCHUNK_tEXt
  1106. FREE_CHUNK_HDR (mng_free_text)
  1107. {
  1108. #ifdef MNG_SUPPORT_TRACE
  1109. MNG_TRACE (pData, MNG_FN_FREE_TEXT, MNG_LC_START);
  1110. #endif
  1111. if (((mng_textp)pHeader)->iKeywordsize)
  1112. MNG_FREEX (pData, ((mng_textp)pHeader)->zKeyword,
  1113. ((mng_textp)pHeader)->iKeywordsize + 1);
  1114. if (((mng_textp)pHeader)->iTextsize)
  1115. MNG_FREEX (pData, ((mng_textp)pHeader)->zText,
  1116. ((mng_textp)pHeader)->iTextsize + 1);
  1117. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1118. MNG_FREEX (pData, pHeader, sizeof (mng_text));
  1119. #endif
  1120. #ifdef MNG_SUPPORT_TRACE
  1121. MNG_TRACE (pData, MNG_FN_FREE_TEXT, MNG_LC_END);
  1122. #endif
  1123. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1124. return MNG_NOERROR;
  1125. #else
  1126. return mng_free_general(pData, pHeader);
  1127. #endif
  1128. }
  1129. #endif
  1130. /* ************************************************************************** */
  1131. #ifndef MNG_SKIPCHUNK_zTXt
  1132. FREE_CHUNK_HDR (mng_free_ztxt)
  1133. {
  1134. #ifdef MNG_SUPPORT_TRACE
  1135. MNG_TRACE (pData, MNG_FN_FREE_ZTXT, MNG_LC_START);
  1136. #endif
  1137. if (((mng_ztxtp)pHeader)->iKeywordsize)
  1138. MNG_FREEX (pData, ((mng_ztxtp)pHeader)->zKeyword,
  1139. ((mng_ztxtp)pHeader)->iKeywordsize + 1);
  1140. if (((mng_ztxtp)pHeader)->iTextsize)
  1141. MNG_FREEX (pData, ((mng_ztxtp)pHeader)->zText,
  1142. ((mng_ztxtp)pHeader)->iTextsize);
  1143. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1144. MNG_FREEX (pData, pHeader, sizeof (mng_ztxt));
  1145. #endif
  1146. #ifdef MNG_SUPPORT_TRACE
  1147. MNG_TRACE (pData, MNG_FN_FREE_ZTXT, MNG_LC_END);
  1148. #endif
  1149. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1150. return MNG_NOERROR;
  1151. #else
  1152. return mng_free_general(pData, pHeader);
  1153. #endif
  1154. }
  1155. #endif
  1156. /* ************************************************************************** */
  1157. #ifndef MNG_SKIPCHUNK_iTXt
  1158. FREE_CHUNK_HDR (mng_free_itxt)
  1159. {
  1160. #ifdef MNG_SUPPORT_TRACE
  1161. MNG_TRACE (pData, MNG_FN_FREE_ITXT, MNG_LC_START);
  1162. #endif
  1163. if (((mng_itxtp)pHeader)->iKeywordsize)
  1164. MNG_FREEX (pData, ((mng_itxtp)pHeader)->zKeyword,
  1165. ((mng_itxtp)pHeader)->iKeywordsize + 1);
  1166. if (((mng_itxtp)pHeader)->iLanguagesize)
  1167. MNG_FREEX (pData, ((mng_itxtp)pHeader)->zLanguage,
  1168. ((mng_itxtp)pHeader)->iLanguagesize + 1);
  1169. if (((mng_itxtp)pHeader)->iTranslationsize)
  1170. MNG_FREEX (pData, ((mng_itxtp)pHeader)->zTranslation,
  1171. ((mng_itxtp)pHeader)->iTranslationsize + 1);
  1172. if (((mng_itxtp)pHeader)->iTextsize)
  1173. MNG_FREEX (pData, ((mng_itxtp)pHeader)->zText,
  1174. ((mng_itxtp)pHeader)->iTextsize);
  1175. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1176. MNG_FREEX (pData, pHeader, sizeof (mng_itxt));
  1177. #endif
  1178. #ifdef MNG_SUPPORT_TRACE
  1179. MNG_TRACE (pData, MNG_FN_FREE_ITXT, MNG_LC_END);
  1180. #endif
  1181. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1182. return MNG_NOERROR;
  1183. #else
  1184. return mng_free_general(pData, pHeader);
  1185. #endif
  1186. }
  1187. #endif
  1188. /* ************************************************************************** */
  1189. #ifdef MNG_INCLUDE_MPNG_PROPOSAL
  1190. FREE_CHUNK_HDR (mng_free_mpng)
  1191. {
  1192. #ifdef MNG_SUPPORT_TRACE
  1193. MNG_TRACE (pData, MNG_FN_FREE_MPNG, MNG_LC_START);
  1194. #endif
  1195. if (((mng_mpngp)pHeader)->iFramessize)
  1196. MNG_FREEX (pData, ((mng_mpngp)pHeader)->pFrames,
  1197. ((mng_mpngp)pHeader)->iFramessize);
  1198. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1199. MNG_FREEX (pData, pHeader, sizeof (mng_mpng));
  1200. #endif
  1201. #ifdef MNG_SUPPORT_TRACE
  1202. MNG_TRACE (pData, MNG_FN_FREE_MPNG, MNG_LC_END);
  1203. #endif
  1204. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1205. return MNG_NOERROR;
  1206. #else
  1207. return mng_free_general(pData, pHeader);
  1208. #endif
  1209. }
  1210. #endif
  1211. /* ************************************************************************** */
  1212. #ifdef MNG_INCLUDE_ANG_PROPOSAL
  1213. FREE_CHUNK_HDR (mng_free_adat)
  1214. {
  1215. #ifdef MNG_SUPPORT_TRACE
  1216. MNG_TRACE (pData, MNG_FN_FREE_ADAT, MNG_LC_START);
  1217. #endif
  1218. if (((mng_adatp)pHeader)->iTilessize)
  1219. MNG_FREEX (pData, ((mng_adatp)pHeader)->pTiles, ((mng_adatp)pHeader)->iTilessize);
  1220. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1221. MNG_FREEX (pData, pHeader, sizeof (mng_adat));
  1222. #endif
  1223. #ifdef MNG_SUPPORT_TRACE
  1224. MNG_TRACE (pData, MNG_FN_FREE_ADAT, MNG_LC_END);
  1225. #endif
  1226. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1227. return MNG_NOERROR;
  1228. #else
  1229. return mng_free_general(pData, pHeader);
  1230. #endif
  1231. }
  1232. #endif
  1233. /* ************************************************************************** */
  1234. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1235. #ifndef MNG_SKIPCHUNK_bKGD
  1236. FREE_CHUNK_HDR (mng_free_bkgd)
  1237. {
  1238. #ifdef MNG_SUPPORT_TRACE
  1239. MNG_TRACE (pData, MNG_FN_FREE_BKGD, MNG_LC_START);
  1240. #endif
  1241. MNG_FREEX (pData, pHeader, sizeof (mng_bkgd));
  1242. #ifdef MNG_SUPPORT_TRACE
  1243. MNG_TRACE (pData, MNG_FN_FREE_BKGD, MNG_LC_END);
  1244. #endif
  1245. return MNG_NOERROR;
  1246. }
  1247. #endif
  1248. #endif
  1249. /* ************************************************************************** */
  1250. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1251. #ifndef MNG_SKIPCHUNK_pHYs
  1252. FREE_CHUNK_HDR (mng_free_phys)
  1253. {
  1254. #ifdef MNG_SUPPORT_TRACE
  1255. MNG_TRACE (pData, MNG_FN_FREE_PHYS, MNG_LC_START);
  1256. #endif
  1257. MNG_FREEX (pData, pHeader, sizeof (mng_phys));
  1258. #ifdef MNG_SUPPORT_TRACE
  1259. MNG_TRACE (pData, MNG_FN_FREE_PHYS, MNG_LC_END);
  1260. #endif
  1261. return MNG_NOERROR;
  1262. }
  1263. #endif
  1264. #endif
  1265. /* ************************************************************************** */
  1266. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1267. #ifndef MNG_SKIPCHUNK_sBIT
  1268. FREE_CHUNK_HDR (mng_free_sbit)
  1269. {
  1270. #ifdef MNG_SUPPORT_TRACE
  1271. MNG_TRACE (pData, MNG_FN_FREE_SBIT, MNG_LC_START);
  1272. #endif
  1273. MNG_FREEX (pData, pHeader, sizeof (mng_sbit));
  1274. #ifdef MNG_SUPPORT_TRACE
  1275. MNG_TRACE (pData, MNG_FN_FREE_SBIT, MNG_LC_END);
  1276. #endif
  1277. return MNG_NOERROR;
  1278. }
  1279. #endif
  1280. #endif
  1281. /* ************************************************************************** */
  1282. #ifndef MNG_SKIPCHUNK_sPLT
  1283. FREE_CHUNK_HDR (mng_free_splt)
  1284. {
  1285. #ifdef MNG_SUPPORT_TRACE
  1286. MNG_TRACE (pData, MNG_FN_FREE_SPLT, MNG_LC_START);
  1287. #endif
  1288. if (((mng_spltp)pHeader)->iNamesize)
  1289. MNG_FREEX (pData, ((mng_spltp)pHeader)->zName,
  1290. ((mng_spltp)pHeader)->iNamesize + 1);
  1291. if (((mng_spltp)pHeader)->iEntrycount)
  1292. MNG_FREEX (pData, ((mng_spltp)pHeader)->pEntries,
  1293. ((mng_spltp)pHeader)->iEntrycount *
  1294. (((mng_spltp)pHeader)->iSampledepth * 3 + sizeof (mng_uint16)) );
  1295. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1296. MNG_FREEX (pData, pHeader, sizeof (mng_splt));
  1297. #endif
  1298. #ifdef MNG_SUPPORT_TRACE
  1299. MNG_TRACE (pData, MNG_FN_FREE_SPLT, MNG_LC_END);
  1300. #endif
  1301. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1302. return MNG_NOERROR;
  1303. #else
  1304. return mng_free_general(pData, pHeader);
  1305. #endif
  1306. }
  1307. #endif
  1308. /* ************************************************************************** */
  1309. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1310. #ifndef MNG_SKIPCHUNK_hIST
  1311. FREE_CHUNK_HDR (mng_free_hist)
  1312. {
  1313. #ifdef MNG_SUPPORT_TRACE
  1314. MNG_TRACE (pData, MNG_FN_FREE_HIST, MNG_LC_START);
  1315. #endif
  1316. MNG_FREEX (pData, pHeader, sizeof (mng_hist));
  1317. #ifdef MNG_SUPPORT_TRACE
  1318. MNG_TRACE (pData, MNG_FN_FREE_HIST, MNG_LC_END);
  1319. #endif
  1320. return MNG_NOERROR;
  1321. }
  1322. #endif
  1323. #endif
  1324. /* ************************************************************************** */
  1325. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1326. #ifndef MNG_SKIPCHUNK_tIME
  1327. FREE_CHUNK_HDR (mng_free_time)
  1328. {
  1329. #ifdef MNG_SUPPORT_TRACE
  1330. MNG_TRACE (pData, MNG_FN_FREE_TIME, MNG_LC_START);
  1331. #endif
  1332. MNG_FREEX (pData, pHeader, sizeof (mng_time));
  1333. #ifdef MNG_SUPPORT_TRACE
  1334. MNG_TRACE (pData, MNG_FN_FREE_TIME, MNG_LC_END);
  1335. #endif
  1336. return MNG_NOERROR;
  1337. }
  1338. #endif
  1339. #endif
  1340. /* ************************************************************************** */
  1341. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1342. FREE_CHUNK_HDR (mng_free_mhdr)
  1343. {
  1344. #ifdef MNG_SUPPORT_TRACE
  1345. MNG_TRACE (pData, MNG_FN_FREE_MHDR, MNG_LC_START);
  1346. #endif
  1347. MNG_FREEX (pData, pHeader, sizeof (mng_mhdr));
  1348. #ifdef MNG_SUPPORT_TRACE
  1349. MNG_TRACE (pData, MNG_FN_FREE_MHDR, MNG_LC_END);
  1350. #endif
  1351. return MNG_NOERROR;
  1352. }
  1353. #endif
  1354. /* ************************************************************************** */
  1355. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1356. FREE_CHUNK_HDR (mng_free_mend)
  1357. {
  1358. #ifdef MNG_SUPPORT_TRACE
  1359. MNG_TRACE (pData, MNG_FN_FREE_MEND, MNG_LC_START);
  1360. #endif
  1361. MNG_FREEX (pData, pHeader, sizeof (mng_mend));
  1362. #ifdef MNG_SUPPORT_TRACE
  1363. MNG_TRACE (pData, MNG_FN_FREE_MEND, MNG_LC_END);
  1364. #endif
  1365. return MNG_NOERROR;
  1366. }
  1367. #endif
  1368. /* ************************************************************************** */
  1369. #ifndef MNG_SKIPCHUNK_LOOP
  1370. FREE_CHUNK_HDR (mng_free_loop)
  1371. {
  1372. #ifdef MNG_SUPPORT_TRACE
  1373. MNG_TRACE (pData, MNG_FN_FREE_LOOP, MNG_LC_START);
  1374. #endif
  1375. #ifndef MNG_NO_LOOP_SIGNALS_SUPPORTED
  1376. if (((mng_loopp)pHeader)->iCount)
  1377. MNG_FREEX (pData, ((mng_loopp)pHeader)->pSignals,
  1378. ((mng_loopp)pHeader)->iCount * sizeof (mng_uint32) );
  1379. #endif
  1380. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1381. MNG_FREEX (pData, pHeader, sizeof (mng_loop));
  1382. #endif
  1383. #ifdef MNG_SUPPORT_TRACE
  1384. MNG_TRACE (pData, MNG_FN_FREE_LOOP, MNG_LC_END);
  1385. #endif
  1386. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1387. return MNG_NOERROR;
  1388. #else
  1389. return mng_free_general(pData, pHeader);
  1390. #endif
  1391. }
  1392. /* ************************************************************************** */
  1393. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1394. FREE_CHUNK_HDR (mng_free_endl)
  1395. {
  1396. #ifdef MNG_SUPPORT_TRACE
  1397. MNG_TRACE (pData, MNG_FN_FREE_ENDL, MNG_LC_START);
  1398. #endif
  1399. MNG_FREEX (pData, pHeader, sizeof (mng_endl));
  1400. #ifdef MNG_SUPPORT_TRACE
  1401. MNG_TRACE (pData, MNG_FN_FREE_ENDL, MNG_LC_END);
  1402. #endif
  1403. return MNG_NOERROR;
  1404. }
  1405. #endif
  1406. #endif
  1407. /* ************************************************************************** */
  1408. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1409. #ifndef MNG_SKIPCHUNK_DEFI
  1410. FREE_CHUNK_HDR (mng_free_defi)
  1411. {
  1412. #ifdef MNG_SUPPORT_TRACE
  1413. MNG_TRACE (pData, MNG_FN_FREE_DEFI, MNG_LC_START);
  1414. #endif
  1415. MNG_FREEX (pData, pHeader, sizeof (mng_defi));
  1416. #ifdef MNG_SUPPORT_TRACE
  1417. MNG_TRACE (pData, MNG_FN_FREE_DEFI, MNG_LC_END);
  1418. #endif
  1419. return MNG_NOERROR;
  1420. }
  1421. #endif
  1422. #endif
  1423. /* ************************************************************************** */
  1424. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1425. #ifndef MNG_SKIPCHUNK_BASI
  1426. FREE_CHUNK_HDR (mng_free_basi)
  1427. {
  1428. #ifdef MNG_SUPPORT_TRACE
  1429. MNG_TRACE (pData, MNG_FN_FREE_BASI, MNG_LC_START);
  1430. #endif
  1431. MNG_FREEX (pData, pHeader, sizeof (mng_basi));
  1432. #ifdef MNG_SUPPORT_TRACE
  1433. MNG_TRACE (pData, MNG_FN_FREE_BASI, MNG_LC_END);
  1434. #endif
  1435. return MNG_NOERROR;
  1436. }
  1437. #endif
  1438. #endif
  1439. /* ************************************************************************** */
  1440. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1441. #ifndef MNG_SKIPCHUNK_CLON
  1442. FREE_CHUNK_HDR (mng_free_clon)
  1443. {
  1444. #ifdef MNG_SUPPORT_TRACE
  1445. MNG_TRACE (pData, MNG_FN_FREE_CLON, MNG_LC_START);
  1446. #endif
  1447. MNG_FREEX (pData, pHeader, sizeof (mng_clon));
  1448. #ifdef MNG_SUPPORT_TRACE
  1449. MNG_TRACE (pData, MNG_FN_FREE_CLON, MNG_LC_END);
  1450. #endif
  1451. return MNG_NOERROR;
  1452. }
  1453. #endif
  1454. #endif
  1455. /* ************************************************************************** */
  1456. #ifndef MNG_SKIPCHUNK_PAST
  1457. FREE_CHUNK_HDR (mng_free_past)
  1458. {
  1459. #ifdef MNG_SUPPORT_TRACE
  1460. MNG_TRACE (pData, MNG_FN_FREE_PAST, MNG_LC_START);
  1461. #endif
  1462. if (((mng_pastp)pHeader)->iCount)
  1463. MNG_FREEX (pData, ((mng_pastp)pHeader)->pSources,
  1464. ((mng_pastp)pHeader)->iCount * sizeof (mng_past_source) );
  1465. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1466. MNG_FREEX (pData, pHeader, sizeof (mng_past));
  1467. #endif
  1468. #ifdef MNG_SUPPORT_TRACE
  1469. MNG_TRACE (pData, MNG_FN_FREE_PAST, MNG_LC_END);
  1470. #endif
  1471. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1472. return MNG_NOERROR;
  1473. #else
  1474. return mng_free_general(pData, pHeader);
  1475. #endif
  1476. }
  1477. #endif
  1478. /* ************************************************************************** */
  1479. #ifndef MNG_SKIPCHUNK_DISC
  1480. FREE_CHUNK_HDR (mng_free_disc)
  1481. {
  1482. #ifdef MNG_SUPPORT_TRACE
  1483. MNG_TRACE (pData, MNG_FN_FREE_DISC, MNG_LC_START);
  1484. #endif
  1485. if (((mng_discp)pHeader)->iCount)
  1486. MNG_FREEX (pData, ((mng_discp)pHeader)->pObjectids,
  1487. ((mng_discp)pHeader)->iCount * sizeof (mng_uint16) );
  1488. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1489. MNG_FREEX (pData, pHeader, sizeof (mng_disc));
  1490. #endif
  1491. #ifdef MNG_SUPPORT_TRACE
  1492. MNG_TRACE (pData, MNG_FN_FREE_DISC, MNG_LC_END);
  1493. #endif
  1494. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1495. return MNG_NOERROR;
  1496. #else
  1497. return mng_free_general(pData, pHeader);
  1498. #endif
  1499. }
  1500. #endif
  1501. /* ************************************************************************** */
  1502. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1503. #ifndef MNG_SKIPCHUNK_BACK
  1504. FREE_CHUNK_HDR (mng_free_back)
  1505. {
  1506. #ifdef MNG_SUPPORT_TRACE
  1507. MNG_TRACE (pData, MNG_FN_FREE_BACK, MNG_LC_START);
  1508. #endif
  1509. MNG_FREEX (pData, pHeader, sizeof (mng_back));
  1510. #ifdef MNG_SUPPORT_TRACE
  1511. MNG_TRACE (pData, MNG_FN_FREE_BACK, MNG_LC_END);
  1512. #endif
  1513. return MNG_NOERROR;
  1514. }
  1515. #endif
  1516. #endif
  1517. /* ************************************************************************** */
  1518. #ifndef MNG_SKIPCHUNK_FRAM
  1519. FREE_CHUNK_HDR (mng_free_fram)
  1520. {
  1521. #ifdef MNG_SUPPORT_TRACE
  1522. MNG_TRACE (pData, MNG_FN_FREE_FRAM, MNG_LC_START);
  1523. #endif
  1524. if (((mng_framp)pHeader)->iNamesize)
  1525. MNG_FREEX (pData, ((mng_framp)pHeader)->zName,
  1526. ((mng_framp)pHeader)->iNamesize + 1);
  1527. if (((mng_framp)pHeader)->iCount)
  1528. MNG_FREEX (pData, ((mng_framp)pHeader)->pSyncids,
  1529. ((mng_framp)pHeader)->iCount * sizeof (mng_uint32) );
  1530. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1531. MNG_FREEX (pData, pHeader, sizeof (mng_fram));
  1532. #endif
  1533. #ifdef MNG_SUPPORT_TRACE
  1534. MNG_TRACE (pData, MNG_FN_FREE_FRAM, MNG_LC_END);
  1535. #endif
  1536. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1537. return MNG_NOERROR;
  1538. #else
  1539. return mng_free_general(pData, pHeader);
  1540. #endif
  1541. }
  1542. #endif
  1543. /* ************************************************************************** */
  1544. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1545. #ifndef MNG_SKIPCHUNK_MOVE
  1546. FREE_CHUNK_HDR (mng_free_move)
  1547. {
  1548. #ifdef MNG_SUPPORT_TRACE
  1549. MNG_TRACE (pData, MNG_FN_FREE_MOVE, MNG_LC_START);
  1550. #endif
  1551. MNG_FREEX (pData, pHeader, sizeof (mng_move));
  1552. #ifdef MNG_SUPPORT_TRACE
  1553. MNG_TRACE (pData, MNG_FN_FREE_MOVE, MNG_LC_END);
  1554. #endif
  1555. return MNG_NOERROR;
  1556. }
  1557. #endif
  1558. #endif
  1559. /* ************************************************************************** */
  1560. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1561. #ifndef MNG_SKIPCHUNK_CLIP
  1562. FREE_CHUNK_HDR (mng_free_clip)
  1563. {
  1564. #ifdef MNG_SUPPORT_TRACE
  1565. MNG_TRACE (pData, MNG_FN_FREE_CLIP, MNG_LC_START);
  1566. #endif
  1567. MNG_FREEX (pData, pHeader, sizeof (mng_clip));
  1568. #ifdef MNG_SUPPORT_TRACE
  1569. MNG_TRACE (pData, MNG_FN_FREE_CLIP, MNG_LC_END);
  1570. #endif
  1571. return MNG_NOERROR;
  1572. }
  1573. #endif
  1574. #endif
  1575. /* ************************************************************************** */
  1576. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1577. #ifndef MNG_SKIPCHUNK_SHOW
  1578. FREE_CHUNK_HDR (mng_free_show)
  1579. {
  1580. #ifdef MNG_SUPPORT_TRACE
  1581. MNG_TRACE (pData, MNG_FN_FREE_SHOW, MNG_LC_START);
  1582. #endif
  1583. MNG_FREEX (pData, pHeader, sizeof (mng_show));
  1584. #ifdef MNG_SUPPORT_TRACE
  1585. MNG_TRACE (pData, MNG_FN_FREE_SHOW, MNG_LC_END);
  1586. #endif
  1587. return MNG_NOERROR;
  1588. }
  1589. #endif
  1590. #endif
  1591. /* ************************************************************************** */
  1592. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1593. #ifndef MNG_SKIPCHUNK_TERM
  1594. FREE_CHUNK_HDR (mng_free_term)
  1595. {
  1596. #ifdef MNG_SUPPORT_TRACE
  1597. MNG_TRACE (pData, MNG_FN_FREE_TERM, MNG_LC_START);
  1598. #endif
  1599. MNG_FREEX (pData, pHeader, sizeof (mng_term));
  1600. #ifdef MNG_SUPPORT_TRACE
  1601. MNG_TRACE (pData, MNG_FN_FREE_TERM, MNG_LC_END);
  1602. #endif
  1603. return MNG_NOERROR;
  1604. }
  1605. #endif
  1606. #endif
  1607. /* ************************************************************************** */
  1608. #ifndef MNG_SKIPCHUNK_SAVE
  1609. FREE_CHUNK_HDR (mng_free_save)
  1610. {
  1611. mng_save_entryp pEntry = ((mng_savep)pHeader)->pEntries;
  1612. mng_uint32 iX;
  1613. #ifdef MNG_SUPPORT_TRACE
  1614. MNG_TRACE (pData, MNG_FN_FREE_SAVE, MNG_LC_START);
  1615. #endif
  1616. for (iX = 0; iX < ((mng_savep)pHeader)->iCount; iX++)
  1617. {
  1618. if (pEntry->iNamesize)
  1619. MNG_FREEX (pData, pEntry->zName, pEntry->iNamesize);
  1620. pEntry = pEntry + sizeof (mng_save_entry);
  1621. }
  1622. if (((mng_savep)pHeader)->iCount)
  1623. MNG_FREEX (pData, ((mng_savep)pHeader)->pEntries,
  1624. ((mng_savep)pHeader)->iCount * sizeof (mng_save_entry) );
  1625. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1626. MNG_FREEX (pData, pHeader, sizeof (mng_save));
  1627. #endif
  1628. #ifdef MNG_SUPPORT_TRACE
  1629. MNG_TRACE (pData, MNG_FN_FREE_SAVE, MNG_LC_END);
  1630. #endif
  1631. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1632. return MNG_NOERROR;
  1633. #else
  1634. return mng_free_general(pData, pHeader);
  1635. #endif
  1636. }
  1637. #endif
  1638. /* ************************************************************************** */
  1639. #ifndef MNG_SKIPCHUNK_SEEK
  1640. FREE_CHUNK_HDR (mng_free_seek)
  1641. {
  1642. #ifdef MNG_SUPPORT_TRACE
  1643. MNG_TRACE (pData, MNG_FN_FREE_SEEK, MNG_LC_START);
  1644. #endif
  1645. if (((mng_seekp)pHeader)->iNamesize)
  1646. MNG_FREEX (pData, ((mng_seekp)pHeader)->zName,
  1647. ((mng_seekp)pHeader)->iNamesize + 1);
  1648. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1649. MNG_FREEX (pData, pHeader, sizeof (mng_seek));
  1650. #endif
  1651. #ifdef MNG_SUPPORT_TRACE
  1652. MNG_TRACE (pData, MNG_FN_FREE_SEEK, MNG_LC_END);
  1653. #endif
  1654. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1655. return MNG_NOERROR;
  1656. #else
  1657. return mng_free_general(pData, pHeader);
  1658. #endif
  1659. }
  1660. #endif
  1661. /* ************************************************************************** */
  1662. #ifndef MNG_SKIPCHUNK_eXPI
  1663. FREE_CHUNK_HDR (mng_free_expi)
  1664. {
  1665. #ifdef MNG_SUPPORT_TRACE
  1666. MNG_TRACE (pData, MNG_FN_FREE_EXPI, MNG_LC_START);
  1667. #endif
  1668. if (((mng_expip)pHeader)->iNamesize)
  1669. MNG_FREEX (pData, ((mng_expip)pHeader)->zName,
  1670. ((mng_expip)pHeader)->iNamesize + 1);
  1671. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1672. MNG_FREEX (pData, pHeader, sizeof (mng_expi));
  1673. #endif
  1674. #ifdef MNG_SUPPORT_TRACE
  1675. MNG_TRACE (pData, MNG_FN_FREE_EXPI, MNG_LC_END);
  1676. #endif
  1677. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1678. return MNG_NOERROR;
  1679. #else
  1680. return mng_free_general(pData, pHeader);
  1681. #endif
  1682. }
  1683. #endif
  1684. /* ************************************************************************** */
  1685. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1686. #ifndef MNG_SKIPCHUNK_fPRI
  1687. FREE_CHUNK_HDR (mng_free_fpri)
  1688. {
  1689. #ifdef MNG_SUPPORT_TRACE
  1690. MNG_TRACE (pData, MNG_FN_FREE_FPRI, MNG_LC_START);
  1691. #endif
  1692. MNG_FREEX (pData, pHeader, sizeof (mng_fpri));
  1693. #ifdef MNG_SUPPORT_TRACE
  1694. MNG_TRACE (pData, MNG_FN_FREE_FPRI, MNG_LC_END);
  1695. #endif
  1696. return MNG_NOERROR;
  1697. }
  1698. #endif
  1699. #endif
  1700. /* ************************************************************************** */
  1701. #ifndef MNG_SKIPCHUNK_nEED
  1702. FREE_CHUNK_HDR (mng_free_need)
  1703. {
  1704. #ifdef MNG_SUPPORT_TRACE
  1705. MNG_TRACE (pData, MNG_FN_FREE_NEED, MNG_LC_START);
  1706. #endif
  1707. if (((mng_needp)pHeader)->iKeywordssize)
  1708. MNG_FREEX (pData, ((mng_needp)pHeader)->zKeywords,
  1709. ((mng_needp)pHeader)->iKeywordssize + 1);
  1710. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1711. MNG_FREEX (pData, pHeader, sizeof (mng_need));
  1712. #endif
  1713. #ifdef MNG_SUPPORT_TRACE
  1714. MNG_TRACE (pData, MNG_FN_FREE_NEED, MNG_LC_END);
  1715. #endif
  1716. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1717. return MNG_NOERROR;
  1718. #else
  1719. return mng_free_general(pData, pHeader);
  1720. #endif
  1721. }
  1722. #endif
  1723. /* ************************************************************************** */
  1724. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1725. #ifndef MNG_SKIPCHUNK_pHYg
  1726. FREE_CHUNK_HDR (mng_free_phyg)
  1727. {
  1728. #ifdef MNG_SUPPORT_TRACE
  1729. MNG_TRACE (pData, MNG_FN_FREE_PHYG, MNG_LC_START);
  1730. #endif
  1731. MNG_FREEX (pData, pHeader, sizeof (mng_phyg));
  1732. #ifdef MNG_SUPPORT_TRACE
  1733. MNG_TRACE (pData, MNG_FN_FREE_PHYG, MNG_LC_END);
  1734. #endif
  1735. return MNG_NOERROR;
  1736. }
  1737. #endif
  1738. #endif
  1739. /* ************************************************************************** */
  1740. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1741. #ifdef MNG_INCLUDE_JNG
  1742. FREE_CHUNK_HDR (mng_free_jhdr)
  1743. {
  1744. #ifdef MNG_SUPPORT_TRACE
  1745. MNG_TRACE (pData, MNG_FN_FREE_JHDR, MNG_LC_START);
  1746. #endif
  1747. MNG_FREEX (pData, pHeader, sizeof (mng_jhdr));
  1748. #ifdef MNG_SUPPORT_TRACE
  1749. MNG_TRACE (pData, MNG_FN_FREE_JHDR, MNG_LC_END);
  1750. #endif
  1751. return MNG_NOERROR;
  1752. }
  1753. #endif /* MNG_INCLUDE_JNG */
  1754. #endif
  1755. /* ************************************************************************** */
  1756. #ifdef MNG_INCLUDE_JNG
  1757. FREE_CHUNK_HDR (mng_free_jdaa)
  1758. {
  1759. #ifdef MNG_SUPPORT_TRACE
  1760. MNG_TRACE (pData, MNG_FN_FREE_JDAA, MNG_LC_START);
  1761. #endif
  1762. if (((mng_jdaap)pHeader)->iDatasize)
  1763. MNG_FREEX (pData, ((mng_jdaap)pHeader)->pData,
  1764. ((mng_jdaap)pHeader)->iDatasize);
  1765. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1766. MNG_FREEX (pData, pHeader, sizeof (mng_jdaa));
  1767. #endif
  1768. #ifdef MNG_SUPPORT_TRACE
  1769. MNG_TRACE (pData, MNG_FN_FREE_JDAA, MNG_LC_END);
  1770. #endif
  1771. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1772. return MNG_NOERROR;
  1773. #else
  1774. return mng_free_general(pData, pHeader);
  1775. #endif
  1776. }
  1777. #endif /* MNG_INCLUDE_JNG */
  1778. /* ************************************************************************** */
  1779. #ifdef MNG_INCLUDE_JNG
  1780. FREE_CHUNK_HDR (mng_free_jdat)
  1781. {
  1782. #ifdef MNG_SUPPORT_TRACE
  1783. MNG_TRACE (pData, MNG_FN_FREE_JDAT, MNG_LC_START);
  1784. #endif
  1785. if (((mng_jdatp)pHeader)->iDatasize)
  1786. MNG_FREEX (pData, ((mng_jdatp)pHeader)->pData,
  1787. ((mng_jdatp)pHeader)->iDatasize);
  1788. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1789. MNG_FREEX (pData, pHeader, sizeof (mng_jdat));
  1790. #endif
  1791. #ifdef MNG_SUPPORT_TRACE
  1792. MNG_TRACE (pData, MNG_FN_FREE_JDAT, MNG_LC_END);
  1793. #endif
  1794. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1795. return MNG_NOERROR;
  1796. #else
  1797. return mng_free_general(pData, pHeader);
  1798. #endif
  1799. }
  1800. #endif /* MNG_INCLUDE_JNG */
  1801. /* ************************************************************************** */
  1802. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1803. #ifdef MNG_INCLUDE_JNG
  1804. FREE_CHUNK_HDR (mng_free_jsep)
  1805. {
  1806. #ifdef MNG_SUPPORT_TRACE
  1807. MNG_TRACE (pData, MNG_FN_FREE_JSEP, MNG_LC_START);
  1808. #endif
  1809. MNG_FREEX (pData, pHeader, sizeof (mng_jsep));
  1810. #ifdef MNG_SUPPORT_TRACE
  1811. MNG_TRACE (pData, MNG_FN_FREE_JSEP, MNG_LC_END);
  1812. #endif
  1813. return MNG_NOERROR;
  1814. }
  1815. #endif /* MNG_INCLUDE_JNG */
  1816. #endif
  1817. /* ************************************************************************** */
  1818. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1819. #ifndef MNG_NO_DELTA_PNG
  1820. FREE_CHUNK_HDR (mng_free_dhdr)
  1821. {
  1822. #ifdef MNG_SUPPORT_TRACE
  1823. MNG_TRACE (pData, MNG_FN_FREE_DHDR, MNG_LC_START);
  1824. #endif
  1825. MNG_FREEX (pData, pHeader, sizeof (mng_dhdr));
  1826. #ifdef MNG_SUPPORT_TRACE
  1827. MNG_TRACE (pData, MNG_FN_FREE_DHDR, MNG_LC_END);
  1828. #endif
  1829. return MNG_NOERROR;
  1830. }
  1831. #endif
  1832. #endif
  1833. /* ************************************************************************** */
  1834. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1835. #ifndef MNG_NO_DELTA_PNG
  1836. FREE_CHUNK_HDR (mng_free_prom)
  1837. {
  1838. #ifdef MNG_SUPPORT_TRACE
  1839. MNG_TRACE (pData, MNG_FN_FREE_PROM, MNG_LC_START);
  1840. #endif
  1841. MNG_FREEX (pData, pHeader, sizeof (mng_prom));
  1842. #ifdef MNG_SUPPORT_TRACE
  1843. MNG_TRACE (pData, MNG_FN_FREE_PROM, MNG_LC_END);
  1844. #endif
  1845. return MNG_NOERROR;
  1846. }
  1847. #endif
  1848. #endif
  1849. /* ************************************************************************** */
  1850. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1851. #ifndef MNG_NO_DELTA_PNG
  1852. FREE_CHUNK_HDR (mng_free_ipng)
  1853. {
  1854. #ifdef MNG_SUPPORT_TRACE
  1855. MNG_TRACE (pData, MNG_FN_FREE_IPNG, MNG_LC_START);
  1856. #endif
  1857. MNG_FREEX (pData, pHeader, sizeof (mng_ipng));
  1858. #ifdef MNG_SUPPORT_TRACE
  1859. MNG_TRACE (pData, MNG_FN_FREE_IPNG, MNG_LC_END);
  1860. #endif
  1861. return MNG_NOERROR;
  1862. }
  1863. #endif
  1864. #endif
  1865. /* ************************************************************************** */
  1866. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1867. #ifndef MNG_NO_DELTA_PNG
  1868. FREE_CHUNK_HDR (mng_free_pplt)
  1869. {
  1870. #ifdef MNG_SUPPORT_TRACE
  1871. MNG_TRACE (pData, MNG_FN_FREE_PPLT, MNG_LC_START);
  1872. #endif
  1873. MNG_FREEX (pData, pHeader, sizeof (mng_pplt));
  1874. #ifdef MNG_SUPPORT_TRACE
  1875. MNG_TRACE (pData, MNG_FN_FREE_PPLT, MNG_LC_END);
  1876. #endif
  1877. return MNG_NOERROR;
  1878. }
  1879. #endif
  1880. #endif
  1881. /* ************************************************************************** */
  1882. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1883. #ifndef MNG_NO_DELTA_PNG
  1884. #ifdef MNG_INCLUDE_JNG
  1885. FREE_CHUNK_HDR (mng_free_ijng)
  1886. {
  1887. #ifdef MNG_SUPPORT_TRACE
  1888. MNG_TRACE (pData, MNG_FN_FREE_IJNG, MNG_LC_START);
  1889. #endif
  1890. MNG_FREEX (pData, pHeader, sizeof (mng_ijng));
  1891. #ifdef MNG_SUPPORT_TRACE
  1892. MNG_TRACE (pData, MNG_FN_FREE_IJNG, MNG_LC_END);
  1893. #endif
  1894. return MNG_NOERROR;
  1895. }
  1896. #endif
  1897. #endif
  1898. #endif
  1899. /* ************************************************************************** */
  1900. #ifndef MNG_NO_DELTA_PNG
  1901. FREE_CHUNK_HDR (mng_free_drop)
  1902. {
  1903. #ifdef MNG_SUPPORT_TRACE
  1904. MNG_TRACE (pData, MNG_FN_FREE_DROP, MNG_LC_START);
  1905. #endif
  1906. if (((mng_dropp)pHeader)->iCount)
  1907. MNG_FREEX (pData, ((mng_dropp)pHeader)->pChunknames,
  1908. ((mng_dropp)pHeader)->iCount * sizeof (mng_chunkid) );
  1909. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1910. MNG_FREEX (pData, pHeader, sizeof (mng_drop));
  1911. #endif
  1912. #ifdef MNG_SUPPORT_TRACE
  1913. MNG_TRACE (pData, MNG_FN_FREE_DROP, MNG_LC_END);
  1914. #endif
  1915. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1916. return MNG_NOERROR;
  1917. #else
  1918. return mng_free_general(pData, pHeader);
  1919. #endif
  1920. }
  1921. #endif
  1922. /* ************************************************************************** */
  1923. #ifndef MNG_NO_DELTA_PNG
  1924. #ifndef MNG_SKIPCHUNK_DBYK
  1925. FREE_CHUNK_HDR (mng_free_dbyk)
  1926. {
  1927. #ifdef MNG_SUPPORT_TRACE
  1928. MNG_TRACE (pData, MNG_FN_FREE_DBYK, MNG_LC_START);
  1929. #endif
  1930. if (((mng_dbykp)pHeader)->iKeywordssize)
  1931. MNG_FREEX (pData, ((mng_dbykp)pHeader)->zKeywords,
  1932. ((mng_dbykp)pHeader)->iKeywordssize);
  1933. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1934. MNG_FREEX (pData, pHeader, sizeof (mng_dbyk));
  1935. #endif
  1936. #ifdef MNG_SUPPORT_TRACE
  1937. MNG_TRACE (pData, MNG_FN_FREE_DBYK, MNG_LC_END);
  1938. #endif
  1939. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1940. return MNG_NOERROR;
  1941. #else
  1942. return mng_free_general(pData, pHeader);
  1943. #endif
  1944. }
  1945. #endif
  1946. #endif
  1947. /* ************************************************************************** */
  1948. #ifndef MNG_NO_DELTA_PNG
  1949. #ifndef MNG_SKIPCHUNK_ORDR
  1950. FREE_CHUNK_HDR (mng_free_ordr)
  1951. {
  1952. #ifdef MNG_SUPPORT_TRACE
  1953. MNG_TRACE (pData, MNG_FN_FREE_ORDR, MNG_LC_START);
  1954. #endif
  1955. if (((mng_ordrp)pHeader)->iCount)
  1956. MNG_FREEX (pData, ((mng_ordrp)pHeader)->pEntries,
  1957. ((mng_ordrp)pHeader)->iCount * sizeof (mng_ordr_entry) );
  1958. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1959. MNG_FREEX (pData, pHeader, sizeof (mng_ordr));
  1960. #endif
  1961. #ifdef MNG_SUPPORT_TRACE
  1962. MNG_TRACE (pData, MNG_FN_FREE_ORDR, MNG_LC_END);
  1963. #endif
  1964. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1965. return MNG_NOERROR;
  1966. #else
  1967. return mng_free_general(pData, pHeader);
  1968. #endif
  1969. }
  1970. #endif
  1971. #endif
  1972. /* ************************************************************************** */
  1973. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  1974. #ifndef MNG_SKIPCHUNK_MAGN
  1975. FREE_CHUNK_HDR (mng_free_magn)
  1976. {
  1977. #ifdef MNG_SUPPORT_TRACE
  1978. MNG_TRACE (pData, MNG_FN_FREE_MAGN, MNG_LC_START);
  1979. #endif
  1980. MNG_FREEX (pData, pHeader, sizeof (mng_magn));
  1981. #ifdef MNG_SUPPORT_TRACE
  1982. MNG_TRACE (pData, MNG_FN_FREE_MAGN, MNG_LC_END);
  1983. #endif
  1984. return MNG_NOERROR;
  1985. }
  1986. #endif
  1987. #endif
  1988. /* ************************************************************************** */
  1989. #ifndef MNG_SKIPCHUNK_evNT
  1990. FREE_CHUNK_HDR (mng_free_evnt)
  1991. {
  1992. mng_evnt_entryp pEntry = ((mng_evntp)pHeader)->pEntries;
  1993. mng_uint32 iX;
  1994. #ifdef MNG_SUPPORT_TRACE
  1995. MNG_TRACE (pData, MNG_FN_FREE_EVNT, MNG_LC_START);
  1996. #endif
  1997. for (iX = 0; iX < ((mng_evntp)pHeader)->iCount; iX++)
  1998. {
  1999. if (pEntry->iSegmentnamesize)
  2000. MNG_FREEX (pData, pEntry->zSegmentname, pEntry->iSegmentnamesize+1);
  2001. pEntry++;
  2002. }
  2003. if (((mng_evntp)pHeader)->iCount)
  2004. MNG_FREEX (pData, ((mng_evntp)pHeader)->pEntries,
  2005. ((mng_evntp)pHeader)->iCount * sizeof (mng_evnt_entry) );
  2006. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  2007. MNG_FREEX (pData, pHeader, sizeof (mng_evnt));
  2008. #endif
  2009. #ifdef MNG_SUPPORT_TRACE
  2010. MNG_TRACE (pData, MNG_FN_FREE_EVNT, MNG_LC_END);
  2011. #endif
  2012. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  2013. return MNG_NOERROR;
  2014. #else
  2015. return mng_free_general(pData, pHeader);
  2016. #endif
  2017. }
  2018. #endif
  2019. /* ************************************************************************** */
  2020. FREE_CHUNK_HDR (mng_free_unknown)
  2021. {
  2022. #ifdef MNG_SUPPORT_TRACE
  2023. MNG_TRACE (pData, MNG_FN_FREE_UNKNOWN, MNG_LC_START);
  2024. #endif
  2025. if (((mng_unknown_chunkp)pHeader)->iDatasize)
  2026. MNG_FREEX (pData, ((mng_unknown_chunkp)pHeader)->pData,
  2027. ((mng_unknown_chunkp)pHeader)->iDatasize);
  2028. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  2029. MNG_FREEX (pData, pHeader, sizeof (mng_unknown_chunk));
  2030. #endif
  2031. #ifdef MNG_SUPPORT_TRACE
  2032. MNG_TRACE (pData, MNG_FN_FREE_UNKNOWN, MNG_LC_END);
  2033. #endif
  2034. #ifndef MNG_OPTIMIZE_CHUNKINITFREE
  2035. return MNG_NOERROR;
  2036. #else
  2037. return mng_free_general(pData, pHeader);
  2038. #endif
  2039. }
  2040. /* ************************************************************************** */
  2041. /* * * */
  2042. /* * Chunk specific copy routines * */
  2043. /* * * */
  2044. /* ************************************************************************** */
  2045. #ifdef MNG_INCLUDE_WRITE_PROCS
  2046. /* ************************************************************************** */
  2047. #ifdef MNG_OPTIMIZE_CHUNKASSIGN
  2048. ASSIGN_CHUNK_HDR (mng_assign_general)
  2049. {
  2050. mng_ptr pSrc = (mng_uint8p)pChunkfrom + sizeof (mng_chunk_header);
  2051. mng_ptr pDst = (mng_uint8p)pChunkto + sizeof (mng_chunk_header);
  2052. mng_size_t iLen = ((mng_chunk_headerp)pChunkfrom)->iChunksize - sizeof (mng_chunk_header);
  2053. MNG_COPY (pDst, pSrc, iLen);
  2054. return MNG_NOERROR;
  2055. }
  2056. #endif
  2057. /* ************************************************************************** */
  2058. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2059. ASSIGN_CHUNK_HDR (mng_assign_ihdr)
  2060. {
  2061. #ifdef MNG_SUPPORT_TRACE
  2062. MNG_TRACE (pData, MNG_FN_ASSIGN_IHDR, MNG_LC_START);
  2063. #endif
  2064. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IHDR)
  2065. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2066. ((mng_ihdrp)pChunkto)->iWidth = ((mng_ihdrp)pChunkfrom)->iWidth;
  2067. ((mng_ihdrp)pChunkto)->iHeight = ((mng_ihdrp)pChunkfrom)->iHeight;
  2068. ((mng_ihdrp)pChunkto)->iBitdepth = ((mng_ihdrp)pChunkfrom)->iBitdepth;
  2069. ((mng_ihdrp)pChunkto)->iColortype = ((mng_ihdrp)pChunkfrom)->iColortype;
  2070. ((mng_ihdrp)pChunkto)->iCompression = ((mng_ihdrp)pChunkfrom)->iCompression;
  2071. ((mng_ihdrp)pChunkto)->iFilter = ((mng_ihdrp)pChunkfrom)->iFilter;
  2072. ((mng_ihdrp)pChunkto)->iInterlace = ((mng_ihdrp)pChunkfrom)->iInterlace;
  2073. #ifdef MNG_SUPPORT_TRACE
  2074. MNG_TRACE (pData, MNG_FN_ASSIGN_IHDR, MNG_LC_END);
  2075. #endif
  2076. return MNG_NOERROR;
  2077. }
  2078. #endif
  2079. /* ************************************************************************** */
  2080. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2081. ASSIGN_CHUNK_HDR (mng_assign_plte)
  2082. {
  2083. mng_uint32 iX;
  2084. #ifdef MNG_SUPPORT_TRACE
  2085. MNG_TRACE (pData, MNG_FN_ASSIGN_PLTE, MNG_LC_START);
  2086. #endif
  2087. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_PLTE)
  2088. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2089. ((mng_pltep)pChunkto)->bEmpty = ((mng_pltep)pChunkfrom)->bEmpty;
  2090. ((mng_pltep)pChunkto)->iEntrycount = ((mng_pltep)pChunkfrom)->iEntrycount;
  2091. for (iX = 0; iX < ((mng_pltep)pChunkto)->iEntrycount; iX++)
  2092. ((mng_pltep)pChunkto)->aEntries [iX] = ((mng_pltep)pChunkfrom)->aEntries [iX];
  2093. #ifdef MNG_SUPPORT_TRACE
  2094. MNG_TRACE (pData, MNG_FN_ASSIGN_PLTE, MNG_LC_END);
  2095. #endif
  2096. return MNG_NOERROR;
  2097. }
  2098. #endif
  2099. /* ************************************************************************** */
  2100. ASSIGN_CHUNK_HDR (mng_assign_idat)
  2101. {
  2102. #ifdef MNG_SUPPORT_TRACE
  2103. MNG_TRACE (pData, MNG_FN_ASSIGN_IDAT, MNG_LC_START);
  2104. #endif
  2105. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IDAT)
  2106. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2107. ((mng_idatp)pChunkto)->bEmpty = ((mng_idatp)pChunkfrom)->bEmpty;
  2108. ((mng_idatp)pChunkto)->iDatasize = ((mng_idatp)pChunkfrom)->iDatasize;
  2109. if (((mng_idatp)pChunkto)->iDatasize)
  2110. {
  2111. MNG_ALLOC (pData, ((mng_idatp)pChunkto)->pData, ((mng_idatp)pChunkto)->iDatasize);
  2112. MNG_COPY (((mng_idatp)pChunkto)->pData, ((mng_idatp)pChunkfrom)->pData,
  2113. ((mng_idatp)pChunkto)->iDatasize);
  2114. }
  2115. #ifdef MNG_SUPPORT_TRACE
  2116. MNG_TRACE (pData, MNG_FN_ASSIGN_IDAT, MNG_LC_END);
  2117. #endif
  2118. return MNG_NOERROR;
  2119. }
  2120. /* ************************************************************************** */
  2121. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2122. ASSIGN_CHUNK_HDR (mng_assign_iend)
  2123. {
  2124. #ifdef MNG_SUPPORT_TRACE
  2125. MNG_TRACE (pData, MNG_FN_ASSIGN_IEND, MNG_LC_START);
  2126. #endif
  2127. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IEND)
  2128. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2129. #ifdef MNG_SUPPORT_TRACE
  2130. MNG_TRACE (pData, MNG_FN_ASSIGN_IEND, MNG_LC_END);
  2131. #endif
  2132. return MNG_NOERROR;
  2133. }
  2134. #endif
  2135. /* ************************************************************************** */
  2136. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2137. ASSIGN_CHUNK_HDR (mng_assign_trns)
  2138. {
  2139. mng_uint32 iX;
  2140. #ifdef MNG_SUPPORT_TRACE
  2141. MNG_TRACE (pData, MNG_FN_ASSIGN_TRNS, MNG_LC_START);
  2142. #endif
  2143. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_tRNS)
  2144. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2145. ((mng_trnsp)pChunkto)->bEmpty = ((mng_trnsp)pChunkfrom)->bEmpty;
  2146. ((mng_trnsp)pChunkto)->bGlobal = ((mng_trnsp)pChunkfrom)->bGlobal;
  2147. ((mng_trnsp)pChunkto)->iType = ((mng_trnsp)pChunkfrom)->iType;
  2148. ((mng_trnsp)pChunkto)->iCount = ((mng_trnsp)pChunkfrom)->iCount;
  2149. ((mng_trnsp)pChunkto)->iGray = ((mng_trnsp)pChunkfrom)->iGray;
  2150. ((mng_trnsp)pChunkto)->iRed = ((mng_trnsp)pChunkfrom)->iRed;
  2151. ((mng_trnsp)pChunkto)->iGreen = ((mng_trnsp)pChunkfrom)->iGreen;
  2152. ((mng_trnsp)pChunkto)->iBlue = ((mng_trnsp)pChunkfrom)->iBlue;
  2153. ((mng_trnsp)pChunkto)->iRawlen = ((mng_trnsp)pChunkfrom)->iRawlen;
  2154. for (iX = 0; iX < ((mng_trnsp)pChunkto)->iCount; iX++)
  2155. ((mng_trnsp)pChunkto)->aEntries [iX] = ((mng_trnsp)pChunkfrom)->aEntries [iX];
  2156. for (iX = 0; iX < ((mng_trnsp)pChunkto)->iRawlen; iX++)
  2157. ((mng_trnsp)pChunkto)->aRawdata [iX] = ((mng_trnsp)pChunkfrom)->aRawdata [iX];
  2158. #ifdef MNG_SUPPORT_TRACE
  2159. MNG_TRACE (pData, MNG_FN_ASSIGN_TRNS, MNG_LC_END);
  2160. #endif
  2161. return MNG_NOERROR;
  2162. }
  2163. #endif
  2164. /* ************************************************************************** */
  2165. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2166. #ifndef MNG_SKIPCHUNK_gAMA
  2167. ASSIGN_CHUNK_HDR (mng_assign_gama)
  2168. {
  2169. #ifdef MNG_SUPPORT_TRACE
  2170. MNG_TRACE (pData, MNG_FN_ASSIGN_GAMA, MNG_LC_START);
  2171. #endif
  2172. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_gAMA)
  2173. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2174. ((mng_gamap)pChunkto)->bEmpty = ((mng_gamap)pChunkfrom)->bEmpty;
  2175. ((mng_gamap)pChunkto)->iGamma = ((mng_gamap)pChunkfrom)->iGamma;
  2176. #ifdef MNG_SUPPORT_TRACE
  2177. MNG_TRACE (pData, MNG_FN_ASSIGN_GAMA, MNG_LC_END);
  2178. #endif
  2179. return MNG_NOERROR;
  2180. }
  2181. #endif
  2182. #endif
  2183. /* ************************************************************************** */
  2184. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2185. #ifndef MNG_SKIPCHUNK_cHRM
  2186. ASSIGN_CHUNK_HDR (mng_assign_chrm)
  2187. {
  2188. #ifdef MNG_SUPPORT_TRACE
  2189. MNG_TRACE (pData, MNG_FN_ASSIGN_CHRM, MNG_LC_START);
  2190. #endif
  2191. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_cHRM)
  2192. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2193. ((mng_chrmp)pChunkto)->bEmpty = ((mng_chrmp)pChunkfrom)->bEmpty;
  2194. ((mng_chrmp)pChunkto)->iWhitepointx = ((mng_chrmp)pChunkfrom)->iWhitepointx;
  2195. ((mng_chrmp)pChunkto)->iWhitepointy = ((mng_chrmp)pChunkfrom)->iWhitepointy;
  2196. ((mng_chrmp)pChunkto)->iRedx = ((mng_chrmp)pChunkfrom)->iRedx;
  2197. ((mng_chrmp)pChunkto)->iRedy = ((mng_chrmp)pChunkfrom)->iRedy;
  2198. ((mng_chrmp)pChunkto)->iGreenx = ((mng_chrmp)pChunkfrom)->iGreenx;
  2199. ((mng_chrmp)pChunkto)->iGreeny = ((mng_chrmp)pChunkfrom)->iGreeny;
  2200. ((mng_chrmp)pChunkto)->iBluex = ((mng_chrmp)pChunkfrom)->iBluex;
  2201. ((mng_chrmp)pChunkto)->iBluey = ((mng_chrmp)pChunkfrom)->iBluey;
  2202. #ifdef MNG_SUPPORT_TRACE
  2203. MNG_TRACE (pData, MNG_FN_ASSIGN_CHRM, MNG_LC_END);
  2204. #endif
  2205. return MNG_NOERROR;
  2206. }
  2207. #endif
  2208. #endif
  2209. /* ************************************************************************** */
  2210. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2211. #ifndef MNG_SKIPCHUNK_sRGB
  2212. ASSIGN_CHUNK_HDR (mng_assign_srgb)
  2213. {
  2214. #ifdef MNG_SUPPORT_TRACE
  2215. MNG_TRACE (pData, MNG_FN_ASSIGN_SRGB, MNG_LC_START);
  2216. #endif
  2217. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_sRGB)
  2218. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2219. ((mng_srgbp)pChunkto)->iRenderingintent = ((mng_srgbp)pChunkfrom)->iRenderingintent;
  2220. #ifdef MNG_SUPPORT_TRACE
  2221. MNG_TRACE (pData, MNG_FN_ASSIGN_SRGB, MNG_LC_END);
  2222. #endif
  2223. return MNG_NOERROR;
  2224. }
  2225. #endif
  2226. #endif
  2227. /* ************************************************************************** */
  2228. #ifndef MNG_SKIPCHUNK_iCCP
  2229. ASSIGN_CHUNK_HDR (mng_assign_iccp)
  2230. {
  2231. #ifdef MNG_SUPPORT_TRACE
  2232. MNG_TRACE (pData, MNG_FN_ASSIGN_ICCP, MNG_LC_START);
  2233. #endif
  2234. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_iCCP)
  2235. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2236. ((mng_iccpp)pChunkto)->bEmpty = ((mng_iccpp)pChunkfrom)->bEmpty;
  2237. ((mng_iccpp)pChunkto)->iNamesize = ((mng_iccpp)pChunkfrom)->iNamesize;
  2238. ((mng_iccpp)pChunkto)->iCompression = ((mng_iccpp)pChunkfrom)->iCompression;
  2239. ((mng_iccpp)pChunkto)->iProfilesize = ((mng_iccpp)pChunkfrom)->iProfilesize;
  2240. if (((mng_iccpp)pChunkto)->iNamesize)
  2241. {
  2242. MNG_ALLOC (pData, ((mng_iccpp)pChunkto)->zName, ((mng_iccpp)pChunkto)->iNamesize);
  2243. MNG_COPY (((mng_iccpp)pChunkto)->zName, ((mng_iccpp)pChunkfrom)->zName,
  2244. ((mng_iccpp)pChunkto)->iNamesize);
  2245. }
  2246. if (((mng_iccpp)pChunkto)->iProfilesize)
  2247. {
  2248. MNG_ALLOC (pData, ((mng_iccpp)pChunkto)->pProfile, ((mng_iccpp)pChunkto)->iProfilesize);
  2249. MNG_COPY (((mng_iccpp)pChunkto)->pProfile, ((mng_iccpp)pChunkfrom)->pProfile,
  2250. ((mng_iccpp)pChunkto)->iProfilesize);
  2251. }
  2252. #ifdef MNG_SUPPORT_TRACE
  2253. MNG_TRACE (pData, MNG_FN_ASSIGN_ICCP, MNG_LC_END);
  2254. #endif
  2255. return MNG_NOERROR;
  2256. }
  2257. #endif
  2258. /* ************************************************************************** */
  2259. #ifndef MNG_SKIPCHUNK_tEXt
  2260. ASSIGN_CHUNK_HDR (mng_assign_text)
  2261. {
  2262. #ifdef MNG_SUPPORT_TRACE
  2263. MNG_TRACE (pData, MNG_FN_ASSIGN_TEXT, MNG_LC_START);
  2264. #endif
  2265. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_tEXt)
  2266. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2267. ((mng_textp)pChunkto)->iKeywordsize = ((mng_textp)pChunkfrom)->iKeywordsize;
  2268. ((mng_textp)pChunkto)->iTextsize = ((mng_textp)pChunkfrom)->iTextsize;
  2269. if (((mng_textp)pChunkto)->iKeywordsize)
  2270. {
  2271. MNG_ALLOC (pData, ((mng_itxtp)pChunkto)->zKeyword, ((mng_textp)pChunkto)->iKeywordsize);
  2272. MNG_COPY (((mng_itxtp)pChunkto)->zKeyword, ((mng_textp)pChunkfrom)->zKeyword,
  2273. ((mng_itxtp)pChunkto)->iKeywordsize);
  2274. }
  2275. if (((mng_textp)pChunkto)->iTextsize)
  2276. {
  2277. MNG_ALLOC (pData, ((mng_textp)pChunkto)->zText, ((mng_textp)pChunkto)->iTextsize);
  2278. MNG_COPY (((mng_textp)pChunkto)->zText, ((mng_textp)pChunkfrom)->zText,
  2279. ((mng_textp)pChunkto)->iTextsize);
  2280. }
  2281. #ifdef MNG_SUPPORT_TRACE
  2282. MNG_TRACE (pData, MNG_FN_ASSIGN_TEXT, MNG_LC_END);
  2283. #endif
  2284. return MNG_NOERROR;
  2285. }
  2286. #endif
  2287. /* ************************************************************************** */
  2288. #ifndef MNG_SKIPCHUNK_zTXt
  2289. ASSIGN_CHUNK_HDR (mng_assign_ztxt)
  2290. {
  2291. #ifdef MNG_SUPPORT_TRACE
  2292. MNG_TRACE (pData, MNG_FN_ASSIGN_ZTXT, MNG_LC_START);
  2293. #endif
  2294. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_zTXt)
  2295. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2296. ((mng_ztxtp)pChunkto)->iKeywordsize = ((mng_ztxtp)pChunkfrom)->iKeywordsize;
  2297. ((mng_ztxtp)pChunkto)->iCompression = ((mng_ztxtp)pChunkfrom)->iCompression;
  2298. ((mng_ztxtp)pChunkto)->iTextsize = ((mng_ztxtp)pChunkfrom)->iTextsize;
  2299. if (((mng_ztxtp)pChunkto)->iKeywordsize)
  2300. {
  2301. MNG_ALLOC (pData, ((mng_ztxtp)pChunkto)->zKeyword, ((mng_ztxtp)pChunkto)->iKeywordsize);
  2302. MNG_COPY (((mng_ztxtp)pChunkto)->zKeyword, ((mng_ztxtp)pChunkfrom)->zKeyword,
  2303. ((mng_ztxtp)pChunkto)->iKeywordsize);
  2304. }
  2305. if (((mng_ztxtp)pChunkto)->iTextsize)
  2306. {
  2307. MNG_ALLOC (pData, ((mng_ztxtp)pChunkto)->zText, ((mng_ztxtp)pChunkto)->iTextsize);
  2308. MNG_COPY (((mng_ztxtp)pChunkto)->zText, ((mng_ztxtp)pChunkfrom)->zText,
  2309. ((mng_ztxtp)pChunkto)->iTextsize);
  2310. }
  2311. #ifdef MNG_SUPPORT_TRACE
  2312. MNG_TRACE (pData, MNG_FN_ASSIGN_ZTXT, MNG_LC_END);
  2313. #endif
  2314. return MNG_NOERROR;
  2315. }
  2316. #endif
  2317. /* ************************************************************************** */
  2318. #ifndef MNG_SKIPCHUNK_iTXt
  2319. ASSIGN_CHUNK_HDR (mng_assign_itxt)
  2320. {
  2321. #ifdef MNG_SUPPORT_TRACE
  2322. MNG_TRACE (pData, MNG_FN_ASSIGN_ITXT, MNG_LC_START);
  2323. #endif
  2324. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_iTXt)
  2325. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2326. ((mng_itxtp)pChunkto)->iKeywordsize = ((mng_itxtp)pChunkfrom)->iKeywordsize;
  2327. ((mng_itxtp)pChunkto)->iCompressionflag = ((mng_itxtp)pChunkfrom)->iCompressionflag;
  2328. ((mng_itxtp)pChunkto)->iCompressionmethod = ((mng_itxtp)pChunkfrom)->iCompressionmethod;
  2329. ((mng_itxtp)pChunkto)->iLanguagesize = ((mng_itxtp)pChunkfrom)->iLanguagesize;
  2330. ((mng_itxtp)pChunkto)->iTranslationsize = ((mng_itxtp)pChunkfrom)->iTranslationsize;
  2331. ((mng_itxtp)pChunkto)->iTextsize = ((mng_itxtp)pChunkfrom)->iTextsize;
  2332. if (((mng_itxtp)pChunkto)->iKeywordsize)
  2333. {
  2334. MNG_ALLOC (pData, ((mng_itxtp)pChunkto)->zKeyword, ((mng_itxtp)pChunkto)->iKeywordsize);
  2335. MNG_COPY (((mng_itxtp)pChunkto)->zKeyword, ((mng_itxtp)pChunkfrom)->zKeyword,
  2336. ((mng_itxtp)pChunkto)->iKeywordsize);
  2337. }
  2338. if (((mng_itxtp)pChunkto)->iTextsize)
  2339. {
  2340. MNG_ALLOC (pData, ((mng_itxtp)pChunkto)->zLanguage, ((mng_itxtp)pChunkto)->iLanguagesize);
  2341. MNG_COPY (((mng_itxtp)pChunkto)->zLanguage, ((mng_itxtp)pChunkfrom)->zLanguage,
  2342. ((mng_itxtp)pChunkto)->iLanguagesize);
  2343. }
  2344. if (((mng_itxtp)pChunkto)->iTextsize)
  2345. {
  2346. MNG_ALLOC (pData, ((mng_itxtp)pChunkto)->zTranslation, ((mng_itxtp)pChunkto)->iTranslationsize);
  2347. MNG_COPY (((mng_itxtp)pChunkto)->zTranslation, ((mng_itxtp)pChunkfrom)->zTranslation,
  2348. ((mng_itxtp)pChunkto)->iTranslationsize);
  2349. }
  2350. if (((mng_itxtp)pChunkto)->iTextsize)
  2351. {
  2352. MNG_ALLOC (pData, ((mng_itxtp)pChunkto)->zText, ((mng_itxtp)pChunkto)->iTextsize);
  2353. MNG_COPY (((mng_itxtp)pChunkto)->zText, ((mng_itxtp)pChunkfrom)->zText,
  2354. ((mng_itxtp)pChunkto)->iTextsize);
  2355. }
  2356. #ifdef MNG_SUPPORT_TRACE
  2357. MNG_TRACE (pData, MNG_FN_ASSIGN_ITXT, MNG_LC_END);
  2358. #endif
  2359. return MNG_NOERROR;
  2360. }
  2361. #endif
  2362. /* ************************************************************************** */
  2363. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2364. #ifndef MNG_SKIPCHUNK_bKGD
  2365. ASSIGN_CHUNK_HDR (mng_assign_bkgd)
  2366. {
  2367. #ifdef MNG_SUPPORT_TRACE
  2368. MNG_TRACE (pData, MNG_FN_ASSIGN_BKGD, MNG_LC_START);
  2369. #endif
  2370. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_bKGD)
  2371. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2372. ((mng_bkgdp)pChunkto)->bEmpty = ((mng_bkgdp)pChunkfrom)->bEmpty;
  2373. ((mng_bkgdp)pChunkto)->iType = ((mng_bkgdp)pChunkfrom)->iType;
  2374. ((mng_bkgdp)pChunkto)->iIndex = ((mng_bkgdp)pChunkfrom)->iIndex;
  2375. ((mng_bkgdp)pChunkto)->iGray = ((mng_bkgdp)pChunkfrom)->iGray;
  2376. ((mng_bkgdp)pChunkto)->iRed = ((mng_bkgdp)pChunkfrom)->iRed;
  2377. ((mng_bkgdp)pChunkto)->iGreen = ((mng_bkgdp)pChunkfrom)->iGreen;
  2378. ((mng_bkgdp)pChunkto)->iBlue = ((mng_bkgdp)pChunkfrom)->iBlue;
  2379. #ifdef MNG_SUPPORT_TRACE
  2380. MNG_TRACE (pData, MNG_FN_ASSIGN_BKGD, MNG_LC_END);
  2381. #endif
  2382. return MNG_NOERROR;
  2383. }
  2384. #endif
  2385. #endif
  2386. /* ************************************************************************** */
  2387. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2388. #ifndef MNG_SKIPCHUNK_pHYs
  2389. ASSIGN_CHUNK_HDR (mng_assign_phys)
  2390. {
  2391. #ifdef MNG_SUPPORT_TRACE
  2392. MNG_TRACE (pData, MNG_FN_ASSIGN_PHYS, MNG_LC_START);
  2393. #endif
  2394. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_pHYs)
  2395. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2396. ((mng_physp)pChunkto)->bEmpty = ((mng_physp)pChunkfrom)->bEmpty;
  2397. ((mng_physp)pChunkto)->iSizex = ((mng_physp)pChunkfrom)->iSizex;
  2398. ((mng_physp)pChunkto)->iSizey = ((mng_physp)pChunkfrom)->iSizey;
  2399. ((mng_physp)pChunkto)->iUnit = ((mng_physp)pChunkfrom)->iUnit;
  2400. #ifdef MNG_SUPPORT_TRACE
  2401. MNG_TRACE (pData, MNG_FN_ASSIGN_PHYS, MNG_LC_END);
  2402. #endif
  2403. return MNG_NOERROR;
  2404. }
  2405. #endif
  2406. #endif
  2407. /* ************************************************************************** */
  2408. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2409. #ifndef MNG_SKIPCHUNK_sBIT
  2410. ASSIGN_CHUNK_HDR (mng_assign_sbit)
  2411. {
  2412. #ifdef MNG_SUPPORT_TRACE
  2413. MNG_TRACE (pData, MNG_FN_ASSIGN_SBIT, MNG_LC_START);
  2414. #endif
  2415. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_sBIT)
  2416. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2417. ((mng_sbitp)pChunkto)->bEmpty = ((mng_sbitp)pChunkfrom)->bEmpty;
  2418. ((mng_sbitp)pChunkto)->iType = ((mng_sbitp)pChunkfrom)->iType;
  2419. ((mng_sbitp)pChunkto)->aBits [0] = ((mng_sbitp)pChunkfrom)->aBits [0];
  2420. ((mng_sbitp)pChunkto)->aBits [1] = ((mng_sbitp)pChunkfrom)->aBits [1];
  2421. ((mng_sbitp)pChunkto)->aBits [2] = ((mng_sbitp)pChunkfrom)->aBits [2];
  2422. ((mng_sbitp)pChunkto)->aBits [3] = ((mng_sbitp)pChunkfrom)->aBits [3];
  2423. #ifdef MNG_SUPPORT_TRACE
  2424. MNG_TRACE (pData, MNG_FN_ASSIGN_SBIT, MNG_LC_END);
  2425. #endif
  2426. return MNG_NOERROR;
  2427. }
  2428. #endif
  2429. #endif
  2430. /* ************************************************************************** */
  2431. #ifndef MNG_SKIPCHUNK_sPLT
  2432. ASSIGN_CHUNK_HDR (mng_assign_splt)
  2433. {
  2434. #ifdef MNG_SUPPORT_TRACE
  2435. MNG_TRACE (pData, MNG_FN_ASSIGN_SPLT, MNG_LC_START);
  2436. #endif
  2437. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_sPLT)
  2438. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2439. ((mng_spltp)pChunkto)->bEmpty = ((mng_spltp)pChunkfrom)->bEmpty;
  2440. ((mng_spltp)pChunkto)->iNamesize = ((mng_spltp)pChunkfrom)->iNamesize;
  2441. ((mng_spltp)pChunkto)->iSampledepth = ((mng_spltp)pChunkfrom)->iSampledepth;
  2442. ((mng_spltp)pChunkto)->iEntrycount = ((mng_spltp)pChunkfrom)->iEntrycount;
  2443. ((mng_spltp)pChunkto)->pEntries = ((mng_spltp)pChunkfrom)->pEntries;
  2444. if (((mng_spltp)pChunkto)->iNamesize)
  2445. {
  2446. MNG_ALLOC (pData, ((mng_spltp)pChunkto)->zName, ((mng_spltp)pChunkto)->iNamesize);
  2447. MNG_COPY (((mng_spltp)pChunkto)->zName, ((mng_spltp)pChunkfrom)->zName,
  2448. ((mng_spltp)pChunkto)->iNamesize);
  2449. }
  2450. if (((mng_spltp)pChunkto)->iEntrycount)
  2451. {
  2452. mng_uint32 iLen = ((mng_spltp)pChunkto)->iEntrycount *
  2453. (((mng_spltp)pChunkto)->iSampledepth * 3 + sizeof (mng_uint16));
  2454. MNG_ALLOC (pData, ((mng_spltp)pChunkto)->pEntries, iLen);
  2455. MNG_COPY (((mng_spltp)pChunkto)->pEntries, ((mng_spltp)pChunkfrom)->pEntries, iLen);
  2456. }
  2457. #ifdef MNG_SUPPORT_TRACE
  2458. MNG_TRACE (pData, MNG_FN_ASSIGN_SPLT, MNG_LC_END);
  2459. #endif
  2460. return MNG_NOERROR;
  2461. }
  2462. #endif
  2463. /* ************************************************************************** */
  2464. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2465. #ifndef MNG_SKIPCHUNK_hIST
  2466. ASSIGN_CHUNK_HDR (mng_assign_hist)
  2467. {
  2468. mng_uint32 iX;
  2469. #ifdef MNG_SUPPORT_TRACE
  2470. MNG_TRACE (pData, MNG_FN_ASSIGN_HIST, MNG_LC_START);
  2471. #endif
  2472. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_hIST)
  2473. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2474. ((mng_histp)pChunkto)->iEntrycount = ((mng_histp)pChunkfrom)->iEntrycount;
  2475. for (iX = 0; iX < ((mng_histp)pChunkto)->iEntrycount; iX++)
  2476. ((mng_histp)pChunkto)->aEntries [iX] = ((mng_histp)pChunkfrom)->aEntries [iX];
  2477. #ifdef MNG_SUPPORT_TRACE
  2478. MNG_TRACE (pData, MNG_FN_ASSIGN_HIST, MNG_LC_END);
  2479. #endif
  2480. return MNG_NOERROR;
  2481. }
  2482. #endif
  2483. #endif
  2484. /* ************************************************************************** */
  2485. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2486. #ifndef MNG_SKIPCHUNK_tIME
  2487. ASSIGN_CHUNK_HDR (mng_assign_time)
  2488. {
  2489. #ifdef MNG_SUPPORT_TRACE
  2490. MNG_TRACE (pData, MNG_FN_ASSIGN_TIME, MNG_LC_START);
  2491. #endif
  2492. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_tIME)
  2493. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2494. ((mng_timep)pChunkto)->iYear = ((mng_timep)pChunkfrom)->iYear;
  2495. ((mng_timep)pChunkto)->iMonth = ((mng_timep)pChunkfrom)->iMonth;
  2496. ((mng_timep)pChunkto)->iDay = ((mng_timep)pChunkfrom)->iDay;
  2497. ((mng_timep)pChunkto)->iHour = ((mng_timep)pChunkfrom)->iHour;
  2498. ((mng_timep)pChunkto)->iMinute = ((mng_timep)pChunkfrom)->iMinute;
  2499. ((mng_timep)pChunkto)->iSecond = ((mng_timep)pChunkfrom)->iSecond;
  2500. #ifdef MNG_SUPPORT_TRACE
  2501. MNG_TRACE (pData, MNG_FN_ASSIGN_TIME, MNG_LC_END);
  2502. #endif
  2503. return MNG_NOERROR;
  2504. }
  2505. #endif
  2506. #endif
  2507. /* ************************************************************************** */
  2508. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2509. ASSIGN_CHUNK_HDR (mng_assign_mhdr)
  2510. {
  2511. #ifdef MNG_SUPPORT_TRACE
  2512. MNG_TRACE (pData, MNG_FN_ASSIGN_MHDR, MNG_LC_START);
  2513. #endif
  2514. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_MHDR)
  2515. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2516. ((mng_mhdrp)pChunkto)->iWidth = ((mng_mhdrp)pChunkfrom)->iWidth;
  2517. ((mng_mhdrp)pChunkto)->iHeight = ((mng_mhdrp)pChunkfrom)->iHeight;
  2518. ((mng_mhdrp)pChunkto)->iTicks = ((mng_mhdrp)pChunkfrom)->iTicks;
  2519. ((mng_mhdrp)pChunkto)->iLayercount = ((mng_mhdrp)pChunkfrom)->iLayercount;
  2520. ((mng_mhdrp)pChunkto)->iFramecount = ((mng_mhdrp)pChunkfrom)->iFramecount;
  2521. ((mng_mhdrp)pChunkto)->iPlaytime = ((mng_mhdrp)pChunkfrom)->iPlaytime;
  2522. ((mng_mhdrp)pChunkto)->iSimplicity = ((mng_mhdrp)pChunkfrom)->iSimplicity;
  2523. #ifdef MNG_SUPPORT_TRACE
  2524. MNG_TRACE (pData, MNG_FN_ASSIGN_MHDR, MNG_LC_END);
  2525. #endif
  2526. return MNG_NOERROR;
  2527. }
  2528. #endif
  2529. /* ************************************************************************** */
  2530. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2531. ASSIGN_CHUNK_HDR (mng_assign_mend)
  2532. {
  2533. #ifdef MNG_SUPPORT_TRACE
  2534. MNG_TRACE (pData, MNG_FN_ASSIGN_MEND, MNG_LC_START);
  2535. #endif
  2536. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_MEND)
  2537. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2538. #ifdef MNG_SUPPORT_TRACE
  2539. MNG_TRACE (pData, MNG_FN_ASSIGN_MEND, MNG_LC_END);
  2540. #endif
  2541. return MNG_NOERROR;
  2542. }
  2543. #endif
  2544. /* ************************************************************************** */
  2545. #ifndef MNG_SKIPCHUNK_LOOP
  2546. ASSIGN_CHUNK_HDR (mng_assign_loop)
  2547. {
  2548. #ifdef MNG_SUPPORT_TRACE
  2549. MNG_TRACE (pData, MNG_FN_ASSIGN_LOOP, MNG_LC_START);
  2550. #endif
  2551. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_LOOP)
  2552. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2553. ((mng_loopp)pChunkto)->iLevel = ((mng_loopp)pChunkfrom)->iLevel;
  2554. ((mng_loopp)pChunkto)->iRepeat = ((mng_loopp)pChunkfrom)->iRepeat;
  2555. ((mng_loopp)pChunkto)->iTermination = ((mng_loopp)pChunkfrom)->iTermination;
  2556. ((mng_loopp)pChunkto)->iItermin = ((mng_loopp)pChunkfrom)->iItermin;
  2557. ((mng_loopp)pChunkto)->iItermax = ((mng_loopp)pChunkfrom)->iItermax;
  2558. ((mng_loopp)pChunkto)->iCount = ((mng_loopp)pChunkfrom)->iCount;
  2559. #ifndef MNG_NO_LOOP_SIGNALS_SUPPORTED
  2560. if (((mng_loopp)pChunkto)->iCount)
  2561. {
  2562. mng_uint32 iLen = ((mng_loopp)pChunkto)->iCount * sizeof (mng_uint32);
  2563. MNG_ALLOC (pData, ((mng_loopp)pChunkto)->pSignals, iLen);
  2564. MNG_COPY (((mng_loopp)pChunkto)->pSignals, ((mng_loopp)pChunkfrom)->pSignals, iLen);
  2565. }
  2566. #endif
  2567. #ifdef MNG_SUPPORT_TRACE
  2568. MNG_TRACE (pData, MNG_FN_ASSIGN_LOOP, MNG_LC_END);
  2569. #endif
  2570. return MNG_NOERROR;
  2571. }
  2572. /* ************************************************************************** */
  2573. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2574. ASSIGN_CHUNK_HDR (mng_assign_endl)
  2575. {
  2576. #ifdef MNG_SUPPORT_TRACE
  2577. MNG_TRACE (pData, MNG_FN_ASSIGN_ENDL, MNG_LC_START);
  2578. #endif
  2579. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_ENDL)
  2580. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2581. ((mng_endlp)pChunkto)->iLevel = ((mng_endlp)pChunkfrom)->iLevel;
  2582. #ifdef MNG_SUPPORT_TRACE
  2583. MNG_TRACE (pData, MNG_FN_ASSIGN_ENDL, MNG_LC_END);
  2584. #endif
  2585. return MNG_NOERROR;
  2586. }
  2587. #endif
  2588. #endif
  2589. /* ************************************************************************** */
  2590. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2591. #ifndef MNG_SKIPCHUNK_DEFI
  2592. ASSIGN_CHUNK_HDR (mng_assign_defi)
  2593. {
  2594. #ifdef MNG_SUPPORT_TRACE
  2595. MNG_TRACE (pData, MNG_FN_ASSIGN_DEFI, MNG_LC_START);
  2596. #endif
  2597. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_DEFI)
  2598. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2599. ((mng_defip)pChunkto)->iObjectid = ((mng_defip)pChunkfrom)->iObjectid;
  2600. ((mng_defip)pChunkto)->bHasdonotshow = ((mng_defip)pChunkfrom)->bHasdonotshow;
  2601. ((mng_defip)pChunkto)->iDonotshow = ((mng_defip)pChunkfrom)->iDonotshow;
  2602. ((mng_defip)pChunkto)->bHasconcrete = ((mng_defip)pChunkfrom)->bHasconcrete;
  2603. ((mng_defip)pChunkto)->iConcrete = ((mng_defip)pChunkfrom)->iConcrete;
  2604. ((mng_defip)pChunkto)->bHasloca = ((mng_defip)pChunkfrom)->bHasloca;
  2605. ((mng_defip)pChunkto)->iXlocation = ((mng_defip)pChunkfrom)->iXlocation;
  2606. ((mng_defip)pChunkto)->iYlocation = ((mng_defip)pChunkfrom)->iYlocation;
  2607. ((mng_defip)pChunkto)->bHasclip = ((mng_defip)pChunkfrom)->bHasclip;
  2608. ((mng_defip)pChunkto)->iLeftcb = ((mng_defip)pChunkfrom)->iLeftcb;
  2609. ((mng_defip)pChunkto)->iRightcb = ((mng_defip)pChunkfrom)->iRightcb;
  2610. ((mng_defip)pChunkto)->iTopcb = ((mng_defip)pChunkfrom)->iTopcb;
  2611. ((mng_defip)pChunkto)->iBottomcb = ((mng_defip)pChunkfrom)->iBottomcb;
  2612. #ifdef MNG_SUPPORT_TRACE
  2613. MNG_TRACE (pData, MNG_FN_ASSIGN_DEFI, MNG_LC_END);
  2614. #endif
  2615. return MNG_NOERROR;
  2616. }
  2617. #endif
  2618. #endif
  2619. /* ************************************************************************** */
  2620. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2621. #ifndef MNG_SKIPCHUNK_BASI
  2622. ASSIGN_CHUNK_HDR (mng_assign_basi)
  2623. {
  2624. #ifdef MNG_SUPPORT_TRACE
  2625. MNG_TRACE (pData, MNG_FN_ASSIGN_BASI, MNG_LC_START);
  2626. #endif
  2627. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_BASI)
  2628. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2629. ((mng_basip)pChunkto)->iWidth = ((mng_basip)pChunkfrom)->iWidth;
  2630. ((mng_basip)pChunkto)->iHeight = ((mng_basip)pChunkfrom)->iHeight;
  2631. ((mng_basip)pChunkto)->iBitdepth = ((mng_basip)pChunkfrom)->iBitdepth;
  2632. ((mng_basip)pChunkto)->iColortype = ((mng_basip)pChunkfrom)->iColortype;
  2633. ((mng_basip)pChunkto)->iCompression = ((mng_basip)pChunkfrom)->iCompression;
  2634. ((mng_basip)pChunkto)->iFilter = ((mng_basip)pChunkfrom)->iFilter;
  2635. ((mng_basip)pChunkto)->iInterlace = ((mng_basip)pChunkfrom)->iInterlace;
  2636. ((mng_basip)pChunkto)->iRed = ((mng_basip)pChunkfrom)->iRed;
  2637. ((mng_basip)pChunkto)->iGreen = ((mng_basip)pChunkfrom)->iGreen;
  2638. ((mng_basip)pChunkto)->iBlue = ((mng_basip)pChunkfrom)->iBlue;
  2639. ((mng_basip)pChunkto)->iAlpha = ((mng_basip)pChunkfrom)->iAlpha;
  2640. ((mng_basip)pChunkto)->iViewable = ((mng_basip)pChunkfrom)->iViewable;
  2641. #ifdef MNG_SUPPORT_TRACE
  2642. MNG_TRACE (pData, MNG_FN_ASSIGN_BASI, MNG_LC_END);
  2643. #endif
  2644. return MNG_NOERROR;
  2645. }
  2646. #endif
  2647. #endif
  2648. /* ************************************************************************** */
  2649. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2650. #ifndef MNG_SKIPCHUNK_CLON
  2651. ASSIGN_CHUNK_HDR (mng_assign_clon)
  2652. {
  2653. #ifdef MNG_SUPPORT_TRACE
  2654. MNG_TRACE (pData, MNG_FN_ASSIGN_CLON, MNG_LC_START);
  2655. #endif
  2656. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_CLON)
  2657. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2658. ((mng_clonp)pChunkto)->iSourceid = ((mng_clonp)pChunkfrom)->iSourceid;
  2659. ((mng_clonp)pChunkto)->iCloneid = ((mng_clonp)pChunkfrom)->iCloneid;
  2660. ((mng_clonp)pChunkto)->iClonetype = ((mng_clonp)pChunkfrom)->iClonetype;
  2661. #ifdef MNG_OPTIMIZE_CHUNKREADER
  2662. ((mng_clonp)pChunkto)->bHasdonotshow = ((mng_clonp)pChunkfrom)->bHasdonotshow;
  2663. #endif
  2664. ((mng_clonp)pChunkto)->iDonotshow = ((mng_clonp)pChunkfrom)->iDonotshow;
  2665. ((mng_clonp)pChunkto)->iConcrete = ((mng_clonp)pChunkfrom)->iConcrete;
  2666. ((mng_clonp)pChunkto)->bHasloca = ((mng_clonp)pChunkfrom)->bHasloca;
  2667. ((mng_clonp)pChunkto)->iLocationtype = ((mng_clonp)pChunkfrom)->iLocationtype;
  2668. ((mng_clonp)pChunkto)->iLocationx = ((mng_clonp)pChunkfrom)->iLocationx;
  2669. ((mng_clonp)pChunkto)->iLocationy = ((mng_clonp)pChunkfrom)->iLocationy;
  2670. #ifdef MNG_SUPPORT_TRACE
  2671. MNG_TRACE (pData, MNG_FN_ASSIGN_CLON, MNG_LC_END);
  2672. #endif
  2673. return MNG_NOERROR;
  2674. }
  2675. #endif
  2676. #endif
  2677. /* ************************************************************************** */
  2678. #ifndef MNG_SKIPCHUNK_PAST
  2679. ASSIGN_CHUNK_HDR (mng_assign_past)
  2680. {
  2681. #ifdef MNG_SUPPORT_TRACE
  2682. MNG_TRACE (pData, MNG_FN_ASSIGN_PAST, MNG_LC_START);
  2683. #endif
  2684. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_PAST)
  2685. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2686. ((mng_pastp)pChunkto)->iDestid = ((mng_pastp)pChunkfrom)->iDestid;
  2687. ((mng_pastp)pChunkto)->iTargettype = ((mng_pastp)pChunkfrom)->iTargettype;
  2688. ((mng_pastp)pChunkto)->iTargetx = ((mng_pastp)pChunkfrom)->iTargetx;
  2689. ((mng_pastp)pChunkto)->iTargety = ((mng_pastp)pChunkfrom)->iTargety;
  2690. ((mng_pastp)pChunkto)->iCount = ((mng_pastp)pChunkfrom)->iCount;
  2691. if (((mng_pastp)pChunkto)->iCount)
  2692. {
  2693. mng_uint32 iLen = ((mng_pastp)pChunkto)->iCount * sizeof (mng_past_source);
  2694. MNG_ALLOC (pData, ((mng_pastp)pChunkto)->pSources, iLen);
  2695. MNG_COPY (((mng_pastp)pChunkto)->pSources, ((mng_pastp)pChunkfrom)->pSources, iLen);
  2696. }
  2697. #ifdef MNG_SUPPORT_TRACE
  2698. MNG_TRACE (pData, MNG_FN_ASSIGN_PAST, MNG_LC_END);
  2699. #endif
  2700. return MNG_NOERROR;
  2701. }
  2702. #endif
  2703. /* ************************************************************************** */
  2704. #ifndef MNG_SKIPCHUNK_DISC
  2705. ASSIGN_CHUNK_HDR (mng_assign_disc)
  2706. {
  2707. #ifdef MNG_SUPPORT_TRACE
  2708. MNG_TRACE (pData, MNG_FN_ASSIGN_DISC, MNG_LC_START);
  2709. #endif
  2710. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_DISC)
  2711. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2712. ((mng_discp)pChunkto)->iCount = ((mng_discp)pChunkfrom)->iCount;
  2713. if (((mng_discp)pChunkto)->iCount)
  2714. {
  2715. mng_uint32 iLen = ((mng_discp)pChunkto)->iCount * sizeof (mng_uint16);
  2716. MNG_ALLOC (pData, ((mng_discp)pChunkto)->pObjectids, iLen);
  2717. MNG_COPY (((mng_discp)pChunkto)->pObjectids, ((mng_discp)pChunkfrom)->pObjectids, iLen);
  2718. }
  2719. #ifdef MNG_SUPPORT_TRACE
  2720. MNG_TRACE (pData, MNG_FN_ASSIGN_DISC, MNG_LC_END);
  2721. #endif
  2722. return MNG_NOERROR;
  2723. }
  2724. #endif
  2725. /* ************************************************************************** */
  2726. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2727. #ifndef MNG_SKIPCHUNK_BACK
  2728. ASSIGN_CHUNK_HDR (mng_assign_back)
  2729. {
  2730. #ifdef MNG_SUPPORT_TRACE
  2731. MNG_TRACE (pData, MNG_FN_ASSIGN_BACK, MNG_LC_START);
  2732. #endif
  2733. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_BACK)
  2734. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2735. ((mng_backp)pChunkto)->iRed = ((mng_backp)pChunkfrom)->iRed;
  2736. ((mng_backp)pChunkto)->iGreen = ((mng_backp)pChunkfrom)->iGreen;
  2737. ((mng_backp)pChunkto)->iBlue = ((mng_backp)pChunkfrom)->iBlue;
  2738. ((mng_backp)pChunkto)->iMandatory = ((mng_backp)pChunkfrom)->iMandatory;
  2739. ((mng_backp)pChunkto)->iImageid = ((mng_backp)pChunkfrom)->iImageid;
  2740. ((mng_backp)pChunkto)->iTile = ((mng_backp)pChunkfrom)->iTile;
  2741. #ifdef MNG_SUPPORT_TRACE
  2742. MNG_TRACE (pData, MNG_FN_ASSIGN_BACK, MNG_LC_END);
  2743. #endif
  2744. return MNG_NOERROR;
  2745. }
  2746. #endif
  2747. #endif
  2748. /* ************************************************************************** */
  2749. #ifndef MNG_SKIPCHUNK_FRAM
  2750. ASSIGN_CHUNK_HDR (mng_assign_fram)
  2751. {
  2752. #ifdef MNG_SUPPORT_TRACE
  2753. MNG_TRACE (pData, MNG_FN_ASSIGN_FRAM, MNG_LC_START);
  2754. #endif
  2755. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_FRAM)
  2756. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2757. ((mng_framp)pChunkto)->bEmpty = ((mng_framp)pChunkfrom)->bEmpty;
  2758. ((mng_framp)pChunkto)->iMode = ((mng_framp)pChunkfrom)->iMode;
  2759. ((mng_framp)pChunkto)->iNamesize = ((mng_framp)pChunkfrom)->iNamesize;
  2760. ((mng_framp)pChunkto)->iChangedelay = ((mng_framp)pChunkfrom)->iChangedelay;
  2761. ((mng_framp)pChunkto)->iChangetimeout = ((mng_framp)pChunkfrom)->iChangetimeout;
  2762. ((mng_framp)pChunkto)->iChangeclipping = ((mng_framp)pChunkfrom)->iChangeclipping;
  2763. ((mng_framp)pChunkto)->iChangesyncid = ((mng_framp)pChunkfrom)->iChangesyncid;
  2764. ((mng_framp)pChunkto)->iDelay = ((mng_framp)pChunkfrom)->iDelay;
  2765. ((mng_framp)pChunkto)->iTimeout = ((mng_framp)pChunkfrom)->iTimeout;
  2766. ((mng_framp)pChunkto)->iBoundarytype = ((mng_framp)pChunkfrom)->iBoundarytype;
  2767. ((mng_framp)pChunkto)->iBoundaryl = ((mng_framp)pChunkfrom)->iBoundaryl;
  2768. ((mng_framp)pChunkto)->iBoundaryr = ((mng_framp)pChunkfrom)->iBoundaryr;
  2769. ((mng_framp)pChunkto)->iBoundaryt = ((mng_framp)pChunkfrom)->iBoundaryt;
  2770. ((mng_framp)pChunkto)->iBoundaryb = ((mng_framp)pChunkfrom)->iBoundaryb;
  2771. ((mng_framp)pChunkto)->iCount = ((mng_framp)pChunkfrom)->iCount;
  2772. if (((mng_framp)pChunkto)->iNamesize)
  2773. {
  2774. MNG_ALLOC (pData, ((mng_framp)pChunkto)->zName, ((mng_framp)pChunkto)->iNamesize);
  2775. MNG_COPY (((mng_framp)pChunkto)->zName, ((mng_framp)pChunkfrom)->zName,
  2776. ((mng_framp)pChunkto)->iNamesize);
  2777. }
  2778. if (((mng_framp)pChunkto)->iCount)
  2779. {
  2780. mng_uint32 iLen = ((mng_framp)pChunkto)->iCount * sizeof (mng_uint32);
  2781. MNG_ALLOC (pData, ((mng_framp)pChunkto)->pSyncids, iLen);
  2782. MNG_COPY (((mng_framp)pChunkto)->pSyncids, ((mng_framp)pChunkfrom)->pSyncids, iLen);
  2783. }
  2784. #ifdef MNG_SUPPORT_TRACE
  2785. MNG_TRACE (pData, MNG_FN_ASSIGN_FRAM, MNG_LC_END);
  2786. #endif
  2787. return MNG_NOERROR;
  2788. }
  2789. #endif
  2790. /* ************************************************************************** */
  2791. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2792. #ifndef MNG_SKIPCHUNK_MOVE
  2793. ASSIGN_CHUNK_HDR (mng_assign_move)
  2794. {
  2795. #ifdef MNG_SUPPORT_TRACE
  2796. MNG_TRACE (pData, MNG_FN_ASSIGN_MOVE, MNG_LC_START);
  2797. #endif
  2798. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_MOVE)
  2799. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2800. ((mng_movep)pChunkto)->iFirstid = ((mng_movep)pChunkfrom)->iFirstid;
  2801. ((mng_movep)pChunkto)->iLastid = ((mng_movep)pChunkfrom)->iLastid;
  2802. ((mng_movep)pChunkto)->iMovetype = ((mng_movep)pChunkfrom)->iMovetype;
  2803. ((mng_movep)pChunkto)->iMovex = ((mng_movep)pChunkfrom)->iMovex;
  2804. ((mng_movep)pChunkto)->iMovey = ((mng_movep)pChunkfrom)->iMovey;
  2805. #ifdef MNG_SUPPORT_TRACE
  2806. MNG_TRACE (pData, MNG_FN_ASSIGN_MOVE, MNG_LC_END);
  2807. #endif
  2808. return MNG_NOERROR;
  2809. }
  2810. #endif
  2811. #endif
  2812. /* ************************************************************************** */
  2813. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2814. #ifndef MNG_SKIPCHUNK_CLIP
  2815. ASSIGN_CHUNK_HDR (mng_assign_clip)
  2816. {
  2817. #ifdef MNG_SUPPORT_TRACE
  2818. MNG_TRACE (pData, MNG_FN_ASSIGN_CLIP, MNG_LC_START);
  2819. #endif
  2820. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_CLIP)
  2821. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2822. ((mng_clipp)pChunkto)->iFirstid = ((mng_clipp)pChunkfrom)->iFirstid;
  2823. ((mng_clipp)pChunkto)->iLastid = ((mng_clipp)pChunkfrom)->iLastid;
  2824. ((mng_clipp)pChunkto)->iCliptype = ((mng_clipp)pChunkfrom)->iCliptype;
  2825. ((mng_clipp)pChunkto)->iClipl = ((mng_clipp)pChunkfrom)->iClipl;
  2826. ((mng_clipp)pChunkto)->iClipr = ((mng_clipp)pChunkfrom)->iClipr;
  2827. ((mng_clipp)pChunkto)->iClipt = ((mng_clipp)pChunkfrom)->iClipt;
  2828. ((mng_clipp)pChunkto)->iClipb = ((mng_clipp)pChunkfrom)->iClipb;
  2829. #ifdef MNG_SUPPORT_TRACE
  2830. MNG_TRACE (pData, MNG_FN_ASSIGN_CLIP, MNG_LC_END);
  2831. #endif
  2832. return MNG_NOERROR;
  2833. }
  2834. #endif
  2835. #endif
  2836. /* ************************************************************************** */
  2837. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2838. #ifndef MNG_SKIPCHUNK_SHOW
  2839. ASSIGN_CHUNK_HDR (mng_assign_show)
  2840. {
  2841. #ifdef MNG_SUPPORT_TRACE
  2842. MNG_TRACE (pData, MNG_FN_ASSIGN_SHOW, MNG_LC_START);
  2843. #endif
  2844. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_SHOW)
  2845. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2846. ((mng_showp)pChunkto)->bEmpty = ((mng_showp)pChunkfrom)->bEmpty;
  2847. ((mng_showp)pChunkto)->iFirstid = ((mng_showp)pChunkfrom)->iFirstid;
  2848. ((mng_showp)pChunkto)->iLastid = ((mng_showp)pChunkfrom)->iLastid;
  2849. ((mng_showp)pChunkto)->iMode = ((mng_showp)pChunkfrom)->iMode;
  2850. #ifdef MNG_SUPPORT_TRACE
  2851. MNG_TRACE (pData, MNG_FN_ASSIGN_SHOW, MNG_LC_END);
  2852. #endif
  2853. return MNG_NOERROR;
  2854. }
  2855. #endif
  2856. #endif
  2857. /* ************************************************************************** */
  2858. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2859. #ifndef MNG_SKIPCHUNK_TERM
  2860. ASSIGN_CHUNK_HDR (mng_assign_term)
  2861. {
  2862. #ifdef MNG_SUPPORT_TRACE
  2863. MNG_TRACE (pData, MNG_FN_ASSIGN_TERM, MNG_LC_START);
  2864. #endif
  2865. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_TERM)
  2866. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2867. ((mng_termp)pChunkto)->iTermaction = ((mng_termp)pChunkfrom)->iTermaction;
  2868. ((mng_termp)pChunkto)->iIteraction = ((mng_termp)pChunkfrom)->iIteraction;
  2869. ((mng_termp)pChunkto)->iDelay = ((mng_termp)pChunkfrom)->iDelay;
  2870. ((mng_termp)pChunkto)->iItermax = ((mng_termp)pChunkfrom)->iItermax;
  2871. #ifdef MNG_SUPPORT_TRACE
  2872. MNG_TRACE (pData, MNG_FN_ASSIGN_TERM, MNG_LC_END);
  2873. #endif
  2874. return MNG_NOERROR;
  2875. }
  2876. #endif
  2877. #endif
  2878. /* ************************************************************************** */
  2879. #ifndef MNG_SKIPCHUNK_SAVE
  2880. ASSIGN_CHUNK_HDR (mng_assign_save)
  2881. {
  2882. #ifdef MNG_SUPPORT_TRACE
  2883. MNG_TRACE (pData, MNG_FN_ASSIGN_SAVE, MNG_LC_START);
  2884. #endif
  2885. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_SAVE)
  2886. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2887. ((mng_savep)pChunkto)->bEmpty = ((mng_savep)pChunkfrom)->bEmpty;
  2888. ((mng_savep)pChunkto)->iOffsettype = ((mng_savep)pChunkfrom)->iOffsettype;
  2889. ((mng_savep)pChunkto)->iCount = ((mng_savep)pChunkfrom)->iCount;
  2890. if (((mng_savep)pChunkto)->iCount)
  2891. {
  2892. mng_uint32 iX;
  2893. mng_save_entryp pEntry;
  2894. mng_uint32 iLen = ((mng_savep)pChunkto)->iCount * sizeof (mng_save_entry);
  2895. MNG_ALLOC (pData, ((mng_savep)pChunkto)->pEntries, iLen);
  2896. MNG_COPY (((mng_savep)pChunkto)->pEntries, ((mng_savep)pChunkfrom)->pEntries, iLen);
  2897. pEntry = ((mng_savep)pChunkto)->pEntries;
  2898. for (iX = 0; iX < ((mng_savep)pChunkto)->iCount; iX++)
  2899. {
  2900. if (pEntry->iNamesize)
  2901. {
  2902. mng_pchar pTemp = pEntry->zName;
  2903. MNG_ALLOC (pData, pEntry->zName, pEntry->iNamesize);
  2904. MNG_COPY (pEntry->zName, pTemp, pEntry->iNamesize);
  2905. }
  2906. else
  2907. {
  2908. pEntry->zName = MNG_NULL;
  2909. }
  2910. pEntry++;
  2911. }
  2912. }
  2913. #ifdef MNG_SUPPORT_TRACE
  2914. MNG_TRACE (pData, MNG_FN_ASSIGN_SAVE, MNG_LC_END);
  2915. #endif
  2916. return MNG_NOERROR;
  2917. }
  2918. #endif
  2919. /* ************************************************************************** */
  2920. #ifndef MNG_SKIPCHUNK_SEEK
  2921. ASSIGN_CHUNK_HDR (mng_assign_seek)
  2922. {
  2923. #ifdef MNG_SUPPORT_TRACE
  2924. MNG_TRACE (pData, MNG_FN_ASSIGN_SEEK, MNG_LC_START);
  2925. #endif
  2926. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_SEEK)
  2927. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2928. ((mng_seekp)pChunkto)->iNamesize = ((mng_seekp)pChunkfrom)->iNamesize;
  2929. if (((mng_seekp)pChunkto)->iNamesize)
  2930. {
  2931. MNG_ALLOC (pData, ((mng_seekp)pChunkto)->zName, ((mng_seekp)pChunkto)->iNamesize);
  2932. MNG_COPY (((mng_seekp)pChunkto)->zName, ((mng_seekp)pChunkfrom)->zName,
  2933. ((mng_seekp)pChunkto)->iNamesize);
  2934. }
  2935. #ifdef MNG_SUPPORT_TRACE
  2936. MNG_TRACE (pData, MNG_FN_ASSIGN_SEEK, MNG_LC_END);
  2937. #endif
  2938. return MNG_NOERROR;
  2939. }
  2940. #endif
  2941. /* ************************************************************************** */
  2942. #ifndef MNG_SKIPCHUNK_eXPI
  2943. ASSIGN_CHUNK_HDR (mng_assign_expi)
  2944. {
  2945. #ifdef MNG_SUPPORT_TRACE
  2946. MNG_TRACE (pData, MNG_FN_ASSIGN_EXPI, MNG_LC_START);
  2947. #endif
  2948. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_eXPI)
  2949. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2950. ((mng_expip)pChunkto)->iSnapshotid = ((mng_expip)pChunkfrom)->iSnapshotid;
  2951. ((mng_expip)pChunkto)->iNamesize = ((mng_expip)pChunkfrom)->iNamesize;
  2952. if (((mng_expip)pChunkto)->iNamesize)
  2953. {
  2954. MNG_ALLOC (pData, ((mng_expip)pChunkto)->zName, ((mng_expip)pChunkto)->iNamesize);
  2955. MNG_COPY (((mng_expip)pChunkto)->zName, ((mng_expip)pChunkfrom)->zName,
  2956. ((mng_expip)pChunkto)->iNamesize);
  2957. }
  2958. #ifdef MNG_SUPPORT_TRACE
  2959. MNG_TRACE (pData, MNG_FN_ASSIGN_EXPI, MNG_LC_END);
  2960. #endif
  2961. return MNG_NOERROR;
  2962. }
  2963. #endif
  2964. /* ************************************************************************** */
  2965. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  2966. #ifndef MNG_SKIPCHUNK_fPRI
  2967. ASSIGN_CHUNK_HDR (mng_assign_fpri)
  2968. {
  2969. #ifdef MNG_SUPPORT_TRACE
  2970. MNG_TRACE (pData, MNG_FN_ASSIGN_FPRI, MNG_LC_START);
  2971. #endif
  2972. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_fPRI)
  2973. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2974. ((mng_fprip)pChunkto)->iDeltatype = ((mng_fprip)pChunkfrom)->iDeltatype;
  2975. ((mng_fprip)pChunkto)->iPriority = ((mng_fprip)pChunkfrom)->iPriority;
  2976. #ifdef MNG_SUPPORT_TRACE
  2977. MNG_TRACE (pData, MNG_FN_ASSIGN_FPRI, MNG_LC_END);
  2978. #endif
  2979. return MNG_NOERROR;
  2980. }
  2981. #endif
  2982. #endif
  2983. /* ************************************************************************** */
  2984. #ifndef MNG_SKIPCHUNK_nEED
  2985. ASSIGN_CHUNK_HDR (mng_assign_need)
  2986. {
  2987. #ifdef MNG_SUPPORT_TRACE
  2988. MNG_TRACE (pData, MNG_FN_ASSIGN_NEED, MNG_LC_START);
  2989. #endif
  2990. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_nEED)
  2991. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  2992. ((mng_needp)pChunkto)->iKeywordssize = ((mng_needp)pChunkfrom)->iKeywordssize;
  2993. if (((mng_needp)pChunkto)->iKeywordssize)
  2994. {
  2995. MNG_ALLOC (pData, ((mng_needp)pChunkto)->zKeywords, ((mng_needp)pChunkto)->iKeywordssize);
  2996. MNG_COPY (((mng_needp)pChunkto)->zKeywords, ((mng_needp)pChunkfrom)->zKeywords,
  2997. ((mng_needp)pChunkto)->iKeywordssize);
  2998. }
  2999. #ifdef MNG_SUPPORT_TRACE
  3000. MNG_TRACE (pData, MNG_FN_ASSIGN_NEED, MNG_LC_END);
  3001. #endif
  3002. return MNG_NOERROR;
  3003. }
  3004. #endif
  3005. /* ************************************************************************** */
  3006. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3007. #ifndef MNG_SKIPCHUNK_pHYg
  3008. ASSIGN_CHUNK_HDR (mng_assign_phyg)
  3009. {
  3010. #ifdef MNG_SUPPORT_TRACE
  3011. MNG_TRACE (pData, MNG_FN_ASSIGN_PHYG, MNG_LC_START);
  3012. #endif
  3013. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_pHYg)
  3014. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3015. ((mng_phygp)pChunkto)->bEmpty = ((mng_phygp)pChunkfrom)->bEmpty;
  3016. ((mng_phygp)pChunkto)->iSizex = ((mng_phygp)pChunkfrom)->iSizex;
  3017. ((mng_phygp)pChunkto)->iSizey = ((mng_phygp)pChunkfrom)->iSizey;
  3018. ((mng_phygp)pChunkto)->iUnit = ((mng_phygp)pChunkfrom)->iUnit;
  3019. #ifdef MNG_SUPPORT_TRACE
  3020. MNG_TRACE (pData, MNG_FN_ASSIGN_PHYG, MNG_LC_END);
  3021. #endif
  3022. return MNG_NOERROR;
  3023. }
  3024. #endif
  3025. #endif
  3026. /* ************************************************************************** */
  3027. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3028. #ifdef MNG_INCLUDE_JNG
  3029. ASSIGN_CHUNK_HDR (mng_assign_jhdr)
  3030. {
  3031. #ifdef MNG_SUPPORT_TRACE
  3032. MNG_TRACE (pData, MNG_FN_ASSIGN_JHDR, MNG_LC_START);
  3033. #endif
  3034. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_JHDR)
  3035. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3036. ((mng_jhdrp)pChunkto)->iWidth = ((mng_jhdrp)pChunkfrom)->iWidth;
  3037. ((mng_jhdrp)pChunkto)->iHeight = ((mng_jhdrp)pChunkfrom)->iHeight;
  3038. ((mng_jhdrp)pChunkto)->iColortype = ((mng_jhdrp)pChunkfrom)->iColortype;
  3039. ((mng_jhdrp)pChunkto)->iImagesampledepth = ((mng_jhdrp)pChunkfrom)->iImagesampledepth;
  3040. ((mng_jhdrp)pChunkto)->iImagecompression = ((mng_jhdrp)pChunkfrom)->iImagecompression;
  3041. ((mng_jhdrp)pChunkto)->iImageinterlace = ((mng_jhdrp)pChunkfrom)->iImageinterlace;
  3042. ((mng_jhdrp)pChunkto)->iAlphasampledepth = ((mng_jhdrp)pChunkfrom)->iAlphasampledepth;
  3043. ((mng_jhdrp)pChunkto)->iAlphacompression = ((mng_jhdrp)pChunkfrom)->iAlphacompression;
  3044. ((mng_jhdrp)pChunkto)->iAlphafilter = ((mng_jhdrp)pChunkfrom)->iAlphafilter;
  3045. ((mng_jhdrp)pChunkto)->iAlphainterlace = ((mng_jhdrp)pChunkfrom)->iAlphainterlace;
  3046. #ifdef MNG_SUPPORT_TRACE
  3047. MNG_TRACE (pData, MNG_FN_ASSIGN_JHDR, MNG_LC_END);
  3048. #endif
  3049. return MNG_NOERROR;
  3050. }
  3051. #endif /* MNG_INCLUDE_JNG */
  3052. #endif
  3053. /* ************************************************************************** */
  3054. #ifdef MNG_INCLUDE_JNG
  3055. ASSIGN_CHUNK_HDR (mng_assign_jdaa)
  3056. {
  3057. #ifdef MNG_SUPPORT_TRACE
  3058. MNG_TRACE (pData, MNG_FN_ASSIGN_JDAA, MNG_LC_START);
  3059. #endif
  3060. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_JDAA)
  3061. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3062. ((mng_jdaap)pChunkto)->bEmpty = ((mng_jdaap)pChunkfrom)->bEmpty;
  3063. ((mng_jdaap)pChunkto)->iDatasize = ((mng_jdaap)pChunkfrom)->iDatasize;
  3064. if (((mng_jdaap)pChunkto)->iDatasize)
  3065. {
  3066. MNG_ALLOC (pData, ((mng_jdaap)pChunkto)->pData, ((mng_jdaap)pChunkto)->iDatasize);
  3067. MNG_COPY (((mng_jdaap)pChunkto)->pData, ((mng_jdaap)pChunkfrom)->pData,
  3068. ((mng_jdaap)pChunkto)->iDatasize);
  3069. }
  3070. #ifdef MNG_SUPPORT_TRACE
  3071. MNG_TRACE (pData, MNG_FN_ASSIGN_JDAA, MNG_LC_END);
  3072. #endif
  3073. return MNG_NOERROR;
  3074. }
  3075. #endif /* MNG_INCLUDE_JNG */
  3076. /* ************************************************************************** */
  3077. #ifdef MNG_INCLUDE_JNG
  3078. ASSIGN_CHUNK_HDR (mng_assign_jdat)
  3079. {
  3080. #ifdef MNG_SUPPORT_TRACE
  3081. MNG_TRACE (pData, MNG_FN_ASSIGN_JDAT, MNG_LC_START);
  3082. #endif
  3083. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_JDAT)
  3084. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3085. ((mng_jdatp)pChunkto)->bEmpty = ((mng_jdatp)pChunkfrom)->bEmpty;
  3086. ((mng_jdatp)pChunkto)->iDatasize = ((mng_jdatp)pChunkfrom)->iDatasize;
  3087. if (((mng_jdatp)pChunkto)->iDatasize)
  3088. {
  3089. MNG_ALLOC (pData, ((mng_jdatp)pChunkto)->pData, ((mng_jdatp)pChunkto)->iDatasize);
  3090. MNG_COPY (((mng_jdatp)pChunkto)->pData, ((mng_jdatp)pChunkfrom)->pData,
  3091. ((mng_jdatp)pChunkto)->iDatasize);
  3092. }
  3093. #ifdef MNG_SUPPORT_TRACE
  3094. MNG_TRACE (pData, MNG_FN_ASSIGN_JDAT, MNG_LC_END);
  3095. #endif
  3096. return MNG_NOERROR;
  3097. }
  3098. #endif /* MNG_INCLUDE_JNG */
  3099. /* ************************************************************************** */
  3100. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3101. #ifdef MNG_INCLUDE_JNG
  3102. ASSIGN_CHUNK_HDR (mng_assign_jsep)
  3103. {
  3104. #ifdef MNG_SUPPORT_TRACE
  3105. MNG_TRACE (pData, MNG_FN_ASSIGN_JSEP, MNG_LC_START);
  3106. #endif
  3107. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_JSEP)
  3108. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3109. #ifdef MNG_SUPPORT_TRACE
  3110. MNG_TRACE (pData, MNG_FN_ASSIGN_JSEP, MNG_LC_END);
  3111. #endif
  3112. return MNG_NOERROR;
  3113. }
  3114. #endif /* MNG_INCLUDE_JNG */
  3115. #endif
  3116. /* ************************************************************************** */
  3117. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3118. #ifndef MNG_NO_DELTA_PNG
  3119. ASSIGN_CHUNK_HDR (mng_assign_dhdr)
  3120. {
  3121. #ifdef MNG_SUPPORT_TRACE
  3122. MNG_TRACE (pData, MNG_FN_ASSIGN_DHDR, MNG_LC_START);
  3123. #endif
  3124. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_DHDR)
  3125. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3126. ((mng_dhdrp)pChunkto)->iObjectid = ((mng_dhdrp)pChunkfrom)->iObjectid;
  3127. ((mng_dhdrp)pChunkto)->iImagetype = ((mng_dhdrp)pChunkfrom)->iImagetype;
  3128. ((mng_dhdrp)pChunkto)->iDeltatype = ((mng_dhdrp)pChunkfrom)->iDeltatype;
  3129. ((mng_dhdrp)pChunkto)->iBlockwidth = ((mng_dhdrp)pChunkfrom)->iBlockwidth;
  3130. ((mng_dhdrp)pChunkto)->iBlockheight = ((mng_dhdrp)pChunkfrom)->iBlockheight;
  3131. ((mng_dhdrp)pChunkto)->iBlockx = ((mng_dhdrp)pChunkfrom)->iBlockx;
  3132. ((mng_dhdrp)pChunkto)->iBlocky = ((mng_dhdrp)pChunkfrom)->iBlocky;
  3133. #ifdef MNG_SUPPORT_TRACE
  3134. MNG_TRACE (pData, MNG_FN_ASSIGN_DHDR, MNG_LC_END);
  3135. #endif
  3136. return MNG_NOERROR;
  3137. }
  3138. #endif
  3139. #endif
  3140. /* ************************************************************************** */
  3141. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3142. #ifndef MNG_NO_DELTA_PNG
  3143. ASSIGN_CHUNK_HDR (mng_assign_prom)
  3144. {
  3145. #ifdef MNG_SUPPORT_TRACE
  3146. MNG_TRACE (pData, MNG_FN_ASSIGN_PROM, MNG_LC_START);
  3147. #endif
  3148. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_PROM)
  3149. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3150. ((mng_promp)pChunkto)->iColortype = ((mng_promp)pChunkfrom)->iColortype;
  3151. ((mng_promp)pChunkto)->iSampledepth = ((mng_promp)pChunkfrom)->iSampledepth;
  3152. ((mng_promp)pChunkto)->iFilltype = ((mng_promp)pChunkfrom)->iFilltype;
  3153. #ifdef MNG_SUPPORT_TRACE
  3154. MNG_TRACE (pData, MNG_FN_ASSIGN_PROM, MNG_LC_END);
  3155. #endif
  3156. return MNG_NOERROR;
  3157. }
  3158. #endif
  3159. #endif
  3160. /* ************************************************************************** */
  3161. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3162. #ifndef MNG_NO_DELTA_PNG
  3163. ASSIGN_CHUNK_HDR (mng_assign_ipng)
  3164. {
  3165. #ifdef MNG_SUPPORT_TRACE
  3166. MNG_TRACE (pData, MNG_FN_ASSIGN_IPNG, MNG_LC_START);
  3167. #endif
  3168. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IPNG)
  3169. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3170. #ifdef MNG_SUPPORT_TRACE
  3171. MNG_TRACE (pData, MNG_FN_ASSIGN_IPNG, MNG_LC_END);
  3172. #endif
  3173. return MNG_NOERROR;
  3174. }
  3175. #endif
  3176. #endif
  3177. /* ************************************************************************** */
  3178. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3179. #ifndef MNG_NO_DELTA_PNG
  3180. ASSIGN_CHUNK_HDR (mng_assign_pplt)
  3181. {
  3182. mng_uint32 iX;
  3183. #ifdef MNG_SUPPORT_TRACE
  3184. MNG_TRACE (pData, MNG_FN_ASSIGN_PPLT, MNG_LC_START);
  3185. #endif
  3186. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_PPLT)
  3187. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3188. ((mng_ppltp)pChunkto)->iDeltatype = ((mng_ppltp)pChunkfrom)->iDeltatype;
  3189. ((mng_ppltp)pChunkto)->iCount = ((mng_ppltp)pChunkfrom)->iCount;
  3190. for (iX = 0; iX < ((mng_ppltp)pChunkto)->iCount; iX++)
  3191. ((mng_ppltp)pChunkto)->aEntries [iX] = ((mng_ppltp)pChunkfrom)->aEntries [iX];
  3192. #ifdef MNG_SUPPORT_TRACE
  3193. MNG_TRACE (pData, MNG_FN_ASSIGN_PPLT, MNG_LC_END);
  3194. #endif
  3195. return MNG_NOERROR;
  3196. }
  3197. #endif
  3198. #endif
  3199. /* ************************************************************************** */
  3200. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3201. #ifndef MNG_NO_DELTA_PNG
  3202. #ifdef MNG_INCLUDE_JNG
  3203. ASSIGN_CHUNK_HDR (mng_assign_ijng)
  3204. {
  3205. #ifdef MNG_SUPPORT_TRACE
  3206. MNG_TRACE (pData, MNG_FN_ASSIGN_IJNG, MNG_LC_START);
  3207. #endif
  3208. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IJNG)
  3209. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3210. #ifdef MNG_SUPPORT_TRACE
  3211. MNG_TRACE (pData, MNG_FN_ASSIGN_IJNG, MNG_LC_END);
  3212. #endif
  3213. return MNG_NOERROR;
  3214. }
  3215. #endif
  3216. #endif
  3217. #endif
  3218. /* ************************************************************************** */
  3219. #ifndef MNG_NO_DELTA_PNG
  3220. ASSIGN_CHUNK_HDR (mng_assign_drop)
  3221. {
  3222. #ifdef MNG_SUPPORT_TRACE
  3223. MNG_TRACE (pData, MNG_FN_ASSIGN_DROP, MNG_LC_START);
  3224. #endif
  3225. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_DROP)
  3226. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3227. ((mng_dropp)pChunkto)->iCount = ((mng_dropp)pChunkfrom)->iCount;
  3228. if (((mng_dropp)pChunkto)->iCount)
  3229. {
  3230. mng_uint32 iLen = ((mng_dropp)pChunkto)->iCount * sizeof (mng_uint32);
  3231. MNG_ALLOC (pData, ((mng_dropp)pChunkto)->pChunknames, iLen);
  3232. MNG_COPY (((mng_dropp)pChunkto)->pChunknames, ((mng_dropp)pChunkfrom)->pChunknames, iLen);
  3233. }
  3234. #ifdef MNG_SUPPORT_TRACE
  3235. MNG_TRACE (pData, MNG_FN_ASSIGN_DROP, MNG_LC_END);
  3236. #endif
  3237. return MNG_NOERROR;
  3238. }
  3239. #endif
  3240. /* ************************************************************************** */
  3241. #ifndef MNG_NO_DELTA_PNG
  3242. #ifndef MNG_SKIPCHUNK_DBYK
  3243. ASSIGN_CHUNK_HDR (mng_assign_dbyk)
  3244. {
  3245. #ifdef MNG_SUPPORT_TRACE
  3246. MNG_TRACE (pData, MNG_FN_ASSIGN_DBYK, MNG_LC_START);
  3247. #endif
  3248. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_DBYK)
  3249. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3250. ((mng_dbykp)pChunkto)->iChunkname = ((mng_dbykp)pChunkfrom)->iChunkname;
  3251. ((mng_dbykp)pChunkto)->iPolarity = ((mng_dbykp)pChunkfrom)->iPolarity;
  3252. ((mng_dbykp)pChunkto)->iKeywordssize = ((mng_dbykp)pChunkfrom)->iKeywordssize;
  3253. if (((mng_dbykp)pChunkto)->iKeywordssize)
  3254. {
  3255. MNG_ALLOC (pData, ((mng_dbykp)pChunkto)->zKeywords, ((mng_dbykp)pChunkto)->iKeywordssize);
  3256. MNG_COPY (((mng_dbykp)pChunkto)->zKeywords, ((mng_dbykp)pChunkfrom)->zKeywords,
  3257. ((mng_dbykp)pChunkto)->iKeywordssize);
  3258. }
  3259. #ifdef MNG_SUPPORT_TRACE
  3260. MNG_TRACE (pData, MNG_FN_ASSIGN_DBYK, MNG_LC_END);
  3261. #endif
  3262. return MNG_NOERROR;
  3263. }
  3264. #endif
  3265. #endif
  3266. /* ************************************************************************** */
  3267. #ifndef MNG_NO_DELTA_PNG
  3268. #ifndef MNG_SKIPCHUNK_ORDR
  3269. ASSIGN_CHUNK_HDR (mng_assign_ordr)
  3270. {
  3271. #ifdef MNG_SUPPORT_TRACE
  3272. MNG_TRACE (pData, MNG_FN_ASSIGN_ORDR, MNG_LC_START);
  3273. #endif
  3274. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_ORDR)
  3275. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3276. ((mng_ordrp)pChunkto)->iCount = ((mng_ordrp)pChunkfrom)->iCount;
  3277. if (((mng_ordrp)pChunkto)->iCount)
  3278. {
  3279. mng_uint32 iLen = ((mng_ordrp)pChunkto)->iCount * sizeof (mng_ordr_entry);
  3280. MNG_ALLOC (pData, ((mng_ordrp)pChunkto)->pEntries, iLen);
  3281. MNG_COPY (((mng_ordrp)pChunkto)->pEntries, ((mng_ordrp)pChunkfrom)->pEntries, iLen);
  3282. }
  3283. #ifdef MNG_SUPPORT_TRACE
  3284. MNG_TRACE (pData, MNG_FN_ASSIGN_ORDR, MNG_LC_END);
  3285. #endif
  3286. return MNG_NOERROR;
  3287. }
  3288. #endif
  3289. #endif
  3290. /* ************************************************************************** */
  3291. #ifndef MNG_OPTIMIZE_CHUNKASSIGN
  3292. #ifndef MNG_SKIPCHUNK_MAGN
  3293. ASSIGN_CHUNK_HDR (mng_assign_magn)
  3294. {
  3295. #ifdef MNG_SUPPORT_TRACE
  3296. MNG_TRACE (pData, MNG_FN_ASSIGN_MAGN, MNG_LC_START);
  3297. #endif
  3298. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_MAGN)
  3299. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3300. ((mng_magnp)pChunkto)->iFirstid = ((mng_magnp)pChunkfrom)->iFirstid;
  3301. ((mng_magnp)pChunkto)->iLastid = ((mng_magnp)pChunkfrom)->iLastid;
  3302. ((mng_magnp)pChunkto)->iMethodX = ((mng_magnp)pChunkfrom)->iMethodX;
  3303. ((mng_magnp)pChunkto)->iMX = ((mng_magnp)pChunkfrom)->iMX;
  3304. ((mng_magnp)pChunkto)->iMY = ((mng_magnp)pChunkfrom)->iMY;
  3305. ((mng_magnp)pChunkto)->iML = ((mng_magnp)pChunkfrom)->iML;
  3306. ((mng_magnp)pChunkto)->iMR = ((mng_magnp)pChunkfrom)->iMR;
  3307. ((mng_magnp)pChunkto)->iMT = ((mng_magnp)pChunkfrom)->iMT;
  3308. ((mng_magnp)pChunkto)->iMB = ((mng_magnp)pChunkfrom)->iMB;
  3309. ((mng_magnp)pChunkto)->iMethodY = ((mng_magnp)pChunkfrom)->iMethodY;
  3310. #ifdef MNG_SUPPORT_TRACE
  3311. MNG_TRACE (pData, MNG_FN_ASSIGN_MAGN, MNG_LC_END);
  3312. #endif
  3313. return MNG_NOERROR;
  3314. }
  3315. #endif
  3316. #endif
  3317. /* ************************************************************************** */
  3318. #ifdef MNG_INCLUDE_MPNG_PROPOSAL
  3319. ASSIGN_CHUNK_HDR (mng_assign_mpng)
  3320. {
  3321. #ifdef MNG_SUPPORT_TRACE
  3322. MNG_TRACE (pData, MNG_FN_ASSIGN_MPNG, MNG_LC_START);
  3323. #endif
  3324. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_mpNG)
  3325. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3326. ((mng_mpngp)pChunkto)->iFramewidth = ((mng_mpngp)pChunkfrom)->iFramewidth;
  3327. ((mng_mpngp)pChunkto)->iFrameheight = ((mng_mpngp)pChunkfrom)->iFrameheight;
  3328. ((mng_mpngp)pChunkto)->iNumplays = ((mng_mpngp)pChunkfrom)->iNumplays;
  3329. ((mng_mpngp)pChunkto)->iTickspersec = ((mng_mpngp)pChunkfrom)->iTickspersec;
  3330. ((mng_mpngp)pChunkto)->iCompressionmethod = ((mng_mpngp)pChunkfrom)->iCompressionmethod;
  3331. ((mng_mpngp)pChunkto)->iFramessize = ((mng_mpngp)pChunkfrom)->iFramessize;
  3332. if (((mng_mpngp)pChunkto)->iFramessize)
  3333. {
  3334. MNG_ALLOC (pData, ((mng_mpngp)pChunkto)->pFrames, ((mng_mpngp)pChunkto)->iFramessize);
  3335. MNG_COPY (((mng_mpngp)pChunkto)->pFrames, ((mng_mpngp)pChunkfrom)->pFrames,
  3336. ((mng_mpngp)pChunkto)->iFramessize);
  3337. }
  3338. #ifdef MNG_SUPPORT_TRACE
  3339. MNG_TRACE (pData, MNG_FN_ASSIGN_MPNG, MNG_LC_END);
  3340. #endif
  3341. return MNG_NOERROR;
  3342. }
  3343. #endif
  3344. /* ************************************************************************** */
  3345. #ifdef MNG_INCLUDE_ANG_PROPOSAL
  3346. ASSIGN_CHUNK_HDR (mng_assign_ahdr)
  3347. {
  3348. #ifdef MNG_SUPPORT_TRACE
  3349. MNG_TRACE (pData, MNG_FN_ASSIGN_AHDR, MNG_LC_START);
  3350. #endif
  3351. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_ahDR)
  3352. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3353. ((mng_ahdrp)pChunkto)->iNumframes = ((mng_ahdrp)pChunkfrom)->iNumframes;
  3354. ((mng_ahdrp)pChunkto)->iTickspersec = ((mng_ahdrp)pChunkfrom)->iTickspersec;
  3355. ((mng_ahdrp)pChunkto)->iNumplays = ((mng_ahdrp)pChunkfrom)->iNumplays;
  3356. ((mng_ahdrp)pChunkto)->iTilewidth = ((mng_ahdrp)pChunkfrom)->iTilewidth;
  3357. ((mng_ahdrp)pChunkto)->iTileheight = ((mng_ahdrp)pChunkfrom)->iTileheight;
  3358. ((mng_ahdrp)pChunkto)->iInterlace = ((mng_ahdrp)pChunkfrom)->iInterlace;
  3359. ((mng_ahdrp)pChunkto)->iStillused = ((mng_ahdrp)pChunkfrom)->iStillused;
  3360. #ifdef MNG_SUPPORT_TRACE
  3361. MNG_TRACE (pData, MNG_FN_ASSIGN_AHDR, MNG_LC_END);
  3362. #endif
  3363. return MNG_NOERROR;
  3364. }
  3365. #endif
  3366. /* ************************************************************************** */
  3367. #ifdef MNG_INCLUDE_ANG_PROPOSAL
  3368. ASSIGN_CHUNK_HDR (mng_assign_adat)
  3369. {
  3370. #ifdef MNG_SUPPORT_TRACE
  3371. MNG_TRACE (pData, MNG_FN_ASSIGN_ADAT, MNG_LC_START);
  3372. #endif
  3373. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_adAT)
  3374. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3375. ((mng_adatp)pChunkto)->iTilessize = ((mng_adatp)pChunkfrom)->iTilessize;
  3376. if (((mng_adatp)pChunkto)->iTilessize)
  3377. {
  3378. MNG_ALLOC (pData, ((mng_adatp)pChunkto)->pTiles, ((mng_adatp)pChunkto)->iTilessize);
  3379. MNG_COPY (((mng_adatp)pChunkto)->pTiles, ((mng_adatp)pChunkfrom)->pTiles,
  3380. ((mng_adatp)pChunkto)->iTilessize);
  3381. }
  3382. #ifdef MNG_SUPPORT_TRACE
  3383. MNG_TRACE (pData, MNG_FN_ASSIGN_ADAT, MNG_LC_END);
  3384. #endif
  3385. return MNG_NOERROR;
  3386. }
  3387. #endif
  3388. /* ************************************************************************** */
  3389. #ifndef MNG_SKIPCHUNK_evNT
  3390. ASSIGN_CHUNK_HDR (mng_assign_evnt)
  3391. {
  3392. #ifdef MNG_SUPPORT_TRACE
  3393. MNG_TRACE (pData, MNG_FN_ASSIGN_EVNT, MNG_LC_START);
  3394. #endif
  3395. if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_evNT)
  3396. MNG_ERROR (pData, MNG_WRONGCHUNK); /* ouch */
  3397. ((mng_evntp)pChunkto)->iCount = ((mng_evntp)pChunkfrom)->iCount;
  3398. if (((mng_evntp)pChunkto)->iCount)
  3399. {
  3400. mng_uint32 iX;
  3401. mng_evnt_entryp pEntry;
  3402. mng_uint32 iLen = ((mng_evntp)pChunkto)->iCount * sizeof (mng_evnt_entry);
  3403. MNG_ALLOC (pData, ((mng_evntp)pChunkto)->pEntries, iLen);
  3404. MNG_COPY (((mng_evntp)pChunkto)->pEntries, ((mng_evntp)pChunkfrom)->pEntries, iLen);
  3405. pEntry = ((mng_evntp)pChunkto)->pEntries;
  3406. for (iX = 0; iX < ((mng_evntp)pChunkto)->iCount; iX++)
  3407. {
  3408. if (pEntry->iSegmentnamesize)
  3409. {
  3410. mng_pchar pTemp = pEntry->zSegmentname;
  3411. MNG_ALLOC (pData, pEntry->zSegmentname, pEntry->iSegmentnamesize+1);
  3412. MNG_COPY (pEntry->zSegmentname, pTemp, pEntry->iSegmentnamesize);
  3413. }
  3414. else
  3415. {
  3416. pEntry->zSegmentname = MNG_NULL;
  3417. }
  3418. pEntry++;
  3419. }
  3420. }
  3421. #ifdef MNG_SUPPORT_TRACE
  3422. MNG_TRACE (pData, MNG_FN_ASSIGN_EVNT, MNG_LC_END);
  3423. #endif
  3424. return MNG_NOERROR;
  3425. }
  3426. #endif
  3427. /* ************************************************************************** */
  3428. ASSIGN_CHUNK_HDR (mng_assign_unknown)
  3429. {
  3430. #ifdef MNG_SUPPORT_TRACE
  3431. MNG_TRACE (pData, MNG_FN_ASSIGN_UNKNOWN, MNG_LC_START);
  3432. #endif
  3433. ((mng_unknown_chunkp)pChunkto)->iDatasize = ((mng_unknown_chunkp)pChunkfrom)->iDatasize;
  3434. if (((mng_unknown_chunkp)pChunkto)->iDatasize)
  3435. {
  3436. MNG_ALLOC (pData, ((mng_unknown_chunkp)pChunkto)->pData, ((mng_unknown_chunkp)pChunkto)->iDatasize);
  3437. MNG_COPY (((mng_unknown_chunkp)pChunkto)->pData, ((mng_unknown_chunkp)pChunkfrom)->pData,
  3438. ((mng_unknown_chunkp)pChunkto)->iDatasize);
  3439. }
  3440. #ifdef MNG_SUPPORT_TRACE
  3441. MNG_TRACE (pData, MNG_FN_ASSIGN_UNKNOWN, MNG_LC_END);
  3442. #endif
  3443. return MNG_NOERROR;
  3444. }
  3445. /* ************************************************************************** */
  3446. #endif /* MNG_INCLUDE_WRITE_PROCS */
  3447. /* ************************************************************************** */
  3448. /* * end of file * */
  3449. /* ************************************************************************** */