PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB` sh-3ll

HOME


sh-3ll 1.0
DIR:/usr/share/doc/libmodplug/
Upload File :
Current File : //usr/share/doc/libmodplug/ChangeLog
changes:
date = 24-apr-2017 [Konstanty Bialkowski/Lionel Debroux/SEZERO]
 Version 0.8.9.0
  OOB Write and Read fixes + a number of divide by zero fixes.
	 (ABC, PAT, AMF, MDL, PSM, XM, IT, MMCMP, MID)
 There were some patches 2010-2016 which were recorded here.
date = 21-apr-2009 [Konstanty Bialkowski/OpenMPT/Novell (Stanislav Brabec)]
->file: src/load_amf.cpp
		where: whole file
		what: added const declarations to read only variables
		what: fixed delete function
->file: src/fastmix.cpp
		where: X86_Convert32To24
		what: conversion to 24bit was incorrect
->file: src/load_mdl.cpp
		where: init of m_lpszSongComments
		what: fixed delete function to be array version (Reported by
		David Binderman / Stanislav Brabec)
->file: src/load_pat.cpp
		where: memcpy to .reserved
		what: changed fixed valid of 36 to sizeof(reserved)
		(Reported by Manfred Tremmel / Stanislav Brabec)
date = 20-apr-2009 [Konstanty Bialkowski]
->file: src/load_meb.cpp
		where: LoadMED
		what: fixed integer boundary condition checking code (fixing
		exploit)
		Details of exploit (and creator of test.s3m for exploit)
		http://www.securityfocus.com/bid/30801/info
		http://www.15897.com/blog/post/QianQianJingTing-mod-buffer-overflow-POC.html
->file: src/load_abc.cpp
		where: TestABC
		what: Made ABC detection code more robust
->file: src/load_abc.cpp, sndfile.cpp, snd_fx.cpp
		where: various
		what: change constant variables to explicitly use const
		definition
		(Thanks to Leandro Nini/Diego "Flameeyes" Pettenò)
->file: src/table.cpp -> src/table.h
		where: rename of file
		what: moved tables to separate file
		(Thanks to Leandro Nini/Diego "Flameeyes" Pettenò)

date = 15-apr-2009 [Konstanty Bialkowski]
->file: src/load_abc.cpp
		where: TestABC
		what: made sure obviously binary files do not try to get
		loaded as ABC
		where: abc_addchordname
		what: made sure first argument was const char * (not just char
		*)
->file: src/sndfile.cpp
		where: format conversion routines
		what: made sure (*a++) = func(*a), is executed properly, by
		splitting into two lines
-file: src/libmodplug/sndfile.h
		where: IMixPlugin
		what: made sure there is a virtual destructor (to avoid
		warnings)
->file: src/load_ptm.cpp
		where: mixing routine
		what: bswap32 was used on a uint16_t [2] array, and when gcc
		uses -O2 (or greater) optimization, this may not do what is
		intended.
date = 7-apr-2009 [Konstanty Bialkowski/Anthony Ramine]
-> file: src/load_abc.cpp,load_mid.cpp,load_pat.cpp
		where: whole file(s)
		what: removed use of ULONG, and changed to uint32_t
		where: few functions
		what: removed uint, and replaced with uint32_t
date = 7-apr-2009 [Zed Pobre/Debian]
-> file: src/libmodplug.pc
		where: file.
		what: split Libs into Libs.private
date = 2-nov-2006 [Alec Berryman/CVE-2006-4192]
-> file: src/sndfile.cpp
		where: ReadSample
		what: prevent buffer overflow [as reported in CVE-2006-4192]
date = 2-nov-2006 [Konstanty Bialkowski/Macro Trillo]
-> file: configure.in,config.h,load_abc.cpp,fastmix.cpp
		where: Automake 2.60 used
		what: In order to properly use stdint.h we should make use of the new macros for its detection, on systems with automake 2.59 but where stdint.h is available, this can be removed. (Patch by Macro Trillo)
-> file: src/load_amf.cpp, src/fastmix.cpp
		where: Licensing
		what: all old code was relicensed for public domain, and somehow an old version was included with GPL notices
date = 20-jul-2006 [Peter Grootswagers]
-> file: src/load_abc.cpp
		where: instrument loader functions
		what: replaced with correspondig functions in load_pat.cpp
-> file: src/load_mid.cpp
		where: whole source
		what: new loader for midi files
-> file: src/load_pat.cpp
		where: whole source
		what: new loader for GUS instrument patch files (pat)
-> file: src/load_pat.h
		where: whole source
		what: new header declaring reuseable GUS instrument patch functions (pat)
-> file: README
		where: 2. Features
		what: added description of load_mid.cpp and load_pat.cpp
-> file: src/Makefile.am
		where: libmodplug_la_SOURCES
		what: added load_mid.cpp and load_pat.cpp
		where: libmodpluginclude_HEADERS
		what: added load_pat.h
-> file: src/sndfile.cpp
		where: function CSoundFile::Create()
		what: added call to ReadMID and ReadPAT
-> file: src/libmodplug/sndfile.h
		where: #define
		what: added MOD_TYPE_PAT (MOD_TYPE_MID already there...)
		where: class CSoundFile
		what: added public function members ReadMID, TestMID, ReadPat, TestPAT and PATsample
date = 24-jun-2006 [Peter Grootswagers]
-> file: src/load_abc.cpp
		where: whole source
		what: new loader for abc files
-> file: README
		where: 2. Features
		what: added description of load_abc.cpp
-> file: src/Makefile.am
		where: libmodplug_la_SOURCES
		what: added load_abc.cpp
-> file: src/sndfile.cpp
		where: function CSoundFile::Create()
		what: added call to ReadABC
-> file: src/libmodplug/sndfile.h
		where: #define
		what: added MOD_TYPE_ABC
		where: class CSoundFile
		what: added public function members ReadABC and TestABC
date = 20-mar-2006 [Macro Trillo / "Custom libmodplug project"]
-> file : src/load_s3m.cpp
-> file : src/load_far.cpp
		what: fixed endianness
date = 20-mar-2006 [Alistair John Strachan]
....

Many other changes need to be documented here...

GCC3 fixes, GCC4 fixes, More Archive Types.

date = 09-feb-2001 [Markus Fick]
-> file: fastmix.cpp
		where: spline creation, spline macros
		what: added unity gain clamp code, added Quantizer_Bits(shift) preprocessor constants
		where: fir creation, fir macros
		what: - removed x<pi/2 condition in coef creation
		      - added quantizer_bits(shift) preprocessor constants
		      - set default quantizer bits to 15 instead 14 (scale now 32768 instead 16384)
		        there should not occure any overflows during fir response calculation because
		        of the symmetric form of filter and the position of the negative fir coefs
		      - changed final volume calculation for 16bit samples (quality enhancement)

date = 08-feb-2001 [Markus Fick]
-> file: sndmix.cpp
		where: function ReadNote()
		what: modified behaviour of modplug so that interpolation is only deactivated if
		      a) the user selects "no interpolation"
			  b) linear interpolation is set and speed incr. > 0xff00
			 => if spline or fir is active then we use always interpolation

-> file: fastmix.cpp
		where: spline macros
		what: changed spline macros to use precalculated tables (way faster)
		where: file
		what: - implemented spline table precalculator
		      - changed fir precalculator + macros (for higher quality and clearer source)
		      - added some comments and documentation
		comment:
		  - preprocessor constant: SPLINE_FRACBITS
		     ) controls quality/memory usage
			   range is [4..14] inclusive
			   4 = low quality, low memory usage
			   14 = highest quality, highest memory usage (1L<<14)*4*2 bytes
		  - preprocessor constant: WFIR_FRACBITS
		     ) controls quality/memory usage
			   range is [4..12] inclusive
			   4 = low quality, low mu
			   12 = highest quality, highest memory usage ((1L<<(12+1))+1)*8*2 bytes

date = 07-feb-2001 [Markus Fick]
-> file: fastmix.cpp
		where: spline macros
		what: fixed error in coef calculation

date = 07-feb-2001 [Markus Fick]
-> file: sndfile.h
		where: class definition of soundfile
		what: removed InitFIR + DoneFIR function prototypes
-> file: sndfile.cpp
		function:CSoundFile::CSoundFile()
		what: [modify] removed call to CSoundFile::InitFIRMixer( )

		function:CSoundFile::~CSoundFile()
		what: [modify] removed call to CSoundFile::DoneFIRMixer( )
-> file: fastmix.cpp
		where: spline macros
		what: changed formula + added some guard bits to calculation

		where: fir macros + implementation
		what: - moved CSoundfile::FIR funtions to CzFIR (single instance sfir)
		      - changed fir macros to support CzFIR class

date = 06-feb-2001 [Markus Fick]
-> file: fastmix.cpp
         where: macros
		 what: - removed fir filter with coef interpolation
		       - add spline interpolation
			RM: now modplug->select( SPLINE ) selects spline and
			        modplug->select( POLYPHASE ) selects 8tap fir filter

date = 05-feb-2001 [Markus Fick]
-> file: fastmix.cpp
         where: macros + filter order
         what: [modify] changed filter order to 8 instead of 10

-> file: fastmix.cpp
         what: new macros+switch for fir-interpolator with coef interpolation

date = 04-feb-2001 [Markus Fick]

-> file: sndfile.h
	 where: class CSoundFile (bottom)
	 what: [add] methods for FIR mixer support
	             1. int InitFIRInterpolator( );
				 2. int DoneFIRInterpolator( );

-> file: sndfile.cpp
     function:CSoundFile::CSoundFile()
	 what: [modify] add call to CSoundFile::InitFIRMixer( )

	 function:CSoundFile::~CSoundFile()
	 what: [modify] add call to CSoundFile::DoneFIRMixer( )

-> file:  fastmix.cpp
	 new include: <math.h>
		why: need it for fir-coef calculation
     new function: CSoundFile::InitFIRMixer( ) // initializes fir filter lookup (if necessary)
	 new function: CSoundFile::DoneFIRMixer( ) // decrements ReferenceCounter (for static vars) and deinitializes fir struct (if possible).
	 new defs:
		#define FIRCPWBN 10							// log2 of number of precalculated wings (-(1L<<FIRCPWBN)..(1L<<FIRCPWBN))
		#define FIRLOPOSSHIFT (16-(FIRCPWBN+1))		// shift for lopos of sampleposition -> (16 - FIRCPWBN - 1)
		#define FIRLEN 9							// number(-1) of multiplications per sample
		#define FIRCUT 0.90f						// cutoff of filter
		#define MIXNDX_FIRMIXERSRC  0x20			// src-type for firfilter
	 new vars:
		static signed short *cFirLut;				// lulines
		static int bFirInitialized	= 0;			// initialized?
		static int nFirOrder		= FIRLEN;		// order (modplug has 4smps pre/post extension, so limit this to 9)
		static float nFirFC			= FIRCUT;		// cutoff (normalized to pi/2)
		static int nFirCpw			= (1L<<FIRCPWBN);	// number of precalculted filter lines
		static int nFirUsers		= 0;			// reference counter
	 new macros:
		#define SNDMIX_GETMONOVOL8FIRFILTER
		#define SNDMIX_GETMONOVOL16FIRFILTER
		#define SNDMIX_GETSTEREOVOL8FIRFILTER
		#define SNDMIX_GETSTEREOVOL16FIRFILTER
	new mixer interface macros:
		BEGIN_MIX_INTERFACE(Mono8BitFirFilterMix)
		BEGIN_MIX_INTERFACE(Mono16BitFirFilterMix)
		BEGIN_RAMPMIX_INTERFACE(Mono8BitFirFilterRampMix)
		BEGIN_RAMPMIX_INTERFACE(Mono16BitFirFilterRampMix)
		BEGIN_MIX_INTERFACE(FastMono8BitFirFilterMix)
		BEGIN_MIX_INTERFACE(FastMono16BitFirFilterMix)
		BEGIN_FASTRAMPMIX_INTERFACE(FastMono8BitFirFilterRampMix)
		BEGIN_FASTRAMPMIX_INTERFACE(FastMono16BitFirFilterRampMix)
		BEGIN_MIX_INTERFACE(Stereo8BitFirFilterMix)
		BEGIN_MIX_INTERFACE(Stereo16BitFirFilterMix)
		BEGIN_RAMPMIX_INTERFACE(Stereo8BitFirFilterRampMix)
		BEGIN_RAMPMIX_INTERFACE(Stereo16BitFirFilterRampMix)
		BEGIN_MIX_FLT_INTERFACE(FilterMono8BitFirFilterMix)
		BEGIN_MIX_FLT_INTERFACE(FilterMono16BitFirFilterMix)
		BEGIN_RAMPMIX_FLT_INTERFACE(FilterMono8BitFirFilterRampMix)
		BEGIN_RAMPMIX_FLT_INTERFACE(FilterMono16BitFirFilterRampMix)
		BEGIN_MIX_STFLT_INTERFACE(FilterStereo8BitFirFilterMix)
		BEGIN_MIX_STFLT_INTERFACE(FilterStereo16BitFirFilterMix)
		BEGIN_RAMPMIX_STFLT_INTERFACE(FilterStereo8BitFirFilterRampMix)
		BEGIN_RAMPMIX_STFLT_INTERFACE(FilterStereo16BitFirFilterRampMix)
	modified:
		const LPMIXINTERFACE gpMixFunctionTable[2*2*16] // to hold new fir mixer interface
		const LPMIXINTERFACE gpFastMixFunctionTable[2*2*16] // to hold new fir mixer interface
		functioN: UINT CSoundFile::CreateStereoMix(int count)
			new:
				if (!(pChannel->dwFlags & CHN_NOIDO))
				{
					// use hq-fir mixer?
					if( ((gdwSoundSetup & (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) == (SNDMIX_HQRESAMPLER|SNDMIX_ULTRAHQSRCMODE)) ||
						((gdwSoundSetup & (SNDMIX_HQRESAMPLER)) == (SNDMIX_HQRESAMPLER)) )
						nFlags += MIXNDX_FIRMIXERSRC;
					else
						nFlags += MIXNDX_LINEARSRC; // use
				}
			was:
				if (!(pChannel->dwFlags & CHN_NOIDO))
				{
					nFlags += MIXNDX_LINEARSRC; // use
				}