Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
2
#include 
3
#include 
4
 
5
char *
6
itoa(int value, char *string, int radix)
7
{
8
  char tmp[33];
9
  char *tp = tmp;
10
  int i;
11
  unsigned v;
12
  int sign;
13
  char *sp;
14
 
15
  if (radix > 36 || radix <= 1)
16
  {
17
    errno = EDOM;
18
    return 0;
19
  }
20
 
21
  sign = (radix == 10 && value < 0);
22
  if (sign)
23
    v = -value;
24
  else
25
    v = (unsigned)value;
26
  while (v || tp == tmp)
27
  {
28
    i = v % radix;
29
    v = v / radix;
30
    if (i < 10)
31
      *tp++ = i+'0';
32
    else
33
      *tp++ = i + 'a' - 10;
34
  }
35
 
36
  if (string == 0)
37
    string = (char *)malloc((tp-tmp)+sign+1);
38
  sp = string;
39
 
40
  if (sign)
41
    *sp++ = '-';
42
  while (tp > tmp)
43
    *sp++ = *--tp;
44
  *sp = 0;
45
  return string;
46
}