Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!rutgers!cmcl2!phri!cooper!john From: john@cooper.cooper.EDU (John Barkaus) Newsgroups: comp.graphics Subject: GIF file format responses 2/5 Keywords: GIF LZW Message-ID: <1487@cooper.cooper.EDU> Date: 21 Apr 89 20:53:23 GMT Organization: The Cooper Union (NY, NY) Lines: 146 This contains C source for decoding GIF It is uuencoded and zoo'd --- cut here begin 644 decoder.zoo M6D]/(#(N,#`@07)C:&EV92X:``#;-QB-)C"@`,7#(&SAYY*0Y@X8."!1#4H"(D0/'#18@Q.0! M,85.&3ME(`9Q`4)(4#=EZ-`9J8(I""AEY+1),V=.FC<0J8(XDP8H1)T@Z*`I M`R),';$>P[[A**=,&38[VY*A2D>EF+-DP[@A`R*-FS%LZEAT*E8K1HM](>K= M"4?.FS-RPK0I.P<$&ZQG*(=%8UAN&I=:N7H%<6=LVXIURKA@ZC2)XC$8Y9#1 M.X;LG<]H-N<5\P8HSB2D];JDLW:,9Y<]?Y*]DH8-9Y^DT:R]X]@GX;$@#MOF M/"9WX%>]8D08`T4G8OB!-'(L/A7MFU3SG=Z74& M649XU$88=)Q0UFEUA6'1@7*L41D*=+0ATQMF.&52&W#4,4=4OH'@6FQP>(1@ M&63@I!<(2)@@15&7C;$&"!O"L=AJ)#DEQ5MEA/$A"$Z\X=,<.H!`!6>5F=$< M61BY04<8YY55T449106"8V?Y159''X74UX$#SN%4:6ETUU=E5DW%1AARX#1' M776,04<=D;$!%T[$Z0:"1ROY%08;5[Z1)5+L\>034"`PY]QGJK4&VAPX27>' M.39'T@@(*C.`7 M8(*1)<*;9+B`A@BUWAH88B)$)<>KO]*:1!-0/"$%%486@06T*AQHYQMCH)#" M#B!TZ^VWX'8KD*%ZS28;C9:E(49D*LE&&3BE%4:G99P1+Z)NU-&& M&%&I*&9\%BF)%%]^@5"$%%),X0(2L,Z*K[/0)L'O5DD!G(?`V])Z+[-<[PNM MH/^RH24*Z>'Q%J3I(K6S&RDX]6T50F1!11$@Q#WW%EWLH+>W7D/KMMU!&9YC M?`8;B21'&\OI\9-KN"JEQG;631:&@:D3U1L\;(25TQXA:7!_(L-&Y]$!DFGF' MH->;'$<=ZMF-1SKFALS4QDVJ"BO3A%*[=J2Z:<1+(>F:EC M[KOB6?:$Q\@4D$E5^EA;'%2H`]8P*K!*U%@@\AT0;#(P9-&*I]S0@NXYIBQF M,-7/$%@EG`"/3CBCC\ZRN4?'/%)4>7!*;.10AR&>JGVV&:$?9:4`1G;-D9"4 M)$8V1H=$CJ!I$G-"%9C`!&_!@`FU0BBAFA`$+'SA(`69@K=H`(,-6N':ZTW$=B4E(#(I+ M$HA3LJRTI2^-Z4RSLS,VZ92G4`W7N*S`R2WYC*D]VD@"C^I2F"9JJ4Y\Y5.C M2M:I5I4C5PTK%)/)U:1^50HT1A=HSHN)*QD+*M*()=JFCZA6BH-W>,G4@>[U#DDUJZ+Y>FXF%`J MDS%SJ_7R*78Z"F1;=FITOUFM5FE M%K9A?66#V(8$@AZ```:@%>U`1B`SS>TLG*<2%;9F)%CCQE4,GYF#(=" M-[3BFFY.PFL9\H(&(E1LR_Q0I]FN-K0*5/!:%G(2@^BB%USC&D)0YSLVHQ+7 MOB#`KWZK"[`ZF,$,6Y!!#6Y0./0&>,`NT:Z,ZNM6!3MAORJ``^KJ^E^I#@0* M;_"+J?($LPP7.+LQXFZ]BAN1)SCA",&UR!<.-( M[;!#3AM.=IE/S,S/Y/JE,`PH:RQ%,&%I:NA_A0P%1BN]- M,4L6YQ85!"N8B>.Z19S#>E9(0XX!"'C``\K*8=6F3G53-^)<7?.ZU&68-ZU7ZNLK.' M,A3`H&S>Z@-(P?:O%D_2(@.+3T/\M>B7*6RHR:09IO3TQ75";T?:HT MX`0/REZHC7&\XH:7"O_%LZ_W9SE:HX'/N?SMXJL=&^- MZPG#!)VX,X[AG,3836N!--!BIN$U--U;*X6JB`M<&>>BKL$/5G:X<)[S\8#; MZ&6GM]&U)9->O_OKWV+W]MJ>7+C#FZ=SRR8>^?[V$?\\JD&'ZF11D(8AG[?Q MO29ZN,G.K16L(`V'OVOBR`MI M$+)S88[W<,G[KK?G:>Z_)09=.S?$([:\VKNENGDP_1(&J7WW]XG<_G*4GLM*'[O:BBQOII,<[ MTZ'Z]*CC<>KPK7K7L6Y:OK38ZMM5>V''4V/'7&978&AG!LIW.Y'=I\7 M-J&7`G47?W=U>@XX>4.R>N$2>'TQ>,UG>+6G(['+9#7*>VG@:Y2 M>9>7?E"U>5'5>1'X+Q-8@7=78B:3<*G'@635>@X&8;$W9+2'7KL'54D(+DO( M7T,&?&0G?$HG?7Q@=L86>=QW?,IG?L<':\Z5?$K7`LS7@LZG=+O'A>C&$,XU M?JRV;DD!`B:PAE6R8S[B8VS8/843?2>S=RBP:2F``ME#@$6Y9X/Y\XA&"#%'4R*K%$!G&B.59Q!FY@,:#B M)*-B!J5B)0E4&DR$$1RR)+T2CA%KX(!R`'/2A0 M(!OQ,V?P!AF1$^@X(T5$'8?6B?&Q$+M%,223%O,8!EQT$L0Q%7,0+UCA)FXA M-0]6)FE@60L!%E0P<%`0&+2$074@*E0Q%JNT$PMI-"V`!._B$%6!+28N3.9-(%_P$:*36:%&!`FIT&V0@%B#Y+:26EFFPEFC@7SMU8C=).H%C M)6I$3)4V((]S2=J723=D.45DEK4%$1)!$6D`)@V'C[$1:25S,YF"%GR!6V1P M2]2$'5_4C6,`/44`%.U"$G`IEP,A`@$2&2-S+"+P$@5)%*PS!S)AEI<9'VV4 MBY$('3]S1IV3)VQC2&^3`CK$';FA%3^#6]PH,L1(4H-&F"D3'WD2.UHT0E*R MEZ#SFM!CB,M)1!#!;WV1()6!;0+7!DY1@(-1;Q M,WFRB(@RFLHS3ZY2(O8Q1V41BG\R)G&I/*#S,WN)`CXR,16C)"03-3>3!(P) M`N*A$3*1)P=2B>>T/G?0G`.10#]3;I?%(3M3*7F9$80!%,`+1X&8NB!$RK@>D,D!S&WDR3A>LHVJ97Z M5C2E'3AA!F/0,ZN:$PXV!I7$J$O5JD6%$S5'*TZW2,/8,7_":O'9:,TV<7?0 MEZH1@4F>G:7?A@8:LJ&IWV!9]&K;B:7F-T:+V:61G7*KJQ$UQRCL.Q M%AWR7E+R;&S"<#@"=B\AF-3#/V0@IBZQB'!`,6Z`$U]*&F5P`KL9FN4R)=5( MIF4D0NWA'IDW@/0S9*J:@O,*`N,2!-=R1M"!'OAH51OA3`GD>F80%6=&LFSG M>D.&`I=*$BE@+3&"J'+UJ$5)@@Q9&&[!LK&J74Q M?0Y6MZ\Z/\XEHY"ZM=.(2PMW(%%S&20(,OB8&\LHH6\X*8'C(XN&)2RA M&SE;-V"9+JM2G5PI.@B*$QU"/[(MIFL&ZK9.!'%B@@ M?C=HB'@7-J6?O,'8(N$1Y"[B'SQ,QUG+!YAJV]*&K@!7,ZH14DQ MNHSV3$U'LLGJP-$J?WA',VZ!`JX'A'DGKN^V@-T"?28F(GA$NLE$G%A5L*AJ M,IV&:+Z:D6GJ*FMJ'C[1!J_RPF\K=(-'4CVPAL,F@R0(57?8:@?*;3YL*8DU M;II"5V5<:XB%:\6V:[T6QC:GE2;A)'[129#6;-A&4,UAL?0F)=O4`@2K554B M@"_Q$*)D)1M#B@U:L252%>KR0QI7K,XC@%<<+@NLK%HL=^6);TB[Q4;&=78!IDR%RO2(W2;LD&\H"B*$^9# MQ(BA%4@#/#>*'<;DES_*!I"V$Q\"Q$=[T!LU[A$+8450-A,3V3F9_S8-G!OK6A0[81 M%2:$!\4;2H3".FPQ<#?C1(8,.BN$%%9-SXB2)Q]2SJK!:;4FG>27(=M+G7+UY2*Z71HXJET@[ MP^A%@XK7%A.#2,=_>2 MF8:!1MUY`I7A*61JRPGD,Q!QP$E\*8;\&:CB(1F6%PQGL$G-$]/!)"OB*<-Z MMN"<34[R!H;\NS')CGC$O:F)H$0!$_<[I&T@&+;Z6'3P`W1]TM^20&MXTQK, M(EB-RFMA:5#"1KBQ)X1"UM*Q<5(=('_A*OYL!D]MN4Q-3-E-U0T7W?#]*"5$ MSOI[)0(2U9NA*GFASAH:3P/.T5^+`H@,/Y:H1/F3&QY<0O>\$?F\SV$0L4&A MT9!;%V7B=0-.LU6R$0+:X6O0;,)=O'6`HBHZ'-BQ)I&53)!6TN$R$"B`!*[L M!@Z4!"'8+4(P3,*M._XMLI:,=]&<3#ZPTD+2TNIW M5U^.&-=';63N+9;W2&0@P9-$4*6MWO13VBJ`'G_M7*JJVC']+8WUWI`[!V?T M%299%I>A1&6=N;KK$IP[E7)#-\G[2H8\%FR@PE4QU<2;FA/2FG0ZD(]^(=,- MMM>M&9"K.Y9"TET.59DL?F!N;6DL7&1NV>!RYW"0YYW>E5N@'7EX5W0NE;BN MZWP.VR?F(3PTBJ6EW:;"O#UTW?EK*3L-!WHB5X;LZYZ[L3WIZ9\0@"T M'M36*76$<94!&3WR'Q[-OIO!*>_R!I,RD7H27Y:EI;6:&,;1(S]R,^5FR$4E MCB4..`V1!!R<%Z>1D9S#!F>M`KKCL/O)B-&N*?JNE-%+[7C@STO>TT,5%4\2 M-=HNN,%567*"U\[@K+^+=>.Z]0F>QQ1TU52VA*_!=1F>42/+:4]T^M=@JO=+=9Z MQF%N6&U,!V0>S39UK3,A`VO^Q:'%\V?,:\56VFR^`G)<@O$&`GV>JT#"[NGN M$I-R`HB2O"0#XQ;!%V]2DZP)$6T!FALG&U%!U_9-N\S>7N86." MMVE^W;%>@GQM!GX=:[^'`F*('CJ\=H,WV'MKV!886C_O^\JZV(34-F_SV)ZC MJ&@PV\@/TS%<_BY1P>&:;HV]_`Z&$T2K*4;;$/)/$"F9ZH?#KI\;\D&> M3.G)D:9=() M,V9N'3A(T3RU8Q"A0A!SZHAY&7.F5S95R["9`S?H"P4C*C:=">))%2I?GACY MTJ1(DR=2LH!H$0,&:-%.00@)0N3+D"=$BGR9DD1+D=DR;(=FFEM*$=Y?BDB1 M`GMVC-O,25^1DH2*<.G4I2#'/OKI$RA%G$2?7KW%#/*YAS@/XGU]^-DT%"@( M"-RGQ/T"`2<8``!/%P``20`8&F3!@R9>2`,).&31D7*!6`4/%"@8(1($FZ*0."R9,A M09A,K$@GS9B7,=/,!)&D"90G4JB`*(.'3D@W+F&6D4G32)""(.24.9.&8DB7 M=/+`*1-S(IHW6K>-F3IHS,S?..9L61!6V4MS"%4MV*H@Q M:#*"H%($"Y6W<0N;`4'7+EZRAQ.+K$(EB9,LD`F79?/&S9F:3YP<"2W7<.6[ M>4&0-NW7IFK6DD$(5>OYL