Fix "numberf" function to correctly handle 'g' format specifier. Debugged by Michael Fritscher <michael@fritscher.net>
(fixed a couple return values while I was in there)
Modified: trunk/reactos/tools/rbuild/ssprintf.cpp

Modified: trunk/reactos/tools/rbuild/ssprintf.cpp
--- trunk/reactos/tools/rbuild/ssprintf.cpp	2005-09-17 11:20:25 UTC (rev 17894)
+++ trunk/reactos/tools/rbuild/ssprintf.cpp	2005-09-17 13:48:38 UTC (rev 17895)
@@ -126,7 +126,7 @@
 	if (type & LEFT)
 		type &= ~ZEROPAD;
 	if (base < 2 || base > 36)
-		return 0;
+		return false;
 	c = (type & ZEROPAD) ? '0' : ' ';
 	sign = 0;
 	if (type & SIGN) {
@@ -205,7 +205,7 @@
 	if (base < 2 || base > 36)
 		return 0;
 	c = (type & ZEROPAD) ? L'0' : L' ';
-	sign = 0;
+	sign = false;
 	if (type & SIGN) {
 		if (num < 0) {
 			sign = L'-';
@@ -305,7 +305,9 @@
 	if ( exp_sign == 'g' || exp_sign == 'G' ) {
 		type |= ZEROTRUNC;
 		if ( exponent < -4 || fabs(exponent) >= precision )
-			 exp_sign -= 2; // g -> e and G -> E
+			exp_sign -= 2; // g -> e and G -> E
+		else
+			exp_sign = 'f';
 	}
 
 	if ( exp_sign == 'e' ||  exp_sign == 'E' ) {
@@ -495,7 +497,9 @@
 	{
 		type |= ZEROTRUNC;
 		if ( exponent < -4 || fabs(exponent) >= precision )
-			 exp_sign -= 2; // g -> e and G -> E
+			exp_sign -= 2; // g -> e and G -> E
+		else
+			exp_sign = L'f';
 	}
 
 	if ( exp_sign == L'e' ||  exp_sign == L'E' )
@@ -694,7 +698,9 @@
 	if ( exp_sign == 'g' || exp_sign == 'G' ) {
 		type |= ZEROTRUNC;
 		if ( exponent < -4 || fabs(exponent) >= precision ) 
-			 exp_sign -= 2; // g -> e and G -> E
+			exp_sign -= 2; // g -> e and G -> E
+		else
+			exp_sign = 'f';
 	}
 
 	if ( exp_sign == 'e' || exp_sign == 'E' ) {
@@ -789,7 +795,7 @@
 		{
 			while ( intr > 0.0 )
 			{
-			        p=intr;
+				p=intr;
 				intr/=10.0L;
 				modfl(intr, &intr);
 
@@ -896,7 +902,9 @@
 	if ( exp_sign == L'g' || exp_sign == L'G' ) {
 		type |= ZEROTRUNC;
 		if ( exponent < -4 || fabs(exponent) >= precision ) 
-			 exp_sign -= 2; // g -> e and G -> E
+			exp_sign -= 2; // g -> e and G -> E
+		else
+			exp_sign = 'f';
 	}
 
 	if ( exp_sign == L'e' || exp_sign == L'E' ) {