[comp.sources.atari.st] v04i017: fcat11 -- Faster "cat" for Gulam, v 1.1

koreth@panarthea.ebay.sun.com (Steven Grimm) (10/27/90)

Submitted-by: UI0T@DKAUNI2.Bitnet (Thomas Koenig)
Posting-number: Volume 4, Issue 17
Archive-name: fcat11

There was a bug in the old version of fcat, which resulted in files
not properly being processed when they were shorter than available memory.
The one following has that bug fixed.     TK

===========
This are the sources for fcat V1.1, a cat replacement.  It is faster
than the one from Gemini V1.1 and more bug - free than Gulam's (I hope).

Enjoy
Thomas Koenig
UI0T@DKAUNI2.BITNET
UI0T@IBM3090.RZ.UNI-KARLSRUHE.DE
----------------------------------------------------------

table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 fcatsrc.zoo
M6D]/(#(N,# @07)C:&EV92X:  #<I\3]*@   -;___\"  $        !W*?$z
M_0(!/@D  '$   !6%7!QN3RF$0  S0@   $  0        !F8V%T+F,     y
M    "@!_16X             0"DC*   7Z@ 869,&#HNQH#0 6+,&S<&Z91Qx
M<[ ,P31LRLP!0><-B#ETPK@A$T8.&1!OZM"!HQ)$G3EIW)P!$0:$F#IFS)21w
M0_ -3SIHRC10H&(@B*-(D08)*2<-B"E47 PM.G5@$)5H?"X$025KFS ;EU!Rv
MD^9,U:1H051) H,*$")+@E1QDD2&"R%)J#@I0N5L6J1KVP))(J3)#!@Y8+B0u
MHL7%W"0MXDIA,D5*%21%JIXE4G&K#+LQ%,?(D5@ST8$.V\#!N-/EG#(G&9X9t
MH] *B!@N9MPP712$E9TP'V[%'>/LV:YI-L*1\^:,G#!M0"0' 8=-F#&PI;OAs
M&)1Z'3%LTB@D\^9K3*E$7PP=.B+F&#9UR%CD 9),FC<NT/A@[QZ^?!#TT4&&r
M?&;DMY\"[4'DWWP@-263@?PI&-]\;\PA1DQD0*@ >P3&9%$323B!0A@LB)%"q
M4BBD&$8*/*!@XHD_@##BB0RYF$(*')9AAH=/44'$%T@$X0013!1Q% HQX(A@p
MAVY8)$414Q0AA15&H@@#'C+ H*62(S!ID1%-!#'%$G\9$<074A#QA!-,9)'Co
MCDV"8,033! 1)11HG< %%R>\R2,14B1!Y9U)G:!#GTOJR&.86$!1I!-H(;FEn
MGW$^&<2/:[:)% HP*#F40"!X"4(;R8WA @@[,<>30_)MI()ZB<)IT1-54/'%m
M$T9\T40133PA11:;MC!##ER*>D6@5!3QA912^!II"Z$5JVBE15RZK!3-2I$6l
M"M FN5ZL/)I)11!,H- @"R#(,<:)Y(&P!T'+Q42'&>8*F"H+(I0P!T/Z<N&&k
M""R\<8<;7Z1!!@L-IK #"%P,]=?#$"<E1QETU"''=BC(>Z*Z"_<!PAUHL"9Cj
MI]]^.I 9=4!$QWW;+?=&1W3D 8=%KPYEQQL&)S6&2G <A 8*8Z!1$@@J*/PMi
MJ#'/3&!//*74], @$#$NT; F#9N.']$A1QUCT '"%V2$%/6X.QP]$!PXNR'1h
M3QX)O!U%;= ,:]!#J^!VP624O:$"\HX:1DP9JTV3'+.Q0#=/*I1TAAU;=*'Dg
M'@XC!9,>97SA-5IAV/$W&R7B],7D971NQA<3@\1"1Z27$<;!$Z_.PAU-T2&1f
M&RSLF%'J(.F=U!Q9R7$Y6F;,,3$=NB/5]\-"CY11\4?=G/-?*MR44VL]@.!$e
M%4PPP3RJ>*R]W>%$WVWP]E(' 3$1(6T/_E\] [4%HXX6X407Z@O-TU^I-OA^d
M$(T^"L(*(,@2_<P6-8_<P2)K<(/ /I:5CUFD)!:)4<T4D)0TF$%&15&<'4#0c
M@^KI"08G4-+#Q'>2ZHF@( <1P?;*P(;71"XM).0@T30( KV9# 1,H-@)-A*2b
M-5@$*!:YT!G.H!&O!2UE:T#)!>/6!I_DP8$-$0D(B.@U,VBE)M+3">)@=4,Da
M+%"(TME(&KPF05@E)7.;DZ&YTD YRYVH"6%@ QO>, 9N)<F&%#3>!4>D.8P z
M*( J>%*4IE0$$98I".,JEPB<\#)4*; .9T##J,K01#GD 6"TLA6N=,4K7V7!y
M:'M+BO0^QT:+5 ^-?FP!" 0I)2KA$51!D",=.P-$F^!$BZ>:X!G[R 8U@LZ-x
M(("C+.LX2M"!LH)[1&4O>0 "DN4Q+>(B%PH6V<B)I"22DZSD)5F0R5OE:E>]w
M^A4H7VC+Z?&D>BAPWDF*1A->;B^=."/#B8SP&@&%! 4F0-^*MC?*TGFM>L4Lv
MY2L',@6)P($[S(&D)&NIN#K$37#A 0G5R DRD7&K!8I3B ^::<BC0.Z9P!,>u
MQ61(SQW) 20H4,$*5J!!%H!)3$LXYE\L**/@#0] SHS84:*I2".(3(%53,E(t
M &93BHT3I+O3VAC@D <4M \-+$@<X>QP5% QX0UO..@;[-":./82;7. "7@Ls
M4@8\],P-P4$KU9!"SJ14-",U%:G7?-"#G/[EHSIM",]\YE2?R31B#8I(7X'"r
M GVZ(&QA^ +<RO!7B"6/#'"MGA&R.I'!0M52F&+3)[?W,)JBX+%P9:9=(X;7q
MO&Y*G2>:0[S41J_\:0U?19"#JE R,[+(! 3Z MA3&YM7GJ+ M7)@ 6@9R]F_p
M]*&M?[%=Y?PI0\,BEI24&R@(KA RN )Q8F',&D9Z.8?R4"QDMXT)=RRB7(YXo
MI'4'"Y5'QCA1I/[EK19!@7)Q-U>.(C<M'[VA%%1WDI2MK)<3.<D;+EA>K62Qn
M-;HT[5%0AUX9@DA$\_6GZ.C+6YUZEL'\!<%&1VO:TBI88AF6+'H_*Q+(ALZ\m
MJ7-=.;7XOX!2K@7]+&*%%>S9!H>@>AA>74<_[-'[\EA&J/W(:N?U6]F>2P2Ql
MG2UZ8S*3W+)@M\7]L9P0*4W@LN!8>5$6LWPU8]-Z#%0USO"-48S>$TW0QWF-k
ML40!ZCGFJA*]439MA(LHPSE+],W\C?/#OCR0"[\AQ2?9L)FYJ !0)8&'W3DPj
M3U FQQAU92(?BYU%V)L2A+27QYY5\S^KQ^&\>OC'L!OC[$@::HF@ "H_"M*0i
MBH0N%Y]8T5W.JV=+/>HQNWK'4MXIE159:K+*UB< PW*RKI6MH^:ZG/25H:OUh
M;%P0@'F/FN8@IP?]K;SRF8$6M7-].]5>-)\VGO-\3X7*0&+E$=?;1RGJ/^4Tg
MAR9U#P5=OC9\XWI3NG+[S""5=W7CVP*,$DZC'.UVH0=RZ/%B%R3;_8AW@<)Df
M$&3$#%X3;RT5':,K2%HZ7JMT+LVH1QFY&@2JC+:@R?EIM\9NU)+M]:E]!"0Ae
M$:D(K?8<Z$".; FO>"==GO7)(6UKF9>2YIK&]2$3.4V+C]'7J@HVLK2,+2[Cd
M,2G7SK3/*0?T-M-9T ('<<4NUDR]'7=OANZN=20R7A L5HEE?RI!F!.=FBCWc
M[!-4IUY7PE?PJ6"W0_GT+[V6$3?4KVX24<W3D=)W&3:H[Y9MK!5Y@H+ '[1Zb
M:@=@X549@X4Y7L.0]QD(3& "HEU^S'.JTYW0?>S-=UX%G^\!H 0%I2+@R?*4a
MA$._A7Z4P1]%!8V/_?]N<R(/<@&$7O]60 #<I\3] @'_"@  A0D  % 5@;XUz
M.P,"  !Z 0   0           &9C870N;6%N       * '],!P          y
M  ! *2,H  "=!&E2!(2.!@I * 1A9DP8.B!:@!CSQHU#.F7</"S#, V;,G,0x
M(IR2Q<D3*%.23#&(<"'#BR"VF/$(LDM,'S,_=A&I@$B1*4.D)(%")<D3)RP3w
M+C0"DZ+%C1HQS@&1AL[4G!S#R#E3ITU&JR#"N"$# HZ<-&[ TD%3I@T(.F] v
MS*$CEHQ6,BT7OJE#!PY?%PJ/%&E"Y,E*B7<\DG$HA\Q4%"K"C@7Q(T58.1SGu
MU($#YXT<C&0 )S$#PDU<K%.UELFK< Z<,F/2S"Q#AL7+AR#(O %9^LU:M&=Vt
M4(6HF[=IB)C#D#4CYXW;N77O4G7CEXX+GE>"2'&2Q,F1E0>5*BPBI[D<$%[Gs
MS ESAK?JLF?3TGX;%TW=CR"<R $L0[AL$'GL!<(=8D$$%PC)D;566RRPAB!Mr
M:6 V!D15T?<66W*-@5E&(  &0A)N@-#$9F:4P89MOTWE4(AB<*2;&QPEMM:%q
MJXDWD7-MU.6@2W.4 5$9Y7F&U8UNA(=00-RGQ/T" 2(,  !&"P  5A7.<8<Lp
MWP   *0    !            ;6%K969I;&4       H ?VMV            o
M $ I(R@  $> :!)F31DS:=B4 6'FC1R&8\+080$B#(B(=$#(*0.'39@Q9=J4n
M<9.QX<,C(=.X2=- 0<LA0T#T '%FS)B63X0HF2(3HD07;UX:81+D",^9+9Z m
M:'$E#!LV+5N:P>B"#ATX('2 (($BY\X4+1-PA9EBZ1N?=*I>W=I5YY2R7)D,l
M+?HVJH*I/\]JQ9OVILN[5--D1>O"KU@49,T2%MRB"&&_ 0'<I\3] @      k
M                                                          #\j
M@]RGQ/T" 9@5  !I#   5A6+<PSF21(  "\)   !            9F-A="YCi
M          H ?VL@             $ I(R@  %^H &%F3!@Z+L: T %BS!LWh
M!NF4<7.P#,$T;,K, 4'G#8@Y=,*X(1-&#AD0;^K0@:,21)TY:=R< 1$&A)@Zg
M9LR4D4/P#4\Z:,HT4*!B((BC2)$&"2DG#8@I5%P,+3IU8!"5:'PN!$$E:YLPf
M&Y=0<I/F3-6D:$%420*#"A B2X)4<9)$A@LA2:@X*4+E;%JD:]L"22*DR0P8e
M.6"XD*+%Q=PD+>)*83)%2A4D1:J>)5)QJPR[,13'R)%8,]&!#MO P;C3Y9PRd
M)QF>&:/0"H@8+F;<,%T4A)6=,!]NQ1WC[-FN:3;"D?/FC)PP;4 D!P&'39@Qc
ML*6[X1B4>ATQ;-(H)//F:TP71Y.8 9$G)8@[(NEP]!C3H1PX/BN>32-?*YR2b
M=&STQGK\:=<1>RGQ],8=VRW7W'-MS,$"=P=)MY$9,5DD1AX@M%'&#B"H\9)\a
MY+EQ AUG@0>=11Y*MQY097!8XHD@R%''=O;)4<88=+#!H1@[AO&210-2B-!4z
M+PPUU CUL5$'&1;Q !(9:;SA AH^+-GDDU%.":495V:I ),0.0DE"%+2T91,y
M86I9)I=HOC&'&#&1T:8"2WZ9(0A-).$$"F&P($8*2:%@:!@I\(#"H(3^  *@x
MA#*T: HIY%D&AFY8!!417R 1A!-$,%'$42C$4.F8>F8*@A1%3%&$%%:,6B@,w
M>,@ PZVGCI"J148T$<042_QE1!!?2$'$$TXPD86EF/+Z!!-$N H%6B=PP<4)v
MS.Y)A!1)Q"IM4B?H@"VJE^[I*Q90B.H$6J7BFJVJK ;!*;+*(H4"#*<.)1 (u
MNW:8W!CH[<0<3PY!N9$*29+;+ A/5$'%%T\8\443133QA!19V-O"##GDVN\5t
MW%)1Q!>O2G$QNRV$YG&Y\!8A+\E2F"Q%6BBD;*J2"N\Y+!5!,($"2'),*,<8s
MA)('PAX$+1<3'6;\3 >4<@0M0@ES,$0U%VZ(P,*";GR1!ADL )T"B%P,]=?9r
M:">E(QUUR+$="DL3.C2(?;R'!FN/XHNSO@.9<2./53;(7$=TY &'10@/9<<;q
M7R<UADK_ 87"&&B4!((*8^.\;^&'?]F3@FVCQ" (1/!\><*<PW;I1VK6P2,(p
M7Y 1$ND\[Z#Y0/@MW=J!7(- 48N)*T"YY2IP[349MN.IP-(=AA$3W&[(5])Lo
M+ S/DPK3V[%%%Z?N8392,.E1QA?RH16&'<ZS(2A.7X1?QOIF?*$C2"QT)'\9n
M88"M8_XLW-$4'1)Q PLPE)'[@21Y29E#5N10/K2880YK0R!2F'>VRHTD(Q(\m
MRN(:]Q<5W"0GK>D!")Q0!28P(8,@* ,>).*VAE3N>L;[&@I+%P2T$2$D*+3>l
MV2*'ABV<*UU%<$(7<OC"LPD,:#X, KK4!8(5@,!60[P=Z3QR!XNLP0T+LAL5k
M+5(2BS@J>$E)PWI04)3L@: '(JP6#$YPJK/%\"0B%$%!#B("%):!#:_Y7EK>j
M>,;+F3%Y? ,!$\I AQ-L)"1KL B,;%*6,VA$/I2[T1I0LAX/M<$G'*IB0T0"i
M D?*QPQ:J<D'=7*]A 42"5FDTTRF4Z O)BPIYTM?'W^6!O&1CU!-" ,;V/"&h
M,=3,5(!40!C'&$N,H.F)*F"5JV!5A#8**P@\\YD(G/ &^4PD)6= 0X?*<$DYg
MY$%K#7M8Q"96L8ME(7/*2\H'VU=+BXBPF&P 00M6U:I7Q2J8^PK"+GO9F46.f
M<B?H 2-2X#E+]]V23[KDI2_7Z3YT#O-1!.4!"/0FS&=&$P73K&8*L5B';&ZSe
MF]]D03@A)C&*60QCZ-2C37!"REEN\"28HPGZ,()"%+R44$9XS=-"@@(3W!!1d
M*%SG_.0C0H:V$Y\#F8)$X, =YG14FXN<7AT\%#T0A <DIU/I'>Z6D4>UH 73c
M4X@/)NK,HWBOHFEYX-KZF%,,R0$D9%S!"K+'@E[]:@D._8L8'Z560J*)HFD[b
MRLYZAE$CX V+GTS)2+365SJD%*UH =H8X) '%/"0!=B3PQGL\-A],>$-;V#Ja
M&^S0FH121TXP 8]%5/@?-P3'M:=#BDJ3LE6\H:"Q(/!!#P#[E[,&MB&0.P@:z
M+"O<O*9-L@<A+E!8\%,7R"X,7_A=&8R+-@N2H:LB-$)H)Z)<-+ @7O-*UCE1y
M>+:]HL"Z794H;]/FV]_:ZZ8?45KTFG9$-;% !$6(FE:V2Q:9@(!J6N,A=7\[x
M6)_5-VCHG2YY_]*'V?Z%@.,;:A^;^UQVB@^I(+@"5Q49%!U9B'48B><<RD/(w
MN_DW)MRQ"(3G4R/\@8U?])&/0--6VZ[>EC4&E,]8UXNVLP92"BYV2?2,.9&3v
M%&G%6OEG*1V<-OOM#XY\\M.-"SA4^.5XP($UKY.#O..RNK>][D7+D]GZY/.*u
MY+KOF\_]^+=2$/)D!4857PN$^D@LA]F\8PZ!"+></R^'V:Q,_C.IX#L'^3(-t
M!0>^;WX'UN+\Q60F &:!@!<L:,%"D[")!EE>1E:RB]G9O77;%YZ#K&<U/YE0s
MP0OT;^F,U:*R3\+S?#*EW0OA'/>QUK!N-/)4S6 0B'J,?#Y)E[.JO'TEX9#=r
M43)!ZK!+1W5E(N_YGT4*E!*$$%O0YF4U447(X]^"N=+^XT\ V1INB:!@4YWZq
M5*B*,*$XIUG)G_ZM><L][E*[V\^5MO1%15#NU>I7#EK3M,A@)K/'YOLHVNZCp
MNV=]ME /)-NO?N09N8UJ4T*VX;X>2(TM,N4(2WS8J;[X7VS*.#+@= R\?(V9o
M+ZA@7A\%M]F=0Z96B()/.]QNML6M;O%%;)7>?.->!:MFQ4K6GBO V,C>B45 n
M$N*/D!@HC[;JI>2#8G^R=">.NH*TI=,?E03TE1,<H[OEV69;=UFEWZ;M_\:=m
MW7Z?FPJ<\A2H1-5N]KF/[-JNNYL_/>^U0]O>=F\GWB,.$GRGI< 8U3I__#VPl
M@(>,TS'S=#"3<G.(Q^_N\TPXR"VN-D*V;3LP2%Z#BSV08[_!.A))L>]61$G5k
M\Y @S(E.32 L76*_%+@K$>[DBJ@" 0_EVP:53T;<0$3B240UDT?*\/L(M.%Wj
ME[J@Y D*CL]4$;[>B<N?9PQ 1/W<6E^X(#"!"2[7_5(;X5G1*@(47'[PHXB?i
M_-QDJIZWU:UZ3HO[\?^JX4&0_*.H8/KQUT2W02AIQ 5K)'HX$Q#<I\3] @  h
M                                                            g
$  #\@P  f
 e
end