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] M+3&(S7D:5:#'>;G&<'^:OX_BY?')Z0#0_QMJX-VUZ##!UT^6*^2"LB_#,(\HWBR,&)87QT?'T.CJ?ED=HWB' 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>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)%8DP#7?MW:E1LBU[T671(J=08YO3 MW>F8LC'!UK&7\+549]<%VX3NH3+ ECY-8NKJ9Z=O'/OL3*%&%B45#8Y!VL:^ M$!C.-S&'\!1C36(AHG3,D8D@*)<%MS( +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]+@:'9R0VPRZC-$'-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_&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#" 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.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!H-WD>[97Y4^1.FE-RRU!8A;OS#6V+=KN" MT +91NAJ6]Q%[53&W-&\"^3,4,9)V&$F*S LLO9,B1+I!):1C4$&:95EP%4:5[3LH@:U+60F"LH16.8V6DWK%5@@!U#GQ/IT,MG0=;*Z#T/3,J"'5XFS\2L7WQ2+ M;ZI48M^(,&U!')KS;T;9+=BIC3RS5?&*]%AFMHN\R8[;ELDR&>&>C.:MZ M=;^_!:XUX2M\6B5I!/I AT 0/-B4E\2:JV,@XV(O9FO8:(L$O/VI4[[EP;)A&2, ME: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<_&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=%>KG) M)5EW'&3)6>'^==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.]3FR=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\;_";7DIA)T)'@S7^GAD"B_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)(EW18'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,G\W-Q3#N\+@-0RZKB59>H H*W<)E^;XG\BKH*'(DDA+R^==N<&:\.KJ@\ MA?CRYL0+"N\I5I='7=\G4$L#!!0 ( $J(CAM:'"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;)NVMO 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>^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-J9A3%S#>U$IQT*%3(;(U2NCN?HZ[ \"]IMG-CXW1XZ)@ F!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-$ !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%^]'TK MHE2BM%79[;85I5KUZ "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<$'5 M/7P;3B;#J^E]?\-/5S2WF*7+A-'(%\ 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;GQ=[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#(

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+"Z9L54,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\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,'=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