Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8628 → Rev 8629

/contrib/kolibri-libc/source/stdlib/itoa.c
1,20 → 1,42
#include <string.h>
/*
char* itoa(int n, char* s)
#include <ksys.h>
 
char *__reverse(char *str)
{
int sign;
char *ptr;
ptr = s;
char tmp, *src, *dst;
size_t len;
if (str != NULL){
len = strlen (str);
if (len > 1) {
src = str;
dst = src + len - 1;
while (src < dst) {
tmp = *src;
*src++ = *dst;
*dst-- = tmp;
}
}
}
return str;
}
if(n == (int)0x80000000)
return strcpy(s, "-2147483648"); // overflowed -n
/* itoa from K&R */
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) < 0) n = -n;
do {
*ptr++ = n % 10 + '0';
} while ((n = n / 10) > 0);
if (sign < 0) *ptr++ = '-';
*ptr = '\0';
return strrev(s);
}
*/
if ((sign = n) < 0) /* record sign */
n = -n; /* make n positive */
i = 0;
 
do { /* generate digits in reverse order */
s[i++] = n % 10 + '0'; /* get next digit */
} while ((n /= 10) > 0); /* delete it */
 
if (sign < 0)
s[i++] = '-';
 
__reverse(s);
s[i] = '\0';
return;
}