amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (03/14/91)
Submitted-by: Michael Jansson <mij@IDA.LiU.SE> Posting-number: Volume 91, Issue 062 Archive-name: libraries/smalliffparse/part01 [ includes uuencoded libraries and executables ...tad ] This archive contains files that when compiled will produce a standard amiga library that is an exact sub-set of the iffparse.library. The library is an EXACT sub-set in the sense that you can rename it to be iffparse.library and put it in your LIBS: directory and then let programs that normally requires the true iffparse.library use this imposture ;-). It is an exact SUB-SET because some of the function does only exist as dummy functions that always fails (noop:s) and some of the function only supports some of the functionality of the real thing. The big difference is that only DOS-files and the Clipboard can be used as input/output and that the parser can only be used in the raw-step mode (No StopOnExit, StopChunk etc). Look in the code for more details. Do you want to know how to use the functions? Read the code ;-) or buy the autodocs for the iffparser. I have included a few programs that illustrates the use of the iffparser. They will work with both the small and the real iffparser. #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 2)." # Contents: ReadMe SafeSmallIF.uu SmallIFFPar.uu binaries # binaries/cutclip.uu binaries/lsclip.uu sources sources/cutclip.c # sources/handleiff.h sources/iffparse.pra sources/libsup.c # sources/lsclip.c sources/makefile sources/pasteclip.c # sources/undefs.h # Wrapped by tadguy@ab20 on Wed Mar 13 20:46:15 1991 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'ReadMe' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'ReadMe'\" else echo shar: Extracting \"'ReadMe'\" \(3959 characters\) sed "s/^X//" >'ReadMe' <<'END_OF_FILE' X The Small IFF Parser - By Michael Jansson X X XWHAT IS IT? X XThis archive contains files that when compiled will produce a standard amiga Xlibrary that is an exact sub-set of the iffparse.library. X XThe library is an EXACT sub-set in the sense that you can rename it to be Xiffparse.library and put it in your LIBS: directory and then let programs Xthat normally requires the true iffparse.library use this imposture ;-). X XIt is an exact SUB-SET because some of the function does only exist as dummy Xfunctions that always fails (noop:s) and some of the function only supports Xsome of the functionality of the real thing. The big difference is that Xonly DOS-files and the Clipboard can be used as input/output and that the Xparser can only be used in the raw-step mode (No StopOnExit, StopChunk Xetc). Look in the code for more details. X XDo you want to know how to use the functions? Read the code ;-) or buy Xthe autodocs for the iffparser. X XI have included a few programs that illustrates the use of the iffparser. XThey will work with both the small and the real iffparser. X XTHE CONTENT X XI have included two versions of the library: SafeSmallIFFParse.library and XSmallIFFParse.library. The 'safe' version will prompt you for a reply Xwhenever a program opens the library. The unsafe version will offer its Xservices to any programs that wants it. Properly written program will in Xworst case notice that the library can't do some of the true library's Xfunctions and should just fail. X XThe programs I have included will manipulate the clipboard. They are Xcalled LsClip, CutClip and PasteClip and they will list the IFF-content, Xput some text in the clipboard and paste text from the clipboard. X X XHOW DO I USE IT X XThe library is used by renaming one of the versions to 'iffparse.library' X(IMPORTANT!) and then put it in LIBS:. X XYou need 2.0 includes to re-compile the library and the programs and XManx C-compiler and the libstart.asm file that comes with Manx 5.0. X X XLEGALITY X XThis library has NOT been written by any means of reverse engineering or Xdisassembling of the true library. The only thing I have 'stolen' is the Xspecification and the library offsets (I assume that anyone may use them in Xthis way once you have purchased them from SAS, Manx, CATS or what-ever). XI find no ethical problems with this and since it has been done before in Xsome sense (remember arp?) I guess it is ok to do so. The people I have Xbeen in contact with feel the same way so I assume that I am not violating Xany copyrights. X XThe code is in Public Domain so you may use it or abuse it in any way you Xwant, and I assume that I will get the proper credits if you do (a kind Xword or a beer will do ;-). X X XWHO NEEDS IT? X XIf you have legally required the true iffparse.library then you don't want Xto use this library because it is only a inferior sub-set of it, unless you Xare interested in saving some disk space. If you don't have the true Xiffparse.library then you might find that some programs that uses the Xiffparse.library works with this sub-set. In either case you might want to Xuse the code to port 2.0 programs that uses the iffparser to be usable Xwithout the library. X X XGUARANTEES X XSorry, there is no such thing. If it blows up then it blows up - Don't Xblame me ;-). I am using the library with another project of mine where I Xam using both the clipboard and files to read write very complex IFF:s. My Xprograms works equally good with the real thing and my substitute both under Xnormal circumstances and when error occurs. X XI practice safe programming ;-) which means that I check every function Xthat might fail and I deallocate and closes all resources that was Xallocated or opened in the code (this is obvious of course) so the code Xwill probably work in both normal and extreme circumstances. X X XMISSING THINGS? X XHave I missed something essential in the library? Let me know and I might Xfix it. X X X!(c) 1991, Michael Jansson. XE-Mail: mij@ida.liu.se END_OF_FILE if test 3959 -ne `wc -c <'ReadMe'`; then echo shar: \"'ReadMe'\" unpacked with wrong size! fi # end of 'ReadMe' fi if test -f 'SafeSmallIF.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'SafeSmallIF.uu'\" else echo shar: Extracting \"'SafeSmallIF.uu'\" \(7337 characters\) sed "s/^X//" >'SafeSmallIF.uu' <<'END_OF_FILE' Xbegin 666 SafeSmallIFFParse.library XM```#\P`````````#``````````(```02````F0````$```/I```$$DCG`"`D@ XM;P`()6\`#``B%7P`"0`(0>R`RB5(``H5?``&``YP`!`Z#3<U0``4-7P`*``6D XM0>R`VR5(`!AP`4S?!`!.=4CG(``O#$ZY```-R'0!+PYP`$/Z`6TL;():3J[]0 XMV"Q?*4""8F8*<``H7TS?``1.=4CG,#)V4"0\```!0'(`(#P`(```0>R!0B9(- XM0>R!+B1(0>R!&B)(D<@L;()B3J[^I$S?3`PD`"\.(FR"8BQL@EI.KOYB+%]*H XM@F8$<`!@JE)N`"`@3M'\````#G``$!`(@``#$(`@#F"02.<@`"\,3KD```W(^ XM=``&;O__`"!*;@`@9A9P`!`N``X(```#9PHO#DZN_^XL7R0`(`(H7TS?``1.- XM=4CG,``O#$ZY```-R'0`2FX`(&90)"X`(B\.(E<L;():3J[_!"Q?,"X`$-!N! XM`!("@```__\F`"\.(`,@5W(`,B@`$$2!TI<B02QL@EI.KO\N+%\O#B)L@EXL[ XM;():3J[^8BQ?8`P@3M'\````#@C0``,@`BA?3-\`#$YU=&]P87HN9F]N=`!5* XM<V4@4VUA;&PM249&4&%R<V4N;&EB<F%R>3\`1&\@:70A`$]H(&YO(0!I;G1UV XM:71I;VXN;&EB<F%R>0``2.<P("1O`!`F+P`4#&H``@`09A`@4B!0T?P````LJ XMUY!T`&`>2.<P`G8`)"\`!"(2+&R"7DZN_[Y,WT`,)`!O`G0`(`),WP0,3G5(4 XMYS`P)&\`%"9O`!@F+P`<#&H``@`09CP@4B!0,7P``P`<(%(@4"%+`"@@4B!0\ XM(4,`)"\.(%(B4"QL@EI.KOXX+%\@4B!0$"@`'TB`1$!(P"0`8!I(YS`")B\`[ XM!"0+(A(L;()>3J[_T$S?0`PD`$J";P)T`"`"3-\,#$YU2.<P,"1O`!0F;P`8! XM)B\`'`QJ``(`$&90(%(@4#%\``(`'"!2(%`A2P`H(%(@4"%#`"0O#B!2(E`L) XM;():3J[^."Q?(%(@4$HH`!]F"B!2(%`D*``@8!`@4B!0$"@`'TB`1$!(P"0`7 XM8!I(YS`")B\`!"0+(A(L;()>3J[_UDS?0`PD`"`"3-\,#$YU2.<@("1O``P,] XM:@`"`!!F&"!2(%`(*````"]G""!2(%!2J``L=`!@-DCG,`)V`'0`(A(L;()>S XM3J[_ODS?0`QR`DZZ#$QG&$CG,`)V`'0!(A(L;()>3J[_ODS?0`PD`$J";P)T` XM`"`"3-\$!$YU+PQ.N0``#<@O""!7,7P``@`0<`!83RA?3G4O#$ZY```-R"\(+ XM(%<Q?``!`!!P`%A/*%].=4CG("`O#$ZY```-R$CG@(`D;P`$)!="J@`((&H`; XM#`)0``$E0@`$#&H``@`09BI*@F8,(%(@4#%\``(`'&`*(%(@4#%\``,`'"!27 XM(%!"J``L(%(@4$*H`#!P`%!/*%],WP0$3G5.5?_T2.<`("\,3KD```W(*TC_\ XM_"1M__P,:@`"`!!F="`J``0"@`````$,@`````%F("!2(%`Q?``$`!PK3O_XM XM(%(B4"QL@EI.KOXX+&W_^&!"(%(@4$JH`"!G."!2(%!**``?9BY![?_X(E(B1 XM42-(`"@@4B!0(7P````$`"0K3O_T(%(B4"QL@EI.KOXX+&W_]&"^*%],WP0`A XM3EU.=4CG`"`O#$ZY```-R)7*+PXB/``!``%P*BQL@EI.KO\Z+%\D0$J`9@IPL XM`"A?3-\$`$YU+PYR`"`\```$`"QL@EI.KO\Z+%\E0``,9A(O#G`J(DHL;():< XM3J[_+BQ?E<H@"F#(2.<`("\,3KD```W(+P@D5R`*9RQ*J@`,9Q8O#B`\```$4 XM`")J``PL;():3J[_+BQ?+PYP*B)*+&R"6DZN_RXL7UA/*%],WP0`3G5(YP`@: XM+PQ.N0``#<@O`)7*+PXB/``!``!P#"QL@EI.KO\Z+%\D0$J`9V9"IT*G3KH(. XM0"5```103V=60J="ITZZ"#`E0``(4$]G1DAX`#0O*@`$3KH)-B2`4$]G-"\.# XM<@`B4B`O``1!^@=@+&R"6DZN_D0L7TJ`9PPO$DZZ"5I"DEA/8`P@"EA/*%],, XMWP0`3G4O#B!*3J[_!"Q?<`!@Z$CG`"`O#$ZY```-R"\()%=*DF<8+PXB4BQL+ XM@EI.KOX^+%\O$DZZ"1)"DEA/2JH`!&<*+RH`!$ZZ"%983TJJ``AG"B\J``A.M XMN@A&6$\@"F<0+PYP#")*+&R"6DZN_RXL7UA/*%],WP0`3G4O#$ZY```-R$CG# XM@,!P_T_O``PH7TYU+PQ.N0``#<A(Y^"`<`!/[P`0*%].=4CG`"`O#$ZY```-/ XMR$CG@(`D;P`$))="*@`$(`I03RA?3-\$`$YU2.<`("\,3KD```W(+P!!UR1(4 XM$!)(@#\`3KH&Z$I`5$]F!@P2`"!F4A`J``%(@#\`3KH&T$I`5$]F"`PJ`"``_ XM`68X$"H``DB`/P!.N@:V2D!43V8(#"H`(``"9AX0*@`#2(`_`$ZZ!IQ*0%1/X XM9@@,*@`@``-F!'`!8`)P`$C`6$\H7TS?!`!.=4CG`"`O#$ZY```-R"\`0=<DM XM2!`22(`_`$ZZ!F!*0%1/9@8,$@`@9E(0*@`!2(`_`$ZZ!DA*0%1/9@@,*@`@W XM``%F.!`J``)(@#\`3KH&+DI`5$]F"`PJ`"```F8>$"H``TB`/P!.N@842D!49 XM3V8(#"H`(``#9@1P`6`"<`!(P%A/*%],WP0`3G5(YR`@+PQ.N0``#<A(YX#`@ XM)&\`!"07+P(O+P`,+PI.NOHB2H!/[P`,9PYP^T_O``PH7TS?!`1.=2!J``C1H XMR-'J``PP$.)(`H```/__T(+C2`)0``&!4'``8-)(YS`P+PQ.N0``#<A(YX#`1 XM)&\`!"9O``@D%R`+9@YP]T_O``PH7TS?#`Q.=4J"9QH@*@`(T(`@:@`,,#`(Y XM`.)(`H```/__L()L&"`J``C0@"!J``PP,`@`XD@"@```__\D`"\"+PLO"DZZZ XM^?HF`$_O``QN#$J#9@1P_V"D</M@H"!J``C1R-'J``PP$.)(`H```/__D(+C# XM2`)0``&!4"`J``C0@"!J``PP,`@`XDAF$B\*3KKZ.DJ`6$]G!G#V8`#_8"`"( XM8`#_6DY5_^Q(YP`@+PQ.N0``#<A([0$'__`D;?_\*VW_\/_L2'@`"$AM__0OV XM"DZZ^/1*@$_O``QG#'#Z*%],WP0`3EU.=4JM_^QG-DAX``1(;?_L+PI.NOC,[ XM2H!/[P`,9P1P^F#64JH`""`J``C0@"!J``P"<``!"```<``("`!@%%*J``@@N XM*@`(T(`@:@`,`G```0@`<`!@HDY5__A(YR`@+PQ.N0``#<@K2/_\)&W__"`JI XM``C0@"!J``PP,`@`XD@"@```__\D`"`"1(!9@"\`+PI.NO@$2H!03V<,</DH\ XM7TS?!`1.74YU("H`"-"`(&H`##`P"`#B2`*```#__RM`__A(>``$2&W_^"\*5 XM3KKX%$J`3^\`#&<$</M@PDJJ``AG.E.J``@@:@`(T<C1Z@`,,!#B2`*```#_? XM_R(J``C2@2)J``PR,1@"XDD"@0``___0@5"`XT@"4``!@5`O`B\*3KKW=DJ`` XM4$]G!G#Y8`#_<"`J``C0@"!J``PP,`@"XD@(````9S9(>``!2'H"PB\*3KKWT XMD$J`3^\`#&<&</M@`/\^("H`"-"`(&H`#-'`,!#B2%)`XT@"4``!@5!P`&``] XM_QY.5?_H2.<@("\,3KD```W(2.T!`?_X)&W__$*M__0,K0````+_^&8``C9*C XMJ@`(9R8@*@`(T(`@:@`,,#`(`.)(9A13J@`(0JH`&G#^*%],WP0$3EU.=4JJ8 XM``AG7B`J``C0@"!J``PP,`@``D```69*0JH`&B`J``C0@"!J``PP,`@`XD@B2 XM*@`(TH$@:@`,,C`8`.))`D$``=!!`H```/__+P`O"DZZ]G!*@%!/9P1P^6":B XM4ZH`"'#^8))(>``$2&W_\"\*3KKW%B0`3^\`#&X02H)F!G#_8`#_='#[8`#_+ XM;BM._^@@+?_P3J[^_BQM_^A*@&8&</9@`/]42'@`!$AM_^PO"DZZ]M8D`$_OD XM``QN$$J"9@9P_V``_S1P^V``_RX,K49/4DW_\&<>#*U04D]0__!G%`RM0T%42 XM(/_P9PH,K4Q)4U3_\&8<2'@`!$AM__0O"DZZ]HA*@$_O``QN!G#[8`#^ZDJM# XM__1G<"!J``C1R-'J``PP$.)(`H```/__+P!R`B`M_^Q.N@-LT*W_[%"`(A^2# XM@.-)`E```8-0("W_[%F`XTA2J@`((BH`"-*!(&H`#`)P``$8`(%P&``@*@`(U XMT(`@:@`,`G#__@@``'```0@`)6W_]``>8&`@:@`(T<C1Z@`,,!#B2`*```#_6 XM_R\`<@(@+?_L3KH"_-"M_^Q0@"(?DH#C20)0``"`M_^SC2%*J``@B*@`(X XMTH$@:@`,`G```1@`@7`8`"`J``C0@"!J``P"</_^"``E;?_P`!HE;?_L`")*P XMK?_T9P1P!&`"<`!(P"5``"9P`&``_?!P_V``_>HO#$ZY```-R"\((!<&@```B XM`!)83RA?3G5C;&EP8F]A<F0N9&5V:6-E``!P`$YU2OP```U2```-;(`!"0``L XM``#(````V0```+@``$CG__Y(YX"`85!#[():0>R"6K')9@XR/``":PAP`"+`< XM4<G__"E.@EI#^@`D3J[^:"E`@EYF#"X\``.`!TZN_Y1@!$ZZ\DY03TS??_].K XM=61O<RYL:6)R87)Y`$GY``!__DYU,"\`!$'L@5<0,```2(`"0``#3G5(YR`P7 XM)F\`$$CG``)P_RQL@EI.KOZV3-]``"0`#(#_____9@AP`$S?#`1.=4CG``(BO XM/``!``%P(BQL@EI.KO\Z3-]``"1`2H!F%DCG``(@`BQL@EI.KOZP3-]``'``: XM8,8E2P`*%6\`%P`)%7P`!``(0BH`#A5"``](YP`"D\DL;():3J[^VDS?0``EF XM0``0(`MG%$CG``(B2BQL@EI.KOZ>3-]``&`0($K1_````!0O"$ZZ`9Y83R`*T XM8`#_;$CG`"`D;P`(2JH`"F<22.<``B)*+&R"6DZN_IA,WT``%7P`_P`()7S_R XM____`!1(YP`"<``0*@`/+&R"6DZN_K!,WT``2.<``G`B(DHL;():3J[_+DS?[ XM0`!,WP0`3G5(YR`P)F\`$"0O`!0@"V8(<`!,WPP$3G5(YP`"(CP``0`!(`(LC XM;():3J[_.DS?0``D0$J`9@1P`%7P`!0`(-4(`$B5+``X@"F#&2.<`("1O_ XM``@@"F8&3-\$`$YU%7P`_P`()7S_____`!0E?/____\`&$CG``)P`#`J`!(B] XM2BQL@EI.KO\N3-]``&#*2.=(`$*$2H!J!$2`4D1*@6H&1($*1``!83Y*1&<"P XM1(!,WP`22H!.=4CG2`!"A$J`:@1$@%)$2H%J`D2!81H@`6#8+P%A$B`!(A]*\ XM@$YU+P%A!B(?2H!.=4CG,`!(04I!9B!(038!-`!"0$A`@,,B`$A`,@*"PS`!V XM0D%(04S?``Q.=4A!)@$B`$)!2$%(0$)`=`_0@-.!MH%B!)*#4D!1RO_R3-\`0 XM#$YU(&\`!""(6)!"J``$(4@`"$YU``````/L````&`````````!*````X@``' XM`1P```.6```#L````\X```0V```$T```!3(```5\```&&@``!H````:6```&( XML```!M8```=>```'Y@``"$````D,```)H@``"LP```TH```-5```#5@````$[ XM`````0``#6````UD```-:```#<H````````#\@```^H```"6````0@```-H`_ XM``$4````````!,@```/&```*P```!"H```4J```(.```!]X```9\```&?```Z XM"0````F6```&?```!GP```9\```&?```!GP```9\```&?```!GP```9\```&` XM?```!I(```:2```&D@``#20```:2```&D@``!GP```9\```&?```!I(```9\% XM```&?```!GP```.L```#D@``!70```82```&S@``!U8```:H_____P```"8`: XM````````````#6YI9F9P87)S92YL:6)R87)Y`%-U8G-E="!O9B!T:&4@:69F/ XM<&%R<V4N;&EB<F%R>2`M($)Y($UI8VAA96P@2F%N<W-O;@T*``````&.``D`D XM`?__````)``0`````````9D`````__\````'``0````````!M0````#__P``* XM``<`!````1````&\```````@("`@("`@("`P,#`P,"`@("`@("`@("`@("`@I XM("`@()!`0$!`0$!`0$!`0$!`0$`,#`P,#`P,#`P,0$!`0$!`0`D)"0D)"0$!` XM`0$!`0$!`0$!`0$!`0$!`0$!0$!`0$!`"@H*"@H*`@("`@("`@("`@("`@("L XM`@("`@)`0$!`(```````````````````````````````````````````````J XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM```````````#[`````(````!````O````4@````Q```````````````$````L XM"````!`````4````&````!P````@````)````"@````L````,````#0````X4 XM````/````$````!$````2````$P```!0````5````%@```!<````8````&0`P XM``!H````;````'````!T````>````'P```"`````A````(@```",````D```4 XM`)0```"8````G````*````"D````J````*P```"P````Q````1````$D```!+ X9.````4P````````#\@```^L````!```#\JP`* X`` Xend Xsize 5200 END_OF_FILE if test 7337 -ne `wc -c <'SafeSmallIF.uu'`; then echo shar: \"'SafeSmallIF.uu'\" unpacked with wrong size! fi # end of 'SafeSmallIF.uu' fi if test -f 'SmallIFFPar.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'SmallIFFPar.uu'\" else echo shar: Extracting \"'SmallIFFPar.uu'\" \(8345 characters\) sed "s/^X//" >'SmallIFFPar.uu' <<'END_OF_FILE' Xbegin 666 SmallIFFParse.library XM```#\P`````````#``````````(```3=````AP````$```/I```$W4Y5``!(< XMYP`@)&T`""5M``P`(DZZ$&I(>@!&3KH2YA5\``D`"$'L@,HE2``*%7P`!@`.? XM<``0.@_=-4``%#5\`"@`%D'L@-LE2``82'H`&4ZZ$K)P`5!/3-\$`$Y=3G5?> XM;6%I;@H`7VUA:6X*`$Y5__PK0/_\+PQ.N0``$'Y.NA``2'H`*DZZ$GQ2;@`@+ XM0>X`#G``$!`(@``#$(!(>@`83KH28B`.4$\H7TY=3G5M>4]P96X*`&UY3W!E, XM;@H`3E7_^$CG(``K0/_\+PQ.N0``$'YT`$ZZ#ZI(>@!&3KH2)@9N__\`($IN> XM`"!83V8<<``0+@`."````V<0*T[_^'``3J[_[BQM__@D`$AZ`!U.NA'T(`)8J XM3RA?3-\`!$Y=3G5M>4-L;W-E"@!M>4-L;W-E"@!.5?_X2.<P`"M`__PO#$ZY@ XM```0?G0`3KH/-DAZ`(Q.NA&R2FX`(%A/9F`D+@`B*T[_^")M__@L;((63J[_" XM!"QM__@P+@`0T&X`$G(`,@`F`2M.__@@`R!M__AR`#(H`!!$@=*M__@B02QL& XM@A9.KO\N+&W_^"M.__@B;((:+&R"%DZN_F(L;?_X8`A![@`."-```TAZ`!].V XMNA$Z(`)83RA?3-\`#$Y=3G5M>45X<'5N9V4*`&UY17AP=6YG90H`3E7_^$CG; XM,"`D;0`()BT`#$ZZ#GY(>@!,3KH0^@QJ``(`$%A/9A`@4B!0T?P````LUY!T7 XM`&`B2.T`#/_X=@`D+?_\(A(L;((:3J[_ODSM``S_^"0`;P)T`"`"3-\$#$Y=J XM3G53965K4W1R96%M"@!.5?_X2.<P,"1M``@F;0`,)BT`$$ZZ#@Q(>@!V3KH0W XMB`QJ``(`$%A/9C@@4B!0,7P``P`<(%(@4"%+`"@@4B!0(4,`)"!2(E`L;((6W XM3J[^."!2(%`0*``?2(!$0$C`)`!@'DCM``S_^"8M__PD"R(2+&R"&DZN_]!,5 XM[0`,__@D`$J";P)T`"`"3-\,#$Y=3G57<FET95-T<F5A;0H``$Y5__A(YS`P" XM)&T`""9M``PF+0`03KH-;DAZ`(1.N@_J#&H``@`06$]F3"!2(%`Q?``"`!P@3 XM4B!0(4L`*"!2(%`A0P`D(%(B4"QL@A9.KOXX(%(@4$HH`!]F"B!2(%`D*``@W XM8!`@4B!0$"@`'TB`1$!(P"0`8!Y([0`,__@F+?_\)`LB$BQL@AI.KO_63.T`& XM#/_X)``@`DS?#`Q.74YU4F5A9%-T<F5A;0H`3E7_^$CG("`D;0`(3KH,S$AZP XM`'9.N@](#&H``@`06$]F&"!2(%`(*````"]G""!2(%!2J``L=`!@/DCM``S_, XM^'8`=``B$BQL@AI.KO^^3.T`#/_X<@).N@YN9QQ([0`,__AV`'0!(A(L;((:% XM3J[_ODSM``S_^"0`2H)O`G0`(`),WP0$3EU.=4%L:6=N4W1R96%M"@``3E7_0 XM_"M(__PO#$ZY```0?DZZ##)(>@`:3KH.KB!M__PQ?``"`!!P`%A/*%].74YUS XM26YI=$E&1F%S0VQI<`H``$Y5__PK2/_\+PQ.N0``$'Y.N@OR2'H`&DZZ#FX@P XM;?_\,7P``0`0<`!83RA?3EU.=4EN:71)1D9A<T1/4PH`3E7_^$CG("!([0$!? XM__@O#$ZY```0?B1M__PD+?_X3KH+IDAZ`%9.N@XB0JH`""!J``P"4``!)4(`H XM!`QJ``(`$%A/9BI*@F8,(%(@4#%\``(`'&`*(%(@4#%\``,`'"!2(%!"J``L^ XM(%(@4$*H`#!P`"A?3-\$!$Y=3G5/<&5N249&"@``3E7_^$CG`"`K2/_\+PQ.E XMN0``$'XD;?_\3KH+*$AZ`'Y.N@VD#&H``@`06$]F9"`J``0"@`````$,@```= XM``%F&"!2(%`Q?``$`!P@4B)0+&R"%DZN_CA@.B!2(%!*J``@9S`@4B!02B@`M XM'V8F0>W_^")2(E$C2``H(%(@4"%\````!``D(%(B4"QL@A9.KOXX8,8H7TS?/ XM!`!.74YU0VQO<V5)1D8*`$Y5__Q(YP`@*T#__"\,3KD``!!^3KH*ADAZ`%1.F XMN@T"E<HB/``!``%P*BQL@A9.KO\Z)$!*@%A/9@QP`"A?3-\$`$Y=3G5R`"`\P XM```$`"QL@A9.KO\Z)4``#&8.<"HB2BQL@A9.KO\NE<H@"F#.06QL;V-)1D8*N XM`$Y5__Q(YP`@*TC__"\,3KD``!!^)&W__$ZZ"@I(>@`Z3KH,AB`*6$]G)$JJY XM``QG$B`\```$`")J``PL;((63J[_+G`J(DHL;((63J[_+BA?3-\$`$Y=3G5&? XM<F5E249&"@``3E7_^$CG`"`K0/_\+PQ.N0``$'Z5RDZZ":I(>@":3KH,)BM.C XM__@B/``!``!P#"QL@A9.KO\Z+&W_^"1`2H!83V=J0J="ITZZ"98E0``$4$]G5 XM6D*G0J=.N@F&)4``"%!/9TI(>``T+RH`!$ZZ"HPD@%!/9S@K3O_X<@`B4B`MT XM__Q!^@!#+&R"%DZN_D0L;?_X2H!G#"\23KH*K$*26$]@#"`**%],WP0`3EU.S XM=2!*3J[_!'``8.Q/<&5N0VQI<&)O87)D"@!C;&EP8F]A<F0N9&5V:6-E`$Y5W XM__Q(YP`@*TC__"\,3KD``!!^)&W__$ZZ"-)(>@!:3KH+3DJ26$]G%")2+&R"_ XM%DZN_CXO$DZZ"C9"DEA/2JH`!&<*+RH`!$ZZ"7I83TJJ``AG"B\J``A.N@EJ3 XM6$\@"F<,<`PB2BQL@A9.KO\N*%],WP0`3EU.=4-L;W-E0VQI<&)O87)D"@!.' XM5?_T2.T#`?_T+PQ.N0``$'Y.N@A02'H`$$ZZ"LQP_UA/*%].74YU3D]/4`H`E XM3E7_\$CM`0?_\"\,3KD``!!^3KH((DAZ`!!.N@J><`!83RA?3EU.=4Y53$Q?H XM3D]/4`H``$Y5__A(YP`@2.T!`?_X+PQ.N0``$'XD;?_\3KH'YDAZ`!Q.N@IB` XM)*W_^$(J``0@"EA/*%],WP0`3EU.=4E$=&]3='(*``!.5?_\2.<`("M`__POB XM#$ZY```0?D'M__PD2$ZZ!Z!(>@!\3KH*'!`22(`_`$ZZ!Y9*0%Q/9@8,$@`@^ XM9E(0*@`!2(`_`$ZZ!WY*0%1/9@@,*@`@``%F.!`J``)(@#\`3KH'9$I`5$]F@ XM"`PJ`"```F8>$"H``TB`/P!.N@=*2D!43V8(#"H`(``#9@1P`6`"<`!(P"A?Q XM3-\$`$Y=3G5';V]D240*`$Y5__Q(YP`@*T#__"\,3KD``!!^0>W__"1(3KH&# XM_$AZ`'Q.N@EX$!)(@#\`3KH&\DI`7$]F!@P2`"!F4A`J``%(@#\`3KH&VDI`W XM5$]F"`PJ`"```68X$"H``DB`/P!.N@;`2D!43V8(#"H`(``"9AX0*@`#2(`_2 XM`$ZZ!J9*0%1/9@@,*@`@``-F!'`!8`)P`$C`*%],WP0`3EU.=4=O;V14>7!EL XM"@!.5?_T2.<@($CM`P'_]"\,3KD``!!^)&W_^"0M__1.N@922'H`1DZZ",XO, XM`B\M__PO"DZZ^!Q*@$_O`!!G#'#[*%],WP0$3EU.=2!J``C1R-'J``PP$.)(H XM<@`R`-*"XTD"4``!@U!P`AW)I=&5#:'5N:T)Y=&5S"@``3E7_]$CG,#!(R XM[0,!__0O#$ZY```0?B1M__@F;?_\)"W_]$ZZ!=)(>@"N3KH(3B`+6$]F#'#WF XM*%],WPP,3EU.=4J"9Q@@*@`(T(`@:@`,,#`(`.)(<@`R`+*";!8@*@`(T(`@I XM:@`,,#`(`.)(<@`R`"0!+P(O"R\*3KKW^"8`3^\`#&X,2H-F!'#_8*IP^V"FW XM(&H`"-'(T>H`##`0XDAR`#(`DH+C20)0``"`J``C0@"!J``PP,`@`XDAF6 XM$B\*3KKX6DJ`6$]G!G#V8`#_:"`"8`#_8E)E861#:'5N:T)Y=&5S"@!.5?_LG XM2.<`($CM`0?_\"\,3KD``!!^)&W__"MM__#_[$ZZ!.Y(>@!\3KH':DAX``A(* XM;?_T+PI.NO:V2H!/[P`09PQP^BA?3-\$`$Y=3G5*K?_L9S9(>``$2&W_["\*" XM3KKVCDJ`3^\`#&<$</I@UE*J``@@*@`(T(`@:@`,`G```0@``'``"`@`8!12H XMJ@`(("H`"-"`(&H`#`)P``$(`'``8*)0=7-H0VAU;FL*``!.5?_X2.<@("M(V XM__PO#$ZY```0?B1M__Q.N@1(2'H!%$ZZ!L0@*@`(T(`@:@`,,#`(`.)(<@`R" XM`"0!(`)$@%F`+P`O"DZZ]8Q*@$_O``QG#'#Y*%],WP0$3EU.=2`J``C0@"!J9 XM``PP,`@`XDAR`#(`*T'_^$AX``1(;?_X+PI.NO7`2H!/[P`,9P1P^V#$2JH`- XM"&<X4ZH`""!J``C1R-'J``PP$.)(<@`R`"`J``C0@")J``PP,0@"XD@"@```] XM___2@%"!XTD"4``!@U`O`B\*3KKU`$J`4$]G!G#Y8`#_="`J``C0@"!J``PP4 XM,`@"XD@(````9S9(>``!2'H`0"\*3KKU/DJ`3^\`#&<&</M@`/]"("H`"-"`O XM(&H`#-'`,!#B2%)`XT@"4``!@5!P`&``_R)0;W!#:'5N:PH```!.5?_L2.<@R XM($CM`0'_^"\,3KD``!!^)&W__$*M__1.N@,$2'H"0$ZZ!8`,K0````+_^%A/% XM9@`"*$JJ``AG)B`J``C0@"!J``PP,`@`XDAF%%.J``A"J@`:</XH7TS?!`1.> XM74YU2JH`"&=<("H`"-"`(&H`##`P"``"0``!9DA"J@`:("H`"-"`(&H`##`P. XM"`#B2"(J``C2@2!J``PR,!@`XDD"00`!T$%R`#(`+P$O"DZZ\^)*@%!/9P1P7 XM^6"<4ZH`"'#^8)1(>``$2&W_\"\*3KKTSB0`3^\`#&X02H)F!G#_8`#_=G#[: XM8`#_<"`M__!.KO[^2H!F!G#V8`#_7DAX``1(;?_L+PI.NO26)`!/[P`,;A!*! XM@F8&</]@`/\^</M@`/\X#*U&3U)-__!G'@RM4%)/4/_P9Q0,K4-!5"#_\&<*2 XM#*U,25-4__!F'$AX``1(;?_T+PI.NO1(2H!/[P`,;@9P^V``_O1*K?_T9VX@S XM:@`(T<C1Z@`,,!#B2'(`,@`@+?_L+P%R`DZZ`X;0K?_L4(`B'Y*`XTD"4``!7 XM@U`@+?_L68#C2%*J``@B*@`(TH$@:@`,`G```1@`@7`8`"`J``C0@"!J``P"> XM</_^"```<``!"``E;?_T`!Y@7B!J``C1R-'J``PP$.)(<@`R`"`M_^PO`7("K XM3KH#&-"M_^Q0@"(?DH#C20)0``"`M_^SC2%*J``@B*@`(TH$@:@`,`G``6 XM`1@`@7`8`"`J``C0@"!J``P"</_^"``E;?_P`!HE;?_L`")*K?_T9P1P!&`"V XM<`!(P"5``"9P`&``_?YP_V``_?A087)S94E&1@H`3E7__"M(__PO#$ZY```0* XM?DZZ`*1(>@`83KH#("`M__P&@````!)83RA?3EU.=4-U<G)E;G1#:'5N:PH`1 XM<`!.=4K\```0"```$"*```D`````R````-D```"X``!(Y__^2.>`@&%00^R"B XM%D'L@A:QR68.,CP``6L(<``BP%')__PI3H(60_H`)$ZN_F@I0((:9@PN/``#( XM@`=.KO^48`1.NN^84$],WW__3G5D;W,N;&EB<F%R>0!)^0``?_Y.=3`O``1!C XM[($3$#```$B``D```TYU2.<@,"9O`!!(YP`"</\L;((63J[^MDS?0``D``R`/ XM_____V8(<`!,WPP$3G5(YP`"(CP``0`!<"(L;((63J[_.DS?0``D0$J`9A9(] XMYP`"(`(L;((63J[^L$S?0`!P`&#&)4L`"A5O`!<`"15\``0`"$(J``X50@`/! XM2.<``I/)+&R"%DZN_MI,WT``)4``$"`+9Q1(YP`"(DHL;((63J[^GDS?0`!@' XM$"!*T?P````4+PA.N@(46$\@"F``_VQ(YP`@)&\`"$JJ``IG$DCG``(B2BQLB XM@A9.KOZ83-]``!5\`/\`""5\_____P`42.<``G``$"H`#RQL@A9.KOZP3-]`- XM`$CG``)P(B)*+&R"%DZN_RY,WT``3-\$`$YU2.<@,"9O`!`D+P`4(`MF"'``Y XM3-\,!$YU2.<``B(\``$``2`"+&R"%DZN_SI,WT``)$!*@&8$<`!@V!5\``4`7 XM"#5"`!(E2P`.(`I@QDCG`"`D;P`((`IF!DS?!`!.=15\`/\`""5\_____P`4: XM)7S_____`!A(YP`"<``P*@`2(DHL;((63J[_+DS?0`!@RDCG2`!"A$J`:@1$5 XM@%)$2H%J!D2!"D0``6$^2D1G`D2`3-\`$DJ`3G5(YT@`0H1*@&H$1(!21$J!C XM:@)$@6$:(`%@V"\!81(@`2(?2H!.=2\!808B'TJ`3G5(YS``2$%*068@2$$VT XM`30`0D!(0(##(@!(0#("@L,P`4)!2$%,WP`,3G5(028!(@!"04A!2$!"0'0/' XMT(#3@;:!8@22@U)`4<K_\DS?``Q.=7``,"\`!$CG@`(L>``$3J[]_$S?0`%.) XM=2!O``00&&<$8>1@^$YU809*@&OZ3G4O#BQX``1.KOX"+%].=2)O``A@!$/OR XM``@@;P`$+PI%^O^X800D7TYU+PXL>``$3J[]]BQ?3G5(YP`P3.\/```,8>9,? XMWPP`3G4@;P`$((A8D$*H``0A2``(3G4``````^P````8`````````'@```#,^ XM```!0```!$8```2&```$R@``!4P```7R```&:@``!LP```>B```(*```"%8`D XM``B.```(T@``"78```H>```*F@``"X````PL```-;```#]0``!`*```0#@``2 XM``0````!```0%@``$!H``!`>```0@`````````/R```#Z@```(4```!L````F XMO````3`````````%X@``!+@```U:```%/```!EH```J(```*#```"!H```@:$ XM```+;@``#!P```@:```(&@``"!H```@:```(&@``"!H```@:```(&@``"!H`3 XM``@:```(2```"$@```A(```/R```"$@```A(```(&@``"!H```@:```(2```_ XM"!H```@:```(&@``!'H```0Z```&O```!Y(```C"```)9@``"'S_____````V XM)@`````````````0)&EF9G!A<G-E+FQI8G)A<GD`4W5B<V5T(&]F('1H92!IB XM9F9P87)S92YL:6)R87)Y("T@0GD@36EC:&%E;"!*86YS<V]N#0H````@("`@8 XM("`@("`P,#`P,"`@("`@("`@("`@("`@("`@()!`0$!`0$!`0$!`0$!`0$`,L XM#`P,#`P,#`P,0$!`0$!`0`D)"0D)"0$!`0$!`0$!`0$!`0$!`0$!`0$!0$!`V XM0$!`"@H*"@H*`@("`@("`@("`@("`@("`@("`@)`0$!`(```````````````$ XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM```````````````````````````````````````````#[`````$````!````Q XMO````"T```````````````0````(````$````!0````8````'````"`````D1 XM````*````"P````P````-````#@````\````0````$0```!(````3````%``4 XM``!4````6````%P```!@````9````&@```!L````<````'0```!X````?```X XM`(````"$````B````(P```"0````E````)@```"<````H````*0```"H````< X=K````+````#$`````````_(```/K`````0```_*<5 X`` Xend Xsize 5924 END_OF_FILE if test 8345 -ne `wc -c <'SmallIFFPar.uu'`; then echo shar: \"'SmallIFFPar.uu'\" unpacked with wrong size! fi # end of 'SmallIFFPar.uu' fi if test ! -d 'binaries' ; then echo shar: Creating directory \"'binaries'\" mkdir 'binaries' fi if test -f 'binaries/cutclip.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'binaries/cutclip.uu'\" else echo shar: Extracting \"'binaries/cutclip.uu'\" \(6858 characters\) sed "s/^X//" >'binaries/cutclip.uu' <<'END_OF_FILE' Xbegin 666 cutclip XM```#\P`````````#``````````(```0[````AP````$```/I```$.T[Z`LI./ XM5?_`2.<@,"9M``J5R@QM``(`"&<.2'H!HDZZ!JY83V```5!P`$/Z`:HL;('&W XM3J[]V"E`@<IF#DAZ`:E.N@:,6$]@``$N+&R!RDZN_^(D0$J`9@Y(>@'`3KH&H XM<%A/8``!$G``+&R!RDZN_PHD@&8.2'H!Q4ZZ!E183V```/8@2BQL@<I.KO\0Y XM<`$@2BQL@<I.KO_<2H!G#DAZ`<U.N@8L6$]@``#.2&W_Q$ZZ`?A(P"0`6$]FE XM``"\*T+_P'3_(CQ&3U)-(#Q&5%A4($HL;('*3J[_K"0M_\`D`&P,/P)(;?_$H XM3KH!SEQ/*T+_P'3_(CQ#2%)3<``@2BQL@<I.KO^L)"W_P"0`;`P_`DAM_\1.& XMN@&B7$\O*P`$3KH'3EA/2,`B:P`$($HL;('*3J[_OB0`;`P_`DAM_\1.N@%X? XM7$\@2BQL@<I.KO^F)`!L##\"2&W_Q$ZZ`5Y<3R!*+&R!RDZN_Z8D`&P,/P)(3 XM;?_$3KH!1%Q/(`IG(B!*+&R!RDZN_]!*DF<*(%(L;('*3J[_!"!*+&R!RDZN= XM_\I*K('*9PPB;('*+&R!QDZN_F)"9TZZ#2Y43TS?#`1.74YU57-A9V4Z($-U0 XM=$-L:7`@6W-T<FEN9UT`:69F<&%R<V4N;&EB<F%R>0!%<G)O<B!I;B!C=71CN XM;&EP.B!#;W5L9"!N;W0@;W!E;B!I9F9P87)S92YL:6)R87)Y(0!%<G)O<B!I@ XM;B!C=71C;&EP.B!/=70@;V8@;65M;W)Y(0!%<G)O<B!I;B!C=71C;&EP.B!#5 XM;W5L9"!N;W0@;W!E;B!T:&4@8VQI<&)O87)D(0!%<G)O<B!I;B!C=71C;&EP> XM.B!#;W5L9"!N;W0@;W!E;B!P<FEM87)Y(&-L:7`@:6X@8VQI<&)O87)D(0``H XM(!\@5TC0_O\@0'``3M`@;P`$,"\`"&8"<`%,Z/[^``0@4$[0*D]A<D/L@<9%5 XM[('&M<EF#C(\`!5K"'0`(L)1R?_\*4^!SBQX``0I3H'&2.>`@`@N``0!*6<0_ XM2_H`"$ZN_^)@!D*G\U].<T/Z`").KOYH*4"!TF8,+CP``X`'3J[_E&`&*D].K XMN@`:4$].=61O<RYL:6)R87)Y`$GY``!__DYU2.<`($CG``(B/``!```P+(&Z7 XMP?P`!BQL@<9.KO\Z3-]``"E`@=9F'DCG`0:;S2X\``$``"QL@<9.KO^43-]@( XM@"YL@<Y.=2!L@=9":``$(&R!UC%\``$`$"!L@=8Q?``!``H@;('.("R!SI"HG XM``10@"E`@=H@;(':(+Q-04Y82.<``I/)+&R!QDZN_MI,WT``)$!*J@"L9SHO. XM+P`,+R\`#"\*3KH!"CE\``&!WB!L@=98B#`0",``#S"`(&R!UM'\````"C`0* XM",``#S"`3^\`#&!J2.<``B!*T?P```!<+&R!QDZN_H!,WT``2.<``B!*T?P`+ XM``!<+&R!QDZN_HQ,WT``*4"!X"!L@>!*J``D9R9(YP`"(&R!X"!H`"0B$"QL: XM@=).KO^"3-]``"\L@>`O"DZZ`L103REL@>"!Y$CG``(L;('23J[_RDS?0``@D XM;('6((!(YP`"+&R!TDZN_\1,WT``(&R!UB%```9G)$CG(`(D/````^U!^@`T. XM(@@L;('23J[_XDS?0`0@;('6(4``#"\L@>0_+('H3KK[(%Q//P!.N@GT5$],& XMWP0`3G4J`$CG.#(F+P`<*"\`("9O`"0@0TJH`*QG%"!#("@`K.6`+$`@+@`0, XMY8`D0&`$)&R!O!`22(!(P-"$5(`Y0('J2.<``G(`,&R!ZB`(+&R!QDZN_SI,J XMWT``*4"![&8&3-],'$YU$!)(@#0`,$(O""!*4H@O""\L@>Q.N@+,2'H!-#!"` XMT>R!["\(3KH''B\$+PLO+('L3KH!'B!L@>Q","``.7P``8'H,$(D2-7L@>Q2R XMBB9*3^\`(!`22(`T``Q``"!G&`Q"``EG$@Q"``QG#`Q"``UG!@Q"``IF!%**D XM8-@,$@`@;68,$@`B9B92BA`:2(`T`&<:%L(,0@`B9A`,$@`B9@12BF`&0BO_N XM_V`"8-Y@+!`:2(`T`&<B#$(`(&<<#$(`"6<6#$(`#&<0#$(`#6<*#$(`"F<$_ XM%L)@UD(;2D)F`E.*4FR!Z&``_VY"$TCG``)R`#`L@>A20$C`Y8`L;('&3J[_& XM.DS?0``I0('D9@A";('H8`#^ZG0`)&R![&`<,`)(P.6`(&R!Y"&*"``O"DZZQ XM`>;5P%**6$]20K1L@>AMWC`"2,#E@"!L@>1"L`@`8`#^KB``3.\#```$(`@BI XM+P`,2AAF_%.($-E7R?_\!($``0``:O)"($YU2.<@,"9O`!!![(`8)$A@*B!2V XML>H`!&0,(%)2DA""<``0`F`.<``0`C\`+PI.N@&H7$\,0/__9S92BQ039M(@` XM4K'J``1D#B!24I(0O``*<`!P"F`,/SP`"B\*3KH!>EQ/#$#__V<(<`!,WPP$U XM3G5P_V#V2.<P,BQO`!A(YP`"<`!#^@#6+&R!QDZN_=A,WT``*4"!\&8&3-],8 XM#$YU2.<``B!O`"`@:``D(&@`!"QL@?!.KO^R3-]``"1`2H!G?DCG``)#^@"AJ XM(&H`-BQL@?!.KO^@3-]``"0`9U!(YR`")#P```/M(A<L;('23J[_XDS?0`0FA XM0$J`9S(@"^6`)@`@0RUH``@`I"U+`)Q(YR`")#P```/M0?H`5B((+&R!TDZN4 XM_^),WT`$+4``H$CG``(@2BQL@?!.KO^F3-]``$CG``(B;('P+&R!QDZN_F),$ XMWT``0JR!\&``_T!I8V]N+FQI8G)A<GD`5TE.1$]7`"H`3.\#```$(`@B+P`,R XM8`(0V5?)__QG#`2!``$``&KP3G5"&%')__P$@0`!``!J\DYU(&\`!"`(2AAF3 XM_%-(D<`@"$YU2.<`($'L@`(D2"\*3KH!L%A/U?P````60>R!NK7(9>I,WP0`@ XM3G5(YSP@)&\`&#@O`!P@"F<``8(T*@`,9P`!>@@"``EF``%R"`(``V8``6H@& XM2M'\````##`0`D#O_3"`2JH`"&8:#$3__V8(<`!,WP0\3G4O"DZZ`G(T*@`,V XM6$\(`@`.9C`@4K'J``AC&C\\``$@$I"J``0O`!`J``Y(@#\`3KH#Y%!/)*H`M XM""!J`!#1TB5(``0,1/__9@1V`&`"%@0@$I"J``@J`#`"`D``H&=*#$3__V<B: XM(%)2DA"#($K1_`````PP$`C```XP@#0`0?K_#BE(@?12A0Q$__]G#`P#``IGL XM!KJJ`!!E!'C_8`PE4@`$<``0`V``_U0(`@`.9S!*A6<<+P4O*@`($"H`#DB`= XM/P!.N@022,"PA4_O``IF7"!*T?P````,,!`"0+__,(`,1/__9A(DJ@`()6H`" XM"``$<``0`V``_P9!^OZ4*4B!]"!*T?P````,,!`(P``.,(`DJ@`((&H`$-'2# XM)4@`!"!24I(0@W``$`-@`/[2($K1_`````PP$`C```(P@"5J``@`!"2J``APK XM_V``_K).5?_V2.<X("1M``AT`"`*9P9*:@`,9@IP_TS?!!Q.74YU""H``0`,I XM9@HO"DZZ`**$0%A/$"H`#DB`/P!.N@8BA$`(*@````U43V<*+RH`"$ZZ`4)88 XM3TIJ`!1G4DAZ`&Y(;?_W3KH!_#@J`!1V`%!/,`1(0$)`2$"`_``*2$`&0``P% XM<@>20T'M__<1@!``2$1"1$A$B/P`"E)##$,`!6W00BW__TAM__=.N@*L6$]"< XMDD*J``1"J@`(0FH`#$I"9P9P_V``_U9P`&``_U!435``2.<`("1O``@@"F9"7 XM0>R``B1(2FH`#&<D,"H`#`)``@AF&C\\__\O"DZZ_6X,0/__7$]F"'#_3-\$^ XM`$YUU?P````60>R!NK7(9<AP`&#H/SS__R\*3KK]0EQ/8-I(YR`@)&\`#'1!5 XM$"H`#DB`/P!.N@$P2D!43V<"="$E?```!```$$AX!`!.N@"\)4``"%A/9A@EG XM?`````$`$"!*T?P````/)4@`"#0\`(`@2M'\````#(50)6H`"``$)*H`"$S?L XM!`1.=4CG`#"7RR1L@?A@$"!*4(@B;P`,L\AG#B9*)%(@"F;L3-\,`$YU(`MG" XM!":28`0I4H'X2.<``B`J``10@")*+&R!QDZN_RY,WT``8-1(YP`P)&R!^&`<: XM)E)(YP`"("H`!%"`(DHL;('&3J[_+DS?0``D2R`*9N!"K('X3-\,`$YU2.<@U XM("0O``Q*@F8(<`!,WP0$3G5(YP`"<@`@`E"`+&R!QDZN_SI,WT``)$!*@&8$+ XM<`!@VD'Z_Y8I2('\)*R!^"5"``0I2H'X(`I0@&#`3.\#```$(`@0V6;\3G5(B XMYR`@-"\`##`"P?P`!B1`U>R!UDI";0JT;(&Z;`1*DF8..7P``X(`</],WP0$! XM3G5(YP`",`+!_``&(&R!UB(P"``L;('23J[_*$S?0`!*@&<$<`%@`G``8-!(/ XMYS`@-"\`$$ZZ`5PP`L'\``8D0-7L@=9*0FT*M&R!NFP$2I)F#CE\``."`'#_' XM3-\$#$YU2.<P`C!O`")3B"8()"\`'B(2+&R!TDZN_[Y,WT`,)@`,@/____]F] XM&$CG``(L;('23J[_?$S?0``Y0((`</]@NDCG,`)V`'0`(A(L;('23J[_ODS?H XM0`Q@HDCG``(B+P`(+&R!TDZN_[A,WT``2H!F&$CG``(L;('23J[_?$S?0``Y@ XM0((`</].=7``8/I(YS`@-"\`$$ZZ`)PP`L'\``8D0-7L@=9*0FT*M&R!NFP$3 XM2I)F#CE\``."`'#_3-\$#$YU,"H`!`)```-F"CE\``:"`'#_8.8(*@`#``1G< XM%DCG,`)V`70`(A(L;('23J[_ODS?0`Q(YS`")B\`(B0O`!XB$BQL@=).KO_0D XM3-]`#"8`#(#_____9AA(YP`"+&R!TDZN_WQ,WT``.4""`'#_8(P@`V"(2.<@1 XM`$CG``(B/```$`!P`"QL@<9.KO[.3-]``"0`"```#&<22FR!WF8((`),WP`$F XM3G5.N@`&<`!@\DCG,`)V!$'Z`"XD""\#+P(L;('23J[_Q"(`)!\F'RQL@=).S XMKO_03-]`##\\``%.N@`*5$].=5Y#"@!*K(("9Q0@;(("(&@`!$Z0(&R"`BE0+ XM@@)@YDJL@?1G!B!L@?1.D#\O``1.N@`&5$].=4CG,``P;P`,)@A*K('69S!TW XM`&`*/P).N@%R5$]20K1L@;IM\$CG``(P+(&ZP?P`!B)L@=8L;('&3J[_+DS?X XM0`!*K('\9P8@;('\3I!*K('`9Q1(YP`"(BR!P"QL@=).KO^F3-]``$JL@@9G5 XM""!L@@8@K((*2JR"#F<42.<``B)L@@XL;('&3J[^8DS?0`!*K((29Q1(YP`"@ XM(FR"$BQL@<9.KOYB3-]``$JL@A9G%$CG``(B;((6+&R!QDZN_F),WT``2JR"& XM&F<42.<``B)L@AHL;('&3J[^8DS?0`!(YP`&+'@`!`@N``0!*6<02_H`"$ZN7 XM_^)@!D*G\U].<RI?2JR!X&9`2JR![&<X2.<``C!L@>H@"")L@>PL;('&3J[_` XM+DS?0`!(YP`","R!Z%)`2,#E@")L@>0L;('&3J[_+DS?0`!@)$CG``(L;('&( XM3J[_?$S?0`!(YP`"(FR!X"QL@<9.KOZ&3-]``$CG``(B;('2+&R!QDZN_F),E XMWT``(`,N;('.3G5,WP`,3G5(YR`@-"\`##`"P?P`!B1`U>R!UDI";0JT;(&Z5 XM;`1*DF8..7P``X(`</],WP0$3G4(*@`'``1F$DCG``(B$BQL@=).KO_<3-]`F XM`$*2<`!@V@```^P````!`````0```T0````````#\@```^H```!Q````````) XM`````````@````````$```````````````````0``0`````!````````````) XM```````$``(``````0``````````````````````````````````````````' XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````%`````````````````/R) X,```#ZP````$```/RD X`` Xend Xsize 4872 END_OF_FILE if test 6858 -ne `wc -c <'binaries/cutclip.uu'`; then echo shar: \"'binaries/cutclip.uu'\" unpacked with wrong size! fi # end of 'binaries/cutclip.uu' fi if test -f 'binaries/lsclip.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'binaries/lsclip.uu'\" else echo shar: Extracting \"'binaries/lsclip.uu'\" \(9121 characters\) sed "s/^X//" >'binaries/lsclip.uu' <<'END_OF_FILE' Xbegin 666 lsclip XM```#\P`````````#``````````(```6/````QP````$```/I```%CT[Z`JQ.; XM5?_V2.<P,)?+E<IP`$/Z`58L;(+&3J[]V"E`@LIF#DAZ`55.N@:&6$]@``#R= XM+&R"RDZN_^(D0$J`9@Y(>@%K3KH&:EA/8```UG``+&R"RDZN_PHD@&8.2'H!: XM;TZZ!DY83V```+H@2BQL@LI.KO\0<``@2BQL@LI.KO_<2H!G#DAZ`79.N@8FF XM6$]@``"2<`(@2BQL@LI.KO_6)@!@:F!Z8'P@2BQL@LI.KO]2)D!T`&`,2'H!T XM?TZZ`<Q83U*"M*H`"&WN0>W_]B`K``PL;(+*3J[^\B\`+RL`$$'M__L@*P`(N XM+&R"RDZN_O(O`$AZ`4A.N@&23^\`$&`@+P-(>@%#3KH!@E!/8!8$@/____YGQ XMCE.`9XQ3@&>*8.!@`/]R(`IG(B!*+&R"RDZN_]!*DF<*(%(L;(+*3J[_!"!*! XM+&R"RDZN_\I*K(+*9PPB;(+*+&R"QDZN_F)"9TZZ$M)43TS?#`Q.74YU:69F2 XM<&%R<V4N;&EB<F%R>0!%<G)O<B!I;B!,<T-L:7`Z($-O=6QD(&YO="!O<&5NZ XM(&EF9G!A<G-E+FQI8G)A<GDA`$5R<F]R(&EN($QS0VQI<#H@3W5T(&]F(&UE5 XM;6]R>2$`17)R;W(@:6X@3'-#;&EP.B!#;W5L9"!N;W0@;W!E;B!T:&4@8VQI= XM<&)O87)D(0!%<G)O<B!I;B!,<T-L:7`Z($-O=6QD(&YO="!O<&5N('!R:6UA. XM<GD@8VQI<"!I;B!C;&EP8F]A<F0A`"X@`"5S("5L9"`E<PH`17)R;W(@:6X@Y XM3'-#;&EP.B!&86EL960@=&\@<F5A9"!T:&4@8VQI<&)O87)D("A%<G)O<B!#+ XM;V1E.B`E;&0I(0H``$CG("!![P`0)$@O"B\O`!!(;($:3KH%L#0`,`)/[P`,9 XM3-\$!$YU*D]A<D/L@L9%[(+&M<EF#C(\`!5K"'0`(L)1R?_\*4^"SBQX``0I@ XM3H+&2.>`@`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<T/Z`").KOYH*4""TF8,< XM+CP``X`'3J[_E&`&*D].N@`:4$].=61O<RYL:6)R87)Y`$GY``!__DYU2.<`` XM($CG``(B/``!```P+(*\P?P`!BQL@L9.KO\Z3-]``"E`@M9F'DCG`0:;S2X\: XM``$``"QL@L9.KO^43-]@@"YL@LY.=2!L@M9":``$(&R"UC%\``$`$"!L@M8QQ XM?``!``H@;(+.("R"SI"H``10@"E`@MH@;(+:(+Q-04Y82.<``I/)+&R"QDZNQ XM_MI,WT``)$!*J@"L9SHO+P`,+R\`#"\*3KH!"CE\``&"WB!L@M98B#`0",``J XM#S"`(&R"UM'\````"C`0",``#S"`3^\`#&!J2.<``B!*T?P```!<+&R"QDZNU XM_H!,WT``2.<``B!*T?P```!<+&R"QDZN_HQ,WT``*4""X"!L@N!*J``D9R9(B XMYP`"(&R"X"!H`"0B$"QL@M).KO^"3-]``"\L@N`O"DZZ`L103REL@N""Y$CGX XM``(L;(+23J[_RDS?0``@;(+6((!(YP`"+&R"TDZN_\1,WT``(&R"UB%```9G; XM)$CG(`(D/````^U!^@`T(@@L;(+23J[_XDS?0`0@;(+6(4``#"\L@N0_+(+H] XM3KK[/EQ//P!.N@]B5$],WP0`3G4J`$CG.#(F+P`<*"\`("9O`"0@0TJH`*QG% XM%"!#("@`K.6`+$`@+@`0Y8`D0&`$)&R"OA`22(!(P-"$5(`Y0(+J2.<``G(`Y XM,&R"ZB`(+&R"QDZN_SI,WT``*4""[&8&3-],'$YU$!)(@#0`,$(O""!*4H@O# XM""\L@NQ.N@+,2'H!-#!"T>R"["\(3KH,C"\$+PLO+(+L3KH!'B!L@NQ","``[ XM.7P``8+H,$(D2-7L@NQ2BB9*3^\`(!`22(`T``Q``"!G&`Q"``EG$@Q"``QGQ XM#`Q"``UG!@Q"``IF!%**8-@,$@`@;68,$@`B9B92BA`:2(`T`&<:%L(,0@`B2 XM9A`,$@`B9@12BF`&0BO__V`"8-Y@+!`:2(`T`&<B#$(`(&<<#$(`"6<6#$(`[ XM#&<0#$(`#6<*#$(`"F<$%L)@UD(;2D)F`E.*4FR"Z&``_VY"$TCG``)R`#`L7 XM@NA20$C`Y8`L;(+&3J[_.DS?0``I0(+D9@A";(+H8`#^ZG0`)&R"[&`<,`)(N XMP.6`(&R"Y"&*"``O"DZZ!U35P%**6$]20K1L@NAMWC`"2,#E@"!L@N1"L`@`R XM8`#^KB``3.\#```$(`@B+P`,2AAF_%.($-E7R?_\!($``0``:O)"($YU2.<@L XM,"9O`!!![($:)$A@*B!2L>H`!&0,(%)2DA""<``0`F`.<``0`C\`+PI.N@<6+ XM7$\,0/__9S92BQ039M(@4K'J``1D#B!24I(0O``*<`!P"F`,/SP`"B\*3KH&? XMZ%Q/#$#__V<(<`!,WPP$3G5P_V#V2.<P,BQO`!A(YP`"<`!#^@#6+&R"QDZN3 XM_=A,WT``*4""\&8&3-],#$YU2.<``B!O`"`@:``D(&@`!"QL@O!.KO^R3-]`' XM`"1`2H!G?DCG``)#^@"A(&H`-BQL@O!.KO^@3-]``"0`9U!(YR`")#P```/MN XM(A<L;(+23J[_XDS?0`0F0$J`9S(@"^6`)@`@0RUH``@`I"U+`)Q(YR`")#P`9 XM``/M0?H`5B((+&R"TDZN_^),WT`$+4``H$CG``(@2BQL@O!.KO^F3-]``$CG0 XM``(B;(+P+&R"QDZN_F),WT``0JR"\&``_T!I8V]N+FQI8G)A<GD`5TE.1$]7, XM`"H`3.\#```$(`@B+P`,8`(0V5?)__QG#`2!``$``&KP3G5"&%')__P$@0`!B XM``!J\DYU3E7]^$CG/S(F;0`(+&T`$'X`)&T`#!829@HP!TS?3/Q.74YU4HH,. XM`P`E9T`T!R!3L>L`!&0,(%-2DQ"#<``0`V`.<``0`S\`+PM.N@5:7$\,0/__! XM9P`$2%)"%A)F!#`"8+I2B@P#`"5FQ#X">``[?``@__X6&G``$`-@7@C$``!@( XM\@C$``%@[`C$``)@Y@C$``-@X%2.-"[__DI";`8(Q```1$(6&F!..WP`,/_^! XM=`!@%C`"YT!R`!(#T$'00M!"-``$0@`P%AIP`!`#0>R``P@P``(``&;:8!P$& XM0``@9ZA70&>J7T!GK%-`9Y950&>,5T!GM&"X.T+__#0\?<8,`P`N9E`6&@P#( XM`"IF$E2.-"[__DI";`0T/'W&%AI@*G0`8!8P`N=`<@`2`]!!T$+00C0`!$(`% XM,!8:<``0`T'L@`,(,``"``!FV@Q"?<9G!CM\`"#__CH"#`,`:&8&",0`!V`6' XM#`,`;&8&",0`!F`*#`,`3&8&",0`"!8:*TH`#'``$`-@``&48``#%@@$``=G: XM"EB.(&[__#"'8!H(!``&9PPP1UB.(F[__"*(8`A8CB!N__PPAW0`8``!K%B.V XM)&[__"\*3KH#JC0`#$5]QEA/9P:T16\"-`5@``&,5(X6+O__0>W]_"1($(-TE XM`6```7AT"&`0`$0`2'9X=!!@!@C$``1T"@P#`%AF"$'Z`IH@"&`&0?H"HR`(Z XM*T#]^`@$``9G"%B.+"[__&`:"`0`!&<*5(XP;O_^+`A@"E2.<``P+O_^+``(3 XM!``$9PI*AFP&1(8(Q``%0>W__"1(#$5]QF8">@%*AF8$2D5G(#!"(@@@!DZZ\ XM`I@@;?WX%3```#!"(@@@!DZZ`I(L`&;@0>W__)'*-`@(!``#9VP,`P!O9A1*5 XM0F<*#!(`,&<(M$5M!#H"4D5@4@P#`'AG!@P#`%AF1DI"9T(,$@`P9SRT16P0! XM0>W]_K'*9`@5/``P4D)@[`@$``!F&@QM`##__F82,`)40+!M__QL"#HM__Q5D XM16#,%0,5/``P5$*T16P00>W]_+'*9`@5/``P4D)@[&!,!$``)6<`_L($0``SW XM9P#^T@1```MG`/ZL4T!G`/[(6T!G`/["6T!G`/Y*4T!G`/ZH4T!G`/ZF5T!G? XM`/YH54!G`/ZH5T!G`/Z:8`#^)`@$``1G*`@$``5G!A4\`"U@&@@$``%G!A4\` XM`"M@#@@$``)G!A4\`"!@`E-"4D+>0@@$``!F``"*#&T`,/_^9D`(!``$9SHP9 XM!`)``"9G,B!3L>L`!&0.(%-2DQ":<``0*O__8`YP`!`:/P`O"TZZ`=1<3PQ`) XM__]G``#"4VW__%-"8#(@4['K``1D$"!34I,0K?__<``0+?__8!!P`!`M__\_H XM`"\+3KH!G%Q/#$#__V<``(I21S`M__Q3;?_\L$)NPCH",`)30DI`9RP@4['K" XM``1D#B!34I,0FG``$"K__V`.<``0&C\`+PM.N@%87$\,0/__9T9@S`@$``!G# XM.C0%8"H@4['K``1D#B!34I,0O``@<`!P(&`,/SP`("\+3KH!)%Q/#$#__V<2B XM4D<P+?_\4VW__+!";LI@`/MV</]@`/MZ,#$R,S0U-C<X.4%"0T1%1@`P,3(S3 XM-#4V-S@Y86)C9&5F`$CG2`!"A$J`:@1$@%)$2H%J!D2!"D0``6$^2D1G`D2`4 XM3-\`$DJ`3G5(YT@`0H1*@&H$1(!21$J!:@)$@6$:(`%@V"\!81(@`2(?2H!.& XM=2\!808B'TJ`3G5(YS``2$%*068@2$$V`30`0D!(0(##(@!(0#("@L,P`4)!K XM2$%,WP`,3G5(028!(@!"04A!2$!"0'0/T(#3@;:!8@22@U)`4<K_\DS?``Q.G XM=2!O``0@"$H89OQ32)'`(`A.=4CG`"!![($$)$@O"DZZ`;!83]7\````%D'LE XM@KRUR&7J3-\$`$YU2.<\("1O`!@X+P`<(`IG``&"-"H`#&<``7H(`@`)9@`!/ XM<@@"``-F``%J($K1_`````PP$`)`[_TP@$JJ``AF&@Q$__]F"'``3-\$/$YU' XM+PI.N@)R-"H`#%A/"`(`#F8P(%*QZ@`(8QH_/``!(!*0J@`$+P`0*@`.2(`_P XM`$ZZ`^103R2J``@@:@`0T=(E2``$#$3__V8$=@!@`A8$(!*0J@`(*@`P`@)`. XM`*!G2@Q$__]G(B!24I(0@R!*T?P````,,!`(P``.,(`T`$'Z_PXI2(+T4H4,@ XM1/__9PP,`P`*9P:ZJ@`0901X_V`,)5(`!'``$`-@`/]4"`(`#F<P2H5G'"\%A XM+RH`"!`J``Y(@#\`3KH$$DC`L(5/[P`*9EP@2M'\````##`0`D"__S"`#$3_7 XM_V82)*H`""5J``@`!'``$`-@`/\&0?K^E"E(@O0@2M'\````##`0",``#C"`- XM)*H`""!J`!#1TB5(``0@4E*2$(-P`!`#8`#^TB!*T?P````,,!`(P``",(`E" XM:@`(``0DJ@`(</]@`/ZR3E7_]DCG."`D;0`(=``@"F<&2FH`#&8*</],WP0<X XM3EU.=0@J``$`#&8*+PI.N@"BA$!83Q`J``Y(@#\`3KH&(H1`""H````-5$]GW XM"B\J``A.N@%"6$]*:@`49U)(>@!N2&W_]TZZ`?PX*@`4=@!03S`$2$!"0$A`/ XM@/P`"DA`!D``,'('DD-"J@`$0JH`"$)J``Q*0F<&</]@`/]6<`!@`/]05$U0`$CG, XM`"`D;P`((`IF0D'L@00D2$IJ``QG)#`J``P"0`((9AH_//__+PI.NOUN#$#_8 XM_UQ/9@AP_TS?!`!.==7\````%D'L@KRUR&7(<`!@Z#\\__\O"DZZ_4)<3V#:+ XM2.<@("1O``QT01`J``Y(@#\`3KH!,$I`5$]G`G0A)7P```0``!!(>`0`3KH`W XMO"5```A83V88)7P````!`!`@2M'\````#R5(``@T/`"`($K1_`````R%4"5J2 XM``@`!"2J``A,WP0$3G5(YP`PE\LD;(+X8!`@2E"((F\`#+/(9PXF2B12(`IF8 XM[$S?#`!.=2`+9P0FDF`$*5*"^$CG``(@*@`$4(`B2BQL@L9.KO\N3-]``P XM2.<`,"1L@OA@'"922.<``B`J``10@")*+&R"QDZN_RY,WT``)$L@"F;@0JR"; XM^$S?#`!.=4CG("`D+P`,2H)F"'``3-\$!$YU2.<``G(`(`)0@"QL@L9.KO\Z* XM3-]``"1`2H!F!'``8-I!^O^6*4B"_"2L@O@E0@`$*4J"^"`*4(!@P$SO`P``F XM!"`($-EF_$YU2.<@(#0O``PP`L'\``8D0-7L@M9*0FT*M&R"O&P$2I)F#CE\@ XM``.#`'#_3-\$!$YU2.<``C`"P?P`!B!L@M8B,`@`+&R"TDZN_RA,WT``2H!GZ XM!'`!8`)P`.<P(#0O`!!.N@%<,`+!_``&)$#5[(+62D)M"K1L@KQL!$J2M XM9@XY?``#@P!P_TS?!`Q.=4CG,`(P;P`B4X@F""0O`!XB$BQL@M).KO^^3-]`\ XM#"8`#(#_____9AA(YP`"+&R"TDZN_WQ,WT``.4"#`'#_8+I(YS`"=@!T`"(2[ XM+&R"TDZN_[Y,WT`,8*)(YP`"(B\`""QL@M).KO^X3-]``$J`9AA(YP`"+&R"% XMTDZN_WQ,WT``.4"#`'#_3G5P`&#Z2.<P(#0O`!!.N@"<,`+!_``&)$#5[(+6T XM2D)M"K1L@KQL!$J29@XY?``#@P!P_TS?!`Q.=3`J``0"0``#9@HY?``&@P!P* XM_V#F""H``P`$9Q9(YS`"=@%T`"(2+&R"TDZN_[Y,WT`,2.<P`B8O`"(D+P`>@ XM(A(L;(+23J[_T$S?0`PF``R`_____V882.<``BQL@M).KO]\3-]``#E`@P!PY XM_V",(`-@B$CG(`!(YP`"(CP``!``<``L;(+&3J[^SDS?0``D``@```QG$DIL. XM@MYF""`"3-\`!$YU3KH`!G``8/)(YS`"=@1!^@`N)`@O`R\"+&R"TDZN_\0B2 XM`"0?)A\L;(+23J[_T$S?0`P_/``!3KH`"E1/3G5>0PH`2JR#`F<4(&R#`B!HD XM``1.D"!L@P(I4(,"8.9*K(+T9P8@;(+T3I`_+P`$3KH`!E1/3G5(YS``,&\`4 XM#"8(2JR"UF<P=`!@"C\"3KH!<E1/4D*T;(*\;?!(YP`","R"O,'\``8B;(+6? XM+&R"QDZN_RY,WT``2JR"_&<&(&R"_$Z02JR"PF<42.<``B(L@L(L;(+23J[_< XMIDS?0`!*K(,&9P@@;(,&(*R#"DJL@PYG%$CG``(B;(,.+&R"QDZN_F),WT``F XM2JR#$F<42.<``B)L@Q(L;(+&3J[^8DS?0`!*K(,69Q1(YP`"(FR#%BQL@L9.1 XMKOYB3-]``$JL@QIG%$CG``(B;(,:+&R"QDZN_F),WT``2.<`!BQX``0(+@`$A XM`2EG$$OZ``A.KO_B8`9"I_-?3G,J7TJL@N!F0$JL@NQG.$CG``(P;(+J(`@BZ XM;(+L+&R"QDZN_RY,WT``2.<``C`L@NA20$C`Y8`B;(+D+&R"QDZN_RY,WT``L XM8"1(YP`"+&R"QDZN_WQ,WT``2.<``B)L@N`L;(+&3J[^ADS?0`!(YP`"(FR"D XMTBQL@L9.KOYB3-]``"`#+FR"SDYU3-\`#$YU2.<@(#0O``PP`L'\``8D0-7L[ XM@M9*0FT*M&R"O&P$2I)F#CE\``.#`'#_3-\$!$YU""H`!P`$9A)(YP`"(A(L? XM;(+23J[_W$S?0`!"DG``8-H```/L`````0````$```,F`````````_(```/J\ XM````L0`@("`@("`@("`P,#`P,"`@("`@("`@("`@("`@("`@()!`0$!`0$!`1 XM0$!`0$!`0$`,#`P,#`P,#`P,0$!`0$!`0`D)"0D)"0$!`0$!`0$!`0$!`0$!\ XM`0$!`0$!0$!`0$!`"@H*"@H*`@("`@("`@("`@("`@("`@("`@)`0$!`(```* XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM``````(````````!```````````````````$``$``````0``````````````) XM````!``"``````$`````````````````````````````````````````````' XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````````````````````!0``````````````_(```/KW X(`````0```_(`V X`` Xend Xsize 6488 END_OF_FILE if test 9121 -ne `wc -c <'binaries/lsclip.uu'`; then echo shar: \"'binaries/lsclip.uu'\" unpacked with wrong size! fi # end of 'binaries/lsclip.uu' fi if test ! -d 'sources' ; then echo shar: Creating directory \"'sources'\" mkdir 'sources' fi if test -f 'sources/cutclip.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/cutclip.c'\" else echo shar: Extracting \"'sources/cutclip.c'\" \(2376 characters\) sed "s/^X//" >'sources/cutclip.c' <<'END_OF_FILE' X/* X * Usage: CutClip [string] X * Function: Put a given in the clipboard as a FTXT-chunk. X * Description: This is an example of the standard way of using the X * iffparser when you want to write data to the clipboard X * (It works the same way for files). X * X * Written by: Michael Jansson. 1990-12-08 X */ X X X#include <libraries/iffparse.h> X#include <proto/iffparse.h> X#include <setjmp.h> X X#define NAME "Error in cutclip: " X#define ERR_USE "Usage: CutClip [string]" X#define ERR_LIB NAME "Could not open iffparse.library!" X#define ERR_MEM NAME "Out of memory!" X#define ERR_CLIP NAME "Could not open the clipboard!" X#define ERR_OPEN NAME "Could not open primary clip in clipboard!" X#define ERR_FAILED NAME "Failed to read the clipboard (Error Code: %ld)\n!" X#define LEVEL ". " X#define DONE "Done!" X#define SUCCESS 0L X#define Safe(fnc) if ((error=(fnc))<0L) longjmp(env, (int)error) X Xstruct Library *IFFParseBase; X Xvoid Xmain(int argc, char **argv) X{ X struct IFFHandle *iff = NULL; X jmp_buf env; X long error; X X if (argc!=2) { X puts(ERR_USE); X goto die; X } X X /* Open all the stuff that is needed! */ X if ((IFFParseBase=OpenLibrary("iffparse.library", 0L))==NULL) { X puts(ERR_LIB); X goto die; X } X if ((iff = AllocIFF())==NULL) { X puts(ERR_MEM); X goto die; X } X if ((iff->iff_Stream=(ULONG)OpenClipboard(0L))==0L) { X puts(ERR_CLIP); X goto die; X } X InitIFFasClip(iff); X if (OpenIFF(iff, IFFF_WRITE)) { X puts(ERR_OPEN); X goto die; X } X X /* Let's be very careful... */ X if (!(error=setjmp(env))) { X /* Start on the FORM-FTXT chunk... */ X Safe(PushChunk(iff, 'FTXT', 'FORM', IFFSIZE_UNKNOWN)); X X /* ...continue on the CHRS-FTXT chunk.*/ X Safe(PushChunk(iff, 0L, 'CHRS', IFFSIZE_UNKNOWN)); X Safe(WriteChunkBytes(iff, (APTR)argv[1], (long)strlen(argv[1]))); X Safe(PopChunk(iff)); X X /* Finish the outer most chunk. */ X Safe(PopChunk(iff)); X } X X /* Exit gracefully. */ Xdie: X if (iff) { X CloseIFF(iff); X if (iff->iff_Stream) X CloseClipboard((struct ClipboardHandle *)iff->iff_Stream); X FreeIFF(iff); X } X if (IFFParseBase) X CloseLibrary(IFFParseBase); X exit(0); X} END_OF_FILE if test 2376 -ne `wc -c <'sources/cutclip.c'`; then echo shar: \"'sources/cutclip.c'\" unpacked with wrong size! fi # end of 'sources/cutclip.c' fi if test -f 'sources/handleiff.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/handleiff.h'\" else echo shar: Extracting \"'sources/handleiff.h'\" \(1877 characters\) sed "s/^X//" >'sources/handleiff.h' <<'END_OF_FILE' X#include <iff/iffparse.h> X Xtypedef struct { X unsigned Complex : 1; X unsigned Size : 15; X} chunk; X Xstruct IFF { X ULONG iff_Stream; X ULONG iff_Flags; X ULONG iff_Depth; X chunk *iff_Stack; X short iff_Type; X struct ContextNode current; X}; X Xstruct CBHandle { X struct IOClipReq *cbh_Req; X struct MsgPort *cbh_CBport; X struct MsgPort *cbh_SatisfyPort; X}; X#define TraceCall KPutStr(__FUNC__"\n") X#define DoClipIO(req) DoIO((struct IORequest *)req) X#define IOReq(iff) ((struct CBHandle *)iff->iff_Stream)->cbh_Req X#define File(iff) (BPTR)((struct FileHandle *)iff->iff_Stream) X#define IFFStack iff->iff_Stack X#define IFFScan iff->iff_Scan X#define IFFptr iff->iff_Depth X X#define FILEHANDLE 0x01 X#define IOREQUEST 0x02 X Xvoid *NULL_NOOP(); Xlong NOOP(); Xlong GoodID(); Xlong GoodType(); XUBYTE *IDtoStr(long ID, UBYTE *Buf); Xlong InitIFFasClip(struct IFF *iff); Xlong InitIFFasDOS(struct IFF *iff); Xlong OpenIFF(struct IFF *iff, long rwmode); Xvoid CloseIFF(struct IFF *iff); Xstruct IFF *AllocIFF(void); Xvoid FreeIFF(struct IFF *iff); Xstruct CBHandle *OpenClipboard(long unit); Xvoid CloseClipboard(struct CBHandle *ch); Xlong WriteChunkBytes(struct IFF *iff, APTR data, long size); Xlong ReadChunkBytes(struct IFF *iff, APTR data, size_t datasize); Xlong AllocReadChunkBytes(struct IFF *iff, APTR data, size_t datasize); Xlong EnterNextChunk(struct IFF *iff, struct ContextNode *cn); Xlong PushChunk(struct IFF *iff, long id, long type, long size); Xlong EnterChunk(struct IFF *iff, long id,long type); Xlong PopChunk(struct IFF *iff); Xlong ExitChunk(struct IFF *iff); Xlong SkipChunk(struct IFF *iff); Xlong ParseIFF(struct IFF *iff, long control); Xstruct ContextNode *CurrentChunk(struct IFF *iff); X#define WriteChunkData(iff, data, size) WriteChunkBytes(iff, (APTR)data, (long)size) X X#define SUCCESS 0L X#define FAILED -1L END_OF_FILE if test 1877 -ne `wc -c <'sources/handleiff.h'`; then echo shar: \"'sources/handleiff.h'\" unpacked with wrong size! fi # end of 'sources/handleiff.h' fi if test -f 'sources/iffparse.pra' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/iffparse.pra'\" else echo shar: Extracting \"'sources/iffparse.pra'\" \(2309 characters\) sed "s/^X//" >'sources/iffparse.pra' <<'END_OF_FILE' X#pragma amicall(IFFParseBase, 0x1e, AllocIFF(d0)) X#pragma amicall(IFFParseBase, 0x24, OpenIFF(a0,d0)) X#pragma amicall(IFFParseBase, 0x2a, ParseIFF(a0,d0)) X#pragma amicall(IFFParseBase, 0x30, CloseIFF(a0)) X#pragma amicall(IFFParseBase, 0x36, FreeIFF(a0)) X#pragma amicall(IFFParseBase, 0x3c, ReadChunkBytes(a0,a1,d0)) X#pragma amicall(IFFParseBase, 0x42, WriteChunkBytes(a0,a1,d0)) X#pragma amicall(IFFParseBase, 0x48, ReadChunkRecords(a0,a1,d0,d1)) X#pragma amicall(IFFParseBase, 0x4e, WriteChunkRecords(a0,a1,d0,d1)) X#pragma amicall(IFFParseBase, 0x54, PushChunk(a0,d0,d1,d2)) X#pragma amicall(IFFParseBase, 0x5a, PopChunk(a0)) X#pragma amicall(IFFParseBase, 0x66, EntryHandler(a0,d0,d1,d2,a1)) X#pragma amicall(IFFParseBase, 0x6c, ExitHandler(a0,d0,d1,d2,a1)) X#pragma amicall(IFFParseBase, 0x72, PropChunk(a0,d0,d1)) X#pragma amicall(IFFParseBase, 0x78, PropChunks(a0,a1,d0)) X#pragma amicall(IFFParseBase, 0x7e, StopChunk(a0,d0,d1)) X#pragma amicall(IFFParseBase, 0x84, StopChunks(a0,a1,d0)) X#pragma amicall(IFFParseBase, 0x8a, CollectionChunk(a0,d0,d1)) X#pragma amicall(IFFParseBase, 0x90, CollectionChunks(a0,a1,d0)) X#pragma amicall(IFFParseBase, 0x96, StopOnExit(a0,d0,d1)) X#pragma amicall(IFFParseBase, 0x9c, FindProp(a0,d0,d1)) X#pragma amicall(IFFParseBase, 0xa2, FindCollection(a0,d0,d1)) X#pragma amicall(IFFParseBase, 0xa8, FindPropContext(a0)) X#pragma amicall(IFFParseBase, 0xae, CurrentChunk(a0)) X#pragma amicall(IFFParseBase, 0xb4, ParentChunk(a0)) X#pragma amicall(IFFParseBase, 0xba, AllocLocalItem(d0,d1,d2,d3)) X#pragma amicall(IFFParseBase, 0xc0, LocalItemData(a0)) X#pragma amicall(IFFParseBase, 0xc6, SetLocalItemPurge(a0,a1)) X#pragma amicall(IFFParseBase, 0xcc, FreeLocalItem(a0)) X#pragma amicall(IFFParseBase, 0xd2, FindLocalItem(a0,d0,d1,d2)) X#pragma amicall(IFFParseBase, 0xd8, StoreLocalItem(a0,a1,d0)) X#pragma amicall(IFFParseBase, 0xde, StoreItemInContext(a0,a1,a2)) X#pragma amicall(IFFParseBase, 0xe4, InitIFF(a0,d0,a1)) X#pragma amicall(IFFParseBase, 0xea, InitIFFasDOS(a0)) X#pragma amicall(IFFParseBase, 0xf0, InitIFFasClip(a0)) X#pragma amicall(IFFParseBase, 0xf6, OpenClipboard(d0)) X#pragma amicall(IFFParseBase, 0xfc, CloseClipboard(a0)) X#pragma amicall(IFFParseBase, 0x102, GoodID(d0)) X#pragma amicall(IFFParseBase, 0x108, GoodType(d0)) X#pragma amicall(IFFParseBase, 0x10e, IDtoStr(d0,a0)) END_OF_FILE if test 2309 -ne `wc -c <'sources/iffparse.pra'`; then echo shar: \"'sources/iffparse.pra'\" unpacked with wrong size! fi # end of 'sources/iffparse.pra' fi if test -f 'sources/libsup.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/libsup.c'\" else echo shar: Extracting \"'sources/libsup.c'\" \(5617 characters\) sed "s/^X//" >'sources/libsup.c' <<'END_OF_FILE' X/* mylib.c -- exec library routines for mylib */ X X#include <exec/lists.h> X#include <exec/resident.h> X#include <graphics/text.h> X#include <intuition/intuition.h> X#include <intuition/intuitionbase.h> X#include "undefs.h" X#include "handleiff.h" X Xvoid myInit(void); Xlong myOpen(long d); Xlong myClose(long d); Xlong myExpunge(long d); X X#pragma amicall(IFFParseBase, 0x06, myOpen(d0)) X#pragma amicall(IFFParseBase, 0x0c, myClose(d0)) X#pragma amicall(IFFParseBase, 0x12, myExpunge(d0)) X X/* The actual library. */ Xstruct IFFParseBase { X struct Library Lib; X ULONG SegList; X}; X X/* library initialization table, used for AUTOINIT libraries */ Xstruct InitTable { X unsigned long it_DataSize; /* library data space size */ X void **it_FuncTable; /* table of entry points */ X void *it_DataInit; /* table of data initializers */ X void (*it_InitFunc)(void); /* initialization function to run */ X}; X Xvoid *libfunctab[] = { /* my function table */ X myOpen, /* standard open */ X myClose, /* standard close */ X myExpunge, /* standard expunge */ X 0, X X/*------ Basic functions ------*/ X AllocIFF, X OpenIFF, X ParseIFF, X CloseIFF, X FreeIFF, X/*------ Read/Write functions ------*/ X ReadChunkBytes, X WriteChunkBytes, X ReadChunkRecords, X WriteChunkRecords, X/*------ Context entry/exit ------*/ X PushChunk, X PopChunk, X Reserved, /*--- (1 function slot reserved here) ---*/ X/*------ Low-level handler installation ------*/ X EntryHandler, X ExitHandler, X/*------ Built-in chunk/property handlers ------*/ X PropChunk, X PropChunks, X StopChunk, X StopChunks, X CollectionChunk, X CollectionChunks, X StopOnExit, X/*------ Context utilities ------*/ X FindProp, X FindCollection, X FindPropContext, X CurrentChunk, X ParentChunk, X/*------ LocalContextItem support functions ------*/ X AllocLocalItem, X LocalItemData, X SetLocalItemPurge, X FreeLocalItem, X FindLocalItem, X StoreLocalItem, X StoreItemInContext, X/*------ IFFHandle initialization ------*/ X InitIFF, X InitIFFasDOS, X InitIFFasClip, X/*------ Internal clipboard support ------*/ X OpenClipboard, X CloseClipboard, X/*------ Miscellaneous ------*/ X GoodID, X GoodType, X IDtoStr, X X (void *)-1 /* end of function vector table */ X}; X Xstruct InitTable myInitTab = { X sizeof (struct IFFParseBase), X libfunctab, X 0, /* will initialize my data in funkymain() */ X myInit X}; X X#define MYREVISION 40 /* would be nice to auto-increment this */ X Xchar myname[] = "iffparse.library"; Xchar myid[] = "Subset of the iffparse.library - By Michael Jansson\r\n"; X Xextern struct Resident myRomTag; X X Xlong X_main(struct IFFParseBase *IFFParseBase, unsigned long seglist) X{ X IFFParseBase->SegList = seglist; X X geta4(); X TraceCall; X /* ----- init. library structure ----- */ X IFFParseBase->Lib.lib_Node.ln_Type = NT_LIBRARY; X IFFParseBase->Lib.lib_Node.ln_Name = (char *) myname; X IFFParseBase->Lib.lib_Flags = LIBF_SUMUSED | LIBF_CHANGED; X IFFParseBase->Lib.lib_Version = myRomTag.rt_Version; X IFFParseBase->Lib.lib_Revision = MYREVISION; X IFFParseBase->Lib.lib_IdString = (APTR) myid; X X TraceCall; X return 1L; X} X X#ifdef SAFE_OPEN X Xstruct TextAttr safeFont = { X (UBYTE *)"topaz.font", X 9, X FS_NORMAL, X FPF_ROMFONT X}; X Xstruct IntuiText Body = { X -1, -1, X JAM1, X 36, 16, X NULL, X (UBYTE *)"Use Small-IFFParse.library?", X NULL X}; X Xstruct IntuiText Positive = { X -1, -1, X 0, X 7, 4, X NULL, X (UBYTE *)"Do it!", X NULL X}; X Xstruct IntuiText Negative = { X -1, -1, X JAM1, X 7, 4, X &safeFont, X (UBYTE *)"Oh no!", X NULL X}; X XIBase *IntuitionBase; X#endif X Xlong XmyOpen(long d) X{ X struct IFFParseBase *IFFParseBase; X X geta4(); X TraceCall; X#ifdef SAFE_OPEN X long response = TRUE; X X /* Open some other libraries. */ X if ((IntuitionBase=(IBase *)OpenLibrary("intuition.library",0L))==NULL) { X return 0L; X } X response = AutoRequest(NULL, X &Body, &Positive, &Negative, X VANILLAKEY, 0UL, X 320L, 80L); X CloseLibrary(IntuitionBase); X if (response==FALSE) X return 0L; X#endif X X /* mark us as having another customer */ X IFFParseBase->Lib.lib_OpenCnt++; X X /* prevent delayed expunges (standard procedure) */ X IFFParseBase->Lib.lib_Flags &= ~LIBF_DELEXP; X X TraceCall; X return ((long) IFFParseBase); X} X Xlong XmyClose(long d) X{ X struct IFFParseBase *IFFParseBase; X long retval = 0; X X X geta4(); X TraceCall; X if (--IFFParseBase->Lib.lib_OpenCnt == 0) { X X if (IFFParseBase->Lib.lib_Flags & LIBF_DELEXP) { X /* no more people have me open, X * and I have a delayed expunge pending X */ X retval = myExpunge(0); /* return segment list */ X } X } X X TraceCall; X return (retval); X} X Xlong XmyExpunge(long d) X{ X struct IFFParseBase *IFFParseBase; X unsigned long seglist = 0; X long libsize; X extern struct Library *DOSBase; X X geta4(); X TraceCall; X if (IFFParseBase->Lib.lib_OpenCnt == 0) { X /* really expunge: remove libbase and freemem */ X X seglist = IFFParseBase->SegList; X X Remove(&IFFParseBase->Lib.lib_Node); X /* i'm no longer an installed library */ X X libsize = IFFParseBase->Lib.lib_NegSize+IFFParseBase->Lib.lib_PosSize; X FreeMem((char *)IFFParseBase-IFFParseBase->Lib.lib_NegSize, libsize); X CloseLibrary(DOSBase); /* keep the counts even */ X X } X else X IFFParseBase->Lib.lib_Flags |= LIBF_DELEXP; X X /* return NULL or real seglist */ X TraceCall; X return ((long) seglist); X} END_OF_FILE if test 5617 -ne `wc -c <'sources/libsup.c'`; then echo shar: \"'sources/libsup.c'\" unpacked with wrong size! fi # end of 'sources/libsup.c' fi if test -f 'sources/lsclip.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/lsclip.c'\" else echo shar: Extracting \"'sources/lsclip.c'\" \(2514 characters\) sed "s/^X//" >'sources/lsclip.c' <<'END_OF_FILE' X/* X * Usage: LsClip X * Function: List the content of the clipboard. X * Description: This is an example of the standard way of using the X * iffparser in the most simple way, i.e. in the X * RAWSTEP-mode when you want to read data from the X * clipboard (and files). X * X * Written by: Michael Jansson. 1990-12-08 X */ X X X#include <libraries/iffparse.h> X#include <proto/iffparse.h> X X#define NAME "Error in LsClip: " X#define ERR_LIB NAME "Could not open iffparse.library!" X#define ERR_MEM NAME "Out of memory!" X#define ERR_CLIP NAME "Could not open the clipboard!" X#define ERR_OPEN NAME "Could not open primary clip in clipboard!" X#define ERR_FAILED NAME "Failed to read the clipboard (Error Code: %ld)!\n" X#define LEVEL ". " X#define SUCCESS 0L X Xstruct Library *IFFParseBase; X Xvoid Xmain(void) X{ X struct ContextNode *chunk = NULL; X struct IFFHandle *iff = NULL; X UBYTE buf1[5], buf2[5]; X long i, error; X X X /* Open all the stuff that is needed! */ X if ((IFFParseBase=OpenLibrary("iffparse.library", 0L))==NULL) { X puts(ERR_LIB); X goto die; X } X if ((iff = AllocIFF())==NULL) { X puts(ERR_MEM); X goto die; X } X if ((iff->iff_Stream=(ULONG)OpenClipboard(0L))==0L) { X puts(ERR_CLIP); X goto die; X } X InitIFFasClip(iff); X if (OpenIFF(iff, IFFF_READ)) { X puts(ERR_OPEN); X goto die; X } X X /* Let's do it...*/ X do { X switch(error=ParseIFF(iff, IFFPARSE_RAWSTEP)) { X case IFFERR_EOC:/* End of a context (chunk). */ X break; X case IFFERR_EOF:/* End of the stream. */ X goto die; X break; X case SUCCESS: /* Entering a new context (chunk). */ X chunk = CurrentChunk(iff); X for (i=0; i<iff->iff_Depth; i++) X printf(LEVEL); X printf("%s %ld %s\n", X IDtoStr(chunk->cn_ID, buf1), X chunk->cn_Size, X IDtoStr(chunk->cn_Type, buf2)); X break; X default: /* Everything else is a genuin error. */ X printf(ERR_FAILED, error); X goto die; X break; X } X } while (TRUE); X X X /* Make a clean exit. */ Xdie: X if (iff) { X CloseIFF(iff); X if (iff->iff_Stream) X CloseClipboard((struct ClipboardHandle *)iff->iff_Stream); X FreeIFF(iff); X } X if (IFFParseBase) X CloseLibrary(IFFParseBase); X exit(0); X} END_OF_FILE if test 2514 -ne `wc -c <'sources/lsclip.c'`; then echo shar: \"'sources/lsclip.c'\" unpacked with wrong size! fi # end of 'sources/lsclip.c' fi if test -f 'sources/makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/makefile'\" else echo shar: Extracting \"'sources/makefile'\" \(602 characters\) sed "s/^X//" >'sources/makefile' <<'END_OF_FILE' XCFLAGS = -ps -bs -safmprs -hi prep16.p XLIBC = -ps -safmprs -hi prep16.p X#LIBC = -safmprs -hi prep16.p -dSAFE_OPEN XLFLAGS = -g +q X X#>>>>>>>>>>>>>>>>> Small-iffparse library <<<<<<<<<<<<<< XLIBOBJ = libsup.o handleiff.o XASMOBJ = libstart.o X Xall: iffparse.library lsclip pasteclip cutclip X Echo "Done!" X Xiffparse.library: $(LIBOBJ) $(ASMOBJ) X ln $(LFLAGS) -o iffparse.library $(LIBOBJ) $(ASMOBJ) -lc16 X Xlsclip: lsclip.o X ln $(LFLAGS) -o lsclip lsclip.o -lc16 X Xpasteclip: pasteclip.o X ln $(LFLAGS) -o pasteclip pasteclip.o -lc16 X Xcutclip: cutclip.o X ln $(LFLAGS) -o cutclip cutclip.o -lc16 END_OF_FILE if test 602 -ne `wc -c <'sources/makefile'`; then echo shar: \"'sources/makefile'\" unpacked with wrong size! fi # end of 'sources/makefile' fi if test -f 'sources/pasteclip.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/pasteclip.c'\" else echo shar: Extracting \"'sources/pasteclip.c'\" \(2897 characters\) sed "s/^X//" >'sources/pasteclip.c' <<'END_OF_FILE' X/* X * Usage: PasteClip X * Function: Show the content of the clipboard if it is text. X * Description: This is an example of the standard way of using the X * iffparser in the most simple way, i.e. in the X * RAWSTEP-mode when you want to read data from the X * clipboard (and files). X * X * Written by: Michael Jansson. 1990-12-08 X */ X X X#include <libraries/iffparse.h> X#include <proto/iffparse.h> X X#define NAME "Error in PasteClip: " X#define ERR_LIB NAME "Could not open iffparse.library!" X#define ERR_MEM NAME "Out of memory!" X#define ERR_CLIP NAME "Could not open the clipboard!" X#define ERR_OPEN NAME "Could not open primary clip in clipboard!" X#define ERR_FAILED NAME "Failed to read the clipboard (Error Code: %ld)!\n" X#define LEVEL ". " X#define DONE "Done!" X#define SUCCESS 0L X Xstruct Library *IFFParseBase; X Xvoid Xmain(void) X{ X struct ContextNode *chunk = NULL; X struct IFFHandle *iff = NULL; X long error, size; X char *string; X X /* Open and initiate the usual stuff. */ X if ((IFFParseBase=OpenLibrary("iffparse.library", 0L))==NULL) { X puts(ERR_LIB); X goto die; X } X if ((iff = AllocIFF())==NULL) { X puts(ERR_MEM); X goto die; X } X if ((iff->iff_Stream=(ULONG)OpenClipboard(0L))==0L) { X puts(ERR_CLIP); X goto die; X } X InitIFFasClip(iff); X if (OpenIFF(iff, IFFF_READ)) { X puts(ERR_OPEN); X goto die; X } X X /* Read the data. */ X do { X switch(error=ParseIFF(iff, IFFPARSE_RAWSTEP)) { X case IFFERR_EOC: X break; X case IFFERR_EOF: X goto die; X break; X case SUCCESS: X chunk = CurrentChunk(iff); X /* The proper way to know when the propper chunk has been reached X * is to keep track of it with flags etc. There is a slight X * possibility that there is a CHRS-FTXT in the clipboard that X * is not part of a FORM-FTXT chunk. X */ X if (chunk->cn_ID=='CHRS' && chunk->cn_Type=='FTXT') { X size = chunk->cn_Size; X if ((string = (char *)AllocMem((long)size, 0L))==NULL) { X puts(ERR_MEM); X goto die; X } X ReadChunkBytes(iff, (APTR)string, (long)size); X Write(Output(), string, size); X FreeMem((APTR)string, (long)size); X goto die; X } X break; X default: X printf(ERR_FAILED, error); X goto die; X break; X } X } while (TRUE); X X /* Terminate. */ Xdie: X if (iff) { X CloseIFF(iff); X if (iff->iff_Stream) X CloseClipboard((struct ClipboardHandle *)iff->iff_Stream); X FreeIFF(iff); X } X if (IFFParseBase) X CloseLibrary(IFFParseBase); X exit(0); X} END_OF_FILE if test 2897 -ne `wc -c <'sources/pasteclip.c'`; then echo shar: \"'sources/pasteclip.c'\" unpacked with wrong size! fi # end of 'sources/pasteclip.c' fi if test -f 'sources/undefs.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sources/undefs.h'\" else echo shar: Extracting \"'sources/undefs.h'\" \(875 characters\) sed "s/^X//" >'sources/undefs.h' <<'END_OF_FILE' X/* This file containns all the no-ops functions. */ X X#define ReadChunkRecords NOOP X#define WriteChunkRecords NOOP X#define Reserved NOOP X#define EntryHandler NOOP X#define ExitHandler NOOP X#define PropChunk NOOP X#define PropChunks NOOP X#define StopChunk NOOP X#define StopChunks NOOP X#define CollectionChunk NOOP X#define CollectionChunks NOOP X#define StopOnExit NOOP X#define FindProp NULL_NOOP X#define FindCollection NULL_NOOP X#define FindPropContext NULL_NOOP X#define ParentChunk NULL_NOOP X#define AllocLocalItem NULL_NOOP X#define LocalItemData NOOP X#define SetLocalItemPurge NOOP X#define FreeLocalItem NOOP X#define FindLocalItem NULL_NOOP X#define StoreLocalItem NOOP X#define StoreItemInContext NOOP X#define InitIFF NOOP END_OF_FILE if test 875 -ne `wc -c <'sources/undefs.h'`; then echo shar: \"'sources/undefs.h'\" unpacked with wrong size! fi # end of 'sources/undefs.h' fi echo shar: End of archive 1 \(of 2\). cp /dev/null ark1isdone MISSING="" for I in 1 2 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked both archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>. Mail comments to the moderator at <amiga-request@uunet.uu.net>. Post requests for sources, and general discussion to comp.sys.amiga.misc.