move xml.h/cpp and ssprintf.h/cpp up a directory, make both rbuild and buildno use these same files
Modified: trunk/reactos/tools/buildno/buildno.cpp
Modified: trunk/reactos/tools/buildno/buildno.mak
Deleted: trunk/reactos/tools/buildno/exception.cpp
Deleted: trunk/reactos/tools/buildno/exception.h
Deleted: trunk/reactos/tools/buildno/ssprintf.cpp
Deleted: trunk/reactos/tools/buildno/ssprintf.h
Deleted: trunk/reactos/tools/buildno/xml.cpp
Deleted: trunk/reactos/tools/buildno/xml.h
Modified: trunk/reactos/tools/rbuild/rbuild.dsp
Modified: trunk/reactos/tools/rbuild/rbuild.mak
Deleted: trunk/reactos/tools/rbuild/ssprintf.cpp
Deleted: trunk/reactos/tools/rbuild/ssprintf.h
Deleted: trunk/reactos/tools/rbuild/xml.cpp
Deleted: trunk/reactos/tools/rbuild/xml.h
Added: trunk/reactos/tools/ssprintf.cpp
Added: trunk/reactos/tools/ssprintf.h
Modified: trunk/reactos/tools/tools.mak
Added: trunk/reactos/tools/xml.cpp
Added: trunk/reactos/tools/xml.h

Modified: trunk/reactos/tools/buildno/buildno.cpp
--- trunk/reactos/tools/buildno/buildno.cpp	2005-11-27 23:04:05 UTC (rev 19707)
+++ trunk/reactos/tools/buildno/buildno.cpp	2005-11-27 23:04:51 UTC (rev 19708)
@@ -29,7 +29,6 @@
 #include <string.h>
 #include "version.h"
 #include "xml.h"
-#include "exception.h"
 
 #define FALSE 0
 #define TRUE  1
