Fix strtoull implementation and add it to build files. Based on patch by Mark Junker <mjscod@gmx.de>.
Modified: trunk/reactos/lib/crt/crt.xml
Modified: trunk/reactos/lib/crt/stdlib/strtoull.c

Modified: trunk/reactos/lib/crt/crt.xml
--- trunk/reactos/lib/crt/crt.xml	2005-09-11 11:59:25 UTC (rev 17796)
+++ trunk/reactos/lib/crt/crt.xml	2005-09-11 12:36:09 UTC (rev 17797)
@@ -317,6 +317,7 @@
 		<file>senv.c</file>
 		<file>strtod.c</file>
 		<file>strtoul.c</file>
+		<file>strtoull.c</file>
 		<file>swab.c</file>
 		<file>wcstod.c</file>
 		<file>wcstombs.c</file>

Modified: trunk/reactos/lib/crt/stdlib/strtoull.c
--- trunk/reactos/lib/crt/stdlib/strtoull.c	2005-09-11 11:59:25 UTC (rev 17796)
+++ trunk/reactos/lib/crt/stdlib/strtoull.c	2005-09-11 12:36:09 UTC (rev 17797)
@@ -4,7 +4,8 @@
 #include <ctype.h>
 #include <errno.h>
 #include <stdlib.h>
-//#include <msvcrt/unconst.h>
+#include <stdint.h>
+#include <internal/file.h>
 
 /*
  * Convert a string to an unsigned long integer.
@@ -12,13 +13,13 @@
  * Ignores `locale' stuff.  Assumes that the upper and lower case
  * alphabets and digits are each contiguous.
  */
-unsigned long
+uint64_t
 strtoull(const char *nptr, char **endptr, int base)
 {
   const char *s = nptr;
-  unsigned long acc;
+  uint64_t acc;
   int c;
-  unsigned long cutoff;
+  uint64_t cutoff;
   int neg = 0, any, cutlim;
 
   /*
@@ -43,8 +44,8 @@
   }
   if (base == 0)
     base = c == '0' ? 8 : 10;
-  cutoff = (unsigned long)ULONG_MAX / base;
-  cutlim = (unsigned long)ULONG_MAX % base;
+  cutoff = UINT64_MAX / base;
+  cutlim = (int)(UINT64_MAX % base);
   for (acc = 0, any = 0;; c = *s++)
   {
     if (isdigit(c))
@@ -65,7 +66,7 @@
   }
   if (any < 0)
   {
-    acc = ULONG_MAX;
+    acc = UINT64_MAX;
     __set_errno ( ERANGE );
   }
   else if (neg)