summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/__ltostr.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/lib/__ltostr.c')
-rw-r--r--mdk-stage1/dietlibc/lib/__ltostr.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/__ltostr.c b/mdk-stage1/dietlibc/lib/__ltostr.c
new file mode 100644
index 000000000..b2ebeb074
--- /dev/null
+++ b/mdk-stage1/dietlibc/lib/__ltostr.c
@@ -0,0 +1,34 @@
+#include <string.h>
+
+static char *num="0123456789abcdefghijklmnopqrstuvwxyz";
+
+int __ltostr(char *s, int size, unsigned 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;
+}