amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (09/29/90)
Submitted-by: Paul-Erik Raue <peraue@cs.vu.nl> Posting-number: Volume 90, Issue 260 Archive-name: libraries/reqlib-1.2/part02 #!/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 2 (of 3)." # Contents: req.library.uu reqbase.i showoffreq.c # Wrapped by tadguy@abcfd20 on Fri Sep 28 14:45:30 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'req.library.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'req.library.uu'\" else echo shar: Extracting \"'req.library.uu'\" \(20030 characters\) sed "s/^X//" >'req.library.uu' <<'END_OF_FILE' Xbegin 666 req.library XM```#\P`````````#``````````(```V?``````````$```/I```-GW``3G5*] XM_`````0```\R@`$)`````!X````J````@')E<2YL:6)R87)Y`%)E<2`Q+C(@W XM*$IU;"`Q,R`Q.3@Y*0T*`&1O<RYL:6)R87)Y`&EN='5I=&EO;BYL:6)R87)Y! XM`&=R87!H:6-S+FQI8G)A<GD`8V]N<V]L92YD979I8V4`````1````)````$4N XM```!0````FX```)\```"D````L````+$```#2@```W8```.@```'O@``!]H`8 XM``@"```!Z@```>H``"::```KA@``"_@```=4```,/@``$8@```UT```&Q```= XM"!P```B>```-F@``#:@```VV```)7```-1````/6```)"```#<P`````____3 XM_^````P)`,````H````>X```#@8`T```%``!T```%@`"P```&````"H`````? XM2.<!!"I`*TX`(BM(`#)"K0`F0JT`*D*M`"Y"K0`V0JT`/$/Z_MYP`$ZN_=@K^ XM0``F9P``BD/Z_MAP(4ZN_=@K0``J9WA#^O[:<`!.KOW8*T``+F=H(#P```#$> XM<@).KO\Z*T``-F=.($!#^@RN,CP`PQ#94<G__'`P(CP``0``3J[_.BM``$!G+ XM+")`0?K^I7#_<@!.KOY$2H!F$B!M`$`K:``4`#P@#4S?((!.=2X\@`2`$6`.E XM+CP``0``8`8N/``#```O#9O-3J[_E"I?801P`*.<@"$GM`"9T`B)<(`EGZ XM!$ZN_F)1RO_T3-\0!")M`$`@"6<$3J[^/B)M`$`@"6<&<#!.KO\N(FT`-B`)D XM9PH@/````,1.KO\N<``B33`M`!"3P-!M`!).KO\N3G52;@`@"*X``P`.(`Y.W XM=7``4VX`(&8*""X``P`.9P)A`DYU2.<@!BI.+'@`!$IM`"!G"@CM``,`#G``_ XM8!`D+0`R(DU.KO\$80#_7"`"3-]@!$YU<`!.=4CG__Z>_``4+&X`*DCGP(!P! XM%#(H`"XB:``>0>\`#$ZN_E9,WP$#2D!F!C`H``3B2&X$T&@`!#0O`!*40&P"@ XM0D(P+P`,D&@`!+1`8P(T`#""2D%F!C(H``;B26X$TF@`!C8O`!"606P"0D,R/ XM+P`.DF@`!K9!8P(V`3%#``+>_``43-]__TYU2.=@`$J`9R#"_/__8`3BB.*)U XM)`!(0$I`9O0P`H+`<``P`4S?``9.=7#_8/9(YS``2H)G'I"!8`3BB.**)@!(' XM0TI#9O1(0H3`(`)3@$S?``Q.=7``8/9(YQP`0H520"@`F(%O(#H"2$3*Q#8"O XM2$3&Q$I#:@K6O``!``!F`E*%0D-(0]J#(`5,WP`X3G5(YW_^GOP!E"A.(D\P3 XM/`#)0EE1R/_\0]=P%C+84<C__"!)1>\`#$?O`6)P!70"(EHJ"6<>3KH)CC%"E XM`"8R*``*5D$W00`&1$$Q00`&`&@`"``,T/P`9%'*_]:;S4ZZ"4`_00&2(#P`@ XM`!.(<@%(02QX``1.KO\Z+T`!6BX`9P`!I"!7(F\`!"1`(`EG!F$``UI@!!38, XM9OP@1RQ,80`!^-!\``S4?``2-B\`FM9O`/[6;P`VUGP`&+9`8P(P`S=```35: XM:P`&,@"2;P#^6T$_00#ZD&\`-I!O`/[0;P":XD@_0``R(&\`"")+3KHEJ!`OV XM`"$70``($B\`(Q=!``F"`&8&%WP``0`))WP```9```HG?``"$`8`#B=O`!@`Z XM&B)K`!(@"68.`*L````(``YP$'($8!HP*0`(XDC0:0`$,BD`"N))TFD`!M)K= XM``9302!+80#]GBQN`"H@2TZN_S0J0$J`9P1A``#:("\!6F<0(D`@/```$X@L? XM>``$3J[_+B`-9P``HB!M`%9.KOZ`(&T`5DZN_HPB0"0I`!0V*0`8."D`&B1IC XM`!Q.KOZ&<``(`@`)9G((`@`&9P8P*@`F8&9*`VO"#&___P`<9P;(;P`<9[2V: XM/`!%9T[!0S($PGS_^"!*+$Q.KO]&P4.V/`!N9S:V/`!Q9S"V/`!B9RJV/`!L& XM9R1P`;8\`'EG'+8\`'9G%K8\`')G$'`"MCP`;6<(+&P`(F``_V(O`"`-9PH@2 XM32QL`"I.KO^X(!_>_`&43-]__DYU2.<?_BQL`"YP`#`O`%)F`G`!(FT`,DZND XM_JH@1R)M`#)Z%&%H2.>`P$CG@,!P!B(%3J[_$$S?`P%21=IO`=)*0&<$3J[__ XMQ$S?`P'0P$H89M),WW_X3G5(YQP`=@!X`'H`(@AG(F$^T,)21+9`8@(V`$H8A XM9O!A``;J.@3*[P&BVD0P`S($-`5,WP`X3G5(YT"`</]20`P0``IG!$H89O1,P XMWP$"3G5AYC0`80`&ML#"3G5(Y_SX*$@F23E```0Y00`&($MAX#E```@Y00`*R XM.7P````,.7P``0`..7P``0`00>P`+"E(`!+0_``0*4@`-!E\``4`,QE\``,`- XM,'#^.4``+#E``"XP+``(5D`R+``*5D%A'"E(`!HA2P`,$+P``4(H``$1?``!I XM``),WQ\_3G5"F##`0E@PP##!0E@PP4*83G5(Y_CX1^@`+"%+`!(G20`*,7P`: XM`0`0,7P`!``,,7P``0`.,4``"#%!``IV`"@*9R!V`BA+V/P`%"%,`!8I2@`*! XM.4``!#E!``8Y0@`(4.P`#H=H``PW0``$-T$`!C="``A0ZP`.3-\?'TYU2.<`C XM\B9*1?H`$"QX``1.KOWV3-]/`$YU%L!.=4CG`,(L>``$D\E.KO[:($!P``PHK XM``T`"&8(("@`N&X"<`!,WT,`3G4O#BQX``0O")/)3J[^VB)`(%\C2`"X+%].] XM=4CG^/`Q0``(,4$`-B%)`"PA2@`P,4(`!#%#``9A``4Z,4$`"C%\````##%\1 XM``$`#D/H`"PA20`B0^@`4"%)`!(Q?``$`!`B2$'H`%!'Z``0(4L`"!%\``4`2 XM!Q%\``,`!'#^,(`Q0``","D`"%9`,BD`"EA!T/P`$&$`_JQ,WP\?3G5(Y^#`S XM(D@Q0``(,4$`"C%"``PQ?``"``[2_``L(4D`(M+\`!8A20`2,7P``P`03-\#O XM!TYU)6QD`%1O;R!S;6%L;"$`5&]O(&QA<F=E(0!'970@82!N=6UB97(`1V5TS XM('-O;64@=&5X=```2.=__BI.*$@@/````A9R`4A!+&T`(DZN_SHF0$J`9U90J XMZP%X0?K_I$/L``1%ZP%Z""P````=9@1A`/Y\0?K_IB=(`;I!ZP%Z(E1P#'(,7 XM)&P`%&`B2.=__DCGP,`J3B`\```"%G(!2$$L;0`B3J[_.B9`3-\#`W@`)`MG^ XM``)L+$TG2@(22JL!NF8(1?K_92=*`;HW00%V-T$!<M-K`7(G20`:)T@!;$BGY XMP`!.N@/`P-\R'T'K`/AT"'8080`#Y#=\``$!'C=\`"T`!C`K`0#0?``0-T``1 XM!!=\``(`"!=\``$`"2=\``0#2``*)WP``A`.``XW?``!`"Y!ZP`P0_H%%B1+0 XM<`5R*9)K`0)A``.&-WP``0!60>L`E$/Z!0%A``-T2FL!>&<2`&L(``$&)VP`3 XM!`%`!FL`<P`$,"L`G-!K`#C0?``0L&L`!&,$-T``!#`K`)Q:0$1`T&L`!#=`_ XM`)@@:P(2(DI.NA_Z<.-R^"!+80#X3"`K`7!R`4A!+&T`(DZN_SHG0`$D9P`!M XM5")`T*L!="=``2@@:P%L$MAF_$'Z!@Y#ZP&^<`XRV%'(__PG:P&Z`<Q#ZP'<W XM1>L!T$)`<EI!^@7F=$Q.NA_>+&T`*B!+3J[_-$J`9P``]B1`($!#ZP&^3J[^I XM^"\*0>L`^")*+$U.N@,<)%\L;0`B(&H`5DZN_H`@:@!63J[^C"!`<AE#ZP&&_ XM,MA1R?_\(D!.KOZ&("L!F@@```EF>`@```AG#C`K`9[J2,!\`#]G9F"J"```A XM!F>D(&L!HC@H`"9G5$IK`7AG4"!K`21*$&=&+&T`+B)J`#)P?UR`<A#2:0`^G XM3J[_$$'Z_5XB*P%`LJP`"&T*LJP`#&\>0?K]52)J`#)P"DZN_\0L;0`JD<A.Q XMKO^@8`#_2$)$($HL;0`J3J[_RB!*3J[_N$I$9Q@@:P$D(FL!;!+89OQ*:P%XZ XM9P8I:P%``!`L;0`B("L!<")K`21.KO\N(#P```(6(DM.KO\N(`1,WW_^3G5(% XMY__^*DXF23X#/`(Z`3@`+&T`+DZN_Q`P!C(%(DM.KO\*,`8R!R)+3J[_"C`$# XM,@<B2TZN_PHP!#(%(DM.KO\*3-]__TYU2.?_\"@`.@$\`CX#)D@B;@`V"`0`T XM$&8$TOP`*)7*<!!R"G84"`0`$&8&<`IR"782=`%.KO^:`&L``@`.%WP``0`ZM XM0BL`.T'K`$#2PTZN_YH`:P`"`$X7?``!`'I"*P![0>L`@`@$`!!G"C(%DGP`M XM%'`08`@P!9!\`!1R"70`3J[_=@!K``(`CD'K`$`FB$'K`(`G2`!`0I!P!0@$T XM`!!F`G`#-T``K'#_-T``LC=``+0P!(%K`(S`?/^?@6L`#(%K`$PW1@`$-T<`& XM!C=&`$0W1P!&"`0`$&8LVVL`1`1K``H`1#=&`(0&:P`*`(0W1P"&,`3`?``@4 XM9S@`:P`0`$R!:P",8"S;:P!&!&L`"@!&-T<`A@9K``H`AC=&`(0P!,!\`$!G2 XM#`!K``@`3`!K`$``C$S?#_].=4CG/_Y53R!/<`(L;@`J3J[_?$)!$A]P"+)\$ XM``EF`G`*3-]__$YU80#Y*""K`!(G2``23G5A`/IR(*L`$B=(`!).=6$`^N8@& XMJP`2)T@`$C%#``0Q1``&3G5(YV#N3E3_ZBI.)$@B3W0*0EE1RO_\($\1?``!] XM``0Q0``&,4$`""%*``I53R)/<@&5RBQM`#Q.KO_0<``0%U1/3EQ,WW<&3G5(( XMY__^*DY^`F`<+&T`+DZN_O).KO[R3J[^\DZN_O).KO[R3J[^\I7*+&T`*DCGX XM`,!.KOXR3-\#`$J`5L__SDS??_].=?Y__#_YG_//X8?]O_V__;_]O_P__#_]? XMO_V__;_]O^&'\\_YG_P__G_WP.?`Q\"0`#^`D`#'P.?`]\#[P/G`^,`"0'\`# XM`D#XP/G`^\#___@_^9_YG_F?^#_Y/_F?^9_______#_YG_F?^?_Y'_D?^9_\M XM/______X/_F?^9_X/_@_^9_YG_@_______F?^9_YG_@?^!_YG_F?^9______M XM_#_YG_G__#__G_F?^9_\/______SS_//\\_[W_F?^9_]O_Y___\@($]K("``, XM0V%N8V5L`%)E<W5M90``1')A=V5R($9I;&4@2&ED95-H;W=&;VYT(&YA;653B XM:7IE($]K(2``1V5T($1I<@!&;W)G970@:70`4&%R96YT`"!(:61E("YI;F9OD XM(&9I;&5S("``1&ES<&QA>2`N:6YF;R!F:6QE<P!3=&]P(&1I<B!R96%D`"AD# XM:7(I`"HN:6YF;P`J+F9O;G0`+BX@("`@`"!$;VYE+@`E9"!F;VYT<R!S:&]W[ XM;BX@("``)60@<VAO=VXL("5D(&AI9&1E;BXE<R`@("`@`$-O=6QD;B=T(')E2 XM860@9&ER96-T;W)Y+B`@("`@`$-/3@!005(`4%)4`%)!32!$25-+`%9$,`!2( XM05<`4T52`%-014%+``!0871C:"!A<F5A(&9O<B!F:6QT97)I;F<@9&5V:6-EZ XM(&YA;65S+@!:97)O('1E<FUI;F%T92!S=')I;F=S(&%N9"!T:&4@;&ES="X`3 XM1FEL92!R97%U97-T97(`4&%R96YT`%1O9V=L92`N:6YF;P!,96%V90``````S XM``,```!^``H``0`````````````````````O"4'M!0PB2$H09RI*&&;\4T@,# XM*``Z__]G'`PH`"___V8"4TBSR&<.#"@`.O__9P8,(``O9NXB7TYU+&T!;"(M8 XM!HAG]$*M!HA.[O^F2.?__BQX``0B4B`)9Q(P*0`$T'P`#4C`))%.KO\N8.A,A XMWW__3G5%[``<8=1%[``@8<Y%[``(8<A![``<*4@`)$*43G5(Y__^1>@`R&&RO XM1>@`S&&L1>@`=&&F2^CZ2"QN`"9ACDS??_].=4CG__YAU"QX``0@/````00B* XM:`%80J@!6"()9P1.KO\N3-]__TYU+&T!<$'L`+0B;0:,E<IP!7(`=`!V`'C_B XM>@%.[OXL2.?__B)M!HR5RG`!+&T!<$ZN_E!,WW__3G5(Y__^+&T!=")M!K!PM XM`$ZN_JI,K``/`"@B;0:P3J[^SDS??_].=4CG__YAG$*L``Q"K``00FP`&&'&: XM3KK_(DZZ_N9.N@:"+&T!;$'M!0PB"'3^3J[_K"M`!HAG9"(`)!5.KO^:2H!G2 XM6"!50^@`A$7M`&0DV239)-E*J``$:PY![04,0^T`V!+89OQ@;DZZ_EY*$&8$! XM0>T%#`P0`"]F`D(8)$A#[060$MAF_$(20>T#L$ZZ_S1![0,\3KK_+&``_WQ." XMNOYD+&T!=")M!K`P+0:@2,!.KOZJ<``B;0:P3J[^I'`&<A0B;0:P3J[_$$'ZX XM_25P'2)M!K!.KO_$3-]__TYU0>T#L"QM`7@B;0:,8`#[(`@M``,`)6;H0>T#* XM/&#F0>T$F&#@0>T$)&#:2,!(P4C"2,-(Y_``(DI.KO\0(DH@+P`((B\`!$ZNL XM_PHB2B`O``@B+P`,3J[_"B)*(!<B+P`,3J[_"B)*(!<B+P`$3J[_"DS?``].X XM=55`54%40E)#8*HB`$)!2$&"_``*-``P`3("2$""_``*,`%(0=)\`#`3`4J`* XM9MQ.=4CG__XD2"QM`70B`-)L`"HP+``H2,`B;0:PTFD`/DZN_Q`P+0:22FH`S XM"FL.,"T&E$IJ``IG!#`M!I`(+0`#`"5G$#`M!I9#[0;4N<EG!#`M!IA(P")ML XM!K!.KOZJ<``B;0:P3J[^I")L``@@"6<*L>D`"&<*(E%@\K'L``QF"G`%(FT&8 XML$ZN_IY'Z@`,0^T*IB!)$MMF_%-))DC6[``P2FH`"F<*""T``P`E9@)=2[?)U XM90(F22)(TNP`,!;\`""SRV+X""T``P`E9B!*:@`*:PYG&%M)1_K[1A+;9OQ@F XM#"`J``9.NO[V$SP`(#`L`#!(P")M!K!.KO_$<`$B;0:P3J[^GDS??_].=2\)1 XM<``B;``<8`JR_```9PPB45)`L<EF\B)?3G5P_R)?3G5AW)!L`!AK\+!L`#)D1 XMZL#M!JY@`/["L&T&=&X6M&T&=&T0LFT&=FX*MFT&=FT$<`%.=7``3G5(Y_#`' XM("P`$"(L`!0D+09X)BT&?"QM`7!.KO^:2D!,WP,/3G5*$&<:%-AF_%.*#"H`' XM.O__9PP,*@`O__]G!!3\`"\4V6;\3G5(Y__^2>T'WDZZ_`9![04,(FT&X-+\= XM``Q%[0JF)DIAO$'Z^F!3BA389OPL;0%L(@LD/````^U.KO_B+@!G``"2(@<D/ XM"W8$3J[_UK!\``1F=@Q3#P!F<#PK``(L;0%L(@<D"R8\```!!$ZN_]:P?`$$6 XM9E1P`'`-T&P`,'(!2$$L>``$3J[_.DJ`9SP@0#%L`#``!#%\__\`"E)4(*P`Q XM'"E(`!Q#Z``,,"P`,&`$$OP`(%'(__HA:P$```9P`#`K`0!.NOUP8)0L;0%L> XM(@=.KO_<3KH$A$S??_].=4CG__X,;0!H!FQF``&R3*T`#P;\3KK^J&823*T`] XM#P@&3KK^G&<``9A)[0?>,"T&=I!L`"J`[0:N/@#0;``8L%1D``%\3KH"/DIHK XM``IK``$&)D@D;0:P.#SP\#`L`"@R!\+M!J[2;``J-"P`+#8!UFT&K$BG\`#B& XM7#5$`"(@;0:,.V@`#@9T.V@`#`9V3)<`#TZZ_BQF""!+3KK^#F`B+&T!=$ZN) XM_O(B2G`#3J[^JB)*<`%.KOZD3)<`#U-#3KK\1$ZZ#KAF"@@Y``8`O^`!9Z8@0 XM2TZZ_=1,GP`/3KK]XF<``-Y!ZP`,0^T%##`\`()*:P`*9C1#^OA4""T``P`EP XM9R@@;``,(`AG"$*L``Q.NOV:*4L`#"!+3KK]D$*M!^IA`/X&3-]__TYUP4E%7 XM[0JF3KK]TD'M"J9"*`""0^T%#!+89OQ![0.P3KKZ=DGM!M1.NOJN8&HB;``,( XM""T``0`E9PH\+09NS'P``V9>1>P`"$J29PA.NOF<3KH!JK/(9@A.NOU>9@`1/ XMAB`)9PS!24*L``Q.NOT6P4DI;09X`!`I;09\`!0I2``,3KK]`-#\``Q#[060Z XM$MAF_$'M`SQ.NOH"3KK[*$S??_].=2`)9PI"K``,PTAA.L-((FP`""`)9PJQZ XMZ0`(9Q0B46#R820I;09X`!`I;09\`!1@QDZZ_.1F`!$,*6T&>``0*6T&?``4G XM8+!(Y__^)$@P+0`:1^P`""(39PA30&=:)D%@]'``,"@`!-!\``UR`4A!+'@`2 XM!$ZN_SI*@&<\($`Q:@`$``0A2@`(0^@`#$WJ``P2WF;\3>T%D$H69A1#Z``,( XM'-EF_"\(0>T#/$ZZ^4P@7R:(($I.NOPL3-]__TYU+P`@;``<8`(@4%'(__P@8 XM'TYU8>PP`6``^N)(Y__^+&T!<$'M":Q#[0FP3J[_K$'Z]OI*K0:(9@1!^O;W' XM*T@&V'0=0?KW!P@M``,`)6<&0?KVZ'010^T&U$7M"J8L;0%X3KKNRBQM`70BQ XM;0:P,"T&H$C`3J[^JG``(FT&L$ZN_J1P!G(4(FT&L$ZN_Q`@2B`"(FT&L$ZN^ XM_\1,WW__3G5(Y__^,A2R;``R;00R+``R,"P`&$ZZ_TQP`&`*3KKZ/M!M!JX@D XM4%')__1.NO]03-]__TYU(D@D4"12(`IG#"12(E$@"F<$)%)@\"110I$B2DYU, XM.BD`"KIH``IF''C?1^@`#$WI``P2&Q0>%@*&`6<(P@3$!+0!9^Y.=2`(8=1M! XM!B1((%!@!"1)(E$@"B((9Q@B"6<48;QM""2()$@@4&`&)(DD22)18.0B"&8$$ XM)(E@`B2(3G4O"2`(9Q)*D&<.3KK_=&'PP4EA[&&P($`B7TYU2.?__DIL`!IF@ XM,`@M``D`)&8H(&P`'&',*4@`'%#L`!I.NO\.1>P`'"E*`"0P%&<*4T!.NOY>] XM*4@`)$S??_].=4CG__YX_W0`-A0R+``RLD-D,C@!2$1"1(C#ED$T+``82$)"N XM0H3#:`)T_RQM`7!![`"T(FT&C)7*<`5R`'8`>@%.KOXL3-]__TYU,!20;``RM XM:@)"0+!L`!AL!#E``!A*0&X(3KKW0DZZ]P9";``:3KK_4$ZZ_GQ@B"!?<`%.P XM=0@M``,`)6<F+PA*:``*:EQ":``*T/P`#$/Z]-U.NAF>9TH@7S`H``1",``'V XM8,Y*:``*:L@O"-#\``P(+0```"5F"D/Z]*Q.NAET9B!#[0"<3KH9:F<60^T`Q XM?$H19YQ.NAE<"$```$I`(%].=7``(%].=2`+9_HF4R!`881G#""L`!PI2``</ XM4E1@Z""L`"`I2``@4FP``F#:2.?__B1L`"`F;``<0JP`($*L`!Q"E&'")DIA1 XMODZZ_Q9,WW__3G5(Y__^(D@D2$H99OR3R"`)4X`D`-!\``TL>``$<@%(04ZN" XM_SI*@&<``*0@0#%"``0B52%I`'P`!C%\``$`"DII``1J!$1H``I#Z``,$MIF$ XM_$ZZ_O!F#B"L`"`I2``@4FP``F`D)&P`)"2(*4@`)#`4L&P`,F0(P.T&KDZZ# XM]Y125$)L`!IT`6`"=``L;0%P0>T)M$/M";A.KO^L("T)M"(M";B0K0FLDJT)E XML&P(TKP`F):`4X!*@&X(LKP``8:@;0Q*0F<$3KK]_DZZ_&9,WW__3G5(Y__^] XM+&T!;"(M!H@D%4ZN_Y1*@&8.3KKTIDZZ_=9.NOP^8`@@55!(3KK_!$S??_].? XM=4ZZ]%!*$&8(3KKU7&``_?Q"$$'M`[!.NO4T8`#U<`@M``0`)6?80?KRW@AM! XM````)6<$0?KROBM(!DQ![07P3KKU#$ZZ]C)@`/Z.2.?__C`M!FSJ2,!\`#]3# XM0&P$8:)@#E-`;`1AN&`&4T!M``PF3-]__TYU.6T!A@`83KKTZF``_#!*K0:(] XM9R`Y;0&&`!@O#$GM!M1.NO\X*%]![0&$,6P`&``",50`!DYU2.?__DBG\`!P0 XM`"("3*P`/``H+&T!=")M!K!.KOYT3)\`#U-#:Q1.NOM`,`%.NO8T(%#0;0:N7 XM4<O_]$S??_].=4'M`80Q;``8``(Q5``&,6T&K@`(,6P`,@`,0^P`M"%)``Y## XM^O]F(4D`$D/Z_VPA20`60_K_C"%)`!HL;0%X3KH79CEM`88`&$YU0>T%L$/M! XM`'RS"&8:2BC__V;V0>T%T$/M`)RS"&8(2BC__V;V3G5![06P0^T`?!+89OQ!F XM[0700^T`G!+89OQ@`/UB(&T&<#`H`"910&8,3KK[_&$`_V)@`/3J4T!F%$ZZQ XM^^Q)[0?>3KK_3DGM!M1@`/32L'P``VT&2>T'WE5`T$!70$ZZ^\A";0;*,BP`N XM&-)`;3S2;``RLE1N--%L`!A.NOOLD6P`&#\`80#_#'(!2FT&RF8&4.T&RG('; XM+&T!;$ZN_SHP'R!M!G!**``-:[Q)[0;48`#T;B!M!G`P*``F4T!M``J"4T!L1 XM"$ZZ\VY@`/144T!M``IJ4T!L"$ZZ_=!@`/1"4T!L*#`M!F[`?``S9@A.NO-&5 XM8`#T+,!\`#!G`/0D""T`!0`E9@#T&F``]"I30&PB,"T&;L!\`#-G``HHP'P`R XM,&<`\^X(+0`%`"5F`//D8`#S_E-`;`AA`/V08`#SY%-`;!QA`/KF,"T&;L!\Z XM`#-G`//0P'P`,&8`\[A@`//24T!L'&$`^L8P+09NP'P`,V<`\[#`?``P9@#S* XMJ&``\[A.=4CG__X(+0`#`"5F``"J2>T'WDZZ\=I'[0?Z(&T!;"!H`"(@:``8V XMT<C1R"AH``39S-G,)&P`*-7*U<IP`!`:0_KP@4H19RP@2C8`+PE@$!(8PCP`L XMWQ09Q#P`W[0!9@Q1R__N2A%F!")?8$0B7TH99OQ@T%)`-`#0?``-+'@`!'(!U XM2$%.KO\Z2H!G+"!`,4(`!$)H``K0_``,$-I1RO_\$7P`.O_^0B`F@"9`4FT'V XMWBA4(`QF`/]Z*TL(`DGM!]Y.NOIT3-]__TYU,"P`,F8"<`ZP?``$;`)P!#M`C XM!P8[0`@0,"P`,&8"<!ZP?``,;`)P##E``#!'[0F\)VT`!@`:$"T`,1=```@2Y XM+0`S%T$`"8(`9@87?``!``DG?``$AV@`"B=\```0#@`.""T`"@`D9P@G?```P XM$`@`#C(M!JPP05!(.T@&O$'P$`,[2`:^0?`0!CM(!L`P+0:NP.P`,D'P``4[` XM2`;"""T``P`E9@A!\!`&.T@&Q$'P$`<[2`;&0?`0!3=(``8[2`:Z,BT&JC!\/ XM``<[2`;,,`'`[0<$0?```CM(!LY!Z``2.T@&T#`!P.T(#D'P``([2`;20>@`. XM%3=(``0[2`:X.VT&S`;\.VT&P`;^.VT&S@<`5VT'`#MM!L('`EUM!P([;0;`/ XM"`@[;0;0"`8[;0;2"`I7;0@*.VT'`@@,+&T!>$'M`:Q#^NWS,"T&S#(M!L9.[ XMN@F8,7P````F0>T"=$/Z[>=P]\'M!JI?0-!K``0R+0;&3KH)=C%\``(`)G#ZW XM""T``P`E9@P(+0`%`"5F!-!\__7![0:JT'S_[`@M``4`)68$T'S_\-!M!KA(T XMP(#M!JH[0`;(P.T&JD'M`[!#[04,1>T)['0&,CP`@\3M!JK4;0;,5D(V+0;"N XM3KH)!#%\``0`)@@M``,`)68``/Y![0+80_KM7S`M!LPR+0:^3KH([#%\``,`\ XM)D'M`SQ#[0601>T)[#`M!LBP?``?8P)P'\#M!JIR'S0M`[0V+0;$3KH(L#%\) XM``4`)D'M`A!#^NT#</7![0:JT&T&N.)(,BT&QDZZ")HQ?``!`"8(+0`%`"5FN XM4D'M!"1#[06P1>T)['`'P.T&JG(?-`!$0E]"U&T&N#8M!L).N@A:,7P`!P`FB XM0>T$F$/M!=!%[0GL<`?`[0:J<A\T+00H-BT&Q$ZZ"#0Q?``(`"8(+0`$`"5GY XM+D'M!?!#^NR8""T````E9P1#^NR@<.W![0:J7T#0:P`$,BT&ODZZ"`HQ?``&I XM`"9![0<((#P``0``,BP`,L+M!JY6030M!LXV+0;`54-.NND<.WP``@>6*VL`Y XM$@>(0>T'""=(`!([?``(!ZX[?``*!RX[?``+!VY![0@2(#P``0``,BP`,L+MD XM!JY6030M!M(V+0;`54-.NNC4.WP``@B@*VL`$@B20>T($B=(`!([?``)"+@[P XM?``,"#@[?``-"'@@;0`6(DM.N@;.,"T`<#(M`'(@2RQM`7A.NM\8""T`!@`ER XM9PHVK0!P-VT`<@`"+&T!<"!+3J[_-$J`9DQ"JP`24VP`,@QL``4`,F46#&L`- XM`0`N9R`@:P`>,"@`#+!K``1N$E-L`#!?;0@.;`1";0@.7&T(#C`L`#+0;``P! XML'P`$&P`_`I@``3P*T`&C"!`*V@`,@:P*V@`5@:T0^T([$[N_O@D;0:P+&T!T XM=")*,"T&IDC`3J[^JDRM``\&_$ZZ[PQ,K0`/"`9.NN\"(DHP+0:B2,!.KOZJ. XM(DIP!3(M`[;2:0`^2,%.KO\0(DI!^NJT<`9.KO_$""T``P`E9GHB2G`%,BT#` XM0M)I`#Y(P4ZN_Q`B2D'ZZI1P!DZN_\0(+0`%`"5F``"6(DIP_,'M!JK0;00HC XM6T`R+0.VTFD`/DC!3J[_$")*0?KJ:'`$3J[_Q")*</S![0:JT&T$G%M`,BT#\ XM0M)I`#Y(P4ZN_Q`B2D'ZZD1P!$ZN_\1@0B)*<`4R+0;^DFD`/E5!2,%.KO\0@ XM(DI!^NHF<`E.KO_$(DHP+0@&,BT("))I`#Y504C!3J[_$")*0?KJ#7`$3J[_E XMQ$ZZ[:I.NOH&*VT`U`:(1>T`>$ZZZ\`K;0#,!O`K;0#0!O1F!DJM`,QG$"MM\ XM`6`&U#MM`60&[&``]0A@`.R&+'@`!'``0>T*<$IM"J1F#B!M!K1.KOZ,2H!G` XM3"!`0^T&5'(S$MA1R?_\2D!G!B)`3J[^AD)M"J0@;0:T3J[^C$J`9R`@0$/M^ XM"G!R,Q+84<G__")`3J[^A@@M``D*BF;84.T*I'`!3G5P`$YU89)G``"(("T&7 XM:`@```-G!F$`\`A@Z@@```AG"DZZ]KA.NNS@8-H(```)9@`"\@@```IG)@QM+ XM`&`&;&3$#&T`1`9L9A`P+09NP'P``V<&3KKLHF"L3KKLK&"F"```!F<*80#W[ XM7F$`^#!@E@@```5G"F$`]TYA`/>,8(8(```/9PA.NOC@8`#_>F``_W9*K0:(D XM9@P@;0:T3J[^@&``_V1.NO6Z8`#_7$CG?_XF2`@K``(`(6<:(F@`!B`)9Q)%0 XMZ`#42A%G!K4)9_A@!$H29P1.NNK$F\TD3BQX``0@/```"ZYR`4A!3J[_.DJ`4 XM9R8J0"`K`5AF+B`\```!!'(!2$%.KO\Z2H!F'")-(#P```NN3J[_+BQJ`"J1+ XMR$ZN_Z!P`&```TXJ@$GM!M1![``<*4@`)"M/".@K:@`F`6PK:@`J`7`K:@`NA XM`70K2@%X+$I.NN8R.T`&JCM!!JQ203M!!JXK2P%H0>T`!#`\`6,0VU'(__Q!V XM[0`F0^T&D'`(,MAF!C-\``'__E'(__1P`S+89@8S?``#__Y1R/_T.VT!9@?VP XM(&T`"D/M!0P@"&<$$MAF_`@M``<`)6<``)9*K0#,9@A*K0#09P``B"QX``0@$ XM/````01R`4A!3J[_.BM``8!G/BQM`6Q![04,(@AT_DZN_ZPK0`%\9R@B`"0MU XM`8!.KO^:2H!G&B!M`8#0_`"$0^T`9+.(9@JSB&8&LXAF`F`,0>T`!"QM`7A.& XMNNE(+&T!;"(M`7QG!$ZN_Z8L>``$(FT!@"`)9PH@/````01.KO\N(&T`#D/MP XM!9`@"&<$$MAF_$'M`'Q#[06P$MAF_$'M`)Q#[070$MAF_$7M`+Q![0-P<`,P< XMFC%:``30_`!T4<C_]#MM`!X'!#MM`"`(#F82.WP`#`@.""T``P`E9P1=;0@.= XM.VT`'`<&.VT`'`@00?KH!D/M".QP#C+84<C__$'ZY\TK2`CZ0^T)"D7M"/Y"W XM0#(\`*!!^N?&=%!.N@'20?KGPW1)""T`!``E9@21R'0`3KH!O$'ZY[IT3$ZZU XM`;).NO<@3KK[,DZZ_.XL;0%PD<A.KO^@0BT%D&`V""T``P`E9S)#[060(&T'@ XMZB`(9R(K:``&`'0@;0;@(`AG%-#\``P2V&;\0?KF<E.)$MAF_&`$0BT%D"YM@ XM".A)[0?>3KKGZ$GM!M0(+0`"`"5G#@@M``@`)&<@2JT&B&<:3KKGRDZZYXXL3 XM>``$(E4@/````01.KO\N0I4K50%<*VT&B`#4*VT&U`%@.VT&[`%D*VT&\`#,7 XM*VT&]`#0*VT&W`!X.VT']@%F1>T`O$'M`W!P`S30-.@`!-#\`'11R/_T("T&E XMC&<2+&T!<"!`3J[_RB!M!HQ.KO^X<`!*+0609@Y%[``(3KKG($*M`'A@-D'MI XM!0PB;0`*(`EG!!+89OQ![060(FT`#B`)9P02V&;\0>T%#$/M!9`D;0`2(`IG" XM!$ZZZMAP`2\`0>T`!")M`6@P/`%C$MA1R/_\+'@`!")-(#P```NN3J[_+B`?Z XM3-]__DYU2.?`0B`(9B@L>``$D\E.KO[:($`,*``-``AF""!H`+@@"&X,3-]"0 XM`S-\``$`+DYU3-]"`S-\``\`+B!H`"XC2``>3G5(YW^>?@$S1P`F,T<`*#-!# XM``@S?``*``HS?`!2``P30@`:9P8`:0`$``PS0``&T'P`"B2)1=$C2``N0>D`" XM(B-(`!+2_``V3-]Y_DYU3KKBKA%M!J4`5$YU3KKBE!%M!JD`,!%M!I\`4$YUQ XM`'0`$``Z`!``'0`0``X`$``.``@``0`"``(``@`$``(`"``"``@`!"`M(%!AP XM;&5T=&4@+2``($-O<'D@`"!3=V%P(`!3<')E860`(%5N9&\@`"`@3VL@(`!#S XM86YC96P`4B`@1R`@0@!(("!3("!6`)[\`!P@3R)/<@U"65')__P@@&$&WOP`U XM'$YU2.=__BX0+"@`!"I.(#P```1F<@%(02QM`").KO\Z*$!*@&<``G0L34'L` XM`#!T`'8$>`!Z`B"L`!(I2``2<!AR.$ZN_W8Q?``$`"PQ?/__`#`Q?!$1`#0Q" XM0P`$,7P`+0`&,40`)C%\``$`2C%\`!``1C%\``H`2!%\``$`4#%\3B``5M#\7 XM`%C6?``:4D11S?^F(&T`-D/H`$PI20!\0^@`8"E)`-1#Z`!T*4D!+$'L`3A#] XM^O[Z1]1P5G(O=`5V`TZN_W`Q0P`F4D->2=#\`&11RO_N<%S0;`%`.4`!H#E`[ XM`F@Y0`,P<#70;`%".4`"!CE``FIP]'((.4`"SH-L`M0Y0`,R@VP#.'!JT&P![ XM0-!L`4`W0``$-WP`9P`&%WP``P`(%WP``@`)0?K^=B=(`!HG?``#$`8`#B=\Y XM```$>``*($8B2TZZ_80@2W``<@!.KO_B+&T`*DZN_S0F0$J`9P`!&"!K`"YP7 XM`!`H`+VP?``%8P)P!7(!X6G00-!`.4`$6$C!*4$$5+Y!900^`5-')`!#^OWZ6 XMY$I30M1"U$(Y<2``!%)#Z``L*4D$6B!H`#`I2`1B(&@`!"E(!%Y#[`/$1>P$/ XM!&`$,M`TV%')__IA``7^?/]A``1X>@`L;0`B(&L`5DZN_H`@:P!63J[^C")`> XM($!%[`.0<!DTV%'(__PD24ZN_H8@+`.D"````V<Z2@5F:&$``KQ*0&O`/@`@H XM+`1$(BP$2"0L`[0F+`.X*4($1"E#!$@L;0`J3J[_FDI`9YJ^1F:64,5@D@@`_ XM``9G"F$``=)*`&LD8(((```%9PAA``(.8`#_=@@```IG"F%&2@!K"&``_V9@T XM`/]B($L@"&<(+&T`*DZN_[@B3"`)9PX@/```!&8L;0`B3J[_+C`'3-]__DYUQ XM(&P$6B`L!%0L;0`N3N[_0'``,"P#J`B```=F'D'Z`#9A'#`L`Z@R+`.J(&P#I XMK"Q-3J[_1D'Z`%)A!'``3G4B&&L0LD!G!%A(8/1/[P`$(%!.T$YU````10``I XM+SP```!$```O2@```$P``"].````30``+UX```!/```O<@```$X``"^`____U XM_P```%(``"^<````<@``+YX```!'```OH````&<``"^B````0@``+Z0```!B@ XM```OI@```&,``"^H````0P``+Z@```!U```OJ@```%4``"^J````>```+[H`& XM``!8```ON@```',``"^\````4P``+[S_____0^P#Q&$`_OYP_W[_3G5P_TYU- XM,`=(P)!L!%)J.-"L!%1@,C`'2,#0;`12L*P$5&TDD*P$5&`>,`=(P%-`:A;0C XMK`148!`P!TC`4D"PK`14;020K`14/`<^`&$``E1P`$YU3G5.=4YU3G5.=4YU[ XM3G5#[`0$80#^D&$``KIP`$YU3G5.=4CG`,(@;`.L,B@`)K)\``=F!'#_8#"R[ XM?``(9A)#[`/$80#^8&$``HIP_W[_8!BR?``&9@Q#[`0$80#^2&$``G(Y001,E XM<`!,WT,`3G5(Y__^)&P#K'``,"H`,(#\$1$*0``/L&H`5F<D-4``5B!*3KH!V XMYC`',BP`AC0L`-XV+`$V(&P$6BQM`"Y.KO[@+&T`+DZN_O)**@`-:[I,WW__E XM3G4P!B!L!&(L;0`N3N[]NDCG?/X,;`!H`ZAF``#V3*P``P.PD'P`4FT``.BP& XM?`!N;@``X))\``QM``#8LGP`'FX``-`T+`180?KZ;(#P(`""\"`"0?KZ=,+P] XM(`#003P'/@`P+`1,9P``FF$``H2P?``%9T"P?``#9@QAAC(`,`=A``#`8'RP\ XM?``$9G9A`/]T.4`$3C`'80#_;#E`!%`R+`1.,`=A``"<,BP$4#`&80``DF!.X XM2.?__KQ';0+/1C\&GD8Z!R1L!%[<1M3&WD='\G``.`5@(B!/74\\$CX383IA. XM.&$V3)\`#C`7T$0@;`1:+&T`+DZN_N!1S/_<5$],WW__0FP$3&$``(8P!TS?Y XM?SY.=7#_3-]_/DYU,`8R!\!\``_"?``/DD##Q-)!:P3216`"DD7B08/%TD`QZ XM`>A&Z$=.=4CG\,`T`38!X$GH2B!L!%HL;0`N3J[^X$S?`P].=0`$``P`30`A0 XM2.?PPB)K`#(L;0`N3J[^JD'Z_^9,D``/(FL`,DZN_LY,WT,/3G5(Y__^OD9GT XM'$I&:P8P!F$``,0P![!\`"!E`G``8;QA``"T86!,WW__3G5(Y\+J*$A"IR1/8 XM0?H!KC\`(D\L34ZN_\HB:P`R,"P`!%A`,BP`!EE!+&T`+DZN_Q`B:P`R<`%.= XMKOZ>(FL`,G`!3J[^JD'O``)P`B)K`#).KO_$7$],WU=#3G4@;`1>,`?00#`P( XM``!R`D'L`.!A#.A(D/P`6%')__9.=4CG__[`?``/,4``5DZZ_W@*0``/P/P1W XM$3%``#`L;0`J(DN5RG`!3J[^4$S??_].=4CG__X^`"QM`"XB:P`R'"D`''`#L XM3J[^GCHL!%A!^OA*.#!0`'``,`>`Q#(`-`3$P#`'D$)!^O@>P/!0`,+P4`+06 XM?`!1TGP`"R)K`#(8*0`@`&D``0`@-``V`=1P4`#6<%`"+$U.KO^@4D!205-"U XM4T-.KO^@(FL`,A-$`"!P`!`&+&T`+DZN_IY,WW__3G5(Y\#"(BP$5"!L!%Y#` XM[`0$8`(RV%')__Q,WT,#3G5(Y__^/"P$6$7Z][+4QCXJ``)Z#'8`+&T`+F`^F XM>%(\$F`P,`,B:P`R3J[^JB\#,`0R!30$-@74:O_LUFK_[E5"54,B:P`R3J[^, XMSB8?V&K_[%)#4<[_SMIJ_^Y1S__`3-]__TYU)3)D`$CG?_X2$&<``)*R`F<`: XM`(P,$``C9@P,*``_``%F!%1(8`@,$``J9BI22`P0`"IG^`P0`"-F"`PH`#\`4 XM`6?@$A!G5+("9U!*$6=(8;1F2%))8/0,$``_9@I*&6<V4DAAH&!`#!``(V88/ XM4D@2&&<DPCP`WV&,9B`0&<`\`-^R`&?R$!@2&<`\`-_"/`#?L@!G`/]T<`!@5 XM#'`!8`A*$5?`1$!(@$S??_Y.=4CG?_[!21(09Q9T?+("9Q!A`/]&9@H2&&<.S XML@)F^&#F<`%,WW_^3G5P`&#V2.<__C0!Q,`F`$A#*`%(1,#$PL/&Q$A`2$$@) XM0]#`T,%"0$)!U(!D`E*(U(%D`E*((@@@`DS??_Q.=6'$/P`P`4A`2E]J`E*`+ XM3G5(YW_^)`!"0DA"A,%(0$A",`)(0(#!-``@`DS??_Y.=4CG__XF2"`3,BL`> XM"$C!888N`"P'("L`!)"K``IO``$0(&L`#B!H`")R`#(H``1AH"0`,BL`"$C!3 XM3KK_7"('DH`F`6<``.I$@6L"4(%9@2`!;`)$@"H!<@5AAB(`2H5L`D2!."L`6 XM",CK``PJ!.2-F(4Z*P`(2,68A;*$;@9$@;*$;Q8F@IZ#(&L`$DCG__Y.D$S?? XM?_]@`/]\1('>@2\!)`<F!DJ7:@PR*P`(4T%(P=2!UH$@`C(K``A.NO\F(@`O. XM`#`K``A(P$ZZ_LXB`"`?DH=(Y\``(`(R*P`(3KK_!"0`(`-.NO[\)@!,WP`#7 XMEH)L(D2#)"L`"I2#T()(Y\``(`(R*P`(2,%.NOZ.)`!,WP`#TH(D'TCG__Y(? XMY_``(&L`&DZ0WOP`$$S??_]@`/[F(`<R*P`(3KK^JB:`(&L`%B0(9PI(Y__^] XM3I!,WW__+PXL;@`N3J[^\BQ?(&L`#DHH``UK`/ZP3-]__TYU``````/L````/ XM/0`````````&````"@```!(````6````&@```(0```"(````C````)````"4+ XM````F````)P```"@````I````*@```"L````L````+0```"X````O````,``D XM``#$````R````,P```#0````U````-@```#<````X````.0```#H````[```( XM`/````#T````^````/P```$````!!````0@```$>```!.```+I@``"Z@```N! XMJ```+K```"ZX```NP```+LP``"[4```NW```+N0``"[L```N]```+OP``"\$+ XM```O#```+Q0``"\<```O)```+RP``"\T`````````_(```/J`````````_(`Q X+``/K`````0```_(<` X`` Xend Xsize 14276 END_OF_FILE if test 20030 -ne `wc -c <'req.library.uu'`; then echo shar: \"'req.library.uu'\" unpacked with wrong size! fi # end of 'req.library.uu' fi if test -f 'reqbase.i' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'reqbase.i'\" else echo shar: Extracting \"'reqbase.i'\" \(15673 characters\) sed "s/^X//" >'reqbase.i' <<'END_OF_FILE' X X; reqlibrary.i (c) 1988/1989 reserved by Colin Fox and Bruce Dawson */ X X IFND REQ_LIBRARY_I X XREQ_LIBRARY_I SET 1 X X INCLUDE "intuition/intuition.i" X X INCLUDE "libraries/dos.i" X INCLUDE "libraries/dosextens.i" X X INCLUDE "exec/memory.i" X INCLUDE "exec/initializers.i" X INCLUDE "exec/alerts.i" X XReqVersion EQU 1 X X XPairsSize EQU 20 X X STRUCTURE GadgetBlock.,0 ;a boolean button style text gadget X STRUCT gb_Gadget,gg_SIZEOF X STRUCT gb_Border,bd_SIZEOF X STRUCT gb_Pairs,PairsSize X STRUCT gb_Text,it_SIZEOF X LABEL gb_SIZEOF X X STRUCTURE StringBlock.,0 ;a string gadget X STRUCT sb_Gadget,gg_SIZEOF X STRUCT sb_Info,si_SIZEOF X STRUCT sb_Border,bd_SIZEOF X STRUCT sb_Pairs,PairsSize X LABEL sb_SIZEOF X X STRUCTURE PropBlock.,0 ;a prop gadget X STRUCT pb_Gadget,gg_SIZEOF X STRUCT pb_Info,pi_SIZEOF X STRUCT pb_Image,ig_SIZEOF X LABEL pb_SIZEOF X X STRUCTURE SliderBlock.,0 ;a slider (two arrows & a prop) X STRUCT slb_ArrowUpLt,gg_SIZEOF X STRUCT slb_ImageUpLt,ig_SIZEOF X STRUCT slb_ArrowDnRt,gg_SIZEOF X STRUCT slb_ImageDnRt,ig_SIZEOF X STRUCT slb_Prop,pb_SIZEOF ;this is at the end for REFRESH GLIST purposes X LABEL slb_SIZEOF X X STRUCTURE TwoImageBlock,0 X STRUCT tib_Gadget,gg_SIZEOF X STRUCT tib_Image1,ig_SIZEOF X STRUCT tib_Image2,ig_SIZEOF X LABEL tib_SIZEOF X XATTITUDEB EQU 16 ;Bit# of the attitude bit. X XHorizSlider EQU 0<<ATTITUDEB ;which way the slider stands XVertSlider EQU 1<<ATTITUDEB ;This is so that it bypasses all gadget flags. X X X X; This structure is use with the TextRequester function. X X STRUCTURE TRStructure,0 X APTR TR_Text ;This is the message text, including printf() style formatting if desired. X APTR TR_Controls ;This is the address of the parameter list, if printf() style formatting is used. X APTR TR_Window ;This is an optional (zero if not used) pointer to a window on the screen you X ;would like the requester to show up on. X APTR TR_MiddleText ;If non-zero, this is the text for the gadget in the lower middle (returns 2). X APTR TR_PositiveText ;If non-zero, this is the text for the gadget in the lower left hand corner (returns 1). X APTR TR_NegativeText ;If non-zero, this is the text for the gadget in the lower right (returns 0). X APTR TR_Title ;This is the title for the window. X WORD TR_KeyMask ;This is the qualifier mask for the keyboard shortcuts. X ;Use $FFFF to allow any qualifiers (or none). X ;Zero means that no keyboard shortcuts are allowed. X WORD TR_textcolor ;Color of the text. Uses Color 1 if no Color specified. X WORD TR_detailcolor ;Detail and block color, as in a NewWindow structure. If X WORD TR_blockcolor ;both are left zero, block pen will be set to 1. X WORD TR_versionnumber ;Make SURE this is set to zero. X LONG TR_rfu1 ;Make SURE you leave these two zeroed also. X LONG TR_rfu2 ;Make SURE you leave these two zeroed also. X LABEL TR_SIZEOF X X;/* NOTE: X; X; The control values mentioned above are used if you choose to insert X;printf style directives in your strings and should contain the address of X;a list of control parameters, usually on the stack. X; */ X X X X; This structure is for use with the GetLong function. X XGLNODEFAULTB EQU 0 ;Set this bit in the flags if you don't want a default X ;value to show up in the get long string gadget. For X ;some things this is much better than having a zero X ;show up. X XGLNODEFAULTM EQU 1<<GLNODEFAULTB X X STRUCTURE GetLongStruct,0 X APTR gl_titlebar X LONG gl_defaultval X LONG gl_minlimit X LONG gl_maxlimit X LONG gl_result X APTR gl_window X WORD gl_versionnumber; ;Make SURE this is set to zero. X LONG gl_flags; ;Some, uh flags. See above for bit definitions. X LONG gl_rfu2; ;Make SURE you leave these two zeroed also. X LABEl gl_SIZEOF X X X X; Remember, if you don't want to go through the hassle of X; initializing a ExtendedColorRequester structure, you can always just call X; ColorRequester (as opposed to ExtendedColorRequester). ColorRequester X; just takes a single parameter, in D0, the color that should start out X; being highlit. It returns a single value, the color that was selected at X; the end. X X; This structure is for use with the ExtendedColorRequester (_not_, X; the ColorRequester) function. X X STRUCTURE ExtendedColorRequesterStruct,0 X LONG ecr_defcolor ;The color that is initially highlit. X APTR ecr_window ;The window the 'requester' opens up in (zero normally). X LONG ecr_rfu1 ;Who knows what these will be used for, X LONG ecr_rfu2 ;but I'm sure we'll think of something. X LONG ecr_rfu3 ;Until then, just keep these zeroed. X LONG ecr_rfu4 ;Okay? X LONG ecr_rfu5 X LABEL ecr_SIZEOF X X X X IFND DSIZE XDSIZE EQU 130 XFCHARS EQU 30 X ENDC XWILDLENGTH EQU 30 X XFRQSHOWINFOB EQU 0 ;Set this in Flags if you want .info files to show. They default to hidden. XFRQEXTSELECTB EQU 1 ;Set this in Flags if you want extended select. Default is not. XFRQCACHINGB EQU 2 ;Set this in Flags if you want directory caching. Default is not. XFRQGETFONTSB EQU 3 ;Set this in Flags if you want a font requester rather than a file requester. XFRQINFOGADGETB EQU 4 ;Set this in Flags if you want a hide-info files gadget. XFRQHIDEWILDSB EQU 5 ;Set this in Flags if you DON'T want 'show' and 'hide' string gadgets. XFRQABSOLUTEXYB EQU 6 ;Use absolute x,y positions rather than centering on mouse. XFRQCACHEPURGEB EQU 7 ;Purge the cache whenever the directory date stamp changes if this is set. XFRQNOHALFCACHEB EQU 8 ;Don't cache a directory unless it is completely read in when this is set. XFRQNOSORTB EQU 9 ;Set this in Flags if you DON'T want sorted directories. XFRQNODRAGB EQU 10 ;Set this in Flags if you DON'T want a drag bar and depth gadgets. XFRQSAVINGB EQU 11 ;Set this bit if you are selecting a file to save to. XFRQLOADINGB EQU 12 ;Set this bit if you are selecting a file(s) to load from. X ;These two bits (save and load) aren't currently used for X ;anything, but they may be in the future, so you should X ;remember to set them. Also, these bits make it easier if X ;somebody wants to customize the file requester for their X ;machine. They can make it behave differently for loading X ;vs saving. X XFRQSHOWINFOM EQU 1<<FRQSHOWINFOB XFRQEXTSELECTM EQU 1<<FRQEXTSELECTB XFRQCACHINGM EQU 1<<FRQCACHINGB XFRQGETFONTSM EQU 1<<FRQGETFONTSB XFRQINFOGADGETM EQU 1<<FRQINFOGADGETB XFRQHIDEWILDSM EQU 1<<FRQHIDEWILDSB XFRQABSOLUTEXYM EQU 1<<FRQABSOLUTEXYB XFRQCACHEPURGEM EQU 1<<FRQCACHEPURGEB XFRQNOHALFCACHEM EQU 1<<FRQNOHALFCACHEB XFRQNOSORTM EQU 1<<FRQNOSORTB XFRQNODRAGM EQU 1<<FRQNODRAGB XFRQSAVINGM EQU 1<<FRQSAVINGB XFRQLOADINGM EQU 1<<FRQLOADINGB X X X STRUCTURE ESStructure,0 ;ExtendedSelectStructure X LONG es_NextFile ;This must be the first element! X WORD es_NameLength ;File name length, not including the terminating zero. X WORD es_Pad X APTR es_Node ;Node that the user has extended selected. X LABEL es_SIZEOF X X; When using extended select, the directory pointer is required X; since only the file names are stored in the frq_ExtendedSelect linked X; list. When not using extended select, you can either have frq_Dir and X; frq_File point be initialized, or you can have frq_PathName initialized, X; or both. frq_PathName will contain the concatenation of the file and X; directory chosen. X X STRUCTURE .FileRequester,0 X UWORD frq_VersionNumber ;MUST BE ZERO!!!!!!!!!!!!!!!!!! X X ;You will probably want to initialize these three variables. X APTR frq_Title ; Hailing text X APTR frq_Dir ; Directory array (must be DSIZE+1 characters long) X APTR frq_File ; Filename array (must be FCHARS+1 characters long) X ;If you initialize this variable then the file requester will place the complete path name in here on exit. X APTR frq_PathName ; Complete path name array - (must be DSIZE+FCHARS+2 long) X ;If you want the file requester to pop up on your custom screen, put one of your window pointers here. X ;Or better yet, you can leave this field zeroed and put a pointer to one of your windows in the X ;pr_WindowPtr field in your process structure. X APTR frq_Window ; Window requesting or NULL X ;Initialize these to the number of lines and columns you want to appear in the inner window that X ;displays the file names. If you leave these set to zero then default values will be used. X UWORD frq_MaxExtendedSelect ; Zero implies a maximum of 65535, as long as FRQEXTSELECT is set. X UWORD frq_numlines ; Number of lines in file window. X UWORD frq_numcolumns ; Number of columns in file window. X UWORD frq_devcolumns ; Number of columns in device window. X ULONG frq_Flags ; Various - umm - flags. See above for more info. X UWORD frq_dirnamescolor ;These five colors will all default X UWORD frq_filenamescolor ;to color one if you don't specify X UWORD frq_devicenamescolor ;a color (ie; if you specify color zero). X UWORD frq_fontnamescolor ;If you want color zero to be used, specify X UWORD frq_fontsizescolor ;color 32, or some other too large number X ;which mods down to zero. X X UWORD frq_detailcolor ;If both of these colors are specified as X UWORD frq_blockcolor ;zero then the block pen will be set to one. X X UWORD frq_gadgettextcolor ;The color for the text of the five boolean gadgets. Defaults to 1. X UWORD frq_textmessagecolor ;The color for the message at the screen top. Defaults to 1. X UWORD frq_stringnamecolor ;The color for the words Drawer, File, Hide and Show. Defaults to 3. X UWORD frq_stringgadgetcolor ;The color for the borders of the string gadgets. Defaults to 3. X ;Unfortunately it is not possible to specify X ;the color of the actual text in an Intuition X ;string gadget. X UWORD frq_boxbordercolor ;The color for the boxes around the file and directory areas. Defaults to 3. X UWORD frq_gadgetboxcolor ;The color for the boxes around the five boolean gadgets. Defaults to 3. X X STRUCT frq_RFU_Stuff,36 ;This area, which is reserved for X ;future use, should all be zero. X X STRUCT frq_DirDateStamp,ds_SIZEOF ; A copy of the cached directories date stamp. X ; There should never be any need to change this. X X UWORD frq_WindowLeftEdge; ;These two fields are only used when the X UWORD frq_WindowTopEdge; ;FRQABSOLUTEXY flag is set. They specify X ;the location of the upper left hand X ;corner of the window. X X UWORD frq_FontYSize ;These fields are used to return the selected X UWORD frq_FontStyle ;font size and style, only applicable when the X ;font bit is set. X X ;If you set the extended select bit and the user extended selects, the list of filenames will start from here. X APTR frq_ExtendedSelect ; Linked list of ESStructures if more than one filename is chosen. X ;All of the following variables you shouldn't need to touch. They contain fields that the file X ;requester sets and likes to preserve over calls, just to make life easier for the user. X STRUCT frq_Hide,WILDLENGTH+2 ; Wildcards for files to hide. X STRUCT frq_Show,WILDLENGTH+2 ; Wildcards for files to show. X WORD frq_FileBufferPos ; Cursor's position and first X WORD frq_FileDispPos ; displayed character number in X WORD frq_DirBufferPos ; the three string gadgets. No X WORD frq_DirDispPos ; need to initialized these if X WORD frq_HideBufferPos ; you don't want to. X WORD frq_HideDispPos X WORD frq_ShowBufferPos X WORD frq_ShowDispPos X X; The following fields are PRIVATE! Don't go messing with them or X; wierd things may/will happen. If this isn't enough of a warning, go read X; the one in intuition.h, that should scare you off. X X APTR frq_Memory ; Memory allocated for dir entries. X APTR frq_Memory2 ; Used for currently hidden files. X APTR frq_Lock ; Contains lock on directories being read across calls. X STRUCT frq_PrivateDirBuffer,DSIZE+2 ; Used for keeping a record of which X ; directory we have file names for. X APTR frq_FileInfoBlock X WORD frq_NumEntries X WORD frq_NumHiddenEntries X WORD frq_filestartnumber X WORD frq_devicestartnumber X LABEL frq_SIZEOF X X X X X X X X; This is used with the RealTimeScroll function. X X STRUCTURE ScrollStruct,0 X ULONG ss_TopEntryNumber ;This is the ordinal number of the first X ;displayed entry. X ULONG ss_NumEntries ;This is the total number of entries in X ;the list. X UWORD ss_LineSpacing ;This is how many pixels high each entry is. X ULONG ss_NumLines ;This is how many entries can be displayed simultaneously. X APTR ss_PropGadget ;This is a pointer to the prop gadget being monitored. X X APTR ss_RedrawAll ;This routine is used to redraw all of the X ;entries when the user moves far enough X ;that scrolling will take too long. X X APTR ss_ReadMore ;An optional routine that is called when X ;the scroll routine is waiting for movement. X ;This allows reading of new data while real X ;time scrolling. X APTR ss_ScrollAndDraw ;This routine is called when the data needs X ;to be scrolled and updated. This routine is X ;passed four long parameters (on the stack and X ;in D0-D3) which are, respectively: X ;D0 - entry number of first line to be drawn. X ;D1 - pixel offset to draw first line at. X ;D2 - amount to scroll before doing any drawing. X ;D3 - number of lines of data to draw. X WORD versionnumber ;Make SURE this is set to zero. X LONG rfu1 ;Make SURE you leave these two zeroed also. X LONG rfu2 ;Make SURE you leave these two zeroed also. X LABEL ss_SIZEOF X X X X X X STRUCTURE Arrows,0 X STRUCT ArrowUp,20 X STRUCT ArrowDown,20 X STRUCT ArrowLeft,18 X STRUCT ArrowRight,18 X STRUCT Letter_R,20 X STRUCT Letter_G,20 X STRUCT Letter_B,20 X STRUCT Letter_H,20 X STRUCT Letter_S,20 X STRUCT Letter_V,20 X LABEL chipstuff_SIZEOF X X; These are the positions relative to the rl_Images pointer. X;ie X; MOVE.L rl_Images(A6),A0 X; ADD.L #ArrowLeft,A0 ;A0 now points at the left arrow. X X X STRUCTURE ReqLib,LIB_SIZE X APTR rl_SysLib X APTR rl_DosLib ;These must be kept in the same order, X APTR rl_IntuiLib ;the library expunge code depends on it. X APTR rl_GfxLib ; X APTR rl_SegList X APTR rl_Images ;pointer to the arrow images. X BYTE rl_Flags X BYTE rl_Pad X APTR rl_ConsoleDev ;for RawKeyToAscii X APTR rl_ConsoleHandle ;so we can close the device later X LABEL MyLib_Sizeof X X X X X X X LIBINIT X LIBDEF _LVOCenter X X LIBDEF _LVOSetSize X LIBDEF _LVOSetLocation X LIBDEF _LVOReadLocation X X LIBDEF _LVOFormat X X LIBDEF _LVOFakeFunction1 ;Old function. Don't use. X LIBDEF _LVOFakeFunction2 ;Old function. Don't use. X X LIBDEF _LVOFakeFunction3 ;Old function. Don't use. X LIBDEF _LVOFakeFunction4 ;Old function. Don't use. X X LIBDEF _LVOFileRequester X X LIBDEF _LVOColorRequester X X LIBDEF _LVODrawBox X X LIBDEF _LVOMakeButton X LIBDEF _LVOMakeScrollBar X X LIBDEF _LVOPurgeFiles X X LIBDEF _LVOGetFontHeightAndWidth X X LIBDEF _LVOMakeGadget X LIBDEF _LVOMakeString X LIBDEF _LVOMakeProp X X LIBDEF _LVOLinkGadget X LIBDEF _LVOLinkStringGadget X LIBDEF _LVOLinkPropGadget X X LIBDEF _LVOGetString X X LIBDEF _LVORealTimeScroll X X LIBDEF _LVOTextRequest X X LIBDEF _LVOGetLong X X LIBDEF _LVORawKeyToAscii X X LIBDEF _LVOExtendedColorRequester X X X XREQNAME MACRO X DC.B 'req.library',0 X ENDM X X; This macro will open the RequesterLibrary for you. At the end, A6 will X;contain the library and D0/A0 will be correct. (What dos passed you) X XOpenReq MACRO X BRA.S opnrq X Xdname DC.B 'dos.library',0 Xrlibmsg DC.B 'You need V1+ of ' XReqName REQNAME X DC.B 10,13,0 X;;;rliblng EQU *-rlibmsg Xrliblng EQU 30 X DS.W 0 X EVEN X Xopnrq: X MOVEM.L d0/a0,-(sp) X MOVE.L 4,A6 X LEA.L ReqName,a1 X MOVEQ.L #ReqVersion,d0 X SYS OpenLibrary X TST.L d0 X BNE.S itsokay X LEA dname,A1 X SYS OpenLibrary X TST.L D0 X BEQ.S 1$ X MOVE.L D0,A6 X SYS Output X MOVE.L d0,d1 X BEQ.S 1$ ;No output. Phooey. X MOVE.L #rlibmsg,d2 ;Tell user he needs to find library. X MOVE.L #rliblng,D3 X SYS Write X1$: ADDQ #8,sp X RTS X Xitsokay: X MOVE.L D0,A6 X MOVEM.L (SP)+,D0/A0 X ENDM X X X X ENDC END_OF_FILE if test 15673 -ne `wc -c <'reqbase.i'`; then echo shar: \"'reqbase.i'\" unpacked with wrong size! fi # end of 'reqbase.i' fi if test -f 'showoffreq.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'showoffreq.c'\" else echo shar: Extracting \"'showoffreq.c'\" \(13729 characters\) sed "s/^X//" >'showoffreq.c' <<'END_OF_FILE' X X#include <intuition/intuition.h> X#include <exec/libraries.h> X#include <libraries/dosextens.h> /* For the process structure definition. */ X X X#include <libraries/dos.h> X X#include <libraries/reqbase.h> X X#ifdef LATTICE X#include <proto/all.h> X#else Xstruct Library * OpenLibrary(); Xstruct Screen * OpenScreen(); Xstruct Window * OpenWindow(); Xstruct Task * FindTask(); Xstruct Message * GetMsg(); X#endif X X X#define WIDTH 640 X#define HEIGHT 200 X#define DEPTH 3 X X#define GADGETSTARTX 20 X#define GADGETSTARTY 60 X X#define IDCMP (GADGETUP) X#define FLAGS (BACKDROP|SMART_REFRESH|ACTIVATE|BORDERLESS) X Xstruct IntuitionBase *IntuitionBase; Xstruct GfxBase *GfxBase; Xstruct ReqBase *ReqBase; Xstruct Window *window; Xstruct Screen *screen; X Xstruct NewScreen ns = X { X 0, 0, /* LeftEdge, TopEdge */ X WIDTH, HEIGHT, DEPTH, /* Width, Height, Depth */ X 0, 1, /* DetailPen, BlockPen */ X HIRES, /* ViewModes */ X CUSTOMSCREEN, /* Type */ X NULL, /* Font */ X (UBYTE *)"Show off requester library.", /* Title */ X NULL, /* Gadgets */ X NULL /* Bitmap */ X }; X Xstruct NewWindow nw = X { X 0,0, /* LeftEdge, TopEdge */ X WIDTH,HEIGHT, /* Width, Height */ X -1,-1, /* DetailPen, BlockPen */ X IDCMP, /* IDCMPFlags */ X FLAGS, /* Flags */ X NULL, /* FirstGadget */ X NULL, /* CheckMark */ X NULL, /* Title */ X NULL, /* Screen */ X NULL, /* BitMap */ X 79, 30, /* MinWidth, MinHeight */ X 640, 200, /* MaxWidth, MaxHeight */ X CUSTOMSCREEN /* Type (of screen) */ X }; X X Xstruct Process *myprocess; XAPTR olderrorwindow; X X X X /* I declared this variable as global, rather than just declaring it as */ X /* a regular local variable because I need to make sure that all of the */ X /* fields are initialized to zero. */ X /* Also, the quit_cleanup routine needs to be able to access it to purge */ X /* the directory buffers which I have chosen to use (by setting the */ X /* FRQCACHINM flag. */ X Xstruct FileRequester MyFileReqStruct; Xchar filename[FCHARS]; Xchar directoryname[DSIZE]; X Xvoid ShowFileRequester() X { X char answerarray[DSIZE+FCHARS]; X X answerarray[0] = 0; X X /* Initialize the 'PathName' field so that the file requester will */ X /* construct a complete path name for me. It will also put the two */ X /* parts of the answer (directory and file name) into the directory */ X /* file name which I also decided to supply it with. Since the */ X /* directory and file name arrays are present, it will use their */ X /* initial contents as the initial file and directory. If they aren't */ X /* present it will leave both blank to start. */ X MyFileReqStruct.PathName = answerarray; X MyFileReqStruct.Dir = directoryname; X MyFileReqStruct.File = filename; X X /* The directory caching of this file requester is one of its nice */ X /* features, so I decided to show it off. It is completely optional */ X /* though, so if you don't want it, don't set this flag. If you do */ X /* want it, don't forget to call PurgeFiles() when you are done. */ X MyFileReqStruct.Flags = FRQCACHINGM; X X /* Initialize a few colour fields. Not strictly necessary, but */ X /* personally, I like having my files a different colour from my */ X /* directories. */ X MyFileReqStruct.dirnamescolor = 2; X MyFileReqStruct.devicenamescolor = 2; X /* I could also make it larger, pass it a file and/or directory */ X /* name, set the window title, set various flags and customize */ X /* in many other ways, but I wanted to show that it can be easily */ X /* used without having to fill in a lot of fields. */ X if (FileRequester(&MyFileReqStruct)) X SimpleRequest("You selected the file '%s'.", answerarray); X else X SimpleRequest("You didn't select a file."); X } X X X Xvoid ShowColorRequester() X { X ColorRequester(1L); /* Pass it the color you want to start out being highlit. */ X /* It actually returns the colour that the user chose, but */ X /* I'm not interested in that value. */ X X /* If you want to give more parameters to the colour requester, you can */ X /* call ExtendedColorRequester with the address of an ExtendedColorRequest */ X /* structure. Currently the only additional parameter this lets you pass */ X /* is the address of the window the requester should appear in. This can */ X /* normally be done more easily by specifying it in the pr_WindowPtr field */ X /* of your task structure. */ X } X X X Xvoid ShowSimpleText() X { X SimpleRequest( X" SimpleRequest() is a tiny bit of\n" X"glue code which passes a single text\n" X"string (with optional printf() style\n" X"formatting) to the TextRequest() routine\n" X"in the library. The SimpleRequest()\n" X"routine can be easily modified to fit\n" X"your own peculiar purposes."); X } X X X Xchar *yesno[] = X { X "no", X "yes", X }; X Xvoid ShowTwoGadText() X { X short result; X X result = TwoGadRequest("Just testing the two gadget requester."); X SimpleRequest("You responded with a '%s' to this requester.", yesno[result]); X } X X X Xchar *response[] = X { X "You really should use it.", X "Excellent choice. You have good taste.", X "Oh come one, make up your mind.\nYou won't regret choosing 'yes'.", X }; X Xvoid ShowThreeGadText() X { X struct TRStructure MyTextStruct; X short result; X X MyTextStruct.Text = " Would you use the requester library\n" X "in your programs?"; X /* The Controls field doesn't actually have to be initialized, unless you */ X /* are using printf() style formatting of the Text string. */ X MyTextStruct.Window = 0; /* This must be zero or a valid window pointer. */ X MyTextStruct.MiddleText = "Perhaps..."; X MyTextStruct.PositiveText = "Oh yeah, for sure!"; X MyTextStruct.NegativeText = "Methinks not."; X MyTextStruct.Title = "Show off text requester."; X MyTextStruct.KeyMask = AMIGAKEYS; /* Allow only keys together with the amiga */ X /* qualifiers to be used for keyboard shortcuts. */ X MyTextStruct.textcolor = 1; X MyTextStruct.detailcolor = 0; X MyTextStruct.blockcolor = 1; X MyTextStruct.versionnumber = 0; X MyTextStruct.rfu1 = 0; X MyTextStruct.rfu2 = 0; X result = TextRequest(&MyTextStruct); X SimpleRequest(response[result]); X } X X X X /* I declared this variable globally, rather than just declaring it as */ X /* a regular local variable because I need to make sure that all of the */ X /* fields are initialized to zero. */ X /* Also, the quit_cleanup routine needs to be able to access it to purge */ X /* the directory buffers which I have chosen to use (by setting the */ X /* FRQCACHINM flag. */ X /* I could have used the same structure I used for the file requester, */ X /* but I decided not to, so that the two requesters could have separate */ X /* directory caches. */ X Xstruct FileRequester MyFontReqStruct; X Xvoid ShowFontRequester() X { X char fontname[FCHARS]; X char dirname[DSIZE]; X X /* You do have to tell the font requester what directory to look */ X /* in, usually fonts:. */ X X strcpy(dirname, "fonts:"); X fontname[0] = 0; X X /* Tell the file requester to be a font requester. */ X /* The directory caching of this file requester is one of its nice */ X /* features, so I decided to show it off. It is completely optional */ X /* though, so if you don't want it, don't set the caching flag. If you do */ X /* want it, don't forget to call PurgeFiles() when you are done. */ X MyFontReqStruct.Flags |= FRQGETFONTSM | FRQCACHINGM; X X MyFontReqStruct.Dir = dirname; X MyFontReqStruct.File = fontname; X /* Initialize a colour field. Not strictly necessary, but */ X /* personally, I like having my fonts a different colour */ X /* from the font size list. */ X MyFontReqStruct.fontnamescolor = 2; X if (FileRequester(&MyFontReqStruct)) X SimpleRequest("You selected the font '%s',\n" X "size %d, style %d.", fontname, MyFontReqStruct.FontYSize, MyFontReqStruct.FontStyle); X else X SimpleRequest("You didn't select a font."); X } X X X X#define TEXTLENGTH 75 X Xvoid ShowGetText() X { X char mybuffer[TEXTLENGTH]; X X /* Note that the buffer you pass to GetString must be initialized. */ X /* If you don't want any text to appear by default, just put a zero */ X /* at the beginning of the array. */ X X strcpy(mybuffer, "The default text."); X if (GetString(mybuffer, "Type anything, then hit return.", (struct Window *)0L, 50L, (long)TEXTLENGTH)) X SimpleRequest("I'll bet you typed:\n" X "'%s'.", mybuffer); X else X SimpleRequest("You didn't enter anything!"); X } X X X Xvoid ShowGetLong() X { X struct GetLongStruct mygetlongstruct; X X mygetlongstruct.titlebar = "Enter a number."; X mygetlongstruct.defaultval = 1234; X mygetlongstruct.minlimit = -100000; X mygetlongstruct.maxlimit = 100000; X mygetlongstruct.window = 0; /* Must be zeroed or req.lib will use it as a window pointer. */ X mygetlongstruct.versionnumber = 0; X mygetlongstruct.flags = 0; X mygetlongstruct.rfu2 = 0; X if (GetLong(&mygetlongstruct)) X SimpleRequest("You entered the number '%ld'.", mygetlongstruct.result); X else X SimpleRequest("You didn't enter a number."); X } X X X Xvoid quit_cleanup(message) Xchar *message; X { X if (window) X CloseWindow(window); X if (screen) X CloseScreen(screen); X if (ReqBase) X { X PurgeFiles(&MyFileReqStruct); /* Only necessary if the FRQCACHINGM flag */ X PurgeFiles(&MyFontReqStruct); /* is set in the file requester structure. */ X CloseLibrary(ReqBase); X } X if (GfxBase) X CloseLibrary(GfxBase); X if (IntuitionBase) X CloseLibrary(IntuitionBase); X if (message) X puts(message); X exit(0); X } X X X Xvoid _abort() X { X quit_cleanup("User abort requested."); X } X X X Xvoid bye() X { X myprocess->pr_WindowPtr = olderrorwindow; X quit_cleanup((char *)0); X } X X X Xstruct gadgetandfunction X { X char *gadgettext; X void (*functionpointer)(); X }; X Xstruct gadgetandfunction gadgetlist[] = X { X { X "Show the file requester.", X ShowFileRequester, X }, X { X "Show the color requester.", X ShowColorRequester, X }, X { X "Show a simple text requester.", X ShowSimpleText, X }, X { X "Show a two gadget requester.", X ShowTwoGadText, X }, X { X "Show a three gadget requester.", X ShowThreeGadText, X }, X { X "Show the font requester.", X ShowFontRequester, X }, X { X "Show the 'get text' requester.", X ShowGetText, X }, X { X "Show the 'get number' requester.", X ShowGetLong, X }, X X { X "Exit the demo.", X bye, X }, X }; X X#define NUMGADGETS (sizeof(gadgetlist) / sizeof(struct gadgetandfunction)) X Xstruct GadgetBlock gadgetblocks[NUMGADGETS]; X Xvoid main() X { X short x, y, gadgetnum; X struct IntuiMessage messagecopy, *message; X struct Gadget *gadgetpointer; X X /* First we do the usual opening up of libraries, pretty standard stuff. */ X X if (!(IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library", 33L))) X quit_cleanup("Requires 1.2 operating system."); X X if (!(GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 33L))) X quit_cleanup("Couldn't open graphics."); X X if (!(ReqBase = (struct ReqBase *)OpenLibrary("req.library", 0L))) X quit_cleanup("Couldn't open the req library."); X X /* Then we open up a nice 640 by 200, three bitplane screen. This demo */ X /* can be easily modified to work on the workbench screen. Simply */ X /* take out the open screen command, and change the NewWindow Type field */ X /* to WBENCHSCREEN. All of the requesters will then open on the */ X /* workbench screen. */ X X if (!(screen = (struct Screen *)OpenScreen(&ns))) X quit_cleanup("Couldn't open screen."); X X for (gadgetnum = 0; gadgetnum < NUMGADGETS; gadgetnum++) X { X x = GADGETSTARTX + (gadgetnum & 1) * (WIDTH / 2); X y = GADGETSTARTY + (gadgetnum / 2) * 20; X LinkGadget(&gadgetblocks[gadgetnum], gadgetlist[gadgetnum].gadgettext, &nw, (long)x, (long)y); X gadgetblocks[gadgetnum].Gadget.GadgetID = gadgetnum; X } X X /* Find the address of the last gadget added, the 'goodbye' gadget */ X /* and adjust it so that it appears in the middle at the top. */ X gadgetpointer = &gadgetblocks[NUMGADGETS-1].Gadget; X gadgetpointer->TopEdge = 20; X gadgetpointer->LeftEdge = (WIDTH - gadgetpointer->Width) / 2; X X nw.Screen = screen; X if (!(window = (struct Window *)OpenWindow(&nw))) X quit_cleanup("Couldn't open window."); X X /* Now we set the pr_WindowPtr field in our process structure to */ X /* point at our window so that DOS requesters and requester library */ X /* requestes will open up on our custom screen, instead of on the */ X /* workbench screen. NOTE!!!!! It is VERY important that you restore */ X /* this variable before the program exits. This is why I make a copy */ X /* of the previous value before I change it. IF YOU DON'T RESTORE IT */ X /* when you exit, NASTY THINGS WILL HAPPEN!! (but only sometimes). */ X /* If you execute a program WITHOUT using the 'run' command and it */ X /* sets the pr_WindowPtr to point at it's window, and then exits */ X /* without restoring it, the next DOS requester for that process will */ X /* try to come up on a screen that NO LONGER EXISTS - which will probably */ X /* BLOW UP YOUR MACHINE! The pr_WindowPtr is restored in the bye() */ X /* routine. */ X X myprocess = (struct Process *)FindTask((char *)0); X olderrorwindow = myprocess->pr_WindowPtr; X myprocess->pr_WindowPtr = (APTR)window; X X /* Now we enter our main processing loop. All we do is wait for */ X /* GADGETUP messages (the only kind the IDCMP port is set to */ X /* receive) and call the function associated with each gadget */ X /* that the user presses. One of those gadgets is an exit */ X /* gadget which calls the 'bye' routine, which frees up all */ X /* resources and exits. This is how this loop, which seems to */ X /* never terminate, terminates. */ X X while (TRUE) X { X WaitPort(window->UserPort); X message = (struct IntuiMessage *)GetMsg(window->UserPort); X messagecopy = *message; X ReplyMsg((struct Message *)message); X gadgetnum = ((struct Gadget *)(messagecopy.IAddress))->GadgetID; X X gadgetlist[gadgetnum].functionpointer(); X } X } END_OF_FILE if test 13729 -ne `wc -c <'showoffreq.c'`; then echo shar: \"'showoffreq.c'\" unpacked with wrong size! fi # end of 'showoffreq.c' fi echo shar: End of archive 2 \(of 3\). cp /dev/null ark2isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 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.