diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/__lltostr.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/__lltostr.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/__lltostr.c b/mdk-stage1/dietlibc/lib/__lltostr.c new file mode 100644 index 000000000..f53dcfb80 --- /dev/null +++ b/mdk-stage1/dietlibc/lib/__lltostr.c @@ -0,0 +1,34 @@ +#include <string.h> + +static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; + +int __lltostr(char *s, int size, unsigned long long i, int base, char UpCase) +{ + char *tmp; + int j=0; + + s[--size]=0; + + tmp=s+size; + + if ((base==0)||(base>36)) base=10; + + j=0; + if (!i) + { + *(--tmp)='0'; + j=1; + } + + while((tmp>s)&&(i)) + { + tmp--; + *tmp=num[i%base]; + if ((UpCase)&&(*tmp>96)) (*tmp)-=' '; + i=i/base; + j++; + } + memmove(s,tmp,j+1); + + return j; +} |