[comp.os.minix] New FGREP

A430@HASARA11.BITNET (Dept. of Mol. Biology, Section of Mol. Cytology) (06/08/91)

Here comes a version of fgrep which is dramatically faster than the
standard MINIX fgrep.  The MINIX fgrep -l option has a serious bug
and it handles double quotes in a very strange way, e.g. fgrep \" *
causes a Memory fault if you have MINIX running in protected mode.
I also took notice of the -v bug reported some time ago.
 
Bert Gijsbers
 
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 fgrep.c.Z
M'YV-+U2 ,'-&3ADX(%H,##.'#HB"!Q-(#%*'#IHW<G2 $%)&CL,C:=3,$=-Qz
M#@@5+Q0$5' 2Q) W</+(27,&C4,48U* B)$C1PP08O)L[/@QY,B2+D" ",*&y
M#8B9->F8-#BGHYTR9%RP% BE8YLT<^:D>>,&!)TW(.I4!1'&#9FG6,'2F2FFx
M8AFS:,""F//&#)T[80R"T(NF8YF@#^6TI8,5!!PY;^RD(8-U*]XP#BWJ'0-3w
M)DV;(-R\H9-FS%V#;<*D<6-R-9TP8QRV?6L1,ULW0MN\(9/&3&G,8UFS-6AYv
M#)LR@=GD#KRF,<.]=<:@T7K2\IP\;E[CT;$U 4&#"%M(9\/:#@@>6UK<;3C3u
MS9DN(%S(!Y'>S, TQ^'+3\IG[]S59_A GV_YQ2>?93"11M8<W)V4@'@@:/28t
M:WC=Y48=;9 D!PA]@9 :'=(!" (;JY4Q1W<MH!$A"&20=8)#$V9WWW&AA='&s
M786%09D<K=FGFV"UE4767026@:)3$K;G$%G*53BCA3::R*%]%A&)GY2<9:>:r
M&R*&X2%FTJ%85I(4DNB&A1AJ>**#+9BD48MNO.B8DBS 14<=<I35$&9J<>B&q
M<BB:IY%!5_%81IUF2BF:0UF^MIJ(0T[I)'L FO1AF&RN]Y][*U85F'0#8827p
M7I2ZAZ)]1:Z8:J-;FE3J&2:=M1=R<H!J!D:6+6IB@RHD\ 0<"@H7V%V/O6%:o
M6(TA=D899P&+P@PI4-=K$W6P01H<-+YJ$AP=@<!9&ZFY-6*)PZU7!QQP8,08n
M&766<8:T$GUW4$*:RO&3>O[)(<-)+HS171*L,::CI%X6Z4:4"0UF4AA-O7$'m
M5G7>V):(>[H5V%NKP5&1M"DI,,)JQM5!V7EMB>4"&CYX##(;(M_%PW5SO$!'l
M'MS.<7+*'[L1\L@\U,%E0UFAK++.+/-LQAC9L7'ST#N[##2)8BR=<]/GO2KUk
MRBU730=O;RSM,66^G0E"$T%@\<445$CQ!1-%.)$ "#+48$," 7V)1QIM8#ABj
M&>Y9)*FV9J'E::TJWKHA2E^7$?9=0F1!11$2P8"'$4;0+5"6A3ID!F1M>(M&i
M8($/)B/B(X!-KA1%!$'$V4EH 3D-,.0P=]T&Z8B"3@;%48>)#HFEQUVDFRZVh
M$%48P;KK(* @@PJHJWY\$2E8OE<:OTM:EQEF=(NX C-S"W:^T67&^Q?L@;"'g
M @FP%[Y9XY>OPIEXT+&#4DK5;69S;Y'8T$DI)2 =Z"I@S_SH1\ "TJ]NKPH=f
M24+EL[<@SG^?.QQ[OL W,@S0@ 2L6[I<$RNTL($AC(H@;!ASN/Z5B6\7Q* *e
M$;BI,^RM;RIZX/\.=STXI%"%!Q3(!K/3+=>@)6,5 4H=L*>]_OE,+&<XTUMFd
M:)8PB.$X6XB;#;HPO[J]YHE$$I40WI"'CK2@"6_ R%T8=@:,I,$BG4-<']C7c
M$/+-90<*X%[[YG(2;<&1B2HHUAF^<+ ;P9%"8S##!\]0)S0(,@R$'-$A$^F&b
M1=9I#HX$@1T6"<<CTD2)XSH3'S&T XG8CUP7RE /RS(&/!E$1JG:'H7,0(8Oa
MK*9=?2%?&5#H28&DBC)S&,-,@"4JPXE.8[(15QDZM*<[F01Q3 0B';YPO>S)z
M80O$,]X46E<$$*P ;E247C.[=<VJ9*=$3DF-',ZP&OXE;G%")*(<$H "$RB3y
MF4-T9A2[D((X:O -KBF)Z&15I5\&<9LE5  >E=E)Z>U0*J$KI1Q.Z1!E>@Z x
M*<%C:O#@2C< LY/WY&#H?,.CAKK!#@R;S$,#BL?K4= M!<UH=CIXGXZ.-#2Cw
M@<O ME>WCD!F0S<*"R*EA,P(PO0+-VK#%N#3 Q"(8%$@X-L;ZE 3#Y7A1WD0v
MP1U]*IHO!.8,0P5!445P50SQS2%?"0N I!K',L2O(Z3TJ0H2=%4XFI6$9:%0u
M@E9CP3A^ 0I2> (5])H%*!0!!2\-(*VDXT8YU D%C&FC^Z2BDQ3 \:YYW2L5t
M^OK7?<Z(#?!49YV29P=\DD$G*G2L B"K5[[Z%;"=%:D95,,R@VR6?CA1:T[/s
M %H0B):TDJ4L:CW[I"_ A&^O14%J/XO#V^*UM),]K21YJY:=OI: PO5L;0UHr
MW,B:MK)X7-8R$Q7<X4ZW@-5%KFZ7*])7?:%(A_5N<1][W-PJ=[AL(4,K7[79q
MV *0/=,-KWLK2R'M)NBP%+KJ&.J$1Q5<U0X$5FN"7M58."H@-:M!@8#K=.!Zp
M)B# XQP#'"$(0 ./TPYP/!^'#Y>H#0-RPY9,8F,XXS/YX1 $=0NEAB1UJ;QPo
M*E&M(:4IO_HD<R8@Q9B\50-]*[:BPF" =0-,K HCF+8L!T0J*J>3>VP;ACGEn
M!^94&2L5!U-NR2%&=# #^D3C93"; 05 6RH=1#N",K"A*N@K9FE>JN;K0;-Xm
MT]0"%>.8/F;9X7IHWIJ:ZU3G(=;I"TEX@A&$8(1'4F^8]BFT&=A<P=[P68]\l
M1%A1#[P%&.SYPO:1<(:U6M086/C'<]CI[39\A[S0" 4XT>I#F)4@49]AP,,Yk
M X*-:AH=F$$':"#/'.P@@A3H) 1%+8*B=2+B]-WAC*#"";/1][8Q,.0N)QC#j
M"302R$&N8 7S$T/MUK#A:E\;!"<HP[;C.]\6HH"MXW0L4,9=;F^=^P1F6+=Yi
MB[3J>2.'W-2V]UI.@(9U&]+;X/9W&  N$8%CFPWK9L,BOQUN>@?<V@./DT8:h
MB?"*_[O>&,?V'/0]\82+^^,7O[<=UCW)CBN<X6\#6QBJ10>--'=9_3[YPLO=g
M!_3U''UU2X)]1$,O#FVH!9$&5G 4EI:JT&;A8\R7B#;WAL[U\UOARE^)DO+ f
MWB0/<#TH*F+G>#B=.*$*3&#"M"7B]7<K75QASW5.J.T=UN*I#"BHZE5%*Q$=e
MM;L]9["U';8P5[=\FYX;[CFHDR?@A!7^+3R VZD/CDB*9U @<)(3F)_41REYd
M_3AAN4Q9_H*6(AVS8])#PFQH5(9"/3E$-R87;#@C!]YPBI^%&<@@;>;C%IF/c
MVO!VX:8_3/BWD^'3WKF2;[GEAE53F\4R,G*Y6WVEY*$@4;+6[A<2=;MCBQV/b
M9D>[VG\O$?\M-3L4IWO;(3G(4TO$('?*$PB.K/Y02[S]Y"^_F5$@@A+,@0MNa
M( *$!BQ[5V[Q(DAJ@0:!UB(5P7?EIW,PEP"*QW:AUFV(Y'[F]TT74@8&V':4z
M)WQ&AH'[UW\,(H <0H#QUH&AQG$72'<),((E4 <Z8(*)LDEMX( )X'O-)A' y
M-$,HH *)@H-K1'VO]FW8%WG*A(/8PS)SH(!IUH \1VU"YA9$=A=\4%30)S_4x
MUG862%OYMW@H\(&D-G\BJ"1G1H(:88+!AX,P6 < :()9J(0(V(0+J&8..('&w
M\095@0*L5%%\-X2N=A<H\&V/=QYR)UI )Q!%<#<.(1IN\#N0,1A#AQ8UQG13v
MF!4^!G]X4A:76(4@@&4PL"(Q $<_!U\WAW?U)&)FL'] 8U,LH  B4 6IMBP:u
MX7\),1[E<1[I42\ HA_S41]/XHO\(77N(2!;4"3"^(:OR(.0L4>=QW=F=4;*t
M(UJER%NKA1]WAP*S96$292)G$&+HLXIFN("N:%3^5XO_%X!U@FF=%S'>"(V,s
MB *F1HKVI *6$03RQ1;$Z$*R,CBV(BJX=Q=GP 9O( 8,DTGX,R[[ P;:<@(<r
MHP#PY7>%!2"!)@?<J%8"I  BEEC+M%AS8&(R<AQNX&!@6#YQ9U]E!P)GEW8@q
MP ?]<7U\(VOL(9(5:6QC" .GIHEY8F+V%Y,"0C9F@S9JPS9.<&K7V%IX)P()p
M=!8>1!9G4&P\:7T()78<65@GH1.IT3!C@&:/UA<_R%@V>9)5Z3[AEW9&:7<&o
MD7=O %1/A8C2 S!GE 8A53U;U$5R\$5A!"1.=!Q<US]!515T@%AST (^<$7'n
M@2C -3V_XY5209B&60;&MF&-Z0,B*6LB*9F#Z0,FF2^829@35$$R24?75)D*m
M,8KA*"HH,#\MT *5Z0/2ER_?=FJ3^9A;$$!T9 (;X3A%0%0O1))U P5!=$9^l
MXB3ZXQ /-)GPXQ!%94=QUD(F451208\J88\M\2LQ63#5YTNU8WOOHA1P21ISk
M>1<.!5".@4\\Q",/"5]%LGQ\<SL:F8@@((N:8GN2"%-4-DY>M5+E\A!I<!5"j
M,GJYAW6SD4EET)?HTW;!-X8H>94J*7XMV1_L,09M  =N]QKC5"<BT +%=I-Ki
MYQVM5$[2!WPH*'Q&!32K0582B#YNMA9MQX<?6A9%]5O-%WQU\@1?( 5$\ 1.h
MP 19$)9%U0*FEG_BZ!IGUHH+A:'G:&]QLB3,!P+^IXQS\@;.&"4#:*&T56[1g
M&)CSZ',':E%!5%0355' )&LF!9I%!5 ;!E#I$0.\>0( > (8)1#>1!IGXA0/f
M!&FR%),AF@ U&$JR1G\_MQ(M 497<1M"<1Q^$1G=,D,CI$\!"0(Y\A8=TD\ e
M)2T@( 7(L40B%!OZY$-.0A5+0B6Y5ZF6(07G)ZG8XR1A %+XL9?BZ:69@1:Md
M]@8T@F.6BJGQ!Z!H(DH;TB$@12(8 ZLCU:CHN14IL4KX@5D Y9XB5E)#9$-=c
MVCN/1I)MAZ=5P3>XPRR;.'\DZ3MW<:9#=%)OH1!A2E#H$U2Z<14H % 1$P84b
MI4R.]CM\5T.R9@)JZJU[ACXZN(6AQI754U3;Z:(552<U5"?-LSIY!CTZP0,Aa
M^(7K]V@@@&QDZ()'F8TBL)U)M5 8 95T9ZVSY ;I5WYM1Z]Q!U"U%6,_)*R(z
M:IS]4WXZ61;T5WYUTP10!QU DGL?M#],U"'822-ZX:9Q8J#EIP(U]&VR!K1Py
M2G<0&(420:\KL)S3ZG,@0(2"2*\*09Z1=[#/ P(F@)LUM*;P(;%(ZY9E"G?Ix
M!*T)0+7)HP*K2:]B^Z9\UW;?1K+@JDX=6C=,0"Y,.2).*;0)0+3A6D%&6U1(w
M6VXDFT[BFGA\5J["6K=HZU!UZTPD^;)V(Z9!=+7QU!'2*:@"@:D# SA4USD]v
M6Z!* 1*%2@;G0B+6EEBA(Y&O<COIR5O[=B7,BCYXQ!YUDD<.!@+)=QSLV7Q\u
MI[8HX%"1Q[ACZI*7E5G.=#L@(" XF7\(\7UJA95/)1UR,+RP6B=(6R?1]#P.t
MF$>#BVY<  -)2X'6MYD+J@)8:67&@@+AX4]KIA,G"7X-:I9T5[%I655!Y8!!s
M-08Q49%U J^.D3!)6&ZNZV[X56Z0ZQB*R[MYN(=]N!K46(^6,076IJMPL3^3r
MFGNKREJN"K^ALB%>DD!J(2)UZ45@)$:WJJWRYR4'U2V/6HFBXL+F24) 409Yq
M0!9O 9H=XE!>1W0UML*T]Q87<0<+L2']Y,.N<L%*])"W.UAH4%B":6%C24<Jp
M$)WO.6(G4; G\1BMQ\4!1)*'ZU#7-)FDN1.L%HC)0Z_%ZZZ6NV;02RB'6T.&o
M^ZS6!)V929N NXI<FYN/@WPC:\<"XL5_]JPZT2BKL3OE]IQFD9F?B5+4MJ\Bn
M&VK/B<>>.1?,5C\"48F7Z&/E-YES_*P&F "42\=T-X& 6'T_V+9V''=LVR8.m
M>+B$[+1HS*4) ,JM?+:3R\)E8<J!2IV=R\M.DIP$*CI3FQ>@$BD;S(ON81+&l
MHE V8QE/8%CUV4\M8!YS119,IQ80,\QO5<S/9A%JIH]!+,T;LI),,)S*9@1.k
MK%;:QWVIB#Y5?#A8K,4J4&.Y6V)\AK=AA! MAA_ZB'UZ<8E"*[Q!VFQMYU"Nj
M6;D.U;7)NZSRV[![H,D@L,Z>S*?D(KT 5)9,8(!+2VT_IQ2U! )"]R50QG0-i
MD:Q)I3L'*2O&&T1AX!<PG'O$3) PP1*\^S8"425E <1@$F4F0= XW7 /E "5h
M"*9N;*X2,97[^)&1C!8[F-"-&[D=T:'FBV90+,6,98@UAH%&_=.RALNK:( 3g
MF  K*IZA)M8(T<909M5@J-;-6U0.A;S^&,7L,<5<_=->?=2-3)BF7'ZH?,RJf
M+)AAG9G)Z7W),\\,BLYN*3U$P"Q>02Y>-Z#EU&JV@7U>4HD#?:I:0=0@\ 1_e
M(A2^AWTRMJCG1Z<NY'7"J1=G<BRI)@="(2JNEU0,D0>=K=,MVW8M=X%?V*<8d
M$K(2@7UR#:L=V+@[84W)0[_]BP;7RUWB&R?<6SS>JX+)0[Q(W=8NN+32X],Gc
M74X*Q5#%7-03>-;UF7>+9-627'Z^W0; '=P9#;^CO, _<4WI2[UM8+W75R+:b
M^Z;1+4W4)(2"_6K$:]*@@KR0>]UA4GX)X-"5V,;O"JLXV'8-SM 0GMWT)CV<a
M?*J>/-YOAM;),^$O#<<[.+-@3= 7[4OY760$C@;S\\K8][9Q,C\XF"CM+=_(z
E7=].==_,K8T_O=_0O1'2G; X^-$2P>%P)K+&'>**BSZ4J\\]!S\Xy
 x
end