branch update for HEAD-2003021201
[reactos.git] / lib / msvcrt / stdlib / itoa.c
index e8b62af..086e4bc 100644 (file)
@@ -9,18 +9,20 @@
  *              1998: Added ltoa Boudewijn Dekker
  */
 /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
+
 #include <msvcrt/errno.h>
 #include <msvcrt/stdlib.h>
+#include <msvcrt/internal/file.h>
+
 
-char *
-_itoa(int value, char *string, int radix)
+char* _itoa(int value, char* string, int radix)
 {
   char tmp[33];
-  char *tp = tmp;
+  chartp = tmp;
   int i;
   unsigned v;
   int sign;
-  char *sp;
+  charsp;
 
   if (radix > 36 || radix <= 1)
   {
@@ -44,7 +46,7 @@ _itoa(int value, char *string, int radix)
   }
 
   if (string == 0)
-    string = (char *)malloc((tp-tmp)+sign+1);
+    string = (char*)malloc((tp-tmp)+sign+1);
   sp = string;
 
   if (sign)
@@ -55,15 +57,14 @@ _itoa(int value, char *string, int radix)
   return string;
 }
 
-char *
-_ltoa(long value, char *string, int radix)
+char* _ltoa(long value, char* string, int radix)
 {
   char tmp[33];
-  char *tp = tmp;
+  chartp = tmp;
   long i;
   unsigned long v;
   int sign;
-  char *sp;
+  charsp;
 
   if (radix > 36 || radix <= 1)
   {
@@ -87,7 +88,7 @@ _ltoa(long value, char *string, int radix)
   }
 
   if (string == 0)
-    string = (char *)malloc((tp-tmp)+sign+1);
+    string = (char*)malloc((tp-tmp)+sign+1);
   sp = string;
 
   if (sign)
@@ -98,92 +99,13 @@ _ltoa(long value, char *string, int radix)
   return string;
 }
 
-char *
-_ultoa(unsigned long value, char *string, int radix)
+char* _ultoa(unsigned long value, char* string, int radix)
 {
   char tmp[33];
-  char *tp = tmp;
-  long i;
-  unsigned long v = value;
-  char *sp;
-
-  if (radix > 36 || radix <= 1)
-  {
-    __set_errno(EDOM);
-    return 0;
-  }
-
-  while (v || tp == tmp)
-  {
-    i = v % radix;
-    v = v / radix;
-    if (i < 10)
-      *tp++ = i+'0';
-    else
-      *tp++ = i + 'a' - 10;
-  }
-
-  if (string == 0)
-    string = (char *)malloc((tp-tmp)+1);
-  sp = string;
-
-  while (tp > tmp)
-    *sp++ = *--tp;
-  *sp = 0;
-  return string;
-}
-
-char *
-_i64toa(__int64 value, char *string, int radix)
-{
-  char tmp[65];
-  char *tp = tmp;
-  int i;
-  unsigned v;
-  int sign;
-  char *sp;
-
-  if (radix > 36 || radix <= 1)
-  {
-    __set_errno(EDOM);
-    return 0;
-  }
-
-  sign = (radix == 10 && value < 0);
-  if (sign)
-    v = -value;
-  else
-    v = (unsigned)value;
-  while (v || tp == tmp)
-  {
-    i = v % radix;
-    v = v / radix;
-    if (i < 10)
-      *tp++ = i+'0';
-    else
-      *tp++ = i + 'a' - 10;
-  }
-
-  if (string == 0)
-    string = (char *)malloc((tp-tmp)+sign+1);
-  sp = string;
-
-  if (sign)
-    *sp++ = '-';
-  while (tp > tmp)
-    *sp++ = *--tp;
-  *sp = 0;
-  return string;
-}
-
-char *
-_ui64toa(unsigned __int64 value, char *string, int radix)
-{
-  char tmp[65];
-  char *tp = tmp;
+  char* tp = tmp;
   long i;
   unsigned long v = value;
-  char *sp;
+  charsp;
 
   if (radix > 36 || radix <= 1)
   {
@@ -202,7 +124,7 @@ _ui64toa(unsigned __int64 value, char *string, int radix)
   }
 
   if (string == 0)
-    string = (char *)malloc((tp-tmp)+1);
+    string = (char*)malloc((tp-tmp)+1);
   sp = string;
 
   while (tp > tmp)