std.stdio.write, writeln, fwrite, fwriteln
Lionello Lunesu
lionello at lunesu.remove.com
Thu Dec 28 10:59:05 PST 2006
This is for the cout lovers out there:
I like writefln, but many times it's doing too much. I often forget to print
strings explicitly using "%s", to prevent errors in the (rare) case the
string contains %-characters. That's why I've added write, writeln, fwrite,
fwriteln to std\stdio.d
Attached the changed files from DMD 0.178 (including ddoc). (I have no idea
what flags to pass to diff to get the usual diff output; do tell)
Changes:
* std.format.doFormat has an optional 4th parameter "bool parse" that
determines whether strings should be parsed for %-characters. It defaults to
'true' (for compatibility).
* std.stdio.writefx has an optional 5th parameter "bool parse". Ditto.
* std.stdio.write, writeln, fwrite, fwriteln call writefx with parse=false,
which in turn calls doFormat with parse=false.
Because the signature of doFormat and writefx has changed, you'll have
linker errors when linking to old obj/libs. Since we're <1.0 I thought it
would not be a problem. If it is, I'll have to make new functions doFormat2,
writefx2 (or so) and make the old doFormat, writefx call those new
functions.
By the way: since the "parse" flag is tested early on, printing strings with
write,writeln will probably be slightly faster as well.
Also: I hereby release my changes to the public domain.
L.
begin 666 std.zip
M4$L#!!0``@`(`%NEG#73N\Z#L00``!H0```'````<W1D:6\N9+U6;6_;-A#^
M; /^#P=L:*7$E9UNP(JY"9#&\V T68,YG3]D at 4%+E$U,(@6*BI(%^>\[ONC%
MM==V3CH!MN5[OWONCNQU!P.82Z84Y< XJ#6%,612K"1)4\97D!"^*LB*!KUN
MKSLXJ(67]S GB:(2WDFV6JM>%PZ at +,L at 8BNF2)(2F0>A2 W],B$AC2H'E\4R
M82&,14H8#[3 P!K_PF-,S13A$9$13 <?("YXJ)C at .=HE"N@=1A;!]]X[R%44
MA %^,^$;%UM48#F00F$0BH4D2>Z!I9F0"N,LU[H:YA^68$.[;?&"A%+D/^OW
MSGSZ?GI\N19+D0]F*IIIL3JS5$1%0AO]D29FM at K.3SLTPVZ18R$QR-$&K5"Q
M$;NE,L<"@#>V9;_ LON][@/ZQJ?FSAF/1*DYFHS<3L4ZAO'TU^G5Z?GBXO3W
MV6)V-9Y^&%FQQU[W4?MH>]F2;9SIZDN4.6MY85S!(LX*%2YX(L*_/"3T83(]
M_^7 '[7YY><$4&)AF W]5K#(, at J^R7*1ZQ^2,))O^(?)Y<>KL]$6NVSSYUH`
M3= DIW5V5KB%4F#,[C#XJ4P9-E:MW(ZD(,Y\> !)58$U'(ZJ%';GZ:0K@(Q0
MB8-)X[M:H ]7]QF=\EA<WP"1JR*E7.5]8_% $S(E^[ 4(@%.RX1Q>AP3S-C1
M,FPD>JQD037"+F at A&1HA>N3J9%HT;*:X9!'UM/=A!8:2]TU#X 89"[,%8F9&
M0E*2 at LY,+QN<8<T2!792*G(%";VE":KAM$F"+*D'G4.X)I*$>OG@&JK_!$80
M)Z[3%!<+92+ML!B\=JAOCS'"3@?7W_)>T8TLA 0NVA14U['7>&C at O4C[A=!W
M#"U at G(3&]-U/$\TQ>H9O^L0+^V CZG0>]9=M,11#"6WO^L<;6!;QJ-(R-"39
M' QIB55V&R!0XN/5Y(V'&GV,I-;"A0%>SOZF"P4,Q;&=&+R%99!0OE)K_'=X
M:*+KV*B6U^QF,S W1.ZM64)!)";FQ7NAB]!O-U;54J9SC"G3ZU at 2UU_&I?7X
M\D_^LO:H'>I"P*<8G500Z:;Z-T"V5UR#1XU6V8:K`87D.97*8_D?.+K16(MX
MH=\4LH7G!!^_HC_4Q9MO8.K*9E\J;(T"?DH#YNL*8&,"7Z^'-PB1YZ&C5^CG
M:(B/#R<G<(0_+Y#R`SJ&0WP9OQD.1[7:D57;T-H4/ZO$7:#661-MFWYTLR.+
M5B?4&34%1TB+N_]4[NV"[?+0MIAKO,,*IV'=55_1F^6>S3G?[L[6D1(SKN\*
MS4)K[V:KL7ET?O%64UUL3JM@,58*H>!8:'T944)O2=R..1 at YO/Z87:\O8<AS
M%Q-<F7YSE6H.!"\(@N:(KLX(J]"'1:M"BZI$[A0P/_[()?+5:<Q(2A$O$Y=Q
MY^.!4B@@U2EC[EU9AA<U&AD-):JEC[#MRB'A>V2A3ZYG3\+&J#/(T9V+W&BX
M at RS.\)S,%241B/@SV,06G.:LWIF at 9OP?$"7\V^2'P.V;X2[X]AXFNQ_T,&7F
M!D'=E?Y\^MO[USJ#A=L@:Y4FW]GW5W;H^DZYFD%_CQF,]QW"9X V?OKXQ7O/
MWS/&_\R=&3]M])XCL6\U=/$3I\[E]@]02P,$% `"``@`-:6<-7+5-^.F(P``
M[X0```@```!F;W)M870N9+T]:W,:29*?<<3\AQJ\,B !`B19LF1Y0V-;<XJ;
MG76$/3>^\"D<37<#;4,WVP^!UO;^]LM'O?H%:%ZR)=%5E8_*RLK*S*IJ'>[O
M?_=([(MWLR 1B\C+YKX(%LNYO_##-!'IS!>K*/X\B^+$%Y,L=-,@"IUYD-Z+
M212+)(V#<"J<T!,WA__$HH63IE#4)ZPW:2L1;K18.K$S!LQI)%X^>P9E=\D2
M`--)NT,-J?$_'#>.DG/\W/CUYK]OQ*5X,XO&47+X-O6N"3/6'7[WZ+M'APPB
M7D;+^SB8SE+1?MD1H\'@N <_GHKQO7 at 53(/4F0/:..F*U6K5][AD`05]8(HQ
M_!H':>J'"/&K,T_]6/Q "#5;+)HDFJ0K)P;A)&(91W>!YWNBY22](&D!]B"=
M15D*<K at 7_GH9^TDB0#HHR,#W& U QTZ8WO?%32C"2/AW(&& G,])RDZ6HI#%
MV!<S?^Z)>4 20R$C5L]9.%,_851.'"0H]DD<+0 at X@\&))O#1XM0(5KSQXT60
M)#!RR/X4V0#N83 `<Q32L""&'+BFO,SB993X7485A.X\\Y X2'#AQVX`(G:6
MT$_70=4`4:,R(&X29I#2<^Q[`>K*.$M!A"GCFL2^/[_OBB0;?_+=%(&P,Y-H
M/H]62 +D"#"D<JP7#!?AF$"'89R"L-1OL<B2% 2<HBBAV[&/X^%CER_$?93I
M>D8&7^[<"5".3DKUJSA*?>*$*4 'M4S%S83:E,2ED0%'#FJ(E[DIRD(X[N<P
M6LU];XI3"NL1M6PAO,C-L)R$!U,M at Z$?&VP at V=@'&>-X@>QP^+!GL?^O+ "9
M]K5 KE#:T"B)LMCUQ9T?XW GW%D0Q!+Z&,[O!2C_9VCF`.>9.^/!*@FD)#AL
M/_9Q2*K%8HT+<Q@`#POG7 at U#["^B.T"#*B49)=U%_6*.-6VM)\!^7\]W:9F2
MU.NSC;D@*W#H^>-L>BF+&HW#0P$F"A4S9'7*8E"04%"S*?+/9J>5(#A,SRA.
M"2E\._'T`A&XSGP.BDL3,_2!TSOGXQR80 at B OG-2LI *,DLG%Y45+B*=!^/Z
M6C2=U;6Z[KM'<B1%^]<@]*)5TOGNT1<0"WSI&FGIT-!UN I:-%3UI;#J7UYP
M at V_?/?J6PVZW,21 '#2B\/_5/UZ"W0;A^3$._60>.2D)-((RR_#K18(Q^&L$
M0.ML.)-E[LR)]W7S-J)QNX*PS9UIPA])_9'%+BB1,]\72^_.F8,Q:M#,)13C
M;$*-H3*9,]@J\-)91WS\N"1&)XLTUW%_GOAV)W^!Z0P+DTA"UH\B[X135;:9
M*C"8!/_V/\+4Z:J^D!2ZHM_O=RZDA _W_Y OFA]O at RG(/@$#`],3*+DSF%SI
MRO?1YC!QFM!!BJMN#+-W&85DK$&YR<RH&04F#Y8H7E1?QS',RW-!OZ54I$Z>
M8P]0%&CKVM80)MG2C]M-,Q^;'2-@"P3E\N%6+)+I)F#1%/^A- at 7MA($*LP6L
MX.$4)O\Y25D/V[N[*/#(9%R*UEVK*TO'L.*HTK$IC:*Y*EV;TGN8=K)TJDLS
M50RE,UV:S'!R<FEBVJIB*$UU*6J+PAN8MJH82C_KTGD$PR-+YZ:M*H;2A2XE
M79:E$UWJ11EZ"E3JZ5*<+0JOCZ6*-X4$RB/#L4("I4M3JI! Z2==ZEH8_F5*
M+0RQ*;4PN!87.)**.T>W7JEB*,U,_ZS2E84#_:E[67YEQDD50^F/NM2Q2O]+
MEY+M`EN/I6^,E*5%PM)K2T)^J&1_8_I'\XA+7QH>TAC7=BI]JTM)EV7;U[HT
MO5_ZGC^ATG>FS_[<G^*B`*6OL)1MR2$805K3<!E^!Y WX21B3PVG[")(@SMP
M3*""[$"8P1H60=MX%22X2EOV7+D08,1"5WI[**,$':H`??\5K/3H,LR<.W:'
M%C0//4)#8P(K+ 8'M):3:R0Q./,5_@*_CN0#1!2O'Z]H'- V<'? :P[ `W7)
M\9F"UPB0?;,FZC[JWJF2MK0*BXZ0)D&W38,+5I($_'*PD>V%,3ZT:CA@[AF\
M3U;DG,O!9 at 4@<!1?X+6QHG,Q!@7^?%$!!W:F$@S*-T&!':H&@XI-</=DC"O@
MH&(#7%8+F&V!),-6"4DUFVC6 at V;;8$'Q*@&A?!/%.K!L,QP:V4HXK-A$KQ8P
MVP))IK,2DFHV0+)YK03EJ at VP:(0K(;%BTVC4LQMLXS?8P'"PE>. at EN5@"\]N
M/<_N-I[=#3R[6WEV:WEVM_$,QK0:$"HVP*UJ`5=;(+U:2(\AN0H6)B>;%Z2)
MJXIQU(1>DH('N;R<'\+E%UQ\6&WNG#APO,#5KJK H(O#"TY6C.^Q;IE";#:+
M$E[F8*V!B'\*ZT)("+D-P2<?;KO2*:8\%D2;+CC%Y X#-G\Q]CU,XD at 7E$.N
M1,;GA*R:)8Z9(2[V.#T&7C:(B#(B(#G'A1XE2&"9I:[)P6#"HH2/N7<A3H='
M#TD#?W[,X?1K!Y8N6*AE:$7UF%8!TO_*?%RS8:%&DA"(9(F*S>6(22A"E"PA
MA)K(_ PM]!@?H/1DKD9VUV(?V6(R:0#A\+U8\C)N=XO6>\$.?E>LU = [_%G
M:J1%!ST!IJ,LI/"_BXFA0,:3J "<8W#RH]$75PEZ'?<Y5 EE+[A3+#7.&EF
M>;EB)[44&96M"3:T+2JI"Q92P%,0! B!$**/Y1/5- *'S%]ARL,)0COVPM18
M+N0*4('B:!62[Z11$,)%%/M5.)"AD/(2F!&ZKV6^:VL#85S&D>LGI"C1Q$*(
M^KN B00C$U J\I[Z`<.N)6C4^ VHR$+F:%$`XK+QSRQ=<F8*<T7"BS at QICS8
MKM$KY%<_$,Z&8>-2L&L(O"E'K at 42P_0DJJR/LT$K$UH#WXRIQH7&X5*\B<A_
MA4;5,YB;+QU,:5^*'\#S\AT8 at W?6],&D8ISYG 7BELI (#?MO]U4JTS'GO$P
MM%)4_Y#A.BJCT6*MEHDT(IP\M%5$)=U(2S1J;O'Q+7'$%)X[(G06_F63,?:8
MV^:+O[5O9'/5@<[S0^<%P>#PHHV5=D3.?9J2T*L8]1P3V]06\=3T6+PL& Y,
M>\-(1TN9^V[(21:QIK0Q\XAS&!6H(YP)J at 9F`D,?%=2)$3:4F2D;/I_2^.7=
M=>],&T,MG,:5J..U`R)P8HQLH%<@Z-9>RW2\RSH$8S)SDD(>>@I*OZ#U\KM'
MS\%:@?B,7-_F2,BE\F_M'P#]7JMC/[8ZQ-HU9K?XXZ^<IL*/;U2B2S8BW"C9
M#E(U<)K #2QAR_3>IM#+4; J#NHJ'M=5#.HJ1*&">>..U/)V0RO]U(]M3/LM
M#6XZOZE[_5;AJ0YSWT*MJBW$E.OL%)\+R!B:J\[S at K&>AKFG4>[I*/=TG'LZ
MR3T]S3V=YI[.<D_/3,<L#;'Y2W+MQ[DG+_<4Y9[6N:?WN2<_]_0Z]S3)/5WG
MGJ:YIQ]S3T[NZ0J?GA_RW,+2Y]Y<?TI?%#61:QM<Q8I/CQZ6_N1/4O$I2])@
M<F]Y:-I1"/PYKAB-&[!\8&7BP$,W$NP/HAIT*/O<1RD;_ <:/VCJ)%B#6YIP
MKB7,P(\DJXF>63 -P6@:ZZ4L#2(YZ-00O0$KY;A^)>''FC"FJ&GO)'2(L,FX
MGU,+$HB2%^B&'N-S7>Z]$%<>^RYJOJ$9-F8WB=C?83'%L#30EJE$0!MM8,5=
MW%6U$OX!^FTP+[JTI2F"B1A'T&O:U)2+G<0 at O<VBO<-%X]]^'/6M'@C=!5!,
M6&^E4N9[`UY3&(4]A.UBGW!DY&"3X&E UQ)\\+[3*5&HW<;(2XWS64&8^'$J
M'2LW6( 8"*R:[ZGF^\<BWZ\BVACSYZ %X&<XP1Q9P&XDB.OY(8VFK0<#K0=$
M(& SQ2Y$[4[,:N:'1"AT,+(`!$$X`7\RO>_2!B:X/9XF#+6H&(XG8@==478T
M23.)J9MIB"YI(!W55D)J;8]C077%[YPS1+HOY[N2B&T0>,U199XT%W(Y]GD-
M7T!W%]F")SWO"DF4['%S$:LP<KW?8<<Y]->IUEZ(;F8!N"QR+Y7A<39 at GA6A
M,,O4)7?>^>S3G-*H:ZB%Z!N#+%0<!" L6<+7ZX at 5E*BP%F>.$K=T'FPW.B\5
M,QY&,N)'P)3(?6<U\]&/A9'P8W"/C?23/,.F^9\B(HV>(B 6A18-(RG(!U00
M11-&5<J76RYL!RJO(L75(]&:^J[D9=KQJQV)XQZ<$X8P3Z07S5:.=%>%UQ6&
M&>E1JM<R!^^L)2H1S]/T10MCC];S0_B(\30539QY(LML>T.6( 9+1-F0`E:D
MMN=UE#,,V&':>S9XP7C4(IEN0B+#XRI at TR\<;MF0M4UF=<B-5]BNBDM#DI_-
MSIIF,QN0?-PB,<BC+'*M9_(VK[PA@>%I'-RI8PC8Q7_2&93.+OQSPDL!4V1"
MVT"P/J0.Q"(MQ0SB[:<1QVGM3D<L_'06>7]=;W%UE$PG>,3$I17#NX=0D8)B
MW*VI[?&'Y'F2C5\,GA_BKZ[@QZ%Z[/?[MQ)V1?.2ZS]SO1+99Y@//I\F$[*U
MF48T6\I9JYHU<-SJXOXF[EKB'B[[J+PF;IBWZ@`,+&:YN0*@M%5N3VNTLJ%:
M7%52)F<"]'IEH5 >C65QL"GR#'./[9>M\@BFT,C!R8UMUVS92>@T]AWF#V"S
MD&'[XBHTO-FVE at Q,J6<0JP`TF!-P)CC9,<:,,$YF;#L.0G0!)])]&8.UUIX>
ME40=/'4A'1_XI,J]#J<19_[:46Z1J@/?2WYZ3[Z7+%-9#TY;0I"-9M0ACR1E
M"3"(R)9+/\8:\D"L'!FFV #(Y%[)4979L;*+B9SGO!W"05VW'6!#I3 at S04 #
M[;[*"8EE75R)F#; Z at EHJZT/JOK:J.I5T6$SV'+#A8DO0 at S*"Q6H;"7'LUMD
M4TJ!4BK=*L5$03Q9SK-D$5YT98:#$XE at VD%",%<<D:YDG_ L(_ 1IN>$Q^M[
M]-7Q\4FA@>?<Z 05JS,>E5FC]DC^,&?OP^+)6DT)H$JONGXP6/!V>SK:J) 6
MQF "8W#]P#$(0HT??&A'GD=KO"OSDS?;QES+WFJF<.+7]%5 7"B-("4N05PP
MO]60:%U %]Y"*%6C$E^5Y!B<PZ6'B&\*XOOQX>+S`PHD$(7?X0`$/T^T+Z',
MQ+1S0;]?:W-Q;;>1<#]VC/QM+-(C40ZTTEEY@%615QLB)$"RIS+$Z9W0Q)[C
MF=T:\_' <4?[3!E!<@E9"]A&%H<8\>;"/YH:%!?6SHNNZN@$UPLZC0UHEDY,
MDD L6!L^:( =&."KAP^P9?+I6!\+/K!F#(3?*+19?T9?G67.<BC!LM5 +;<7
M$=OZ58D!!4HK(NX0J32RO3,DMT?*8UEK5G:;&MMLG<.;5N7.),RO2;C@/N0:
M1G%^+_1I6W74)@V at 3=Y4*CW4*@[T5_+\>D!!%>X\:5(8<2?!>(ZA5 -/#SN6
M0>GR]IOJ:5<>TY9,H*>SI'49]'E$X5=(T] :R_T1.'S+%_D11>]O^:+$*,Y%
M4DTI9-6 at +**N6/-&&W4=&"0?@-T#5GS)1\'=,LVJ<@;7>7W^V?FYQ7,MM^;B
M7 @=5 5)2&6("[2,Q])5!NOGJY\)C-CH5Q*5R9? KZ$,]6PE5>B at LC6_A9^;
MGZ\[UN>;GV_>_6^)02VBUVL'[WS0!D>O[BMW8)I.-P?11:[0.II-AS-U%]_@
MP=DV'HLUIY>Q`>X`T2$'X5KG0R=<W$6<49:63I8:4GTO8E&TGR!,5WRT-EL_
M\H:@/HD+Y.G4-PS%6ER*T>D%'4&C0[W@'J,Z.F&R8CLW.CU_"OYRH0?-?*.]
MY+P)^MH53Y%(O=SD(7;JLN:8G^0NJ3QV(;@7:@/TPZV]>2S/H<M#$%UR\^7>
MY"4F#(QLU=$X*;A,GZF6!?2,&;&/E)"R2G5"1I:5S]0)0><8SPFK&;/KGSPG
MF8%8AUUZ0H. 0N8GRN7!XS$_SKCI&3_-PZDWGL/S8#T:<-$`\Y!8<"P+3!X*
M2\\&74LE+'WBX;J*IZQ4$UNK2%QWXP#UL\'G:^]X7<,":G^'/_&)CYS>>>J9
MDP- @WY?D*L/%NL.?Q(T/[KJ60W Z(*2KJD*]X!YHHY%%'V!O :J3>8J1CX0
M>WT\7@[F=U^<W8ITL1QG$[J at 0*S[891-9YS+1V J!&O)89S$LZ^2XI>BV=3(
M;T5"8]E04Q""4'50&S=8&E]DH'YX* ^\-TEY`,MZ;_U_(:@\/:/.-RS%D6.6
M*XV2M*K8\2 at 4N[2U4/1$&SB9^V&;N>Z(`Y'TX7F:S at RMB6@K\!=BH/(UR'(#
MZYC3)X+U$:NIWC B at 1%?@Z\!R!:J`U8#K6*:M$&/*IJCOIH%,.3M?<F\QHNV
M3!8>'% _5%,FV>OEVV*NWR).OR6C15HU"$0K1V8'CO(=18<+CUNP41+N!:M%
M@\URYT(W5&RP<"4?.1Z^Y10-IT>;ITJUGLDV8N^G*>G9'1^<TP35 at 5Z:V$8<
MY!RTDM:YZN+$Y2/]%ZI '80SK2$DI./=%*#3 at 6R*<^C0.#G$N"EY7 at 5O#L4U
MBM.$R.ZY+9XD+ at _#3SX>Y=#-Z3"'",%1LPYZX!1C9Z%9&ORZ.SJ6XJ.%(<.C
M9O@$C 6>Z6.KH2;']Y;^:HO:Z5A30!O9I[8&#:G)%]4N06.-%.3DO+ 0L+5I
M[ULW;SHP7-)DB*]"V7NTZP6R7?'DKHMN3,I7;#H3NMGS!"_U6(:BH^EAGX"9
M[R]%CUELJ'&J9A1,Z4A72A&U+7K.?!ZY#J+DTW#2`G<Z'P:BWP=TMP3]3:HY
MVDW$HFNWSMM=!HHJAJ-;H;VI1H,_?AC<DGZQ6I-+B0O(Q1;;)X&#@P,"[[4J
M`'"YK@,XJ + at +>L:"%$%,=O T^,J`&5AJP`&+5LN`:P4+)O]4OF0RONE\E%-
M^R,J_ZE4?HSE$[=8?'*K%K>'SK#>L&**R04RE*9FXVQ#)/I.&C4 at MY!F"WO'
M]&S-G*X]U^[,/+(L&*=44,OP7C.2V//(FMG34EYS"_,S,10O0!3BR1,`>PYL
MZ%Y_:5 ?PHN**?HMC^$Y+^D-AJ"):&:L6JXE.AS<OW0V\[Y/>5FC at XODSX/#
MI6\%PFAU;?^Y(WB]X_7Q at UKD9>L4?Z,A"/KTL2VKI7H`,EA>A5HQ=1#!\4+[
M":!GOH>W7>2!P at +=@:4XN&0*MAL%.,F%DAQU%4??+#9O[66\J";H9^LEKRL6
M\E-'KGY00L#V+1R]YE?<I6G4W99I--!M!^P0`4'P\SU?EFF;\$Y:#A=7`KF;
M2U-)^O<(*?U^HC&-P&W^R?C^.14 at 4G\738RHFA#F-&GCE5?EAM8`[9%4G>,'
M?LEQ, at Q3</<PAE7H4<\Q5OPT.K=X;S\A,*T*):8;M5<(@&>OP/2JS#7S,:S!
MY=7C\DJXB/OA^4ZR\+8+ at Y!(LL\Q1CR]-I at D,]HV="HQC at PR96F^R*GR?9#\
MCS,/O%<()LFP56\8=^Z7=/)Z[?I+NLW<#,([A.##\!B9R7NR79AQFC"M];"R
MW*G%7_KG.)AI],N[Z[/V'?E BJ1A<8LJRGM?8"M5Y,FVTI*JFDQX#ZQBE+6
MJ]!G&G\98?:;,*I+8SMPS)?('LRRH5#!\V_#R??.=F 9C[\\F&&)G6:*>JCB
M_;<@ES?8-K!.LX7OLRE*]/#@;BA2W ]-N*(COPD_G;U at C)R>L3#*0QTERZM:
M8OX^FQM/!7,<32QIEO(#6"7!K",=%I,\;6N8E#>-S[>*F+R(/,.9JT='!E&7
MTCO>Q>U$$V:!V0F^LD\JR4M/R1@;E:MZ6CTH53U6U_ :];<*M>6_I%OYXNM7
M(1_X:(=EFU''63\I/V!&F*_T5>B,3,55KE/JEE]CPZW%AS"'(UC)G;PS^##V
MY#7"1NVER#(=2I-LHE(Y<<PX<.;2=EAJY8IO<YK[Z[K):,FOC+1>'%NPFHZ7
M<-9U?3-&.OJDA*P<8O"]R9@$X+#W\3:-2AO J ^/(;#1*9QBPP_/^OTA1HA@
M/B@::.*M=)Q\AX=\S KWT? T5OZ6?L(8<=9]`"_ L3K&9?F>"2O:<#BZ@]_,
M9%?&/OF;]AT(#/IX4E,A,#$,S^S%2-DA%DVGW+?A@ ,E[<>/\NF@:A>XD13\
MWV)G*LSF)O>TL5(IZE711RUA1M+2?4I6#Z!F'-B&IZAY12]V(S7/^':2%J,K
MN[B;<H'R\I;$7\C4:',-@;9Y>&Y2Y1H[,I9P+* ;\E"J@"'IY&-RW"UAV&*2
ML[ 9A%I3?B4#:(9A^7MHI7AAX5,>E!OLJO&-30J/!"H=XO+(RK=L4'?H$G-A
MLKSC>IHNN- at 1VL76J?'LULH'<3B\0\R%&VBUG+R&RK^Y+B3*"7QJ:A;?\
M^I(T2!3E0E6'=@.EY@=)?ZT=(GOLY'W, at TNTK(E*:V"*K0.:_)^C*M^IL!-A
M:V%!A_1NL'1$SJU,`V\/Y%(-<G? /'LMO<BS"]RQ`S[J-3MFTEM3F2F6E=E7
MZS6E1FNOKF=M*^9S7.A/BIK$JX7RH'FQ`<)D7BT0T;2<-;-78;H[;N6]?4Y9
M2K^.(]]*N&@3W%D]W'N&LWS7<C88+9B45:>TA= <O.<^59.6KF at E[;49V@<1
M7#^<X#8%94MH%.Q+82-K4=['*D7PPDJ&/,'4QO5U_;Y6.9RN`-\%@8HW*\%K
M4127#9WL5?/ 2*5F29.KY+*E)"/;78K_Z*!'8C!3$\?(%J]=>RF3TE:<(TNJ
M.4#6OU>.?]3*-Z1-C-R8R964PLB\S<WECFG?.L\!1!3U<1N;&96Y:@U:8#=M
MNY+O_]#8IGH0.YI5K=HP0?^..YVB!TC$.>Y\TL=.`=A*D16&$K<K] Z6M4<A
M]XYEDYF_CB:3Q,?HG&BVF6B[]0SY''8Z0+S-U$T9C[7, at 5LS5YMVBEFE&/98
M#0!2;@\IN;OBA;PY"SJ.ZY%F1K52* XOA5IVR3VC/GWH]4+<Y7'EK";9Y[H+
M/*,'5NN:Y1KG]!0O*!2%!]AR4;K%R0)]N=#:`5/[0 O%6\6"H2R?5FFE7Y;I
M(\NG$H],*T1:.<8XGVSY%+3\JMA,[>_K/?M22QF2Y1I3_-:/>:^"]QP.6NK!
M;A(LK"9!JY* WFBOVV-7#E+Y;84X$I\T)GK'PR=:`L0G&$!]"DOIMU 'B]B'
M,^^<^71P0,Z8V2M)_20=PL3:Z^\G+;6;5O+A*HKLHR^'AU!-&#GGM#%<5?;
M9"CTHK2C+RDI+%!A<B$S:3;M+5E:K$\[[1I*ZM3W+8AZ at 2]NQ7--N3>XJ!,F
MLMF*W^#):ZXL\[A,'2*AUV*(I1\3'GP_#NA-0F\DIA>2N!%>MG4^X_%+[\X)
M4V<J7YJLMNC%OI at XZ/CB'>A%E*3%=P/1VT#&OKAZ^_+F1KT\A^]+6RAR;YY0
M+\60K\0CR+Y\V[;OA.8M>_A*%X,DQ2/(SIQO2$%HR3<.W2B#"40OZ$NB.=T`
M2)91FO0UX&'IJ Q'Z]4NA at YW2><7Z9:(?:._L,HA6^6QK>K0<3,9/2/0#I2\
M'"4O3\G;B9)72ZGHP)B8"@-WLW$3A6D09G[EX2F,*&A3-V +$L",!(*V[9#K
MNSQ at A1O\"S[<H-B at BJF?7B_HF&];1R<P46 at KJJ1G]CM<Y,N+[_"=.S[JC[W+
M'N"L-OP4M[%R%E/M8FDJ32,#^=XOB_.&] EHQ6?F;]!BU1UMR)U]T"K:"&EW
M?Q\=D at -<O7M"G8ECOX>/":#)P%<I3.;1:EM"!0FKMBJM at E*W!6SPNX ?W2=P
MT&S7(>_0YB,[*8NP6 at AO4WL$K=.Y#%P\9&N&ZA,.57'QV3A at ZO53&L@:L)JE
MBNIV3C(HUA;HIEO!PA8U,E?%\5* #VKJE56I=K=,290&YWLZ`Y7/02HWC_9]
M43.@`,VF>CU07L&"7H]?%CYVW,\B6\J[.;1"%*%(3^2+OOO<I at TJWQ5!)Z\&
MF,1PSW.'+-UJ at Z&Z`PS\Z,N3V>)+[T \_F8V>53X67T$KU)Y;;/O%N841\:]
MUKF]AX3'Q"X:.=9DPX-\0\Q25#<4^8:4G*AN^3C?<E9+>Y!O2#&?W=!JN@=-
MC;.+416KH;T[@R/!Z)5MKSN"9(H+`V1>'D'C8YU9ML]^L7N]7]#,?&O;'N2F
MD]TLEVK*;]_1B%%G\GA[^>/\#6M1JM<7?=1!31^.&L'%<_$,A;)[=;VXD<[H
MMM.$5OS.ZK'MO&)EP*\&0X=&%'S;UP(*`]%O[;;_>7A80W#C/"L-N)EJ-E.E
M\6[D$P'ZO-N7PDXL]Z8DCSS[2D\;M6R64X^UPUS!MQKAG &N7Y,JXHVZ\.@!
M at 4@C;]LW&'>;MAU0&$_<=<)6:KE$UGT1?3;([122'"IQHL*=BOEOALDJ* UG
MM3_YS7J5JK4_]]TC'<[6.S;67QF 4:G^$K^$02K>012:U+8I0' 8D85XLQ#_
M\,47$R,'ZFVR]DT2SH2.LVF;N]<1*OBUKFK)7PHKA,$4A,LK77*1E>_]Y+;M
MYLR?S^D=XW/O>[&'%ZX$!L]Q!O'RR6E7##\.!@/UW:57^XLFR#C2`3Z^[2-.
MV[0XY-'1^QU/3L'+5%]K#;F)J6'_Z2E2V;M"7GK#_NBLR_=E^WAW4-(]Y%>^
MSC"*?"GFP3C&^Y[JJG(:Z>O-"*A>N@,^+_X5"B_R$]135MQ[<)/E.[EF_GK+
MK5B-AZ_J`I,:]6'AKX;,83FE2R$Y$6'O1&_P_JI_].IT<"5_G+WI'>'-2"U6
M.24J08?]X].KUT/YXX<W!P,-NG&P]]9B[SV>CUL/1T?'5]?XZ>J:_U4.)S9S
M)D*UV8'"6.Q%#Z(P&*!Z#(<#^@3_X$N,3DY/CDY'IT]/3G>@Z8'6/HCF\-G1
M\.A$C)X=GYZ,@,;)#D20`F at B;J[UCX-JO/W1`5;N/A##_M&H*Y[V3\\FE1B/
M)I.3H3\^DS\FXGCPZNSZY.71#B0>#Y[V]R?-[J@['/6/CD\J"0RP[F0G;/N$
M[>D?A.^T?SS%JYW0_NGI624N095GYP_&]M/O13<XGGS=&YQX7Z';)VOX>;)N
M=GO'_6YO.. at .N\-*_%#/1NYK#S7YZV -O[X*5$N+9$#W$@876S3ZZ]X1? _P
MQQ _P(P'X0?R'RVE\JB/J-9%H/&U\$WL%5DY^?,Y.?D*9$ H\(W_J]CX\^4Q
MP)'XBJ,#_ZI8^/,%`7(0)\#"R5?X5\7"7Z 6H D"=1.^Z7^1C3K*_8&GSE67
M<.X"/@5H,!K50],_VHF#/P#': N.XUV,`\KL;(+6QN\-SFI028=G^&"$)QL0
M#LN#Q1X7.5S-O.,8R\>X5ABXI"4?!OW^R6V!:"R=.>V-U",9;,<"#&Y%=+8-
M#3P;3%R/^_=T at 3^FOR=U2<X[%1[?*A1<Q_?Z0'R%8KJZUGOVK%!\=&O9I&J.
M9=-*5C\`H2Y@[0ZZ at UN+W\PPG%D<9R66LQJ>,\/TJ%R^&]?99K8!;Y%M.NC
M;//?XF*VN=AFFTO*;'.YDO6S8L5N?,N_:[-!W):\-VD:*-I#T<GALP21V9+(
MRJ+(ZF216<(845!5JMMQ'+?T8(0&H]@%B%^8?PPTF7DLLCG'YS+;6%HQ@%B\
M&[OT9X+^J,%[`#)NA>?,N./T%@?N.17:7:>"<M^IN*+S5+Y;[_EO%OU1W7\(
M-JFZ1@"9)8&L)(*L1@:9$4).!MD#A)!MYKN";5[)F.^1Y%F6V4R/F&&YTMCE
MQ' SMSI2.3'<Q%S$-J9'U0P3J2XA[G8!C\UU[5IYAC[4:25"Z2Z<;E]PS];H
M* PV87%V8*9W5,_,J1 [8-A'!+VCWX>DOPV+A4/]'3\ZTG//UU5H8^U>'?+I
MG6Z4WJ*21.]T.Y_.V&VZE=!8LV7, at .?FJA(8:[8`3V=!TZL$QAK#N+P;K7*^
M?,MHL'[U^NK5#Z]?7V\DLJS$KT!W&,7':TJ_@"RJ6>6JK;K]F'-35S^\?%6-
MYCU6[<(/I: P&W12C8BJMO*#6)Y5(A at .=^#BP*.,Q%$EA at .HV,H`8>C5H>CM
M at D)L8D+LC&$[$YN1[#4KH?=V`/5D/KIZ(+:RC^!TP;Q:$W9D`/^81A7\,V.Q
M^4^KKNBVOM/:@:N5NPTEGU'Q=D?I;41IHB8Q!B3XH;]PUEOPXMP>5QOGK=:+
M@ \.JL'/!K\/?%B,402]\XP^[MBO9%;3L<FN7:O!<*8B]=^#H9 at WQ-?.[M:O
MH+9;D]V[%M3V;+![[S8BV<6*;G!WG*T\O*\'OMJI`\/J!62R&^5J8'M%E:^]
M<_-_]+$::?7<IKO4G?RK`W$K$F\YF5?SX>__<>:9/^SR[U%^3W3#IH="UF>X
M#6:8]DG_'U!+`0(4`!0``@`(`%NEG#73N\Z#L00``!H0```'``````````$`
M( ````````!S=&1I;RYD4$L!`A0`% `"``@`-:6<-7+5-^.F(P``[X0```@`
M`````````0`@````U at 0``&9O<FUA="YD4$L%!@`````"``(`:P```*(H````
!````
`
end
More information about the Digitalmars-d-announce
mailing list