blob: e28be31fa80fa8d3eaa9f9fc27c8ed7dc0d4b8b3 (
plain) (
tree)
|
|
#include "format.h"
size_t
ltostr(char *s, size_t limit, unsigned long l, bool sgn, int radix)
{
size_t si = 0;
size_t digits = 0;
if((long)l < 0 && sgn) {
l = -((long)l);
s[0] = '-';
}
for(unsigned long lv = l; lv != 0; lv /= radix)
digits++;
digits = digits > limit ? limit : digits;
if(digits-- == 0)
s[si++] = '0';
for(unsigned long lv = l; lv != 0; lv /= radix)
{
if(si >= limit) return si;
int digit = lv % radix;
s[(digits - si)] = (digit >= 10 ? (digit + 'a' - 10) : digit + '0');
si++;
}
return si;
}
|