www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/12/17/14:16:21

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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019