www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - findfile_sequence bug in 1.8.5

reply Pablo Aguilar <pablo.dot.aguilar gmail.dot.com> writes:
It seems the following constructor overload:

basic_findfile_sequence(   char_type const *directory
                        ,   char_type const *pattern
                        ,   ws_int_t        flags
                        )

Has problems when the directory argument is empty.

It does this:

	traits_type::get_full_path_name(directory
                                        , m_directory.size()
                                        , &m_directory[0]
                                        );

Which fails if directory is empty, and leaves m_directory uninitialized. 
Later, in const_iterator's operator++, there's

traits_type::str_copy(&search[0]
                      , stlsoft_ns_qual(c_str_ptr)(m_list->m_directory)
                      );
traits_type::ensure_dir_end(&search[0]);
traits_type::str_n_cat(&search[0], m_pattern0, m_pattern1 - m_pattern0);

Which concatenates at the end of uninitialized data, and since there's 
no guarantee that there's a NULL somewhere, well, you get an Access 
Violation...

So... either I believe that this should, either work using a sensible 
default for the directory (maybe ".", but then I could write that myself 
if that's what I wanted, so...), assert on an empty argument, or, at the 
very least, initialize m_directory properly (to empty) so that Windows 
will handle the empty directory situation.

I know my code shouldn't be sending an empty directory as an argument, 
and I'll check that out, but still I think the library needs some 
tweaking in this department...


Pablo
Aug 08 2005
next sibling parent "Matthew" <admin.hat stlsoft.dot.org> writes:
"Pablo Aguilar" <pablo.dot.aguilar gmail.dot.com> wrote in message
news:dd8bjk$4qs$1 digitaldaemon.com...
 It seems the following constructor overload:

 basic_findfile_sequence(   char_type const *directory
                        ,   char_type const *pattern
                        ,   ws_int_t        flags
                        )

 Has problems when the directory argument is empty.

 It does this:

 traits_type::get_full_path_name(directory
                                        , m_directory.size()
                                        , &m_directory[0]
                                        );

 Which fails if directory is empty, and leaves m_directory uninitialized.
Later, in const_iterator's operator++, 
 there's

 traits_type::str_copy(&search[0]
                      , stlsoft_ns_qual(c_str_ptr)(m_list->m_directory)
                      );
 traits_type::ensure_dir_end(&search[0]);
 traits_type::str_n_cat(&search[0], m_pattern0, m_pattern1 - m_pattern0);

 Which concatenates at the end of uninitialized data, and since there's no
guarantee that there's a NULL somewhere, 
 well, you get an Access Violation...

 So... either I believe that this should, either work using a sensible default
for the directory (maybe ".", but then I 
 could write that myself if that's what I wanted, so...), assert on an empty
argument, or, at the very least, 
 initialize m_directory properly (to empty) so that Windows will handle the
empty directory situation.

 I know my code shouldn't be sending an empty directory as an argument, and
I'll check that out, but still I think the 
 library needs some tweaking in this department...
No argument. Bugger! (1.8.6 coming up ...)
Aug 08 2005
prev sibling parent reply "Matthew" <admin stlsoft.dot.dot.dot.dot.org> writes:
"Pablo Aguilar" <pablo.dot.aguilar gmail.dot.com> wrote in message 
news:dd8bjk$4qs$1 digitaldaemon.com...
 It seems the following constructor overload:

 basic_findfile_sequence(   char_type const *directory
                        ,   char_type const *pattern
                        ,   ws_int_t        flags
                        )

 Has problems when the directory argument is empty.

 It does this:

 traits_type::get_full_path_name(directory
                                        , m_directory.size()
                                        , &m_directory[0]
                                        );

 Which fails if directory is empty, and leaves m_directory 
 uninitialized.
 Later, in const_iterator's operator++, there's

 traits_type::str_copy(&search[0]
                      , 
 stlsoft_ns_qual(c_str_ptr)(m_list->m_directory)
                      );
 traits_type::ensure_dir_end(&search[0]);
 traits_type::str_n_cat(&search[0], m_pattern0, m_pattern1 - 
 m_pattern0);

 Which concatenates at the end of uninitialized data, and since 
 there's
 no guarantee that there's a NULL somewhere, well, you get an 
 Access
 Violation...
Fixed. I'll be releasing an update in a few days, but this should do for now.
 So... either I believe that this should, either work using a 
 sensible
 default for the directory (maybe ".", but then I could write that 
 myself
 if that's what I wanted, so...), assert on an empty argument, or, 
 at the
 very least, initialize m_directory properly (to empty) so that 
 Windows
 will handle the empty directory situation.
It intercepts (NULL == directory || '\0' == *directory), and repoints directory to ".";
 I know my code shouldn't be sending an empty directory as an 
 argument,
 and I'll check that out, but still I think the library needs some
 tweaking in this department...
Absolutely. There's no excuse for it bumming out on that parameter. I'm adding a case to the unit test for ffs. begin 666 findfile_sequence.zip M4$L#!!0````(`'%Q"3.#6URL&R(``"RY```5````9FEN9&9I;&5?<V5Q=65N M8V4N:'!P[#UK<]M&DI_E*O^'L5*ED#)%2G9EZTZ6O4>3D(1=BE0(4%Y7G$)! MY%#$& 08`!2ML[V__;KG`0Q>?$GTYJIV-AN!P$R_IJ>GNZ>!- Y)XRG;\V?D MD)P[+CTEHBT<+XS<QMCQ1F.X;X7TCSGUAK0^F<U(9>P'4QJX#Z*;5="MBC 9 MW.MY,/-#`;KE>Y$- T TH>36#IUA?C")Z'3FVA$E0]<.PQJQO1%I= V= 4LU M?#+PG*$_HB2<T:%CNTYH1X[/,034']=C0KI^1$/)X4F=F$""'SAWCF>[Q &4 M=$J!.AQ-_#&CD!% )O:(_P*PD>5$-+ C/RBFYMYVY]2*'F:4V"'Q:!C1$0=# MPSK0"J*+YAXPYS[4R(T3S %WZ^5+\ LYR /\"[GUHPG#3QWD!TB8SAQ7T! 0 MU_$^.]X=F07^+9 ?DM!'2D- 'M \O(#>!32R;V'F/'^1\ PD`K$P#W1&X5]> M%%,<"R_57J'PG%"(9P%C1S0<!LXM`'(\^ %S[.(52LT.(F?H%E"SWQS9LPC) M_P"H_45(-&\^1>$B=U<PIR[,HD\,LT-T(714H"&=1>%^'EYE$D6STT9CL5C4 M%\C,O4>C.DBL,?*'<^0S;,#]X]?'K^U&M2;IN[*#X:2 Q^/CU\0)PSE%99 4 MMND]=?T9S$271 L_^)Q 53%6ZWF J'Z T(X(ZG:0T;B0S''62#B!F1L=T402 M>4B AQ']$O&%P=0<M(J2D0^S&I%P/AX#>-M[B+78GSV F!M3_Q[^Y.'Y"X\& MX<29<7XSLZG,8:(.K8 "$R.^FDY^`27]F^W-[> !Y?:*=1G,1DF7_X8>S?G= M/(RPPR\QG$M_FA =(4FP**$_CNI^<-=($ (/L%8G$:D,JPS)$0*JP?1%0.$" M9 A&>4PDQ .L.U!/`Z LY$)HNBYA`$)8!B$-[NDH8:=/1TX8`<MSIGL(!*<# MN _]>0`F">_< J$`!M'X 5%:P(+$)8A__7G$P$S]D3-VAFS::K $"6C*U(EP M <$2O7=&=,15`(4Z]EW77Z#^PX2.'*X%.&A*H].8M*,,<2'.JJ"*V;TI"A67 MM9RK6_^>SSF7%^B$,Z0U>.:$8N[!2$8(1L7+54DA"I#"^G9 #>LEA !"12:2 M$&!T-$<K7DZ+( ,IVI06J9%R2:M+!,8U8$9\9BFGN,A /P 3R;,I8X,5-B1S M76%A\;EG3VDEK")9:Z 7<)4,P^F)R7E 2Y5A\H,02'H MQ0U:X1V#4PMW,4] M"$F<HGG LHMP!08.:" 9PP-56J'$*=2.[WJ <S#406T,4-L\KG=A*/EC(,Q+ MW2!&[]S\T.QK!*ZO^[T;O:VUR?N/\% CK=[UQ[Y^<6F2RUZGK?4-V'7;<+=K M]O7W`[,'-_:;!HSDQA<?-KL?B?:/Z[YF&*37)_K5=4<' ("AW^R:NF;4B-YM M=09MO7M1(P"$='LFZ>A7N G=S%X-$3-H^:&D=TZNM'[K$GXVW^L=W?S(<)[K M9A?QG0/")KEN]DV]-> T^^1ZT+_N&1P<LMC6C5:GJ5]I[3I0`9B)=J-U36)< M-CN=#,>]#UVMCRRDV'W/ 77TYON.QA$"PVV]K[5,Y"RY:H$ <Q.C1C76DO' M"^T?&O#4['^L`5QNQ'I=0_MU`!VA`VDWKYH7P&9EA81 FEJ#OG:%I/?.&2!C M\-XP=7- :N2BUVLSV1M:_T9O:<8;TND93' #0ZL!%K.)!" 8D!P\ANOW`T-' M&7+)=TVMWQ]<FWJO6X6I_P!2`CDT87B;";S796R#P'K]CP 8Y<'FHT8^7&IP M'V:^*SDT^TT4B0%2;)EJ5\ +0C45?DE7N^CH%UJWI>'3'D+ZH!M:54RA;F G MG:/_T 3<`Q0!FSJ CE\J2EUC$TST<])LW^A(/N_,P(%J&+I0([AM#%J78 J2 M);+:55ZWD4/8N_!_>/T)_=NE/C7KQSL_RD5>TR-^_NPG9PS^"C V>A?\*PNG MQ!+7E]?7UCGH]KG>T2RNKRT0X4_0W?'H!B,2+- )Y\AJ R:C'C=1URSC[_HU M=&_A#^A+T A "9?"MZZ:?P.E8>WU-L/UKAQ^O,7PO 8:!H1OB5UKZZ9P>TY> M_04`P&[ C$GCD+Q8+2RA7(U=A($MB#! 7VX=UXD>\(Y ]?S9;[HW3![2\"B, MP"_\_?DSRY(DMWI7U\!FW](-Z\JX:9T2^--":9R= +M6``/8_EW!L .&`*,[ M!X\VQE*D^I=BMG F'3Z G/$%6Y^\2TU/T; $LM"#4:5<*%5R<$ ^`3G0I'C( M&>$":C1^(C0(F&,I8FM8]R"PB77+'/OZ!+QTYNA+0;K<&TA%D_5C="NH'8"0 M`Y7\#,(E(DFI;T<S/AJF=F6!=8=-I$!,#20T?(!X=VI% >U$(=JU=P1FE.0> ME0IT&5)&ZQJ46M=-\])Z/S _U_IEA*8ERNA$0J6Y37=8EUH5\3K$"NY - QA M`;.D"J'=0WB&KIP E)$*/;RH`F'LU/ZG'U2JZQ"91I B42HK&R)_L#&PCW<O MK&:KQ?P%A481IS70E_;N+'LXI"&?]$)SMAQRBICBM?.A:<)/1L(*FL%UZC?- M'IO]/+TR 9.(4\I4/K% #R .7H,+B8LSD*RS)2RL%KS9^[O6!0>F;YT/NLSD M%XL^\C]3SX%HUAK/O2';Y3E7;-%Y(\NC7R*+]5H])P5(=VF7KP-Z!/$.* U/ MIK&[;32?CI*#V^WFT,60;68/:6YWD.NFV[.ZS2O-N&XR)XBH)EY*3NU3)=^^ M2>L>]Y0=R[?T*F/01 ^-VW<BYIA'E4AB#;-[+, 6OL;I*3<3C/*XF] XGC_[ MRC3814UN",%2"54.M6 &_DF'D6 ^`2+Z,2AYX'*8>*PLE$*99-;&BR+9[F*6 M)4QTP1?4_GP7^/,9<9W;P [ ^6!K#T7<D7=$WUNX'K/\,*PAY]X9X;[J)IW* M05K)5L<2ZD<&O^88'L1 ,)?I81F\+"W"!LCD14C&]A!=,B1[#%L[4P%,C:## M/[4]9S;'M##<0 J.! G^+<Y2$<6*=R$V&8FQ &Q2^>!X(*QJAGY^MY#['7/$ M1F" !"2\?D6:USI'^#]?=V8JSOU 80<CH!-B+IZ:S?N4JQ<Z]HZCM[,P9&<% MN+[ XPCLJ?69M&"A%]PV85OE"?>2H-!*SA[>;(^E^/;-2N3B<,2;S9,C$D;& MGR>RX6<:R8;2($M9XAIUC=EB+\*L),[ND>M\!NLHXW#'`U;':!C]>Y$\!.:G M(?%YFE)1727$_\3$2EK,Q PG\&.()P(H]50'DW7 +C-[6B<]#W][H6NSE")+ M)H?SV<P/V+9 S]TH20[8P1T_]^#)0_&<':KD7/*SUCN50 _3D=N<\N#HQY[L M((S'G.:D#V\XO"U.<*0<SV G+UQ";-UG'-9SRV1I/U.S6IVF85AM[;PYZ)CB M5[-_P53?, ;7U[V^*1P%:+42+"9Y6S);/_'-?34`6$[%,,J=U W98( D(:ML M!?,:9O-;UQF>\E$X045K`9_A%<JX11[?$+XTD/A;XE666!JIS-$\IG' 16B' M\R# TU8V4Q3/*\+4\7.>GA*)GH$U-Y589FEC<U-$#ML_UD>J[#>K\:?V)A6I MYWM'TWG$=_H*VT6J<2#&2)#V#3N 5'3<8Q*[,>1V8SV2BW8I1GQ-H5 P4K*C M;49\FJPBD,7R*F_I*H0,00$=0P3!,L0YY$II`H.Q'$UQB^&7" *345(.NZ:% M"Z*,(IS[HY$=V07852N)%V DE45Z>LI"9QS+*2QLZ3X9Y&!/RWE?A-8L"K"+ MM17?V!($1>A#YW]+$..3[;%"XP`>A(N)=[!4 5]]3;8`;");T?;!LKZ%W\=? MCH^/_RMYWFB\.",M>PX^&5O7(65[-_ %,L^!=_?K^RPBV*_#Q< )P/OW,=:H MD<7$ >YX&$I==KY[^R!=G/2FJ(R*"3DYWH00!4(:--M4Q6\)^M5&H!F$S0(( ME0#/-]#U2PC ?1RH.&&Y74[ -CXXPOO^1KC)+5QIP7S(S]IS.W?+GTZ9KMN2 M/WLX]$'#T6"S B1RY]Q33SZ=V1%8+WZ8/G;M.R%36)7TRPQ .Q$LR!(+7HFW M<&$X# 6T&JHWN.. W0PF2$.=]V]<T-4W3TAV#4P<AJCW%/M_&L8('SB2M5F( MQ]7(OX\]/$[P0P>K$!1&P55WIKC9U'X\SZ'ZB!&RN13:E&LN2S%"^U<9 569 M\K*B2> OK.-*5:H_=S6*=?\]O9-GM4[233Q-NGT*:#0'D3:]Q#W 4AD66TK' MAIVG2=\O<9811GK3Y\O]%E$#W>R9PK+FC9Z((+ :ZY,#G15BF.":$2]^00.7 MDUR?$1"* ARA# DZ4967HYL%IA\<U\52&D;D=!8]$'X(P=)"F-FR 52(7'F5 M6E+X,W:",.(TJDJ154!LAW<TLF*ZLIP9X/-1A2D1!TKCVGMO]#J:J15S"QOF M+80XP"K/%8C0-2WB`JY9- [_V&0&/V&:;-=](/<4Q :&DWHAKDH,;=.33CZ- M<&*'* IA:>4F3I*&]Q0NDQTCRU.\/2!H'7HAX!!V8QK)^JDD/1+RZ>$#8.W> M^KZ;\C_8XP(E5N4UM;\XT_ET/;F%Z(T/TRP"`(OS)^?OBB(H5,O N0?ZA5Z. MP8QXH^5IH5S8\V:#L>O%'[%O)3VWXG/)LUAO,6+)/DU[:85/432)CK_ALA<. M;&R=[5 6F?&R-11Y; 65 Y>VG$&7X,5-K+%;#9NOR62-R :DXY[P)E8NOC%D MXHFIQ7:*V):GJFZS\R^4)X8%<^) %2N'8572NX_<9\2H>]\9,93T2X19#"N< MWS*15(JE<S""O:E\]XMUM>M'*!LP=TK!=I;R)* G!]P$ "5\6U%N,^ '"%7X M=;O(L9I<87E^'CR*J>^!B0+5]^>8*<59AAYJ#A9M"-IKL&9JZF-EX9,\`&!5 M3^F\$;HE>.?YL^SZR:9-8#Z9^"&(JQ4DR)3'[PC/"N27M/WF*=B0-5MY3A9< M0=9G9K&<F<4R9A9/P P_E,FS8K8NF_W5C+!N12RP!Y)XM>5 /+V&KWEHH.P. M7)(W<5(M%D]I6G2-A+/DN#39FW39X+SHQV1D=YY]_0&9UM*D9VE6]2D34;FD M4\&LM<4I4&X?7<T1\X_2^\H: S)$\EWL`&\4;&ZQ8U%-%/44MW+H7L%_B?N MCWM[XI :C^V"J-(==#KD11+Q/51C[X;)5!4<<&[A:P>5`^:!3'X[_KV6'E X M#'SH>4#1);(PG$D&EXY B.PHC0?8J _/05Y87B*'?M^Q0 N> 0/2?F)YEW5* MH?J3SDN6QAVB*E4!-6+$NF.\W6#9FMG#5DLVZ^&1 V#"/-,D I-5GA+7NCF1 ME&4H28^DZ =*G#L/'50B?5#>8TWO-*8] 2OC0#M]UJ*<+?B)A>7#"I</M ., MZ..'2V+.#7 U4E%Z$F?S6!UVFHD_DN_]!'3JW_.S<YN,YX +[[G4#FF=9&D+ M)_[<'<6O"^&:H_9H!8,7-#J'9VV5/48;3'F2`< SS%,C+MN'<(N,DU .JUM M,UB0(L%VR GG8U?$\< 3 &;OB GXCT'*H*V+>CQW78PZ)QLBP2&IW(\$CG$D M9JKQD2C/1?7 U RK"3F*_",.3[(J*> PXE60,]HDFVMZ3*YB2;XA67R[R3<4 M'Z'QG>>-[+0D:S!Y$T>JJWSN(BY%'*.>Q:YRP-<]:/[W%U:M6RJ-0CXE?,^) M#; 76G_,;;>2JG:NBI)S^=0*HU$EC=2*[+MJC=S44B>8-9;WJ#%&U!+/5?7/ M/R+ D.V'E7V4!R!EM14WRP&6MM)ZBJ>+=);8CALT`#\DXI$M%_FDC>$*7E;6 MI\1,QT:,;>AL;QI$[%TH^4V$I- T(6'3TUON?XF7_:V)[8U<(:>O_$]J:6"+ MY:<.$<]2$R&G(MDV"N%=-KOMCL:O)T8PG( Y3(L56XA5`U[T^A7F5OMT'&;\ M/D\Y&BY$E3[733%0$61,E. $VRFGJ9*]7^,45$Z4^U^_9\OR"TW/1:M5E2SZ M$00!='0J"^318OVUQ)3"N/C$0YEPI>)]Y3!L_TKSK=*?9E&8X2D-0_N.RC!K MWV##Y5FMF/Y;REZ.1W?>?Y#G7/X\PMS=*.6ZAB_V:Q 'O'W+!9B.T+ YXPH3 M.<9R>O>FV=';%I\<"WX,M,Q$9(C&EE_&; D.73^D'+8:06'[GOS\KNI43QYA ME2DOR[0W1R- 98DD7[Z4ZJI 28'H<^]["0P0"Y/:T1&7VTHIC `D^\Z'$Z[% M;5EV'Y\6K,64$N7#)U7":\=<<70J_FY>+,(,XO>TU4P;AKS)1$R;[#P5DK'2 MDGPW%4MOTC"'6GCT&_A^U':"? R]'%Z^E6*0IV*/!9DT=A:V';CX5$MIJ0.N MC>:I>))89O'1J<I"A&JYQYE-)F#TR%NR+[\FP[_6 37==7O>""C_=DK8$!7K M86,XF^&G<5A>**S/1N/]=U?\LR4Q56<-^]T6E)7F-Q(!K)F)*69\:4YF14IF M$TSK)6T2*Y";:'S7S_&&`5TW-_3R96I:K_TP6 > .AY4.BWJ5!Y'E+]$L6LN M/LH3N\]8"A7[-)Q1I6 U1G185("#'5-%$9^&;$= %55P#0+C=8M_S,$<NH"/ M#TX*)!)YEPE\>ZSX[O :F%^LQ+S1 7I2^<%\`_9BJK""5KXZ[&!V7)#//IB= MY$K",H?PJE]+A!<2A#Q/5( 'JP^R166U;/+B<"R2:D]1/A+7C/ AV<!E6<:% ML[0LZU)D>P\S>2VUX5M_L1(5A1;+VN%4])7C-PSMUDH%E;6IK*X0X\NR>&7M M,*Y,.7XTA!,) 8TKVIR+6[J A8\NVHN+6U+8(K-D3]IXF=O$F;*W1[=^8]'Q M7'SMN"65<6CA<<D,_N_-7;>R]BFKL#_W598Y0OZ%!<]FM3(([NM)&K?*BE]V MP\X3<**2NB-"V>'"GY/2Y.4$3BKL33O3#H2]&\7(<L&J#G?%! .^,S[$ANV$ M%J_17)Y:$Z2'>=+KHL13DK;:]&S6F*$:>$YT!+Y/Q#YPF:O''71UT]0,4_V( MQGZ],??P:WEAE/\FER4?6?7)?E$UK(28U+$]92OTK#9]R[S1*/-!MM>0\D,, MH3 (N&)'384+=HJQRQ<AK2K6.!E; D\O^&CV\F5=]<M6[ZU`TY._G]S(AMW M\F.K4EQ],CN684#)\Y/BY[-C<B:?+C6XB2*RC^E4*QB?8#02QR!/8G:SJX>[ M DLM[^GIBB+EK$&N\#=G#DBEZ-69*F8[C\E?9;=O9=U.2>Q^/CGG+#F[ NM< MD75&#R6.%6!*XPY6G?UT2ZBL7G,%>:5!25PE'D^ONG0.9^>.FX2%J3",%6R M:\RY9K43,_F.&?)<YV]*U+ $6#73`0.7+!)GG*PL]H3?_IJ(BQ- WI*?/QW_ M+);>]] !R"2''ZL[*V18\GC]-PG9YQ,*5 &HJN#\5,9RE6-QIR;CLTIV>?)5 MR>=-)*[WE+<P0.")V'Y*3J=X`GIOU53NU_=KZDL=R6RF<115B.54)5.MQS+6 M3"&D\CW5ZM]R!O-!>U(.^;BE6Y2XE_KQ>,C9('_7:K8'"W:/K=BW2CDG^?8- MZSE1U?!^JC1W#T?M"8L<"V(OM(:+T6^HH%_)S_6?:TQ/Q7O">WL)Y+<0";"N MQ[_#L[WOPGF5AS2E2J9J:*8N=/.EH%3&_F=![')!;'&*I;:B$ZTM3[/4]C0+ M3;J?'.)_%MN?:+&%/VJU;?+.N-S666U>6WL_N."<979X]JT&Q3=*<<A45>F M?*")063BDJZ4\G+Z8\6P?A 7NZ<\FI/'A*NLEOK">C8L*0H,*X=X?E7CP4%) MFK=:440+F ;"6=HW5IZ:7./QLGXR?=JU()57[=<7HY* 2[V8OS6S6W"9W4!6 M]"]\!3_+L6INV$RKJ4;YHG[I^_D_?JJ3-]/7Z%C&=$;%6;4N_E=-\+L'U8I8 M:#7^308ACA5O]#]ESGB5^JKO_&<YDT8"-DE&_5.MR52"88>SEGQK(#]GB-X: MVF%T%H-[5SDZ4?5U]5G!#C>\W(E$J:>9>C4H9I2?Z-9'"PS^$QM#9.-?2#H7 M[4UJ4/RRE-P`U4&IG9)W;[IHQD$&F7%%&^LD"[,0NNHX_:D$O+ZV%L OKN%0 MW%P\$H1;=7ZIN+KL3(D_P4N<YN]YM^U'RFK+%]66^&0YS5M#?=;RS!ZK1T4? M%I6?9;<,_:+;- =]#6YU.O Q3NO70;.CG^LM?A34UWX=Z'VMO86,X_J?#50L MNZTGMEU\HG1[*I;"_K_NCJZIC1OX3&;X#^*E8 K$I'G"-1T*I&4F==*0#-.9 MS'CL8( ;!Q/;E'12_GNUJZ^5M-*=[3L*U0/X3KJ5=K5:?>T'Z[=T?BH9>Q3H M7+>H\% CG$*KXOVEAC:4B>V$RW_/VD/RE+C_E7$-^#+FD2&V`4D>!-IE5\W) M'O8M),NQ^N/&F;<-36'.+B76U"&\^"E=S,Z?_R_B71.;UYADD!ONLY:9Y4J8 M[9"(&G#+E_\ C+ $B08]VFW"V?GB$Y+5J!(5SG+5=K? YLBU;O>7SKO#;I>9 M[6)M+KD3(2K(`M90U6T//<AE\33B?O1QNE6:./Z2UT<:[7K*4YDYFOPLL1QL MR 81%:PM4+.F*EE5280JR6=Y^)[I4C<Q+%X/D4F2G)'9]7.G>8O3;S[E+:U) M/T_3D Q$<XNJWL\CXPI ,^I.RB[R]'KPP4G]NE+*9*JJ1%PBUYFJ5=P*UN8R M.:L).ZB,<88Q. X6`&<GG1^>P=_.6R]&(GDO]MO W?IY4U]N#2\VA&]QMK=' M;_9 *EA]ITRY?T20"<A/&PUHA^L*/QP?QM""&'S9,CH\'S3\>:PGHVQNVZSQ MK!T[ Z\;CK^W!.QACK^>XIN7X)SY[?C(H:*L5XRU"M1QI_ZI-0JYV>/I:N_B MS.(*(GQ ?.?NNPY$!-ZP5R5D_YV'-">^'K(,,K;GRQ LD[K1V/967 V4KU%S MARMZEQ!N5\=D]\?>A>RZELC6TQ(-5Y[4IMO85"RHL=C>C\Y&OQ,8.O+ K8HZ M?=Q5,:5?O?FCT?"A!< AP54.WEVK",#(M'+JDIPLF?!\"P+&]2>#WJ?X2]DT M,RY8SH^_8*J'A/!;<=Z=_RIX]"/70&+ RS9Z?#*<=L_'LRFAIO.P5;[!:<Q) MP (&'*0$2$C8%= \TA_XV$,W3[I+TM^GZ CI+G[-O,*1G<:.B+ORQ%)8N;M] MQ(K(S0+$RC-'-'#68A&!^K<H(7!$$N%0/%+V]D!L'OK.".)B1CZQ(YW[ ,.0 M8*=_6 3ULM), $LLA L7<PM.Y/-\9APGP#D(&!*B5BBY0=!^"H*W6F-W [S2 ME_+-L*A^OQN^5[HY<#X3J>8TM1:.K<=3J'SL!&<M/*M*2[A26#35; =1F2N' M15/M&%:CA#=/NA>3C_M%I_;]7" IOQLM)2>M%A,C*YF\G"XCL1))"$WU1>B; MX;&+4DZ2VEZIJI_N93Y[U-U0I)^ O:"T$.!GW!LJ3SU0DB;U&DQ_J4S]Q'6> MU7W 1ZX;O1*[C;!#=?7LL%-Y 8D6,:P)4")+6I.SO6]<8+F]<2V#LIROR?EO MKHHF!N(89D$0Q&T-A]SR#?-8EIZM%+F_7&:$54&.Q2H.T,V[P/.=?0*#)GS; M':"/(O!79VJ4F^C)^+-<[$)/S5R(GRD:-X$< &,5(A5,[)I3Y389HX[TH7O M^)V#+-D`L)GU9"],S!1G1A;\!BT?*EI:I A($S4079%SY\C$2I25]HHG86R^ M$2 4 'D7%MIE"AEW([XIJY8SCBZ>=YRPK#HCL&7MF5Y%8DC]T)O=3>T,[P$N M&);VM[6HY+:>!VL6W0]:*,-",I0- >$VF7Y93H[*$5/NE+29`9%G. RB<RK6 MNY(/>"ALA04XS40E$%G#IM\4584Z'V:* ,I"_'JW%?.$89QVQ#A!04A2PIWU M1I\$\-_-I8IIY_9_?MG;CW!2Y [.=+FNLX%HTK6,7;64.$R3;282RN\FR(=F M0H0^JC2BR-*F787^N%$97*!5/;.%92J'A/QV'5MMJYN#UHILP,^8`<[V59Q8 MV=?7$YA/!CIH')3<!O]?V PX'7P!5Q!PH QLR5><,%!2T%20B9SQ"<Q5V_O4 M8,6P=;:B,":%K:[4UU#_E8I00=K)<X'8#H8<F)K)%)P[R#>;4RD)8)*+2?)Q MXO'8^M-U )2"TR\/Z/W[==(F:V<'X4<`!M[#8=:*>M[W!(/.^^:7:0N 8=IW MQ\#NA\#[9:#W$^"3C5<& I#\BB/(1&)X!5P)BYJ"8&JWV*V8JP(#IY\"9+$H M`*3+_;A B\Q/CF>U]9_;^?I\JX"&+*O N:_B4F0#[5K!C2//FZ"Z&U +LN#* MLKN1&?9JT#7LUD]90UIW ER]DJ+<#00PA;J\X#]+2$M(<%&^OK/N"> F'"70 MNVLN <8=D0_>]^)[L8M\FP- ,2U[Q;7;E*F!<\:W.6?21F20,HP760;4%IF MYBJ,X"; $!9- 4IR+22[E6F+J\%MX# Z<P%F4K!VYXK<96\+XAM>DS)=<G3V MZLV1_GU^>SR!T,(PW%!W^V5O.I.OM,??-!#U85LT,^TNN Q(7UY[1$\O^B$% M>*JUHML"E-<J8(!!*KHD#:IR8H<9+HD^X3<L^;)NRN/+E;P3AL3S4**MDAP; M*0.TC)(%^CN:7YXNKGEA$BZBY]3!,*E JI48O) 8BF=>+S2 4RH<H1A<0H3G MZ%BLT6%20260EM7P,*ED[T!*=$5!EEF4)<F25P4QJ8 D2ZJ&F%0YKV9EM_ZG M?MSC^50M!S 5G+^ DW3G0<R!!MHXMP$J.[P`]( H_]5,0G7V7!TAG?;VTH3< MC,QELL>!QNL7[.2,0QCF; #V]U#J&^Y2F!DB. %Q3F%:>E\5?!4YS?/=MO B M6<$P T?W,[&T51\0SS'&+$AMPG"/:)1._>46XF2H4%P!0QM:5>RL9BF0Y(K0 MKR7$P8D3^.>F1R(W$T>0+A8!G$*BFX-M;*0[>H1P/?Y:*T;FG Z/E_;B6C:8 M 3L+IN$"!E\L&9:XX,GTQF$21OGK)]+"C JOT!M!3*HQW$W<S##F0G\\,Y&; MIF*HXE)R:W\+25)LJ(*VX9V3_.3*P-ZQ8D;$Q\< =>Q;[WK<VZS#ICP44M&& M/&G1$HJ++7(51H0(`&\VG.PS< =?Y#Y!]O-%3XZ;[E^.DS&3&TOFB]GDQOO MFX:061['8"B(KQ%:(JUY,4&H,=7\\9I6G\C"Q5ZHRR8#\RG$?P'&A2 8XPMQ M.1G?7)M1AUL:91LQ&O8G/7!(5T\[K+K"V4E'$J3;>=7M'/QV?/KZX%".+3]4 MG"$8+4/M36W)8LI*'D?D 7.FU[T/`XWYJ XRE\CN7D_&?\H9*,K6)XJK7JPY MKKV(-C7T9/"NH]N?8NSC3=$Q388G? -!(*6L`)':^R#%YE1,(9"$&'P%T3D8 M8G2:H8J^H]%TB&^AW,-,!'8Y&O>E,+7Y.P)C*P_5#F,(4?'Z?R.HT7C\23+< MY$9RVHYI3%F66"O "6)1O#874S ]^FW5#SR8[-6G2$NYO439S]%J.A:?;R11 M59,,44.:*181A$>25:X^N9E"QZ%UDZQ0[CB\B!JM;)%,KM:12&6/!E>97/"7 MQ&:;\ 2866]'9L;GP^S*_T FF/%F:];UGG0.7YHV_/KZ=??%2><(C^1.CW]_ M=]RIL3'_`E!+`0(4`!0````(`'%Q"3.#6URL&R(``"RY```5``````````$` M( "V 0````!F:6YD9FEL95]S97%U96YC92YH<'!02P4&``````$``0!#```` &3B(````` ` end
Aug 08 2005
parent reply Pablo Aguilar <pablo.dot.aguilar gmail.dot.com> writes:
Great! Thanks...
Aug 09 2005
parent "Matthew" <admin stlsoft.dot.dot.dot.dot.org> writes:
"Pablo Aguilar" <pablo.dot.aguilar gmail.dot.com> wrote in message 
news:dd9r2v$1p19$1 digitaldaemon.com...
 Great! Thanks...
nw. You tried the MFC adaptors yet? ;-)
Aug 09 2005