patch from GvG, it fixing the bug for calc = when it showing e-309, Bug
1195, it have even affected python and other apps trying writing out 0
as text string.
Modified: trunk/reactos/lib/crt/stdio/vfprintf.c
Modified: trunk/reactos/lib/crt/stdio/vfwprint.c
_____
Modified: trunk/reactos/lib/crt/stdio/vfprintf.c
--- trunk/reactos/lib/crt/stdio/vfprintf.c 2006-01-05 22:24:28 UTC
(rev 20593)
+++ trunk/reactos/lib/crt/stdio/vfprintf.c 2006-01-05 22:54:30 UTC
(rev 20594)
@@ -210,12 +210,22 @@
} n;
n.__n = &__n;
+
+ if ( exp_sign == L'g' || exp_sign == L'G' || exp_sign == L'e'
||
exp_sign == L'E' )
+ {
+ if ( 0 == n.n->mantissal && 0 == n.n->mantissah && 0 ==
n.n->exponent )
+ {
+ ie = 0;
+ }
+ else
+ {
+ ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
+ }
- if ( exp_sign == 'g' || exp_sign == 'G' || exp_sign == 'e' ||
exp_sign == 'E' ) {
- ie = ((unsigned int)n.n->exponent - (unsigned
int)0x3ff);
- exponent = ie/3.321928;
- }
+ exponent = ie/3.321928;
+ }
+
if ( exp_sign == 'g' || exp_sign == 'G' ) {
type |= ZEROTRUNC;
if ( exponent < -4 || fabs(exponent) >= precision )
_____
Modified: trunk/reactos/lib/crt/stdio/vfwprint.c
--- trunk/reactos/lib/crt/stdio/vfwprint.c 2006-01-05 22:24:28 UTC
(rev 20593)
+++ trunk/reactos/lib/crt/stdio/vfwprint.c 2006-01-05 22:54:30 UTC
(rev 20594)
@@ -209,12 +209,22 @@
} n;
n.__n = &__n;
+
+ if ( exp_sign == L'g' || exp_sign == L'G' || exp_sign == L'e'
||
exp_sign == L'E' )
+ {
+ if ( 0 == n.n->mantissal && 0 == n.n->mantissah && 0 ==
n.n->exponent )
+ {
+ ie = 0;
+ }
+ else
+ {
+ ie = ((unsigned int)n.n->exponent - (unsigned int)0x3ff);
+ }
- if ( exp_sign == L'g' || exp_sign == L'G' || exp_sign == L'e'
||
exp_sign == L'E' ) {
- ie = ((unsigned int)n.n->exponent - (unsigned
int)0x3ff);
- exponent = ie/3.321928;
- }
+ exponent = ie/3.321928;
+ }
+
if ( exp_sign == L'g' || exp_sign == L'G' ) {
type |= ZEROTRUNC;
if ( exponent < -4 || fabs(exponent) >= precision )
Show replies by date