Date: Fri, 17 Dec 93 19:24:18 +0100 From: buers AT dg1 DOT chemie DOT uni-konstanz DOT de (Dieter Buerssner) To: djgpp AT sun DOT soe DOT clarkson DOT edu Subject: printf and scanf functions for long double Hello, since gcc-2.5 (djgpp 1.11), one can use long double. The following patches make scanf and printf work long doubles (format %L[EeGgf]). Not that printf might be quite slow for very large numbers (say 1.0e4000L). This is because of the algorithm used. I think printf is a rather complicated function, and changing a lot in it will probably break something else. I made an other minor change to printf, so that it will round correctly after IEEE standard 754, which means that numbers ending with 5 are rounded to the next even number. So 1.15 will round to 1.2, 1.25 will round to 1.2 and 1.35 will round to 1.4. (Of course 1.250000001 will still round to 1.3). In the following uuencoded zip are 4 patches, for : libsrc/io/doprnt.c libsrc/io/doscan.h include/math.h include/std.h and 3 new files libsrc/lib/modfl.c libsrc/lib/strtold.c libsrc/lib/atold.c The new files implement the function modfl, the long double counter-part of modf, _strtold and _atold, the long double counter-parts of strtod and atof. The naming convention is as in Borland C. Dieter begin 644 prnscanf.zip M4$L#!!0 ( '*5D1NGH56TY P .\P * 1$]04DY4+D1)1M5:>V_; M1A+_FP7Z'<8):I/22N);DA4;E\2/RT&7%$U[") +#)HB)5XHDD=2CM,TW_WV MS:5,/^/F4"&.Q.7N[&^>.S-DK]>#X7"4)N=5&8["49*/%GE19O4PU-X&-;P) M:P ;+&_?=?9=_&,Z=7[\83 8@)QV4B9P%(5 AT C<$F<_8=DT_KM3]T &P7V6-@ MUX0.OG;&@'\-?OP! 'HC\O7C#WT8]<C_T(-UODCB)%I G<.GO/P(GY)Z!6F> M+3&(S7D:5:#'>;G&<'^:OX_BY?')Z0<P.E:7^2:C/Z*+* .\!O,^]/A$_+&& ME@>#0_QMJX-VUZ##!UT^6*^2"LB_#,(\HWBR,&)87QT?'T.<YD&=8-!%GF0U M5$448F A'LNS(2=R-(07FZBLJBPJV="(?!&1/$UB6$1QDD4+??[JQ<NSMR]? MOC5@=Q=VQ'"*Z1ID;E5CJB&$JZ"$*@RK9/'^ QS D[_I3PVI-V_H3$%_$94? MHS3Z;( _LB>CJ?ED=HWB' <YOJ(XUT%NH[BG21:FFT4$SZIZD>3#U6%[-*P_ M%Q$=[;?GILFYF(R5$\5PQA R,^A&,D:NJ2*9(,^62$8]L*S!>5)#=%GD681E MK?_K^3LXW=* 0;3EF!,LU3!9!RDLDF525]P"GS*A:O]\_N[XW<^:AB=2Z&P8 MV/#\"/C'G3JVV-R> -D]+H.0Z!;JX&-4P:8 +._V7C-8!Y=01D&59\%Y&D%1 MXOL5670%Q<DOSU_^JCG3:V3"M,&NFW5'QR?SGW\Y?JE9+I/GCKSUXK<33=,9 M'WU!OV\9&F:A+W$R6Q5.V1#^^;=?7^KARM#TBSQ9&%!LZA!?(X@+@RG%\Y W M;<SC?H#F1X\-J5-H$P=-5).>>LBRG"N AT _XX1_7)\\NJ=9EZZID;@!(L%F)>0 MEV"^(UJ+DTLE=)$_X8,7=:HKL0JRS?H\*A$0)HBZV:\X#9858A[;JY)E5B!" M1".VM3FCP_&Z)MSP*750UH6XBK)%8<S47>DP#7?MW:E1LBU[T671(J=08YO3 MW>F8LC'!UK&7\+549]<%VX3NH3+ ECY-8NKJ9Z=O'/OL3*%&%B45#8Y!VL:^ M$!C.-S&'\!1C36(A<JR719[MU? IP%3J'&2<60?U:K AT ZY.%4);K.%W%K&]2Z MW6/[B+^$Q24>HG3,D8D@*)<%MS( +<RSJN9 R?WKPNED AT J:V=%CMY-7\&"\H M9N3J"_$+C8N-4)E1H^.'7%67)(@Q<].(P,(5GD!FD 58P1$6=IFOB<1;TS). MJ(SJ39G!19!N(@C"<+/>I$&=EW0R<03+(I[0N&\7O"U&9]\/8:<\IPZ:-@&0 M4LOXGF60+?!>*_SUF:@P6D:EV)7AY[N>;^(8WZ(1AD_!C')3.&/?;"8?:^)U M4"XWZRBK*_CI?70<+T\_B!TV9]2 AT SC;DBZT6&-1%BR3?7+[[H$KC/*CX=N07 MS5?D-"S]BZB41P55FFTBB^0J0FF/* /5)\Y2(8E&$)ALRV\Z!$/I:#2H_#0? M_C^$U&DWENTCRS$;RV%A;W<7]!T]+@:'9R0VPRZ<O7HS?W%BP!]_P""#PP.@ M-[&XJN1WZOHB&.T(&GAFN(*# ]C[=[9'*':1^\(WU>C-$'-T@)76&BSJ$@_6 M,ZYFST66-VG4_*B ]5L1WQ-R=Q'@V,B6V219%Q+E[2WW]M7+4W))T7'GPS0O M AT K DOT AT 7 DOT HLZ+)10^P]DAH4)\$BATU61D&:5 DOT 1TD68Y AT _]LJAJ*8 %)39-T7HWX M)K+]L2+<6X E,>CT\,8"FK]Y?7KT8FXH$A6^L AT U<\16"GLZ/TBKJ7JJ>3\:? M)X!K5#5!MJN<5(3XB/\BW!.2< @B7S/X\<#ODJ,!=@Z(!(D]R<O3/6IM5'2[ MS^>_&H:P'RTN*,D#"A8&DK*T,'Y;&6>JFR)[[+3\XN% ]1N0?A/4;B%[#K*] M:5O(D.5 TBU:)6:UJ$\^)6D*YQ%4J_Q3IC(J[5$XRS,P%6>M\K AT FY#"<O<&> M,#K%LP;BA.,KOO)O9I=4Q!,7V5.S+>*'PTSOA3-5@*8W(>V6L.\AV]^2L+ . MDE%BNJ]_F\_%?E7R.]DJO*B%.!%/UWFJOBMP(FK4B!R<2(G'A&0?")D\UO&% M(9V4\"Z9)/5[%F2\:+*G/G+,+0'?"64JQ?EGX^PNR<T)<BQ7%2\QC:HNTRC3 M#68-RQSB35FOHG+8S!$6H<FZH;>.UN&JU!D0U4<+S"N_B1DQ&:?J AT 20$4L" M'CY\E')"[ARR%4S8CC-%CJOD2P_&/.HIJ/'M*\"O0_X0Z->4_Q/D^I:4_U>! M@)55Y!<Q95%\MBR$E9NBOA25):TIU?R7K6665T;+I"+IH:ABV;"L9&=J 4,) MLQ&UOFV*6%J_BLH"%.J-2=1;^ZKE[$SF AT HN\+I,U(E5GF&$Y+UD],E/9X&DE M AT GJ-"9/R3S=4<**0U0W$*VAIB -1MZX*QS3)-54/VPVK3M:M4LZ"0U8U&W2) MQFH;OHS0'LA,#*Y6QCMWW$2<2E>H-WD>[97Y4^1.FE-RRU!8A;OS#6V+=KN" MT +91NAJ6]Q%[5<Z&'=4N;I.U?M,]HZND7:'N*_*^W:!=[NJ;R/7;W)?2H6Q M@?>3&W-&\"^3,4,9)V&$F*S LLO9,B1+I!):1C4$&:95EP%4:5[3LH@:<Y(M MA[)B="<N<B=-*?$0*.DC8.F6TQC+::S4".(D).MI0"7V P.P9D*Y,^CWN1Y$ M<H>U+60F"LH16.8V6DWK%5@@!U#GQ/IT,MG0=;*Z#T/3,J"'5XFS\2L7WQ2+ M;ZI48M^(,&U!')KS;T;9+=BIC3RS5?&*]%AFMHN\R8[;EL<N>DR&>&>C.:MZ M=;^_!:XUX2M\6B5I!/I AT 0/-B4E\2:JV,@XV(O9FO8:(L$O/VI4[[EP;)A&2, ME:<S_M1$Y AT AH*](P1?CENW#E>9:+/-M63_^[2R%5Q,#T])TED3Z6*#HMQ+/& M5#9;%K(CL/;[!3QC&8+2#.#R,6?7*$_GQ2HQ'!&N)>*=;<2]8 AT NLS/)I^YU6 MKSQ"$7>C50=Y^!:7.1[*8_F\0 0[SYDBSW6W%?YM3*5ZJS;GQL"YDZ:CB7/O MS^"M6X,VUJ!CJ1I\ &FZC AT 8S>18,K-D,BW KAMTY1A")DP'I*>=E%'SD%;SG M8 AT UYK0K^^X&^Q:6O!=XM?M?%G%QQH+]0B+WJH?<,K[Z/O/$5;_NKA=?KQ*!I M#PNLOH4\WU/MHM^OFT4T'V"I%RM"ZB:SE8_/R%QA?:1[WS0HJ> G#O(F:@?S MYBW2>^[1S=?8Q=J>*'Q!3\-@GK]^^PK>.?^P+#'*2V>EI&&%+>FQ[? 1H:[F MQS,8FB;);[YT-#J7HU/QX"G$RJLK>'*U'X4 AT RV5O*N?%D#?UD=]JMSP$MGX[ M[L<$WJD WQPCWU+C/7F"$D,9_7>3E%$%Z[QL/97)%E#EZZAY2R&-8ODH3N/N MTW8>Z:QW"U:W."FA/1CPR._;4^0[:N3_3O!OCC1W9:%;)9:-5:(^X^"'_)7@ M<_<DEX=>&86ZHP\Y--,Z*K DOT AT CKB!(?+&0 AT 7F7D5/4"E)!*1G"K3B(S=%LN0[ M+E:(^I#I;N!OS$N_"_IN7=ACY+M.J^9NO;Y F&E)G[ZXP%^+("]$T%<@&$ZU MFR2Z$;SY1;I'6YVJU AT L6I DOT 6A-)L(3=8V49ZK<\JL3=%<RTX5+ZVW%<'>>KG) M)5EW'&3)6><TJN AT RXO,<!P[!Y6<T3:-8[I0MJ =1XW"GR!_[K;9!MS0?]O*) M?.=$=H^@]?9)(RN5NMK7V9;.ER9\<^\_ '/HB4=U_':S3\1J]UDS3A\11?31 MZ'!/V'Y$O;]CBDF?&?$+6[UP]_C:9LA7[T\$<4)11"RF+V<HJY!E7N?,.I7] M^>'^==L>KHUQ.\"]^F;+Z+.=]N]L(]TN.':0/[G%!67>4W /9 E)ET=M^QE_ MVZBS\WQ-A[%67!$O/=_$[]GK9Q\:0^H5] @0E(CYCTT?C977Q&[DY-;WH>Z/ M;GYT/;YNT4\FR%=?-FKTS9?O]?F#-IX9LH=";+LF-N ;6.]3F<RP_)V*Q)J@ ML=I,N=<.\Z/;]NAF:^IBMM2D4^;]E,SH@#3#*#5^M/0&@[HYS_$<\>R=V3"0 MA&V;>^ ,D%R@::QQ%B7_MHOY;QV7CP\%B^E6,)V"&ML^&F^=?AV=[ZXW\/0% M?6#8/O34(XR^C-><7N33&')5EYNPIJ\_+PJF4?'1-AD)YM$"UD&6[COV3 GV M[;NK?=N\YBZ6T+YES;H)DZ]]B\<YZ"4DLNEM2#UC=S&3#^N(_27%X)!H;.< MS,MQ'+>;_";7DIA)T)'@S7^GAD"B<?/%VX7%9_)<M4#PY'7P^HDAHHB'E3*V M6U'D1J60JSN]&=D<CUV*N"R$:W5JH#V\ZABF,O=F6S1N$_;E781]@[0;<>_R MN>1C7!'^S8+_'U!+ P04 " "2E9$;+-&/L9\! !: P "@ $1/4T-! M3BY$249UD4MOXC 4A==&XC]<:1;$(4#B.# )9=%1*1TI(A*EFL4L1L$Q$$V: MC!*GBS[^>YT7F!'-RO?XYMSS7>NZ#N/Q)(EW1<XF;!)GDR AT K6)B.&7H,!01, M ! @MN>8'IV"Y;IVOS<:C>#4]HM'<,<96 Z8MD==SS3;-OWRJP6P9 AT 8QH:DK MGZJV0)Y&_1[ MXCOXY2CS7+UY-]ND*6*?K!>(=+O#3L%*N4N>/KA+X&JG3_7 M6V2JPKT?W&XKMZN97--P;263:QGN[)0)(53$KQP6\/@0;+;S5F-'J>C[9S$< MSJM,"'T 3PH.\1XT=EPL!OX PUMSU3F< [?__&<#5VQ^#W [4G;)YC\'+AA+ M-(UE:2&@3(OXD,I'8,<P!QW+)CS_ I10:A Z4U )_6X0QU%@=SD/_]91ZH0L ME%FT>G\W-Q3#N\+@-0RZKB59>H H*W<)E^;XG\BKH*'(DDA+R^==N<<M<&<_ MA'I<8R_?JS6O5^PU2:1O<<QR<79L:IRPES#YDM&Q)=%499Q:!IF>&:\.KJ@\ MA?CRYL0+"N\I5I='7=\G4$L#!!0 ( $J(CAM<O)IOIP #,! ' M34]$1DPN4W6.00Z",!!%UY!PAUE @DDAE;@P7L906L2D0-,.R/&=$1%=N)J^ M_U^GC4HT"R9Q5-[LJ"Q<^U&W-HG7>:'"3:&SD!GE"/IQYG-PXAV$B2ZE)\$9 M86LUPCGG\K#IE5R9G'IA9PC8/*"HOK6=1:;9&KV"5"ZR(>XVARI1G#[WZ#5> M]!- %C"7+_"#O@^X>]4?+Z!#R/EW*T[*.ZX%*T?.K*EG0],;6O<$4$L#!!0 M ( J6D1O<45[8; ( '<, ( 34%42"Y$24:MEM]OFS 0QY]7J?_# M596JE)&&'XE:TM=J>]K;)NVM<L DCHQ-#5G+0__W88AHG#@],PT)!'<?V^>O M.?L\SX.[NQD3*=]E=%:0>G.W^?)S1^$'41 &$,3+.%X&$81)$EU>3*=3V$/? M%(,GFD)X#U&\G#\L@[F&XLL+S[PZ RP"?S&'_AL AT D[L5IP!4Y9/^_?;QR)X> M.*X&1\X$JZFUS9H4!;%Z-DTIZ[W'_P#T9/JPVK?I/X7%1 WZ^I]A6>5+%GZ2 MG,KW5A:AM>^<K*JQ N9<2F7W%#*SZ]?'=:*?>UP."HZ-RRI@&"_\,'[82ZA# M[RS)_1"\CH2I]FD,I:W"-'X%?7,IUD,@))45GQR8>NZ$V:!0Q80+@W=4$[RC MEHD,R#\$SK1 ATY7JD89RCC*R+*IV-J<AH^U0=?!91DR18LQPU*58UWJO0-E MWDH'I @Q2&>9A3%S#>U$IQT*%3(;(U2NCN?HZ[ \"]IMG-CXW1XZ)@ F<J$S MHQVT]UZS'*XRVFI"LTE%7W:T]<#-S8?QZ?NOW[<P\Z"B%%:4RU?P9H=ZLJKM M]1.]626LR7A-1<;RDQ"W 3;K+?H';/LI8OG,,^MRV$BGY>!R[8"$Z 0UA*9" M"ZT<&'.'LS"%S,S5,U2S_9JE?!VU;;8\&D7+X+KHXPECJI1P4Y=S:^IPUK@< M-=4+OM\[G$8N1TN#*M2 AT J=&<38UCE.!J$V%GAF+BC,_:#/1FE-$<GI_3DN\J M?6OK^[F:9A'XX4%5W5<K=5/2Q_XSW1#E AT 2 %[6JMH7 B:AWZ^AGYH&C]A_"N MP7OW[*NC*$C\*(R'Z AT COVY#E\P'^ E!+ P04 " #<E9$;.$5CS?$ !! M @ !P %-41"Y$249UD,%NPR ,AL^KU'?P,:$D!5*V-+ONO,L..TY=8"L: MPE)#JCW^ JQKDF86$C;^^/$/(03*<FM<:WNEMYU7Y?'NI7?PC&<0-3#9,-Z( M'?#]OEJOBJ* Q+QJ!4^Z!2Z!54TE&\E^&3*-> !R1^4#I#J(A+J&(2O6*P#C M/*0X>/UM?'9&HR C>4SR_#% "OMWJQ.$'UF+KO/0'@\G$OH;L.@^+]#;@%@U M9Z8/H;GM1XU+W\[[B\X$EU3P>N1-\'LJ!/MS%^]'T<Z?AC66I7 SP]7GP'J< MN*!I6W(<X:GG,3T;P^-7]M\ UT](FDN2-'QEP'\ 4$L#!!0 ( *X-CQN2 MD0W[)@, -P' ) 4U125$],1"Y#G55=;^(Z$'V^2/R'T5YI(:$$:/>K MHE2BM%79[;85I5KUZ<HDAO AT JL9'MP%9M__N.G808MM5^/.&9\3ESYGB CE^O M^3Z,Q/)!LD6LH3GRH'=X> "GG^&4)D(RN@?[[^ +DTI3#L,5QA,1QA1#"5<7 MT#WX].%C>__P_3M#9>FF,5,P9PD%_(R8TI+-,DTCR'B$(!U30'"J(,$:IAFW MN4B$64JYMAQO0M3$^"*(_G^S!V1%6$)FR#B7(G7$ =$62Z)(4J6 S,2*!I9A M"(8"Q'R+"U0LLB0"$H8B71+^@/!";1_8'+C0V,Y"+4MQ?49W-:QC*FD%AC51 M(&::,$ZC "H/+$M*'@RSH7']6#.-]!K[K:B<$<W2%S4'OW;VVWAZ<7TWA>'5 M/7P;3B;#J^E]?\-/5S2WF*7+A-'(<JV)E(1KV^WKV61T AT 9CAR?AR/+T'(>%\ M/+TZN[V%\^L)6GDSG$S'H[O+X01N[B8WU[=GE:@P)GR!&E"-%A%H ?_9(]K6 M3 1?X,-FQC:<43'!/0LZ#> DPX3B5&*B4Z_5:_\R'B991.$H)3H.XF,WI724 ML-E.,M0/2VIS]9K;JA30# 57VBB4X*N]XN K237*>*S7 %R8[/_3\4%2E24: MC"8 QM$^FZ;?EX)37A9<7&0OJ)#@N8(IMN"VT&I#+^BZA+941FQSFB=DH0;= MOAD'0,( ND'WTI8- N->&5-3S$]EJ8"M8Y;0IJ_@[5M AT 2BU):"+/,S7D:;6* M>VP.YM9@ (U68ZN*G(FB[H5V?N&QN)4W;/?ZVZAG1P T#?88L=V&9Z28\ C# MPX;G<MF1X2F7;Q+X/AALYC:)U@ ?#]J&ZN6.CM)@2VED+>Q=[L!^5^.&Q]&Y MWR]35E@$OH59==ZF5G4R(CK;$SWO2,^Y47W7U6XJ=E'![BM.HDI'J,XD+Y[? MX2D]H#C-T]/&DK-MQRMI+VV 6W]E"QQ7W#'I[EH\5UVLL;G-A;#C%UU^?>;- MU+)B_\NGI+L;9E(_[Y@[7?EBN<)\TJ/BN0#F0D*3V:\@,-/5_)6T6EZU*+ZS MAL;5/\!50E\SIS0&?"A^5ZPW/P!02P,$% @ ]K:.&_N:R==8 P UP4 M < !!5$],1"Y#?93M;]LV$,8_UX#_AUL+-)*AV4WZLJ1[017;6=0YMB') MZXIA2&GR9!.528.D;!C#_O<=J3 AT DOT BF'?K!/O]SP/[^1!#\JUM%#)&F'##K!F M.X0EHH*-%K*2*&!Y@-%'&&&MC42(/C(%YU=7YW$?(*O ZJ3;Z?7 K='B0Q-G M3FIE AT 1F$H3X8N5H[B(:Q[WO]!); Q1OX31KK2"_=84O*-2>60P/3VP1>O;Y\ M]\/W%U=OWR2P*-(^'1ET.]W.H-?M0(_PVR.?>_[E)05"R'&%REG0E3<&"R5W M:*QT!U\9LEI6VBC)^H&1UC4$A AT 5#(<P DOT 17 AT 17N8HI'5&+AN?"9 AT 2T%!0J2AY M8SB&RE(J9 AT Y T$V;>HMF(YU#$1A;HW=2T%6Z-7/O(3J/C\U/V5[=,0([/Q&R M+PG$C_D"2&DG'R2YWFSH3!(>HHOX&Y14O&Z$5*O6FT3K#VQK=@@@?RF5KFN] M]T<8_ZKTOD:Q0L]\#_#E2U@+,BX:[AYHQ+"Z<GL*&" "=S3';;LB_W?-"5RC M^8HU'H);21?-M6K=:F//S@(N)*<KT;SQ+L(.@3:@J6I AT PQP:R6I[NLV]=.NV MY4GT@ HJ-"P:+!-DR4GK<YX87H .^V*%S#4T=R_E)QM61MK .<;MPQ1EL.'E M%-O@?VR6TJ?78?,H9Z \S1H^LB5Z)0%.TY@%5=&+4ZZ-=GB\=!H8F=T]K%!% M+]O%.'H*\77CP&Z1^X^.&B5A]L8OGFI7T%I*V6YY>9L54,QNRD]I/@;Z/<]G MOV>C\8B&G194.#N#=#J"3UEY.UN4]/LSC/^8Y^.B@%D>$-G=?))1 Q'R=%IF MXR*!;#J<+$;9]-?DL7.2W65E6F:S:4*JXV-;0)Q:878#=^-\>$N/Z74VR<K/ M0?\F*Z=>\V:60PKS-"^SX6*2YC!?Y/-9,0YIPE_ "UG1'552H8 AT FV?7POA@. MBQA>OH3OCN5:*A=W.]9O$P>^9 AT 8LYU:*/_^"G^'YA^A%S)RN^OS9V_X%1,<U MC>'=X'QP]>KYCZ1"(R*A00\>-<)^*>W XQ_-M-\(_&2=J.6RO_[EFR)Y"L5N MI]9J!4(WRQJ[G7LR4(N(62XE67W&M;*NM=H+1?+P-]4-NL:HZ-XZ<VI((&I/ M]N+I8C*)8SK\3[?S+U!+ 0(4 !0 ( '*5D1NGH56TY P .\P * M $ ( !$3U!23E0N1$E&4$L! A0 % @ DI61&RS1C[&? M 0 6@, H 0 @ # T $1/4T-!3BY$24902P$"% 4 M" !*B(X;7+R:;Z< S 0 !P ! " #3#@ 34]$1DPN4U!+ M 0(4 !0 ( J6D1O<45[8; ( '<, ( $ ( )\/ !- M051(+D1)1E!+ 0(4 !0 ( -R5D1LX16/-\0 $$" ' $ M( #$2 !35$0N1$E&4$L! A0 % @ K AT V/&Y*1#?LF P W < D M 0 @ 1Q, %-44E1/3$0N0U!+ 0(4 !0 ( /:VCAO[FLG7 M6 , -<% ' $ ( )06 !!5$],1"Y#4$L%!@ ' < *? $ !$: end