@@ -179,20 +178,19 @@
 
   try
     {
-      Path path;
       XMLElement *head;
 
       try
         {
-          head = XMLLoadFile(".svn/entries", path);
+          head = XMLLoadFile(".svn/entries");
         }
-      catch(FileNotFoundException)
+      catch(XMLFileNotFoundException)
         {
-          head = XMLLoadFile("_svn/entries", path);
+          head = XMLLoadFile("_svn/entries");
         }
       XMLElement *entries = head->subElements[0];
       for (size_t i = 0; i < entries->subElements.size(); i++)
-	{
+      {
           XMLElement *entry = entries->subElements[i];
           if ("entry" == entry->name)
             {

Modified: trunk/reactos/tools/buildno/buildno.mak
--- trunk/reactos/tools/buildno/buildno.mak	2005-11-27 23:04:05 UTC (rev 19707)
+++ trunk/reactos/tools/buildno/buildno.mak	2005-11-27 23:04:51 UTC (rev 19708)
@@ -20,38 +20,26 @@
 
 BUILDNO_SOURCES = $(addprefix $(BUILDNO_BASE_), \
 	buildno.cpp \
-	exception.cpp \
-	ssprintf.cpp \
-	xml.cpp \
 	)
 
 BUILDNO_OBJECTS = \
-  $(addprefix $(INTERMEDIATE_), $(BUILDNO_SOURCES:.cpp=.o))
+	$(addprefix $(INTERMEDIATE_), $(BUILDNO_SOURCES:.cpp=.o))
 
-BUILDNO_HOST_CXXFLAGS = -Iinclude/reactos $(TOOLS_CPPFLAGS)
+BUILDNO_HOST_CXXFLAGS = -I$(TOOLS_BASE) -Iinclude/reactos $(TOOLS_CPPFLAGS)
 
 BUILDNO_HOST_LFLAGS = $(TOOLS_LFLAGS)
 
-$(BUILDNO_TARGET): $(BUILDNO_OBJECTS) | $(BUILDNO_OUT)
+.PHONY: buildno
+buildno: $(BUILDNO_TARGET)
+
+$(BUILDNO_TARGET): $(BUILDNO_OBJECTS) $(XML_SSPRINTF_OBJECTS) | $(BUILDNO_OUT)
 	$(ECHO_LD)
-	${host_gpp} $(BUILDNO_OBJECTS) $(BUILDNO_HOST_LFLAGS) -o $@
+	${host_gpp} $^ $(BUILDNO_HOST_LFLAGS) -o $@
 
 $(BUILDNO_INT_)buildno.o: $(BUILDNO_BASE_)buildno.cpp | $(BUILDNO_INT)
 	$(ECHO_CC)
 	${host_gpp} $(BUILDNO_HOST_CXXFLAGS) -c $< -o $@
 
-$(BUILDNO_INT_)exception.o: $(BUILDNO_BASE_)exception.cpp | $(BUILDNO_INT)
-	$(ECHO_CC)
-	${host_gpp} $(BUILDNO_HOST_CXXFLAGS) -c $< -o $@
-
-$(BUILDNO_INT_)ssprintf.o: $(BUILDNO_BASE_)ssprintf.cpp | $(BUILDNO_INT)
-	$(ECHO_CC)
-	${host_gpp} $(BUILDNO_HOST_CXXFLAGS) -c $< -o $@
-
-$(BUILDNO_INT_)xml.o: $(BUILDNO_BASE_)xml.cpp | $(BUILDNO_INT)
-	$(ECHO_CC)
-	${host_gpp} $(BUILDNO_HOST_CXXFLAGS) -c $< -o $@
-
 .PHONY: buildno_clean
 buildno_clean:
 	-@$(rm) $(BUILDNO_TARGET) $(BUILDNO_OBJECTS) 2>$(NUL)

Deleted: trunk/reactos/tools/buildno/exception.cpp
--- trunk/reactos/tools/buildno/exception.cpp	2005-11-27 23:04:05 UTC (rev 19707)
+++ trunk/reactos/tools/buildno/exception.cpp	2005-11-27 23:04:51 UTC (rev 19708)
@@ -1,178 +0,0 @@
-#include "pch.h"
-
-#ifdef RBUILD
-#include "rbuild.h"
-#else
-#include "exception.h"
-#include "ssprintf.h"
-#endif
-
-using std::string;
-
-Exception::Exception ()
-{
-}
-
-Exception::Exception ( const string& message )
-{
-	Message = message;
-}
-
-Exception::Exception ( const char* format,
-                       ...)
-{
-	va_list args;
-	va_start ( args,
-	           format);
-	Message = ssvprintf ( format,
-	                      args);
-	va_end ( args );
-}
-
-void Exception::SetMessage ( const char* message,
-                             va_list args)
-{
-	Message = ssvprintf ( message,
-	                      args);
-}
-
-
-OutOfMemoryException::OutOfMemoryException ()
-	: Exception ( "Out of memory" )
-{
-}
-
-
-InvalidOperationException::InvalidOperationException ( const char* filename,
-	                                                   const int linenumber )
-{
-	Message = ssprintf ( "%s:%d",
-	                     filename,
-	                     linenumber );
-}
-
-InvalidOperationException::InvalidOperationException ( const char* filename,
-	                                                   const int linenumber,
-	                                                   const char* message,
-	                                                   ... )
-{
-	string errorMessage;
-	va_list args;
-	va_start ( args,
-	           message );
-	errorMessage = ssvprintf ( message,
-	                           args );
-	va_end ( args );
-	Message = ssprintf ( "%s:%d %s",
-	                     filename,
-	                     linenumber,
-	                     errorMessage.c_str () );
-}
-
-
-FileNotFoundException::FileNotFoundException ( const string& filename )
-	: Exception ( "File '%s' not found.",
-	              filename.c_str() )
-{
-	Filename = filename;
-}
-
-
-AccessDeniedException::AccessDeniedException ( const string& filename)
-	: Exception ( "Access denied to file '%s'.",
-	             filename.c_str() )
-{
-	Filename = filename;
-}
-
-
-InvalidBuildFileException::InvalidBuildFileException ( const string& location,
-                                                       const char* message,
-                                                       ...)
-{
-	va_list args;
-	va_start ( args,
-	           message );
-	SetLocationMessage ( location, message, args );
-	va_end ( args );
-}
-
-InvalidBuildFileException::InvalidBuildFileException ()
-{
-}
-
-void
-InvalidBuildFileException::SetLocationMessage ( const std::string& location,
-                                                const char* message,
-                                                va_list args )
-{
-	Message = location + ": " + ssvprintf ( message, args );
-}
-
-XMLSyntaxErrorException::XMLSyntaxErrorException ( const string& location,
-	                                               const char* message,
-	                                               ... )
-{
-	va_list args;
-	va_start ( args,
-	          message );
-	SetLocationMessage ( location, message, args );
-	va_end ( args );
-}
-
-
-RequiredAttributeNotFoundException::RequiredAttributeNotFoundException (
-	const string& location,
-	const string& attributeName,
-	const string& elementName )
-	: InvalidBuildFileException ( location,
-	                              "Required attribute '%s' not found on '%s'.",
-	                              attributeName.c_str (),
-	                              elementName.c_str ())
-{
-}
-
-InvalidAttributeValueException::InvalidAttributeValueException (
-	const string& location,
-	const string& name,
-	const string& value )
-	: InvalidBuildFileException ( location,
-	                              "Attribute '%s' has an invalid value '%s'.",
-	                              name.c_str (),
-	                              value.c_str () )
-{
-	
-}
-
-BackendNameConflictException::BackendNameConflictException ( const string& name )
-	: Exception ( "Backend name conflict: '%s'",
-	             name.c_str() )
-{
-}
-
-
-UnknownBackendException::UnknownBackendException ( const string& name )
-	: Exception ( "Unknown Backend requested: '%s'",
-	              name.c_str() )
-{
-}
-
-
-UnknownModuleTypeException::UnknownModuleTypeException ( const string& location,
-                                                         int moduletype )
-	: InvalidBuildFileException ( location,
-	                              "module type requested: %i",
-	                              moduletype )
-{
-}
-
-
-InvocationFailedException::InvocationFailedException ( const std::string& command,
-                                                       int exitcode )
-	: Exception ( "Failed to execute '%s' (exit code %d)",
-	              command.c_str (),
-	              exitcode )
-{
-	Command = command;
-	ExitCode = exitcode;
-}

Deleted: trunk/reactos/tools/buildno/exception.h
--- trunk/reactos/tools/buildno/exception.h	2005-11-27 23:04:05 UTC (rev 19707)
+++ trunk/reactos/tools/buildno/exception.h	2005-11-27 23:04:51 UTC (rev 19708)
@@ -1,125 +0,0 @@
-#ifndef __EXCEPTION_H
-#define __EXCEPTION_H
-
-#include "pch.h"
-
-class Exception
-{
-public:
-	Exception ( const std::string& message );
-	Exception ( const char* format,
-	            ...);
-	std::string Message;
-protected:
-	Exception ();
-	void SetMessage ( const char* message,
-	                  va_list args);
-};
-
-
-class InvalidOperationException : public Exception
-{
-public:
-	InvalidOperationException ( const char* filename,
-	                            const int linenumber);
-	InvalidOperationException ( const char* filename,
-	                            const int linenumber,
-	                            const char* message,
-	                            ... );
-};
-
-
-class OutOfMemoryException : public Exception
-{
-public:
-	OutOfMemoryException ();
-};
-
-
-class FileNotFoundException : public Exception
-{
-public:
-	FileNotFoundException ( const std::string& filename );
-	std::string Filename;
-};
-
-
-class AccessDeniedException : public Exception
-{
-public:
-	AccessDeniedException ( const std::string& filename );
-	std::string Filename;
-};
-
-class InvalidBuildFileException : public Exception
-{
-public:
-	InvalidBuildFileException ( const std::string& location,
-	                            const char* message,
-	                            ...);
-	void SetLocationMessage ( const std::string& location,
-	                          const char* message,
-	                          va_list args );
-protected:
-	InvalidBuildFileException ();
-};
-
-
-class XMLSyntaxErrorException : public InvalidBuildFileException
-{
-public:
-	XMLSyntaxErrorException ( const std::string& location,
-	                          const char* message,
-	                          ... );
-};
-
-
-class RequiredAttributeNotFoundException : public InvalidBuildFileException
-{
-public:
-	RequiredAttributeNotFoundException ( const std::string& location,
-	                                     const std::string& attributeName,
-	                                     const std::string& elementName );
-};
-
-
-class InvalidAttributeValueException : public InvalidBuildFileException
-{
-public:
-	InvalidAttributeValueException ( const std::string& location,
-	                                 const std::string& name,
-	                                 const std::string& value );
-};
-
-
-class BackendNameConflictException : public Exception
-{
-public:
-	BackendNameConflictException ( const std::string& name );
-};
-
-
-class UnknownBackendException : public Exception
-{
-public:
-	UnknownBackendException ( const std::string& name );
-};
-
-class UnknownModuleTypeException : public InvalidBuildFileException
-{
-public:
-	UnknownModuleTypeException ( const std::string& location,
-	                             int moduletype );
-};
-
-
-class InvocationFailedException : public Exception
-{
-public:
-	InvocationFailedException ( const std::string& command,
-	                            int exitcode );
-	std::string Command;
-	int ExitCode;
-};
-
-#endif /* __EXCEPTION_H */

Deleted: trunk/reactos/tools/buildno/ssprintf.cpp
--- trunk/reactos/tools/buildno/ssprintf.cpp	2005-11-27 23:04:05 UTC (rev 19707)
+++ trunk/reactos/tools/buildno/ssprintf.cpp	2005-11-27 23:04:51 UTC (rev 19708)
@@ -1,1931 +0,0 @@
-// ssprintf.cpp
-
-#include "pch.h"
-
-#ifdef __FreeBSD__
-# include <stdlib.h>
-#else
-# include <malloc.h>
-#endif // __FreeBSD__
-#include <math.h>
-#include <float.h>
-#include <assert.h>
-#include "ssprintf.h"
-
-#ifdef __FreeBSD__
-# define __isnan isnan
-# define __finite finite
-# define powl __builtin_powl
-# define modfl __builtin_modfl
-#endif // _FreeBSD__
-
-#ifdef _MSC_VER
-#define alloca _alloca
-#endif//_MSC_VER
-
-#ifdef _MSC_VER
-typedef __int64 LONGLONG;
-typedef unsigned __int64 ULONGLONG;
-#else
-typedef long long LONGLONG;
-typedef unsigned long long ULONGLONG;
-#endif
-
-typedef struct {
-    unsigned int mantissa:23;
-    unsigned int exponent:8;
-    unsigned int sign:1;
-} ieee_float_t;
-
-typedef struct {
-    unsigned int mantissal:32;
-    unsigned int mantissah:20;
-    unsigned int exponent:11;
-    unsigned int sign:1;
-} ieee_double_t;
-
-typedef struct {
-    unsigned int mantissal:32;
-    unsigned int mantissah:32;
-    unsigned int exponent:15;
-    unsigned int sign:1;
-    unsigned int empty:16;
-} ieee_long_double_t;
-
-std::string
-ssprintf ( const char* fmt, ... )
-{
-	va_list arg;
-	va_start(arg, fmt);
-	std::string f = ssvprintf ( fmt, arg );
-	va_end(arg);
-	return f;
-}
-
-std::wstring
-sswprintf ( const wchar_t* fmt, ... )
-{
-	va_list arg;
-	va_start(arg, fmt);
-	std::wstring f = sswvprintf ( fmt, arg );
-	va_end(arg);
-	return f;
-}
-
-#define ZEROPAD		1	/* pad with zero */
-#define SIGN		2	/* unsigned/signed long */
-#define PLUS		4	/* show plus */
-#define SPACE		8	/* space if plus */
-#define LEFT		16	/* left justified */
-#define SPECIAL		32	/* 0x */
-#define LARGE		64	/* use 'ABCDEF' instead of 'abcdef' */
-#define ZEROTRUNC	128	/* truncate zero 's */
-
-
-static int
-skip_atoi(const char **s)
-{
-	int i=0;
-
-	while (isdigit(**s))
-		i = i*10 + *((*s)++) - '0';
-	return i;
-}
-
-static int
-skip_wtoi(const wchar_t **s)
-{
-	int i=0;
-
-	while (iswdigit(**s))
-		i = i*10 + *((*s)++) - L'0';
-	return i;
-}
-
-
-static int
-do_div(LONGLONG *n,int base)
-{
-	int __res = ((ULONGLONG) *n) % (unsigned) base;
-	*n = ((ULONGLONG) *n) / (unsigned) base;
-	return __res;
-}
-
-
-static bool
-number(std::string& f, LONGLONG num, int base, int size, int precision ,int type)
-{
-	char c,sign,tmp[66];
-	const char *digits="0123456789abcdefghijklmnopqrstuvwxyz";
-	int i;
-
-	if (type & LARGE)
-		digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-	if (type & LEFT)
-		type &= ~ZEROPAD;
-	if (base < 2 || base > 36)
-		return 0;
-	c = (type & ZEROPAD) ? '0' : ' ';
-	sign = 0;
-	if (type & SIGN) {
-		if (num < 0) {
-			sign = '-';
-			num = -num;
-			size--;
-		} else if (type & PLUS) {
-			sign = '+';
-			size--;
-		} else if (type & SPACE) {
-			sign = ' ';
-			size--;
-		}
-	}
-	if (type & SPECIAL) {
-		if (base == 16)
-			size -= 2;
-		else if (base == 8)
-			size--;
-	}
-	i = 0;
-	if (num == 0)
-		tmp[i++]='0';
-	else while (num != 0)
-		tmp[i++] = digits[do_div(&num,base)];
-	if (i > precision)
-		precision = i;
-	size -= precision;
-	if (!(type&(ZEROPAD+LEFT)))
-		while(size-->0)
-			f += ' ';
-	if (sign)
-		f += sign;
-	if (type & SPECIAL)
-	{
-		if (base==8)
-			f += '0';
-		else if (base==16)
-		{
-			f += '0';
-			f += digits[33];
-		}
-	}
-	if (!(type & LEFT))
-	{
-		while (size-- > 0)
-			f += c;
-	}
-	while (i < precision--)
-	{
-		f += '0';
-	}
-	while (i-- > 0)
-	{
-		f += tmp[i];
-	}
-	while (size-- > 0)
-	{
-		f += ' ';
-	}
-	return true;
-}
-
-static bool
-wnumber(std::wstring& f, LONGLONG num, int base, int size, int precision ,int type)
-{
-	wchar_t c,sign,tmp[66];
-	const wchar_t *digits = L"0123456789abcdefghijklmnopqrstuvwxyz";
-	int i;
-
-	if (type & LARGE)
-		digits = L"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-	if (type & LEFT)
-		type &= ~ZEROPAD;
-	if (base < 2 || base > 36)
-		return 0;
-	c = (type & ZEROPAD) ? L'0' : L' ';
-	sign = 0;
-	if (type & SIGN) {
-		if (num < 0) {
-			sign = L'-';
-			num = -num;
-			size--;
-		} else if (type & PLUS) {
-			sign = L'+';
-			size--;
-		} else if (type & SPACE) {
-			sign = L' ';
-
-			size--;
-		}
-	}
-	if (type & SPECIAL) {
-		if (base == 16)
-			size -= 2;
-		else if (base == 8)
-			size--;
-	}
-	i = 0;
-	if (num == 0)
-		tmp[i++]=L'0';
-	else while (num != 0)
-		tmp[i++] = digits[do_div(&num,base)];
-	if (i > precision)
-		precision = i;
-	size -= precision;
-	if (!(type&(ZEROPAD+LEFT)))
-		while(size-->0)
-			f += L' ';
-	if (sign)
-		f += sign;
-	if (type & SPECIAL)
-	{
-		if (base==8)
-			f += L'0';
-		else if (base==16)
-		{
-			f += L'0';
-			f += digits[33];
-		}
-	}
-	if (!(type & LEFT))
-	{
-		while (size-- > 0)
-			f += c;
-	}
-	while (i < precision--)
-	{
-		f += L'0';
-	}
-	while (i-- > 0)
-	{
-		f += tmp[i];
-	}
-	while (size-- > 0)
-	{
-		f += L' ';
-	}
-	return true;
-}
-
-
-static bool
-numberf(std::string& f, double __n, char exp_sign,  int size, int precision, int type)
-{
-	double exponent = 0.0;
-	double e;
-	long ie;
-
-	//int x;
-	char *buf, *tmp;
-	int i = 0;
-	int j = 0;
-	//int k = 0;
-
-	double frac, intr;
-	double p;
-	char sign;
-	char c;
-	char ro = 0;
-	int result;
-
-	union
-	{
-		double*  __n;
-		ieee_double_t*  n;
-	} n;
-	
-	n.__n = &__n;
-
-	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;
-	}
-
-	if ( exp_sign == 'g' || exp_sign == 'G' ) {
-		type |= ZEROTRUNC;
-		if ( exponent < -4 || fabs(exponent) >= precision )
-			 exp_sign -= 2; // g -> e and G -> E
-	}
-
-	if ( exp_sign == 'e' ||  exp_sign == 'E' ) {
-		frac = modf(exponent,&e);
-		if ( frac > 0.5 )
-			e++;
-		else if (  frac < -0.5  )
-			e--;
-
-		result = numberf(f,__n/pow(10.0L,e),'f',size-4, precision, type);
-		if (result < 0)
-			return false;
-		f += exp_sign;
-		size--;
-		ie = (long)e;
-		type = LEFT | PLUS;
-		if ( ie < 0 )
-			type |= SIGN;
-
-		result = number(f,ie, 10,2, 2,type );
-		if (result < 0)
-			return false;
-		return true;
-	}
-
-	if ( exp_sign == 'f' ) {
-		buf = (char*)alloca(4096);
-		if (type & LEFT) {
-			type &= ~ZEROPAD;
-		}
-
-		c = (type & ZEROPAD) ? '0' : ' ';
-		sign = 0;
-		if (type & SIGN) {
-			if (__n < 0) {
-				sign = '-';
-				__n = fabs(__n);
-				size--;
-			} else if (type & PLUS) {
-				sign = '+';
-				size--;
-			} else if (type & SPACE) {
-				sign = ' ';
-				size--;
-			}
-		}
-
-		frac = modf(__n,&intr);
-
-		// # flags forces a . and prevents trucation of trailing zero's
-
-		if ( precision > 0 ) {
-			//frac = modfl(__n,&intr);
-			i = precision-1;
-			while (  i >= 0  ) {
-				frac*=10.0L;
-				frac = modf(frac, &p);
-				buf[i] = (int)p + '0';
-				i--;
-			}
-			i = precision;
-			size -= precision;
-
-			ro = 0;
-			if ( frac > 0.5 ) {
-				ro = 1;
-			}
-
-			if ( precision >= 1 || type & SPECIAL) {
-				buf[i++] = '.';
-				size--;
-			}
-		}
-
-		if ( intr == 0.0 ) {
-			buf[i++] = '0';
-			size--;
-		}
-		else {
-			while ( intr > 0.0 ) {
-			        p = intr;
-				intr/=10.0L;
-				modf(intr, &intr);
-
-				p -= 10.0*intr;
-
-				buf[i++] = (int)p + '0';
-				size--;
-			}
-		}
-
-		j = 0;
-		while ( j < i && ro == 1) {
-			if ( buf[j] >= '0' && buf[j] <= '8' ) {
-				buf[j]++;
-				ro = 0;
-			}
-			else if ( buf[j] == '9' ) {
-				buf[j] = '0';
-			}
-			j++;
-		}
-		if ( ro == 1 )
-			buf[i++] = '1';
-
-		buf[i] = 0;
-
-		size -= precision;
-		if (!(type&(ZEROPAD+LEFT)))
-		{
-			while(size-->0)
-				f += ' ';
-		}
-		if (sign)
-		{
-			f += sign;
-		}
-
-		if (!(type&(ZEROPAD+LEFT)))
-			while(size-->0)
-			{
-				f += ' ';
-			}
-		if (type & SPECIAL) {
-		}
-
-		if (!(type & LEFT))
-			while (size-- > 0)
-			{
-				f += c;
-			}
-
-		tmp = buf;
-		if ( type & ZEROTRUNC && ((type & SPECIAL) != SPECIAL) )
-		{
-			j = 0;
-			while ( j < i && ( *tmp == '0' || *tmp == '.' ))
-			{
-				tmp++;
-				i--;
-			}
-		}
-//		else
-//			while (i < precision--)
-//				putc('0', f);
-		while (i-- > 0)
-		{
-			f += tmp[i];
-		}
-		while (size-- > 0)
-		{
-			f += ' ';
-		}
-	}
-	return true;
-}
-
-static bool
-wnumberf(std::wstring& f, double __n, wchar_t exp_sign,  int size, int precision, int type)
-{
-	double exponent = 0.0;
-	double e;
-	long ie;
-
-	int i = 0;
-	int j = 0;
-
-	double frac, intr;
-	double p;
-	wchar_t *buf, *tmp, sign, c, ro = 0;
-	int result;
-
-	union
-	{
-		double*  __n;
-		ieee_double_t*  n;
-	} n;
-	
-	n.__n = &__n;
-
-	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;
-	}
-
-	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
-	}
-
-	if ( exp_sign == L'e' ||  exp_sign == L'E' )
-	{
-		frac = modf(exponent,&e);
-		if ( frac > 0.5 )
-			e++;
-		else if (  frac < -0.5  )
-			e--;
-
-		result = wnumberf(f,__n/pow(10.0L,e),L'f',size-4, precision, type);
-		if (result < 0)
-			return false;
-		f += exp_sign;
-		size--;
-		ie = (long)e;
-		type = LEFT | PLUS;
-		if ( ie < 0 )
-			type |= SIGN;
-
-		result = wnumber(f,ie, 10,2, 2,type );
-		if (result < 0)
-			return false;
-		return true;
-	}
-
-	if ( exp_sign == L'f' )
-	{
-		buf = (wchar_t*)alloca(4096*sizeof(wchar_t));
-		if (type & LEFT)
-			type &= ~ZEROPAD;
-
-		c = (type & ZEROPAD) ? L'0' : L' ';
-		sign = 0;
-		if (type & SIGN)
-		{
-			if (__n < 0)
-			{
-				sign = L'-';
-				__n = fabs(__n);
-				size--;
-			}
-			else if (type & PLUS)
-			{
-				sign = L'+';
-				size--;
-			}
-			else if (type & SPACE)
-			{
-				sign = L' ';
-				size--;
-			}
-		}
-
-		frac = modf(__n,&intr);
-
-		// # flags forces a . and prevents trucation of trailing zero's
-
-		if ( precision > 0 ) {
-			//frac = modfl(__n,&intr);
-			i = precision-1;
-			while (  i >= 0  ) {
-				frac*=10.0L;
-				frac = modf(frac, &p);
-				buf[i] = (int)p + L'0';
-				i--;
-			}
-			i = precision;
-			size -= precision;
-
-			ro = 0;
-			if ( frac > 0.5 ) {
-				ro = 1;
-			}
-
-			if ( precision >= 1 || type & SPECIAL) {
-				buf[i++] = L'.';
-				size--;
-			}
-		}
-
-		if ( intr == 0.0 ) {
-			buf[i++] = L'0';
-			size--;
-		}
-		else {
-			while ( intr > 0.0 ) {
-				p = intr;
-				intr/=10.0L;
-				modf(intr, &intr);
-
-				p -= 10.0*intr;
-
-				buf[i++] = (int)p + L'0';
-				size--;
-			}
-		}
-
[truncated at 1000 lines; 5553 more skipped]